> On Mon, 8 Jun 2015, Richard Biener wrote:
> 
> > On Mon, 8 Jun 2015, Joseph Myers wrote:
> > 
> > > On Mon, 8 Jun 2015, Richard Biener wrote:
> > > 
> > > > I'm not sure the C standard mandates compatibility between
> > > > 
> > > > struct { int i; } and struct { unsigned i; } for purposes of TBAA.
> > > > Joseph?
> > > 
> > > I don't think they are necessarily compatible for TBAA.
> > 
> > Ok, but as int and unsigned are reading either structs element
> > via a pointer to int or a pointer to unsigned must be supported?
> 
> Yes.  The questionable case would be taking an object of one of those 
> structure types, casting a pointer to it to point to the other structure 
> type and then dereferencing.

Are "struct { int i; }" and "struct { unsigned i; }" compatible when one is 
defined
in one unit and other in another?
In any cae, I suppose if int and unsigned int pointers can be used 
interchangeably,
we want to ignore TYPE_UNSGINED for purposes of canonical type calculation for 
LTO.
So is the second variant of patch OK with a comment update that this is also 
required
by C?

Honza
> 
> -- 
> Joseph S. Myers
> jos...@codesourcery.com

Reply via email to