Import boehm-gc snapshot, taken from
[official-gcc.git] / boehm-gc / tests / trace_test.c
blob79c353f71a61bd32fe35dc056b75db29239eefc7
1 #include <stdio.h>
2 #include <stdlib.h>
4 #ifndef GC_DEBUG
5 # define GC_DEBUG
6 #endif
8 #include "gc.h"
9 #include "gc_backptr.h"
11 struct treenode {
12 struct treenode *x;
13 struct treenode *y;
14 } * root[10];
16 struct treenode * mktree(int i) {
17 struct treenode * r = GC_MALLOC(sizeof(struct treenode));
18 if (0 == i) return 0;
19 if (1 == i) r = GC_MALLOC_ATOMIC(sizeof(struct treenode));
20 if (r == NULL) {
21 fprintf(stderr, "Out of memory\n");
22 exit(1);
24 r -> x = mktree(i-1);
25 r -> y = mktree(i-1);
26 return r;
29 int main(void)
31 int i;
32 GC_INIT();
33 for (i = 0; i < 10; ++i) {
34 root[i] = mktree(12);
36 GC_generate_random_backtrace();
37 GC_generate_random_backtrace();
38 GC_generate_random_backtrace();
39 GC_generate_random_backtrace();
40 return 0;