aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr108935-1.c
blob: 83efe9bb7e0c7d6fd5077d799b2f20ca48642b69 (plain)
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++;
    } while(!ended(f) && !f->vals[f->idx]);
    return foo(f); /* { dg-bogus "infinite recursion" } */
}