[PATCH] D69825: [Clang][Driver] Bypass cc1 process and re-enter driver main

Alexandre Ganea via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 4 14:17:33 PST 2019


aganea marked 3 inline comments as done.
aganea added a comment.

A few remarks:



================
Comment at: clang/lib/Driver/Job.cpp:319
 
+LLVM_THREAD_LOCAL bool Command::ReenterTool = true;
+
----------------
See my other comment about `LLVM_THREAD_LOCAL`


================
Comment at: clang/tools/driver/driver.cpp:338
+int ClangDriverMain(SmallVectorImpl<const char *> &argv) {
+  static LLVM_THREAD_LOCAL bool EnterPE = true;
+  if (EnterPE) {
----------------
`LLVM_THREAD_LOCAL` is here for the `llvm-buildozer` application I've presented at the LLVM conference. It's there because `main()` is entered from several threads, thus all clang needs to be thread-safe (I have several other patches to achieve that).
If you want this patch without `LLVM_THREAD_LOCAL` I'm fine with that.


================
Comment at: llvm/lib/Support/Windows/Signals.inc:814
+
+  return EXCEPTION_EXECUTE_HANDLER;
 }
----------------
When this function is entered through the global exception handler, returning `EXCEPTION_EXECUTE_HANDLER` lets the CRT do its own exit with the exception code.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69825/new/

https://reviews.llvm.org/D69825





More information about the llvm-commits mailing list