public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r12-5959] testsuite: Silence conversion warnings for MIN1 and MAX1
@ 2021-12-14 15:31 Martin Liska
  0 siblings, 0 replies; only message in thread
From: Martin Liska @ 2021-12-14 15:31 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:44aa890d8fb4afa843cf6cb7452fd5d6f3dd61fe

commit r12-5959-g44aa890d8fb4afa843cf6cb7452fd5d6f3dd61fe
Author: Manfred Schwarb <manfred99@gmx.ch>
Date:   Tue Dec 14 16:30:27 2021 +0100

    testsuite: Silence conversion warnings for MIN1 and MAX1
    
    gcc/testsuite/ChangeLog:
    
            PR fortran/91497
            * gfortran.dg/pr91497.f90: Adjust test to use
            dg-require-effective-target directive.
            * gfortran.dg/pr91497_2.f90: New test to cover all targets.
            Cover MAX1 and MIN1 intrinsics.

Diff:
---
 gcc/testsuite/gfortran.dg/pr91497.f90   |  23 +++---
 gcc/testsuite/gfortran.dg/pr91497_2.f90 | 124 ++++++++++++++++++++++++++++++++
 2 files changed, 136 insertions(+), 11 deletions(-)

diff --git a/gcc/testsuite/gfortran.dg/pr91497.f90 b/gcc/testsuite/gfortran.dg/pr91497.f90
index d324b3b1aa0..f4005e503e4 100644
--- a/gcc/testsuite/gfortran.dg/pr91497.f90
+++ b/gcc/testsuite/gfortran.dg/pr91497.f90
@@ -1,4 +1,6 @@
-! { dg-do compile { target { i?86-*-* x86_64-*-* } } }
+! { dg-do compile }
+! { dg-require-effective-target fortran_real_10 }
+! { dg-require-effective-target fortran_real_16 }
 ! { dg-options "-Wall" }
 ! Code contributed by Manfred Schwarb <manfred99 at gmx dot ch>
 ! PR fortran/91497
@@ -8,13 +10,13 @@
 !
 program foo
 
-      real*4 a,aa
-      real*8 b,bb
-      real*10 c,cc
-      real*16 d
-      integer*2 e,ee
-      integer*4 f,ff
-      integer*8 g,gg
+      real(4) a,aa
+      real(8) b,bb
+      real(10) c,cc
+      real(16) d
+      integer(2) e,ee
+      integer(4) f,ff
+      integer(8) g,gg
       PARAMETER(a=3.1415927_4)
       PARAMETER(b=3.1415927_8)
       PARAMETER(c=3.1415927_10)
@@ -36,11 +38,10 @@ program foo
       aa=CEILING(b)
       aa=CEILING(c)
       aa=CEILING(d)
-      !---unknown but documented type conversions:
+      !---DEC specific type conversions (-fdec):
       !!aa=FLOATI(e)
       !!aa=FLOATJ(f)
       !!aa=FLOATK(g)
-      !---documentation is wrong for sngl:
       aa=SNGL(c)
       aa=SNGL(d)
       bb=REAL(c, kind=8)
@@ -98,7 +99,7 @@ program foo
       ff=IFIX(a)
       ff=IDINT(b)
       ff=IDNINT(b)
-      !---LONG not allowed anymore in gfortran 10 (?):
+      !---LONG support got removed:
       !!ff=LONG(a)
       !!ff=LONG(b)
       !!ff=LONG(c)
