aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSteve Ellcey <sje@cup.hp.com>2009-01-22 17:02:21 +0000
committerSteve Ellcey <sje@gcc.gnu.org>2009-01-22 17:02:21 +0000
commitd0ea0759a0acb1b9c3dad3ef001fd4730881bb47 (patch)
tree9098c90f1882c810320281aa9900d758862a7b53 /gcc
parent87673f8408b5214dfc58cb4f7255fea96097e5db (diff)
downloadgcc-d0ea0759a0acb1b9c3dad3ef001fd4730881bb47.zip
gcc-d0ea0759a0acb1b9c3dad3ef001fd4730881bb47.tar.gz
gcc-d0ea0759a0acb1b9c3dad3ef001fd4730881bb47.tar.bz2
re PR middle-end/38615 (invalid promotion to static from auto)
PR middle-end/38615 * gimplify.c (gimplify_init_constructor): Fix promotion of const variables to static. * doc/invoke.texi (-fmerge-all-constants): Update description. From-SVN: r143570
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/gimplify.c3
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8b921a2..df876e9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2009-01-22 Steve Ellcey <sje@cup.hp.com>
+
+ PR middle-end/38615
+ * gimplify.c (gimplify_init_constructor): Fix promotion of const
+ variables to static.
+ * doc/invoke.texi (-fmerge-all-constants): Update description.
+
2009-01-22 Uros Bizjak <ubizjak@gmail.com>
PR target/38931
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index 5aef128..be0c1ac 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -3526,7 +3526,8 @@ gimplify_init_constructor (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p,
if (valid_const_initializer
&& num_nonzero_elements > 1
&& TREE_READONLY (object)
- && TREE_CODE (object) == VAR_DECL)
+ && TREE_CODE (object) == VAR_DECL
+ && (flag_merge_constants >= 2 || !TREE_ADDRESSABLE (object)))
{
if (notify_temp_creation)
return GS_ERROR;