summaryrefslogtreecommitdiff
path: root/gcc/defaults.h
diff options
context:
space:
mode:
authorzack <zack@138bc75d-0d04-0410-961f-82ee72b054a4>2002-12-16 18:23:00 +0000
committerzack <zack@138bc75d-0d04-0410-961f-82ee72b054a4>2002-12-16 18:23:00 +0000
commit805e22b2051e9c6a75377ea6599654d7415da483 (patch)
treec259697c448b0c6f548f153c48c46a8d7a75970f /gcc/defaults.h
parent2c27ce73ee2229b0871c4ccad2342d8a4be85eff (diff)
downloadgcc-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.h34
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. */