aboutsummaryrefslogtreecommitdiff
path: root/gcc/varasm.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2001-07-25 18:28:01 -0700
committerRichard Henderson <rth@gcc.gnu.org>2001-07-25 18:28:01 -0700
commit17eee61c6decd3f7797f760f510b78ccf0c9e5cc (patch)
tree56d9be38022565f63953d5471825a64ea7174407 /gcc/varasm.c
parentb0fd92a3c810b5de3dbf020ca540dfefde4df924 (diff)
downloadgcc-17eee61c6decd3f7797f760f510b78ccf0c9e5cc.zip
gcc-17eee61c6decd3f7797f760f510b78ccf0c9e5cc.tar.gz
gcc-17eee61c6decd3f7797f760f510b78ccf0c9e5cc.tar.bz2
varasm.c (assemble_variable): Create DECL_RTL before setting TREE_ASM_WRITTEN.
* varasm.c (assemble_variable): Create DECL_RTL before setting TREE_ASM_WRITTEN. From-SVN: r44372
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r--gcc/varasm.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 52a0268..cced662 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -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