Demangling squangled names

Andrew Macleod amacleod@cygnus.com
Mon Apr 27 14:59:00 GMT 1998


>> Compiling libstdc++ of egcs-2.91.24 with -fsquangle and namespace std,
>> I get the identifier
>> 
>> replace__t12basic_string3ZcZt18string_char_traits1ZcZQ23stdt24__default_alloc_template2b1i0Pcn1PCc
>> 
>> which cannot be demangled by c++filt. I have version 1.1170 of
>> gcc/ChangeLog, so some of the squangling support should be there.
>> 
>> It might be that this identifier is not well-formed. If so, please let
>> me know.
>> 

The identifier is likely fine, as long as everything links.  Squangling is 
still a work in progress, and until recently, could not be demangled at all. 
Support was put in last week, but is not 100% complete yet.  
(I tried your example, and it still doesn't demangle.. the 'n' code does
not demangle yet. if 'n1' is replaced with 'Pc' then it demangles to:

basic_string<char, string_char_traits<char>, std::__default_alloc_template<1, 0> >::replace(char *, char *, char const *)

I also can't guarantee it will be the same for any 2 snapshots of the compiler.
Some of the compression isn't activated yet.

Andrew



More information about the Gcc-bugs mailing list