[Bug fortran/45424] [F08] Add IS_CONTIGUOUS intrinsic
anlauf at gmx dot de
gcc-bugzilla@gcc.gnu.org
Thu Dec 27 22:51:00 GMT 2018
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?
More information about the Gcc-bugs
mailing list