1 /* { dg-do compile } */ 2 /* { dg-options "-msse" { target { i?86-*-* x86_64-*-* } } } */ 3 #define vector __attribute__((vector_size(16) )) 4 struct struct1 { 5 union {} vmx; 6 struct struct2 { struct2struct1::struct27 struct2(const struct2& r) {} 8 } w; 9 } __attribute__((aligned(16))); 10 struct struct3 { 11 vector float vmx; 12 operator const struct1& () const{ 13 return *reinterpret_cast<const struct1*>(this); 14 } 15 }; 16 struct3 func3( struct3 V1); 17 struct3 func2( void ); func1()18void func1( ) { 19 struct1 vVec = func2() ; 20 func3 ( (struct3&)vVec ); 21 } 22 23