> So the important thing is that during matching the paths
> aptr->a and *bptr we return false for
> same_type_for_tbaa (int *, struct a *), correct?  But if
> we can do that then the alias sets should not conflict in
> the first place and we shouldn't need any path-based disambiguation
> here.
> 
> So to me this is the wrong place to fix.

The alias sets of int * conflict with alias set of struct a *
since that one is same as void * and we make void * to conflict
with all pointers.

However we also do not want to return -1 for things like
same_type_for_tbaa (int *, struct a)
which we do currently, since int * is TYPE_STRUCTURAL_EQUALITY 
and struct a is not.

Here you may declare struct a as
struct a {int *a;};
and alias sets will be in conflict even w/o void * globing.

Honza

Reply via email to