aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/frontend-passes.c4
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 83920ab..15f5942 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,5 +1,11 @@
2018-11-18 Thomas Koenig <tkoenig@gcc.gnu.org>
+ PR fortran/88073
+ * frontend-passes.c (combine_array_constructor): Do not do
+ anything if in a WHERE statement.
+
+2018-11-18 Thomas Koenig <tkoenig@gcc.gnu.org>
+
PR fortran/70260
* expr.c (gfc_check_assign): Reject assigning to an external
symbol.
diff --git a/gcc/fortran/frontend-passes.c b/gcc/fortran/frontend-passes.c
index 1993030..9fa50ee 100644
--- a/gcc/fortran/frontend-passes.c
+++ b/gcc/fortran/frontend-passes.c
@@ -1773,6 +1773,10 @@ combine_array_constructor (gfc_expr *e)
if (iterator_level > 0)
return false;
+ /* WHERE also doesn't work. */
+ if (in_where > 0)
+ return false;
+
op1 = e->value.op.op1;
op2 = e->value.op.op2;