diff options
author | Jakub Jelinek <jakub@redhat.com> | 2009-08-03 21:26:10 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2009-08-03 21:26:10 +0200 |
commit | 1768a052038172cc56a7af8ad2e90982f3c84d13 (patch) | |
tree | 880f2f769dc0994ba432ededf29411924db85d5f /gcc/tree-ssa.c | |
parent | 239bca9def334ad1537f26613869bb0f4f0a04be (diff) | |
download | gcc-1768a052038172cc56a7af8ad2e90982f3c84d13.zip gcc-1768a052038172cc56a7af8ad2e90982f3c84d13.tar.gz gcc-1768a052038172cc56a7af8ad2e90982f3c84d13.tar.bz2 |
re PR middle-end/40943 (Uninitialized warning is missed when dereferencing uninitialized pointers)
PR middle-end/40943
* tree-ssa.c (warn_uninitialized_var): Even on LHS warn for
operand of INDIRECT_REF.
* gcc.dg/uninit-6.c: Re-add XFAIL.
* gcc.dg/uninit-6-O0.c: Likewise.
* gcc.dg/uninit-pr40943.c: New test.
From-SVN: r150379
Diffstat (limited to 'gcc/tree-ssa.c')
-rw-r--r-- | gcc/tree-ssa.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index 5044910..28da94b 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -1265,7 +1265,12 @@ warn_uninitialized_var (tree *tp, int *walk_subtrees, void *data_) /* We do not care about LHS. */ if (wi->is_lhs) - return NULL_TREE; + { + /* Except for operands of INDIRECT_REF. */ + if (!INDIRECT_REF_P (t)) + return NULL_TREE; + t = TREE_OPERAND (t, 0); + } switch (TREE_CODE (t)) { |