aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-expr.c
diff options
context:
space:
mode:
authorAndre Vehreschild <vehre@gcc.gnu.org>2017-01-18 19:35:41 +0100
committerAndre Vehreschild <vehre@gcc.gnu.org>2017-01-18 19:35:41 +0100
commit3083fc562eb49c1df94453a17f9dbc37462ab0d0 (patch)
tree7617d8af5a4812df06b8c844823c10cd509ae737 /gcc/fortran/trans-expr.c
parent9bca63d44bf10ac1341f44b86b1c0f5b1ca5bc1b (diff)
downloadgcc-3083fc562eb49c1df94453a17f9dbc37462ab0d0.zip
gcc-3083fc562eb49c1df94453a17f9dbc37462ab0d0.tar.gz
gcc-3083fc562eb49c1df94453a17f9dbc37462ab0d0.tar.bz2
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
Diffstat (limited to 'gcc/fortran/trans-expr.c')
-rw-r--r--gcc/fortran/trans-expr.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index 01b7dd2..ee8e15d 100644
--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -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)