This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/16328] __cxa_demangle problem with member pointers as template parameters
- From: "ian at wasabisystems dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 13 Jul 2004 02:26:27 -0000
- Subject: [Bug libstdc++/16328] __cxa_demangle problem with member pointers as template parameters
- References: <20040702125831.16328.ml105rl@despammed.com>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From ian at wasabisystems dot com 2004-07-13 02:26 -------
I also see that GNU/Linux nm 2.14.90.0.6 20030820 crashes on this test case.
However, the current version of the demangler works correctly. The mangled name
which appears to cause the crash is
_ZZN1x6GetTLVIN3awn4dscr6StructIS_NS2_6MemberIMS_iXadL_ZNS_1iEEENS4_IMS_dXadL_ZNS_1dEEENS4_IMS_NS_1yEXadL_ZNS_2y1EEENS2_4LastEEEEEEEEES_EEbRT0_E19__PRETTY_FUNCTION__
and the current demangler demangles that as
bool x::GetTLV<awn::dscr::Struct<x, awn::dscr::Member<int x::*, &(x::i),
awn::dscr::Member<double x::*, &(x::d), awn::dscr::Member<x::y x::*, &(x::y1),
awn::dscr::Last> > > >, x>(x&)::__PRETTY_FUNCTION__
The demangler has been completely rewritten since 2.14.90, so that crash can be
presumed to be fixed.
With your test case, the mainline compiler does not produce the questionable
XadsrS5_NS5_1iEE string. Instead, it uses the local name construct
XadL_ZNS_1iEEE. That seems correct and reasonable.
I am closing this PR as fixed, because to me it seems that it has already been
fixed in the mainline versions. Let me know if you disagree.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16328