diff options
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/lambda.c | 4 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 44022e7..b970c6e 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +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: diff --git a/gcc/cp/lambda.c b/gcc/cp/lambda.c index 08d6d82..85ad9f8 100644 --- a/gcc/cp/lambda.c +++ b/gcc/cp/lambda.c @@ -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) |