This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: IMA vs tree-ssa
- From: Joe Buck <Joe dot Buck at synopsys dot COM>
- To: Gabriel Dos Reis <gdr at integrable-solutions dot net>
- Cc: Mark Mitchell <mark at codesourcery dot com>,Neil Booth <neil at daikokuya dot co dot uk>, Geoff Keating <geoffk at geoffk dot org>,Richard Henderson <rth at redhat dot com>, GCC List <gcc at gcc dot gnu dot org>
- Date: Mon, 8 Mar 2004 15:32:08 -0800
- Subject: Re: IMA vs tree-ssa
- References: <F0209661-68A9-11D8-8C0E-000A95D7CD40@apple.com> <20040226230842.GA28463@redhat.com> <jmwu698lfu.fsf@desire.geoffk.org> <20040227211712.GB16448@daikokuya.co.uk> <jmoerk8ae8.fsf@desire.geoffk.org> <20040227220212.GC16448@daikokuya.co.uk> <404CF3C5.4070803@codesourcery.com> <m3n06rlzgj.fsf@uniton.integrable-solutions.net>
Mark Mitchell <mark@codesourcery.com> writes:
> | I strongly expect that their intention was to create a requirement
> | that compatibility be an equivalence relation.
I'm just going to highlight one section of Gaby's reply:
On Mon, Mar 08, 2004 at 11:57:00PM +0100, Gabriel Dos Reis wrote:
> [#2] All declarations that refer to the same object or
> function shall have compatible type; otherwise, the behavior
> is undefined.
This would seem to suggest that in the situations where non-transitive
behavior would otherwise result (for example, an incomplete struct type is
compatible with two distinct and incompatible definitions of that struct
type), and this matters (for the purpose of aliasing analysis, for
example), we have undefined behavior, so the compiler should be able to
act as though this situation does not arise and assume transitivity.