The following program causes a double free violation, when compiled and run, the error message is: a.out(12292) malloc: *** error for object 0x2009d0: double free *** set a breakpoint in malloc_error_break to debug The code is: program main
type :: container_t integer, dimension(:), allocatable :: entry end type container_t type(container_t), dimension(2) :: a1, a2 integer :: i do i = 1, 2 allocate (a1(i)%entry (1), a2(i)%entry (1)) a1(i)%entry = 0 a2(i)%entry = i end do print *, "array1:" do i = 1, 2 print *, a1(i)%entry end do print *, "array2:" do i = 1, 2 print *, a2(i)%entry end do print *, "pack array2(2) into array1:" a1(1:1) = pack (a2(1:2), mask = [.false., .true.]) print *, "array1:" do i = 1, 2 print *, a1(i)%entry end do end program main -- Summary: function "pack" causes double free violation Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: reuter at physik dot uni-freiburg dot de GCC build triplet: i386-32bit, MAC OS X Leopard GCC host triplet: i386-32bit, MAC OS X Leopard GCC target triplet: i386-32bit, MAC OS X Leopard http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41478