]> granicus.if.org Git - clang/commitdiff
Use getABITypeSizeInBits() instead of getTypeSizeInBits() during struct layout.
authorDevang Patel <dpatel@apple.com>
Mon, 10 Dec 2007 18:37:40 +0000 (18:37 +0000)
committerDevang Patel <dpatel@apple.com>
Mon, 10 Dec 2007 18:37:40 +0000 (18:37 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44799 91177308-0d34-0410-b5e6-96231b3b80d8

CodeGen/CodeGenTypes.cpp

index f00413c849a57dbe8b6191a9b12216629c55adba..0cc9516d68e0bd3f7d275b810ba94001cc65b08f 100644 (file)
@@ -417,15 +417,15 @@ void RecordOrganizer::layoutStructFields(const ASTRecordLayout &RL) {
         // struct { char A; short CurrentField:2; };
         const llvm::Type *Ty = CGT.ConvertType(FD->getType());
         // Calculate extra bits available in this bitfield.
-        ExtraBits = CGT.getTargetData().getTypeSizeInBits(Ty) - BitFieldSize;
+        ExtraBits = CGT.getTargetData().getABITypeSizeInBits(Ty) - BitFieldSize;
 
         if (LLVMFields.empty()) 
           // Ths is - struct { char CurrentField:2; char B:4; }
           addLLVMField(Ty, BitFieldSize, FD, 0, ExtraBits);
         else {
           const llvm::Type *PrevTy = LLVMFields.back();
-          if (CGT.getTargetData().getTypeSizeInBits(PrevTy) >=
-              CGT.getTargetData().getTypeSizeInBits(Ty)) 
+          if (CGT.getTargetData().getABITypeSizeInBits(PrevTy) >=
+              CGT.getTargetData().getABITypeSizeInBits(Ty)) 
             // This is - struct { char A; char CurrentField:2; };
             addLLVMField(Ty, BitFieldSize, FD, 0, ExtraBits);
           else {
@@ -446,8 +446,8 @@ void RecordOrganizer::layoutStructFields(const ASTRecordLayout &RL) {
         //ExtraBits are not enough to hold entire FD.
         const llvm::Type *Ty = CGT.ConvertType(FD->getType());
         const llvm::Type *PrevTy = LLVMFields.back();
-        uint64_t TySize = CGT.getTargetData().getTypeSizeInBits(Ty);
-        if (CGT.getTargetData().getTypeSizeInBits(PrevTy) >= TySize) {
+        uint64_t TySize = CGT.getTargetData().getABITypeSizeInBits(Ty);
+        if (CGT.getTargetData().getABITypeSizeInBits(PrevTy) >= TySize) {
           // Previous field does not allow sharing of ExtraBits. Use new field.
           // struct { char a; char b:5; char c:4; } where c is current FD.
           Cursor += ExtraBits;
@@ -472,7 +472,7 @@ void RecordOrganizer::addPaddingFields(unsigned RequiredBits) {
   unsigned RequiredBytes = RequiredBits / 8;
   for (unsigned i = 0; i != RequiredBytes; ++i)
     addLLVMField(llvm::Type::Int8Ty, 
-                 CGT.getTargetData().getTypeSizeInBits(llvm::Type::Int8Ty));
+                 CGT.getTargetData().getABITypeSizeInBits(llvm::Type::Int8Ty));
 }
 
 /// addLLVMField - Add llvm struct field that corresponds to llvm type Ty.