Hi,
my large code suddenly fails with the current gfortran, while it still works
with gfortran from fortran-dev (version 20100127). I traced the problem
to the following part of a module where the invocation of a subroutine
as
call set_set_v (ru(i)% c, c) ! (notemp) Fails with current gfortran
fails (i.e., the resulting c contains bad values), while
tmp_c = ru(i)% c ! ("temp") Works
call set_set_v (tmp_c, c)
works. For details see the attached code.
I have compared the output of -fdump-tree-original of the fortran-dev
and of the trunk versions of gfortran and found that they are identical
for the "temp" variant, while there is a significant different for the
notemp variant. Maybe someone knowledgeable can identify the cause of
the problem.
--
Summary: [4.5 Regression] Bad results without temporary copy of
intent(in) argument
Product: gcc
Version: 4.5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: anlauf at gmx dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43180