From 2ac2f83d0ad51d386ecec48f12b685a2d244cdff Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Wed, 22 May 2013 09:33:29 +0000 Subject: re PR c++/57211 (wrong line indicated in warning for synthesized method) /cp 2013-05-22 Paolo Carlini PR c++/57211 * method.c (defaultable_fn_check): Avoid do_warn_unused_parameter warnings about defaulted functions. /testsuite 2013-05-22 Paolo Carlini PR c++/57211 * g++.dg/cpp0x/Wunused-parm.C: New. From-SVN: r199189 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/method.c | 10 ++++++++-- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/cpp0x/Wunused-parm.C | 23 +++++++++++++++++++++++ 4 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/g++.dg/cpp0x/Wunused-parm.C (limited to 'gcc') diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index b7b87cb..47cb6d3 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2013-05-22 Paolo Carlini + + PR c++/57211 + * method.c (defaultable_fn_check): Avoid do_warn_unused_parameter + warnings about defaulted functions. + 2013-05-21 Paolo Carlini * call.c (build_conditional_expr_1): Add location_t parameter. diff --git a/gcc/cp/method.c b/gcc/cp/method.c index 0d779a0..f314d0d 100644 --- a/gcc/cp/method.c +++ b/gcc/cp/method.c @@ -1864,13 +1864,19 @@ defaultable_fn_check (tree fn) } else { - tree t = FUNCTION_FIRST_USER_PARMTYPE (fn); - for (; t && t != void_list_node; t = TREE_CHAIN (t)) + for (tree t = FUNCTION_FIRST_USER_PARMTYPE (fn); + t && t != void_list_node; t = TREE_CHAIN (t)) if (TREE_PURPOSE (t)) { error ("defaulted function %q+D with default argument", fn); break; } + + /* Avoid do_warn_unused_parameter warnings. */ + for (tree p = FUNCTION_FIRST_USER_PARM (fn); p; p = DECL_CHAIN (p)) + if (DECL_NAME (p)) + TREE_NO_WARNING (p) = 1; + if (TYPE_BEING_DEFINED (DECL_CONTEXT (fn))) /* Defer checking. */; else if (!processing_template_decl) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 29f1b7f..fc2a2f3 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2013-05-22 Paolo Carlini + + PR c++/57211 + * g++.dg/cpp0x/Wunused-parm.C: New. + 2013-05-21 Paolo Carlini * g++.dg/cpp0x/explicit3.C: Add column in dg-error strings. diff --git a/gcc/testsuite/g++.dg/cpp0x/Wunused-parm.C b/gcc/testsuite/g++.dg/cpp0x/Wunused-parm.C new file mode 100644 index 0000000..7f6c6ff --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/Wunused-parm.C @@ -0,0 +1,23 @@ +// PR c++/57211 +// { dg-options "-std=c++11 -Wunused-parameter" } + +template T&& move(T&); + +struct A +{ + struct B + { + B& operator=(B&&); + }; + + B f; + + A& operator=(A&& p) = default; +}; + +int main() +{ + A a; + A b; + b = move(a); +} -- cgit v1.1