From: Josh Conner Date: Mon, 12 Sep 2005 15:46:35 +0000 (+0000) Subject: pr middle-end/23237 X-Git-Tag: misc/cutover-cvs2svn~669 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d840283a80662bd1e457631d2dad9757f3b98ff9;p=thirdparty%2Fgcc.git pr middle-end/23237 pr middle-end/23237 * ipa-reference.c (static_execute): Don't mark variables in named sections TREE_READONLY. From-SVN: r104176 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6e9bfe415286..36dedc7c50ca 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-09-12 Josh Conner + + PR middle-end/23237 + * ipa-reference.c (static_execute): Don't mark variables in + named sections TREE_READONLY. + 2005-09-12 Alan Modra * config/rs6000/rs6000.c (get_next_active_insn): Simplify test for diff --git a/gcc/ipa-reference.c b/gcc/ipa-reference.c index f2f9252e8ac2..531705226a5e 100644 --- a/gcc/ipa-reference.c +++ b/gcc/ipa-reference.c @@ -963,10 +963,17 @@ static_execute (void) EXECUTE_IF_SET_IN_BITMAP (module_statics_readonly, 0, index, bi) { tree var = get_static_decl (index); - TREE_READONLY (var) = 1; - if (dump_file) - fprintf (dump_file, "read-only var %s\n", - get_static_name (index)); + + /* Ignore variables in named sections - changing TREE_READONLY + changes the section flags, potentially causing conflicts with + other variables in the same named section. */ + if (DECL_SECTION_NAME (var) == NULL_TREE) + { + TREE_READONLY (var) = 1; + if (dump_file) + fprintf (dump_file, "read-only var %s\n", + get_static_name (index)); + } if (DECL_INITIAL (var) && is_gimple_min_invariant (DECL_INITIAL (var))) {