@@ -281,6 +281,32 @@ final class SwiftDriverTests: XCTestCase {
281
281
XCTAssertEqual ( driver5. compilerOutputType, . llvmBitcode)
282
282
}
283
283
284
+ func testLtoOutputModeClash( ) throws {
285
+ let driver1 = try Driver ( args: [ " swiftc " , " foo.swift " , " -lto=llvm-full " , " -static " ,
286
+ " -emit-library " , " -target " , " x86_64-apple-macosx10.9 " ] )
287
+ XCTAssertEqual ( driver1. compilerOutputType, . llvmBitcode)
288
+
289
+ let driver2 = try Driver ( args: [ " swiftc " , " foo.swift " , " -lto=llvm-full " ,
290
+ " -emit-library " , " -target " , " x86_64-apple-macosx10.9 " ] )
291
+ XCTAssertEqual ( driver2. compilerOutputType, . llvmBitcode)
292
+
293
+ let driver3 = try Driver ( args: [ " swiftc " , " foo.swift " , " -lto=llvm-full " ,
294
+ " c " , " -target " , " x86_64-apple-macosx10.9 " ] )
295
+ XCTAssertEqual ( driver3. compilerOutputType, . llvmBitcode)
296
+
297
+ let driver4 = try Driver ( args: [ " swiftc " , " foo.swift " , " -c " , " -lto=llvm-full " ,
298
+ " -target " , " x86_64-apple-macosx10.9 " ] )
299
+ XCTAssertEqual ( driver4. compilerOutputType, . llvmBitcode)
300
+
301
+ let driver5 = try Driver ( args: [ " swiftc " , " foo.swift " , " -c " , " -lto=llvm-full " ,
302
+ " -emit-bc " , " -target " , " x86_64-apple-macosx10.9 " ] )
303
+ XCTAssertEqual ( driver5. compilerOutputType, . llvmBitcode)
304
+
305
+ let driver6 = try Driver ( args: [ " swiftc " , " foo.swift " , " -emit-bc " , " -c " , " -lto=llvm-full " ,
306
+ " -target " , " x86_64-apple-macosx10.9 " ] )
307
+ XCTAssertEqual ( driver6. compilerOutputType, . llvmBitcode)
308
+ }
309
+
284
310
func testPrimaryOutputKindsDiagnostics( ) throws {
285
311
try assertDriverDiagnostics ( args: " swift " , " -i " ) {
286
312
$1. expect ( . error( " the flag '-i' is no longer required and has been removed; use 'swift input-filename' " ) )
0 commit comments