1 /* { dg-additional-options "-fno-early-inlining -fno-ipa-cp" } */ 2 struct a { 3 float *b; 4 } *a; 5 struct b { 6 int *b; 7 } b; 8 struct c { 9 float *b; 10 } *c; 11 int d; use_a(struct a * a)12use_a (struct a *a) 13 { 14 } set_b(int ** a)15set_b (int **a) 16 { 17 *a=&d; 18 } use_c(struct c * a)19use_c (struct c *a) 20 { 21 } retme(int ** val)22__attribute__ ((noinline)) int **retme(int **val) 23 { 24 return val; 25 } 26 int e; 27 struct b b= {&e}; 28 struct b b2; 29 struct b b3; 30 int **ptr = &b2.b; main()31main () 32 { 33 a= (void *)0; 34 b.b=&e; 35 ptr =retme ( &b.b); 36 set_b (ptr); 37 b3=b; 38 if (b3.b != &d) 39 __builtin_abort (); 40 c= (void *)0; 41 return 0; 42 } 43