https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94845
Bug ID: 94845
Summary: DWARF function name doesn't match demangled name in
base type template parameters
Product: gcc
Version: 9.3.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: robert at ocallahan dot org
Target Milestone: ---
Example:
template <typename T> void func(T s) {}
int main(void) {
func<short>(-1);
return 0;
}
$ g++ -g -o ~/tmp/test ~/tmp/test.cc && objdump -g ~/tmp/test|grep func
<2a> DW_AT_name : (indirect string, offset: 0x0): func<short int>
<31> DW_AT_linkage_name: (indirect string, offset: 0x10): _Z4funcIsEvT_
$ c++filt _Z4funcIsEvT_
void func<short>(short)
It's unclear why 'short int' appears instead of just 'short'. It would be
simpler if they were consistent (and, well, shorter). clang++ generates
'short'.