Skip to content

Commit 9a0df5b

Browse files
Don't add swift_retainCount() to RuntimeFunctions.def, but explicitly link it in linkEmbeddedRuntimeFromStdlib()
1 parent 0412597 commit 9a0df5b

File tree

2 files changed

+3
-8
lines changed

2 files changed

+3
-8
lines changed

include/swift/Runtime/RuntimeFunctions.def

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -204,14 +204,6 @@ FUNCTION(CopyPOD, swift_copyPOD, C_CC, AlwaysAvailable,
204204
EFFECT(NoEffect),
205205
UNKNOWN_MEMEFFECTS)
206206

207-
// size_t swift_retainCount(void *ptr);
208-
FUNCTION(NativeRetainCount, swift_retainCount, C_CC, AlwaysAvailable,
209-
RETURNS(SizeTy),
210-
ARGS(RefCountedPtrTy),
211-
ATTRS(NoUnwind, WillReturn),
212-
EFFECT(RefCounting),
213-
UNKNOWN_MEMEFFECTS)
214-
215207
// void *swift_retain(void *ptr);
216208
FUNCTION(NativeStrongRetain, swift_retain, C_CC, AlwaysAvailable,
217209
RETURNS(RefCountedPtrTy),

lib/SILOptimizer/UtilityPasses/Link.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ class SILLinker : public SILModuleTransform {
6363
#define UNKNOWN_MEMEFFECTS
6464

6565
#include "swift/Runtime/RuntimeFunctions.def"
66+
67+
// swift_retainCount is not part of private contract between the compiler and runtime, but we still need to link it
68+
linkEmbeddedRuntimeFunctionByName("swift_retainCount", { RefCounting });
6669
}
6770

6871
void linkEmbeddedRuntimeFunctionByName(StringRef name,

0 commit comments

Comments
 (0)