mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Merge remote-tracking branch 'origin/master' into master-next
This commit is contained in:
@@ -2059,6 +2059,7 @@ static void emitDynamicallyReplaceableThunk(IRGenModule &IGM,
|
|||||||
forwardedArgs.push_back(&arg);
|
forwardedArgs.push_back(&arg);
|
||||||
auto *Res =
|
auto *Res =
|
||||||
B.CreateCall(FunctionPointer(typeFnPtr, signature), forwardedArgs);
|
B.CreateCall(FunctionPointer(typeFnPtr, signature), forwardedArgs);
|
||||||
|
Res->setTailCall();
|
||||||
if (implFn->getReturnType()->isVoidTy())
|
if (implFn->getReturnType()->isVoidTy())
|
||||||
B.CreateRetVoid();
|
B.CreateRetVoid();
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
// CHECK-NEXT: entry:
|
// CHECK-NEXT: entry:
|
||||||
// CHECK-NEXT: [[FUN_PTR:%.*]] = load i8*, i8** getelementptr inbounds (%swift.dyn_repl_link_entry, %swift.dyn_repl_link_entry* @test_dynamically_replaceableTX, i32 0, i32 0)
|
// CHECK-NEXT: [[FUN_PTR:%.*]] = load i8*, i8** getelementptr inbounds (%swift.dyn_repl_link_entry, %swift.dyn_repl_link_entry* @test_dynamically_replaceableTX, i32 0, i32 0)
|
||||||
// CHECK-NEXT: [[TYPED_PTR:%.*]] = bitcast i8* [[FUN_PTR]] to void ()*
|
// CHECK-NEXT: [[TYPED_PTR:%.*]] = bitcast i8* [[FUN_PTR]] to void ()*
|
||||||
// CHECK-NEXT: call swiftcc void [[TYPED_PTR]]()
|
// CHECK-NEXT: tail call swiftcc void [[TYPED_PTR]]()
|
||||||
// CHECK-NEXT: ret void
|
// CHECK-NEXT: ret void
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
// RUN: %target-swift-frontend -emit-module %S/Inputs/autolinking_indirect.swift -emit-module-path %t/autolinking_indirect.swiftmodule -module-link-name autolinking_indirect -I %t -swift-version 4
|
// RUN: %target-swift-frontend -emit-module %S/Inputs/autolinking_indirect.swift -emit-module-path %t/autolinking_indirect.swiftmodule -module-link-name autolinking_indirect -I %t -swift-version 4
|
||||||
|
|
||||||
// RUN: %target-swift-frontend -emit-module %S/Inputs/autolinking_module_inferred.swift -emit-module-path %t/autolinking_module_inferred.swiftmodule -module-link-name autolinking_module_inferred -I %t -swift-version 4
|
// RUN: %target-swift-frontend -emit-module %S/Inputs/autolinking_module_inferred.swift -emit-module-path %t/autolinking_module_inferred.swiftmodule -module-link-name autolinking_module_inferred -I %t -swift-version 4
|
||||||
// RUN: %target-swift-frontend -emit-ir %s -I %t -swift-version 4 -enable-objc-interop | %FileCheck %s
|
// RUN: %target-swift-frontend -emit-ir %s -I %t -swift-version 4 -enable-objc-interop | %FileCheck %s -check-prefix CHECK -check-prefix CHECK-%target-os
|
||||||
|
|
||||||
// Linux uses a different autolinking mechanism, based on
|
// Linux uses a different autolinking mechanism, based on
|
||||||
// swift-autolink-extract. This file tests the Darwin mechanism.
|
// swift-autolink-extract. This file tests the Darwin mechanism.
|
||||||
@@ -20,12 +20,24 @@ import autolinking_module_inferred
|
|||||||
|
|
||||||
bfunc()
|
bfunc()
|
||||||
|
|
||||||
// CHECK: !llvm.linker.options = !{[[MODULE:![0-9]+]], [[PUBLIC:![0-9]+]], [[SWIFTONONESUPPORT:![0-9]+]], [[SWIFTCORE:![0-9]+]], [[PRIVATE:![0-9]+]], [[OTHER:![0-9]+]], [[INDIRECT:![0-9]+]], [[OTHER2:![0-9]+]], [[OBJC:![0-9]+]]}
|
// CHECK: !llvm.linker.options = !{
|
||||||
|
// CHECK-SAME: [[MODULE:![0-9]+]],
|
||||||
|
// CHECK-SAME: [[PUBLIC:![0-9]+]],
|
||||||
|
// CHECK-SAME: [[SWIFTONONESUPPORT:![0-9]+]],
|
||||||
|
// CHECK-SAME: [[SWIFTCORE:![0-9]+]],
|
||||||
|
// CHECK-windows-msvc-SAME: [[STDIO:![0-9]+]],
|
||||||
|
// CHECK-SAME: [[PRIVATE:![0-9]+]],
|
||||||
|
// CHECK-SAME: [[OTHER:![0-9]+]],
|
||||||
|
// CHECK-SAME: [[INDIRECT:![0-9]+]],
|
||||||
|
// CHECK-SAME: [[OTHER2:![0-9]+]],
|
||||||
|
// CHECK-SAME: [[OBJC:![0-9]+]]
|
||||||
|
// CHECK-SAME: }
|
||||||
|
|
||||||
// CHECK-DAG: [[SWIFTCORE]] = !{!{{"-lswiftCore"|"/DEFAULTLIB:swiftCore.lib"}}}
|
|
||||||
// CHECK-DAG: [[SWIFTONONESUPPORT]] = !{!{{"-lswiftSwiftOnoneSupport"|"/DEFAULTLIB:swiftSwiftOnoneSupport.lib"}}}
|
|
||||||
// CHECK-DAG: [[MODULE]] = !{!{{"-lautolinking_module_inferred"|"/DEFAULTLIB:autolinking_module_inferred.lib"}}}
|
// CHECK-DAG: [[MODULE]] = !{!{{"-lautolinking_module_inferred"|"/DEFAULTLIB:autolinking_module_inferred.lib"}}}
|
||||||
// CHECK-DAG: [[PUBLIC]] = !{!{{"-lautolinking_public"|"/DEFAULTLIB:autolinking_public.lib"}}}
|
// CHECK-DAG: [[PUBLIC]] = !{!{{"-lautolinking_public"|"/DEFAULTLIB:autolinking_public.lib"}}}
|
||||||
|
// CHECK-DAG: [[SWIFTONONESUPPORT]] = !{!{{"-lswiftSwiftOnoneSupport"|"/DEFAULTLIB:swiftSwiftOnoneSupport.lib"}}}
|
||||||
|
// CHECK-DAG: [[SWIFTCORE]] = !{!{{"-lswiftCore"|"/DEFAULTLIB:swiftCore.lib"}}}
|
||||||
|
// CHECK-windows-msvc-DAG: [[STDIO]] = !{!"/DEFAULTLIB:legacy_stdio_definitions.lib"}
|
||||||
// CHECK-DAG: [[OTHER]] = !{!{{"-lautolinking_other"|"/DEFAULTLIB:autolinking_other.lib"}}}
|
// CHECK-DAG: [[OTHER]] = !{!{{"-lautolinking_other"|"/DEFAULTLIB:autolinking_other.lib"}}}
|
||||||
// CHECK-DAG: [[OTHER2]] = !{!{{"-lautolinking_other2"|"/DEFAULTLIB:autolinking_other2.lib"}}}
|
// CHECK-DAG: [[OTHER2]] = !{!{{"-lautolinking_other2"|"/DEFAULTLIB:autolinking_other2.lib"}}}
|
||||||
// CHECK-DAG: [[OBJC]] = !{!{{"-lobjc"|"/DEFAULTLIB:objc.lib"}}}
|
// CHECK-DAG: [[OBJC]] = !{!{{"-lobjc"|"/DEFAULTLIB:objc.lib"}}}
|
||||||
|
|||||||
Reference in New Issue
Block a user