/* PR optimization/6177 | |
This testcase ICEd because expr.c did not expect to see a CONCAT | |
as array rtl. */ | |
extern void abort (void); | |
extern void exit (int); | |
__complex__ float foo (void) | |
{ | |
__complex__ float f[1]; | |
__real__ f[0] = 1.0; | |
__imag__ f[0] = 1.0; | |
f[0] = __builtin_conjf (f[0]); | |
return f[0]; | |
} | |
int main (void) | |
{ | |
__complex__ double d[1]; | |
d[0] = foo (); | |
if (__real__ d[0] != 1.0 | |
|| __imag__ d[0] != -1.0) | |
abort (); | |
exit (0); | |
} |