re PR middle-end/50040 (missed warning: ‘x.y’ is used uninitialized in this function)
authorRichard Guenther <rguenther@suse.de>
Thu, 11 Aug 2011 14:28:36 +0000 (14:28 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 11 Aug 2011 14:28:36 +0000 (14:28 +0000)
commit8d2b04104d36240ecb02beeab5afac2752237a12
treeb10a9fb84133c6a18ce3929ae02f730bf26e7935
parent0f8de043406d8d477133894e84124f8ac4ad8c64
re PR middle-end/50040 (missed warning: ‘x.y’ is used uninitialized in this function)

2011-08-11  Richard Guenther  <rguenther@suse.de>

PR middle-end/50040
* gimplify.c (gimplify_modify_expr_complex_part): Mark the
load of the other piece with TREE_NO_WARNING.
* tree-flow.h (warn_uninit): Adjust prototype.
* tree-ssa.c (warn_uninit): Take uninitialized SSA name,
the base variable and the expression that is used separately.
Properly query all TREE_NO_WARNING flags.
(struct walk_data): Remove.
(warn_uninitialized_var): Likewise.
(warn_uninitialized_vars): Do not walk gimple pieces but simply
look at all SSA uses of the statement.  Handle unused memory
separately.
* tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.

* g++.dg/warn/unit-1.C: Un-XFAIL.
* gcc.dg/uninit-I.c: Likewise.

From-SVN: r177667
gcc/ChangeLog
gcc/gimplify.c
gcc/testsuite/g++.dg/warn/unit-1.C
gcc/testsuite/gcc.dg/uninit-I.c
gcc/tree-flow.h
gcc/tree-ssa-uninit.c
gcc/tree-ssa.c