[Distributed] Inject "unsafe" expression for synthesized unsafe code

This commit is contained in:
Doug Gregor
2025-03-10 15:31:13 -07:00
parent 170845b864
commit f404c8a58c

View File

@@ -156,7 +156,7 @@ deriveBodyDistributed_doInvokeOnReturn(AbstractFunctionDecl *afd, void *arg) {
new (C) VarDecl(/*isStatic=*/false, VarDecl::Introducer::Let, sloc,
C.getIdentifier("result"), afd);
{
auto resultLoadCall = CallExpr::createImplicit(
Expr *resultLoadCall = CallExpr::createImplicit(
C,
UnresolvedDotExpr::createImplicit(
C,
@@ -171,6 +171,9 @@ deriveBodyDistributed_doInvokeOnReturn(AbstractFunctionDecl *afd, void *arg) {
new (C) DeclRefExpr(ConcreteDeclRef(returnTypeParam),
dloc, implicit))}));
if (C.LangOpts.hasFeature(Feature::StrictMemorySafety))
resultLoadCall = new (C) UnsafeExpr(sloc, resultLoadCall, Type(), true);
auto resultPattern = NamedPattern::createImplicit(C, resultVar);
auto resultPB = PatternBindingDecl::createImplicit(
C, swift::StaticSpellingKind::None, resultPattern,