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

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
                 CC|                            |janus at gcc dot gnu.org
   Target Milestone|---                         |7.0

--- Comment #2 from janus at gcc dot gnu.org ---
Slightly simpler test case:


program test
  type :: t
    integer :: a
  end type
  type, extends(t) :: tt
    integer :: b
  end type
  type :: group
    class(t), allocatable, dimension(:) :: unit
  end type

  type(group) :: g
  allocate(tt::g%unit(10))
  g%unit(:)%a = 1

  select type (units => g%unit)
  type is (tt)
    do i=1,10
      write(*,*) units(i)%a, units(i)%b
    end do
  end select
end program test


Note: When removing the 'group' type and declaring 'unit' directly in the main
program, the correct output is obtained.

Reply via email to