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

            Bug ID: 84078
           Summary: false positive for -Wmaybe-uninitialized
           Product: gcc
           Version: 8.0.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: samuel.thiba...@ens-lyon.org
  Target Milestone: ---

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

Hello,

The attached testcase compiled with -O2 -Wall produces

test.c:30:2: warning: 'c' may be used uninitialized in this function
[-Wmaybe-uninitialized]
  printf("%d %d %d\n", a, b, c);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
test.c:30:2: warning: 'b' may be used uninitialized in this function
[-Wmaybe-uninitialized]
test.c:30:2: warning: 'a' may be used uninitialized in this function
[-Wmaybe-uninitialized]

while they are only used when `err' is equal to zero, and in the only case
where that happens, they do get initialized.

This is the minimal testcase I could reduce to, it seems both the asm snippet
and testing its result does make a difference, as well as the two ifs and the
three variables.

I could verify this with gcc snapshot 20180124 (Debian buster x86_64)

Samuel

Reply via email to