summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/ASTContext.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2011-05-06 21:56:12 +0000
committerFariborz Jahanian <fjahanian@apple.com>2011-05-06 21:56:12 +0000
commitb7a2879677990e7bbbfb3c7fa8f0228639af1ff3 (patch)
tree73d3106353037d5ba81ae8a88267cfbaca69a318 /clang/lib/AST/ASTContext.cpp
parent2e116a4491405980cb447e1cecdbe1c5f46dc5ff (diff)
downloadbcm5719-llvm-b7a2879677990e7bbbfb3c7fa8f0228639af1ff3.tar.gz
bcm5719-llvm-b7a2879677990e7bbbfb3c7fa8f0228639af1ff3.zip
Establish a new alignment for an ms_struct bitfield following
a non-bitfield if size of their types differ. llvm-svn: 131023
Diffstat (limited to 'clang/lib/AST/ASTContext.cpp')
-rw-r--r--clang/lib/AST/ASTContext.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp
index 07823e04081..5271c90bb89 100644
--- a/clang/lib/AST/ASTContext.cpp
+++ b/clang/lib/AST/ASTContext.cpp
@@ -558,6 +558,18 @@ bool ASTContext::BitfieldFollowsBitfield(const FieldDecl *FD,
LastFD->getBitWidth()-> EvaluateAsInt(*this).getZExtValue());
}
+bool ASTContext::NoneBitfieldFollowsBitfield(const FieldDecl *FD,
+ const FieldDecl *LastFD) const {
+ return (!FD->isBitField() && LastFD && LastFD->isBitField() &&
+ LastFD->getBitWidth()-> EvaluateAsInt(*this).getZExtValue());
+}
+
+bool ASTContext::BitfieldFollowsNoneBitfield(const FieldDecl *FD,
+ const FieldDecl *LastFD) const {
+ return (FD->isBitField() && LastFD && !LastFD->isBitField() &&
+ FD->getBitWidth()-> EvaluateAsInt(*this).getZExtValue());
+}
+
ASTContext::overridden_cxx_method_iterator
ASTContext::overridden_methods_begin(const CXXMethodDecl *Method) const {
llvm::DenseMap<const CXXMethodDecl *, CXXMethodVector>::const_iterator Pos
OpenPOWER on IntegriCloud