*** empty log message ***
authorJason Merrill <merrill@gnu.org>
Wed, 24 May 1995 08:21:04 +0000 (08:21 +0000)
committerJason Merrill <merrill@gnu.org>
Wed, 24 May 1995 08:21:04 +0000 (08:21 +0000)
From-SVN: r9794

gcc/config/rs6000/rs6000.h

index 353b4a4..09382d7 100644 (file)
@@ -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.