diff options
author | Jason Merrill <jason@redhat.com> | 2018-03-08 22:18:50 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2018-03-08 22:18:50 +0100 |
commit | 80bac2eb06b1f5660fa46c8b4292e01df745f398 (patch) | |
tree | 80bda116f7fefdc340ee66f16cfe10618919e03d /gcc | |
parent | 86c6352c2f6d1d6dac28620d98593e4afe7ae89f (diff) | |
download | gcc-80bac2eb06b1f5660fa46c8b4292e01df745f398.zip gcc-80bac2eb06b1f5660fa46c8b4292e01df745f398.tar.gz gcc-80bac2eb06b1f5660fa46c8b4292e01df745f398.tar.bz2 |
re PR c++/80598 (-Wunused triggers for functions used in uninstantiated templates)
PR c++/80598
* call.c (build_over_call): In templates set TREE_USED (first_fn) when
not calling mark_used for the benefit of -Wunused-function warning.
* g++.dg/warn/Wunused-function4.C: New test.
From-SVN: r258370
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cp/call.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/warn/Wunused-function4.C | 21 |
4 files changed, 35 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 9dd7c17..3c1e4c7 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,10 @@ +2018-03-08 Jason Merrill <jason@redhat.com> + Jakub Jelinek <jakub@redhat.com> + + PR c++/80598 + * call.c (build_over_call): In templates set TREE_USED (first_fn) when + not calling mark_used for the benefit of -Wunused-function warning. + 2018-03-06 Jason Merrill <jason@redhat.com> * lambda.c (is_capture_proxy_with_ref): Remove. diff --git a/gcc/cp/call.c b/gcc/cp/call.c index f83d51f..fd6528f 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -7634,6 +7634,10 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain) if (undeduced_auto_decl (fn)) mark_used (fn, complain); + else + /* Otherwise set TREE_USED for the benefit of -Wunused-function. + See PR80598. */ + TREE_USED (fn) = 1; return_type = TREE_TYPE (TREE_TYPE (fn)); nargs = vec_safe_length (args); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 32740bf..1917aef 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2018-03-08 Jakub Jelinek <jakub@redhat.com> + PR c++/80598 + * g++.dg/warn/Wunused-function4.C: New test. + PR inline-asm/84742 * gcc.target/i386/pr84742-1.c: New test. * gcc.target/i386/pr84742-2.c: New test. diff --git a/gcc/testsuite/g++.dg/warn/Wunused-function4.C b/gcc/testsuite/g++.dg/warn/Wunused-function4.C new file mode 100644 index 0000000..00d5d70 --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/Wunused-function4.C @@ -0,0 +1,21 @@ +// PR c++/80598 +// { dg-do compile } +// { dg-options "-Wunused-function" } + +static void +foo () // { dg-bogus "defined but not used" } +{ +} + +static void +bar () // { dg-warning "defined but not used" } +{ +} + +template <class T> +int +baz (T x) +{ + foo (); + return 0; +} |