X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Ftree-flow-inline.h;h=e31db442a5d695ab45e6d14477a87d971c8e3b92;hp=d8b57a556af2d62936b6df02da2886a7e13fe2ac;hb=ea2d55dfd3520c0372f13446374216055f084e67;hpb=9824ce489a3bf43350e9d32067ffb9f1d6243a21 diff --git a/gcc/tree-flow-inline.h b/gcc/tree-flow-inline.h index d8b57a556af..e31db442a5d 100644 --- a/gcc/tree-flow-inline.h +++ b/gcc/tree-flow-inline.h @@ -1407,32 +1407,34 @@ unmodifiable_var_p (tree var) return TREE_READONLY (var) && (TREE_STATIC (var) || DECL_EXTERNAL (var)); } -/* Return true if REF, an ARRAY_REF, has an INDIRECT_REF somewhere in - it. */ +/* Return true if REF, an ARRAY_REF, has an INDIRECT_REF somewhere in it. */ static inline bool -ref_contains_indirect_ref (tree ref) +array_ref_contains_indirect_ref (tree ref) { - while (handled_component_p (ref)) - { - if (TREE_CODE (ref) == INDIRECT_REF) - return true; - ref = TREE_OPERAND (ref, 0); - } - return false; + gcc_assert (TREE_CODE (ref) == ARRAY_REF); + + do { + ref = TREE_OPERAND (ref, 0); + } while (handled_component_p (ref)); + + return TREE_CODE (ref) == INDIRECT_REF; } -/* Return true if REF, a COMPONENT_REF, has an ARRAY_REF somewhere in it. */ +/* Return true if REF, a handled component reference, has an ARRAY_REF + somewhere in it. */ static inline bool ref_contains_array_ref (tree ref) { - while (handled_component_p (ref)) - { - if (TREE_CODE (ref) == ARRAY_REF) - return true; - ref = TREE_OPERAND (ref, 0); - } + gcc_assert (handled_component_p (ref)); + + do { + if (TREE_CODE (ref) == ARRAY_REF) + return true; + ref = TREE_OPERAND (ref, 0); + } while (handled_component_p (ref)); + return false; }