https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67817

            Bug ID: 67817
           Summary: Missing compilation error for some wrong conversions
                    in data
           Product: gcc
           Version: 5.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gerhard.steinmetz.fort...@t-online.de
  Target Milestone: ---

For the following cases an error message should be given.
Rejection makes it comparable to other ways of initialization.
(add-on to PR67804)


$ cat z1.f90
program p
   type t
      real :: a
   end type
   type(t) :: x6, x8
   data x6 /t(.true.)/
   data x8 /t('1')/
   print *, x6
   print *, x8
end

$ gfortran -g -O0 -Wall -fcheck=all -fno-frontend-optimize z1.f90
$ a.out
   1.40129846E-45
   6.86636248E-44


---

Here, relevant errors are detected :

$ cat z2.f90
program p
   real :: x6, x8
   data x6 /.true./
   data x8 /'1'/
end

$ gfortran -g -O0 -Wall -fcheck=all -fno-frontend-optimize z2.f90
z2.f90:4:7:

    data x8 /'1'/
       1
Error: Incompatible types in DATA statement at (1); attempted conversion of
CHARACTER(1) to REAL(4)
z2.f90:3:7:

    data x6 /.true./
       1
Error: Incompatible types in DATA statement at (1); attempted conversion of
LOGICAL(4) to REAL(4)

---

$ cat z3.f90
program p
   type t
      real :: a
   end type
   type(t), parameter :: x6 = t(.true.)
   type(t), parameter :: x8 = t('1')
end

$ gfortran -g -O0 -Wall -fcheck=all -fno-frontend-optimize z3.f90
z3.f90:5:32:

    type(t), parameter :: x6 = t(.true.)
                                1
Error: Can't convert LOGICAL(4) to REAL(4) at (1)
z3.f90:6:32:

    type(t), parameter :: x8 = t('1')
                                1
Error: Can't convert CHARACTER(1) to REAL(4) at (1)

Reply via email to