From 5ad4eab2e6ffc4c7f5a11f52239377eeae26310f Mon Sep 17 00:00:00 2001 From: Iain Buclaw Date: Mon, 26 Jul 2021 19:47:25 +0200 Subject: [PATCH] d: Don't generate a PREDICT_EXPR when assert contracts are turned off. This expression is just discarded by add_stmt, so never reaches the middle-end. gcc/d/ChangeLog: * expr.cc (ExprVisitor::visit (AssertExp *)): Don't generate PREDICT_EXPR. --- gcc/d/expr.cc | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/gcc/d/expr.cc b/gcc/d/expr.cc index 76c1e61..73e0abe 100644 --- a/gcc/d/expr.cc +++ b/gcc/d/expr.cc @@ -2085,15 +2085,9 @@ public: } else { - /* Assert contracts are turned off, if the contract condition has no - side effects can still use it as a predicate for the optimizer. */ - if (TREE_SIDE_EFFECTS (arg)) - { - this->result_ = void_node; - return; - } - - assert_fail = build_predict_expr (PRED_NORETURN, NOT_TAKEN); + /* Assert contracts are turned off. */ + this->result_ = void_node; + return; } /* Build condition that we are asserting in this contract. */ -- 2.7.4