aboutsummaryrefslogtreecommitdiff
path: root/libiberty
diff options
context:
space:
mode:
Diffstat (limited to 'libiberty')
-rw-r--r--libiberty/ChangeLog8
-rw-r--r--libiberty/cp-demangle.c8
-rw-r--r--libiberty/cplus-dem.c29
3 files changed, 29 insertions, 16 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 2bb71c6..33f39fe 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -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
diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c
index a5e5ded..5787f74 100644
--- a/libiberty/cp-demangle.c
+++ b/libiberty/cp-demangle.c
@@ -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. */
diff --git a/libiberty/cplus-dem.c b/libiberty/cplus-dem.c
index 06df338..b889445 100644
--- a/libiberty/cplus-dem.c
+++ b/libiberty/cplus-dem.c
@@ -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