re PR c++/13447 (Another demangler problem with method cv-qualifiers)
authorIan Lance Taylor <ian@wasabisystems.com>
Fri, 19 Dec 2003 21:14:35 +0000 (21:14 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Fri, 19 Dec 2003 21:14:35 +0000 (21:14 +0000)
commita91d1af0879ed504c2ebdc72e9a2ea3bd16537bb
tree2898ae6a39aee060a86e93479b4188a9f81276ba
parent4656bc859d498ca67194d3bbc449ff916cf67f15
re PR c++/13447 (Another demangler problem with method cv-qualifiers)

Fix for PR c++/13447:
* cp-demangle.c (enum d_comp_type): Add D_COMP_LOCAL_NAME.
(d_dump, d_make_comp): Handle D_COMP_LOCAL_NAME.
(is_ctor_dtor_or_conversion): Handle D_COMP_LOCAL_NAME like
D_COMP_QUAL_NAME.
(is_ctor_or_dtor): Likewise.
(d_local_name): Use D_COMP_LOCAL_NAME rather than
D_COMP_QUAL_NAME.
(d_print_comp) [D_COMP_LOCAL_NAME]: New.
(d_prinT_comp) [D_COMP_TYPED_NAME]: If the left tree is
D_COMP_LOCAL_NAME, pull any qualifiers off its right subtree.
(d_print_mod_list): Handle D_COMP_LOCAL_NAME.
* testsuite/demangle-expected: Add two test cases.

* cp-demangle.c (d_print_function_type): Clear the global modifier
list when printing the modifiers, not just when printing the
function parameters.
* testsuite/demangle-expected: Add two test cases.

From-SVN: r74850
libiberty/ChangeLog
libiberty/cp-demangle.c
libiberty/testsuite/demangle-expected