Skip to content

Commit 6deb6fc

Browse files
authored
Merge pull request #1581 from etcwilde/ewilde/remove-swiftmodule-from-linker-input
Remove swiftmodule from linker filelist input
2 parents 8b730e9 + 4918cd6 commit 6deb6fc

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

Sources/SwiftDriver/Jobs/DarwinToolchain+LinkerSupport.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,6 @@ extension DarwinToolchain {
119119
var inputModules = [VirtualPath]()
120120
for input in inputs {
121121
if input.type == .swiftModule && linkerOutputType != .staticLibrary {
122-
inputPaths.append(input.file)
123122
inputModules.append(input.file)
124123
} else if input.type == .object {
125124
inputPaths.append(input.file)

Tests/SwiftDriverTests/SwiftDriverTests.swift

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3117,6 +3117,35 @@ final class SwiftDriverTests: XCTestCase {
31173117
XCTAssertTrue(firstKeyOutputs.keys.contains(where: { $0 == .swiftModule }))
31183118
}
31193119

3120+
func testLinkFilelistWithDebugInfo() throws {
3121+
func getFileListElements(for filelistOpt: String, job: Job) -> [VirtualPath] {
3122+
guard let optIdx = job.commandLine.firstIndex(of: .flag(filelistOpt)) else {
3123+
XCTFail("Argument '\(filelistOpt)' not in job command line")
3124+
return []
3125+
}
3126+
let value = job.commandLine[job.commandLine.index(after: optIdx)]
3127+
guard case let .path(.fileList(_, valueFileList)) = value else {
3128+
XCTFail("Argument wasn't a filelist")
3129+
return []
3130+
}
3131+
guard case let .list(inputs) = valueFileList else {
3132+
XCTFail("FileList wasn't a List")
3133+
return []
3134+
}
3135+
return inputs
3136+
}
3137+
3138+
var driver = try Driver(args: [
3139+
"swiftc", "-g", "/tmp/hello.swift", "-module-name", "Hello",
3140+
"-emit-library", "-driver-filelist-threshold=0"
3141+
])
3142+
3143+
var jobs = try driver.planBuild()
3144+
XCTAssertEqual(jobs.count, 4)
3145+
XCTAssertEqual(getFileListElements(for: "-filelist", job: jobs[2]),
3146+
[.temporary(try .init(validating: "hello-1.o"))])
3147+
}
3148+
31203149
func testDashDashPassingDownInput() throws {
31213150
do {
31223151
var driver = try Driver(args: ["swiftc", "-module-name=ThisModule", "-wmo", "-num-threads", "4", "-emit-module", "-o", "test.swiftmodule", "--", "main.swift", "multi-threaded.swift"])

0 commit comments

Comments
 (0)