| 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++; | |
| } while(!ended(f) && !f->vals[f->idx]); | |
| return foo(f); /* { dg-bogus "infinite recursion" } */ | |
| } |