authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-08-10 17:33:51-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-05-08 19:37:28-07:00
log08329863e8736931f59875f36e219c9366ab72c2
treecafa8e91302c4a8cad62e00551dcfc3c9bfe37d1
parentde72860de6e920a371806eaf5a65d28a4b606641

clang patch: update main function


1 files changed, 8 insertions(+), 8 deletions(-)

src/zig_clang_driver.cpp+8-8
...@@ -209,9 +209,6 @@ extern int cc1_main(ArrayRef<const char *> Argv, const char *Argv0,...@@ -209,9 +209,6 @@ extern int cc1_main(ArrayRef<const char *> Argv, const char *Argv0,
209 void *MainAddr);209 void *MainAddr);
210extern int cc1as_main(ArrayRef<const char *> Argv, const char *Argv0,210extern int cc1as_main(ArrayRef<const char *> Argv, const char *Argv0,
211 void *MainAddr);211 void *MainAddr);
212extern int cc1gen_reproducer_main(ArrayRef<const char *> Argv,
213 const char *Argv0, void *MainAddr,
214 const llvm::ToolContext &);
215212
216static void insertTargetAndModeArgs(const ParsedClangName &NameParts,213static void insertTargetAndModeArgs(const ParsedClangName &NameParts,
217 SmallVectorImpl<const char *> &ArgVector,214 SmallVectorImpl<const char *> &ArgVector,
...@@ -365,21 +362,19 @@ static int ExecuteCC1Tool(SmallVectorImpl<const char *> &ArgV,...@@ -365,21 +362,19 @@ static int ExecuteCC1Tool(SmallVectorImpl<const char *> &ArgV,
365 return cc1_main(ArrayRef(ArgV).slice(1), ArgV[0], GetExecutablePathVP);362 return cc1_main(ArrayRef(ArgV).slice(1), ArgV[0], GetExecutablePathVP);
366 if (Tool == "-cc1as")363 if (Tool == "-cc1as")
367 return cc1as_main(ArrayRef(ArgV).slice(2), ArgV[0], GetExecutablePathVP);364 return cc1as_main(ArrayRef(ArgV).slice(2), ArgV[0], GetExecutablePathVP);
368 if (Tool == "-cc1gen-reproducer")
369 return cc1gen_reproducer_main(ArrayRef(ArgV).slice(2), ArgV[0],
370 GetExecutablePathVP, ToolContext);
371 // Reject unknown tools.365 // Reject unknown tools.
372 llvm::errs() << "error: unknown integrated tool '" << Tool << "'. "366 llvm::errs() << "error: unknown integrated tool '" << Tool << "'. "
373 << "Valid tools include '-cc1' and '-cc1as'.\n";367 << "Valid tools include '-cc1' and '-cc1as'.\n";
374 return 1;368 return 1;
375}369}
376370
377int clang_main(int Argc, char **Argv, const llvm::ToolContext &ToolContext) {371static int clang_main(int Argc, char **Argv, const llvm::ToolContext &ToolContext) {
378 noteBottomOfStack();372 noteBottomOfStack();
379 llvm::setBugReportMsg("PLEASE submit a bug report to " BUG_REPORT_URL373 llvm::setBugReportMsg("PLEASE submit a bug report to " BUG_REPORT_URL
380 " and include the crash backtrace, preprocessed "374 " and include the crash backtrace, preprocessed "
381 "source, and associated run script.\n");375 "source, and associated run script.\n");
382 SmallVector<const char *, 256> Args(Argv, Argv + Argc);376 size_t argv_offset = (strcmp(Argv[1], "-cc1") == 0 || strcmp(Argv[1], "-cc1as") == 0) ? 0 : 1;
377 SmallVector<const char *, 256> Args(Argv + argv_offset, Argv + Argc);
383378
384 if (llvm::sys::Process::FixupStandardFileDescriptors())379 if (llvm::sys::Process::FixupStandardFileDescriptors())
385 return 1;380 return 1;
...@@ -601,3 +596,8 @@ int clang_main(int Argc, char **Argv, const llvm::ToolContext &ToolContext) {...@@ -601,3 +596,8 @@ int clang_main(int Argc, char **Argv, const llvm::ToolContext &ToolContext) {
601 // failing command.596 // failing command.
602 return Res;597 return Res;
603}598}
599
600extern "C" int ZigClang_main(int, char **);
601int ZigClang_main(int argc, char **argv) {
602 return clang_main(argc, argv, {argv[0], nullptr, false});
603}