This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/32962] New: b = conjg(transpose(a)) is erroneous if b is an allocatable array
- From: "wirawan0 at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 1 Aug 2007 19:50:31 -0000
- Subject: [Bug fortran/32962] New: b = conjg(transpose(a)) is erroneous if b is an allocatable array
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
It turns out that bug #31994
(http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31994) has not been fully
resolved!
I found another testcase that would fail gcc 4.2.1, namely if the destination
of the expression is an allocatable array. Use the following testcase:
program testcase
complex(kind=8), allocatable :: a(:,:), b(:,:)
allocate(a(2,2))
allocate(b(2,2))
a(1,1) = 2
a(2,1) = 3
a(1,2) = 7
a(2,2) = 11
b = conjg(transpose(a)) ! This does NOT work with gcc 4.2.1
print *, 'original = ', a
print *, 'WRONG conjg(transpose(a)) = ', b
end program
OBSERVATIONS:
* The bug appears regardless whether a is allocatable or not.
* The bug does not appear if b is NOT an allocatable array, e.g. a
complex(kind=8),dimension(2,2) in the testcase above.
* The bug does not appear if we reverse the order of expression to: b =
transpose(conjg(a)) .
--
Summary: b = conjg(transpose(a)) is erroneous if b is an
allocatable array
Product: gcc
Version: 4.2.1
Status: UNCONFIRMED
Severity: critical
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: wirawan0 at gmail dot com
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32962