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

Reply via email to