aboutsummaryrefslogtreecommitdiff
path: root/gcc/convert.c
diff options
context:
space:
mode:
authorUros Bizjak <uros@kss-loka.si>2005-04-15 07:43:56 +0200
committerUros Bizjak <uros@gcc.gnu.org>2005-04-15 07:43:56 +0200
commit1c432a0c34a7f3ac56afca802e1dce1058be2db5 (patch)
tree6cece628e71c04ff9e27b7ef90ee01ffb2ef5922 /gcc/convert.c
parent57b11c96547894d67972735a5df66fb9c7fdacdb (diff)
downloadgcc-1c432a0c34a7f3ac56afca802e1dce1058be2db5.zip
gcc-1c432a0c34a7f3ac56afca802e1dce1058be2db5.tar.gz
gcc-1c432a0c34a7f3ac56afca802e1dce1058be2db5.tar.bz2
re PR tree-optimization/21004 (gcc.dg/builtins-53.c fails)
PR tree-optimization/21004 * convert.c (convert_to_integer): Convert ceilf, ceill, floorf and floorl in c99 mode only. * builtins.c (expand_builtin_int_roundingfn): Assert that fallback_fndecl is not NULL_TREE. testsuite: PR tree-optimization/21004 * gcc.dg/builtins-53.c: Include builtins-config.h. Check floorf, ceilf, floorl and ceill transformations only when HAVE_C99_RUNTIME is defined. From-SVN: r98174
Diffstat (limited to 'gcc/convert.c')
-rw-r--r--gcc/convert.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/gcc/convert.c b/gcc/convert.c
index 4e0fc84..c6c2620 100644
--- a/gcc/convert.c
+++ b/gcc/convert.c
@@ -349,14 +349,26 @@ convert_to_integer (tree type, tree expr)
switch (fcode)
{
- case BUILT_IN_CEIL: case BUILT_IN_CEILF: case BUILT_IN_CEILL:
+ case BUILT_IN_CEILF:
+ case BUILT_IN_CEILL:
+ /* Only convert in ISO C99 mode. */
+ if (!TARGET_C99_FUNCTIONS)
+ break;
+ /* ... Fall through ... */
+ case BUILT_IN_CEIL:
if (TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (long_long_integer_type_node))
fn = mathfn_built_in (s_intype, BUILT_IN_LLCEIL);
else
fn = mathfn_built_in (s_intype, BUILT_IN_LCEIL);
break;
- case BUILT_IN_FLOOR: case BUILT_IN_FLOORF: case BUILT_IN_FLOORL:
+ case BUILT_IN_FLOORF:
+ case BUILT_IN_FLOORL:
+ /* Only convert in ISO C99 mode. */
+ if (!TARGET_C99_FUNCTIONS)
+ break;
+ /* ... Fall through ... */
+ case BUILT_IN_FLOOR:
if (TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (long_long_integer_type_node))
fn = mathfn_built_in (s_intype, BUILT_IN_LLFLOOR);
else