[Driver] Avoid using response files for SourceKit

We only care about the frontend arguments here, creating a response
file is unnecessary.

rdar://98880399
This commit is contained in:
Hamish Knight
2025-05-16 14:03:46 +01:00
parent 245514cab3
commit a86f374644
2 changed files with 9 additions and 0 deletions

View File

@@ -72,6 +72,11 @@ std::optional<Job::ResponseFileInfo>
ToolChain::getResponseFileInfo(const Compilation &C, const char *executablePath,
const ToolChain::InvocationInfo &invocationInfo,
const ToolChain::JobContext &context) const {
// Never use a response file if this is a dummy driver for SourceKit, we
// just want the frontend arguments.
if (getDriver().isDummyDriverForFrontendInvocation())
return std::nullopt;
const bool forceResponseFiles =
C.getArgs().hasArg(options::OPT_driver_force_response_files);
assert((invocationInfo.allowsResponseFiles || !forceResponseFiles) &&

View File

@@ -0,0 +1,4 @@
// Make sure we don't create any temporary files.
// RUN: %empty-directory(%t)
// RUN: env TMP=%t TMPDIR=%t %sourcekitd-test -req=open %s -- %s -driver-force-response-files
// RUN: not ls %t/* >/dev/null 2>&1