aboutsummaryrefslogtreecommitdiff
path: root/gcc/builtins.c
diff options
context:
space:
mode:
authorMark Shinwell <shinwell@codesourcery.com>2006-06-04 16:28:55 +0000
committerMark Shinwell <shinwell@gcc.gnu.org>2006-06-04 16:28:55 +0000
commit63b4819753c735449a0915e62928fa6374cd70c3 (patch)
tree8043b65180715166e17c85119e10cb873f903255 /gcc/builtins.c
parent7ec434b841e8120aad467db3efb249f536f5b819 (diff)
downloadgcc-63b4819753c735449a0915e62928fa6374cd70c3.zip
gcc-63b4819753c735449a0915e62928fa6374cd70c3.tar.gz
gcc-63b4819753c735449a0915e62928fa6374cd70c3.tar.bz2
tree.h: Declare folding_initializer.
gcc: * tree.h: Declare folding_initializer. * builtins.c (fold_builtin_constant_p): Give definite answer if folding inside an initializer. * fold-const.c: Define folding_initializer. (START_FOLD_INIT): Save and then set folding_initializer. (END_FOLD_INIT): Restore folding_initializer. gcc/testsuite: * gcc.c-torture/compile/builtin_constant_p.c: New test. From-SVN: r114358
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r--gcc/builtins.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 7113681..603106a 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -6495,7 +6495,8 @@ fold_builtin_constant_p (tree arglist)
if (TREE_SIDE_EFFECTS (arglist)
|| AGGREGATE_TYPE_P (TREE_TYPE (arglist))
|| POINTER_TYPE_P (TREE_TYPE (arglist))
- || cfun == 0)
+ || cfun == 0
+ || folding_initializer)
return integer_zero_node;
return 0;