summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/Decl.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2018-04-02 18:29:43 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2018-04-02 18:29:43 +0000
commit866dee4ea0b3d12cce26989846bfef052787409e (patch)
tree083df6f3fd177c354df4d93d61bd98c5605b287c /clang/lib/AST/Decl.cpp
parent30eebb0e494e923333457e0161e3fa38efcdde74 (diff)
downloadbcm5719-llvm-866dee4ea0b3d12cce26989846bfef052787409e.tar.gz
bcm5719-llvm-866dee4ea0b3d12cce26989846bfef052787409e.zip
Add helper to determine if a field is a zero-length bitfield.
llvm-svn: 328999
Diffstat (limited to 'clang/lib/AST/Decl.cpp')
-rw-r--r--clang/lib/AST/Decl.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp
index 4fb687d0fdd..b49fda08a7c 100644
--- a/clang/lib/AST/Decl.cpp
+++ b/clang/lib/AST/Decl.cpp
@@ -3691,6 +3691,11 @@ unsigned FieldDecl::getBitWidthValue(const ASTContext &Ctx) const {
return getBitWidth()->EvaluateKnownConstInt(Ctx).getZExtValue();
}
+bool FieldDecl::isZeroLengthBitField(const ASTContext &Ctx) const {
+ return isUnnamedBitfield() && !getBitWidth()->isValueDependent() &&
+ getBitWidthValue(Ctx) == 0;
+}
+
unsigned FieldDecl::getFieldIndex() const {
const FieldDecl *Canonical = getCanonicalDecl();
if (Canonical != this)
OpenPOWER on IntegriCloud