diff --git a/gcc/testsuite/gfortran.dg/pr91497_2.f90 b/gcc/testsuite/gfortran.dg/pr91497_2.f90
new file mode 100644
index 00000000000..28aa4bd1872
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr91497_2.f90
@@ -0,0 +1,124 @@
+! { dg-do compile }
+! { dg-options "-Wall" }
+! Code contributed by Manfred Schwarb <manfred99 at gmx dot ch>
+! PR fortran/91497
+!
+! Prior to applying the patch for this PR, the following code
+! would generate numerous conversion warnings.
+! Additional test case to cover all targets.
+!
+program foo
+
+      real(4) a, aa
+      real(8) b, bb
+      integer(2) e, ee
+      integer(4) f, ff
+      integer(8) g, gg
+      complex(4) ww
+      complex(8) xx
+      PARAMETER(a=3.1415927_4)
+      PARAMETER(b=3.1415927_8)
+      PARAMETER(e=123_2)
+      PARAMETER(f=123_4)
+      PARAMETER(g=123_8)
+
+      aa=REAL(b)    ! was: Change of value in conversion from 'REAL(8)' to 'REAL(4)'
+      aa=REAL(e)
+      aa=REAL(f)
+      aa=REAL(g)
+      aa=REAL(b, kind=4)   ! was: Change of value in conversion from 'REAL(8)' to 'REAL(4)'
+      bb=REAL(a, kind=8)
+
+      aa=FLOAT(f)
+      bb=DFLOAT(g)
+      aa=SNGL(b)    ! was: Change of value in conversion from 'REAL(8)' to 'REAL(4)'
+      aa=AINT(a)
+      bb=AINT(b)
+      aa=AINT(b, kind=4)
+      bb=DINT(b)
+      aa=ANINT(a)
+      bb=ANINT(b)
+      aa=ANINT(b, kind=4)
+      bb=DNINT(b)
+      aa=AMAX0(f, f)
+      aa=AMIN0(f, f)
+      aa=AMAX0(g, g)
+      aa=AMIN0(g, g)
+
+      ee=INT(a)
+      ee=INT(a, kind=2)    ! was: Change of value in conversion from 'REAL(4)' to 'INTEGER(2)'
+      ee=INT(b, kind=2)    ! was: Change of value in conversion from 'REAL(8)' to 'INTEGER(2)'
+      ee=INT(f, kind=2)
+      ee=INT(g, kind=2)
+      ff=INT(b)
+      ff=INT(a, kind=4)    ! was: Change of value in conversion from 'REAL(4)' to 'INTEGER(4)'
+      ff=INT(b, kind=4)    ! was: Change of value in conversion from 'REAL(8)' to 'INTEGER(4)'
+      ff=INT(f, kind=4)
+      ff=INT(g, kind=4)
+      gg=INT(a)
+      gg=INT(a, kind=8)    ! was: Change of value in conversion from 'REAL(4)' to 'INTEGER(8)'
+      gg=INT(b, kind=8)    ! was: Change of value in conversion from 'REAL(8)' to 'INTEGER(8)'
+      gg=INT(f, kind=8)
+      gg=INT(g, kind=8)
+
+      ee=IFIX(a)
+      ff=IFIX(a)
+      gg=IFIX(a)
+      ee=IDINT(b)
+      ff=IDINT(b)
+      gg=IDINT(b)
+      ee=INT2(a)    ! was: Change of value in conversion from 'REAL(4)' to 'INTEGER(2)'
+      ee=INT2(b)    ! was: Change of value in conversion from 'REAL(8)' to 'INTEGER(2)'
+      ee=INT2(f)
+      ee=INT2(g)
+      gg=INT8(a)    ! was: Change of value in conversion from 'REAL(4)' to 'INTEGER(8)'
+      gg=INT8(b)    ! was: Change of value in conversion from 'REAL(8)' to 'INTEGER(8)'
+      gg=INT8(f)
+      gg=INT8(g)
+
+      ff=FLOOR(b)
+      ee=FLOOR(b, kind=2)
+      ff=FLOOR(b, kind=4)
+      gg=FLOOR(b, kind=8)
+      ff=CEILING(b)
+      ee=CEILING(b, kind=2)
+      ff=CEILING(b, kind=4)
+      gg=CEILING(b, kind=8)
+      ff=MAX1(a, a)    ! was: Change of value in conversion from 'REAL(4)' to 'INTEGER(4)'
+      ff=MIN1(a, a)    ! was: Change of value in conversion from 'REAL(4)' to 'INTEGER(4)'
+      gg=MAX1(b, b)    ! was: Change of value in conversion from 'REAL(8)' to 'INTEGER(4)'
+      gg=MIN1(b, b)    ! was: Change of value in conversion from 'REAL(8)' to 'INTEGER(4)'
+
+      ee=NINT(a, kind=2)
+      ee=NINT(b, kind=2)
+      ff=NINT(a)
+      ff=NINT(b)
+      ff=NINT(a, kind=4)
+      ff=NINT(b, kind=4)
+      gg=NINT(a, kind=8)
+      gg=NINT(b, kind=8)
+      ee=IDNINT(b)
+      ff=IDNINT(b)
+      gg=IDNINT(b)
+
+      ww=COMPLEX(a, a)
+      ww=COMPLEX(e, e)
+      ww=COMPLEX(g, g)
+      ww=COMPLEX(a, g)
+      xx=COMPLEX(b, g)
+      ww=CMPLX(a, a)
+      ww=CMPLX(b, b, kind=4)
+      xx=CMPLX(a, a, kind=8)
+
+      aa=REAL(ww)
+      bb=REAL(xx)
+      aa=REALPART(ww)
+      bb=REALPART(xx)
+      aa=AIMAG(ww)
+      bb=AIMAG(xx)
+      aa=IMAG(ww)
+      bb=IMAG(xx)
+      bb=DIMAG(xx)
+      aa=IMAGPART(ww)
+      bb=IMAGPART(xx)
+end


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-12-14 15:31 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-14 15:31 [gcc r12-5959] testsuite: Silence conversion warnings for MIN1 and MAX1 Martin Liska

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).