This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Mangle question


> 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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]