aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/lambda.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2016-02-17 15:45:15 -0500
committerJason Merrill <jason@gcc.gnu.org>2016-02-17 15:45:15 -0500
commit0f02dd56f5f50238244a729bde63387d42c36d63 (patch)
tree7ded2b70d4b8f111c55171cba13383ecc5c3d998 /gcc/cp/lambda.c
parent9bfcbdeecf12ae4ad4b4397055b6911014c9b947 (diff)
downloadgcc-0f02dd56f5f50238244a729bde63387d42c36d63.zip
gcc-0f02dd56f5f50238244a729bde63387d42c36d63.tar.gz
gcc-0f02dd56f5f50238244a729bde63387d42c36d63.tar.bz2
re PR c++/69842 (Parameter deduction in polymorphic lambdas)
PR c++/69842 * method.c (forward_parm): Split out from... (add_one_base_init): ...here. * lambda.c (maybe_add_lambda_conv_op): Use it. From-SVN: r233506
Diffstat (limited to 'gcc/cp/lambda.c')
-rw-r--r--gcc/cp/lambda.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/cp/lambda.c b/gcc/cp/lambda.c
index 93b192c..296c6f7 100644
--- a/gcc/cp/lambda.c
+++ b/gcc/cp/lambda.c
@@ -962,7 +962,9 @@ maybe_add_lambda_conv_op (tree type)
}
else
{
- tree a = convert_from_reference (tgt);
+ ++processing_template_decl;
+ tree a = forward_parm (tgt);
+ --processing_template_decl;
CALL_EXPR_ARG (call, ix) = a;
if (decltype_call)
CALL_EXPR_ARG (decltype_call, ix) = copy_node (a);