aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/varasm.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 52a3abd..f6c6ef4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
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