Skip to content

Commit b43eab4

Browse files
authored
Merge pull request #34626 from nkcsgexi/opt-out-forwarding
driver: add an option to avoid forwarding to the new driver
2 parents 0aa41bc + 5b4cc58 commit b43eab4

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

include/swift/Option/Options.td

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,10 @@ def verify_incremental_dependencies :
177177
Flags<[FrontendOption, HelpHidden]>,
178178
HelpText<"Enable the dependency verifier for each frontend job">;
179179

180+
def disallow_forwarding_driver :
181+
Flag<["-"], "disallow-use-new-driver">, Flags<[]>,
182+
HelpText<"Disable using new swift-driver">;
183+
180184
def driver_emit_fine_grained_dependency_dot_file_after_every_import :
181185
Flag<["-"], "driver-emit-fine-grained-dependency-dot-file-after-every-import">,
182186
InternalDebugOpt,

tools/driver/driver.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,10 +164,12 @@ static int run_driver(StringRef ExecName,
164164
if (auto driverNameOp = llvm::sys::Process::GetEnv("SWIFT_USE_NEW_DRIVER")) {
165165
newDriverName = driverNameOp.getValue();
166166
}
167-
167+
auto disallowForwarding = llvm::find_if(argv, [](const char* arg) {
168+
return StringRef(arg) == "-disallow-use-new-driver";
169+
}) != argv.end();
168170
// Forwarding calls to the swift driver if the C++ driver is invoked as `swift`
169171
// or `swiftc`, and an environment variable SWIFT_USE_NEW_DRIVER is defined.
170-
if (!newDriverName.empty() &&
172+
if (!newDriverName.empty() && !disallowForwarding &&
171173
(ExecName == "swift" || ExecName == "swiftc")) {
172174
SmallString<256> NewDriverPath(llvm::sys::path::parent_path(Path));
173175
llvm::sys::path::append(NewDriverPath, newDriverName);

0 commit comments

Comments
 (0)