diff options
author | Tobias Burnus <tobias@codesourcery.com> | 2021-02-12 14:43:41 +0100 |
---|---|---|
committer | Tobias Burnus <tobias@codesourcery.com> | 2021-02-12 14:43:41 +0100 |
commit | f699e0b16578cdc1be8b90691ef8b0964af32d2f (patch) | |
tree | bff8b9e827100b7fe3a7a6f05c6edb9951776969 /gcc/fortran/trans-expr.c | |
parent | 6cc886bf4279461b8931c4ca544185a85cd69f26 (diff) | |
download | gcc-f699e0b16578cdc1be8b90691ef8b0964af32d2f.zip gcc-f699e0b16578cdc1be8b90691ef8b0964af32d2f.tar.gz gcc-f699e0b16578cdc1be8b90691ef8b0964af32d2f.tar.bz2 |
Fortran: Fix rank of assumed-rank array [PR99043]
gcc/fortran/ChangeLog:
PR fortran/99043
* trans-expr.c (gfc_conv_procedure_call): Don't reset
rank of assumed-rank array.
gcc/testsuite/ChangeLog:
PR fortran/99043
* gfortran.dg/assumed_rank_20.f90: New test.
Diffstat (limited to 'gcc/fortran/trans-expr.c')
-rw-r--r-- | gcc/fortran/trans-expr.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c index b0c8d57..103cb31 100644 --- a/gcc/fortran/trans-expr.c +++ b/gcc/fortran/trans-expr.c @@ -6403,9 +6403,10 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym, /* Unallocated allocatable arrays and unassociated pointer arrays need their dtype setting if they are argument associated with - assumed rank dummies. */ + assumed rank dummies, unless already assumed rank. */ if (!sym->attr.is_bind_c && e && fsym && fsym->as - && fsym->as->type == AS_ASSUMED_RANK) + && fsym->as->type == AS_ASSUMED_RANK + && e->rank != -1) { if (gfc_expr_attr (e).pointer || gfc_expr_attr (e).allocatable) |