X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Ftree-iterator.c;h=43218f6b754a51e63c4831f584b5b9af6effbdc1;hb=a741358d2ef4498e2c72c96fe5a45a333478489f;hp=d8c151a9f5427bd2a32a6ad644c0488047f6803c;hpb=75a70cf95f65fe9204b15ad9aba31c571381d224;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/tree-iterator.c b/gcc/tree-iterator.c index d8c151a9f54..43218f6b754 100644 --- a/gcc/tree-iterator.c +++ b/gcc/tree-iterator.c @@ -1,5 +1,5 @@ /* Iterator routines for manipulating GENERIC and GIMPLE tree statements. - Copyright (C) 2003, 2004, 2007 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2007, 2008 Free Software Foundation, Inc. Contributed by Andrew MacLeod This file is part of GCC. @@ -238,64 +238,6 @@ tsi_delink (tree_stmt_iterator *i) i->ptr = next; } -/* Move all statements in the statement list after I to a new - statement list. I itself is unchanged. */ - -tree -tsi_split_statement_list_after (const tree_stmt_iterator *i) -{ - struct tree_statement_list_node *cur, *next; - tree old_sl, new_sl; - - cur = i->ptr; - /* How can we possibly split after the end, or before the beginning? */ - gcc_assert (cur); - next = cur->next; - - old_sl = i->container; - new_sl = alloc_stmt_list (); - TREE_SIDE_EFFECTS (new_sl) = 1; - - STATEMENT_LIST_HEAD (new_sl) = next; - STATEMENT_LIST_TAIL (new_sl) = STATEMENT_LIST_TAIL (old_sl); - STATEMENT_LIST_TAIL (old_sl) = cur; - cur->next = NULL; - next->prev = NULL; - - return new_sl; -} - -/* Move all statements in the statement list before I to a new - statement list. I is set to the head of the new list. */ - -tree -tsi_split_statement_list_before (tree_stmt_iterator *i) -{ - struct tree_statement_list_node *cur, *prev; - tree old_sl, new_sl; - - cur = i->ptr; - /* How can we possibly split after the end, or before the beginning? */ - gcc_assert (cur); - prev = cur->prev; - - old_sl = i->container; - new_sl = alloc_stmt_list (); - TREE_SIDE_EFFECTS (new_sl) = 1; - i->container = new_sl; - - STATEMENT_LIST_HEAD (new_sl) = cur; - STATEMENT_LIST_TAIL (new_sl) = STATEMENT_LIST_TAIL (old_sl); - STATEMENT_LIST_TAIL (old_sl) = prev; - cur->prev = NULL; - if (prev) - prev->next = NULL; - else - STATEMENT_LIST_HEAD (old_sl) = NULL; - - return new_sl; -} - /* Return the first expression in a sequence of COMPOUND_EXPRs, or in a STATEMENT_LIST. */ @@ -320,19 +262,6 @@ expr_first (tree expr) /* Return the last expression in a sequence of COMPOUND_EXPRs, or in a STATEMENT_LIST. */ -#define EXPR_LAST_BODY do { \ - if (expr == NULL_TREE) \ - return expr;\ - if (TREE_CODE (expr) == STATEMENT_LIST) \ - { \ - struct tree_statement_list_node *n = STATEMENT_LIST_TAIL (expr); \ - return n ? n->stmt : NULL_TREE; \ - } \ - while (TREE_CODE (expr) == COMPOUND_EXPR) \ - expr = TREE_OPERAND (expr, 1); \ - return expr; \ -} while (0) - tree expr_last (tree expr) { @@ -351,29 +280,4 @@ expr_last (tree expr) return expr; } -/* If EXPR is a single statement return it. If EXPR is a - STATEMENT_LIST containing exactly one statement S, return S. - Otherwise, return NULL. */ - -tree -expr_only (tree expr) -{ - if (expr == NULL_TREE) - return NULL_TREE; - - if (TREE_CODE (expr) == STATEMENT_LIST) - { - struct tree_statement_list_node *n = STATEMENT_LIST_TAIL (expr); - if (n && STATEMENT_LIST_HEAD (expr) == n) - return n->stmt; - else - return NULL_TREE; - } - - if (TREE_CODE (expr) == COMPOUND_EXPR) - return NULL_TREE; - - return expr; -} - #include "gt-tree-iterator.h"