https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116588
--- Comment #3 from Andrew Macleod <amacleod at redhat dot com> --- Its happening in tree-ssa-propagate.cc after the simplification: /* If this is a control statement the propagator left edges unexecuted on force the condition in a way consistent with that. See PR66945 for cases where the propagator can end up with a different idea of a taken edge than folding (once undefined behavior is involved). */ if (gimple_code (stmt) == GIMPLE_COND) { if ((EDGE_SUCC (bb, 0)->flags & EDGE_EXECUTABLE) ^ (EDGE_SUCC (bb, 1)->flags & EDGE_EXECUTABLE)) { if (((EDGE_SUCC (bb, 0)->flags & EDGE_TRUE_VALUE) != 0) == ((EDGE_SUCC (bb, 0)->flags & EDGE_EXECUTABLE) != 0)) gimple_cond_make_true (as_a <gcond *> (stmt)); else gimple_cond_make_false (as_a <gcond *> (stmt)); gimple_set_modified (stmt, true); It appears that EDGE_EXECUTABLE is incorrect.. Thats as far as I have gotten so far.