Revert revert & fix distributed protocol and TBD handling

This reverts a revert that was done internally here https://stashweb.sd.apple.com/projects/DEVTOOLS/repos/swift/pull-requests/8697/overview
and corrects some issues with the reverted code while at it.

This fix is crucial to land for correctness and necessary to fix the
rdar://144568615 which had a fix submitted however that assumed that
THIS change also was present, so the fix submitted for 144568615 is
incomplete without this change as well.

This enables, and adds more TBD testing and was explicitly checked
against the GameKit reproducer project from rdar://144568615.

I will also upstream the necessary parts missing from OSS repo there so
we have alignment between all branches.
This commit is contained in:
Konrad 'ktoso' Malawski
2025-06-17 18:26:28 +09:00
parent f5f058f49d
commit 6989f05abe
3 changed files with 7 additions and 6 deletions

View File

@@ -1002,7 +1002,7 @@ namespace {
// Emit the dispatch thunk.
auto shouldEmitDispatchThunk =
(Resilient || IGM.getOptions().WitnessMethodElimination);
Resilient || IGM.getOptions().WitnessMethodElimination;
if (shouldEmitDispatchThunk) {
IGM.emitDispatchThunk(func);
}

View File

@@ -108,6 +108,7 @@ public:
void addDispatchThunk(SILDeclRef declRef) override {
auto entity = LinkEntity::forDispatchThunk(declRef);
addLinkEntity(entity);
if (declRef.getAbstractFunctionDecl()->hasAsync())

View File

@@ -22,14 +22,14 @@
// RUN: -validate-tbd-against-ir=all \
// RUN: -emit-module-interface-path %t/Library.swiftinterface
// RUN: %target-swift-frontend %t/actor.swift \
// RUN: -enable-library-evolution \
// RUN: %target-swift-frontend %t/actor.swift -enable-library-evolution \
// RUN: -enable-library-evolution \
// RUN: -disable-availability-checking -emit-ir -o %t/test.ll -emit-tbd \
// RUN: -emit-tbd-path %t/actor.tbd -I %t -tbd-install_name actor
// RUN: %target-swift-frontend %t/actor.swift \
// RUN: -I %t \
// RUN: -disable-availability-checking \
// RUN: %target-swift-frontend %t/actor.swift \
// RUN: -I %t \
// RUN: -disable-availability-checking \
// RUN: -emit-module \
// RUN: -package-name Package \
// RUN: -enable-library-evolution \