I see no compelling reason to not run pass_late_warn_uninitialized really late.
Thus, bootstrapped and tested on x86_64-unknown-linux-gnu, applied. Richard. 2013-09-12 Richard Biener <rguent...@suse.de> PR tree-optimization/58402 * passes.def: Move pass_late_warn_uninitialized later. Index: gcc/passes.def =================================================================== *** gcc/passes.def (revision 202515) --- gcc/passes.def (working copy) *************** along with GCC; see the file COPYING3. *** 239,245 **** NEXT_PASS (pass_vrp); NEXT_PASS (pass_cd_dce); NEXT_PASS (pass_tracer); ! /* FIXME: If DCE is not run before checking for uninitialized uses, we may get false warnings (e.g., testsuite/gcc.dg/uninit-5.c). However, this also causes us to misdiagnose cases that should be --- 239,251 ---- NEXT_PASS (pass_vrp); NEXT_PASS (pass_cd_dce); NEXT_PASS (pass_tracer); ! NEXT_PASS (pass_dse); ! NEXT_PASS (pass_forwprop); ! NEXT_PASS (pass_phiopt); ! NEXT_PASS (pass_fold_builtins); ! NEXT_PASS (pass_optimize_widening_mul); ! NEXT_PASS (pass_tail_calls); ! NEXT_PASS (pass_rename_ssa_copies); /* FIXME: If DCE is not run before checking for uninitialized uses, we may get false warnings (e.g., testsuite/gcc.dg/uninit-5.c). However, this also causes us to misdiagnose cases that should be *************** along with GCC; see the file COPYING3. *** 253,265 **** number of false positives from it. */ NEXT_PASS (pass_split_crit_edges); NEXT_PASS (pass_late_warn_uninitialized); - NEXT_PASS (pass_dse); - NEXT_PASS (pass_forwprop); - NEXT_PASS (pass_phiopt); - NEXT_PASS (pass_fold_builtins); - NEXT_PASS (pass_optimize_widening_mul); - NEXT_PASS (pass_tail_calls); - NEXT_PASS (pass_rename_ssa_copies); NEXT_PASS (pass_uncprop); NEXT_PASS (pass_local_pure_const); POP_INSERT_PASSES () --- 259,264 ----