From: Lauro Ramos Venancio Date: Fri, 8 Feb 2008 19:46:46 +0000 (+0000) Subject: Fix a bitfield regression. Reported by Anders Carlsson. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c0959fc20d40fbe0c44a88eb1d7fc9395a163840;p=clang Fix a bitfield regression. Reported by Anders Carlsson. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46889 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/CodeGen/CodeGenTypes.cpp b/CodeGen/CodeGenTypes.cpp index bed01eeb61..d293b4f081 100644 --- a/CodeGen/CodeGenTypes.cpp +++ b/CodeGen/CodeGenTypes.cpp @@ -573,5 +573,6 @@ void RecordOrganizer::placeBitField(const FieldDecl *FD) { CGT.addBitFieldInfo(FD, 0, BitFieldSize); Cursor = (Idx + 1) * TySize + BitFieldSize; } - addPaddingFields(Cursor); + if (Cursor > llvmSize) + addPaddingFields(Cursor); } diff --git a/test/CodeGen/2008-02-08-bitfield-bug.c b/test/CodeGen/2008-02-08-bitfield-bug.c new file mode 100644 index 0000000000..1a9c266fe7 --- /dev/null +++ b/test/CodeGen/2008-02-08-bitfield-bug.c @@ -0,0 +1,9 @@ +// RUN: clang %s -emit-llvm + +struct test { + unsigned a:1; + unsigned b:1; +}; + +struct test *t; +