https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120400
--- Comment #4 from Iain Sandoe <iains at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #3) > that is TRUTH_ANDIF_EXPR being converted into TRUTH_AND_EXPR in fold because > fold thinks coro_before_return and cond don't have side effects as they are > normal decls at the point fold is called. hmm .. perhaps if a DECL has a D_V_E that should be blocked? (one of the decls is "normal" coro_before_return ,,, bu the other is not - it has a D_V_E pointing to the coroutine frame, and the folder probably should not be reasoning about that). ?