cracauer@
Developer
Are you sure about that?
Because that's weird.
Traditionally, abort(3) is used by assertions resulting in SIGABRT .
I've also seen SIGTRAP (generated by int3 instruction on x86) used in the code that shouldn't be executed (e.g., because of undefined behavior).
This is the first time I hear about SIGILL used for diagnostic purposes.
Yes, I'm sure. It is for the C++ libraries only. Sigabort is already used for exceptions, so they had to use something different.
The easiest way to reproduce is to make a C++ string with size 0 and then read s[0].