1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
typedef struct { unsigned done; } foo_t; unsigned foo(foo_t* f) { if (f->done) { return f->done; } f->done = 1; return foo(f); /* { dg-bogus "infinite recursion" } */ } int main() { foo_t f = (foo_t){ .done = 0, }; foo(&f); }