#include "gc.h" struct List_t { gcpointer(List_t) next; int val; }; typedef gcpointer(List_t) LLL; #define MAX (1024 * 1024) LLL buildLLL(int sz) { int i; LLL ll0, lll, llc; ll0 = gcmalloc(); ll0->val = 0; lll = ll0; for (i = 1; i < sz; i++) { llc = gcmalloc(); llc->val = i; lll->next = llc; lll = llc; } return ll0; } void testLLL(LLL lll) { unsigned char *counted; counted = (unsigned char *) calloc(MAX, sizeof(unsigned char)); while (lll) { counted[lll->val]++; if (counted[lll->val] > 1) { fprintf(stderr, "ERROR! Encountered %d twice!\n", lll->val); exit(1); } lll = lll->next; } return; } int main(void) { LLL mylll; mylll = buildLLL(MAX); testLLL(mylll); return 0; }