aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-cfg.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0aee51f..a297cce 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2011-12-14 Richard Guenther <rguenther@suse.de>
+ * tree-cfg.c (replace_uses_by): Fixup TREE_CONSTANT for
+ propagating all kinds of constants.
+
+2011-12-14 Richard Guenther <rguenther@suse.de>
+
PR lto/51497
* lto-streamer-in.c (lto_read_body): Fixup local types
TYPE_CANONICAL and variant chain.
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 3d1b775..4c5982d 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -1612,8 +1612,8 @@ replace_uses_by (tree name, tree val)
/* FIXME. It shouldn't be required to keep TREE_CONSTANT
on ADDR_EXPRs up-to-date on GIMPLE. Propagation will
only change sth from non-invariant to invariant, and only
- when propagating integer constants. */
- if (TREE_CODE (val) == INTEGER_CST)
+ when propagating constants. */
+ if (is_gimple_min_invariant (val))
for (i = 0; i < gimple_num_ops (stmt); i++)
{
tree op = gimple_op (stmt, i);