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