varasm.c (output_constant_def): Don't ENCODE_SECTION_INFO twice.
authorAlexandre Oliva <aoliva@redhat.com>
Fri, 29 Dec 2000 20:34:20 +0000 (20:34 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Fri, 29 Dec 2000 20:34:20 +0000 (20:34 +0000)
* varasm.c (output_constant_def): Don't ENCODE_SECTION_INFO
twice.  Update desc->rtl and ->label, in case ENCODE_SECTION_INFO
modifies them.

From-SVN: r38551

gcc/ChangeLog
gcc/varasm.c

index dcd8be9..487d5ff 100644 (file)
@@ -1,3 +1,9 @@
+2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
+
+       * varasm.c (output_constant_def): Don't ENCODE_SECTION_INFO
+       twice.  Update desc->rtl and ->label, in case ENCODE_SECTION_INFO
+       modifies them.
+
 2000-12-29  Bernd Schmidt  <bernds@redhat.com>
 
        * ia64.c (ia64_expand_load_address): Accept additional scratch
index 8f76f45..0ebcbd9 100644 (file)
@@ -3204,7 +3204,14 @@ output_constant_def (exp, defer)
      such as that it is a function name.  If the name is changed, the macro
      ASM_OUTPUT_LABELREF will have to know how to strip this information.  */
 #ifdef ENCODE_SECTION_INFO
-  ENCODE_SECTION_INFO (exp);
+  /* A previously-processed constant would already have section info
+     encoded in it.  */
+  if (! found)
+    {
+      ENCODE_SECTION_INFO (exp);
+      desc->rtl = TREE_CST_RTL (exp);
+      desc->label = XSTR (XEXP (desc->rtl, 0), 0);
+    }
 #endif
 
 #ifdef CONSTANT_AFTER_FUNCTION_P