https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42145
--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Manuel López-Ibáñez from comment #13) > (In reply to Richard Biener from comment #12) > > This is already fold-const.c transforming TRUTH_ANDIF into TRUTH_AND. > > I cannot find the discussion now, but I think it was discussed in one of the > many duplicates that this is not wrong-code, but still it fools the > Wuninitialized code and it is a bug despite gcc generating correct code. probably correct in practice but it may change a && b to b && a which means it may introduce an unconditional use of b which techincally is undefined behavior (which we may not introduce). Thus the 'wrong-code'.