https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24026
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED See Also| |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=67915 --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- fold is never used there since r0-88576; we use gimple_fold but gimple_fold at the time called fold, with the fix for PR 67915, we moved over to gimplify_simplify instead. See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67915#c1 also which describes this exact issue. We have now: if (gimple_simplify (stmt, &res_op, NULL, no_follow_ssa_edges, no_follow_ssa_edges) && res_op.code == INTEGER_CST) val = res_op.ops[0]; And a different order too: /* Do cleanup_control_flow_bb in PRE order. */ static bool cleanup_control_flow_pre () So I am going to say this is fixed.