summaryrefslogtreecommitdiff
path: root/gcc/builtins.c
diff options
context:
space:
mode:
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-08 17:16:24 +0000
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-08 17:16:24 +0000
commit978836e597ffb94e9b71f2fc28eddadc8a4a8091 (patch)
tree9d9559db2c68cad406773d425357e16f885b2824 /gcc/builtins.c
parent6fe3d4d2e2ce6f08b2fe49442c108e2a9d71aec2 (diff)
downloadgcc-978836e597ffb94e9b71f2fc28eddadc8a4a8091.tar.gz
* builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
to strcpy. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84301 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r--gcc/builtins.c9
1 files changed, 8 insertions, 1 deletions
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;