re PR c++/58362 (Wrong column number for unused parameter)
authorPaolo Carlini <paolo.carlini@oracle.com>
Mon, 9 Sep 2013 13:39:47 +0000 (13:39 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Mon, 9 Sep 2013 13:39:47 +0000 (13:39 +0000)
/cp
2013-09-09  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/58362
* error.c (location_of): Don't handle PARM_DECLs specially.

/testsuite
2013-09-09  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/58362
* g++.dg/warn/Wunused-parm-5.C: New.

From-SVN: r202402

gcc/cp/ChangeLog
gcc/cp/error.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/warn/Wunused-parm-5.C [new file with mode: 0644]

index 8bd332b..a8d7be3 100644 (file)
@@ -1,5 +1,10 @@
 2013-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
 
+       PR c++/58362
+       * error.c (location_of): Don't handle PARM_DECLs specially.
+
+2013-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
+
        * error.c (dump_expr, [PSEUDO_DTOR_EXPR]): Fix.
        * cxx-pretty-print.c (cxx_pretty_printer::postfix_expression):
        Tweak, TREE_OPERAND (t, 1) may be null.
index a51984e..02ec6c7 100644 (file)
@@ -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)
index ffe4acb..5cc02a7 100644 (file)
@@ -1,3 +1,8 @@
+2013-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/58362
+       * g++.dg/warn/Wunused-parm-5.C: New.
+
 2013-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
        * 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 (file)
index 0000000..e952d02
--- /dev/null
@@ -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 }