http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46371

--- Comment #3 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-11-24 
16:41:54 UTC ---
Polymorphic array example: Todo check for validity and fix.

program p
  use m
  class(foo), allocatable :: o_bar(:)[:]
  integer :: j

  allocate(foo :: o_bar(5)[*])

  select type(o_bar)
    type is(foo)
      j = o_bar(2)[1]%i
  end select

!! FIXME: "type if (foo)" fails with:
!! Associate-name '__tmp_type_foo' at (1) is used as array
  select type(a => o_bar)
    type is (foo)
      j = a(1)[1]%i
  end select

!! FIXME: "a" should be a rank 0 not a rank 1
!!        array
  select type(a => o_bar(1))
    type is (foo)
      j = a[2]%i
  end select
end program p

Reply via email to