------- Additional Comments From jakub at gcc dot gnu dot org 2005-01-21 16:13 ------- Simplified testcase: extern void abort ();
__attribute__((pure)) _Complex float
foo (int x)
{
_Complex float r;
__real r = x + 1;
__imag r = x - 1;
return r;
}
void
bar (float *f)
{
*f = foo (5);
}
int
main (void)
{
float f;
bar (&f);
if (f != 6.0)
abort ();
return 0;
}
Likely the culprit is in libcall_dead_p.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19551
