diff options
author | Marek Polacek <polacek@redhat.com> | 2014-09-25 12:56:57 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2014-09-25 12:56:57 +0000 |
commit | 6597738a3a5bb21cab76d013a3c6c3c0bb0b3d34 (patch) | |
tree | faf87d43de03a347bba4129126e55d51e94d08ea /gcc | |
parent | c5b2614754a2c8fc3e03048d56fe328446aab972 (diff) | |
download | gcc-6597738a3a5bb21cab76d013a3c6c3c0bb0b3d34.zip gcc-6597738a3a5bb21cab76d013a3c6c3c0bb0b3d34.tar.gz gcc-6597738a3a5bb21cab76d013a3c6c3c0bb0b3d34.tar.bz2 |
re PR c++/61945 (tree check fail with -Woverloaded-virtual)
PR c++/61945
* class.c (warn_hidden): Check for FUNCTION_DECL.
* g++.dg/warn/pr61945.C: New test.
From-SVN: r215597
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/class.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/warn/pr61945.C | 11 |
4 files changed, 23 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 2457ccd..a11a520 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2014-09-25 Marek Polacek <polacek@redhat.com> + + PR c++/61945 + * class.c (warn_hidden): Check for FUNCTION_DECL. + 2014-09-25 Jakub Jelinek <jakub@redhat.com> PR c++/63249 diff --git a/gcc/cp/class.c b/gcc/cp/class.c index c4ac61b..acf5768 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -2821,7 +2821,8 @@ warn_hidden (tree t) for (fn = fns; fn; fn = OVL_NEXT (fn)) { fndecl = OVL_CURRENT (fn); - if (DECL_VINDEX (fndecl)) + if (TREE_CODE (fndecl) == FUNCTION_DECL + && DECL_VINDEX (fndecl)) { tree *prev = &base_fndecls; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f1806f6..953a5b2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-09-25 Marek Polacek <polacek@redhat.com> + + PR c++/61945 + * g++.dg/warn/pr61945.C: New test. + 2014-09-25 Jakub Jelinek <jakub@redhat.com> PR tree-optimization/63341 diff --git a/gcc/testsuite/g++.dg/warn/pr61945.C b/gcc/testsuite/g++.dg/warn/pr61945.C new file mode 100644 index 0000000..5584d84 --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/pr61945.C @@ -0,0 +1,11 @@ +// PR c++/61945 +// { dg-do compile } +// { dg-options "-Woverloaded-virtual" } + +class A { + virtual int foo (); // { dg-warning "was hidden" } +}; +class B : A { + template <typename> + void foo (); // { dg-warning "by .B::foo\\(\\)." } +}; |