2018-11-07 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / g++.dg / torture / pr78777.C
blob451289e5949f6215d6c31904411cdc7d5569f397
1 // PR tree-optimization/78777
3 void bar (char);
4 struct C { char b; };
5 struct H { char d[5]; int e; C *f[4]; int g[10]; };
6 void baz (C *, unsigned char *, int);
7 unsigned char j[10];
9 void
10 foo (H *o, int p, unsigned char *q, int r, char n, H *b)
12   for (int m = 0; m < o->e; m++)
13     {
14       if (o->f[m] || o->g[m])
15         continue;
16       try
17         {
18           baz (o->f[m], j, 5);
19           if (p)
20             baz (o->f[m], q, r);
21         }
22       catch (int)
23         {
24           C a = *o->f[m];
25           if (b)
26             bar (n & a.b);
27         }
28     }