This is a stripped down testcase from gfortran testcases converted to C : #include <complex.h> #include <stdio.h> int main() { float complex volatile z, one; z = 5.0; one = 1.0; z = cpowf (z, one); printf("%f\n", (double)cimagf(z)); return 0; } prints -0.000141 with libc 2.7 where as it prins 0.000000 with libc 2.3.6 and libc 2.4.11 on i686 host.
Possibly a related problem: #include <complex.h> #include <stdio.h> int main() { float complex volatile z; z = 1.2 - 4.0*I; z = clogf(z); printf("%lf\n", cimagf(z)); return 0; } prints -0.000029 instead of -1.2793396 .
-> Assign to math component
math regression tests fail hence this is likely a gcc 4.3 problem instead. Closing as Invalid.