http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54410
Bug #: 54410 Summary: doubled DW_TAG_template_type_param Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug AssignedTo: unassig...@gcc.gnu.org ReportedBy: tro...@gcc.gnu.org I'm using a relatively recent git gcc: commit d789d72be457df9811328179702cab8ac5830465 Author: walt <walt@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Mon Aug 27 17:27:04 2012 +0000 I compiled this program, derived from a libstdc++ test case: #include <unordered_set> #include <string> typedef std::unordered_set<std::string> Set; Set m; int main() { } The DWARF shows duplicate template arguments for unordered_set. I think each parameter name should appear just a single time: <3><38a8>: Abbrev Number: 46 (DW_TAG_template_type_param) <38a9> DW_AT_name : (indirect string, offset: 0x6e7): _Value <38ad> DW_AT_type : <0x1d44> <3><38b1>: Abbrev Number: 46 (DW_TAG_template_type_param) <38b2> DW_AT_name : (indirect string, offset: 0x6f29): _Hash <38b6> DW_AT_type : <0x379c> <3><38ba>: Abbrev Number: 46 (DW_TAG_template_type_param) <38bb> DW_AT_name : (indirect string, offset: 0x9ebb): _Pred <38bf> DW_AT_type : <0x3934> <3><38c3>: Abbrev Number: 46 (DW_TAG_template_type_param) <38c4> DW_AT_name : (indirect string, offset: 0x7826): _Alloc <38c8> DW_AT_type : <0x453a> <3><38cc>: Abbrev Number: 46 (DW_TAG_template_type_param) <38cd> DW_AT_name : (indirect string, offset: 0x6e7): _Value <38d1> DW_AT_type : <0x1d44> <3><38d5>: Abbrev Number: 46 (DW_TAG_template_type_param) <38d6> DW_AT_name : (indirect string, offset: 0x6f29): _Hash <38da> DW_AT_type : <0x379c> <3><38de>: Abbrev Number: 46 (DW_TAG_template_type_param) <38df> DW_AT_name : (indirect string, offset: 0x9ebb): _Pred <38e3> DW_AT_type : <0x3934> <3><38e7>: Abbrev Number: 46 (DW_TAG_template_type_param) <38e8> DW_AT_name : (indirect string, offset: 0x7826): _Alloc <38ec> DW_AT_type : <0x453a>