This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/36751] assignment between allocatable arrays of different size causes glibc error
- From: "dominiq at lps dot ens dot fr" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 7 Jul 2008 18:37:40 -0000
- Subject: [Bug fortran/36751] assignment between allocatable arrays of different size causes glibc error
- References: <bug-36751-14147@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #2 from dominiq at lps dot ens dot fr 2008-07-07 18:37 -------
I don't see that on ppc/intel Darwin9, but the following modified code gives at
run time:
PROGRAM repro
IMPLICIT NONE
REAL(KIND=8), ALLOCATABLE :: a2(:,:), a(:,:)
INTEGER(KIND=4) :: i, m, n
m = 4
n = 3
ALLOCATE(a(m,n))
a = reshape((/(i,i=1,m*n)/),(/m,n/))
n = n - 1
ALLOCATE(a2(m,n))
! this is the problematic assignment: is this legal??
a2 = a
print *, a2
print *, shape(a), shape(a2)
deallocate(a2)
END PROGRAM repro
[karma] f90/bug% gfc pr36751_db.f90
[karma] f90/bug% a.out
1.00000000000000000 2.0000000000000000 3.0000000000000000
4.0000000000000000 5.0000000000000000 6.0000000000000000
7.0000000000000000 8.0000000000000000
4 3 4 2
a.out(39419) malloc: *** error for object 0x2006b0: incorrect checksum for
freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
a.out(39419) malloc: *** error for object 0x200670: incorrect checksum for
freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
I am not sure the code is valid.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36751