re PR middle-end/21282 (Converting floor into lfloor built-in function)
authorUros Bizjak <uros@kss-loka.si>
Tue, 3 May 2005 08:08:45 +0000 (10:08 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Tue, 3 May 2005 08:08:45 +0000 (10:08 +0200)
PR middle-end/21282
* convert.c (convert_to_integer): Convert ceil and floor in
c99 mode only.

testsuite:

PR middle-end/21282
* gcc.dg/pr21282.c: New.

From-SVN: r99144

gcc/ChangeLog
gcc/convert.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr21282.c [new file with mode: 0644]

index b781ed82af558906077eb3d278c6e2847453d500..7cd6c72b318c8a007151bd3962b5316b85e64787 100644 (file)
@@ -1,3 +1,9 @@
+2005-05-03  Uros Bizjak  <uros@kss-loka.si>
+
+       PR middle-end/21282
+       * convert.c (convert_to_integer): Convert ceil and floor in
+       c99 mode only.
+
 2005-04-29  Geoffrey Keating  <geoffk@apple.com>
 
        PR target/20813
index c6c2620ab11a6cf28f7effb202ca592a63148831..97705a2926a8260d215064b9cf8baa7fa499749a 100644 (file)
@@ -349,26 +349,20 @@ convert_to_integer (tree type, tree expr)
       
       switch (fcode)
         {
-       case BUILT_IN_CEILF:
-       case BUILT_IN_CEILL:
+       case BUILT_IN_CEIL: 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_FLOORF:
-       case BUILT_IN_FLOORL:
+       case BUILT_IN_FLOOR: 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
index e8ebb36fb946d3e27edd2bf42b38d857f0d10f68..ede71cb4e1bf149024ce3599d495745b23937be7 100644 (file)
@@ -1,3 +1,8 @@
+2005-05-03  Uros Bizjak  <uros@kss-loka.si>
+
+       PR middle-end/21282
+       * gcc.dg/pr21282.c: New.
+
 2005-05-03  David Billinghurst  <David.Billinghurst@riotinto.com>
 
        * gcc.dg/vect/pr20122.c:  Clean up .vect file.
diff --git a/gcc/testsuite/gcc.dg/pr21282.c b/gcc/testsuite/gcc.dg/pr21282.c
new file mode 100644 (file)
index 0000000..427e393
--- /dev/null
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-O1" } */
+
+extern double floor (double);
+
+long foo (float f)
+{
+         return (long) floor (f);
+}