aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaul Thomas <pault@gcc.gnu.org>2023-03-21 06:28:07 +0000
committerPaul Thomas <pault@gcc.gnu.org>2023-03-21 06:28:07 +0000
commit259bd768640328cc98647c5cf8b0d6dcfba6d4bf (patch)
treef7e8f2dade0a67b82ca59cb5327381c2420ee06d /gcc
parent3a9caf7883103bc3a80dfc9e4797bb849b3c211c (diff)
downloadgcc-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.cc5
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