* builtins.c (fold_builtin_1): Take decomposed arguments of
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 21 Mar 2005 14:26:34 +0000 (14:26 +0000)
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 21 Mar 2005 14:26:34 +0000 (14:26 +0000)
CALL_EXPR.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96797 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/builtins.c

index 2baf95e..5201ca4 100644 (file)
@@ -1,3 +1,8 @@
+2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * builtins.c (fold_builtin_1): Take decomposed arguments of
+       CALL_EXPR.
+
 2005-03-21  Nathan Sidwell  <nathan@codesourcery.com>
 
        PR other/20564
index a2b08f6..e326c15 100644 (file)
@@ -178,7 +178,7 @@ static tree fold_builtin_fabs (tree, tree);
 static tree fold_builtin_abs (tree, tree);
 static tree fold_builtin_unordered_cmp (tree, tree, enum tree_code,
                                        enum tree_code);
-static tree fold_builtin_1 (tree, bool);
+static tree fold_builtin_1 (tree, tree, bool);
 
 static tree fold_builtin_strpbrk (tree, tree);
 static tree fold_builtin_strstr (tree, tree);
@@ -7939,10 +7939,8 @@ fold_builtin_complex_div (tree type, tree arglist)
    if no simplification was possible.  */
 
 static tree
-fold_builtin_1 (tree exp, bool ignore)
+fold_builtin_1 (tree fndecl, tree arglist, bool ignore)
 {
-  tree fndecl = get_callee_fndecl (exp);
-  tree arglist = TREE_OPERAND (exp, 1);
   tree type = TREE_TYPE (TREE_TYPE (fndecl));
   enum built_in_function fcode;
 
@@ -8300,7 +8298,10 @@ fold_builtin_1 (tree exp, bool ignore)
 tree
 fold_builtin (tree exp, bool ignore)
 {
-  exp = fold_builtin_1 (exp, ignore);
+  tree fndecl = get_callee_fndecl (exp);
+  tree arglist = TREE_OPERAND (exp, 1);
+
+  exp = fold_builtin_1 (fndecl, arglist, ignore);
   if (exp)
     {
       /* ??? Don't clobber shared nodes such as integer_zero_node.  */