diff options
author | Jakub Jelinek <jakub@redhat.com> | 2010-06-28 22:12:31 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2010-06-28 22:12:31 +0200 |
commit | 7fd7263dc9212bcf694e951327a9b33872158d37 (patch) | |
tree | c00bf543a7eedf3f42f7af7797029b41da913d09 /gcc | |
parent | 83377c6a3f5a2b1e0d3ecd718cfa7fc701f32aa4 (diff) | |
download | gcc-7fd7263dc9212bcf694e951327a9b33872158d37.zip gcc-7fd7263dc9212bcf694e951327a9b33872158d37.tar.gz gcc-7fd7263dc9212bcf694e951327a9b33872158d37.tar.bz2 |
re PR c++/44682 (warning: variable ‘x’ set but not used)
PR c++/44682
* class.c (build_base_path): If want_pointer, call mark_rvalue_use
on expr.
* g++.dg/warn/Wunused-var-14.C: New test.
From-SVN: r161511
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/class.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/warn/Wunused-var-14.C | 17 |
4 files changed, 30 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 3b5f1bd..a7df7b8 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2010-06-28 Jakub Jelinek <jakub@redhat.com> + + PR c++/44682 + * class.c (build_base_path): If want_pointer, call mark_rvalue_use + on expr. + 2010-06-28 Steven Bosscher <steven@gcc.gnu.org> * init.c: Do not include except.h. diff --git a/gcc/cp/class.c b/gcc/cp/class.c index f945923..51f749f 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -283,6 +283,8 @@ build_base_path (enum tree_code code, if (!want_pointer) /* This must happen before the call to save_expr. */ expr = cp_build_unary_op (ADDR_EXPR, expr, 0, tf_warning_or_error); + else + mark_rvalue_use (expr); offset = BINFO_OFFSET (binfo); fixed_type_p = resolves_to_fixed_type_p (expr, &nonnull); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5f0ea3f..e355894 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-06-28 Jakub Jelinek <jakub@redhat.com> + + PR c++/44682 + * g++.dg/warn/Wunused-var-14.C: New test. + 2010-06-28 Tobias Burnus <burnus@net-b.de> PR fortran/43298 diff --git a/gcc/testsuite/g++.dg/warn/Wunused-var-14.C b/gcc/testsuite/g++.dg/warn/Wunused-var-14.C new file mode 100644 index 0000000..a552b56 --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/Wunused-var-14.C @@ -0,0 +1,17 @@ +// PR c++/44682 +// { dg-do compile } +// { dg-options "-Wunused" } + +struct S { virtual ~S () {} }; +struct T { virtual ~T () {} }; +struct U : S, T {}; + +void f (U &); + +void +g (void *v) +{ + T *t = static_cast <T *> (v); + U *u = static_cast <U *> (t); + f (*u); +} |