OSDN Git Service

PR middle-end/21282
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 3 May 2005 08:08:45 +0000 (08:08 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 3 May 2005 08:08:45 +0000 (08:08 +0000)
* convert.c (convert_to_integer): Convert ceil and floor in
c99 mode only.

testsuite:

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99144 138bc75d-0d04-0410-961f-82ee72b054a4

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

index b781ed8..7cd6c72 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 c6c2620..97705a2 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 e8ebb36..ede71cb 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);
+}