-
Allan Blanchard authoredAllan Blanchard authored
nullable_ext.c 1.20 KiB
/* run.config
OPT: -wp-model Caveat
EXIT: 1
OPT: -cpp-extra-args="-DFAIL_1"
EXIT: 1
OPT: -cpp-extra-args="-DFAIL_2"
EXIT: 1
OPT: -cpp-extra-args="-DFAIL_3"
EXIT: 1
OPT: -cpp-extra-args="-DFAIL_4"
*/
/* run.config_qualif
OPT: -wp-model Caveat
*/
int x;
int *g;
/*@ assigns *g, *p, x ;
wp_nullable_args p ;
*/
void nullable_coherence(int *p) {
if (p == (void *)0) {
//@ check must_fail: \false ;
return;
}
//@ check \valid(p);
*p = 42;
*g = 24;
x = 1;
}
/*@ assigns *p, *q, *r, *s, *t ;
wp_nullable_args p, q, r ;
*/
void nullable_in_context(int *p, int *q, int *r, int *s, int *t) {
*p = 42;
*q = 42;
*r = 42;
*s = *t = 0;
}
/*@ assigns *ptr ;
wp_nullable_args ptr ;
*/
void with_declaration(int *ptr);
void with_declaration(int *ptr) {}
#ifdef FAIL_1
/*@ assigns *ptr ;
wp_nullable_args unexisting_ptr ;
*/
void fails_no_variable(int *ptr) {}
#endif
#ifdef FAIL_2
/*@ assigns *ptr ;
wp_nullable_args *ptr ;
*/
void not_a_variable(int *ptr) {}
#endif
#ifdef FAIL_3
/*@ assigns *ptr ;
wp_nullable_args g ;
*/
void not_a_formal(int *ptr) {}
#endif
#ifdef FAIL_4
/*@ assigns x ;
wp_nullable_args f ;
*/
void not_a_pointer(int f) {}
#endif