PR c++/43912 Generate proxy VAR_DECLs for better lambda debug info. * cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): Add lambda operator(). (LAMBDA_EXPR_PENDING_PROXIES): New. (struct tree_lambda_expr): Add pending_proxies. * name-lookup.c (pushdecl_maybe_friend_1): Handle capture shadowing. (qualify_lookup): Use is_lambda_ignored_entity. * parser.c (cp_parser_lambda_expression): Don't adjust field names. Call insert_pending_capture_proxies. (cp_parser_lambda_introducer): Use this_identifier. (cp_parser_lambda_declarator_opt): Call the object parameter of the op() "__closure" instead of "this". (cp_parser_lambda_body): Call build_capture_proxy. * semantics.c (build_capture_proxy, is_lambda_ignored_entity): New. (insert_pending_capture_proxies, insert_capture_proxy): New. (is_normal_capture_proxy, is_capture_proxy): New. (add_capture): Add __ to field names here, return capture proxy. (add_default_capture): Use this_identifier, adjust to expect add_capture to return a capture proxy. (outer_lambda_capture_p, thisify_lambda_field): Remove. (finish_id_expression, lambda_expr_this_capture): Adjust. (build_lambda_expr): Initialize LAMBDA_EXPR_PENDING_PROXIES. * pt.c (tsubst_copy_and_build): Check that LAMBDA_EXPR_PENDING_PROXIES is null. From-SVN: r175158
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
dwarf2 | Loading commit data... | |
anonunion1.C | Loading commit data... | |
const1.C | Loading commit data... | |
const2.C | Loading commit data... | |
const3.C | Loading commit data... | |
const4.C | Loading commit data... | |
const5.C | Loading commit data... | |
crash1.C | Loading commit data... | |
debug.exp | Loading commit data... | |
debug1.C | Loading commit data... | |
debug2.C | Loading commit data... | |
debug3.C | Loading commit data... | |
debug4.C | Loading commit data... | |
debug5.C | Loading commit data... | |
debug6.C | Loading commit data... | |
debug7.C | Loading commit data... | |
debug8.C | Loading commit data... | |
debug9.C | Loading commit data... | |
dwarf-eh-personality-1.C | Loading commit data... | |
dwarf2-1.C | Loading commit data... | |
dwarf2-2.C | Loading commit data... | |
enum-1.C | Loading commit data... | |
enum-2.C | Loading commit data... | |
minimal1.C | Loading commit data... | |
namespace1.C | Loading commit data... | |
namespace2.C | Loading commit data... | |
nullptr01.C | Loading commit data... | |
pr15736.cc | Loading commit data... | |
pr16792.C | Loading commit data... | |
pr22514.C | Loading commit data... | |
pr27657.C | Loading commit data... | |
pr29906.C | Loading commit data... | |
pr30898.C | Loading commit data... | |
pr34895.C | Loading commit data... | |
pr43010.C | Loading commit data... | |
pr44178.C | Loading commit data... | |
pr44182.C | Loading commit data... | |
pr45660.C | Loading commit data... | |
pr46123.C | Loading commit data... | |
pr46240.cc | Loading commit data... | |
pr46241.C | Loading commit data... | |
pr46338.C | Loading commit data... | |
pr46583.C | Loading commit data... | |
pr47106.C | Loading commit data... | |
pr47209.C | Loading commit data... | |
pr47283.C | Loading commit data... | |
static1.C | Loading commit data... | |
template1.C | Loading commit data... | |
trivial.C | Loading commit data... | |
typedef1.C | Loading commit data... | |
typedef2.C | Loading commit data... | |
typedef3.C | Loading commit data... | |
using1.C | Loading commit data... | |
using2.C | Loading commit data... | |
using3.C | Loading commit data... | |
vartrack1.C | Loading commit data... |