Hi Jerry, hi Dominique, Jerry, thank you for the review. Committed to
trunk as r234710 and to gcc-5-branch as r234711 including the additional option Dominique noted I had missed. Thank for pointing that out, Dominique. Regards, Andre On Sun, 3 Apr 2016 23:46:34 +0200 Dominique d'Humières <domi...@lps.ens.fr> wrote: > > Le 3 avr. 2016 à 23:38, Andre Vehreschild <ve...@gmx.de> a écrit : > > > > Hi Dominique, > > > > I thought that was implicit, isn't it? > > I don’t think so and I see in the log files > > gcc/testsuite/gfortran4/gfortran.sum:UNRESOLVED: > gfortran.dg/coarray_allocate_6.f08 -O0 scan-tree-dump-not original > "c.caf.x = 0B" > > > Is only the removal of the file implicit? > > Yes, > > > I will add the option to be on the safe side. > > Thanks, > > Dominique > > > > > - Andre > > > > Am 3. April 2016 22:57:48 MESZ, schrieb "Dominique d'Humières" > > <domi...@lps.ens.fr>: > > Andre, > > > > Does not the test gfortran.dg/coarray_allocate_6.f08 require a > > -fdump-tree-original in the dg-options list? > > > > Thanks for the patch, > > > > Dominique > > > > > > -- > > Andre Vehreschild * Kreuzherrenstr. 8 * 52062 Aachen > > Tel.: +49 241 929 10 18 * ve...@gmx.de > -- Andre Vehreschild * Email: vehre ad gmx dot de
Index: gcc/fortran/ChangeLog =================================================================== --- gcc/fortran/ChangeLog (Revision 234709) +++ gcc/fortran/ChangeLog (Arbeitskopie) @@ -1,3 +1,11 @@ +2016-04-04 Andre Vehreschild <ve...@gcc.gnu.org> + + PR fortran/65795 + * trans-array.c (gfc_array_allocate): When the array is a coarray, + do not nullyfing its allocatable components in array_allocate, because + the nullify missed the array ref and nullifies the wrong component. + Cosmetics. + 2016-03-29 Andre Vehreschild <ve...@gcc.gnu.org> PR fortran/70397 Index: gcc/fortran/trans-array.c =================================================================== --- gcc/fortran/trans-array.c (Revision 234709) +++ gcc/fortran/trans-array.c (Arbeitskopie) @@ -5550,8 +5550,8 @@ else gfc_add_expr_to_block (&se->pre, set_descriptor); - if ((expr->ts.type == BT_DERIVED) - && expr->ts.u.derived->attr.alloc_comp) + if (expr->ts.type == BT_DERIVED && expr->ts.u.derived->attr.alloc_comp + && !coarray) { tmp = gfc_nullify_alloc_comp (expr->ts.u.derived, se->expr, ref->u.ar.as->rank); Index: gcc/testsuite/ChangeLog =================================================================== --- gcc/testsuite/ChangeLog (Revision 234709) +++ gcc/testsuite/ChangeLog (Arbeitskopie) @@ -1,3 +1,8 @@ +2016-04-04 Andre Vehreschild <ve...@gcc.gnu.org> + + PR fortran/65795 + * gfortran.dg/coarray_allocate_6.f08: New test. + 2016-04-04 Richard Biener <rguent...@suse.de> PR rtl-optimization/70484 Index: gcc/testsuite/gfortran.dg/coarray_allocate_6.f08 =================================================================== --- gcc/testsuite/gfortran.dg/coarray_allocate_6.f08 (nicht existent) +++ gcc/testsuite/gfortran.dg/coarray_allocate_6.f08 (Arbeitskopie) @@ -0,0 +1,27 @@ +! { dg-do run } +! { dg-options "-fcoarray=single -fdump-tree-original" } + +! Contributed by Tobias Burnus <bur...@gcc.gnu.org> +! Test fix for pr65795. + +implicit none + +type t2 + integer, allocatable :: x +end type t2 + +type t3 + type(t2), allocatable :: caf[:] +end type t3 + +!type(t3), save, target :: c, d +type(t3), target :: c, d +integer :: stat + +allocate(c%caf[*], stat=stat) +end + +! Besides checking that the executable does not crash anymore, check +! that the cause has been remove. +! { dg-final { scan-tree-dump-not "c.caf.x = 0B" "original" } } +
Index: gcc/fortran/ChangeLog =================================================================== --- gcc/fortran/ChangeLog (Revision 234706) +++ gcc/fortran/ChangeLog (Arbeitskopie) @@ -1,3 +1,11 @@ +2016-04-04 Andre Vehreschild <ve...@gcc.gnu.org> + + PR fortran/65795 + * trans-array.c (gfc_array_allocate): When the array is a coarray, + do not nullyfing its allocatable components in array_allocate, because + the nullify missed the array ref and nullifies the wrong component. + Cosmetics. + 2016-03-28 Andre Vehreschild <ve...@gcc.gnu.org> PR fortran/70397 Index: gcc/fortran/trans-array.c =================================================================== --- gcc/fortran/trans-array.c (Revision 234706) +++ gcc/fortran/trans-array.c (Arbeitskopie) @@ -5390,8 +5390,8 @@ else gfc_add_expr_to_block (&se->pre, set_descriptor); - if ((expr->ts.type == BT_DERIVED) - && expr->ts.u.derived->attr.alloc_comp) + if (expr->ts.type == BT_DERIVED && expr->ts.u.derived->attr.alloc_comp + && !coarray) { tmp = gfc_nullify_alloc_comp (expr->ts.u.derived, se->expr, ref->u.ar.as->rank); Index: gcc/testsuite/ChangeLog =================================================================== --- gcc/testsuite/ChangeLog (Revision 234706) +++ gcc/testsuite/ChangeLog (Arbeitskopie) @@ -1,3 +1,8 @@ +2016-04-04 Andre Vehreschild <ve...@gcc.gnu.org> + + PR fortran/65795 + * gfortran.dg/coarray_allocate_6.f08: New test. + 2016-04-01 Ilya Enkovich <enkovich....@gmail.com> Backport from mainline r234666. Index: gcc/testsuite/gfortran.dg/coarray_allocate_6.f08 =================================================================== --- gcc/testsuite/gfortran.dg/coarray_allocate_6.f08 (nicht existent) +++ gcc/testsuite/gfortran.dg/coarray_allocate_6.f08 (Arbeitskopie) @@ -0,0 +1,27 @@ +! { dg-do run } +! { dg-options "-fcoarray=single -fdump-tree-original" } + +! Contributed by Tobias Burnus <bur...@gcc.gnu.org> +! Test fix for pr65795. + +implicit none + +type t2 + integer, allocatable :: x +end type t2 + +type t3 + type(t2), allocatable :: caf[:] +end type t3 + +!type(t3), save, target :: c, d +type(t3), target :: c, d +integer :: stat + +allocate(c%caf[*], stat=stat) +end + +! Besides checking that the executable does not crash anymore, check +! that the cause has been remove. +! { dg-final { scan-tree-dump-not "c.caf.x = 0B" "original" } } +