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