From c0959fc20d40fbe0c44a88eb1d7fc9395a163840 Mon Sep 17 00:00:00 2001 From: Lauro Ramos Venancio Date: Fri, 8 Feb 2008 19:46:46 +0000 Subject: [PATCH] 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 --- CodeGen/CodeGenTypes.cpp | 3 ++- test/CodeGen/2008-02-08-bitfield-bug.c | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 test/CodeGen/2008-02-08-bitfield-bug.c 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; + -- 2.50.1