summaryrefslogtreecommitdiff
path: root/src/setjmp/setjmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/setjmp/setjmp.c')
-rw-r--r--src/setjmp/setjmp.c35
1 files changed, 7 insertions, 28 deletions
diff --git a/src/setjmp/setjmp.c b/src/setjmp/setjmp.c
index 091f0993..3c8a199c 100644
--- a/src/setjmp/setjmp.c
+++ b/src/setjmp/setjmp.c
@@ -1,37 +1,16 @@
#include <setjmp.h>
-#include <string.h>
#include "_safety.h"
-/** save program state **/
+#undef setjmp
-int setjmp(jmp_buf env)
+int setjmp(jmp_buf jb)
{
- extern int ___setjmp(jmp_buf);
- SIGNAL_SAFE(0);
- memset(env, 0, sizeof(jmp_buf));
- return ___setjmp(env);
+ (void)jb;
+ UNDEFINED("The setjmp() macro has been suppressed to access an actual function");
+ return 0;
}
-CHECK_1(int, 0, setjmp, jmp_buf)
-
-/***
-saves the current state of the calling environment
-in the TYPEDEF(jmp_buf) ARGUMENT(env).
-***/
-
/*
-RETURN(0, the environment has been saved by THIS())
-RETURN(NONZERO, the environment has been restored by FUNCTION(longjmp))
-
-CONSTRAINT: entire controlling expression of a selection or iteration statement
-CONSTRAINT: one operand of a relational or equality operator which is the entire controlling expression of a selction or iteration statement
-CONSTRAINT: the operand of a unary ! as the entire controlling expression of a selection or iteration statement
-CONSTRAINT: an entire expression statement
-
-UNSPECIFIED(Whether THIS() is a macro or identifier with external linkage)
-
-UNDEFINED(A macro definition of THIS() is suppressed in order to access an actual function)
-UNDEFINED(A program defines an external identifier named LITERAL(setjmp))
-
-STDC(1)
+SIGNAL_SAFE(0)
+STDC(0)
*/