test129.c 926 Bytes
Newer Older
1
typedef __crust__ unsigned char *crust_t;
2 3 4

#define NULL ((void *)0)

5 6 7
void function(crust_t);

void main(crust_t param1, crust_t __crust_not_null__ param2) {
8 9 10 11

	crust_t __crust_alias__ alias1;
	crust_t __crust_alias__ alias2;

12
	__crust_debug__ // here, 'param1' must be NOT_NULL_OR_NULL, 'param2' must be NOT_NULL, 'alias1', 'alias2' must be UNINITIALIZED
13
	alias1 = param1;
14
	__crust_debug__ // here, 'param1', 'alias1' must be NOT_NULL_OR_NULL and share UID, 'param2' must be NOT_NULL, 'alias2' must be UNINITIALIZED
15
	alias2 = alias1;
16 17 18 19 20 21
	__crust_debug__ // here, 'param1', 'alias1', 'alias2' must be NOT_NULL_OR_NULL and share UID, 'param2' must be NOT_NULL
	alias1 = param2;
	__crust_debug__ // here, 'param1', 'alias2' must be NOT_NULL_OR_NULL and share UID, 'param2', 'alias1' must be NOT_NULL and share UID
	function(param1);
	function(param2);
	__crust_debug__ // here, 'param1', 'param2', 'alias1', 'alias2' must be FREED
22
}