The function signature
longjmp(jmp_buf jbuf, int val)
has more restricted behavior in this document.
A setjmp/longjmp call pair has undefined
behavior if replacing the setjmp and longjmp
by catch and throw would invoke any non-trivial destructors for any objects
with automatic storage duration.
A call to setjmp or longjmp has undefined
behavior if invoked in a suspension context of a coroutine ([expr.await]).