aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>1999-10-05 23:59:27 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>1999-10-05 23:59:27 +0000
commit3651fb44bbc75ef3c659e225616d91d2b52b7eee (patch)
treeb0e9abcc0bc59c27ea98116e4ce33b9fb78702a3
parentcd6642cbec99620da64cf401b05ba74e37de02e0 (diff)
downloadgcc-3651fb44bbc75ef3c659e225616d91d2b52b7eee.zip
gcc-3651fb44bbc75ef3c659e225616d91d2b52b7eee.tar.gz
gcc-3651fb44bbc75ef3c659e225616d91d2b52b7eee.tar.bz2
ir.texi: Document BIND_EXPR, LOOP_EXPR, and EXIT_EXPR.
* ir.texi: Document BIND_EXPR, LOOP_EXPR, and EXIT_EXPR. * dump.c (dequeue_and_dump): Dump them. From-SVN: r29835
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/dump.c18
-rw-r--r--gcc/cp/ir.texi8
3 files changed, 29 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 4eccf5e..ffd457d 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -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
diff --git a/gcc/cp/dump.c b/gcc/cp/dump.c
index 00d9e18..f6e1539 100644
--- a/gcc/cp/dump.c
+++ b/gcc/cp/dump.c
@@ -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)
{
diff --git a/gcc/cp/ir.texi b/gcc/cp/ir.texi
index bad2aca..021c679 100644
--- a/gcc/cp/ir.texi
+++ b/gcc/cp/ir.texi
@@ -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