diff options
author | Aaron Ballman <aaron@aaronballman.com> | 2014-11-08 17:07:15 +0000 |
---|---|---|
committer | Aaron Ballman <aaron@aaronballman.com> | 2014-11-08 17:07:15 +0000 |
commit | c0ae7dfe75e5980aaa65c8907211b3e96c85d1cc (patch) | |
tree | ed04d795619ca62123a166c14f7b197ec884a338 /clang/lib/Parse/ParseDeclCXX.cpp | |
parent | 730476b50ea63c79e590f91859097e16f88503a1 (diff) | |
download | bcm5719-llvm-c0ae7dfe75e5980aaa65c8907211b3e96c85d1cc.tar.gz bcm5719-llvm-c0ae7dfe75e5980aaa65c8907211b3e96c85d1cc.zip |
Updated the wording for a diagnostic to be more grammatically correct, and use a %select. Also ensure that nested namespace definitions are diagnosed properly. Both changes are motivated by post-commit feedback from r221580.
llvm-svn: 221581
Diffstat (limited to 'clang/lib/Parse/ParseDeclCXX.cpp')
-rw-r--r-- | clang/lib/Parse/ParseDeclCXX.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/Parse/ParseDeclCXX.cpp b/clang/lib/Parse/ParseDeclCXX.cpp index 1f56c8ba3b5..7c98d70b683 100644 --- a/clang/lib/Parse/ParseDeclCXX.cpp +++ b/clang/lib/Parse/ParseDeclCXX.cpp @@ -77,7 +77,8 @@ Decl *Parser::ParseNamespace(unsigned Context, SourceLocation attrLoc; if (getLangOpts().CPlusPlus11 && isCXX11AttributeSpecifier()) { if (!getLangOpts().CPlusPlus1z) - Diag(Tok.getLocation(), diag::warn_cxx14_compat_attribute) << "namespace"; + Diag(Tok.getLocation(), diag::warn_cxx14_compat_attribute) + << 0 /*namespace*/; attrLoc = Tok.getLocation(); ParseCXX11Attributes(attrs); } @@ -92,6 +93,10 @@ Decl *Parser::ParseNamespace(unsigned Context, } } + // A nested namespace definition cannot have attributes. + if (!ExtraNamespaceLoc.empty() && attrLoc.isValid()) + Diag(attrLoc, diag::err_unexpected_nested_namespace_attribute); + // Read label attributes, if present. if (Tok.is(tok::kw___attribute)) { attrLoc = Tok.getLocation(); |