------- Comment #12 from ebotcazou at gcc dot gnu dot org 2005-10-10 16:29 ------- > Yes, I think it's true that (float)floor((double)f) == floorf(f). We could > make that routine look for that case, although it wasn't before, and I think > your test was passing by accident (i.e. the invalid tranformation that it > actually was doing, happened to work.) I should be able to look at it later > this week, have a firedrill at the moment.
It could be as simple as reinstating the code and checking that we have a real extension from the underlying argument. > (On darwin convert_to_real does not get called with anything that looks like > that, and all the builtin-convert tests pass. I'm not sure why Sparc is > different.) It's not SPARC per se, it's Solaris and HP-UX and any non-C99 OSes. On C99 systems, the call is folded earlier because we have an implicit builtin. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24263