diff options
Diffstat (limited to 'gcc/fortran/trans-stmt.c')
-rw-r--r-- | gcc/fortran/trans-stmt.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c index adc6b8f..112a4e8 100644 --- a/gcc/fortran/trans-stmt.c +++ b/gcc/fortran/trans-stmt.c @@ -3949,9 +3949,10 @@ check_forall_dependencies (gfc_code *c, stmtblock_t *pre, stmtblock_t *post) point to the copy instead. Note that the shallow copy of the variable will not suffice for derived types with pointer components. We therefore leave these to their - own devices. */ + own devices. Likewise for allocatable components. */ if (lsym->ts.type == BT_DERIVED - && lsym->ts.u.derived->attr.pointer_comp) + && (lsym->ts.u.derived->attr.pointer_comp + || lsym->ts.u.derived->attr.alloc_comp)) return need_temp; new_symtree = NULL; |