Both these testcases: ------------------------------------------------------------------------------ class C { public: typedef void (*t) (C); }; C::t f; ------------------------------------------------------------------------------ class C { public: typedef void (*t) (C); t v; } c; ------------------------------------------------------------------------------ produce on g++ (GCC) 4.4.4 20100402 (prerelease) <1><44>: Abbrev Number: 4 (DW_TAG_subroutine_type) <2><49>: Abbrev Number: 5 (DW_TAG_formal_parameter) <4a> DW_AT_type : <0x2d>
but on g++ (GCC) 4.5.0 20100402 (experimental) <1><53>: Abbrev Number: 6 (DW_TAG_subroutine_type) <2><58>: Abbrev Number: 7 (DW_TAG_formal_parameter) -- Summary: [4.5 Regression] in-class func-ptr type parameter has unspecified DW_AT_type Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jan dot kratochvil at redhat dot com GCC target triplet: x86_64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43628