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 76c1e613e77..73e0abeaa43 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.30.2