14
14
// /
15
15
// /===----------------------------------------------------------------------===///
16
16
17
- #include " swift/ABI/Task.h"
18
17
#include " swift/ABI/Actor.h"
19
18
#include " swift/ABI/Metadata.h"
19
+ #include " swift/ABI/Task.h"
20
20
#include " swift/Runtime/AccessibleFunction.h"
21
21
#include " swift/Runtime/Concurrency.h"
22
+ #include " swift/Runtime/STLCompatibility.h"
22
23
23
24
using namespace swift ;
24
25
@@ -102,7 +103,7 @@ static void swift_distributed_execute_target_resume(
102
103
SWIFT_CONTEXT SwiftError *error) {
103
104
auto parentCtx = context->Parent ;
104
105
auto resumeInParent =
105
- reinterpret_cast <TargetExecutorSignature::ContinuationType *>(
106
+ std::bit_cast <TargetExecutorSignature::ContinuationType *>(
106
107
parentCtx->ResumeParent );
107
108
swift_task_dealloc (context);
108
109
// See `swift_distributed_execute_target` - `parentCtx` in this case
@@ -131,7 +132,7 @@ void swift_distributed_execute_target(
131
132
SwiftError *error =
132
133
swift_distributed_makeDistributedTargetAccessorNotFoundError ();
133
134
auto resumeInParent =
134
- reinterpret_cast <TargetExecutorSignature::ContinuationType *>(
135
+ std::bit_cast <TargetExecutorSignature::ContinuationType *>(
135
136
callerContext->ResumeParent );
136
137
resumeInParent (callerContext, error);
137
138
return ;
@@ -149,8 +150,8 @@ void swift_distributed_execute_target(
149
150
swift_task_alloc (asyncFnPtr->ExpectedContextSize ));
150
151
151
152
calleeContext->Parent = callerContext;
152
- calleeContext->ResumeParent = reinterpret_cast <TaskContinuationFunction *>(
153
- swift_distributed_execute_target_resume);
153
+ calleeContext->ResumeParent = std::bit_cast <TaskContinuationFunction *>(
154
+ & swift_distributed_execute_target_resume);
154
155
155
156
accessorEntry (calleeContext, argumentDecoder, argumentTypes, resultBuffer,
156
157
substitutions, witnessTables, numWitnessTables, actor,
0 commit comments