This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
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>