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

Reply via email to