https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86117

--- Comment #3 from janus at gcc dot gnu.org ---
Here is a variation of the original example that actually runs the routine:


module m

   type :: generic
      class(*), allocatable :: item
   end type

contains

   subroutine sub(a, b)
      type(generic), dimension(:), intent(in) :: a
      type(generic), dimension(:), intent(out) :: b
      integer :: i
      do i = 1, 10
         allocate(b(i)%item, source=a(i)%item)
      end do
   end

end


program p
   use m
   type(generic) :: x(10), y(10)
   integer ::i

   do i=1,10
      allocate(x(i)%item, source=i)
   end do

   call sub(x,y)
end



This runs ok without -fcheck=bounds, but segfaults at runtime with this flag
(in the allocate line in sub).

So I think the warning is probably not bogus, but instead -fcheck=bounds
generates wrong code for this case?

Reply via email to