From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25444 invoked by alias); 4 Feb 2009 12:26:23 -0000 Received: (qmail 25403 invoked by uid 48); 4 Feb 2009 12:26:13 -0000 Date: Wed, 04 Feb 2009 12:26:00 -0000 Message-ID: <20090204122613.25402.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/39074] PTA constraint processing for *x = y is wrong In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "rguenth at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2009-02/txt/msg00332.txt.bz2 ------- Comment #10 from rguenth at gcc dot gnu dot org 2009-02-04 12:26 ------- This one fails on trunk (where we fall back to anything for empty points-to sets, so just add some unrelated &j and the vops are wrong): int i; long __attribute__((noinline,const)) bar(int ***p) { return (long)p; } void __attribute__((noinline)) foo(void) { int j; int *y = &j; int **a = &y, **x; int ***p; long b; b = bar(&a); p = (int ***)b; x = *p; *x = &i; *y = 0; } extern void abort (void); int main() { i = 1; foo (); if (i != 0) abort (); return 0; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39074