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