2018-11-07 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / g++.dg / opt / pr69175.C
blobe24f6816b5f32541366d6dbe62c9a79c1949fb99
1 // PR target/69175
2 // { dg-do compile }
3 // { dg-options "-O2" }
4 // { dg-additional-options "-march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -mthumb" { target { arm_hard_vfp_ok && arm_thumb2_ok } } }
6 struct A { A *c, *d; } a;
7 struct B { A *e; A *f; void foo (); };
8 void *b;
10 void
11 B::foo ()
13   if (b) 
14     {
15       A *n = (A *) b;
16       if (b == e)
17         if (n == f)
18           e = __null;
19         else
20           e->c = __null;
21       else
22         n->d->c = &a;
23       n->d = e;
24       if (e == __null)
25         e = f = n;
26       else
27         e = n;
28     }