diff options
author | Nico Weber <nicolasweber@gmx.de> | 2019-10-15 14:46:39 +0000 |
---|---|---|
committer | Nico Weber <nicolasweber@gmx.de> | 2019-10-15 14:46:39 +0000 |
commit | b4638f9ff063a29e84b2d6b949ee4f7d27e4c2ab (patch) | |
tree | 79427a0c40b6ecd133a1f6dee91e1276f0629d02 /clang/lib/Parse/ParseExpr.cpp | |
parent | 52d2a567b5ea4f2ec6d1dd5e9b5661ca8b763eae (diff) | |
download | bcm5719-llvm-b4638f9ff063a29e84b2d6b949ee4f7d27e4c2ab.tar.gz bcm5719-llvm-b4638f9ff063a29e84b2d6b949ee4f7d27e4c2ab.zip |
Revert 374882 "[Concepts] Concept Specialization Expressions"
This reverts commit ec87b003823d63f3342cf648f55a134c1522e612.
The test fails on Windows, see e.g.
http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/11533/steps/stage%201%20check/logs/stdio
Also revert follow-up r374893.
llvm-svn: 374899
Diffstat (limited to 'clang/lib/Parse/ParseExpr.cpp')
-rw-r--r-- | clang/lib/Parse/ParseExpr.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/clang/lib/Parse/ParseExpr.cpp b/clang/lib/Parse/ParseExpr.cpp index b74a95a3cd4..455d1090218 100644 --- a/clang/lib/Parse/ParseExpr.cpp +++ b/clang/lib/Parse/ParseExpr.cpp @@ -228,16 +228,18 @@ ExprResult Parser::ParseCaseExpression(SourceLocation CaseLoc) { /// Parse a constraint-expression. /// /// \verbatim -/// constraint-expression: C++2a[temp.constr.decl]p1 +/// constraint-expression: [Concepts TS temp.constr.decl p1] /// logical-or-expression /// \endverbatim ExprResult Parser::ParseConstraintExpression() { - EnterExpressionEvaluationContext ConstantEvaluated( - Actions, Sema::ExpressionEvaluationContext::ConstantEvaluated); + // FIXME: this may erroneously consume a function-body as the braced + // initializer list of a compound literal + // + // FIXME: this may erroneously consume a parenthesized rvalue reference + // declarator as a parenthesized address-of-label expression ExprResult LHS(ParseCastExpression(/*isUnaryExpression=*/false)); ExprResult Res(ParseRHSOfBinaryExpression(LHS, prec::LogicalOr)); - if (Res.isUsable() && !Actions.CheckConstraintExpression(Res.get())) - return ExprError(); + return Res; } |