[Bug fortran/84093] New: Invalid nested derived type constructor not rejected
neil.n.carlson at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Jan 29 05:21:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84093
Bug ID: 84093
Summary: Invalid nested derived type constructor not rejected
Product: gcc
Version: 8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: neil.n.carlson at gmail dot com
Target Milestone: ---
Gfortran allows invalid nested derived type constructors. Consider this
example:
type parent
integer :: a, b
end type
type, extends(parent) :: child
real :: x
end type
type(child) :: foo
foo = child(parent(1,2),3.0)
end
Note 4.59 and the preceding paragraphs (in F08 or F15 standard) are clear
that in this example parent(1,2) corresponds to the first component of
child, which is a, and gfortran should reject this illegal code.
The correct constructor must use keywords if one wants to use the parent
constructor:
foo = child(parent=parent(1,2), x=3.0)
Note that the extends_2.f03 testsuite program contains this error.
More information about the Gcc-bugs
mailing list