------- Comment #4 from ubizjak at gmail dot com 2006-11-05 14:52 ------- (In reply to comment #3)
> I had a slightly deeper look. The ceilf builtin is defined only > for C99 targets in builtins.def: > > DEF_C99_C90RES_BUILTIN (BUILT_IN_CEILF, "ceilf", BT_FN_FLOAT_FLOAT, > ATTR_CONST_NOTHROW_LIST) But please consider this part from convert.c, function convert_to_integer(): switch (fcode) { CASE_FLT_FN (BUILT_IN_CEIL): /* Only convert in ISO C99 mode. */ if (!TARGET_C99_FUNCTIONS) break; if (outprec < TYPE_PRECISION (long_integer_type_node) || (outprec == TYPE_PRECISION (long_integer_type_node) && !TYPE_UNSIGNED (type))) fn = mathfn_built_in (s_intype, BUILT_IN_LCEIL); else if (outprec == TYPE_PRECISION (long_long_integer_type_node) && !TYPE_UNSIGNED (type)) fn = mathfn_built_in (s_intype, BUILT_IN_LLCEIL); break; TARGET_C99_FUNCTIONS should prevent this transformation, when we can't fall-back to ceilf(). -- ubizjak at gmail dot com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ubizjak at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29719