summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDecl.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2015-04-26 04:58:18 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2015-04-26 04:58:18 +0000
commit8702b5215e8bdab786125158673a8d5821048958 (patch)
tree2d93fafc196480d2c872a1d0c2008d19ac6991c2 /clang/lib/Sema/SemaDecl.cpp
parent9fc700e76d74e1bc57e709ca7b096c7dc7025950 (diff)
downloadbcm5719-llvm-8702b5215e8bdab786125158673a8d5821048958.tar.gz
bcm5719-llvm-8702b5215e8bdab786125158673a8d5821048958.zip
[Sema] Don't allow unverified bitfields in FieldDecls
VerifyBitField must be called if we are to form a bitfield FieldDecl. We will not verify the bitfield if the decl is known to be malformed in other ways; pretend that we don't have a bitfield if this happens. llvm-svn: 235816
Diffstat (limited to 'clang/lib/Sema/SemaDecl.cpp')
-rw-r--r--clang/lib/Sema/SemaDecl.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index 339280614ff..07dbdaf9968 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -12481,8 +12481,10 @@ FieldDecl *Sema::CheckFieldDecl(DeclarationName Name, QualType T,
InvalidDecl = true;
bool ZeroWidth = false;
+ if (InvalidDecl)
+ BitWidth = nullptr;
// If this is declared as a bit-field, check the bit-field.
- if (!InvalidDecl && BitWidth) {
+ if (BitWidth) {
BitWidth = VerifyBitField(Loc, II, T, Record->isMsStruct(Context), BitWidth,
&ZeroWidth).get();
if (!BitWidth) {
OpenPOWER on IntegriCloud