On 5/16/25 10:15 AM, Iain Sandoe wrote:
Hi Jason,
+ = build1_loc (loc, TRUTH_NOT_EXPR, boolean_type_node, iarc_x);
+ do_fr_cleanup = build2_loc (loc, TRUTH_AND_EXPR, boolean_type_node,
+ do_fr_cleanup, coro_before_return);
This also needs reversing (and similarly below).
Fixed.
+ tree fr_cleanup_if = begin_if_stmt ();
+ finish_if_stmt_cond (do_fr_cleanup, fr_cleanup_if);
+ finish_expr_stmt (delete_frame_call);
+ finish_then_clause (fr_cleanup_if);
+ finish_if_stmt (fr_cleanup_if);
You could build a COND_EXPR instead of taking several statements to build an
IF_STMT? i.e.
frame_cleanup = build3 (COND_EXPR, void_type_node, fr_cleanup_if,
delete_frame_call, void_node);
done.
OK for trunk now?
thanks
Iain
+ /* deref the frame pointer, to use in member access code. */
Let's capitalize this comment while we're moving it. OK with that tweak.
Jason