aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/torture/pr82276.c
blob: fc9f2c5a07863ff7228a7f9085baeb358b37a5db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/* { dg-do compile } */
/* { dg-additional-options "-std=gnu17" } */

typedef struct a {
  struct a *b;
} a;

extern int d(void);
extern int g(void);
extern int h(void);
extern int _setjmp();
extern int i(void);

void c(void) {
    1 ? d() : 0;
    a *e;
    while (e) {
	e = (e == (a *) c) ? 0 : e->b;
	while (e) {
	    unsigned int f = 0;
	    g();
	    _setjmp(f);
	    if (f & 6) {
		;
	    } else if (f & 2) {
		;
	    } else {
		h();
	    }
	    i();
	}
    }
}