https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94070
--- Comment #11 from sandra at gcc dot gnu.org ---
There are still some bugs present with class arrays. E.g., this test case
ICEs:
module m
type :: t
integer :: id
real :: xyz(3)
end type
contains
subroutine testit2p(a)
class(t), pointer :: a(..)
print *, shape(a)
end subroutine
end module
SHAPE is implemented as a library call and it's trying to copy the pointer
array to a temporary instead of just dereferencing it. I'm looking at
replacing that logic to handle it inline same as LBOUND/UBOUND.