diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 3060f8e8c9..905e2fced4 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,15 @@ +2011-07-27 Jan Kratochvil + + * gdb.dwarf2/dw2-simple-locdesc.S: Change DWARF version to 3. + (.Ldie26, .Ldie41, .Ldie4a, .Ldie54, .Ldie5b): Remove. + (.Ldie30) Add as field "data4". + (.Ldie32) Rename field "b" to "shl". + (abbrev4) Change for the "data4" field. + (abbrev5, abbrev6) Remove. + * gdb.dwarf2/dw2-simple-locdesc.exp (p &s.b): Rename to ... + (p &s.shl): ... here. Add comment. + (p &s.data4): New. + 2011-07-27 Jan Kratochvil Fix crash on lval_computed values. diff --git a/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.S b/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.S index 029a9c5d14..3f7df5fd74 100644 --- a/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.S +++ b/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.S @@ -27,7 +27,7 @@ var: d: .4byte .Lcu_end - 1f /* Length of Compilation Unit Info */ 1: - .value 0x2 /* DWARF version number */ + .value 0x3 /* DWARF version number */ .4byte .Ldebug_abbrev0 /* Offset Into Abbrev. Section */ .byte 0x4 /* Pointer Size (in bytes) */ .uleb128 0x1 /* (DIE (0xb) DW_TAG_compile_unit) */ @@ -39,18 +39,16 @@ d: .4byte 0x1000004 /* DW_AT_byte_size */ .byte 0x1 /* DW_AT_decl_file () */ .byte 0x1 /* DW_AT_decl_line */ -.Ldie26: - .uleb128 0x3 /* (DIE (0x26) DW_TAG_member) */ - .ascii "a\0" /* DW_AT_name */ +.Ldie30: + .uleb128 0x4 /* (DIE (0x30) DW_TAG_member) */ + .ascii "data4\0" /* DW_AT_name */ .byte 0x1 /* DW_AT_decl_file () */ .byte 0x1 /* DW_AT_decl_line */ - .4byte .Ldie41 - d /* DW_AT_type */ - .byte 0x2 /* DW_AT_data_member_location */ - .byte 0x23 /* DW_OP_plus_uconst */ - .uleb128 0 + .4byte .Ldie62 - d /* DW_AT_type */ + .4byte 0x10000 /* DW_AT_data_member_location */ .Ldie32: .uleb128 0x3 /* (DIE (0x32) DW_TAG_member) */ - .ascii "b\0" /* DW_AT_name */ + .ascii "shl\0" /* DW_AT_name */ .byte 0x1 /* DW_AT_decl_file () */ .byte 0x1 /* DW_AT_decl_line */ .4byte .Ldie62 - d /* DW_AT_type */ @@ -60,24 +58,6 @@ d: .byte 0x24 /* DW_OP_shl */ .byte 0x22 /* DW_OP_plus */ .byte 0 /* end of children of DIE 0x19 */ -.Ldie41: - .uleb128 0x4 /* (DIE (0x41) DW_TAG_array_type) */ - .4byte .Ldie5b - d /* DW_AT_type */ -.Ldie4a: - .uleb128 0x5 /* (DIE (0x4a) DW_TAG_subrange_type) */ - .4byte .Ldie54 - d /* DW_AT_type */ - .4byte 0xffffff /* DW_AT_upper_bound */ - .byte 0 /* end of children of DIE 0x41 */ -.Ldie54: - .uleb128 0x6 /* (DIE (0x54) DW_TAG_base_type) */ - .byte 0x8 /* DW_AT_byte_size */ - .byte 0x7 /* DW_AT_encoding */ - .4byte .LASF0 /* DW_AT_name: "sizetype" */ -.Ldie5b: - .uleb128 0x6 /* (DIE (0x5b) DW_TAG_base_type) */ - .byte 0x1 /* DW_AT_byte_size */ - .byte 0x6 /* DW_AT_encoding */ - .4byte .LASF1 /* DW_AT_name: "char" */ .Ldie62: .uleb128 0x7 /* (DIE (0x62) DW_TAG_base_type) */ .byte 0x4 /* DW_AT_byte_size */ @@ -137,30 +117,18 @@ d: .byte 0 .byte 0 .uleb128 0x4 /* (abbrev code) */ - .uleb128 0x1 /* (TAG: DW_TAG_array_type) */ - .byte 0x1 /* DW_children_yes */ - .uleb128 0x49 /* (DW_AT_type) */ - .uleb128 0x13 /* (DW_FORM_ref4) */ - .byte 0 - .byte 0 - .uleb128 0x5 /* (abbrev code) */ - .uleb128 0x21 /* (TAG: DW_TAG_subrange_type) */ + .uleb128 0xd /* (TAG: DW_TAG_member) */ .byte 0 /* DW_children_no */ - .uleb128 0x49 /* (DW_AT_type) */ - .uleb128 0x13 /* (DW_FORM_ref4) */ - .uleb128 0x2f /* (DW_AT_upper_bound) */ - .uleb128 0x6 /* (DW_FORM_data4) */ - .byte 0 - .byte 0 - .uleb128 0x6 /* (abbrev code) */ - .uleb128 0x24 /* (TAG: DW_TAG_base_type) */ - .byte 0 /* DW_children_no */ - .uleb128 0xb /* (DW_AT_byte_size) */ - .uleb128 0xb /* (DW_FORM_data1) */ - .uleb128 0x3e /* (DW_AT_encoding) */ - .uleb128 0xb /* (DW_FORM_data1) */ .uleb128 0x3 /* (DW_AT_name) */ - .uleb128 0xe /* (DW_FORM_strp) */ + .uleb128 0x8 /* (DW_FORM_string) */ + .uleb128 0x3a /* (DW_AT_decl_file) */ + .uleb128 0xb /* (DW_FORM_data1) */ + .uleb128 0x3b /* (DW_AT_decl_line) */ + .uleb128 0xb /* (DW_FORM_data1) */ + .uleb128 0x49 /* (DW_AT_type) */ + .uleb128 0x13 /* (DW_FORM_ref4) */ + .uleb128 0x38 /* (DW_AT_data_member_location) */ + .uleb128 0x6 /* (DW_FORM_data4) */ .byte 0 .byte 0 .uleb128 0x7 /* (abbrev code) */ diff --git a/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.exp b/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.exp index 9fbca1b9f4..8d39f8800c 100644 --- a/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.exp +++ b/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.exp @@ -30,4 +30,10 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" object {}] != "" clean_restart $executable -gdb_test "p &s.b" { = \(int \*\) 0x1000000} +# Re: [patch 2/2] Fix decode_locdesc for gcc-4.7.x optimized DWARF +# http://sourceware.org/ml/gdb-patches/2011-07/msg00766.html +gdb_test "p &s.shl" { = \(int \*\) 0x1000000} + +# Re: RFC: fix DW_AT_data_member_location buglet +# http://sourceware.org/ml/gdb-patches/2011-05/msg00291.html +gdb_test "p &s.data4" { = \(int \*\) 0x10000}