diff options
author | Tobias Burnus <burnus@net-b.de> | 2012-11-12 12:03:42 +0100 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2012-11-12 12:03:42 +0100 |
commit | abfc73778e24d6e8c407150d8071bc7fed755965 (patch) | |
tree | 50823ce1528bd20de093a8a4c7090992a05b0ca1 /gcc | |
parent | 3b4adfb357d82d4a83852a02febc008249579c8e (diff) | |
download | gcc-abfc73778e24d6e8c407150d8071bc7fed755965.zip gcc-abfc73778e24d6e8c407150d8071bc7fed755965.tar.gz gcc-abfc73778e24d6e8c407150d8071bc7fed755965.tar.bz2 |
re PR fortran/55272 (ICE on passing coarray argument between files)
2012-11-12 Tobias Burnus <burnus@net-b.de>
PR fortran/55272
* module.c (mio_array_spec): Correctly handle coarray
scalars.
2012-11-12 Tobias Burnus <burnus@net-b.de>
PR fortran/55272
* gfortran.dg/coarray_29_1.f90: New.
* gfortran.dg/coarray_29_2.f90: New.
From-SVN: r193429
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/module.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/coarray_29_1.f90 | 16 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/coarray_29_2.f90 | 18 |
5 files changed, 47 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 00c46f1..a90b51a 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2012-11-12 Tobias Burnus <burnus@net-b.de> + + PR fortran/55272 + * module.c (mio_array_spec): Correctly handle coarray + scalars. + 2012-11-07 Tobias Schlüter <tobi@gcc.gnu.org> PR fortran/51727 diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index 4cfcae4..89c45b7 100644 --- a/gcc/fortran/module.c +++ b/gcc/fortran/module.c @@ -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]); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 11dc4cf..87023e7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2012-11-12 Tobias Burnus <burnus@net-b.de> + + PR fortran/55272 + * gfortran.dg/coarray_29_1.f90: New. + * gfortran.dg/coarray_29_2.f90: New. + 2012-11-12 Bin Cheng <bin.cheng@arm.com> * gcc.dg/hoist-register-pressure-3.c: New test. diff --git a/gcc/testsuite/gfortran.dg/coarray_29_1.f90 b/gcc/testsuite/gfortran.dg/coarray_29_1.f90 new file mode 100644 index 0000000..2c49b1c --- /dev/null +++ b/gcc/testsuite/gfortran.dg/coarray_29_1.f90 @@ -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 "" } } diff --git a/gcc/testsuite/gfortran.dg/coarray_29_2.f90 b/gcc/testsuite/gfortran.dg/coarray_29_2.f90 new file mode 100644 index 0000000..9829626 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/coarray_29_2.f90 @@ -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" } } |