From bc41842bb22e5682e8b808cb77e611d7cb6d8f64 Mon Sep 17 00:00:00 2001 From: Roger Sayle Date: Sun, 29 Feb 2004 14:07:44 +0000 Subject: [PATCH] [multiple changes] 2004-02-29 Waldek Hebisch PR middle-end/14203 * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P instead of testing whether DECL_RTL is not NULL. 2004-02-29 Roger Sayle PR middle-end/14203 * g++.dg/warn/Wunused-6.C: New test case. From-SVN: r78648 --- gcc/ChangeLog | 6 ++++++ gcc/function.c | 4 ++-- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/warn/Wunused-6.C | 11 +++++++++++ 4 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/g++.dg/warn/Wunused-6.C diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 56158b56b184..dae31a0922e3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-02-29 Waldek Hebisch + + PR middle-end/14203 + * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P + instead of testing whether DECL_RTL is not NULL. + 2004-02-28 Kazu Hirata * config/sh/sh.c: Fix formatting. diff --git a/gcc/function.c b/gcc/function.c index 84f0e853d7e5..623f78cc4cd5 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -5702,7 +5702,7 @@ uninitialized_vars_warning (tree block) flow.c that the entire aggregate was initialized. Unions are troublesome because members may be shorter. */ && ! AGGREGATE_TYPE_P (TREE_TYPE (decl)) - && DECL_RTL (decl) != 0 + && DECL_RTL_SET_P (decl) && GET_CODE (DECL_RTL (decl)) == REG /* Global optimizations can make it difficult to determine if a particular variable has been initialized. However, a VAR_DECL @@ -5717,7 +5717,7 @@ uninitialized_vars_warning (tree block) decl, decl); if (extra_warnings && TREE_CODE (decl) == VAR_DECL - && DECL_RTL (decl) != 0 + && DECL_RTL_SET_P (decl) && GET_CODE (DECL_RTL (decl)) == REG && regno_clobbered_at_setjmp (REGNO (DECL_RTL (decl)))) warning ("%Jvariable '%D' might be clobbered by `longjmp' or `vfork'", diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a5dd16bfbef7..1b768d027331 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-02-29 Roger Sayle + + PR middle-end/14203 + * g++.dg/warn/Wunused-6.C: New test case. + 2004-02-28 Richard Earnshaw * lib/g++.exp (g++_link_flags): Don't crash if LD_LIBRARY_PATH is diff --git a/gcc/testsuite/g++.dg/warn/Wunused-6.C b/gcc/testsuite/g++.dg/warn/Wunused-6.C new file mode 100644 index 000000000000..58a3f642bc34 --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/Wunused-6.C @@ -0,0 +1,11 @@ +/* PR middle-end/14203 */ +/* { dg-do compile } */ +/* { dg-options "-Wall" } */ + +void foo() +{ + if (false) + if (int i=0) // { dg-warning "unused" "" } + int j=0; // { dg-warning "unused" "" } +} +