https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45424
--- Comment #6 from Harald Anlauf <anlauf at gmx dot de> --- Created attachment 45292 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45292&action=edit Update of Tobias' patch to 9-trunk (except for ChangeLog) I've tried to update Tobias' patch so that it compiles with 9-trunk and adjusted his testcase so that it uses STOP instead of call abort (). There's one problem left and one question. The problem is that I'm getting one failure with the following test: implicit none real, allocatable :: a(:), b(:,:) integer :: k = 0 allocate(a(5), b(10,10)) call test (a, .true.) call test (b, .true.) call test (b(::1,::1), .true.) call test (b(::2,::1), .false.) call test (b(::1,::2), .false.) ! This test fails currently contains subroutine test (x, res) ! type(*), dimension(..), intent(in) :: x ! Should this be allowed? real, dimension(..), intent(in) :: x logical, intent(in) :: res k = k + 1 if (is_contiguous (x) .eqv. res) return print *, "Failure of test", k stop "FAIL" end subroutine test end program Maybe something else needs to be updated. Furthermore, should type(*), dimension(..) be allowed? Opinions? I tend to think so. Does this need explicit coding as for e.g. SIZEOF, or are there better ways?