ir.texi: Document BIND_EXPR, LOOP_EXPR, and EXIT_EXPR.
authorMark Mitchell <mark@codesourcery.com>
Tue, 5 Oct 1999 23:59:27 +0000 (23:59 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Tue, 5 Oct 1999 23:59:27 +0000 (23:59 +0000)
* ir.texi: Document BIND_EXPR, LOOP_EXPR, and EXIT_EXPR.
* dump.c (dequeue_and_dump): Dump them.

From-SVN: r29835

gcc/cp/ChangeLog
gcc/cp/dump.c
gcc/cp/ir.texi

index 4eccf5e..ffd457d 100644 (file)
@@ -1,7 +1,8 @@
 1999-10-05  Mark Mitchell  <mark@codesourcery.com>
 
-       * ir.texi: Document LOOP_EXPR and EXIT_EXPR.
-
+       * ir.texi: Document BIND_EXPR, LOOP_EXPR, and EXIT_EXPR.
+       * dump.c (dequeue_and_dump): Dump them.
+       
        * method.c (synthesize_method): Call setup_vtbl_ptr for destructors.
 
        * decl.c (start_function): Set current_in_charge_parm for
index 00d9e18..f6e1539 100644 (file)
@@ -903,6 +903,24 @@ dequeue_and_dump (di)
        dump_child ("stmt", STMT_EXPR_STMT (t));
       break;
 
+    case BIND_EXPR:
+      if (dump_children_p)
+       {
+         dump_child ("vars", TREE_OPERAND (t, 0));
+         dump_child ("body", TREE_OPERAND (t, 1));
+       }
+      break;
+
+    case LOOP_EXPR:
+      if (dump_children_p)
+       dump_child ("body", TREE_OPERAND (t, 0));
+      break;
+
+    case EXIT_EXPR:
+      if (dump_children_p)
+       dump_child ("cond", TREE_OPERAND (t, 0));
+      break;
+
     case TARGET_EXPR:
       if (dump_children_p)
        {
index bad2aca..021c679 100644 (file)
@@ -1466,6 +1466,7 @@ The @code{WHILE_BODY} is the body of the loop.
 @tindex CALL_EXPR
 @tindex CONSTRUCTOR
 @tindex STMT_EXPR
+@tindex BIND_EXPR
 @tindex LOOP_EXPR
 @tindex EXIT_EXPR
 @tindex ARRAY_REF
@@ -1819,6 +1820,13 @@ contained in the expression; this is always a @code{COMPOUND_STMT}.  The
 value of the expression is the value of the last sub-statement in the
 @code{COMPOUND_STMT}.
 
+@item BIND_EXPR
+These nodes represent local blocks.  The first operand is a list of
+temporary variables, connected via their @code{TREE_CHAIN} field.  These
+will never require cleanups.  The scope of these variables is just the
+body of the @code{BIND_EXPR}.  The body of the @code{BIND_EXPR} is the
+second operand.
+
 @item LOOP_EXPR
 These nodes represent ``infinite'' loops.  The @code{LOOP_EXPR_BODY}
 represents the body of the loop.  It should be executed forever, unless