From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28818 invoked by alias); 27 Jul 2005 12:42:41 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 28674 invoked by uid 22791); 27 Jul 2005 12:42:28 -0000 Received: from h-68-164-203-246.nycmny83.covad.net (HELO dberlin.org) (68.164.203.246) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Wed, 27 Jul 2005 12:42:28 +0000 Received: from [127.0.0.1] (HELO localhost) by dberlin.org (CommuniGate Pro SMTP 4.3.4) with ESMTP id 8240245; Wed, 27 Jul 2005 08:42:25 -0400 Subject: Re: Latent PTA bug? From: Daniel Berlin To: Richard Guenther Cc: Diego Novillo , gcc@gcc.gnu.org In-Reply-To: References: Content-Type: text/plain Date: Wed, 27 Jul 2005 12:42:00 -0000 Message-Id: <1122468144.7683.37.camel@linux.site> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-SW-Source: 2005-07/txt/msg01128.txt.bz2 On Wed, 2005-07-27 at 13:08 +0200, Richard Guenther wrote: > Hi all! > > I reduced my array aliasing libstdc++ failures to the following > testcase: > > struct iterator > { > int* ptr; > iterator(int* _ptr) : ptr(_ptr) {} > }; > > struct container { > int* first; > container(int* _first) : first(_first) {} > iterator begin() { return iterator(first); } > }; > > bool includes(const iterator&); > > bool test4() > { > int array[] = {2, 4}; > container con(array); > return includes(con.begin()); > } > > the weird thing now is, that the alias1 dump contains > > # SFT.2_19 = V_MAY_DEF ; > # SFT.4_20 = V_MAY_DEF ; > D.1797_16 = includes (&D.1794); We get this right, you are doing something wrong in the conversion: PTA calculates the set to be (in alias2): _ptr_8 = { array } and in alias1: _ptr_9 = { array } Which is right. It looks like you aren't converting your new subvars right, or something. --Dan