1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
typedef struct { unsigned idx; int vals[512]; } foo_t; int ended(foo_t* f) { return f->idx >= 512; } unsigned foo(foo_t* f) { if (ended(f)) { return f->idx; } do { f->idx += 1000; } while(!ended(f) && !f->vals[f->idx]); return foo(f); /* { dg-bogus "infinite recursion" } */ }