===================================================================
@@ -1137,6 +1137,8 @@ remove_trim (gfc_expr *rhs)
bool ret;
ret = false;
+ if (!rhs)
+ return ret;
/* Check for a // b // trim(c). Looping is probably not
necessary because the parser usually generates
@@ -1274,6 +1276,9 @@ combine_array_constructor (gfc_expr *e)
op1 = e->value.op.op1;
op2 = e->value.op.op2;
+ if (!op1 || !op2)
+ return false;
+
if (op1->expr_type == EXPR_ARRAY && op2->rank == 0)
scalar_first = false;
else if (op2->expr_type == EXPR_ARRAY && op1->rank == 0)
===================================================================
@@ -0,0 +1,6 @@
+! { dg-do compile }
+program p
+ integer :: z(4) = [1, 2, 3, 4]
+ print *, any(shape(z) /= [4,1]) ! { dg-error "shape for elemental binary" }
+end
+! { dg-excess-errors "operands are incommensurate" }