diff options
author | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-12-16 18:23:00 +0000 |
---|---|---|
committer | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-12-16 18:23:00 +0000 |
commit | 805e22b2051e9c6a75377ea6599654d7415da483 (patch) | |
tree | c259697c448b0c6f548f153c48c46a8d7a75970f /gcc/defaults.h | |
parent | 2c27ce73ee2229b0871c4ccad2342d8a4be85eff (diff) | |
download | gcc-805e22b2051e9c6a75377ea6599654d7415da483.tar.gz |
Merge basic-improvements-branch to trunk
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@60174 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/defaults.h')
-rw-r--r-- | gcc/defaults.h | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/gcc/defaults.h b/gcc/defaults.h index 0c71996c420..445aa5a5f5d 100644 --- a/gcc/defaults.h +++ b/gcc/defaults.h @@ -54,21 +54,27 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA # define CPP_PREDEFINES "" #endif -/* Store in OUTPUT a string (made with alloca) containing - an assembler-name for a local static variable or function named NAME. +/* Store in OUTPUT a string (made with alloca) containing an + assembler-name for a local static variable or function named NAME. LABELNO is an integer which is different for each call. */ +#ifndef ASM_PN_FORMAT +# ifndef NO_DOT_IN_LABEL +# define ASM_PN_FORMAT "%s.%lu" +# else +# ifndef NO_DOLLAR_IN_LABEL +# define ASM_PN_FORMAT "%s$%lu" +# else +# define ASM_PN_FORMAT "__%s_%lu" +# endif +# endif +#endif /* ! ASM_PN_FORMAT */ + #ifndef ASM_FORMAT_PRIVATE_NAME -#define ASM_FORMAT_PRIVATE_NAME(OUTPUT, NAME, LABELNO) \ - do { \ - int len = strlen (NAME); \ - char *temp = (char *) alloca (len + 3); \ - temp[0] = 'L'; \ - strcpy (&temp[1], (NAME)); \ - temp[len + 1] = '.'; \ - temp[len + 2] = 0; \ - (OUTPUT) = (char *) alloca (strlen (NAME) + 11); \ - ASM_GENERATE_INTERNAL_LABEL (OUTPUT, temp, LABELNO); \ +# define ASM_FORMAT_PRIVATE_NAME(OUTPUT, NAME, LABELNO) \ + do { const char *const name_ = (NAME); \ + char *const output_ = (OUTPUT) = (char *) alloca (strlen (name_) + 32);\ + sprintf (output_, ASM_PN_FORMAT, name_, (unsigned long)(LABELNO)); \ } while (0) #endif @@ -82,7 +88,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #ifndef ASM_OUTPUT_ADDR_VEC_ELT #define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \ do { fputs (integer_asm_op (POINTER_SIZE / UNITS_PER_WORD, TRUE), FILE); \ - ASM_OUTPUT_INTERNAL_LABEL (FILE, "L", (VALUE)); \ + (*targetm.asm_out.internal_label) (FILE, "L", (VALUE)); \ fputc ('\n', FILE); \ } while (0) #endif @@ -160,7 +166,7 @@ do { fputs (integer_asm_op (POINTER_SIZE / UNITS_PER_WORD, TRUE), FILE); \ #ifndef ASM_OUTPUT_DEBUG_LABEL #define ASM_OUTPUT_DEBUG_LABEL(FILE, PREFIX, NUM) \ - ASM_OUTPUT_INTERNAL_LABEL (FILE, PREFIX, NUM) + (*targetm.asm_out.internal_label) (FILE, PREFIX, NUM) #endif /* This is how we tell the assembler that a symbol is weak. */ |