From 9f078b773d8346fb0da68ec65d5ab12d99c56bf9 Mon Sep 17 00:00:00 2001 From: Greg Clayton Date: Tue, 6 Nov 2012 18:22:59 +0000 Subject: [PATCH] Added unnamed bitfields to our bitfield test. llvm-svn: 167473 --- .../Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp | 1 - lldb/test/lang/c/bitfields/TestBitfields.py | 13 ++++++------- lldb/test/lang/c/bitfields/main.c | 5 ++++- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp index 69954f41a345..dcaf2e8aeb5b 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp @@ -1813,7 +1813,6 @@ SymbolFileDWARF::ParseChildMembers if (unnamed_bit_size > 0) { - //printf ("0x%8.8x: Unnamed bitfield added bit_size = 0x%x, bit_offset = 0x%x\n", die->GetOffset(), unnamed_bit_size, unnamed_bit_offset); clang::FieldDecl *unnamed_bitfield_decl = GetClangASTContext().AddFieldToRecordType (class_clang_type, NULL, member_type->GetClangLayoutType(), diff --git a/lldb/test/lang/c/bitfields/TestBitfields.py b/lldb/test/lang/c/bitfields/TestBitfields.py index 66caa52c1fdb..177242305e85 100644 --- a/lldb/test/lang/c/bitfields/TestBitfields.py +++ b/lldb/test/lang/c/bitfields/TestBitfields.py @@ -113,15 +113,14 @@ class BitfieldsTestCase(TestBase): frame = thread.GetFrameAtIndex(0) bits = frame.FindVariable("bits") self.DebugSBValue(bits) - self.assertTrue(bits.GetTypeName() == "Bits" and - bits.GetNumChildren() == 8 and - bits.GetByteSize() == 32, - "(Bits)bits with byte size of 32 and 8 children") + self.assertTrue(bits.GetTypeName() == 'Bits', "bits.GetTypeName() == 'Bits'"); + self.assertTrue(bits.GetNumChildren() == 10, "bits.GetNumChildren() == 10"); + self.assertTrue(bits.GetByteSize() == 32, "bits.GetByteSize() == 32"); # Notice the pattern of int(b1.GetValue(), 0). We pass a base of 0 # so that the proper radix is determined based on the contents of the # string. - b1 = bits.GetChildAtIndex(0) + b1 = bits.GetChildMemberWithName("b1") self.DebugSBValue(b1) self.assertTrue(b1.GetName() == "b1" and b1.GetTypeName() == "uint32_t:1" and @@ -129,7 +128,7 @@ class BitfieldsTestCase(TestBase): int(b1.GetValue(), 0) == 1, 'bits.b1 has type uint32_t:1, is in scope, and == 1') - b7 = bits.GetChildAtIndex(6) + b7 = bits.GetChildMemberWithName("b7") self.DebugSBValue(b7) self.assertTrue(b7.GetName() == "b7" and b7.GetTypeName() == "uint32_t:7" and @@ -137,7 +136,7 @@ class BitfieldsTestCase(TestBase): int(b7.GetValue(), 0) == 127, 'bits.b7 has type uint32_t:7, is in scope, and == 127') - four = bits.GetChildAtIndex(7) + four = bits.GetChildMemberWithName("four") self.DebugSBValue(four) self.assertTrue(four.GetName() == "four" and four.GetTypeName() == "uint32_t:4" and diff --git a/lldb/test/lang/c/bitfields/main.c b/lldb/test/lang/c/bitfields/main.c index 00d455ceab7f..b833791b3f76 100644 --- a/lldb/test/lang/c/bitfields/main.c +++ b/lldb/test/lang/c/bitfields/main.c @@ -12,9 +12,12 @@ int main (int argc, char const *argv[]) { struct Bits { - uint32_t b1 : 1, + uint32_t : 1, // Unnamed bitfield + b1 : 1, b2 : 2, + : 2, // Unnamed bitfield b3 : 3, + : 2, // Unnamed bitfield (this will get removed) b4 __attribute__ ((align(16))), b5 : 5, b6 : 6,