setjmp#
Synopsis#
#include <setjmp.h>
int setjmp(jmp_buf env);
Status#
Partially implemented
Conformance#
IEEE Std 1003.1-2017
Description#
A call to setjmp() shall save the calling environment in its env argument for later use by longjmp().
It is unspecified whether setjmp() is a macro or a function. If a macro definition is suppressed in order to access an
actual function, or a program defines an external identifier with the name setjmp, the behavior is undefined.
An application shall ensure that an invocation of setjmp() appears in one of the following contexts only:
The entire controlling expression of a selection or iteration statement
One operand of a relational or equality operator with the other operand an integral constant expression, with the resulting expression being the entire controlling expression of a selection or iteration statement
The operand of a unary
!operator with the resulting expression being the entire controlling expression of a selection or iterationThe entire expression of an expression statement (possibly cast to
void)
If the invocation appears in any other context, the behavior is undefined.
Return value#
If the return is from a direct invocation, setjmp() shall return 0. If the return is from a call to longjmp(),
setjmp() shall return a non-zero value.
Errors#
No errors are defined.
Tests#
Untested
Known bugs#
None