summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-ccp.c
diff options
context:
space:
mode:
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-16 14:45:15 +0000
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-16 14:45:15 +0000
commitea72610901a75187d493680f02058d62e6fc8cb3 (patch)
treeb1880a3e893b0506033714b4206841e710dcc5ea /gcc/tree-ssa-ccp.c
parent642a9b2dd1805fdbd1c93c448e57bb65466c9956 (diff)
downloadgcc-ea72610901a75187d493680f02058d62e6fc8cb3.tar.gz
* builtins.c (expand_movstr): Update a call to
fold_builtin_strcpy. (expand_builtin_strncpy): Update a call to fold_builtin_strncpy. (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed arguments of CALL_EXPR. (fold_builtin_1): Update calls to fold_builtin_strcpy and fold_builtin_strncpy. * tree-ssa-ccp.c (ccp_fold_builtin): Likewise. * tree.h: Update the prototypes of fold_builtin_strcpy and fold_builtin_strncpy. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96555 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-ccp.c')
-rw-r--r--gcc/tree-ssa-ccp.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c
index b255020917f..a14cf7f3664 100644
--- a/gcc/tree-ssa-ccp.c
+++ b/gcc/tree-ssa-ccp.c
@@ -1999,12 +1999,20 @@ ccp_fold_builtin (tree stmt, tree fn)
case BUILT_IN_STRCPY:
if (strlen_val[1] && is_gimple_val (strlen_val[1]))
- result = fold_builtin_strcpy (fn, strlen_val[1]);
+ {
+ tree fndecl = get_callee_fndecl (fn);
+ tree arglist = TREE_OPERAND (fn, 1);
+ result = fold_builtin_strcpy (fndecl, arglist, strlen_val[1]);
+ }
break;
case BUILT_IN_STRNCPY:
if (strlen_val[1] && is_gimple_val (strlen_val[1]))
- result = fold_builtin_strncpy (fn, strlen_val[1]);
+ {
+ tree fndecl = get_callee_fndecl (fn);
+ tree arglist = TREE_OPERAND (fn, 1);
+ result = fold_builtin_strncpy (fndecl, arglist, strlen_val[1]);
+ }
break;
case BUILT_IN_FPUTS: