SjLj exception handling impl

"Setjmp/Longjmp (SJLJ) based exception handling uses LLVM intrinsics and to handle control flow
for exception handling."

Is this still true at least for X86?
"clang++ -fsjlj-exceptions -fcxx-exceptions -S -emit-llvm -O1 eh.cpp"
still gives me the usual invoke, landingpad etc..

Or* are only lowered from corresponding clang builtins?


I don’t think is involved, but the backend does a bunch of preparation in IR in the SjLjEHPrepare pass. Check it out here:

So, the documentation is true in the sense that LLVM intrinsics are used to set up a context that is compatible with, which the EH runtime will call. We could update it to indicate that this lowering happens late during codegen to clarify things.