From aeda100f7b926c36213d5d7de9a600d23d4d7808 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Mon, 9 Sep 2013 13:39:47 +0000 Subject: [PATCH] re PR c++/58362 (Wrong column number for unused parameter) /cp 2013-09-09 Paolo Carlini PR c++/58362 * error.c (location_of): Don't handle PARM_DECLs specially. /testsuite 2013-09-09 Paolo Carlini PR c++/58362 * g++.dg/warn/Wunused-parm-5.C: New. From-SVN: r202402 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/error.c | 4 +--- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/warn/Wunused-parm-5.C | 14 ++++++++++++++ 4 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 gcc/testsuite/g++.dg/warn/Wunused-parm-5.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 8bd332b9c51..a8d7be3f910 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2013-09-09 Paolo Carlini + + PR c++/58362 + * error.c (location_of): Don't handle PARM_DECLs specially. + 2013-09-09 Paolo Carlini * error.c (dump_expr, [PSEUDO_DTOR_EXPR]): Fix. diff --git a/gcc/cp/error.c b/gcc/cp/error.c index a51984e2eb4..02ec6c7608f 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -2789,9 +2789,7 @@ lang_decl_name (tree decl, int v, bool translate) location_t location_of (tree t) { - if (TREE_CODE (t) == PARM_DECL && DECL_CONTEXT (t)) - t = DECL_CONTEXT (t); - else if (TYPE_P (t)) + if (TYPE_P (t)) { t = TYPE_MAIN_DECL (t); if (t == NULL_TREE) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ffe4acb1985..5cc02a70e4b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2013-09-09 Paolo Carlini + + PR c++/58362 + * g++.dg/warn/Wunused-parm-5.C: New. + 2013-09-09 Kyrylo Tkachov * gcc.target/aarch64/cmn-neg.c: New test. diff --git a/gcc/testsuite/g++.dg/warn/Wunused-parm-5.C b/gcc/testsuite/g++.dg/warn/Wunused-parm-5.C new file mode 100644 index 00000000000..e952d0221bd --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/Wunused-parm-5.C @@ -0,0 +1,14 @@ +// PR c++/58362 +// { dg-options "-Wunused-parameter" } + +void f1 (long s) { } // { dg-warning "15:unused parameter 's'" } + +void f2 (long s, int u) { } // { dg-warning "15:unused parameter 's'" } +// { dg-warning "22:unused parameter 'u'" "" { target *-*-* } 6 } + +void f3 (long s); +void f3 (long s) { } // { dg-warning "15:unused parameter 's'" } + +void f4 (long s, int u); +void f4 (long s, int u) { } // { dg-warning "15:unused parameter 's'" } +// { dg-warning "22:unused parameter 'u'" "" { target *-*-* } 13 } -- 2.30.2