http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55665
Bug #: 55665 Summary: [4.8 Regression] Missing DW_TAG_lexical_block PC range Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug AssignedTo: unassig...@gcc.gnu.org ReportedBy: jan.kratoch...@redhat.com Target: x86_64-unknown-linux-gnu This is a regression for GDB gdb.cp/abstract-origin.exp. PASS: gcc (GCC) 4.7.3 20121212 (prerelease) FAIL: gcc (GCC) 4.8.0 20121212 (experimental) (regression sometimes in ~ the last month) PASS was: <1><9e>: Abbrev Number: 14 (DW_TAG_subprogram) <9f> DW_AT_abstract_origin: <0x5a> <a3> DW_AT_linkage_name: (indirect string, offset: 0xac): _ZN1AC2Ei [...] <2><d1>: Abbrev Number: 16 (DW_TAG_lexical_block) <d2> DW_AT_low_pc : 0x40081e <da> DW_AT_high_pc : 0x400891 <3><e2>: Abbrev Number: 17 (DW_TAG_variable) <e3> DW_AT_abstract_origin: <0x7c> and above: <2><7b>: Abbrev Number: 11 (DW_TAG_lexical_block) <3><7c>: Abbrev Number: 12 (DW_TAG_variable) <7d> DW_AT_name : (indirect string, offset: 0x51): problem [...] BTW <d1> was missing DW_AT_abstract_origin <0x7b>; but GDB works with that. FAIL is: <1><9e>: Abbrev Number: 14 (DW_TAG_subprogram) <9f> DW_AT_abstract_origin: <0x5a> <a3> DW_AT_linkage_name: (indirect string, offset: 0xa9): _ZN1AC2Ei [...] <nothing for DW_TAG_variable> This means GDB correctly inherits the DIE from inherited DIE tree: <2><7b>: Abbrev Number: 11 (DW_TAG_lexical_block) <3><7c>: Abbrev Number: 12 (DW_TAG_variable) <7d> DW_AT_name : (indirect string, offset: 0x97): problem [...] But that DW_TAG_lexical_block has no DW_AT_low/high_pc (it cannot have as it is not the concrete instance) which is a regression. GDB currently ignores DW_TAG_lexical_block without DW_AT_low/high_pc/range. While GDB could recognize DW_TAG_lexical_block without DW_AT_low/high_pc it would be still a debug info quality regression as the GCC-4.7 range there is more narrow than the DW_TAG_subprogram PC range.