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