There are a few places where we use report_fatal_error when the input is broken. Currently, this function always crashes LLVM with an abort signal, which then triggers the backtrace printing code.
I think this is excessive, as wrong input shouldn't give a link to LLVM's github issue URL and tell users to file a bug report. We shouldn't print a stack trace either.
This patch changes report_fatal_error so it uses exit() rather than abort() when its argument GenCrashDiag=true.
As a side-effect, and the motivation for my change, this fixes 5 Alive2 reports, as our test driver doesn't propagate signal data.
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."