diff options
-rw-r--r-- | CodeGen/CodeGenTypes.cpp | 2 | ||||
-rw-r--r-- | test/CodeGen/struct.c | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/CodeGen/CodeGenTypes.cpp b/CodeGen/CodeGenTypes.cpp index f73c9dfeef..f00413c849 100644 --- a/CodeGen/CodeGenTypes.cpp +++ b/CodeGen/CodeGenTypes.cpp @@ -459,7 +459,7 @@ void RecordOrganizer::layoutStructFields(const ASTRecordLayout &RL) { } else { ExtraBits = 0; const llvm::Type *Ty = CGT.ConvertType(FD->getType()); - addLLVMField(Ty, CGT.getTargetData().getTypeSizeInBits(Ty), FD, 0, 0); + addLLVMField(Ty, CGT.getTargetData().getABITypeSizeInBits(Ty), FD, 0, 0); } } STy = llvm::StructType::get(LLVMFields); diff --git a/test/CodeGen/struct.c b/test/CodeGen/struct.c index 329dfdeb6d..574cec908c 100644 --- a/test/CodeGen/struct.c +++ b/test/CodeGen/struct.c @@ -90,3 +90,16 @@ void f8() } +/* _Bool types */ + +struct _w +{ + short a,b; + short c,d; + short e,f; + short g; + + unsigned int h,i; + + _Bool j,k; +} ws; |