Skip to content

Commit f3c97d3

Browse files
committed
[clang-cache] Handle LLVM_CACHE_PLUGIN_OPTIONS properly for the clang-cache launcher mode
Treat as colon separated options string, that is split to multiple `-fcas-plugin-option` options. (cherry picked from commit 5c8bc30)
1 parent 2ff1b2c commit f3c97d3

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

clang/test/CAS/driver-cache-launcher.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,12 @@
3838
// SPECIFIC-DAEMON-NOT: "-fdepscan-share-identifier"
3939
// SPECIFIC-DAEMON: "-cc1depscan" "-fdepscan=daemon" "-fdepscan-daemon=[[PREFIX]]/scand"
4040

41-
// RUN: env LLVM_CACHE_CAS_PATH=%t/cas LLVM_CACHE_PLUGIN_PATH=%t/plugin LLVM_CACHE_PLUGIN_OPTIONS=some-opt=value \
41+
// RUN: env LLVM_CACHE_CAS_PATH=%t/cas LLVM_CACHE_PLUGIN_PATH=%t/plugin LLVM_CACHE_PLUGIN_OPTIONS=some-opt=value:opt2=val2 \
4242
// RUN: %clang-cache %clang -c %s -o %t.o -### 2>&1 | FileCheck %s -check-prefix=PLUGIN -DPREFIX=%t
4343
// PLUGIN: "-fcas-path" "[[PREFIX]]/cas"
4444
// PLUGIN: "-fcas-plugin-path" "[[PREFIX]]/plugin"
45-
// PLUGIN: "-fcas-plugin-options" "some-opt=value"
45+
// PLUGIN: "-fcas-plugin-option" "some-opt=value"
46+
// PLUGIN: "-fcas-plugin-option" "opt2=val2"
4647

4748
// RUN: env LLVM_CACHE_CAS_PATH=%t/cas LLVM_CACHE_REMOTE_SERVICE_SOCKET_PATH=%t/ccremote %clang-cache %clang -c %s -o %t.o -### 2>&1 | FileCheck %s -check-prefix=REMOTE -DPREFIX=%t
4849
// REMOTE: "-fcompilation-caching-service-path" "[[PREFIX]]/ccremote"

clang/tools/driver/CacheLauncherMode.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,12 @@ static void addCommonArgs(bool ForDriver, SmallVectorImpl<const char *> &Args,
108108
}
109109
if (auto PluginOpts =
110110
llvm::sys::Process::GetEnv("LLVM_CACHE_PLUGIN_OPTIONS")) {
111-
addCC1Args({"-fcas-plugin-options", Saver.save(*PluginOpts).data()});
111+
StringRef Remaining = *PluginOpts;
112+
while (!Remaining.empty()) {
113+
StringRef Opt;
114+
std::tie(Opt, Remaining) = Remaining.split(':');
115+
addCC1Args({"-fcas-plugin-option", Saver.save(Opt).data()});
116+
}
112117
}
113118
}
114119

0 commit comments

Comments
 (0)