summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authormerrill <merrill@138bc75d-0d04-0410-961f-82ee72b054a4>1995-05-24 08:21:04 +0000
committermerrill <merrill@138bc75d-0d04-0410-961f-82ee72b054a4>1995-05-24 08:21:04 +0000
commitc89b244ba48d4fefd0a0fb8cc244fb4dd84f2e19 (patch)
tree6bf28474d854bd453fdaa2f828c5bf1042a32c74 /gcc
parent62bff1ac87c1b681525d8046fe4d722b1a00e2ad (diff)
downloadgcc-c89b244ba48d4fefd0a0fb8cc244fb4dd84f2e19.tar.gz
*** empty log message ***
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9794 138bc75d-0d04-0410-961f-82ee72b054a4
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 353b4a471d5..09382d7b7c7 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.