diff options
author | Walfred Tedeschi <walfred.tedeschi@intel.com> | 2013-11-19 12:19:30 +0000 |
---|---|---|
committer | Walfred Tedeschi <walfred.tedeschi@intel.com> | 2013-11-20 14:42:49 +0100 |
commit | 57803a3c60f399772907ac306f6eefd9fc83fb15 (patch) | |
tree | 0ef27e0102fbefd1efef6f0443d200cd0b8257c4 /gdb | |
parent | 87b8eed7fb7040a67d3f7317258795bdd258612b (diff) | |
download | gdb-57803a3c60f399772907ac306f6eefd9fc83fb15.zip gdb-57803a3c60f399772907ac306f6eefd9fc83fb15.tar.gz gdb-57803a3c60f399772907ac306f6eefd9fc83fb15.tar.bz2 |
Fix conditions in creating a bitfield.
Bitfields are represented by intervals [start, begin]. It means that for an
interval comprised by only one bit start and end will be equal.
The present condition does not always hold. On the other hand in target-description.c
(tdesc_gdb_type) bitfield is created when "f->type" is null. The routine
maint_print_maint_print_c_tdesc_cmd is modified to follow the same strategy.
2013-11-20 Walfred Tedeschi <walfred.tedeschi@intel.com>
* target-descriptions.c (maint_print_maint_print_c_tdesc_cmd):
Modified logic of creating a bitfield to be in sync with
tdesc_gdb_type.
testsuite/
* gdb.xml/maint_print_struct.xml (bitfield): Added bitfield having
start and end equal 0.
Change-Id: I8c62db049995f0c0c30606d9696b86afe237cbb9
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/target-descriptions.c | 2 | ||||
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.xml/maint_print_struct.xml | 1 |
4 files changed, 13 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 66f2087..d65445e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2013-11-20 Walfred Tedeschi <walfred.tedeschi@intel.com> + + * target-descriptions.c (maint_print_maint_print_c_tdesc_cmd): + Modified logic of creating a bitfield to be in sync with + tdesc_gdb_type. + 2013-11-20 Will Newton <will.newton@linaro.org> * arm-tdep.c (arm_get_next_pc): Remove "Infinite loop detected" diff --git a/gdb/target-descriptions.c b/gdb/target-descriptions.c index 44ad401..1410c02 100644 --- a/gdb/target-descriptions.c +++ b/gdb/target-descriptions.c @@ -1762,7 +1762,7 @@ feature = tdesc_create_feature (result, \"%s\");\n", /* Going first for implicitly sized types, else part handles bitfields. As reported on xml-tdesc.c implicitly sized types cannot contain a bitfield. */ - if (f->start == 0 && f->end == 0) + if (f->type != NULL) { printf_unfiltered (" field_type = tdesc_named_type (feature, \"%s\");\n", diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 8314e04..68be4b3 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2013-11-20 Walfred Tedeschi <walfred.tedeschi@intel.com> + + * gdb.xml/maint_print_struct.xml (bitfield): Added bitfield having + start and end equal 0. + 2013-11-19 Yao Qi <yao@codesourcery.com> * lib/mi-support.exp (mi_child_regexp): Remove 'whatever'. diff --git a/gdb/testsuite/gdb.xml/maint_print_struct.xml b/gdb/testsuite/gdb.xml/maint_print_struct.xml index 5ef0683..deac300 100644 --- a/gdb/testsuite/gdb.xml/maint_print_struct.xml +++ b/gdb/testsuite/gdb.xml/maint_print_struct.xml @@ -15,6 +15,7 @@ </struct> <struct id="bitfield" size="8"> + <field name="field0" start="0" end="0"/> <field name="field1" start="24" end="63"/> <field name="field2" start="16" end="24"/> </struct> |