From e1b4533c2a18bb0ad07d8c05b8088cd9d255be1e Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Fri, 29 Dec 2000 20:34:20 +0000 Subject: [PATCH] varasm.c (output_constant_def): Don't ENCODE_SECTION_INFO twice. * 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 | 6 ++++++ gcc/varasm.c | 9 ++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dcd8be9..487d5ff 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2000-12-29 Alexandre Oliva + + * 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 * ia64.c (ia64_expand_load_address): Accept additional scratch diff --git a/gcc/varasm.c b/gcc/varasm.c index 8f76f45..0ebcbd9 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -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 -- 2.7.4