From 77097adf402207f4c51caf4caa344a6b677716a7 Mon Sep 17 00:00:00 2001 From: ian Date: Fri, 19 Dec 2003 21:14:35 +0000 Subject: 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74850 138bc75d-0d04-0410-961f-82ee72b054a4 --- libiberty/testsuite/demangle-expected | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'libiberty/testsuite') diff --git a/libiberty/testsuite/demangle-expected b/libiberty/testsuite/demangle-expected index 7452338e1b3..8bae90eb0a5 100644 --- a/libiberty/testsuite/demangle-expected +++ b/libiberty/testsuite/demangle-expected @@ -2921,6 +2921,27 @@ std::basic_iostream >::~basic_iostream() _ZNK15nsBaseHashtableI15nsUint32HashKey8nsCOMPtrI4IFooEPS2_E13EnumerateReadEPF15PLDHashOperatorRKjS4_PvES9_ nsBaseHashtable, IFoo*>::EnumerateRead(PLDHashOperator (*)(unsigned int const&, IFoo*, void*), void*) const # +# Another member function qualifier test case, when the member function +# returns a pointer to function. +--format=gnu-v3 +_ZNK1C1fIiEEPFivEv +int (*C::f() const)() +# +# Another case where we got member function qualifiers wrong. +--format=gnu-v3 +_ZZ3BBdI3FooEvvENK3Fob3FabEv +void BBd()::Fob::Fab() const +# +# The same idea one level deeper. +--format=gnu-v3 +_ZZZ3BBdI3FooEvvENK3Fob3FabEvENK3Gob3GabEv +void BBd()::Fob::Fab() const::Gob::Gab() const +# +# Yet another member function qualifier problem. +--format=gnu-v3 +_ZNK5boost6spirit5matchI13rcs_deltatextEcvMNS0_4impl5dummyEFvvEEv +boost::spirit::match::operator void (boost::spirit::impl::dummy::*)()() const +# # This caused an infinite loop. # # This is generated by an EDG compiler (kcc 4.0). To demangle it -- cgit v1.2.1