This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug debug/61132] New: bad DWARF for VLA in the middle of a struct


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=61132

            Bug ID: 61132
           Summary: bad DWARF for VLA in the middle of a struct
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: debug
          Assignee: unassigned at gcc dot gnu.org
          Reporter: tromey at gcc dot gnu.org

Consider this source:

void f(int n)
{
  struct s { int before; int vla[n]; int after; } sv;
}


This uses the GNU extension of a VLA in the middle of a structure.

The DWARF generated for this is odd and not very useful to gdb.

First, the size of the struct type is weird:

 <2><55>: Abbrev Number: 4 (DW_TAG_structure_type)
    <56>   DW_AT_name        : s    
    <58>   DW_AT_byte_size   : 0xffffffff    
    <5c>   DW_AT_decl_file   : 1    
    <5d>   DW_AT_decl_line   : 3    
    <5e>   DW_AT_sibling     : <0x87>    


Second, the location of the "after" member is wrong:

 <3><7a>: Abbrev Number: 5 (DW_TAG_member)
    <7b>   DW_AT_name        : (indirect string, offset: 0x4b): after    
    <7f>   DW_AT_decl_file   : 1    
    <80>   DW_AT_decl_line   : 3    
    <81>   DW_AT_type        : <0x97>    
    <85>   DW_AT_data_member_location: 0


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]