forked from OSchip/llvm-project
When we're inside a functional cast, '>' is an operator. Fixes PR8912.
llvm-svn: 123201
This commit is contained in:
parent
00c84fd125
commit
94a32477fd
|
@ -13,6 +13,7 @@
|
|||
|
||||
#include "clang/Parse/ParseDiagnostic.h"
|
||||
#include "clang/Parse/Parser.h"
|
||||
#include "RAIIObjectsForParser.h"
|
||||
#include "clang/Sema/DeclSpec.h"
|
||||
#include "clang/Sema/ParsedTemplate.h"
|
||||
#include "llvm/Support/ErrorHandling.h"
|
||||
|
@ -720,6 +721,8 @@ Parser::ParseCXXTypeConstructExpression(const DeclSpec &DS) {
|
|||
ParsedType TypeRep = Actions.ActOnTypeName(getCurScope(), DeclaratorInfo).get();
|
||||
|
||||
assert(Tok.is(tok::l_paren) && "Expected '('!");
|
||||
GreaterThanIsOperatorScope G(GreaterThanIsOperator, true);
|
||||
|
||||
SourceLocation LParenLoc = ConsumeParen();
|
||||
|
||||
ExprVector Exprs(Actions);
|
||||
|
|
|
@ -7,3 +7,6 @@ template<typename T> struct A {};
|
|||
A<int+> int x; // expected-error {{expected '>'}} expected-error {{expected unqualified-id}}
|
||||
A<int x; // expected-error {{expected '>'}}
|
||||
|
||||
// PR8912
|
||||
template <bool> struct S {};
|
||||
S<bool(2 > 1)> s;
|
||||
|
|
Loading…
Reference in New Issue