aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/SemaLambda.cpp
diff options
context:
space:
mode:
authorSerge Pavlov <sepavloff@gmail.com>2020-09-12 21:54:14 +0700
committerSerge Pavlov <sepavloff@gmail.com>2020-09-14 12:15:21 +0700
commitf1cd6593da3ad763eb3f7aaf7761d06fb303493a (patch)
treedcfe036e9cb41c3f87f19c2896896a769a648d7e /clang/lib/Sema/SemaLambda.cpp
parent88690a965892e82cac05a162a9d10e2ce4e2355f (diff)
downloadllvm-f1cd6593da3ad763eb3f7aaf7761d06fb303493a.zip
llvm-f1cd6593da3ad763eb3f7aaf7761d06fb303493a.tar.gz
llvm-f1cd6593da3ad763eb3f7aaf7761d06fb303493a.tar.bz2
[AST][FPEnv] Keep FP options in trailing storage of CastExpr
This is recommit of 6c8041aa0f, reverted in de044f7562 because of some fails. Original commit message is below. This change allow a CastExpr to have optional FPOptionsOverride object, stored in trailing storage. Of all cast nodes only ImplicitCastExpr, CStyleCastExpr, CXXFunctionalCastExpr and CXXStaticCastExpr are allowed to have FPOptions. Differential Revision: https://reviews.llvm.org/D85960
Diffstat (limited to 'clang/lib/Sema/SemaLambda.cpp')
-rw-r--r--clang/lib/Sema/SemaLambda.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaLambda.cpp b/clang/lib/Sema/SemaLambda.cpp
index c9f2854..0b081f39 100644
--- a/clang/lib/Sema/SemaLambda.cpp
+++ b/clang/lib/Sema/SemaLambda.cpp
@@ -680,8 +680,9 @@ static void adjustBlockReturnsToEnum(Sema &S, ArrayRef<ReturnStmt*> returns,
ExprWithCleanups *cleanups = dyn_cast<ExprWithCleanups>(retValue);
Expr *E = (cleanups ? cleanups->getSubExpr() : retValue);
- E = ImplicitCastExpr::Create(S.Context, returnType, CK_IntegralCast,
- E, /*base path*/ nullptr, VK_RValue);
+ E = ImplicitCastExpr::Create(S.Context, returnType, CK_IntegralCast, E,
+ /*base path*/ nullptr, VK_RValue,
+ FPOptionsOverride());
if (cleanups) {
cleanups->setSubExpr(E);
} else {