File tree Expand file tree Collapse file tree 4 files changed +55
-0
lines changed
regression/cbmc-shadow-memory Expand file tree Collapse file tree 4 files changed +55
-0
lines changed Original file line number Diff line number Diff line change
1
+ #include <assert.h>
2
+
3
+ extern _Bool nondet ();
4
+
5
+ int main ()
6
+ {
7
+ __CPROVER_field_decl_local ("field1" , (_Bool )0 );
8
+
9
+ char * buffer [10 ];
10
+
11
+ __CPROVER_set_field (& buffer [9 ], "field1" , 1 );
12
+ assert (__CPROVER_get_field (& buffer [9 ], "field1" ) == 1 );
13
+ __CPROVER_set_field (& buffer [10 ], "field1" , 1 );
14
+ if (nondet ())
15
+ {
16
+ assert (__CPROVER_get_field (& buffer [10 ], "field1" ) == 1 );
17
+ }
18
+ }
Original file line number Diff line number Diff line change
1
+ CORE
2
+ main.c
3
+ --verbosity 10 --pointer-check
4
+ ^EXIT=10$
5
+ ^SIGNAL=0$
6
+ ^VERIFICATION FAILED$
7
+ line 13 dereference failure: pointer outside object bounds.*: FAILURE
8
+ line 16 dereference failure: pointer outside object bounds.*: FAILURE
9
+ --
10
+ ^warning: ignoring
11
+ line 11 dereference failure: pointer outside object bounds.*: FAILURE
12
+ line 12 dereference failure: pointer outside object bounds.*: FAILURE
Original file line number Diff line number Diff line change
1
+ #include <assert.h>
2
+
3
+ int main ()
4
+ {
5
+ __CPROVER_field_decl_local ("uninitialized" , (char )0 );
6
+
7
+ char a ;
8
+ int * i = & a ;
9
+
10
+ __CPROVER_set_field (i , "uninitialized" , 1 ); // should this fail?
11
+
12
+ assert (__CPROVER_get_field (& a , "uninitialized" ) == 1 );
13
+ assert (__CPROVER_get_field (& a + 1 , "uninitialized" ) == 1 );
14
+ assert (__CPROVER_get_field (i , "uninitialized" ) == 1 );
15
+ }
Original file line number Diff line number Diff line change
1
+ CORE
2
+ main.c
3
+ --verbosity 10 --pointer-check
4
+ ^EXIT=10$
5
+ ^SIGNAL=0$
6
+ ^VERIFICATION FAILED$
7
+ line 10 dereference failure: pointer outside object bounds in \*i.*: FAILURE
8
+ line 13 dereference failure: pointer outside object bounds in \(&a\).*: FAILURE
9
+ line 14 dereference failure: pointer outside object bounds in \*i.*: FAILURE
10
+ --
You can’t perform that action at this time.
0 commit comments