aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite')
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.dwarf2/nonvar-access.exp33
2 files changed, 37 insertions, 1 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index e9dc36f..8147091 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2016-11-24 Andreas Arnez <arnez@linux.vnet.ibm.com>
+ * gdb.dwarf2/nonvar-access.exp: Add a test for accessing
+ non-byte-aligned bit fields.
+
+2016-11-24 Andreas Arnez <arnez@linux.vnet.ibm.com>
+
PR gdb/12616
* gdb.dwarf2/nonvar-access.exp: New testcase. Check that GDB
respects the DW_AT_data_bit_offset attribute.
diff --git a/gdb/testsuite/gdb.dwarf2/nonvar-access.exp b/gdb/testsuite/gdb.dwarf2/nonvar-access.exp
index 21532a6..8910f6d 100644
--- a/gdb/testsuite/gdb.dwarf2/nonvar-access.exp
+++ b/gdb/testsuite/gdb.dwarf2/nonvar-access.exp
@@ -32,7 +32,7 @@ Dwarf::assemble $asm_file {
{DW_AT_name main.c}
} {
declare_labels int_type_label short_type_label
- declare_labels struct_s_label
+ declare_labels struct_s_label struct_t_label
int_type_label: base_type {
{name "int"}
@@ -58,6 +58,24 @@ Dwarf::assemble $asm_file {
}
}
+ struct_t_label: structure_type {
+ {name t}
+ {byte_size 4 DW_FORM_sdata}
+ } {
+ member {
+ {name a}
+ {type :$int_type_label}
+ {data_member_location 0 DW_FORM_udata}
+ {bit_size 9 DW_FORM_udata}
+ }
+ member {
+ {name b}
+ {type :$int_type_label}
+ {data_bit_offset 9 DW_FORM_udata}
+ {bit_size 23 DW_FORM_udata}
+ }
+ }
+
DW_TAG_subprogram {
{name main}
{DW_AT_external 1 flag}
@@ -84,6 +102,18 @@ Dwarf::assemble $asm_file {
bit_piece 24 0
} SPECIAL_expr}
}
+ DW_TAG_variable {
+ {name def_t}
+ {type :$struct_t_label}
+ {location {
+ const1u 0
+ stack_value
+ bit_piece 9 0
+ const1s -1
+ stack_value
+ bit_piece 23 0
+ } SPECIAL_expr}
+ }
}
}
}
@@ -99,5 +129,6 @@ if ![runto_main] {
}
gdb_test "print def_s" " = \\{a = 0, b = -1\\}"
+gdb_test "print def_t" " = \\{a = 0, b = -1\\}"
gdb_test "print undef_int" " = <optimized out>"
gdb_test "print undef_s.a" " = <optimized out>"