From: Iain Buclaw Date: Mon, 26 Jul 2021 17:47:25 +0000 (+0200) Subject: d: Don't generate a PREDICT_EXPR when assert contracts are turned off. X-Git-Tag: basepoints/gcc-13~5692 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5ad4eab2e6ffc4c7f5a11f52239377eeae26310f;p=thirdparty%2Fgcc.git 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. --- diff --git a/gcc/d/expr.cc b/gcc/d/expr.cc index 76c1e613e77f..73e0abeaa43f 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. */