Re: gdb 8.x - g++ 7.x compatibility

Simon Marchi <[email protected]>
Newsgroups gmane.comp.gdb.devel,gmane.comp.gcc.devel
Message-ID <[email protected]>
On 2018-02-07 12:08, Jonathan Wakely wrote:
> Why would they not have a mangled name?
> 
>> Interesting.  What do they look like, and in what context do they 
>> appear?
> 
> Anywhere you need a name for linkage purposes, such as in a function
> signature, or as a template argument of another type, or in the
> std::type_info::name() for the type etc. etc.
> 
> $ g++ -o test.o -c -x c++ - <<< 'struct X {}; void f(X) {}
> template<typename T> struct Y { }; void g(Y<X>) {}' && nm
> --defined-only test.o
> 0000000000000000 T _Z1f1X
> 0000000000000007 T _Z1g1YI1XE
> 
> The mangled name for X is "X" and the mangled name for Y<X> is "YI1XE"
> which includes the name "X".
> 
> This isn't really on-topic for solving the GDB type lookup problem 
> though.

Ah ok, the class name appears mangled in other entities' mangled name.  
But from what I understand there's no mangled name for the class such 
that

   echo <class mangled name> | c++filt

outputs the class name (e.g. "Foo<10>").  That wouldn't make sense, 
since there's no symbol for the class itself.

Simon
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.