From patchwork Mon Nov 12 11:03:58 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Fortran,committed] PR55272 - Fix module handling of coarray scalars Date: Mon, 12 Nov 2012 01:03:58 -0000 From: Tobias Burnus X-Patchwork-Id: 198361 Message-Id: <50A0D79E.7010202@net-b.de> To: gcc patches , gfortran , "Rouson, Damian" , "Morris, Karla NMN" , "salvatore.filippone" Thanks for the report Damian! And sorry for the breakage. Fixed with the following obvious patch (committed as Rev. 193429) after an all-language bootstrap/regtesting Tobias Index: gcc/fortran/ChangeLog =================================================================== --- gcc/fortran/ChangeLog (Revision 193427) +++ gcc/fortran/ChangeLog (Arbeitskopie) @@ -1,3 +1,9 @@ +2012-11-12 Tobias Burnus + + PR fortran/55272 + * module.c (mio_array_spec): Correctly handle coarray + scalars. + 2012-11-07 Tobias Schlüter PR fortran/51727 Index: gcc/fortran/module.c =================================================================== --- gcc/fortran/module.c (Revision 193427) +++ gcc/fortran/module.c (Arbeitskopie) @@ -2395,7 +2395,7 @@ mio_array_spec (gfc_array_spec **asp) if (iomode == IO_INPUT && as->corank) as->cotype = (as->type == AS_DEFERRED) ? AS_DEFERRED : AS_EXPLICIT; - if (as->rank > 0) + if (as->rank + as->corank > 0) for (i = 0; i < as->rank + as->corank; i++) { mio_expr (&as->lower[i]); Index: gcc/testsuite/ChangeLog =================================================================== --- gcc/testsuite/ChangeLog (Revision 193427) +++ gcc/testsuite/ChangeLog (Arbeitskopie) @@ -1,3 +1,9 @@ +2012-11-12 Tobias Burnus + + PR fortran/55272 + * gfortran.dg/coarray_29_1.f90: New. + * gfortran.dg/coarray_29_2.f90: New. + 2012-11-12 Bin Cheng * gcc.dg/hoist-register-pressure-3.c: New test. Index: gcc/testsuite/gfortran.dg/coarray_29_1.f90 =================================================================== --- gcc/testsuite/gfortran.dg/coarray_29_1.f90 (Revision 0) +++ gcc/testsuite/gfortran.dg/coarray_29_1.f90 (Arbeitskopie) @@ -0,0 +1,16 @@ +! { dg-do compile } +! { dg-options "-fcoarray=single" } + +! To be used by coarray_29_2.f90 +! PR fortran/55272 + +module co_sum_module + implicit none +contains + subroutine co_sum(scalar) + integer scalar[*] + end subroutine +end module + +! DO NOT CLEAN UP THE MODULE FILE - coarray_29_2.f90 does it. +! { dg-final { keep-modules "" } } Index: gcc/testsuite/gfortran.dg/coarray_29_2.f90 =================================================================== --- gcc/testsuite/gfortran.dg/coarray_29_2.f90 (Revision 0) +++ gcc/testsuite/gfortran.dg/coarray_29_2.f90 (Arbeitskopie) @@ -0,0 +1,18 @@ +! { dg-compile } +! { dg-options "-fcoarray=single" } + +! Requires that coarray_29.f90 has been compiled before +! and that, thus, co_sum_module is available + +! PR fortran/55272 +! +! Contributed by Damian Rouson + +program main + use co_sum_module + implicit none + integer score[*] + call co_sum(score) +end program + +! { dg-final { cleanup-modules "co_sum_module" } }