http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50966
--- Comment #1 from Manuel López-Ibáñez <manu at gcc dot gnu.org> 2011-11-02 19:19:39 UTC --- Well, it did fix one of the oldest false positives in GCC: PR middle-end/179 * tree-ssa.c (warn_uninit): Do not warn for variables that can be initialized outside the current module. (warn_uninitialized_var): Ignore left-hand side when walking the trees. Ignore address expressions. Examine VUSE operands in gimple statements with a variable declaration on the right-hand side. testsuite/ * gcc.dg/uninit-6.c (make_something): Remove XFAIL. * gcc.dg/uninit-6-O0.c (make_something): Remove XFAIL. * gcc.dg/uninit-B.c (baz): Remove XFAIL. * gcc.dg/uninit-B-2.c: New. * gcc.dg/uninit-B-O0-2.c: New. * gcc.dg/uninit-pr19430-O0.c: New. * gcc.dg/uninit-pr19430.c: New. * gcc.dg/uninit-pr19430-2.c: New. so I think it is a good trade-off. This may be easy to fix, but I don't have enough free time to look at it, and the uninitialized warning code has changed a lot since that revision, so anyone has as good chance to fix this as me. If you want some tips on where to start, just let me know.