From a78cbe2976549780489d72b895a9adb528ba874b Mon Sep 17 00:00:00 2001 From: Aldy Hernandez Date: Fri, 6 Mar 2015 21:58:31 +0000 Subject: [PATCH] ptree.c (cxx_print_lambda_node): New. * ptree.c (cxx_print_lambda_node): New. (cxx_print_xnode): Handle LAMBDA_EXPR. From-SVN: r221249 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/ptree.c | 31 +++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 385859093f2..1e19d6d15a8 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2015-03-06 Aldy Hernandez + + * ptree.c (cxx_print_lambda_node): New. + (cxx_print_xnode): Handle LAMBDA_EXPR. + 2015-03-03 Aldy Hernandez PR c++/65295 diff --git a/gcc/cp/ptree.c b/gcc/cp/ptree.c index 79c80a30d9a..2d0b584e7ab 100644 --- a/gcc/cp/ptree.c +++ b/gcc/cp/ptree.c @@ -203,6 +203,34 @@ cxx_print_identifier (FILE *file, tree node, int indent) print_node (file, "template", IDENTIFIER_TEMPLATE (node), indent + 4); } +void +cxx_print_lambda_node (FILE *file, tree node, int indent) +{ + if (LAMBDA_EXPR_MUTABLE_P (node)) + fprintf (file, " /mutable"); + fprintf (file, " default_capture_mode=["); + switch (LAMBDA_EXPR_DEFAULT_CAPTURE_MODE (node)) + { + case CPLD_NONE: + fprintf (file, "NONE"); + break; + case CPLD_COPY: + fprintf (file, "COPY"); + break; + case CPLD_REFERENCE: + fprintf (file, "CPLD_REFERENCE"); + break; + default: + fprintf (file, "??"); + break; + } + fprintf (file, "] "); + print_node (file, "capture_list", LAMBDA_EXPR_CAPTURE_LIST (node), indent + 4); + print_node (file, "this_capture", LAMBDA_EXPR_THIS_CAPTURE (node), indent + 4); + print_node (file, "return_type", LAMBDA_EXPR_RETURN_TYPE (node), indent + 4); + print_node (file, "closure", LAMBDA_EXPR_CLOSURE (node), indent + 4); +} + void cxx_print_xnode (FILE *file, tree node, int indent) { @@ -243,6 +271,9 @@ cxx_print_xnode (FILE *file, tree node, int indent) print_node (file, "pattern", DEFERRED_NOEXCEPT_PATTERN (node), indent+4); print_node (file, "args", DEFERRED_NOEXCEPT_ARGS (node), indent+4); break; + case LAMBDA_EXPR: + cxx_print_lambda_node (file, node, indent); + break; default: break; } -- 2.30.2