diff options
author | Aaron Ballman <aaron@aaronballman.com> | 2014-08-04 20:28:35 +0000 |
---|---|---|
committer | Aaron Ballman <aaron@aaronballman.com> | 2014-08-04 20:28:35 +0000 |
commit | e7c544d38800e246dd675db70653a34e104d75bd (patch) | |
tree | f1e0f5d2e8c656e595ed279ad14d852657b66d47 /clang/lib/Parse/ParseDeclCXX.cpp | |
parent | 6e842b34a07b16196b05dcd1902c0bfabeeaf113 (diff) | |
download | bcm5719-llvm-e7c544d38800e246dd675db70653a34e104d75bd.tar.gz bcm5719-llvm-e7c544d38800e246dd675db70653a34e104d75bd.zip |
A static_assert declaration cannot be a template; adding the diagnostic for this instead of silently accepting and producing possibly-unexpected behavior.
llvm-svn: 214770
Diffstat (limited to 'clang/lib/Parse/ParseDeclCXX.cpp')
-rw-r--r-- | clang/lib/Parse/ParseDeclCXX.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/clang/lib/Parse/ParseDeclCXX.cpp b/clang/lib/Parse/ParseDeclCXX.cpp index 7baa6684e27..f5ce708a97a 100644 --- a/clang/lib/Parse/ParseDeclCXX.cpp +++ b/clang/lib/Parse/ParseDeclCXX.cpp @@ -2075,9 +2075,10 @@ void Parser::ParseCXXClassMemberDeclaration(AccessSpecifier AS, } } - // static_assert-declaration - if (Tok.is(tok::kw_static_assert) || Tok.is(tok::kw__Static_assert)) { - // FIXME: Check for templates + // static_assert-declaration. A templated static_assert declaration is + // diagnosed in Parser::ParseSingleDeclarationAfterTemplate. + if (!TemplateInfo.Kind && + (Tok.is(tok::kw_static_assert) || Tok.is(tok::kw__Static_assert))) { SourceLocation DeclEnd; ParseStaticAssertDeclaration(DeclEnd); return; |