diff options
author | David Majnemer <david.majnemer@gmail.com> | 2015-04-26 04:58:18 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2015-04-26 04:58:18 +0000 |
commit | 8702b5215e8bdab786125158673a8d5821048958 (patch) | |
tree | 2d93fafc196480d2c872a1d0c2008d19ac6991c2 /clang/lib/Sema/SemaDecl.cpp | |
parent | 9fc700e76d74e1bc57e709ca7b096c7dc7025950 (diff) | |
download | bcm5719-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.cpp | 4 |
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) { |