------- Comment #20 from dberlin at gcc dot gnu dot org  2006-03-24 04:00 
-------
Subject: Re:  [4.1/4.2 Regression] ACATS tests
        c974001 and c974013 do not terminate with struct aliasing

On Thu, 2006-03-23 at 22:21 +0000, ebotcazou at gcc dot gnu dot org
wrote:
> 
> ------- Comment #17 from ebotcazou at gcc dot gnu dot org  2006-03-23 22:21 
> -------
> > Errr, but that would make it non-addressable, and thus, non-aliasable,
> > which is the exact opposite effect of what is causing the problem.
> 
> Take a look at alias.c:record_component_aliases. :-)

Yeah, and that has nothing to do with the problem..
Really.

You think it's going to make it use the parent's alias set and make, and
this may be true for type based aliasing.

However, either the documentation for the flag is completely wrong, or
you could just give these things their own alias set if it's not
addressable, since no pointer can alias it.

That is what it means to be non-addressable.  If nothing can take the
address, then it can't be pointed to.  It does not mean "it's really
still addressable through some parent pointer magic blah blah blah".  At
least, in *any other definition we use in the compiler".

If you can get a pointer to it, then by the  definition you "an address
of the component can be formed", and htus, it would not be
DECL_NONADDRESSABLE_P.

Thus, making PTA using this flag would make your problem *worse*, not
better.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25737

Reply via email to