aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2014-09-19 20:54:55 -0400
committerJason Merrill <jason@gcc.gnu.org>2014-09-19 20:54:55 -0400
commit207fd2123a05b4d163c949e3cad0fd293d4f45b4 (patch)
tree2fffb841ed95bab5d7d5416ec8ed8cbcf26d4eb1 /gcc
parentdfd20b8280b6ef500648e6debf638c434ab80535 (diff)
downloadgcc-207fd2123a05b4d163c949e3cad0fd293d4f45b4.zip
gcc-207fd2123a05b4d163c949e3cad0fd293d4f45b4.tar.gz
gcc-207fd2123a05b4d163c949e3cad0fd293d4f45b4.tar.bz2
re PR c++/61465 (Bogus parameter set but not used warning in constructor initialization list)
PR c++/61465 * call.c (convert_like_real) [ck_identity]: Call mark_rvalue_use after pulling out an element from a CONSTRUCTOR. From-SVN: r215413
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/call.c2
-rw-r--r--gcc/testsuite/g++.dg/warn/Wunused-parm-6.C8
3 files changed, 15 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index e7e0a3c..f5092fb 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2014-09-19 Jason Merrill <jason@redhat.com>
+
+ PR c++/61465
+ * call.c (convert_like_real) [ck_identity]: Call mark_rvalue_use
+ after pulling out an element from a CONSTRUCTOR.
+
2014-09-18 Jakub Jelinek <jakub@redhat.com>
PR c++/63248
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index 161235b..8f1b91a 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -6206,7 +6206,6 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
return expr;
}
case ck_identity:
- expr = mark_rvalue_use (expr);
if (BRACE_ENCLOSED_INITIALIZER_P (expr))
{
int nelts = CONSTRUCTOR_NELTS (expr);
@@ -6217,6 +6216,7 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
else
gcc_unreachable ();
}
+ expr = mark_rvalue_use (expr);
if (type_unknown_p (expr))
expr = instantiate_type (totype, expr, complain);
diff --git a/gcc/testsuite/g++.dg/warn/Wunused-parm-6.C b/gcc/testsuite/g++.dg/warn/Wunused-parm-6.C
new file mode 100644
index 0000000..95fb7e2
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wunused-parm-6.C
@@ -0,0 +1,8 @@
+// PR c++/61465
+// { dg-do compile { target c++11 } }
+// { dg-options "-Wunused-but-set-parameter" }
+
+struct Foo {
+ Foo(void* x) : y{static_cast<char*>(x)} {}
+ char* y;
+};