We would accidently initialize unnamed bitfields instead of the
following field.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216313
91177308-0d34-0410-b5e6-
96231b3b80d8
}
}
- unsigned FieldIndex = KnownField->getFieldIndex();
+ unsigned FieldIndex = 0;
+ for (auto *FI : RT->getDecl()->fields()) {
+ if (FI->isUnnamedBitfield())
+ continue;
+ if (KnownField == FI)
+ break;
+ ++FieldIndex;
+ }
+
RecordDecl::field_iterator Field =
RecordDecl::field_iterator(DeclContext::decl_iterator(KnownField));
[1].b[1] = 4
};
+// CHECK: @lab = global { [4 x i8], i32 } { [4 x i8] undef, i32 123 }
+struct leading_anon_bitfield { int : 32; int n; } lab = { .n = 123 };
+
void test1(int argc, char **argv)
{
// CHECK: internal global %struct.foo { i8* null, i32 1024 }