http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46978
Summary: TRANSPOSE corrupts structure and memory Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: fortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: m.a.hul...@tue.nl Created attachment 22783 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22783 the source files and Makefile I found a serious issue with the TRANSPOSE intrinsic function, possibly when combined with the reshape intrinsic. I tried to create a small sample program, but I was unsuccessful. Therefore I decided to start from the failing big program and made it as small as possible but still showing the issue. It turned out to be very tricky and there are still 4275 lines of code left. However, all of the code in mods.f90 is necessary to build the structure mesh and is fine. The problem appears at a single line in the small main program after building the mesh structure. The corruption is related to the statement: mesh%objects(1)%coor = transpose ( reshape ( a, (/2,nno/) ) ) at line 113 in the file mainprog.f90, which corrupt other parts of the structure mesh. In particular the parts mesh%blocks(2)%elements and mesh$blocks(3)%elements are overwritten. For example: mesh%blocks(3)%elements before: 1 1 1 1 1 21 22 23 24 25 mesh%blocks(3)%elements after: 1 1 1 1 1 21 22 23 0 1072693248 If I remove the stop statement at line 124, I also get a message: *** glibc detected *** mainprog: double free or corruption (!prev): 0x00000000008fe440 *** with a corresponding backtrace. If I uncomment lines 5, 6 and 7 in mainprog.f90, and basically replacing the intrinsic transpose with my own version, the problem is gone. Note, that it runs fine with gfortran from 6th June 2010 (from Tobias Burnus’ homepage), g95, ifort, Lahey/Fujitsu and nagfor.