diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e2cdc6693e1..1456ae97488 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ 2004-07-08 Alexandre Oliva + * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy + to strcpy. + * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0. (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise. (FUNCTION_ARG_CALLEE_COPIES): Likewise. diff --git a/gcc/builtins.c b/gcc/builtins.c index 72cf798a021..9bcef91a70b 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -3090,7 +3090,14 @@ expand_builtin_stpcpy (tree arglist, rtx target, enum machine_mode mode) { /* If return value is ignored, transform stpcpy into strcpy. */ if (target == const0_rtx) - return expand_builtin_strcpy (arglist, target, mode); + { + tree fn = implicit_built_in_decls[BUILT_IN_STRCPY]; + if (!fn) + return 0; + + return expand_expr (build_function_call_expr (fn, arglist), + target, mode, EXPAND_NORMAL); + } if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE)) return 0;