------- Comment #4 from ebotcazou at gcc dot gnu dot org 2005-10-10 07:41 ------- Reduced testcase on SPARC/Solaris:
void test(double d1, float f1, long double ld1) { extern double ceil(double); extern long double ceill(long double); extern void link_failure_outer_ceill_ceil_1(void); extern void link_failure_outer_ceill_ceil_2(void); if ((double) ceill(d1) != ceil(d1)) link_failure_outer_ceill_ceil_1(); if ((double) ceill(f1) != ceil(f1)) link_failure_outer_ceill_ceil_2(); } int main (void) { return 0; } t03.gimple contains: test (d1, f1, ld1) { long double D.1278; long double D.1279; double D.1280; double D.1281; double D.1282; if (0) { link_failure_outer_ceill_ceil_1 (); } else { } D.1278 = (long double) f1; D.1279 = ceill (D.1278); D.1280 = (double) D.1279; D.1281 = (double) f1; D.1282 = ceil (D.1281); if (D.1280 != D.1282) { link_failure_outer_ceill_ceil_2 (); } else { } } Everything is folded with 4.0.x. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24263