From 0215a47458dbe70c5435a4749ffae1c5eb898383 Mon Sep 17 00:00:00 2001 From: Sam Pyankov Date: Wed, 8 Jul 2026 14:48:52 -0700 Subject: [PATCH] Check that swift-frontend supports ipi clang module before transferring the flag to the frontend. This way no "unknown argument" error would occur if swift-frontend does not support clang ipi modules rdar://181745695 --- Sources/SwiftDriver/Jobs/FrontendJobHelpers.swift | 4 +++- Tests/SwiftDriverTests/MiscDriverTests.swift | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Sources/SwiftDriver/Jobs/FrontendJobHelpers.swift b/Sources/SwiftDriver/Jobs/FrontendJobHelpers.swift index 30e7d093b..1f70342bd 100644 --- a/Sources/SwiftDriver/Jobs/FrontendJobHelpers.swift +++ b/Sources/SwiftDriver/Jobs/FrontendJobHelpers.swift @@ -306,7 +306,9 @@ extension Driver { try commandLine.appendLast(.requireExplicitAvailability, from: &parsedOptions) try commandLine.appendLast(.requireExplicitAvailabilityTarget, from: &parsedOptions) try commandLine.appendLast(.libraryLevel, from: &parsedOptions) - try commandLine.appendAll(.ipiClangModule, from: &parsedOptions) + if isFrontendArgSupported(.ipiClangModule) { + try commandLine.appendAll(.ipiClangModule, from: &parsedOptions) + } try commandLine.appendLast(.lto, from: &parsedOptions) try commandLine.appendLast(.accessNotesPath, from: &parsedOptions) try commandLine.appendLast(.enableActorDataRaceChecks, .disableActorDataRaceChecks, from: &parsedOptions) diff --git a/Tests/SwiftDriverTests/MiscDriverTests.swift b/Tests/SwiftDriverTests/MiscDriverTests.swift index 2466adcdd..ec5ecd066 100644 --- a/Tests/SwiftDriverTests/MiscDriverTests.swift +++ b/Tests/SwiftDriverTests/MiscDriverTests.swift @@ -843,7 +843,10 @@ import CRT } } - @Test func ipiClangModule() async throws { + @Test( + .requireFrontendArgSupport(.ipiClangModule) + ) + func ipiClangModule() async throws { // Single flag is forwarded. do { var driver = try TestDriver(args: ["swiftc", "-ipi-clang-module", "Foo", "foo.swift"])