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)13void 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