https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119994
Bug ID: 119994 Summary: Valid specification expression in block rejected Product: gcc Version: 15.1.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: --- The following example is rejected with the following error: 19 | real :: array(this%n) | 1 Error: Dummy argument 'this' at (1) cannot be INTENT(OUT) module foo type :: bar integer :: n end type contains subroutine init(this, n) type(bar), intent(out) :: this integer, intent(in) :: n this%n = n block real :: array(this%n) end block end subroutine end module This is incorrect. THIS%N is an object designator with a base object (THIS) that is made accessible by host association (2018: 10.1.11 par 2, item 4) and thus is a restricted expression and a valid specification expression. The Intel compiler also gets this wrong, but NAG gets it correct.