aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <merrill@gnu.org>1995-05-24 08:21:04 +0000
committerJason Merrill <merrill@gnu.org>1995-05-24 08:21:04 +0000
commitc23a9d0e7dcd44bb284f3a118efea6facdf08417 (patch)
tree6bf28474d854bd453fdaa2f828c5bf1042a32c74 /gcc
parent16b3c7c7d28d626303e31d81d6efc25eec32b0d2 (diff)
downloadgcc-c23a9d0e7dcd44bb284f3a118efea6facdf08417.zip
gcc-c23a9d0e7dcd44bb284f3a118efea6facdf08417.tar.gz
gcc-c23a9d0e7dcd44bb284f3a118efea6facdf08417.tar.bz2
*** empty log message ***
From-SVN: r9794
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/rs6000/rs6000.h33
1 files changed, 23 insertions, 10 deletions
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index 353b4a4..09382d7 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -1974,17 +1974,30 @@ toc_section () \
/* This outputs NAME to FILE up to the first null or '['. */
#define RS6000_OUTPUT_BASENAME(FILE, NAME) \
- if ((NAME)[0] == '*' || (NAME)[strlen (NAME) - 1] != ']') \
- assemble_name (FILE, NAME); \
- else \
- { \
- int _len = strlen (NAME); \
- char *_p = alloca (_len + 1); \
+ { \
+ char *_p; \
\
- strcpy (_p, NAME); \
- _p[_len - 4] = '\0'; \
- assemble_name (FILE, _p); \
- }
+ STRIP_NAME_ENCODING (_p, (NAME)); \
+ assemble_name ((FILE), _p); \
+ }
+
+/* Remove any trailing [DS] or the like from the symbol name. */
+
+#define STRIP_NAME_ENCODING(VAR,NAME) \
+ do \
+ { \
+ if ((NAME)[0] == '*' || (NAME)[strlen (NAME) - 1] != ']') \
+ (VAR) = (NAME); \
+ else \
+ { \
+ int _len = strlen (NAME); \
+ (VAR) = alloca (_len + 1); \
+ \
+ strcpy ((VAR), NAME); \
+ (VAR)[_len - 4] = '\0'; \
+ } \
+ } \
+ while (0)
/* Output something to declare an external symbol to the assembler. Most
assemblers don't need this.