Use getABITypeSizeInBits() instead of getTypeSizeInBits() during struct layout.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44798 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/CodeGen/CodeGenTypes.cpp b/CodeGen/CodeGenTypes.cpp
index f73c9df..f00413c 100644
--- a/CodeGen/CodeGenTypes.cpp
+++ b/CodeGen/CodeGenTypes.cpp
@@ -459,7 +459,7 @@
     } 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 329dfde..574cec9 100644
--- a/test/CodeGen/struct.c
+++ b/test/CodeGen/struct.c
@@ -90,3 +90,16 @@
 }
 
 
+/* _Bool types */
+
+struct _w
+{
+  short a,b;
+  short c,d;
+  short e,f;
+  short g;
+
+  unsigned int h,i;
+
+  _Bool j,k;
+} ws;