diff options
author | merrill <merrill@138bc75d-0d04-0410-961f-82ee72b054a4> | 1995-05-24 08:21:04 +0000 |
---|---|---|
committer | merrill <merrill@138bc75d-0d04-0410-961f-82ee72b054a4> | 1995-05-24 08:21:04 +0000 |
commit | c89b244ba48d4fefd0a0fb8cc244fb4dd84f2e19 (patch) | |
tree | 6bf28474d854bd453fdaa2f828c5bf1042a32c74 /gcc | |
parent | 62bff1ac87c1b681525d8046fe4d722b1a00e2ad (diff) | |
download | gcc-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.h | 33 |
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. |