diff options
author | Jason Merrill <jason@redhat.com> | 2009-09-10 17:40:06 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2009-09-10 17:40:06 -0400 |
commit | ad42ff1e07cf3a19669ba9d11a89a26d2eff99d4 (patch) | |
tree | 97fe29f2f32f424cedb3831187475be5ea383ec8 | |
parent | 43dfd40c1d5934d5850dcfd2c9a1b9e856bf32a7 (diff) | |
download | gcc-ad42ff1e07cf3a19669ba9d11a89a26d2eff99d4.zip gcc-ad42ff1e07cf3a19669ba9d11a89a26d2eff99d4.tar.gz gcc-ad42ff1e07cf3a19669ba9d11a89a26d2eff99d4.tar.bz2 |
tree.c (chain_index): New fn.
* tree.c (chain_index): New fn.
* tree.h: Declare it.
From-SVN: r151618
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree.c | 11 | ||||
-rw-r--r-- | gcc/tree.h | 1 |
3 files changed, 17 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e8eb477..c97ff8a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2009-09-10 Jason Merrill <jason@redhat.com> + + * tree.c (chain_index): New fn. + * tree.h: Declare it. + 2009-09-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> * config/sol2-c.c (cmn_err_length_specs): Initialize @@ -1905,6 +1905,17 @@ purpose_member (const_tree elem, tree list) return NULL_TREE; } +/* Returns element number IDX (zero-origin) of chain CHAIN, or + NULL_TREE. */ + +tree +chain_index (int idx, tree chain) +{ + for (; chain && idx > 0; --idx) + chain = TREE_CHAIN (chain); + return chain; +} + /* Return nonzero if ELEM is part of the chain CHAIN. */ int @@ -3914,6 +3914,7 @@ extern bool range_in_array_bounds_p (tree); extern tree value_member (tree, tree); extern tree purpose_member (const_tree, tree); +extern tree chain_index (int, tree); extern int attribute_list_equal (const_tree, const_tree); extern int attribute_list_contained (const_tree, const_tree); |