Commit 036dc0a0 by Paolo Carlini Committed by Paolo Carlini

re PR c++/71105 (lambdas with default captures improperly have function pointer conversions)

/cp
2016-05-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/71105
	* lambda.c (maybe_add_lambda_conv_op): Early return also when
	LAMBDA_EXPR_DEFAULT_CAPTURE_MODE != CPLD_NONE.

/testsuite
2016-05-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/71105
	* g++.dg/cpp0x/lambda/lambda-conv11.C: New.
	* g++.dg/cpp1y/lambda-conv1.C: Likewise.
	* g++.dg/cpp1y/lambda-conv2.C: Likewise.

From-SVN: r236861
parent b6d4f8e8
2016-05-29 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/71105
* lambda.c (maybe_add_lambda_conv_op): Early return also when
LAMBDA_EXPR_DEFAULT_CAPTURE_MODE != CPLD_NONE.
2016-05-28 Ville Voutilainen <ville.voutilainen@gmail.com>
Revert:
......
......@@ -872,8 +872,10 @@ maybe_add_lambda_conv_op (tree type)
bool nested = (cfun != NULL);
bool nested_def = decl_function_context (TYPE_MAIN_DECL (type));
tree callop = lambda_function (type);
tree lam = CLASSTYPE_LAMBDA_EXPR (type);
if (LAMBDA_EXPR_CAPTURE_LIST (CLASSTYPE_LAMBDA_EXPR (type)) != NULL_TREE)
if (LAMBDA_EXPR_CAPTURE_LIST (lam) != NULL_TREE
|| LAMBDA_EXPR_DEFAULT_CAPTURE_MODE (lam) != CPLD_NONE)
return;
if (processing_template_decl)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment