[PATCH] D126550: Make report_fatal_error respect its GenCrashDiag argument so it doesn't generate a backtrace

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun May 29 10:51:33 PDT 2022


MaskRay added inline comments.


================
Comment at: llvm/lib/Support/ErrorHandling.cpp:125
+  else
+    exit(-1);
 }
----------------
nlopes wrote:
> MaskRay wrote:
> > MaskRay wrote:
> > > https://www.opengroup.org/austin/docs/austin_1110.pdf
> > > 
> > > "Calling exit() with a value greater than 255 or less than 0 is something that only programs
> > > which are specifically designed to have their exit status obtained by waitid() should do
> > > (since it does not truncate the exit status to 8 bits). ``Pure ISO Cā€™ā€™ programs that call
> > > exit(EXIT_FAILURE) do not meet this design criterion."
> > A value between 1 and 125 can be used.
> > 
> > 1 and 2 are often used for other purposes.
> > 
> > Perhaps use a value larger than `EX__MAX` in sysexits.h
> Man page disagrees:
> "The exit() function causes normal process termination and the value of status & 0377 is returned to the parent see wait(2))."
The Linux manpage is incorrect. With waitid you may access more than the least significant 8 bites, but that's not usage in practice.

bash has this https://www.gnu.org/software/bash/manual/html_node/Exit-Status.html and zsh is similar.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D126550



More information about the llvm-commits mailing list