This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH v3 1/8] 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-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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]