]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
dump.c (dequeue_and_dump): Dump HANDLERs and SAVE_EXPRs.
authorMark Mitchell <mark@codesourcery.com>
Wed, 27 Oct 1999 18:19:17 +0000 (18:19 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Wed, 27 Oct 1999 18:19:17 +0000 (18:19 +0000)
* dump.c (dequeue_and_dump): Dump HANDLERs and SAVE_EXPRs.  Dump
CLEANUP_P for a TRY_BLOCK.
* ir.texi: Document SAVE_EXPR.

From-SVN: r30218

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

index 1971fd27ad8d4c4c21386610499ef174d91e06cb..d1537a22e611adbb1299f4f25fb9eef65ba840ca 100644 (file)
@@ -1,3 +1,9 @@
+1999-10-27  Mark Mitchell  <mark@codesourcery.com>
+
+       * dump.c (dequeue_and_dump): Dump HANDLERs and SAVE_EXPRs.  Dump
+       CLEANUP_P for a TRY_BLOCK.
+       * ir.texi: Document SAVE_EXPR.
+
 Tue Oct 26 23:29:56 1999  Jeffrey A Law  (law@cygnus.com)
 
        * call.c (build_over_call):  Check that the built-in function is
index a2c8b0220c35709a088036580ef65e955f1973b8..625804e911a2fa1c6129abc496c12d53c736fcff 100644 (file)
@@ -678,6 +678,12 @@ dequeue_and_dump (di)
       dump_next_stmt (di, t);
       break;
 
+    case HANDLER:
+      dump_stmt (di, t);
+      dump_child ("body", HANDLER_BODY (t));
+      dump_next_stmt (di, t);
+      break;
+
     case IF_STMT:
       dump_stmt (di, t);
       dump_child ("cond", IF_COND (t));
@@ -707,6 +713,8 @@ dequeue_and_dump (di)
 
     case TRY_BLOCK:
       dump_stmt (di, t);
+      if (CLEANUP_P (t))
+       dump_string (di, "cleanup");
       dump_child ("body", TRY_STMTS (t));
       dump_child ("hdlr", TRY_HANDLERS (t));
       dump_next_stmt (di, t);
@@ -770,6 +778,7 @@ dequeue_and_dump (di)
     case INDIRECT_REF:
     case THROW_EXPR:
     case CLEANUP_POINT_EXPR:
+    case SAVE_EXPR:
       /* These nodes are unary, but do not have code class `1'.  */
       dump_child ("op 0", TREE_OPERAND (t, 0));
       break;
index 22984131c5648e68e4d0848029b94789daaa9f53..b31fd1de450602e641474a9d1d85ce2a86a824c0 100644 (file)
@@ -1897,7 +1897,13 @@ storage is initialized to zero.
 
 @item SAVE_EXPR
 
-FIXME: Describe.
+A @code{SAVE_EXPR} represents an expression (possibly involving
+side-effects) that is used more than once.  The side-effects should
+occur only the first time the expression is evaluated.  Subsequent uses
+should juse reuse the computed value.  The first operand to the
+@code{SAVE_EXPR} is the expression to evaluate.  The side-effects should
+be executed where the @code{SAVE_EXPR} is first encountered in a
+depth-first preorder traversal of the expression tree.
 
 @item TARGET_EXPR
 A @code{TARGET_EXPR} represents a temporary object.  The first operand