* cp-demangle.c: s/new_abi/v3/.
authorDJ Delorie <dj@redhat.com>
Tue, 5 Dec 2000 16:51:29 +0000 (16:51 +0000)
committerDJ Delorie <dj@redhat.com>
Tue, 5 Dec 2000 16:51:29 +0000 (16:51 +0000)
* cplus-dem.c: Likewise.
(current_demangling_style): Now auto_demangling.
(cplus_demangle): Try v3 demangling if AUTO_DEMANGLING.
(main): Use standard symbol chars for auto_demangling.

libiberty/ChangeLog
libiberty/cp-demangle.c
libiberty/cplus-dem.c

index 2bb71c64ba7db8cafff9403884b42ea6a804dd93..33f39fe81cabb9142942d9a2a905df90c7a36fb9 100644 (file)
@@ -1,3 +1,11 @@
+2000-12-05  Jason Merrill  <jason@redhat.com>
+
+       * cp-demangle.c: s/new_abi/v3/.
+       * cplus-dem.c: Likewise.
+       (current_demangling_style): Now auto_demangling.
+       (cplus_demangle): Try v3 demangling if AUTO_DEMANGLING.
+       (main): Use standard symbol chars for auto_demangling.  
+
 2000-11-29  Mark Mitchell  <mark@codesourcery.com>
 
        * hashtab.c (higher_prime_number): Use a table, rather than a
index a5e5ded10e0fabfaaf84098931e6b4ab935a002c..5787f74744f47875810651c4870bcf4a65ad1396 100644 (file)
@@ -1,4 +1,4 @@
-/* Demangler for IA64 / g++ standard C++ ABI.
+/* Demangler for IA64 / g++ V3 ABI.
    Copyright (C) 2000 Free Software Foundation, Inc.
    Written by Alex Samuel <samuel@codesourcery.com>. 
 
@@ -20,7 +20,7 @@
 */
 
 /* This file implements demangling of C++ names mangled according to
-   the IA64 / g++ standard C++ ABI.  Use the cp_demangle function to
+   the IA64 / g++ V3 ABI.  Use the cp_demangle function to
    demangle a mangled name, or compile with the preprocessor macro
    STANDALONE_DEMANGLER defined to create a demangling filter
    executable (functionally similar to c++filt, but includes this
@@ -3483,7 +3483,7 @@ cp_demangle_type (type_name, result)
 
 extern char *__cxa_demangle PARAMS ((const char *, char *, size_t *, int *));
 
-/* ABI-mandated entry point in the C++ runtime library for performing
+/* ia64 ABI-mandated entry point in the C++ runtime library for performing
    demangling.  MANGLED_NAME is a NUL-terminated character string
    containing the name to be demangled.  
 
@@ -3597,7 +3597,7 @@ __cxa_demangle (mangled_name, output_buffer, length, status)
    If the demangling failes, returns NULL.  */
 
 char *
-cplus_demangle_new_abi (mangled)
+cplus_demangle_v3 (mangled)
      const char* mangled;
 {
   /* Create a dyn_string to hold the demangled name.  */
index 06df33860b5d4e3d7d1e2153722d1b6c4848fbbd..b88944573ba8c843ceff954f83867fd73fd0da29 100644 (file)
@@ -101,7 +101,7 @@ mystrstr (s1, s2)
 #define CPLUS_MARKER '$'
 #endif
 
-enum demangling_styles current_demangling_style = gnu_demangling;
+enum demangling_styles current_demangling_style = auto_demangling;
 
 static char cplus_markers[] = { CPLUS_MARKER, '.', '$', '\0' };
 
@@ -294,9 +294,9 @@ struct demangler_engine libiberty_demanglers[] =
   }
   ,
   {
-    GNU_NEW_ABI_DEMANGLING_STYLE_STRING,
-    gnu_new_abi_demangling,
-    "GNU (g++) new-ABI-style demangling"
+    GNU_V3_DEMANGLING_STYLE_STRING,
+    gnu_v3_demangling,
+    "GNU (g++) V3 ABI-style demangling"
   }
   ,
   {
@@ -913,9 +913,13 @@ cplus_demangle (mangled, options)
   if ((work->options & DMGL_STYLE_MASK) == 0)
     work->options |= (int) current_demangling_style & DMGL_STYLE_MASK;
 
-  /* The new-ABI demangling is implemented elsewhere.  */
-  if (GNU_NEW_ABI_DEMANGLING)
-    return cplus_demangle_new_abi (mangled);
+  /* The V3 ABI demangling is implemented elsewhere.  */
+  if (GNU_V3_DEMANGLING || AUTO_DEMANGLING)
+    {
+      ret = cplus_demangle_v3 (mangled);
+      if (ret || GNU_V3_DEMANGLING)
+       return ret;
+    }
 
   if (GNAT_DEMANGLING)
     return ada_demangle(mangled,options);
@@ -4968,7 +4972,7 @@ static const char *
 hp_symbol_characters PARAMS ((void));
 
 static const char *
-gnu_new_abi_symbol_characters PARAMS ((void));
+gnu_v3_symbol_characters PARAMS ((void));
 
 /* Return the string of non-alnum characters that may occur 
    as a valid symbol component, in the standard assembler symbol
@@ -5019,11 +5023,11 @@ hp_symbol_characters ()
 
 
 /* Return the string of non-alnum characters that may occur 
-   as a valid symbol component in the GNU standard C++ ABI mangling
+   as a valid symbol component in the GNU C++ V3 ABI mangling
    scheme.  */
 
 static const char *
-gnu_new_abi_symbol_characters ()
+gnu_v3_symbol_characters ()
 {
   return "_$.";
 }
@@ -5100,13 +5104,14 @@ main (argc, argv)
        case java_demangling:
        case edg_demangling:
        case gnat_demangling:
+       case auto_demangling:
          valid_symbols = standard_symbol_characters ();
          break;
        case hp_demangling:
          valid_symbols = hp_symbol_characters ();
          break;
-       case gnu_new_abi_demangling:
-         valid_symbols = gnu_new_abi_symbol_characters ();
+       case gnu_v3_demangling:
+         valid_symbols = gnu_v3_symbol_characters ();
          break;
        default:
          /* Folks should explicitly indicate the appropriate alphabet for