diff options
author | Andre Vehreschild <vehre@gcc.gnu.org> | 2017-01-18 19:35:41 +0100 |
---|---|---|
committer | Andre Vehreschild <vehre@gcc.gnu.org> | 2017-01-18 19:35:41 +0100 |
commit | 3083fc562eb49c1df94453a17f9dbc37462ab0d0 (patch) | |
tree | 7617d8af5a4812df06b8c844823c10cd509ae737 /gcc/fortran/trans-expr.c | |
parent | 9bca63d44bf10ac1341f44b86b1c0f5b1ca5bc1b (diff) | |
download | gcc-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.c | 9 |
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) |