diff options
author | Daniel Dunbar <daniel@zuster.org> | 2010-04-06 01:07:44 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2010-04-06 01:07:44 +0000 |
commit | 196ea449edd650a2d1c7b14c62f623ad2d8f30c5 (patch) | |
tree | 8fc825f18800bb323d1ee426db56d47fe83709d7 /clang/lib/CodeGen/CGRecordLayoutBuilder.cpp | |
parent | d45491077a5262405ec48b8fa2b977da32c6d7ed (diff) | |
download | bcm5719-llvm-196ea449edd650a2d1c7b14c62f623ad2d8f30c5.tar.gz bcm5719-llvm-196ea449edd650a2d1c7b14c62f623ad2d8f30c5.zip |
IRgen: Move BitFieldIsSigned bit into CGBitFieldInfo.
llvm-svn: 100513
Diffstat (limited to 'clang/lib/CodeGen/CGRecordLayoutBuilder.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGRecordLayoutBuilder.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp b/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp index e6aa320d81a..4b9ec66e178 100644 --- a/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp +++ b/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp @@ -178,10 +178,11 @@ void CGRecordLayoutBuilder::LayoutBitField(const FieldDecl *D, const llvm::Type *Ty = Types.ConvertTypeForMemRecursive(D->getType()); uint64_t TypeSizeInBits = getTypeSizeInBytes(Ty) * 8; + bool IsSigned = D->getType()->isSignedIntegerType(); LLVMBitFields.push_back(LLVMBitFieldInfo( D, CGBitFieldInfo(FieldOffset / TypeSizeInBits, FieldOffset % TypeSizeInBits, - FieldSize))); + FieldSize, IsSigned))); AppendBytes(NumBytesToAppend); @@ -279,8 +280,10 @@ void CGRecordLayoutBuilder::LayoutUnion(const RecordDecl *D) { continue; // Add the bit field info. + bool IsSigned = Field->getType()->isSignedIntegerType(); LLVMBitFields.push_back(LLVMBitFieldInfo( - *Field, CGBitFieldInfo(0, 0, FieldSize))); + *Field, CGBitFieldInfo(0, 0, FieldSize, + IsSigned))); } else { LLVMFields.push_back(LLVMFieldInfo(*Field, 0)); } |