From c23a9d0e7dcd44bb284f3a118efea6facdf08417 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Wed, 24 May 1995 08:21:04 +0000 Subject: [PATCH] *** empty log message *** From-SVN: r9794 --- gcc/config/rs6000/rs6000.h | 33 +++++++++++++++++++++++---------- 1 file 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. -- 2.7.4