From eff01bb615f99284e9f67ca2ed08823944a9936e Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 23 Jan 2001 14:29:30 -0800 Subject: [PATCH] varasm.c (UNIQUE_SECTION): Move default implementation ... * varasm.c (UNIQUE_SECTION): Move default implementation ... * defaults.h: ... here. From-SVN: r39213 --- gcc/defaults.h | 31 ++++++++++++++++++++++++++++--- gcc/varasm.c | 24 ------------------------ 2 files changed, 28 insertions(+), 27 deletions(-) diff --git a/gcc/defaults.h b/gcc/defaults.h index 2aa5218d4641..b0f3ce9fa6df 100644 --- a/gcc/defaults.h +++ b/gcc/defaults.h @@ -1,6 +1,4 @@ -/* Definitions of various defaults for how to do assembler output - (most of which are designed to be appropriate for GAS or for - some BSD assembler). +/* Definitions of various defaults for tm.h macros. Copyright (C) 1992, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. Contributed by Ron Guilmette (rfg@monkeys.com) @@ -192,6 +190,33 @@ do { ASM_OUTPUT_LABEL(FILE,LABEL_ALTERNATE_NAME (INSN)); } while (0) # endif #endif +/* If we have no definition for UNIQUE_SECTION, but do have the + ability to generate arbitrary sections, construct something + reasonable. */ +#ifdef ASM_OUTPUT_SECTION_NAME +#ifndef UNIQUE_SECTION +#define UNIQUE_SECTION(DECL,RELOC) \ +do { \ + int len; \ + const char *name; \ + char *string; \ + \ + name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (DECL)); \ + /* Strip off any encoding in name. */ \ + STRIP_NAME_ENCODING (name, name); \ + \ + len = strlen (name) + 1; \ + string = alloca (len + 1); \ + sprintf (string, ".%s", name); \ + \ + DECL_SECTION_NAME (DECL) = build_string (len, string); \ +} while (0) +#endif +#ifndef UNIQUE_SECTION_P +#define UNIQUE_SECTION_P(DECL) 0 +#endif +#endif + /* By default, we generate a label at the beginning and end of the text section, and compute the size of the text section by subtracting the two. However, on some platforms that doesn't diff --git a/gcc/varasm.c b/gcc/varasm.c index 0cdf138485f8..99c8da691d96 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -326,30 +326,6 @@ named_section (decl, name, reloc) } } -#ifdef ASM_OUTPUT_SECTION_NAME -#ifndef UNIQUE_SECTION -#define UNIQUE_SECTION(DECL,RELOC) \ -do { \ - int len; \ - const char *name; \ - char *string; \ - \ - name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (DECL)); \ - /* Strip off any encoding in name. */ \ - STRIP_NAME_ENCODING (name, name); \ - \ - len = strlen (name) + 1; \ - string = alloca (len + 1); \ - sprintf (string, ".%s", name); \ - \ - DECL_SECTION_NAME (DECL) = build_string (len, string); \ -} while (0) -#endif -#ifndef UNIQUE_SECTION_P -#define UNIQUE_SECTION_P(DECL) 0 -#endif -#endif - #ifdef BSS_SECTION_ASM_OP /* Tell the assembler to switch to the bss section. */ -- 2.43.5