[Bug fortran/36932] unneeded temporary (2x)
pault at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Tue Feb 16 09:05:00 GMT 2010
------- Comment #10 from pault at gcc dot gnu dot org 2010-02-16 09:04 -------
(In reply to comment #6)
Joost,
I held back from committing the patch this morning because I noticed that your
testcase below is also calling pack/unpack like it is going out of business.
I have to confess that I looked into this because one of the maintainers
(Dominique, I think) asked me if I understood the fix to this segfault. My
off-the-cuff response was CLASSes but I see that this cannot entirely be the
case. In investigating, I found these extra temporaries and have eliminated
them. However, I did not have time to regtest and get the new patch to you.
Paul
> (In reply to comment #5)
> > I had to exclude
> > dummies but I now do not recall why. I'll look into it.
>
> Hi Paul,
>
> tested your patch at http://gcc.gnu.org/ml/fortran/2010-02/msg00106.html.
>
> However, this ICEs with:
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x0000000000550816 in gfc_conv_array_parameter (se=0x7fff19b82f90,
> expr=0x13af600, ss=0x13b1e20, g77=1, fsym=0x0,
> proc_name=0x7f450fd48ee8 "newuob", size=0x0) at
> /data03/vondele/gcc_trunk/gcc/gcc/fortran/trans-array.c:5550
> 5550 if (contiguous && g77 && !this_array_result
> (gdb) list
> 5545 se->expr = gfc_conv_array_data (tmp);
> 5546 return;
> 5547 }
> 5548 }
> 5549
> 5550 if (contiguous && g77 && !this_array_result
> 5551 && expr->symtree->n.sym->as->type != AS_ASSUMED_SHAPE)
> 5552 {
> 5553 gfc_conv_expr_descriptor (se, expr, ss);
> 5554 if (expr->ts.type == BT_CHARACTER)
> (gdb) q
>
> on the following reduced testcase.
>
> MODULE powell
> INTEGER, PARAMETER :: dp=8
> TYPE opt_state_type
> REAL(dp), DIMENSION(:), POINTER :: w
> END TYPE opt_state_type
> CONTAINS
> SUBROUTINE newuoa (n,x,optstate)
> TYPE(opt_state_type) :: optstate
> CALL newuob (optstate%w(ixb:),optstate%w(ixo:),&
> optstate%w(ivl:),optstate%w(iw:),optstate)
> END SUBROUTINE newuoa
> END MODULE powell
>
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36932
More information about the Gcc-bugs
mailing list