[Bug fortran/48699] [4.6/4.7 Regression] [OOP] MOVE_ALLOC inside SELECT TYPE

dominiq at lps dot ens.fr gcc-bugzilla@gcc.gnu.org
Sun May 22 00:12:00 GMT 2011


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

--- Comment #12 from Dominique d'Humieres <dominiq at lps dot ens.fr> 2011-05-21 23:32:58 UTC ---
The patch in comment #11 fixes the runtime for the tests in comments #0 and #9.
However the other tests give a backtrace on x86_64-apple-darwin10. and valgrind
reports errors of the kind

==27268== Invalid read of size 8
==27268==    at 0x100000D48: MAIN__ (pr48699_1.f90:16)
==27268==    by 0x100000DE8: main (pr48699_1.f90:16)
==27268==  Address 0x100442470 is 0 bytes inside a block of size 96 free'd
==27268==    at 0x10001146F: free (vg_replace_malloc.c:366)
==27268==    by 0x100000D34: MAIN__ (pr48699_1.f90:16)
==27268==    by 0x100000DE8: main (pr48699_1.f90:16)
==27268== 
==27268== Invalid write of size 8
==27268==    at 0x100000D69: MAIN__ (pr48699_1.f90:16)
==27268==    by 0x100000DE8: main (pr48699_1.f90:16)
==27268==  Address 0x100442470 is 0 bytes inside a block of size 96 free'd
==27268==    at 0x10001146F: free (vg_replace_malloc.c:366)
==27268==    by 0x100000D34: MAIN__ (pr48699_1.f90:16)
==27268==    by 0x100000DE8: main (pr48699_1.f90:16)
==27268== 
==27268== Invalid read of size 8
==27268==    at 0x100000D77: MAIN__ (pr48699_1.f90:16)
==27268==    by 0x100000DE8: main (pr48699_1.f90:16)
==27268==  Address 0x1004424a0 is 48 bytes inside a block of size 96 free'd
==27268==    at 0x10001146F: free (vg_replace_malloc.c:366)
==27268==    by 0x100000D34: MAIN__ (pr48699_1.f90:16)
==27268==    by 0x100000DE8: main (pr48699_1.f90:16)
==27268== 
==27268== Invalid write of size 8
==27268==    at 0x100000D9A: MAIN__ (pr48699_1.f90:16)
==27268==    by 0x100000DE8: main (pr48699_1.f90:16)
==27268==  Address 0x1004424a0 is 48 bytes inside a block of size 96 free'd
==27268==    at 0x10001146F: free (vg_replace_malloc.c:366)
==27268==    by 0x100000D34: MAIN__ (pr48699_1.f90:16)
==27268==    by 0x100000DE8: main (pr48699_1.f90:16)
==27268== 
==27268== Invalid free() / delete / delete[]
==27268==    at 0x10001146F: free (vg_replace_malloc.c:366)
==27268==    by 0x100000DB0: MAIN__ (pr48699_1.f90:16)
==27268==    by 0x100000DE8: main (pr48699_1.f90:16)
==27268==  Address 0x100442470 is 0 bytes inside a block of size 96 free'd
==27268==    at 0x10001146F: free (vg_replace_malloc.c:366)
==27268==    by 0x100000D34: MAIN__ (pr48699_1.f90:16)
==27268==    by 0x100000DE8: main (pr48699_1.f90:16)

for the test in comment #4.



More information about the Gcc-bugs mailing list