[Bug fortran/43180] [4.5 Regression] Bad results without temporary copy of intent(in) argument

pault at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Sun Feb 28 13:46:00 GMT 2010



------- Comment #10 from pault at gcc dot gnu dot org  2010-02-28 13:46 -------
(In reply to comment #9)
> Reduced test case below. The problem is the call. On the trunk the call looks
> as follows:
>   set_set_v (&ru, D.1578);
> which is complete nonesense. It should be:
>   &ru.data[0].c.use
> or something like that. If one removes the "comment" component, it works - but
> only because then "&ru" and "&ru.data[0].c.use" point to the same memory -
> otherwise it is as wrong as before.

Yes, indeed - that is the problem.  Since the need for a temporary has been
removed, the code now runs straight into line trans-array.c:5515.  The
condition !sym->as causes tmp to be used as the actual, rather than calling
gfc_conv_expr_descriptor.

Just as soon as todayś clean build stops, I will remove the condition and will
try a regtest.

Paul


-- 


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



More information about the Gcc-bugs mailing list