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