Commit f399a1a1 by Kazu Hirata Committed by Kazu Hirata

builtins.c (fold_builtin_1): Take decomposed arguments of CALL_EXPR.

	* builtins.c (fold_builtin_1): Take decomposed arguments of
	CALL_EXPR.

From-SVN: r96797
parent d0f7abf9
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> 2005-03-21 Nathan Sidwell <nathan@codesourcery.com>
PR other/20564 PR other/20564
......
...@@ -178,7 +178,7 @@ static tree fold_builtin_fabs (tree, tree); ...@@ -178,7 +178,7 @@ static tree fold_builtin_fabs (tree, tree);
static tree fold_builtin_abs (tree, tree); static tree fold_builtin_abs (tree, tree);
static tree fold_builtin_unordered_cmp (tree, tree, enum tree_code, static tree fold_builtin_unordered_cmp (tree, tree, enum tree_code,
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_strpbrk (tree, tree);
static tree fold_builtin_strstr (tree, tree); static tree fold_builtin_strstr (tree, tree);
...@@ -7939,10 +7939,8 @@ fold_builtin_complex_div (tree type, tree arglist) ...@@ -7939,10 +7939,8 @@ fold_builtin_complex_div (tree type, tree arglist)
if no simplification was possible. */ if no simplification was possible. */
static tree 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)); tree type = TREE_TYPE (TREE_TYPE (fndecl));
enum built_in_function fcode; enum built_in_function fcode;
...@@ -8300,7 +8298,10 @@ fold_builtin_1 (tree exp, bool ignore) ...@@ -8300,7 +8298,10 @@ fold_builtin_1 (tree exp, bool ignore)
tree tree
fold_builtin (tree exp, bool ignore) 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) if (exp)
{ {
/* ??? Don't clobber shared nodes such as integer_zero_node. */ /* ??? Don't clobber shared nodes such as integer_zero_node. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment