[Bug c++/84726] [8 regression] Unnecessary lambda capture of constant variables
jason at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Mar 9 21:41:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84726
--- Comment #2 from Jason Merrill <jason at gcc dot gnu.org> ---
Author: jason
Date: Fri Mar 9 21:40:55 2018
New Revision: 258398
URL: https://gcc.gnu.org/viewcvs?rev=258398&root=gcc&view=rev
Log:
PR c++/84726 - unnecessary capture of constant vars.
* cp-tree.h (LAMBDA_CAPTURE_EXPLICIT_P)
(LAMBDA_EXPR_CAPTURE_OPTIMIZED): New.
* expr.c (mark_use): Set LAMBDA_EXPR_CAPTURE_OPTIMIZED.
* lambda.c (is_constant_capture_proxy)
(current_lambda_expr, var_to_maybe_prune, mark_const_cap_r)
(prune_lambda_captures): New.
(finish_lambda_function): Call prune_lambda_captures.
Added:
trunk/gcc/testsuite/g++.dg/abi/lambda-capture1.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/expr.c
trunk/gcc/cp/lambda.c
More information about the Gcc-bugs
mailing list