diff options
author | Jason Merrill <jason@yorick.cygnus.com> | 1998-02-16 04:52:31 +0000 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 1998-02-15 23:52:31 -0500 |
commit | b7f6588dd26feb66e936f4a3817d28c8ea929fae (patch) | |
tree | a79a0fce1411246619cb9375b2e5e885167e3226 /gcc/print-tree.c | |
parent | f75778a8d6315df5f100475fa2cd1bb0423d8019 (diff) | |
download | gcc-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.c | 25 |
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) |