From e13971e036199cf5f581ca31b43567b9b5aeab34 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 29 Nov 2004 11:29:09 +0000 Subject: [PATCH] varasm.c (default_elf_select_section_1): Only pass DECL_P decl to named_section. * varasm.c (default_elf_select_section_1): Only pass DECL_P decl to named_section. From-SVN: r91464 --- gcc/ChangeLog | 5 +++++ gcc/varasm.c | 38 ++++++++++++++++++++++---------------- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cd4ff92f30f..4a65e98b915 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-11-29 Alan Modra + + * varasm.c (default_elf_select_section_1): Only pass DECL_P decl + to named_section. + 2004-11-29 Nathan Sidwell * opts.c (decode_options): Do not set max-inline-insns-rtl. diff --git a/gcc/varasm.c b/gcc/varasm.c index 09ce14dfcc0..e58422d664d 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -4897,6 +4897,7 @@ void default_elf_select_section_1 (tree decl, int reloc, unsigned HOST_WIDE_INT align, int shlib) { + const char *sname; switch (categorize_decl_for_section (decl, reloc, shlib)) { case SECCAT_TEXT: @@ -4904,56 +4905,61 @@ default_elf_select_section_1 (tree decl, int reloc, abort (); case SECCAT_RODATA: readonly_data_section (); - break; + return; case SECCAT_RODATA_MERGE_STR: mergeable_string_section (decl, align, 0); - break; + return; case SECCAT_RODATA_MERGE_STR_INIT: mergeable_string_section (DECL_INITIAL (decl), align, 0); - break; + return; case SECCAT_RODATA_MERGE_CONST: mergeable_constant_section (DECL_MODE (decl), align, 0); - break; + return; case SECCAT_SRODATA: - named_section (decl, ".sdata2", reloc); + sname = ".sdata2"; break; case SECCAT_DATA: data_section (); - break; + return; case SECCAT_DATA_REL: - named_section (decl, ".data.rel", reloc); + sname = ".data.rel"; break; case SECCAT_DATA_REL_LOCAL: - named_section (decl, ".data.rel.local", reloc); + sname = ".data.rel.local"; break; case SECCAT_DATA_REL_RO: - named_section (decl, ".data.rel.ro", reloc); + sname = ".data.rel.ro"; break; case SECCAT_DATA_REL_RO_LOCAL: - named_section (decl, ".data.rel.ro.local", reloc); + sname = ".data.rel.ro.local"; break; case SECCAT_SDATA: - named_section (decl, ".sdata", reloc); + sname = ".sdata"; break; case SECCAT_TDATA: - named_section (decl, ".tdata", reloc); + sname = ".tdata"; break; case SECCAT_BSS: #ifdef BSS_SECTION_ASM_OP bss_section (); + return; #else - named_section (decl, ".bss", reloc); -#endif + sname = ".bss"; break; +#endif case SECCAT_SBSS: - named_section (decl, ".sbss", reloc); + sname = ".sbss"; break; case SECCAT_TBSS: - named_section (decl, ".tbss", reloc); + sname = ".tbss"; break; default: abort (); } + + if (!DECL_P (decl)) + decl = NULL_TREE; + named_section (decl, sname, reloc); } /* Construct a unique section name based on the decl name and the -- 2.30.2