aboutsummaryrefslogtreecommitdiff
path: root/tests/programs/arena.zc
blob: 5156b80891bbb3d494996aa67053571901d45b64 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// the bump arena: interior pointers, a rewind, and a full bump.
fn main() {
	let a = arena_new(32), p, q, r;
	p = arena_alloc(a, 4);
	p[0] = 7;
	q = arena_alloc(a, 4);
	put_n(q - p); put_c(' ');
	put_n(p[0]); put_c(' ');
	put_n(q[0]); put_c(' ');
	arena_reset(a);
	r = arena_alloc(a, 4);
	put_n(r == p); put_c(' ');
	put_n(arena_alloc(a, 100) == 0); put_c(10);
	free(d*a);
	return 0;
}