https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79345
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|jakub at gcc dot gnu.org |rguenth at gcc dot gnu.org --- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> --- Created attachment 40796 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40796&action=edit untested patch w/o limiting the oracle walk Extra warns for FAIL: gcc.dg/uninit-B-O0.c (test for excess errors) FAIL: gcc.dg/uninit-pr19430-2.c (test for excess errors) Excess errors: /space/rguenther/src/svn/gcc-7-branch/gcc/testsuite/gcc.dg/uninit-B-O0.c:13:5: warning: 'i' may be used uninitialized in this function [-Wmaybe-uninitialized] Excess errors: /space/rguenther/src/svn/gcc-7-branch/gcc/testsuite/gcc.dg/uninit-pr19430-2.c:13:7: warning: 'i' may be used uninitialized in this function [-Wmaybe-uninitialized] which is kind-of expected (TREE_NO_WARNING wouldn't work on non-shared trees in general). Maybe we should try to mark the base if it is a decl? But that might miss cases, say for { X a; if (flag) ... = a.x; else .... = a.y; } we'd warn for a.x but not a.y. To get an idea about verbosity I'll bootstrap the patch (w/o the limiting). Comments welcome.