c++/5390: Libiberty fails to demangle multi-digit template parameters.

Carlo Wood carlo@alinoe.com
Fri Mar 7 13:22:00 GMT 2003


On Fri, Mar 07, 2003 at 02:26:50AM -0000, bangerth@dealii.org wrote:
> Synopsis: Libiberty fails to demangle multi-digit template parameters.
> 
> State-Changed-From-To: open->feedback
> State-Changed-By: bangerth
> State-Changed-When: Fri Mar  7 02:26:50 2003
> State-Changed-Why:
>     Carlo, this report has been sitting idly for a year now.
>     What is the present state? Is it still unsolved, or did
>     your patch go in?
>     
>     Thanks
>       Wolfgang
> 
> http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=5390


I don't have 2.95.4 and don't even know if there is a CVS branch for it.

The file libiberty/testsuite/demangle-expected still exists in version 3.3,
and contains some broken mangled names (the way 2.95.x doesn't mangle them):
my patch was not applied to 'libiberty/testsuite/demangle-expected' but it
seems to have been partly applied, or someone did double work (and a bad job).

c++filt of 3.3 does not demangle the correct mangled names (at least the
ones I tried) - while it does demangle the old (wrong) mangled names.  By
looking at libiberty/cplus-dem.c it seems that the patch was at least party
applied, but someone made changes that broke it, or they ignored failing
hunks.  As it is, libiberty/cplus-dem.c cannot demangle all the names as
produced by 2.95.x.

Because in the past my patches have been totally ignored too often, I did put
this one in the bugs database, so it wouldn't get lost... But later I got so
much demotivated that I unsubbed from all gcc mailinglists and stopped
caring about gcc.  Therefore I must say now: I am sorry, but I can't bother
to put more time into this one and fix it AGAIN - for the current cplus-dem.c.
Perhaps you manage to manually fix the current cplus-dem.c by looking at
the old patch and figuring out what was applied and what was not applied.
Keep in mind that it is not possible, nor interesting to keep backwards
compatibility with the mangled names as mangled by pre-2.95.x (the ones
with a '-' in front of it in my testsuite/demangle-expected patch) in
libiberty/testsuite/demangle-expected: if you do that then you garanteed
have a broken demangler for the way 2.95.x mangles these names.  My patch
(for cplus-dem.c) was the best possible fix imho.

-- 
Carlo Wood <carlo@alinoe.com>



More information about the Gcc-bugs mailing list