tree-optimization/111123 - indirect clobbers thrown away too early
The testcase in the PR shows that late uninit diagnostic relies
on indirect clobbers in CTORs but we throw those away in the fab
pass which is too early. The reasoning was they were supposed
to keep SSA names live but that's no longer the case since DCE
doesn't treat them as keeping SSA uses live.
The following instead removes them before out-of-SSA coalescing
which is the thing that's still affected by them.
PR tree-optimization/111123
* tree-ssa-ccp.cc (pass_fold_builtins::execute): Do not
remove indirect clobbers here ...
* tree-outof-ssa.cc (rewrite_out_of_ssa): ... but here.
(remove_indirect_clobbers): New function.
* g++.dg/warn/Wuninitialized-pr111123-1.C: New testcase.