| ... | @@ -239,8 +239,6 @@ static void getCLEnvVarOptions(std::string &EnvValue, llvm::StringSaver &Saver, | ... | @@ -239,8 +239,6 @@ static void getCLEnvVarOptions(std::string &EnvValue, llvm::StringSaver &Saver, |
| 239 | *NumberSignPtr = '='; | 239 | *NumberSignPtr = '='; |
| 240 | } | 240 | } |
| 241 | | 241 | |
| 242 | static int ExecuteCC1Tool(ArrayRef<const char *> argv); | | |
| 243 | | | |
| 244 | static void SetBackdoorDriverOutputsFromEnvVars(Driver &TheDriver) { | 242 | static void SetBackdoorDriverOutputsFromEnvVars(Driver &TheDriver) { |
| 245 | // Handle CC_PRINT_OPTIONS and CC_PRINT_OPTIONS_FILE. | 243 | // Handle CC_PRINT_OPTIONS and CC_PRINT_OPTIONS_FILE. |
| 246 | TheDriver.CCPrintOptions = !!::getenv("CC_PRINT_OPTIONS"); | 244 | TheDriver.CCPrintOptions = !!::getenv("CC_PRINT_OPTIONS"); |
| ... | @@ -311,19 +309,24 @@ static void SetInstallDir(SmallVectorImpl<const char *> &argv, | ... | @@ -311,19 +309,24 @@ static void SetInstallDir(SmallVectorImpl<const char *> &argv, |
| 311 | TheDriver.setInstalledDir(InstalledPathParent); | 309 | TheDriver.setInstalledDir(InstalledPathParent); |
| 312 | } | 310 | } |
| 313 | | 311 | |
| 314 | static int ExecuteCC1Tool(ArrayRef<const char *> argv) { | 312 | static int ExecuteCC1Tool(SmallVectorImpl<const char *> &ArgV) { |
| 315 | // If we call the cc1 tool from the clangDriver library (through | 313 | // If we call the cc1 tool from the clangDriver library (through |
| 316 | // Driver::CC1Main), we need to clean up the options usage count. The options | 314 | // Driver::CC1Main), we need to clean up the options usage count. The options |
| 317 | // are currently global, and they might have been used previously by the | 315 | // are currently global, and they might have been used previously by the |
| 318 | // driver. | 316 | // driver. |
| 319 | llvm::cl::ResetAllOptionOccurrences(); | 317 | llvm::cl::ResetAllOptionOccurrences(); |
| 320 | StringRef Tool = argv[1]; | 318 | |
| 321 | void *GetExecutablePathVP = (void *)(intptr_t) GetExecutablePath; | 319 | llvm::BumpPtrAllocator A; |
| | 320 | llvm::StringSaver Saver(A); |
| | 321 | llvm::cl::ExpandResponseFiles(Saver, &llvm::cl::TokenizeGNUCommandLine, ArgV, |
| | 322 | /*MarkEOLs=*/false); |
| | 323 | StringRef Tool = ArgV[1]; |
| | 324 | void *GetExecutablePathVP = (void *)(intptr_t)GetExecutablePath; |
| 322 | if (Tool == "-cc1") | 325 | if (Tool == "-cc1") |
| 323 | return cc1_main(argv.slice(2), argv[0], GetExecutablePathVP); | 326 | return cc1_main(makeArrayRef(ArgV).slice(2), ArgV[0], GetExecutablePathVP); |
| 324 | if (Tool == "-cc1as") | 327 | if (Tool == "-cc1as") |
| 325 | return cc1as_main(argv.slice(2), argv[0], GetExecutablePathVP); | 328 | return cc1as_main(makeArrayRef(ArgV).slice(2), ArgV[0], |
| 326 | | 329 | GetExecutablePathVP); |
| 327 | // Reject unknown tools. | 330 | // Reject unknown tools. |
| 328 | llvm::errs() << "error: unknown integrated tool '" << Tool << "'. " | 331 | llvm::errs() << "error: unknown integrated tool '" << Tool << "'. " |
| 329 | << "Valid tools include '-cc1' and '-cc1as'.\n"; | 332 | << "Valid tools include '-cc1' and '-cc1as'.\n"; |
| ... | @@ -541,4 +544,3 @@ int ZigClang_main(int argc_, const char **argv_) { | ... | @@ -541,4 +544,3 @@ int ZigClang_main(int argc_, const char **argv_) { |
| 541 | // failing command. | 544 | // failing command. |
| 542 | return Res; | 545 | return Res; |
| 543 | } | 546 | } |
| 544 | | | |