From c7fa71d233cc16e93674b9f40e5c4c720642fe2c Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 29 Jan 2020 23:38:02 -0500 Subject: [PATCH] update clang driver to release/10.x branch upstream commit 967658150edb2cbb860c19ce54ac1e216bdc8461 --- src/zig_clang_cc1_main.cpp | 1 - src/zig_clang_cc1as_main.cpp | 1 - src/zig_clang_driver.cpp | 20 +++++++++++--------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/zig_clang_cc1_main.cpp b/src/zig_clang_cc1_main.cpp index 0b245be591f6bb91c30fb69184a4d8e0ff07cf57..b551e9f4cf829627e2be2d8efca874afae098649 100644 --- a/src/zig_clang_cc1_main.cpp +++ b/src/zig_clang_cc1_main.cpp @@ -274,4 +274,3 @@ int cc1_main(ArrayRef Argv, const char *Argv0, void *MainAddr) { return !Success; } - diff --git a/src/zig_clang_cc1as_main.cpp b/src/zig_clang_cc1as_main.cpp index f810c62a880ea6506456ac5b308055aac0f21eff..53c8a9d642dc044301467c404ffa59d909c96e5a 100644 --- a/src/zig_clang_cc1as_main.cpp +++ b/src/zig_clang_cc1as_main.cpp @@ -614,4 +614,3 @@ int cc1as_main(ArrayRef Argv, const char *Argv0, void *MainAddr) { return !!Failed; } - diff --git a/src/zig_clang_driver.cpp b/src/zig_clang_driver.cpp index 8b3afdb1d47d0274e3b64d645c7a2111f29405e0..a3150022b30e632a42eb70f0812874ef0fb8cd29 100644 --- a/src/zig_clang_driver.cpp +++ b/src/zig_clang_driver.cpp @@ -239,8 +239,6 @@ static void getCLEnvVarOptions(std::string &EnvValue, llvm::StringSaver &Saver, *NumberSignPtr = '='; } -static int ExecuteCC1Tool(ArrayRef argv); - static void SetBackdoorDriverOutputsFromEnvVars(Driver &TheDriver) { // Handle CC_PRINT_OPTIONS and CC_PRINT_OPTIONS_FILE. TheDriver.CCPrintOptions = !!::getenv("CC_PRINT_OPTIONS"); @@ -311,19 +309,24 @@ static void SetInstallDir(SmallVectorImpl &argv, TheDriver.setInstalledDir(InstalledPathParent); } -static int ExecuteCC1Tool(ArrayRef argv) { +static int ExecuteCC1Tool(SmallVectorImpl &ArgV) { // If we call the cc1 tool from the clangDriver library (through // Driver::CC1Main), we need to clean up the options usage count. The options // are currently global, and they might have been used previously by the // driver. llvm::cl::ResetAllOptionOccurrences(); - StringRef Tool = argv[1]; - void *GetExecutablePathVP = (void *)(intptr_t) GetExecutablePath; + + llvm::BumpPtrAllocator A; + llvm::StringSaver Saver(A); + llvm::cl::ExpandResponseFiles(Saver, &llvm::cl::TokenizeGNUCommandLine, ArgV, + /*MarkEOLs=*/false); + StringRef Tool = ArgV[1]; + void *GetExecutablePathVP = (void *)(intptr_t)GetExecutablePath; if (Tool == "-cc1") - return cc1_main(argv.slice(2), argv[0], GetExecutablePathVP); + return cc1_main(makeArrayRef(ArgV).slice(2), ArgV[0], GetExecutablePathVP); if (Tool == "-cc1as") - return cc1as_main(argv.slice(2), argv[0], GetExecutablePathVP); - + return cc1as_main(makeArrayRef(ArgV).slice(2), ArgV[0], + GetExecutablePathVP); // Reject unknown tools. llvm::errs() << "error: unknown integrated tool '" << Tool << "'. " << "Valid tools include '-cc1' and '-cc1as'.\n"; @@ -541,4 +544,3 @@ int ZigClang_main(int argc_, const char **argv_) { // failing command. return Res; } - -- 2.54.0