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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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

Attachment: p.20040223-3-libiberty.patch
Description: Text document

Attachment: p.20040223-3.patch
Description: Text document


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