varasm.c (assemble_variable): Create DECL_RTL before setting TREE_ASM_WRITTEN.
authorRichard Henderson <rth@redhat.com>
Thu, 26 Jul 2001 01:28:01 +0000 (18:28 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Thu, 26 Jul 2001 01:28:01 +0000 (18:28 -0700)
        * varasm.c (assemble_variable): Create DECL_RTL before setting
        TREE_ASM_WRITTEN.

From-SVN: r44372

gcc/ChangeLog
gcc/varasm.c

index 52a3abdfeacb155709d0c14af1201bb6be68154b..f6c6ef469ae4bd2d0e2c5752b3e95ee5774e148b 100644 (file)
@@ -1,3 +1,8 @@
+2001-07-25  Richard Henderson  <rth@redhat.com>
+
+       * varasm.c (assemble_variable): Create DECL_RTL before setting
+       TREE_ASM_WRITTEN.
+
 Thu Jul 26 00:19:30 CEST 2001  Jan Hubicka  <jh@suse.cz>
 
        * predict.c (estimate_probability): Avoid duplicated predictions.
index 52a0268cf2318fb7f7f582a39b87110e52299377..cced6623c5e5a1310ccf5d2a2e8efcfa17012b7a 100644 (file)
@@ -1204,6 +1204,7 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
   register const char *name;
   unsigned int align;
   int reloc = 0;
+  rtx decl_rtl;
 
   last_assemble_variable_decl = 0;
 
@@ -1254,6 +1255,9 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
   if (TREE_ASM_WRITTEN (decl))
     return;
 
+  /* Make sure ENCODE_SECTION_INFO is invoked before we set ASM_WRITTEN.  */
+  decl_rtl = DECL_RTL (decl);
   TREE_ASM_WRITTEN (decl) = 1;
 
   /* Do no output if -fsyntax-only.  */
@@ -1269,7 +1273,7 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
       return;
     }
 
-  name = XSTR (XEXP (DECL_RTL (decl), 0), 0);
+  name = XSTR (XEXP (decl_rtl, 0), 0);
   if (TREE_PUBLIC (decl) && DECL_NAME (decl)
       && ! first_global_object_name
       && ! (DECL_COMMON (decl) && (DECL_INITIAL (decl) == 0