extern void abort(void); extern void __assert_fail(const char *, const char *, unsigned int, const char *) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); void reach_error() { __assert_fail("0", "test14.c", 3, "reach_error"); } extern int __VERIFIER_nondet_int(void); extern _Bool __VERIFIER_nondet_bool(); int a, b; int *get_dummy() { return (__VERIFIER_nondet_bool() ? &a : &b); } int main() { int a, b; int c = 5; // The value of c is not important and may be arbitrary for this example a = __VERIFIER_nondet_int(); b = __VERIFIER_nondet_int(); int *pa, *pb; int *pc = &c; pa = pb = get_dummy(); if (pc == 0 || pa == pb && *pa != *pb) { goto ERROR; } return 0; ERROR: {reach_error();abort();} return 1; }