analysis of libiberty/cp-demangle.c for libsupc++/__cxa_demangle

Benjamin Kosnik bkoz@redhat.com
Mon Feb 23 23:06:00 GMT 2004


An experimental patch to use the libiberty cp-demangle routines in
libsupc++/__cxa_demangle is attached. An additional (small) patch is
needed for libiberty/cp-demangle.c.

I have 4 new fails when it's used. 

FAIL: demangle/abi_examples/01.cc execution test
FAIL: demangle/abi_examples/02.cc execution test
string: f
libiberty: float
libstdc++: f

I think libiberty is pretty clearly wrong here, just based on the C++ ABI docs.

FAIL: demangle/regression/cw-11.cc execution test
string: _X11TransParseAddress
libiberty: _X11TransParseAddress, -2: invalid mangled name
libstdc++: _X11TransParseAddress

Same: this is twisted, but not invalid.

FAIL: demangle/regression/cw-16.cc execution test
string: _Z3fooIA6_KiEvA9_KT_rVPrS4_
libiberty:void foo<int const [6]>(int const ( const [9]) [6], int const ( const ( restrict* volatile restrict) [9]) [6])
libstdc++:void foo<int const [6]>(int const [9][6], int const restrict (* volatile restrict) [9][6])

This is based on libstdc++/12736. 
See http://gcc.gnu.org/ml/libstdc++/2003-10/msg00222.html

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: p.20040223-3-libiberty.patch
URL: <http://gcc.gnu.org/pipermail/libstdc++/attachments/20040223/823ebdee/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: p.20040223-3.patch
URL: <http://gcc.gnu.org/pipermail/libstdc++/attachments/20040223/823ebdee/attachment-0001.ksh>


More information about the Libstdc++ mailing list