From e75beec7f97ffc1bfc1dfd31b93c10e15881c932 Mon Sep 17 00:00:00 2001 From: mmitchel Date: Wed, 27 Oct 1999 18:19:17 +0000 Subject: [PATCH] * dump.c (dequeue_and_dump): Dump HANDLERs and SAVE_EXPRs. Dump CLEANUP_P for a TRY_BLOCK. * ir.texi: Document SAVE_EXPR. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30218 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/dump.c | 9 +++++++++ gcc/cp/ir.texi | 8 +++++++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 1971fd2..d1537a2 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +1999-10-27 Mark Mitchell + + * 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 diff --git a/gcc/cp/dump.c b/gcc/cp/dump.c index a2c8b02..625804e 100644 --- a/gcc/cp/dump.c +++ b/gcc/cp/dump.c @@ -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; diff --git a/gcc/cp/ir.texi b/gcc/cp/ir.texi index 2298413..b31fd1d 100644 --- a/gcc/cp/ir.texi +++ b/gcc/cp/ir.texi @@ -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 -- 2.7.4