diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2018-04-02 18:29:43 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2018-04-02 18:29:43 +0000 |
commit | 866dee4ea0b3d12cce26989846bfef052787409e (patch) | |
tree | 083df6f3fd177c354df4d93d61bd98c5605b287c /clang/lib/AST/Decl.cpp | |
parent | 30eebb0e494e923333457e0161e3fa38efcdde74 (diff) | |
download | bcm5719-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.cpp | 5 |
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) |