diff options
Diffstat (limited to 'lib/gcc/arm-eabi/4.6.x-google/plugin/include/tree-iterator.h')
-rw-r--r-- | lib/gcc/arm-eabi/4.6.x-google/plugin/include/tree-iterator.h | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/lib/gcc/arm-eabi/4.6.x-google/plugin/include/tree-iterator.h b/lib/gcc/arm-eabi/4.6.x-google/plugin/include/tree-iterator.h deleted file mode 100644 index 7cdd22a..0000000 --- a/lib/gcc/arm-eabi/4.6.x-google/plugin/include/tree-iterator.h +++ /dev/null @@ -1,121 +0,0 @@ -/* Iterator routines for manipulating GENERIC tree statement list. - Copyright (C) 2003, 2004, 2007, 2010 Free Software Foundation, Inc. - Contributed by Andrew MacLeod <amacleod@redhat.com> - -This file is part of GCC. - -GCC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3, or (at your option) -any later version. - -GCC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GCC; see the file COPYING3. If not see -<http://www.gnu.org/licenses/>. */ - - -/* This file is dependent upon the implementation of tree's. It provides an - abstract interface to the tree objects such that if all tree creation and - manipulations are done through this interface, we can easily change the - implementation of tree's, and not impact other code. */ - -#ifndef GCC_TREE_ITERATOR_H -#define GCC_TREE_ITERATOR_H 1 - -/* Iterator object for GENERIC or GIMPLE TREE statements. */ - -typedef struct { - struct tree_statement_list_node *ptr; - tree container; -} tree_stmt_iterator; - -static inline tree_stmt_iterator -tsi_start (tree t) -{ - tree_stmt_iterator i; - - i.ptr = STATEMENT_LIST_HEAD (t); - i.container = t; - - return i; -} - -static inline tree_stmt_iterator -tsi_last (tree t) -{ - tree_stmt_iterator i; - - i.ptr = STATEMENT_LIST_TAIL (t); - i.container = t; - - return i; -} - -static inline bool -tsi_end_p (tree_stmt_iterator i) -{ - return i.ptr == NULL; -} - -static inline bool -tsi_one_before_end_p (tree_stmt_iterator i) -{ - return i.ptr != NULL && i.ptr->next == NULL; -} - -static inline void -tsi_next (tree_stmt_iterator *i) -{ - i->ptr = i->ptr->next; -} - -static inline void -tsi_prev (tree_stmt_iterator *i) -{ - i->ptr = i->ptr->prev; -} - -static inline tree * -tsi_stmt_ptr (tree_stmt_iterator i) -{ - return &i.ptr->stmt; -} - -static inline tree -tsi_stmt (tree_stmt_iterator i) -{ - return i.ptr->stmt; -} - -enum tsi_iterator_update -{ - TSI_NEW_STMT, /* Only valid when single statement is added, move - iterator to it. */ - TSI_SAME_STMT, /* Leave the iterator at the same statement. */ - TSI_CHAIN_START, /* Only valid when chain of statements is added, move - iterator to the first statement in the chain. */ - TSI_CHAIN_END, /* Only valid when chain of statements is added, move - iterator to the last statement in the chain. */ - TSI_CONTINUE_LINKING /* Move iterator to whatever position is suitable for - linking other statements/chains of statements in - the same direction. */ -}; - -extern void tsi_link_before (tree_stmt_iterator *, tree, - enum tsi_iterator_update); -extern void tsi_link_after (tree_stmt_iterator *, tree, - enum tsi_iterator_update); - -extern void tsi_delink (tree_stmt_iterator *); - -extern tree alloc_stmt_list (void); -extern void free_stmt_list (tree); -extern void append_to_statement_list (tree, tree *); -extern void append_to_statement_list_force (tree, tree *); - -#endif /* GCC_TREE_ITERATOR_H */ |