This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: RFA: New V3 demangler
- From: Carlo Wood <carlo at alinoe dot com>
- To: Ian Lance Taylor <ian at wasabisystems dot com>
- Cc: gcc-patches at gcc dot gnu dot org, dj at redhat dot com
- Date: Sat, 22 Nov 2003 15:37:13 +0100
- Subject: Re: RFA: New V3 demangler
- References: <20031120210556.20368.qmail@gossamer.airs.com>
On Thu, Nov 20, 2003 at 04:05:56PM -0500, Ian Lance Taylor wrote:
> So, I wrote a new V3 demangler in C. This one passes all the
> libiberty tests, modulo a few minor whitespace changes (the whitespace
> is now more like that generated by the libstdc++-v3 demangler written
> in C++). It also passes the gdb testsuite.
>
> This demangler also handles a few cases which the libstdc++-v3
> demangler does not currently demangle correctly, such as
> _Z10hairyfunc5PFPFilEPcE
Huh? Works fine for me.
~/c++/demangler>c++filt _Z10hairyfunc5PFPFilEPcE 2> /dev/null
hairyfunc5(int (*)(long) (*)(char*))
> _Z1fILi1ELc120EEv1AIXplT_cviLd810000000000000000703DAD7A370C5EEE
This is an ABI version 1 name containing a double, those are
mangled ambigiously: I cannot demangle it, it would be guessing.
ABI version 2 will be supported soon (see PR13045). I already
got it working at home:
~/c++/demangler>./c++filt _Z1fILi1ELc120EEv1AIXplT_cviLd3ff3be76c8b43958EEE 2> /dev/null
void f<1, (char)120>(A<(1) + ((int)((double)1.234))>)
--
Carlo Wood <carlo@alinoe.com>