diff options
author | Serge Pavlov <sepavloff@gmail.com> | 2020-09-12 21:54:14 +0700 |
---|---|---|
committer | Serge Pavlov <sepavloff@gmail.com> | 2020-09-14 12:15:21 +0700 |
commit | f1cd6593da3ad763eb3f7aaf7761d06fb303493a (patch) | |
tree | dcfe036e9cb41c3f87f19c2896896a769a648d7e /clang/lib/Sema/SemaLambda.cpp | |
parent | 88690a965892e82cac05a162a9d10e2ce4e2355f (diff) | |
download | llvm-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.cpp | 5 |
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 { |