diff options
author | Paul Thomas <pault@gcc.gnu.org> | 2023-03-21 06:28:07 +0000 |
---|---|---|
committer | Paul Thomas <pault@gcc.gnu.org> | 2023-03-21 06:28:07 +0000 |
commit | 259bd768640328cc98647c5cf8b0d6dcfba6d4bf (patch) | |
tree | f7e8f2dade0a67b82ca59cb5327381c2420ee06d /gcc | |
parent | 3a9caf7883103bc3a80dfc9e4797bb849b3c211c (diff) | |
download | gcc-259bd768640328cc98647c5cf8b0d6dcfba6d4bf.zip gcc-259bd768640328cc98647c5cf8b0d6dcfba6d4bf.tar.gz gcc-259bd768640328cc98647c5cf8b0d6dcfba6d4bf.tar.bz2 |
Fortran: Fix regression caused by PR37336 patch [PR109206]
2023-03-21 Paul Thomas <pault@gcc.gnu.org>
gcc/fortran
PR fortran/109206
* trans-array.cc (gfc_trans_array_constructor_value): Correct
incorrect setting of typespec.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/trans-array.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc index 7bc0e03..41661b4 100644 --- a/gcc/fortran/trans-array.cc +++ b/gcc/fortran/trans-array.cc @@ -2046,6 +2046,7 @@ gfc_trans_array_constructor_value (stmtblock_t * pblock, tree shadow_loopvar = NULL_TREE; gfc_saved_var saved_loopvar; + ts.type = BT_UNKNOWN; mpz_init (size); for (c = gfc_constructor_first (base); c; c = gfc_constructor_next (c)) { @@ -2204,7 +2205,9 @@ gfc_trans_array_constructor_value (stmtblock_t * pblock, gfc_add_modify (&body, *offsetvar, *poffset); *poffset = *offsetvar; } - ts = c->expr->ts; + + if (!c->iterator) + ts = c->expr->ts; } /* The frontend should already have done any expansions |