diff options
author | Simon Marchi <simon.marchi@ericsson.com> | 2019-01-09 12:57:16 -0500 |
---|---|---|
committer | Simon Marchi <simon.marchi@ericsson.com> | 2019-01-09 12:58:05 -0500 |
commit | 041be52673949e5b6cc2b507e55a379a54ab8ee0 (patch) | |
tree | 28487576663e2d763a13474d865291eab823e036 /gdb/valops.c | |
parent | 0e2a21335b6fc4a5b6bed19d9623916c52918b72 (diff) | |
download | gdb-041be52673949e5b6cc2b507e55a379a54ab8ee0.zip gdb-041be52673949e5b6cc2b507e55a379a54ab8ee0.tar.gz gdb-041be52673949e5b6cc2b507e55a379a54ab8ee0.tar.bz2 |
gdb: Remove support for old mangling schemes
An upcoming sync with gcc's libiberty [1] will remove support for old
mangling schemes (GNU v2, Lucid, ARM, HP and EDG). It will remove the
cplus_demangle_opname function, so we need to get rid of its usages in
GDB (it's a GNU v2 specific function).
I think the changes are mostly relatively obvious, some hacks that were
necessary to support overloaded operators with GNU v2 mangling are not
needed anymore.
The change in stabsread.c is perhaps less obvious. I think we could get
rid of more code in that region that is specific to old mangling
schemes, but I chose to do only the minimal changes required to remove
the cplus_demangle_opname uses. There is also a detailed comment just
above that explaining how GNU v2 and v3 mangled symbols are handled, I
decided to leave it as-is, since I wasn't sure which part to remove,
change or leave there.
[1] The commit "Remove support for demangling GCC 2.x era mangling
schemes.", specifically.
gdb/ChangeLog:
* gdbtypes.c (check_stub_method_group): Remove handling of old
mangling schemes.
* linespec.c (find_methods): Likewise.
* stabsread.c (read_member_functions): Likewise.
* valops.c (search_struct_method): Likewise.
(value_struct_elt_for_reference): Likewise.
* NEWS: Mention this change.
gdb/testsuite/ChangeLog:
* gdb.cp/demangle.exp (test_gnu_style_demangling): Rename to...
(test_gnuv3_style_demangling): ... this.
(test_lucid_style_demangling): Remove.
(test_arm_style_demangling): Remove.
(test_hp_style_demangling): Remove.
(do_tests): Remove calls to the above.
gdb/doc/ChangeLog:
* gdb.texinfo (Print Settings): Remove mention of specific
demangle-style values, just refer to the in-process help.
Diffstat (limited to 'gdb/valops.c')
-rw-r--r-- | gdb/valops.c | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/gdb/valops.c b/gdb/valops.c index 75ff705..2f5a4c8 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -1980,23 +1980,12 @@ search_struct_method (const char *name, struct value **arg1p, int i; struct value *v; int name_matched = 0; - char dem_opname[64]; type = check_typedef (type); for (i = TYPE_NFN_FIELDS (type) - 1; i >= 0; i--) { const char *t_field_name = TYPE_FN_FIELDLIST_NAME (type, i); - /* FIXME! May need to check for ARM demangling here. */ - if (startswith (t_field_name, "__") || - startswith (t_field_name, "op") || - startswith (t_field_name, "type")) - { - if (cplus_demangle_opname (t_field_name, dem_opname, DMGL_ANSI)) - t_field_name = dem_opname; - else if (cplus_demangle_opname (t_field_name, dem_opname, 0)) - t_field_name = dem_opname; - } if (t_field_name && (strcmp_iw (t_field_name, name) == 0)) { int j = TYPE_FN_FIELDLIST_LENGTH (type, i) - 1; @@ -3421,19 +3410,7 @@ value_struct_elt_for_reference (struct type *domain, int offset, for (i = TYPE_NFN_FIELDS (t) - 1; i >= 0; --i) { const char *t_field_name = TYPE_FN_FIELDLIST_NAME (t, i); - char dem_opname[64]; - if (startswith (t_field_name, "__") - || startswith (t_field_name, "op") - || startswith (t_field_name, "type")) - { - if (cplus_demangle_opname (t_field_name, - dem_opname, DMGL_ANSI)) - t_field_name = dem_opname; - else if (cplus_demangle_opname (t_field_name, - dem_opname, 0)) - t_field_name = dem_opname; - } if (t_field_name && strcmp (t_field_name, name) == 0) { int j; |