| /* PR target/39678 */ | |
| /* { dg-do run } */ | |
| /* { dg-options "-Wno-psabi" } */ | |
| struct Y {}; | |
| struct X { | |
| struct Y y; | |
| __complex__ float val; | |
| }; | |
| struct X __attribute__((noinline)) | |
| foo (float *p) | |
| { | |
| struct X x; | |
| __real x.val = p[0]; | |
| __imag x.val = p[1]; | |
| return x; | |
| } | |
| extern "C" void abort (void); | |
| float a[2] = { 3., -2. }; | |
| int main() | |
| { | |
| struct X x = foo(a); | |
| if (__real x.val != 3. || __imag x.val != -2.) | |
| abort (); | |
| return 0; | |
| } |