https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109226
Bug ID: 109226
Summary: parameters for a type on IMPLICIT do not work. For
example: IMPLICIT TYPE(REAL(KIND=REAL128)) fails
Product: gcc
Version: 12.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: urbanjost at comcast dot net
Target Milestone: ---
This fails on the IMPLICIT statement
program testit
use, intrinsic :: iso_fortran_env, only : qp=>real128
implicit type(real(kind=qp)) (a-z) ! this should work but fails
! surprising (to me) this works, which I thought broke the syntax rules
! implicit real(kind=qp) (a-z)
type(real(kind=QP)) :: quad
print '(*(g0))', "kind(long) = ", kind(long), &
& "; expected is ", kind(quad)
end program testit
The expected output is
kind(long) = 16; expected is 16
The "Fortran Standard" implies type parameters are standard:
8.7 IMPLICIT statement
1 In a scoping unit, an IMPLICIT statement specifies a type, and possibly
type parameters, for all implicitly typed data entities whose names
begin with one of the letters specified in the statement. An IMPLICIT
NONE statement can indicate that no implicit typing rules are to apply
in a particular scoping unit, or that external and dummy procedures
need to be explicitly given the EXTERNAL attribute.