From b093626575a145de8d1fb6a4722156a17c313b52 Mon Sep 17 00:00:00 2001 From: Tobias Burnus Date: Mon, 23 Jun 2014 19:09:08 +0200 Subject: [PATCH] trans-decl.c (gfc_trans_deferred_vars): Fix handling of explicit-size arrays with -fcoarray=lib. gcc/fortran/ 2014-06-23 Tobias Burnus * trans-decl.c (gfc_trans_deferred_vars): Fix handling of explicit-size arrays with -fcoarray=lib. gcc/testsuite/ 2014-06-23 Tobias Burnus * gfortran.dg/coarray_32.f90: New. From-SVN: r211907 --- gcc/fortran/ChangeLog | 5 +++++ gcc/fortran/trans-decl.c | 2 +- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gfortran.dg/coarray_32.f90 | 18 ++++++++++++++++++ 4 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gfortran.dg/coarray_32.f90 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 8a9316e6a96..05df7c1dfc0 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2014-06-23 Tobias Burnus + + * trans-decl.c (gfc_trans_deferred_vars): Fix handling of + explicit-size arrays with -fcoarray=lib. + 2014-06-20 Francois-Xavier Coudert PR fortran/33363 diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index f1a18c3cfd2..291dd1f3a83 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -3870,7 +3870,7 @@ gfc_trans_deferred_vars (gfc_symbol * proc_sym, gfc_wrapped_block * block) NULL_TREE); continue; } - else if (gfc_option.coarray != GFC_FCOARRAY_LIB) + else { gfc_save_backend_locus (&loc); gfc_set_backend_locus (&sym->declared_at); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e8eab59ea82..7cdbc918c75 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2014-06-23 Tobias Burnus + + * gfortran.dg/coarray_32.f90: New. + 2014-06-23 Paolo Carlini DR 577 diff --git a/gcc/testsuite/gfortran.dg/coarray_32.f90 b/gcc/testsuite/gfortran.dg/coarray_32.f90 new file mode 100644 index 00000000000..8e6dc54330e --- /dev/null +++ b/gcc/testsuite/gfortran.dg/coarray_32.f90 @@ -0,0 +1,18 @@ +! { dg-do compile } +! { dg-options "-fdump-tree-original -fcoarray=lib" } +! + real, allocatable :: values(:)[:] + allocate(values(1024)[*]) + call laplacian(values) +contains + subroutine laplacian(rhs) + real, allocatable :: rhs(:)[:] + real :: local_laplacian(size(rhs)) + local_laplacian=0. + end subroutine +end + +! { dg-final { scan-tree-dump-times "ubound.. = " 1 "original" } } +! { dg-final { scan-tree-dump-times "size.. = " 2 "original" } } +! { dg-final { cleanup-tree-dump "original" } } + -- 2.11.4.GIT