From 21270e68f25f8d2cd38ae784ca2779c605265614 Mon Sep 17 00:00:00 2001 From: aldyh Date: Fri, 6 Mar 2015 21:58:31 +0000 Subject: [PATCH] * ptree.c (cxx_print_lambda_node): New. (cxx_print_xnode): Handle LAMBDA_EXPR. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221249 138bc75d-0d04-0410-961f-82ee72b054a4 --- 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 @@ -204,6 +204,34 @@ cxx_print_identifier (FILE *file, tree node, int indent) } 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) { switch (TREE_CODE (node)) @@ -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.11.4.GIT