2018-05-15 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.dg / graphite / pr60979.c
blobab8aa654d192824d933eefc2bf11d90484cfd5a4
1 /* { dg-options "-O -fgraphite-identity" } */
2 /* { dg-require-effective-target nonlocal_goto } */
4 #include <setjmp.h>
6 struct x;
8 typedef struct x **(*a)(struct x *);
9 void d (const char *);
11 struct x {
12 union {
13 struct {
14 union {
15 a *i;
16 } l;
17 int s;
18 } y;
19 } e;
22 jmp_buf c;
24 void
25 b(struct x *r)
27 int f;
28 static int w = 0;
29 volatile jmp_buf m;
30 f = (*(((struct x *)r)->e.y.l.i[2]((struct x *)r)))->e.y.s;
31 if (w++ != 0)
32 __builtin_memcpy((char *)m, (const char *)c, sizeof(jmp_buf));
33 if (setjmp (c) == 0) {
34 int z;
35 for (z = 0; z < 0; ++z)
38 d((const char *)m);