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.