Bug 80824 - Missing 'variable-is-used-uninitialized' warning
Summary: Missing 'variable-is-used-uninitialized' warning
Status: UNCONFIRMED
Alias: None
Product: gcc
Classification: Unclassified
Component: middle-end (show other bugs)
Version: 7.1.0
: P3 enhancement
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords: diagnostic
Depends on:
Blocks: Wuninitialized
  Show dependency treegraph
 
Reported: 2017-05-19 07:08 UTC by Dima Kogan
Modified: 2017-05-20 06:28 UTC (History)
0 users

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments
test case (189 bytes, text/plain)
2017-05-19 07:08 UTC, Dima Kogan
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dima Kogan 2017-05-19 07:08:17 UTC
Created attachment 41387 [details]
test case

Hi.

I'm using gcc 7.1.0 from Debian/experimental (Debian package gcc-7 version 7.1.0-5).


I ran into a case where an uninitialized variable could be returned from a function without triggering a warning. With the attached minimized source tst.c the following does not yield a warning:

  gcc-7 -DCALL -DTEST2 -Wall -Wextra -o /dev/null -c tst.c

Here I initialize some parts of the S structure (s.x), but not others (s.y). And I return the uninitialized piece: s.y. The extra f() call at the beginning of g() triggers the bug: taking that call out with

  gcc-7 -DTEST2 -Wall -Wextra -o /dev/null -c tst.c

produces the warning as it should.

Furthermore, initializing s.x in a slightly different way makes the bug go away as well: this produces the warning also:

  gcc-7 -DCALL -Wall -Wextra -o /dev/null -c tst.c

Finally, it looks like gcc-6 had a similar issue where the extra call to f() makes the warning go away, but it was fixed in gcc-7: the following misses the warning:

  gcc-6 -DCALL -DTEST2 -Wall -Wextra -o /dev/null -c tst.c

Maybe the fix to THIS bug would be similar. Thanks!
Comment 1 Andrew Pinski 2017-05-20 06:28:59 UTC
There might be another bug already for this one.