@@ -313,6 +313,28 @@ final class SwiftDriverTests: XCTestCase {
313
313
XCTAssertEqual ( driver6. compilerOutputType, . llvmBitcode)
314
314
}
315
315
316
+ func testLtoOutputPath( ) throws {
317
+ do {
318
+ var driver = try Driver ( args: [ " swiftc " , " foo.swift " , " -lto=llvm-full " , " -c " , " -target " , " x86_64-apple-macosx10.9 " ] )
319
+ XCTAssertEqual ( driver. compilerOutputType, . llvmBitcode)
320
+ XCTAssertEqual ( driver. linkerOutputType, nil )
321
+ let jobs = try driver. planBuild ( )
322
+ XCTAssertEqual ( jobs. count, 1 )
323
+ XCTAssertEqual ( jobs [ 0 ] . outputs. count, 1 )
324
+ XCTAssertEqual ( jobs [ 0 ] . outputs [ 0 ] . file. basename, " foo.bc " )
325
+ }
326
+
327
+ do {
328
+ var driver = try Driver ( args: [ " swiftc " , " foo.swift " , " -lto=llvm-full " , " -c " , " -target " , " x86_64-apple-macosx10.9 " , " -o " , " foo.o " ] )
329
+ XCTAssertEqual ( driver. compilerOutputType, . llvmBitcode)
330
+ XCTAssertEqual ( driver. linkerOutputType, nil )
331
+ let jobs = try driver. planBuild ( )
332
+ XCTAssertEqual ( jobs. count, 1 )
333
+ XCTAssertEqual ( jobs [ 0 ] . outputs. count, 1 )
334
+ XCTAssertEqual ( jobs [ 0 ] . outputs [ 0 ] . file. basename, " foo.o " )
335
+ }
336
+ }
337
+
316
338
func testPrimaryOutputKindsDiagnostics( ) throws {
317
339
try assertDriverDiagnostics ( args: " swift " , " -i " ) {
318
340
$1. expect ( . error( " the flag '-i' is no longer required and has been removed; use 'swift input-filename' " ) )
0 commit comments