This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Mangle question
- To: carlo at alinoe dot com
- Subject: Re: Mangle question
- From: Hans-Peter Nilsson <hp at axis dot com>
- Date: Fri, 1 Sep 2000 05:21:53 +0200
- CC: gcc at gcc dot gnu dot org
> Date: Tue, 29 Aug 2000 11:58:53 +0200
> From: Carlo Wood <carlo@alinoe.com>
> ... O wait. I promised to give two bugs I found in the current
> demangler. Ok...
>
> 1) destructors are demangled as: foobar::~foobar(void)
> that should be foobar::~foobar() !
Isn't it a style issue? I can't say I know C++ that good, but
lots of testcases say foo::~foo(void), and cc1plus doesn't
complain with -pedantic -O2 on "class foo { public:
~foo(void);}; foo::~foo(void) {}". If the (void) is invalid
with a destructor declaration or definition, I guess you have an
issue with a missing warning or error in g++ as well.
> 2) [...]
> __vc__Q2t12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b1i0_3RepUi
> basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> >::Rep::operator[](unsigned int)
No, the mangled and demangled now matches as above (I
tested by adding to the testsuite with --format=gnu); a
correction was committed around 2000-07-24 which seem to match
your description. All of libstdc++ (the old one) demangled
correctly after that patch, so the itch people gave me was
scratched.
Perhaps our definitions of "current demangler" differ, or
something. Though if there's a similar case that still fails,
throw it this way.
brgds, H-P