diff options
author | Fred Fish <fnf@specifix.com> | 1992-08-14 19:14:15 +0000 |
---|---|---|
committer | Fred Fish <fnf@specifix.com> | 1992-08-14 19:14:15 +0000 |
commit | 3dc755fb814406e634cddba36cf0250fda624b5e (patch) | |
tree | bf57963f5c33755b54a7c762551a3b3b7ab49cfe /gdb/demangle.h | |
parent | 3a0055878e484015ffe4dc3611826c5124228416 (diff) | |
download | gdb-3dc755fb814406e634cddba36cf0250fda624b5e.zip gdb-3dc755fb814406e634cddba36cf0250fda624b5e.tar.gz gdb-3dc755fb814406e634cddba36cf0250fda624b5e.tar.bz2 |
* cplus-dem.c (cplus_markers): Add table for gnu style and
use throughout, in place of compile time constant CPLUS_MARKER.
* cplus-dem.c (ARM_VTABLE_STRING, ARM_VTABLE_STRLEN): Add.
* cplus-dem.c (cfront_special): New function, as suggested
by pfieland@stratus.com.
* cplus-dem.c (forget_types): New function.
* cplus-dem.c (cplus_demangle): Call gnu_special, moved from
demangle_prefix().
* cplus-dem.c (mop_up): Call forget_types().
* cplus-dem.c (AUTO_DEMANGLING, GNU_DEMANGLING, LUCID_DEMANGLING):
Use throughout, instead of checking current_demangling_style.
* cplus-dem.c (demangle_signature): When finding an explicit
start of function args, forget all remembered types for
lucid/cfront style demangling.
* cplus-dem.c (demangle_prefix): In a sequence of two or more
underbar characters, use last pair as the delimiter. Hoist
gnu_special() call up to cplus_demangle(). Call cfront_special()
when appropriate.
* cplus-dem.c (cplus_special): Fix virtual table name demangling
for inherited classes.
* cplus-dem.c (demangle_args): Document quirks of numbered
references to previously seen types.
* dbxread.c (read_ofile_symtab, process_one_symbol):
Use AUTO_DEMANGLING rather than explicitly checking
current_demangling_style.
* demangle.h: Add some comments.
* demangle.h (AUTO_DEMANGLING, GNU_DEMANGLING, LUCID_DEMANGLING,
CFRONT_DEMANGLING): New macros.
* dwarfread.c (LCC_PRODUCER): Remove trailing space, which is
not found in the actual producer string produced by lcc.
* dwarfread.c (handle_producer): Use AUTO_DEMANGLING rather
than explicitly checking current_demangling_style.
Diffstat (limited to 'gdb/demangle.h')
-rw-r--r-- | gdb/demangle.h | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/gdb/demangle.h b/gdb/demangle.h index ce50eb7..cc3fc60 100644 --- a/gdb/demangle.h +++ b/gdb/demangle.h @@ -19,6 +19,14 @@ #define DMGL_PARAMS (1 << 0) /* Include function args */ #define DMGL_ANSI (1 << 1) /* Include const, volatile, etc */ +/* Enumeration of possible demangling styles. + + Lucid and cfront styles are still kept logically distinct, even though + they now both behave identically. The resulting style is actual the + union of both. I.E. either style recognizes both "__pt__" and "__rf__" + for operator "->", even though the first is lucid style and the second + is cfront/ARM style. (FIXME?) */ + extern enum demangling_styles { unknown_demangling = 0, @@ -28,10 +36,19 @@ extern enum demangling_styles cfront_demangling } current_demangling_style; +/* Define string names for the various demangling styles. */ + +#define AUTO_DEMANGLING_STYLE_STRING "auto" #define GNU_DEMANGLING_STYLE_STRING "gnu" #define LUCID_DEMANGLING_STYLE_STRING "lucid" #define CFRONT_DEMANGLING_STYLE_STRING "cfront" -#define AUTO_DEMANGLING_STYLE_STRING "auto" + +/* Some macros to test what demangling style is active. */ + +#define AUTO_DEMANGLING (current_demangling_style == auto_demangling) +#define GNU_DEMANGLING (current_demangling_style == gnu_demangling) +#define LUCID_DEMANGLING (current_demangling_style == lucid_demangling) +#define CFRONT_DEMANGLING (current_demangling_style == cfront_demangling) extern void set_demangling_style PARAMS ((char *)); |