aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Conner <jconner@apple.com>2005-09-12 15:46:35 +0000
committerJosh Conner <jconner@gcc.gnu.org>2005-09-12 15:46:35 +0000
commitd840283a80662bd1e457631d2dad9757f3b98ff9 (patch)
treec79859549d5743661c5f45b4cd49573fdeb65f79
parent309ebcd0c33754d261935e9c861ef3c36133b6c0 (diff)
downloadgcc-d840283a80662bd1e457631d2dad9757f3b98ff9.zip
gcc-d840283a80662bd1e457631d2dad9757f3b98ff9.tar.gz
gcc-d840283a80662bd1e457631d2dad9757f3b98ff9.tar.bz2
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
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/ipa-reference.c15
2 files changed, 17 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6e9bfe4..36dedc7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-09-12 Josh Conner <jconner@apple.com>
+
+ PR middle-end/23237
+ * ipa-reference.c (static_execute): Don't mark variables in
+ named sections TREE_READONLY.
+
2005-09-12 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/rs6000.c (get_next_active_insn): Simplify test for
diff --git a/gcc/ipa-reference.c b/gcc/ipa-reference.c
index f2f9252..5317052 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)))
{