https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85599
--- Comment #22 from Andrew Pinski <pinskia at gcc dot gnu.org> --- I don't think the middle end can even change. the semantics of TRUTH_ANDIF_EXPR is always to short circuit. If you want a non short circuit you need to use TRUTH_AND_EXPR