File tree Expand file tree Collapse file tree 11 files changed +128
-28
lines changed Expand file tree Collapse file tree 11 files changed +128
-28
lines changed Original file line number Diff line number Diff line change 1
- #include <assert.h>
2
1
#include <setjmp.h>
3
2
3
+ static jmp_buf env ;
4
+
4
5
int main ()
5
6
{
6
- _longjmp ();
7
- assert ( 0 );
7
+ _longjmp (env , 1 );
8
+ __CPROVER_assert ( 0 , "unreachable" );
8
9
return 0 ;
9
10
}
Original file line number Diff line number Diff line change 1
- KNOWNBUG
1
+ CORE
2
2
main.c
3
3
--pointer-check --bounds-check
4
- ^EXIT=0$
4
+ ^\[_longjmp.assertion.1\] line 12 _longjmp requires instrumentation: FAILURE$
5
+ ^\[main.assertion.1\] line 8 unreachable: SUCCESS$
6
+ ^VERIFICATION FAILED$
7
+ ^EXIT=10$
5
8
^SIGNAL=0$
6
- ^VERIFICATION SUCCESSFUL$
7
9
--
8
10
^warning: ignoring
Original file line number Diff line number Diff line change 1
- #include <assert.h>
2
1
#include <setjmp.h>
3
2
3
+ static jmp_buf env ;
4
+
4
5
int main ()
5
6
{
6
- longjmp ();
7
- assert ( 0 );
7
+ longjmp (env , 1 );
8
+ __CPROVER_assert ( 0 , "unreachable" );
8
9
return 0 ;
9
10
}
Original file line number Diff line number Diff line change 1
- KNOWNBUG
1
+ CORE
2
2
main.c
3
3
--pointer-check --bounds-check
4
- ^EXIT=0$
4
+ ^\[longjmp.assertion.1\] line 12 longjmp requires instrumentation: FAILURE$
5
+ ^\[main.assertion.1\] line 8 unreachable: SUCCESS$
6
+ ^VERIFICATION FAILED$
7
+ ^EXIT=10$
5
8
^SIGNAL=0$
6
- ^VERIFICATION SUCCESSFUL$
7
9
--
8
10
^warning: ignoring
Original file line number Diff line number Diff line change 1
- #include <assert.h>
2
1
#include <setjmp.h>
3
2
3
+ static jmp_buf env ;
4
+
4
5
int main ()
5
6
{
6
- setjmp ();
7
- assert (0 );
7
+ if (setjmp (env ))
8
+ __CPROVER_assert (0 , "reached via longjmp" );
9
+ else
10
+ __CPROVER_assert (0 , "setjmp called directly" );
8
11
return 0 ;
9
12
}
Original file line number Diff line number Diff line change 1
- KNOWNBUG
1
+ CORE
2
2
main.c
3
3
--pointer-check --bounds-check
4
- ^EXIT=0$
4
+ ^\[main.assertion.1\] line 8 reached via longjmp: SUCCESS$
5
+ ^\[main.assertion.2\] line 10 setjmp called directly: FAILURE$
6
+ ^VERIFICATION FAILED$
7
+ ^EXIT=10$
5
8
^SIGNAL=0$
6
- ^VERIFICATION SUCCESSFUL$
7
9
--
8
10
^warning: ignoring
Original file line number Diff line number Diff line change 1
- #include <assert.h>
2
1
#include <setjmp.h>
3
2
3
+ static sigjmp_buf env ;
4
+
4
5
int main ()
5
6
{
6
- siglongjmp ();
7
- assert ( 0 );
7
+ siglongjmp (env , 1 );
8
+ __CPROVER_assert ( 0 , "unreachable" );
8
9
return 0 ;
9
10
}
Original file line number Diff line number Diff line change 1
- KNOWNBUG
1
+ CORE unix
2
2
main.c
3
3
--pointer-check --bounds-check
4
- ^EXIT=0$
4
+ ^\[siglongjmp.assertion.1\] line 14 siglongjmp requires instrumentation: FAILURE$
5
+ ^\[main.assertion.1\] line 8 unreachable: SUCCESS$
6
+ ^VERIFICATION FAILED$
7
+ ^EXIT=10$
5
8
^SIGNAL=0$
6
- ^VERIFICATION SUCCESSFUL$
7
9
--
8
10
^warning: ignoring
Original file line number Diff line number Diff line change
1
+ #include <setjmp.h>
2
+
3
+ static sigjmp_buf env ;
4
+
5
+ int main ()
6
+ {
7
+ if (sigsetjmp (env , 0 ))
8
+ __CPROVER_assert (0 , "reached via siglongjmp" );
9
+ else
10
+ __CPROVER_assert (0 , "sigsetjmp called directly" );
11
+ return 0 ;
12
+ }
Original file line number Diff line number Diff line change
1
+ CORE unix
2
+ main.c
3
+ --pointer-check --bounds-check
4
+ ^\[main.assertion.1\] line 8 reached via siglongjmp: SUCCESS$
5
+ ^\[main.assertion.2\] line 10 sigsetjmp called directly: FAILURE$
6
+ ^VERIFICATION FAILED$
7
+ ^EXIT=10$
8
+ ^SIGNAL=0$
9
+ --
10
+ ^warning: ignoring
You can’t perform that action at this time.
0 commit comments