From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3593 invoked by alias); 23 Mar 2006 11:09:00 -0000 Received: (qmail 3543 invoked by uid 48); 23 Mar 2006 11:08:55 -0000 Date: Thu, 23 Mar 2006 11:09:00 -0000 Message-ID: <20060323110855.3542.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 enabled 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-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2006-03/txt/msg02317.txt.bz2 List-Id: ------- Comment #9 from rguenth at gcc dot gnu dot org 2006-03-23 11:08 ------- Yay. Reduced testcase: extern void abort (void); struct delay_block { struct delay_block *succ; }; static struct delay_block Timer_Queue; struct delay_block* time_enqueue (struct delay_block *d) { struct delay_block *q = Timer_Queue.succ; d->succ = (void *)0; return Timer_Queue.succ; } int main(void) { Timer_Queue.succ = &Timer_Queue; if (time_enqueue (&Timer_Queue) != (void*)0) abort (); return 0; } Pointed-to sets for pointers in time_enqueue d_3, is dereferenced, its value escapes, points-to anything SFT.0_1 q_2 D.1529_4, its value escapes _5 # VUSE ; q_2 = Timer_Queue.succ; # SMT.5_7 = V_MAY_DEF ; d_3->succ = 0B; # VUSE ; D.1529_4 = Timer_Queue.succ; -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|ACATS tests c974001 and |[4.1/4.2 Regression] ACATS |c974013 do not terminate |tests c974001 and c974013 do |with struct aliasing enabled|not terminate with struct | |aliasing enabled http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25737