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,
209209 void *MainAddr);
210210extern int cc1as_main(ArrayRef<const char *> Argv, const char *Argv0,
211211 void *MainAddr);
212extern int cc1gen_reproducer_main(ArrayRef<const char *> Argv,
213 const char *Argv0, void *MainAddr,
214 const llvm::ToolContext &);
215212
216213static void insertTargetAndModeArgs(const ParsedClangName &NameParts,
217214 SmallVectorImpl<const char *> &ArgVector,
......@@ -365,21 +362,19 @@ static int ExecuteCC1Tool(SmallVectorImpl<const char *> &ArgV,
365362 return cc1_main(ArrayRef(ArgV).slice(1), ArgV[0], GetExecutablePathVP);
366363 if (Tool == "-cc1as")
367364 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);
371365 // Reject unknown tools.
372366 llvm::errs() << "error: unknown integrated tool '" << Tool << "'. "
373367 << "Valid tools include '-cc1' and '-cc1as'.\n";
374368 return 1;
375369}
376370
377int clang_main(int Argc, char **Argv, const llvm::ToolContext &ToolContext) {
371static int clang_main(int Argc, char **Argv, const llvm::ToolContext &ToolContext) {
378372 noteBottomOfStack();
379373 llvm::setBugReportMsg("PLEASE submit a bug report to " BUG_REPORT_URL
380374 " and include the crash backtrace, preprocessed "
381375 "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
384379 if (llvm::sys::Process::FixupStandardFileDescriptors())
385380 return 1;
......@@ -601,3 +596,8 @@ int clang_main(int Argc, char **Argv, const llvm::ToolContext &ToolContext) {
601596 // failing command.
602597 return Res;
603598}
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}