https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83548
Bug ID: 83548
Summary: Compilation Error using logical function in parameter
Product: gcc
Version: 5.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: j-pierre.lefebvre at edf dot fr
Target Milestone: ---
The following reproducer:
program testit
integer, parameter :: nb_field_defi = 19
logical(kind=1), parameter :: l_read_init(nb_field_defi) = &
(/logical(.true.,
1),logical(.true., 1) ,logical(.true., 1) ,&
logical(.false.,
1),logical(.true., 1) ,logical(.true., 1) ,&
logical(.true., 1)
,logical(.true., 1) ,logical(.true., 1) ,&
logical(.false., 1),&
logical(.true., 1)
,logical(.true., 1) ,logical(.true., 1) ,&
logical(.false.,
1),logical(.true., 1) ,&
logical(.true., 1)
,logical(.true., 1) ,logical(.false., 1),&
logical(.false., 1)/)
do k=1,nb_field_defi
write(6,*) ' l_read_init = ',k,l_read_init(k)
end do
end program testit
fails to compile with gfortran 6.3.0-1, and gfortran 5.4.0-6 (OK with gfortran
4.9.2-10)
>gfortran testit.f90
testit.f90:3:64:
(/logical(.true.,
1),logical(.true., 1) ,logical(.true., 1) ,&
1
Error: Integer expression required at (1)
additional information
----------------------
change first affectation in parameter with .true._1 and it works !