summaryrefslogtreecommitdiffstats
path: root/clang/lib/Parse/ParseExprCXX.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2018-06-27 01:32:04 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2018-06-27 01:32:04 +0000
commitc2dead4d9a5e6edf3c7e86f3f2cd11192735c8e7 (patch)
tree17f169e02a96b425587ff3dfb633bfe96fa504d1 /clang/lib/Parse/ParseExprCXX.cpp
parent5b451063264fefe7445421879d7a9bff692ebd83 (diff)
downloadbcm5719-llvm-c2dead4d9a5e6edf3c7e86f3f2cd11192735c8e7.tar.gz
bcm5719-llvm-c2dead4d9a5e6edf3c7e86f3f2cd11192735c8e7.zip
Diagnose missing 'template' keywords in contexts where a comma is not a
binary operator. Factor out the checking for a comma within potential angle brackets and also call it from contexts where we parse a comma-separated list of arguments or initializers. llvm-svn: 335699
Diffstat (limited to 'clang/lib/Parse/ParseExprCXX.cpp')
-rw-r--r--clang/lib/Parse/ParseExprCXX.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/clang/lib/Parse/ParseExprCXX.cpp b/clang/lib/Parse/ParseExprCXX.cpp
index a5a340ad22b..77f758b159f 100644
--- a/clang/lib/Parse/ParseExprCXX.cpp
+++ b/clang/lib/Parse/ParseExprCXX.cpp
@@ -561,10 +561,13 @@ ExprResult Parser::tryParseCXXIdExpression(CXXScopeSpec &SS, bool isAddressOfOpe
if (isAddressOfOperand && isPostfixExpressionSuffixStart())
isAddressOfOperand = false;
- return Actions.ActOnIdExpression(getCurScope(), SS, TemplateKWLoc, Name,
- Tok.is(tok::l_paren), isAddressOfOperand,
- nullptr, /*IsInlineAsmIdentifier=*/false,
- &Replacement);
+ ExprResult E = Actions.ActOnIdExpression(
+ getCurScope(), SS, TemplateKWLoc, Name, Tok.is(tok::l_paren),
+ isAddressOfOperand, nullptr, /*IsInlineAsmIdentifier=*/false,
+ &Replacement);
+ if (!E.isInvalid() && !E.isUnset() && Tok.is(tok::less))
+ checkPotentialAngleBracket(E);
+ return E;
}
/// ParseCXXIdExpression - Handle id-expression.
OpenPOWER on IntegriCloud