@@ -601,15 +601,6 @@ final class SwiftDriverTests: XCTestCase {
601601 }
602602 }
603603
604- func testLinkObjCFlagWarning( ) throws {
605- try assertDriverDiagnostics ( args: " swiftc " , " foo.swift " , " -link-objc-runtime " ) {
606- $1. expect ( . warning( " -link-objc-runtime is no longer supported on Apple platforms " ) )
607- }
608- try assertDriverDiagnostics ( args: " swiftc " , " foo.swift " , " -no-link-objc-runtime " ) {
609- $1. expect ( . warning( " -link-objc-runtime is no longer supported on Apple platforms " ) )
610- }
611- }
612-
613604 func testHermeticSealAtLink( ) throws {
614605 try assertNoDriverDiagnostics ( args: " swiftc " , " foo.swift " , " -experimental-hermetic-seal-at-link " , " -lto=llvm-full " ) { driver in
615606 let jobs = try driver. planBuild ( )
@@ -1782,6 +1773,39 @@ final class SwiftDriverTests: XCTestCase {
17821773 XCTAssertFalse ( cmd. contains ( . flag( " -shared " ) ) )
17831774 }
17841775
1776+ do {
1777+ // -fobjc-link-runtime default
1778+ var driver = try Driver ( args: commonArgs + [ " -emit-library " , " -target " , " x86_64-apple-macosx10.15 " ] , env: env)
1779+ let plannedJobs = try driver. planBuild ( )
1780+ XCTAssertEqual ( 3 , plannedJobs. count)
1781+ let linkJob = plannedJobs [ 2 ]
1782+ XCTAssertEqual ( linkJob. kind, . link)
1783+ let cmd = linkJob. commandLine
1784+ XCTAssertFalse ( cmd. contains ( . flag( " -fobjc-link-runtime " ) ) )
1785+ }
1786+
1787+ do {
1788+ // -fobjc-link-runtime enable
1789+ var driver = try Driver ( args: commonArgs + [ " -emit-library " , " -target " , " x86_64-apple-macosx10.15 " , " -link-objc-runtime " ] , env: env)
1790+ let plannedJobs = try driver. planBuild ( )
1791+ XCTAssertEqual ( 3 , plannedJobs. count)
1792+ let linkJob = plannedJobs [ 2 ]
1793+ XCTAssertEqual ( linkJob. kind, . link)
1794+ let cmd = linkJob. commandLine
1795+ XCTAssertTrue ( cmd. contains ( . flag( " -fobjc-link-runtime " ) ) )
1796+ }
1797+
1798+ do {
1799+ // -fobjc-link-runtime disable override
1800+ var driver = try Driver ( args: commonArgs + [ " -emit-library " , " -target " , " x86_64-apple-macosx10.15 " , " -link-objc-runtime " , " -no-link-objc-runtime " ] , env: env)
1801+ let plannedJobs = try driver. planBuild ( )
1802+ XCTAssertEqual ( 3 , plannedJobs. count)
1803+ let linkJob = plannedJobs [ 2 ]
1804+ XCTAssertEqual ( linkJob. kind, . link)
1805+ let cmd = linkJob. commandLine
1806+ XCTAssertFalse ( cmd. contains ( . flag( " -fobjc-link-runtime " ) ) )
1807+ }
1808+
17851809 do {
17861810 // Xlinker flags
17871811 // Ensure that Xlinker flags are passed as such to the clang linker invocation.
@@ -3812,6 +3836,11 @@ final class SwiftDriverTests: XCTestCase {
38123836
38133837 // Ensure arm64_32 is not restricted to back-deployment like other 32-bit archs (armv7k/i386).
38143838 XCTAssertNoThrow ( try Driver ( args: [ " swiftc " , " -emit-module " , " -c " , " -target " , " arm64_32-apple-watchos12.0 " , " foo.swift " ] ) )
3839+
3840+ // On non-darwin hosts, libArcLite won't be found and a warning will be emitted
3841+ #if os(macOS)
3842+ try assertNoDriverDiagnostics ( args: " swiftc " , " -c " , " -target " , " x86_64-apple-macosx10.14 " , " -link-objc-runtime " , " foo.swift " )
3843+ #endif
38153844 }
38163845
38173846 func testProfileArgValidation( ) throws {
0 commit comments