------- Comment #13 from dfranke at gcc dot gnu dot org  2008-02-07 22:30 
-------
> As valgrind --leak-check=full shows, the generated program still 
> leaks memory

Forgot to check this one :(

Interestingly, the error seems to be with forall only. 
The equivalent DO-loop does not leak:

  type :: a
    integer, allocatable :: i(:)
  end type a
  type :: b
    type (a), allocatable :: at(:)
  end type b
  type(a) :: x(2)
  type(b) :: y(2)
  integer i
  y(1) = b ((/x(1),x(2)/))
  y(2) = b ((/x(2),x(1)/))
 ! forall (i=1:2) y(i) = b ((/x(i)/))       ! memory leak (12 of 14)
 DO i = 1,2                                 ! frees 14 of 14
   y(i) = b ((/x(i)/))
 END DO
end


-- 


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

Reply via email to