From 6c6058a84007d9b742ad90a70835f39eba22f3ba Mon Sep 17 00:00:00 2001 From: afanfa Date: Tue, 15 Dec 2015 13:19:21 +0000 Subject: [PATCH] Fix ICE for coarray Critical inside module procedure git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231649 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/fortran/ChangeLog | 5 +++++ gcc/fortran/resolve.c | 1 + gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gfortran.dg/coarray_critical_1.f90 | 12 ++++++++++++ 4 files changed, 22 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/coarray_critical_1.f90 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 869215dbe5ad..27dc78cb7890 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2015-12-15 Alessandro Fanfarillo + + * resolve.c (resolve_critical): Committing symbols of + lock variables. + 2014-12-14 Tobias Burnus PR fortran/68850 diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 65a2b7f3f345..3988b3c4e1c7 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -8852,6 +8852,7 @@ resolve_critical (gfc_code *code) symtree->n.sym->as->cotype = AS_EXPLICIT; symtree->n.sym->as->lower[0] = gfc_get_int_expr (gfc_default_integer_kind, NULL, 1); + gfc_commit_symbols(); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d08b40046e23..633f8b2afe5b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2015-12-15 Alessandro Fanfarillo + + * gfortran.dg/coarray_critical_1.f90: New. + 2015-12-15 Martin Jambor PR ipa/68851 diff --git a/gcc/testsuite/gfortran.dg/coarray_critical_1.f90 b/gcc/testsuite/gfortran.dg/coarray_critical_1.f90 new file mode 100644 index 000000000000..4d93bf6debc8 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/coarray_critical_1.f90 @@ -0,0 +1,12 @@ +! { dg-do compile } +! { dg-options "-fcoarray=lib" } +! + +module m + contains + subroutine f() + critical + end critical + end subroutine f + end module m +end program -- 2.47.2