https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61869

            Bug ID: 61869
           Summary: Spurious uninitialized warning
           Product: gcc
           Version: 4.10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: y.gribov at samsung dot com
                CC: jakub at gcc dot gnu.org
              Host: x86_64-unknown-linux-gnu
            Target: x86_64-unknown-linux-gnu

Created attachment 33167
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33167&action=edit
Reprocase

Current gcc reports spurious warning on attached code (based upon gcc/asan.c
with some local changes):
 $ g++ repro.i -c -Wmaybe-uninitialized -O2 
/home/ygribov/repro.i: In function ‘void f(list*)’:
/home/ygribov/repro.i:30:12: warning: ‘i’ may be used uninitialized in this
function [-Wmaybe-uninitialized]
   iterator i;
            ^
/home/ygribov/repro.i:30:12: warning: ‘*((void*)& i +8)’ may be used
uninitialized in this function [-Wmaybe-uninitialized]

It looks like lim1 pass exploits conditional NULL dereference in start() and
introduces read of uninitialized variable.

Reply via email to