From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31336 invoked by alias); 24 Mar 2006 04:00:29 -0000 Received: (qmail 31290 invoked by alias); 24 Mar 2006 04:00:27 -0000 Date: Fri, 24 Mar 2006 04:00:00 -0000 Message-ID: <20060324040027.31289.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/25737] [4.1/4.2 Regression] ACATS tests c974001 and c974013 do not terminate with struct aliasing In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "dberlin at dberlin dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2006-03/txt/msg02427.txt.bz2 List-Id: ------- 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