OSDN Git Service

2010-04-24 Kai Tietz <kai.tietz@onevision.com>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gfortran.dg / warn_conversion.f90
1 ! { dg-do "compile" }
2 ! { dg-options "-Wconversion" }
3
4 !
5 ! PR fortran/27866 -improve -Wconversion
6 !
7 SUBROUTINE pr27866
8   double precision :: d
9   real   :: r
10   d = 4d99
11   r = d                 ! { dg-warning "conversion" }
12 END SUBROUTINE
13
14 SUBROUTINE pr27866c4
15   real(kind=4)    :: a
16   real(kind=8)    :: b
17   integer(kind=1) :: i1
18   integer(kind=4) :: i4
19   i4 = 2.3              ! { dg-warning "conversion" }
20   i1 = 500              ! { dg-error "overflow" }
21                         ! { dg-warning "conversion" "" { target *-*-* } 20 }
22   a = 2**26-1           ! assignment INTEGER(4) to REAL(4) - no warning
23   b = 1d999             ! { dg-error "overflow" }
24
25   a = i4                ! assignment INTEGER(4) to REAL(4) - no warning
26   b = i4                ! assignment INTEGER(4) to REAL(8) - no warning
27   i1 = i4               ! { dg-warning "conversion" }
28   a = b                 ! { dg-warning "conversion" }
29 END SUBROUTINE
30
31
32 !
33 ! PR fortran/35003 - spurious warning with -Wconversion
34 ! Contributed by Brian Barnes <bcbarnes AT gmail DOT com>
35 !
36 SUBROUTINE pr35003
37   IMPLICIT NONE
38   integer(8) :: i, n
39   n = 1_8
40
41   do i = 1_8,n
42   enddo
43 END SUBROUTINE
44
45
46 !
47 ! PR fortran/42809 - Too much noise with -Wconversion
48 ! Contributed by Harald Anlauf <anlauf AT gmx DOT de>
49 !
50 SUBROUTINE pr42809
51   implicit none
52   integer, parameter :: sp = kind (1.0)
53   integer, parameter :: dp = kind (1.d0)
54   real(sp)     :: s
55   real(dp)     :: d
56   complex(dp)  :: z
57
58   s = 0                 ! assignment INTEGER(4) to REAL(4) - no warning
59   d = s                 ! assignment REAL((8)) to REAL(4) - no warning
60   z = (0, 1)            ! conversion INTEGER(4) to REAL(4),
61                         ! assignment COMPLEX(4) to COMPLEX(8) - no warning
62 END SUBROUTINE