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:
parent
9bca63d44b
commit
3083fc562e
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
15
gcc/testsuite/gfortran.dg/coarray_event_1.f08
Normal file
15
gcc/testsuite/gfortran.dg/coarray_event_1.f08
Normal 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
|
Loading…
Reference in New Issue
Block a user