diff options
| author | Aaron Ballman <aaron@aaronballman.com> | 2018-03-17 21:08:40 +0000 |
|---|---|---|
| committer | Aaron Ballman <aaron@aaronballman.com> | 2018-03-17 21:08:40 +0000 |
| commit | 33e90d160b1bcb3fa62be1242876403c12b85e8e (patch) | |
| tree | 74db88572e44926d721dc7083a2a94435c7d6a2a /clang/lib | |
| parent | a8e2bb3949fd0ab096baad078db14206ce0f1757 (diff) | |
| download | bcm5719-llvm-33e90d160b1bcb3fa62be1242876403c12b85e8e.tar.gz bcm5719-llvm-33e90d160b1bcb3fa62be1242876403c12b85e8e.zip | |
Implement DR2229, which prohibits unnamed bit-fields from having qualifiers in C++.
llvm-svn: 327781
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index 612761177cd..ea971353039 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -14856,6 +14856,13 @@ FieldDecl *Sema::CheckFieldDecl(DeclarationName Name, QualType T, InvalidDecl = true; } + // Anonymous bit-fields cannot be cv-qualified (CWG 2229). + if (!InvalidDecl && getLangOpts().CPlusPlus && !II && BitWidth && + T.hasQualifiers()) { + InvalidDecl = true; + Diag(Loc, diag::err_anon_bitfield_qualifiers); + } + // C99 6.7.2.1p8: A member of a structure or union may have any type other // than a variably modified type. if (!InvalidDecl && T->isVariablyModifiedType()) { |

