------- Comment #5 from manu at gcc dot gnu dot org 2009-06-18 08:16 ------- The difference is what GCC does/does not to detect/hide the warning.
Here, and in 18051, the CCP pass assumes a value for the uninitialized variable, and hence, the uninit use disappears, so no warning can occur. In PR 22456, CCP does not act but there is no warning because the loop is empty and later optimizations remove it completely. See the difference now? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40469