This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/52117] allocated arrays give incorrect results when used with RESHAPE in gcc v4.6.2
- From: "burnus at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sat, 11 Feb 2012 11:40:36 +0000
- Subject: [Bug fortran/52117] allocated arrays give incorrect results when used with RESHAPE in gcc v4.6.2
- Auto-submitted: auto-generated
- References: <bug-52117-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52117
--- Comment #11 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-02-11 11:40:36 UTC ---
(In reply to comment #9)
> We have a problem in v4.6.2 with the following (using the std=f95 flag):
> There seems to have been a limitation in past versions of gfortran with
> allocatable components inside derived types.
Allocatable components in derived types is not allowed in Fortran 95 - it has
only been later added as Technical Report (TR) 15581 and it is part of Fortran
2003.
Thus, the flag -std=f95 does not work if you need allocatable components.
Hence, you have to choose one of the other options listed as comment #7:
> Unless you provide me with a time machine [...]
> The only solutions, I see, which do not require code changes are:
>
> - Use any GCC version before GCC 4.6.0; for instance GCC 4.5.x
> - Use GCC 4.6 older than 2010-11-28
> - Use a GCC (any version) newer than 2012-02-03
> - Use -fno-realloc-lhs (caveat: Flag not supported before GCC 4.6)
> - Use -std=f95 (caveat: Requires that the code compiles without error with
> -std=f95)
>
> I personally would use -fno-realloc-lhs [...]
>
> For completeness, also the following code changes are possible; except for
> the first one, they are not recommended:
>
> - Use an array spec for allocatable LHS, e.g. "B(:,:,:) = "
> - Don't use allocatables left of " = RESHAPE"
> - Make the expression on the RHS more complicated: add "+ 0" or surround with
> "( )".