This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: IMA vs tree-ssa


Neil Booth <neil@daikokuya.co.uk> writes:

> Geoff Keating wrote:-
> 
> > In addition, structure compatilibity between modules is not
> > transitive, even in C99.  For instance,
> > 
> > struct { int x; }
> > 
> > is compatible with both
> > 
> > struct x_1 { int x; }
> > and
> > struct x_2 { int x; }
> > 
> > but x_1 and x_2 are not compatible with each other.
> 
> I disagree.  The relevant line is
> 
> If one is declared with a tag, the other shall be declared with the
> same tag.
> 
> which clearly implies all 3 are mutually incompatible.

Hey, I think you're right!  You should check to see whether that's
what the code implements.


In any case, it's still not transitive, because 'bar' in:

struct foo;
struct bar { 
  struct foo *f;
};

is compatible with

struct foo { int a; };
struct bar { 
  struct foo *f;
};

and

struct foo { int b; };
struct bar { 
  struct foo *f;
};

but they are not compatible with each other.

-- 
- Geoffrey Keating <geoffk@geoffk.org>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]