------- Comment #36 from manu at gcc dot gnu dot org 2009-06-23 00:12 ------- (In reply to comment #35) > > so, what are these? Once we removed the uninitialized use (CCP) we cannot > recover the information.
We usually do not remove the uninitialized use but assume a value for the variable and propagate it. The standard testcase int x; if (f()) x = 3; return x; The code is simplified to return (3), but perhaps we could mark this constant as being possibly uninitialized. A later pass can report it if it never gets removed. Or perhaps we could do some basic (and fast) CCP in the front-end to detect may-be-uninitialized uses. In http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings#current I give more ideas. That no one has found a fix does not mean that a fix is not possible. Users are going to keep reporting this, and we have many much older bugs still open. It took 8 years to fix PR179. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18501