aboutsummaryrefslogtreecommitdiff
path: root/src/zig_clang_driver.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2019-02-24 15:30:30 -0500
committerAndrew Kelley <andrew@ziglang.org>2019-02-24 15:31:02 -0500
commit8c2c6368f9645def45374c2fb9027bf72b15ab2e (patch)
treed46e25b31cce63f274d46ccd2556a1c698095c33 /src/zig_clang_driver.cpp
parentbcca76b3c4c6dcb24435db7a3a10d2319ef4c3aa (diff)
downloadzig-8c2c6368f9645def45374c2fb9027bf72b15ab2e.tar.gz
zig-8c2c6368f9645def45374c2fb9027bf72b15ab2e.zip
zig cc: work around clang calling GetCommandLine on Windows
Diffstat (limited to 'src/zig_clang_driver.cpp')
-rw-r--r--src/zig_clang_driver.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/zig_clang_driver.cpp b/src/zig_clang_driver.cpp
index 21e88cbe65..3a3942636a 100644
--- a/src/zig_clang_driver.cpp
+++ b/src/zig_clang_driver.cpp
@@ -318,7 +318,8 @@ static int ExecuteCC1Tool(ArrayRef<const char *> argv, StringRef Tool) {
extern "C" int ZigClang_main(int argc_, const char **argv_);
int ZigClang_main(int argc_, const char **argv_) {
llvm::InitLLVM X(argc_, argv_);
- SmallVector<const char *, 256> argv(argv_, argv_ + argc_);
+ size_t argv_offset = (strcmp(argv_[1], "-cc1") == 0 || strcmp(argv_[1], "-cc1as") == 0) ? 0 : 1;
+ SmallVector<const char *, 256> argv(argv_ + argv_offset, argv_ + argc_);
if (llvm::sys::Process::FixupStandardFileDescriptors())
return 1;