echo 'class C { protected: typedef int t; t v; } c;' | g++ -Wall -c -g -x c++ - <2><33>: Abbrev Number: 3 (DW_TAG_typedef) <34> DW_AT_name : t <38> DW_AT_type : <0x4a> <2><3c>: Abbrev Number: 4 (DW_TAG_member) <3d> DW_AT_name : v <41> DW_AT_type : <0x33> <45> DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst: 0) <48> DW_AT_accessibility: 2 (protected) DIE <0x33> should have DW_AT_accessibility. FAIL g++ (GCC) 4.6.0 20100625 (experimental) FAIL g++ (GCC) 4.5.1 20100625 (prerelease) SKIP g++ (GCC) 4.4.5 20100625 (prerelease) - C::t is missing there. FAIL gcc-c++-4.4.4-8.fc14.x86_64 G++ properly respects the access control: .C:3: error: ‘typedef int C::t’ is protected .C:11: error: within this context But GDB cannot display the access control during `ptype C'. GDB does not and probably should not respect the access control, though. -- Summary: class->DW_TAG_typedef is missing DW_AT_accessibility Product: gcc Version: 4.5.1 Status: UNCONFIRMED Severity: minor 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=44668