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