DW_FORM_data8

Richard Henderson
2002-03-14T21:31:45Z

The dwarf2 reader doesn't believe that DW_FORM_data8 holds
a constant value. Fixed thus.

Ok?

r~

PS: Not sure what generated this form -- certainly gcc should be
emitting the smaller forms when the array bounds allow. Perhaps
it's output from an older gcc... Anyway, it shows up on an ia64
installation I have here.

* dwarf2read.c (read_array_type): Accept DW_FORM_data8 as
a constant array bound.

Index: dwarf2read.c
===================================================================
RCS file: /cvs/src/src/gdb/dwarf2read.c,v
retrieving revision 1.49
diff -c -p -d -r1.49 dwarf2read.c
*** dwarf2read.c 2002/02/28 11:21:16 1.49
--- dwarf2read.c 2002/03/14 21:28:59
*************** read_array_type (struct die_info *die, s
*** 2538,2544 ****
else if (attr->form == DW_FORM_udata
|| attr->form == DW_FORM_data1
|| attr->form == DW_FORM_data2
! || attr->form == DW_FORM_data4)
{
low = DW_UNSND (attr);
}
--- 2538,2545 ----
else if (attr->form == DW_FORM_udata
|| attr->form == DW_FORM_data1
|| attr->form == DW_FORM_data2
! || attr->form == DW_FORM_data4
! || attr->form == DW_FORM_data8)
{
low = DW_UNSND (attr);
}
*************** read_array_type (struct die_info *die, s
*** 2564,2570 ****
else if (attr->form == DW_FORM_udata
|| attr->form == DW_FORM_data1
|| attr->form == DW_FORM_data2
! || attr->form == DW_FORM_data4)
{
high = DW_UNSND (attr);
}
--- 2565,2572 ----
else if (attr->form == DW_FORM_udata
|| attr->form == DW_FORM_data1
|| attr->form == DW_FORM_data2
! || attr->form == DW_FORM_data4
! || attr->form == DW_FORM_data8)
{
high = DW_UNSND (attr);
}