https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101793
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to thutt from comment #3) > Thanks for the quick triage. If the optimizer is getting confused about > control / data flow, is it possible that it's making bad decisions for > codegen? No, the cfg is cleaned up sometime after the uninitialized warning happens. >From optimized: Removing basic block 10 Removing basic block 11 Removing basic block 12 Removing basic block 13 Removing basic block 14 Removing basic block 15 Removing basic block 16 .... <bb 7> [local count: 89223651]: if (p_9(D) != 0) goto <bb 8>; [0.00%] else goto <bb 9>; [100.00%] <bb 8> [local count: 89223651]: # p_15 = PHI <_8(7), p_9(D)(4)> # saved_20 = PHI <saved_10(D)(7), saved_11(4)> state = saved_20;