aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorHarald Anlauf <anlauf@gmx.de>2022-01-17 22:52:08 +0100
committerHarald Anlauf <anlauf@gmx.de>2022-01-18 20:02:11 +0100
commit0d01a2722671bef37b931fd1f121e44b27e68268 (patch)
tree96bb7bb0c4e74c050bdafe7d79214c97ba286054 /gcc/fortran
parent7ca21601704c4a637f3cefa7c8814920782354d8 (diff)
downloadgcc-0d01a2722671bef37b931fd1f121e44b27e68268.zip
gcc-0d01a2722671bef37b931fd1f121e44b27e68268.tar.gz
gcc-0d01a2722671bef37b931fd1f121e44b27e68268.tar.bz2
Fortran: handle expansion of zero-sized array constructors
gcc/fortran/ChangeLog: PR fortran/103692 * array.cc (gfc_expand_constructor): Handle zero-sized array constructors. gcc/testsuite/ChangeLog: PR fortran/103692 * gfortran.dg/pr102520.f90: Adjust error messages. * gfortran.dg/pr103692.f90: New test.
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/array.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/fortran/array.cc b/gcc/fortran/array.cc
index 4723043..f1d92e0 100644
--- a/gcc/fortran/array.cc
+++ b/gcc/fortran/array.cc
@@ -1883,6 +1883,9 @@ gfc_expand_constructor (gfc_expr *e, bool fatal)
gfc_expr *f;
bool rc;
+ if (gfc_is_size_zero_array (e))
+ return true;
+
/* If we can successfully get an array element at the max array size then
the array is too big to expand, so we just return. */
f = gfc_get_array_element (e, flag_max_array_constructor);