aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWalfred Tedeschi <walfred.tedeschi@intel.com>2013-11-19 12:19:30 +0000
committerWalfred Tedeschi <walfred.tedeschi@intel.com>2013-11-20 14:42:49 +0100
commit57803a3c60f399772907ac306f6eefd9fc83fb15 (patch)
tree0ef27e0102fbefd1efef6f0443d200cd0b8257c4
parent87b8eed7fb7040a67d3f7317258795bdd258612b (diff)
downloadgdb-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
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/target-descriptions.c2
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.xml/maint_print_struct.xml1
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>