http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49130
--- Comment #7 from dodji at seketeli dot org <dodji at seketeli dot org> 2011-05-31 11:16:16 UTC --- "jan.kratochvil at redhat dot com" <gcc-bugzi...@gcc.gnu.org> a écrit: > --- Comment #6 from Jan Kratochvil <jan.kratochvil at redhat dot com> > 2011-05-30 08:44:43 UTC --- > Another issue is with DMGL_VERBOSE. nm -C does not use DMGL_VERBOSE: > libstdc++.so.6.0.16.debug > 00000000000a4e50 t bool __gnu_cxx::operator==<char*, > std::string>(__gnu_cxx::__normal_iterator<char*, std::string> const&, > __gnu_cxx::__normal_iterator<char*, std::string> const&) > > But the DIE uses "DMGL_VERBOSE": > <2><1836e2>: Abbrev Number: 29 (DW_TAG_subprogram) > <1836e4> DW_AT_name : (indirect string, offset: 0x2e3f0): > operator==<char*, std::basic_string<char> > > <1><188ab4>: Abbrev Number: 103 (DW_TAG_subprogram) > <188ab5> DW_AT_specification: <0x1836e2> > <1><193100>: Abbrev Number: 129 (DW_TAG_subprogram) > <193102> DW_AT_abstract_origin: <0x188ab4> > <193106> DW_AT_low_pc : 0xa4e50 I understand that DW_AT_name and DW_AT_MIPS_linkage_name being /gratuitously/ different can be an issue. But here, I understand what you are highlighting as a different matter. nm -C is compressing[1] the output to avoid cluttering it too much. But DW_AT_name really represents the name of the operator as written in the source code[2], with its template parameters replaced with their corresponding arguments. How would that be an issue? [1]: http://www.codesourcery.com/public/cxx-abi/abi.html#mangling, look for 'compression' (chapter 5.1.8 there). [2]: DWARF4 spec, 1.21 [Identitier Names] says: "DW_AT_name attribute, whose value is a string representing the name as it appears in the source program"