------- 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