1 // PR tree-opt/18904
2 // { dg-do compile }
3 // { dg-options "-O3" }
4 
5 struct Data;
6 struct Wrapper {
7   Data* D;
8 };
9 struct Data {
10   int X;
11   void init(Wrapper&);
12 };
init(Wrapper & w)13 void Data::init( Wrapper &w ) {
14   int Data::* res  = &Data::X;
15   w.D = this;
16   for( int i = 0; i < 4; i++ )
17     (w.D->*res) = 0;
18 }
19 
20