Hi! it seems that
static inline bool 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; } always returns false, because handled_component_p (ref) returns false for INDIRECT_REF: int handled_component_p (tree t) { switch (TREE_CODE (t)) { case BIT_FIELD_REF: case COMPONENT_REF: case ARRAY_REF: case ARRAY_RANGE_REF: case VIEW_CONVERT_EXPR: case REALPART_EXPR: case IMAGPART_EXPR: return 1; default: return 0; } } am I missing something? Richard.