re PR fortran/70696 ([Coarray] ICE on EVENT POST of host-associated EVENT_TYPE coarray)

gcc/fortran/ChangeLog:

2017-01-17  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/70696
	Missed some parts, here they are:
	* trans-decl.c (gfc_build_qualified_array): Add static tokens to the
	parent function's scope.
	* trans-expr.c (gfc_get_tree_for_caf_expr): Shorten code.  Remove
	unnecessary assert.

gcc/testsuite/ChangeLog:

2017-01-17  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/70696
	* gfortran.dg/coarray_event_1.f08: New test.

From-SVN: r244587
This commit is contained in:
Andre Vehreschild 2017-01-18 19:35:41 +01:00
parent 9bca63d44b
commit 3083fc562e
5 changed files with 35 additions and 5 deletions

View File

@ -1,3 +1,12 @@
2017-01-17 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/70696
Missed some cases, here they are:
* trans-decl.c (gfc_build_qualified_array): Add static tokens to the
parent function's scope.
* trans-expr.c (gfc_get_tree_for_caf_expr): Shorten code. Remove
unnecessary assert.
2017-01-13 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/70697

View File

@ -971,6 +971,8 @@ gfc_build_qualified_array (tree decl, gfc_symbol * sym)
DECL_CONTEXT (token) = sym->ns->proc_name->backend_decl;
gfc_module_add_decl (cur_module, token);
}
else if (sym->attr.host_assoc)
gfc_add_decl_to_parent_function (token);
else
gfc_add_decl_to_function (token);
}

View File

@ -1839,11 +1839,10 @@ gfc_get_tree_for_caf_expr (gfc_expr *expr)
}
/* Make sure the backend_decl is present before accessing it. */
if (expr->symtree->n.sym->backend_decl == NULL_TREE)
expr->symtree->n.sym->backend_decl
= gfc_get_symbol_decl (expr->symtree->n.sym);
caf_decl = expr->symtree->n.sym->backend_decl;
gcc_assert (caf_decl);
caf_decl = expr->symtree->n.sym->backend_decl == NULL_TREE
? gfc_get_symbol_decl (expr->symtree->n.sym)
: expr->symtree->n.sym->backend_decl;
if (expr->symtree->n.sym->ts.type == BT_CLASS)
{
if (expr->ref && expr->ref->type == REF_ARRAY)

View File

@ -1,3 +1,8 @@
2017-01-17 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/70696
* gfortran.dg/coarray_event_1.f08: New test.
2017-01-18 Jakub Jelinek <jakub@redhat.com>
PR target/77416

View File

@ -0,0 +1,15 @@
! { dg-do compile }
! { dg-options "-fcoarray=lib -lcaf_single" }
! Check that pr70696 is really fixed.
use iso_fortran_env
type(event_type) :: x[*]
! exchange must not be called or the link problem before the patch
! does not occur.
contains
subroutine exchange
event post (x[1])
end subroutine
end