------- Comment #2 from burnus at gcc dot gnu dot org 2010-01-06 13:57 -------
The following also looks bogus:
static struct t a = {.i=4};
Though, it seems to work - contrary to the version in comment 0.
program test
implicit none
type t
integer :: i = 4
integer, allocatable :: a(:)
end type t
call sub (0)
call sub (1)
call sub (2)
contains
subroutine sub (no)
integer, intent(in) :: no
type(t), save :: a
if (no == 0) then
if (allocated (a%a)) call abort ()
allocate (a%a(1))
else if (no == 1) then
if (.not. allocated (a%a)) call abort ()
deallocate (a%a)
else
if (allocated (a%a)) call abort ()
end if
end subroutine sub
end program test
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42610