regressions with recent subref_array_pointer changes

Steve Kargl sgk@troutmask.apl.washington.edu
Thu Sep 20 21:21:00 GMT 2007


On Thu, Sep 20, 2007 at 10:44:14PM +0200, Paul Thomas wrote:
> Steve,
> 
> Thanks for the quick exchange off-list.  It enabled me to find the bug.
> >
> >It would help a lot if you could identify which of the assignments is 
> >causing the trouble by eliminating blocks until it goes away.  Which 
> >system is this by the way and does the problem occur at all levels of 
> >optimization?
> >
> The problem was all down to the gfc_cleanup_loop (&loop) at the end of 
> gfc_conv_expr_descriptor.  This was wiping out the ss that was being 
> used for the rhs descriptor and, hence, its element size.  There is no 
> recourse but to use gfc_conv_expr to regenerate the descriptor.  The 
> attached patch does the job.  The check for constant-ness after the 
> fold_convert is to avoid littering up the place with extraneous code.
> 
> Bootstrapped and regtested on x86_ia64/FC5.
> 
> I will commit just as soon as you confirm that the fix works for you.
> 

Yes, that appears to fix the problem.  I have successfully
made it past the problematic testsuite cases.

-- 
Steve



More information about the Fortran mailing list