]> gcc.gnu.org Git - gcc.git/commit - gcc/cp/semantics.c
Allow no-capture lambdas to convert to function pointer.
authorJason Merrill <jason@redhat.com>
Tue, 27 Oct 2009 21:58:09 +0000 (17:58 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Tue, 27 Oct 2009 21:58:09 +0000 (17:58 -0400)
commitb77068f27bbad156e88352bb1a3382a96b66acbf
tree000402686698d1995b0a51ccb183ff709533ba84
parent73d28034382a7ba65ec46d6a1cebd828f32b16c9
Allow no-capture lambdas to convert to function pointer.

* semantics.c (maybe_add_lambda_conv_op): New.
* parser.c (cp_parser_lambda_expression): Call it.
(cp_parser_lambda_declarator_opt): Make op() static if
no captures.
* mangle.c (write_closure_type_name): Adjust.
* semantics.c (finish_this_expr): Adjust.
* decl.c (grok_op_properties): Allow it.
* call.c (build_user_type_conversion_1): Handle static conversion op.
(build_op_call): And op().

From-SVN: r153617
13 files changed:
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/class.c
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/mangle.c
gcc/cp/parser.c
gcc/cp/semantics.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const-neg.C
gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle.C
gcc/testsuite/g++.dg/cpp0x/lambda/lambda-non-const.C
This page took 0.055098 seconds and 5 git commands to generate.