diff --git a/gcc/d/ChangeLog b/gcc/d/ChangeLog index f4e2b4c1a..8e001bb38 100644 --- a/gcc/d/ChangeLog +++ b/gcc/d/ChangeLog @@ -1,3 +1,8 @@ +2016-05-15 Iain Buclaw + + * expr.cc (ExprVisitor::visit(IdentityExp*)): Remove side-effects + before comparing two dynamic arrays. + 2016-05-14 Iain Buclaw * d-codegen.cc (get_decl_tree): First check if cfun is set. diff --git a/gcc/d/expr.cc b/gcc/d/expr.cc index 9cc9c5c3a..292f6813d 100644 --- a/gcc/d/expr.cc +++ b/gcc/d/expr.cc @@ -117,7 +117,9 @@ class ExprVisitor : public Visitor { // Convert arrays to D array types. tree t1 = d_array_convert(e->e1); + t1 = maybe_make_temp(t1); tree t2 = d_array_convert(e->e2); + t2 = maybe_make_temp(t2); this->result_ = build2(code, build_ctype(e->type), t1, t2); } else if (tb1->isfloating())