commit 8c2c6368f9645def45374c2fb9027bf72b15ab2e (tree)
parent bcca76b3c4c6dcb24435db7a3a10d2319ef4c3aa
Author: Andrew Kelley <andrew@ziglang.org>
Date: Sun, 24 Feb 2019 15:30:30 -0500
zig cc: work around clang calling GetCommandLine on Windows
Diffstat:
2 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/src/main.cpp b/src/main.cpp
@@ -260,13 +260,9 @@ int main(int argc, char **argv) {
return 0;
}
- if (argc >= 2 && (strcmp(argv[1], "cc") == 0)) {
- return ZigClang_main(argc - 1, argv + 1);
- }
- if (argc >= 2 && strcmp(argv[1], "-cc1") == 0) {
- return ZigClang_main(argc, argv);
- }
- if (argc >= 2 && strcmp(argv[1], "-cc1as") == 0) {
+ if (argc >= 2 && (strcmp(argv[1], "cc") == 0 ||
+ strcmp(argv[1], "-cc1") == 0 || strcmp(argv[1], "-cc1as") == 0))
+ {
return ZigClang_main(argc, argv);
}
diff --git 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;