aboutsummaryrefslogtreecommitdiff
path: root/gcc/print-tree.c
diff options
context:
space:
mode:
authorJason Merrill <jason@yorick.cygnus.com>1998-02-16 04:52:31 +0000
committerJason Merrill <jason@gcc.gnu.org>1998-02-15 23:52:31 -0500
commitb7f6588dd26feb66e936f4a3817d28c8ea929fae (patch)
treea79a0fce1411246619cb9375b2e5e885167e3226 /gcc/print-tree.c
parentf75778a8d6315df5f100475fa2cd1bb0423d8019 (diff)
downloadgcc-b7f6588dd26feb66e936f4a3817d28c8ea929fae.zip
gcc-b7f6588dd26feb66e936f4a3817d28c8ea929fae.tar.gz
gcc-b7f6588dd26feb66e936f4a3817d28c8ea929fae.tar.bz2
tree.c (first_rtl_op): New fn.
* tree.c (first_rtl_op): New fn. (unsave_expr_now): Use it. * print-tree.c (print_node): Likewise. * tree.c (has_cleanups): New fn. * fold-const.c (fold, case CLEANUP_POINT_EXPR): Use it. Be more conservative about pushing the cleanup point down. * tree.h: Declare them. From-SVN: r18023
Diffstat (limited to 'gcc/print-tree.c')
-rw-r--r--gcc/print-tree.c25
1 files changed, 3 insertions, 22 deletions
diff --git a/gcc/print-tree.c b/gcc/print-tree.c
index f075f0b..5b81bc5 100644
--- a/gcc/print-tree.c
+++ b/gcc/print-tree.c
@@ -547,29 +547,10 @@ print_node (file, prefix, node, indent)
return;
}
- first_rtl = len = tree_code_length[(int) TREE_CODE (node)];
- /* These kinds of nodes contain rtx's, not trees,
+ len = tree_code_length[(int) TREE_CODE (node)];
+ /* Some nodes contain rtx's, not trees,
after a certain point. Print the rtx's as rtx's. */
- switch (TREE_CODE (node))
- {
- case SAVE_EXPR:
- first_rtl = 2;
- break;
- case CALL_EXPR:
- first_rtl = 2;
- break;
- case METHOD_CALL_EXPR:
- first_rtl = 3;
- break;
- case WITH_CLEANUP_EXPR:
- /* Should be defined to be 2. */
- first_rtl = 1;
- break;
- case RTL_EXPR:
- first_rtl = 0;
- default:
- break;
- }
+ first_rtl = first_rtl_op (TREE_CODE (node));
for (i = 0; i < len; i++)
{
if (i >= first_rtl)