http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51950
Bug #: 51950 Summary: [4.6 Regression] fdebug-types-section regression for member pointers Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug AssignedTo: unassig...@gcc.gnu.org ReportedBy: jan.kratoch...@redhat.com CC: ccout...@gcc.gnu.org, do...@gcc.gnu.org Target: x86_64-unknown-linux-gnu GDB testsuite: ptype F -type = void (S::*)(S * const) -(gdb) PASS: gdb.cp/temargs.exp: test type of F in k2_m +type = void (S::*)(S *, S * const) +(gdb) FAIL: gdb.cp/temargs.exp: test type of F in k2_m UNSUPPORTED: gcc (GCC) 4.4.7 20120122 (prerelease) - no DWARF-4 PASS: gcc (GCC) 4.5.4 20120122 (prerelease) FAIL: gcc (GCC) 4.6.3 20120122 (prerelease) (-fdebug-types-section) FAIL: gcc (GCC) 4.7.0 20120122 (experimental) -fdebug-types-section PASS: gcc (GCC) 4.7.0 20120122 (experimental) -fno-debug-types-section ------------------------------------------------------------------------------ struct S { void somefunc() {} }; template<void (S::*F) ()> struct K2 { void k2_m () {} /* line 6 */ }; K2<&S::somefunc> k2; int main () { k2.k2_m (); return 0; } ------------------------------------------------------------------------------ g++ -gdwarf-4 -fdebug-types-section ------------------------------------------------------------------------------ Compilation Unit @ offset 0x0: Signature: a663cce782d1a2b9 Type Offset: 0x1d <0><17>: Abbrev Number: 1 (DW_TAG_type_unit) <1><1d>: Abbrev Number: 2 (DW_TAG_structure_type) <2><25>: Abbrev Number: 3 (DW_TAG_member) <26> DW_AT_name : (indirect string, offset: 0xca): __pfn <2c> DW_AT_type : <0x3e> <2><31>: Abbrev Number: 3 (DW_TAG_member) <32> DW_AT_name : (indirect string, offset: 0x26): __delta <1><3e>: Abbrev Number: 4 (DW_TAG_pointer_type) <40> DW_AT_type : <0x4b> <1><4b>: Abbrev Number: 6 (DW_TAG_subroutine_type) <4c> DW_AT_object_pointer: <0x59> <2><54>: Abbrev Number: 7 (DW_TAG_formal_parameter) <55> DW_AT_type : <0x5f> <59> DW_AT_artificial : 1 <2><59>: Abbrev Number: 7 (DW_TAG_formal_parameter) <5a> DW_AT_type : <0x5f> <5e> DW_AT_artificial : 1 <1><5f>: Abbrev Number: 8 (DW_TAG_pointer_type) <61> DW_AT_type : signature: d93bf8a6a14b2dca The DIEs <0x54> is excessive.