https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86769
--- Comment #14 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Perhaps move the condition preparation statements including the surrounding CLEANUP_STMT into {FOR,WHILE}_COND_PREP and insert into that CLEANUP_STMT first operand some new tree as a temporary placeholder for eventually the {FOR,WHILE}_COND, optional continue label and FOR_EXPR and keep the {FOR,WHILE}_COND and FOR_EXPR as separate operandss at a different level even when they actually will replace the placeholder.