aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/ptree.c
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2015-03-06 21:58:31 +0000
committerAldy Hernandez <aldyh@gcc.gnu.org>2015-03-06 21:58:31 +0000
commita78cbe2976549780489d72b895a9adb528ba874b (patch)
treef1d880c44543fe81b7b7e8276b95504d04db5e51 /gcc/cp/ptree.c
parent3ffa78014eb78d71951cddbd1ec1b8930011f2be (diff)
downloadgcc-a78cbe2976549780489d72b895a9adb528ba874b.zip
gcc-a78cbe2976549780489d72b895a9adb528ba874b.tar.gz
gcc-a78cbe2976549780489d72b895a9adb528ba874b.tar.bz2
ptree.c (cxx_print_lambda_node): New.
* ptree.c (cxx_print_lambda_node): New. (cxx_print_xnode): Handle LAMBDA_EXPR. From-SVN: r221249
Diffstat (limited to 'gcc/cp/ptree.c')
-rw-r--r--gcc/cp/ptree.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/cp/ptree.c b/gcc/cp/ptree.c
index 79c80a3..2d0b584 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;
}