This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH v3 1/8] Fix conditions in creating a bitfield.
- From: Walfred Tedeschi <walfred dot tedeschi at intel dot com>
- To: gdb-patches at sourceware dot org, walfred dot tedeschi at intel dot com, mircea dot gherzan at intel dot com
- Date: Fri, 30 Aug 2013 11:57:56 +0200
- Subject: [PATCH v3 1/8] Fix conditions in creating a bitfield.
- Authentication-results: sourceware.org; auth=none
- References: <1377856683-11267-1-git-send-email-walfred dot tedeschi at intel dot com>
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-07-31 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/
* maint_print_struct.xml (bitfield): Added bitfield having
start and end equal 0.
---
gdb/target-descriptions.c | 2 +-
gdb/testsuite/gdb.xml/maint_print_struct.xml | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
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/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>
--
1.7.10.4