> > +/* Return true if TYPE is a composite type (i.e. we may apply one of > > handled > > + components on it). */ > > + > > +static bool > > +access_patch_may_continue_p (tree type) > > 'path', but I think type_has_components_p would be a better fit?
Thanks, looks better indeed! > > > +{ > > + return AGGREGATE_TYPE_P (type) || VECTOR_TYPE_P (type) > > + || TREE_CODE (type) == COMPLEX_TYPE; > > +} > > + > > /* Determine if the two component references REF1 and REF2 which are > > based on access types TYPE1 and TYPE2 and of which at least one is based > > on an indirect reference may alias. REF2 is the only one that can > > @@ -965,6 +1028,7 @@ aliasing_component_refs_p (tree ref1, > > if there is no B2 in the tail of path1 and no B1 on the > > tail of path2. */ > > if (compare_type_sizes (TREE_TYPE (ref2), type1) >= 0 > > + && (access_patch_may_continue_p (TREE_TYPE (ref2))) > > extra parens around the call here and below. > > OK with all these issues fixed. Thanks. That is leftover of a debug code to compare old and new oracle. I will be more careful next time. Honza > > Richard. > > > && (base1_alias_set == ref2_alias_set > > || alias_set_subset_of (base1_alias_set, ref2_alias_set))) > > { > > @@ -974,6 +1038,7 @@ aliasing_component_refs_p (tree ref1, > > /* If this is ptr vs. decl then we know there is no ptr ... decl path. > > */ > > if (!ref2_is_decl > > && compare_type_sizes (TREE_TYPE (ref1), type2) >= 0 > > + && (access_patch_may_continue_p (TREE_TYPE (ref1))) > > && (base2_alias_set == ref1_alias_set > > || alias_set_subset_of (base2_alias_set, ref1_alias_set))) > > { > > > > -- > Richard Biener <rguent...@suse.de> > SUSE Linux GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany; > GF: Felix Imendörffer, Mary Higgins, Sri Rasiah; HRB 21284 (AG Nürnberg)