diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-10-31 20:29:22 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-10-31 20:29:22 +0000 |
commit | fd62945d36bbf71f42f6c08fea144200ad90a0fb (patch) | |
tree | 36ad2d6defca6cce681fe2fd484205c18444c78a /clang/lib | |
parent | 7cb25a888ce53c288de9369c5b98082b4ea5ec26 (diff) | |
download | bcm5719-llvm-fd62945d36bbf71f42f6c08fea144200ad90a0fb.tar.gz bcm5719-llvm-fd62945d36bbf71f42f6c08fea144200ad90a0fb.zip |
Fix usage of right shift operator in fold expressions
The right shift operator was not seen as a valid operator in a fold expression, which is PR32563.
Patch by Nicolas Lesser ("Blitz Rakete")!
llvm-svn: 317032
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Parse/ParseExpr.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/clang/lib/Parse/ParseExpr.cpp b/clang/lib/Parse/ParseExpr.cpp index bff6d9cc193..0f2ec6b1c1f 100644 --- a/clang/lib/Parse/ParseExpr.cpp +++ b/clang/lib/Parse/ParseExpr.cpp @@ -266,11 +266,12 @@ bool Parser::diagnoseUnknownTemplateId(ExprResult LHS, SourceLocation Less) { return false; } -static bool isFoldOperator(prec::Level Level) { +bool Parser::isFoldOperator(prec::Level Level) const { return Level > prec::Unknown && Level != prec::Conditional; } -static bool isFoldOperator(tok::TokenKind Kind) { - return isFoldOperator(getBinOpPrecedence(Kind, false, true)); + +bool Parser::isFoldOperator(tok::TokenKind Kind) const { + return isFoldOperator(getBinOpPrecedence(Kind, GreaterThanIsOperator, true)); } /// \brief Parse a binary expression that starts with \p LHS and has a |