[llvm-dev] [LLVM 10][Windows/MSVC] llvm.eh.sjlj.setjmp does not lower to _setjmp() call any more

Alexander Mitin via llvm-dev llvm-dev at lists.llvm.org
Fri May 8 14:34:13 PDT 2020


Hello,

In our project we use llvm.eh.sjlj.setjmp intrinsic to establish a
recovering chain which implies that it's 'longjmp' counterpart would
be called from a C code, so it uses a runtime implementation of
longjmp().
For LLVM 7 llvm.eh.sjlj.setjmp lowers to a call to Windows CRT
function _setjmp(). After migrating to LLVM 10 we've found that it's
no longer true.
Is it done intentionally? If yes, why? The doc for llvm.eh.sjlj.setjmp
says that this intrinsic is compatible with the GCC __builtin_setjmp
implementation, so why isn't it compatible with MSVC CRT (in case of
using MSVC CRT)?

-- 
Alexander Mitin,
Instantiations, Inc.


More information about the llvm-dev mailing list