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

--- Comment #12 from Steve Kargl <sgk at troutmask dot apl.washington.edu> 
2011-11-19 16:08:06 UTC ---
On Sat, Nov 19, 2011 at 10:57:23AM +0000, tkoenig at netcologne dot de wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51218
> 
> --- Comment #10 from tkoenig at netcologne dot de <tkoenig at netcologne dot 
> de> 2011-11-19 10:57:23 UTC ---
> Am 19.11.2011 11:18, schrieb anlauf at gmx dot de:
> > This won't work.  The implementation of the management
> > of temporaries does not allow that the same instance
> > is used more than once.
> 
> If I understand your code, you are modifying the arguments of your 
> function and evaluating that function more than once in a single
> expression.  This is illegal in Fortran, so gfortran could, in
> principle, do anything with it.  I would advise you to fix your code to
> be standard-conforming.
> 
> Because such code is unfortunately quite common, gfortran by default
> does not do such optimizations unless directed to be. The fact that
> it does here nonetheless is, indeed, a bug.
> 

The code is also invalid because it manipulates the
pointer (not the target) of a derived-type dummy
argument with the intent(in) attribute.  The code
has at least two bugs and the PR should be closed.

Reply via email to