mirror of
https://gcc.gnu.org/git/gcc.git
synced 2026-02-22 12:00:03 -05:00
gccrs: backend: correctly formulate the exit condition ...
... previously the exit condition was treated the same as the loop condition (which is the inverse condition of the exit condition). Now this is corrected. gcc/rust/ChangeLog: * backend/rust-compile-expr.cc (CompileExpr::visit): Properly formulate exit condition when compiling while loops. Signed-off-by: Zixing Liu <liushuyu011@gmail.com>
This commit is contained in:
@@ -727,8 +727,11 @@ CompileExpr::visit (HIR::WhileLoopExpr &expr)
|
||||
|
||||
tree condition
|
||||
= CompileExpr::Compile (expr.get_predicate_expr ().get (), ctx);
|
||||
tree exit_condition
|
||||
= fold_build1_loc (expr.get_locus ().gcc_location (), TRUTH_NOT_EXPR,
|
||||
boolean_type_node, condition);
|
||||
tree exit_expr
|
||||
= ctx->get_backend ()->exit_expression (condition, expr.get_locus ());
|
||||
= ctx->get_backend ()->exit_expression (exit_condition, expr.get_locus ());
|
||||
ctx->add_statement (exit_expr);
|
||||
|
||||
tree code_block_stmt
|
||||
|
||||
Reference in New Issue
Block a user