From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32708 invoked by alias); 10 Mar 2003 15:31:36 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 32686 invoked by uid 48); 10 Mar 2003 15:31:35 -0000 Date: Mon, 10 Mar 2003 15:31:00 -0000 Message-ID: <20030310153135.32685.qmail@sources.redhat.com> To: eriksoe@daimi.au.dk, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org From: bangerth@dealii.org Reply-To: bangerth@dealii.org, eriksoe@daimi.au.dk, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org Subject: Re: middle-end/9998: Lost update on bitfield manipulation via pointer X-SW-Source: 2003-03/txt/msg00477.txt.bz2 List-Id: Synopsis: Lost update on bitfield manipulation via pointer State-Changed-From-To: open->closed State-Changed-By: bangerth State-Changed-When: Mon Mar 10 15:31:35 2003 State-Changed-Why: This was fixed between 3.2 and 3.2.2: g/x> /home/bangerth/bin/gcc-3.2/bin/gcc -ggdb bug1.i -O2 g/x> ./a.out 0 g/x> /home/bangerth/bin/gcc-3.2.2-pre/bin/gcc -ggdb bug1.i -O2 g/x> ./a.out 1 However, you may be violating aliasing rules in your code, by accessing an object of type M as an object of type N. In fact, with gcc3.0.4, the code works as expected by using -fno-strict-aliasing: g/x> /home/bangerth/bin/gcc-3.0.4/bin/gcc -ggdb bug1.i -O0 && ./a.out 1 g/x> /home/bangerth/bin/gcc-3.0.4/bin/gcc -ggdb bug1.i -O2 && ./a.out 0 g/x> /home/bangerth/bin/gcc-3.0.4/bin/gcc -ggdb bug1.i -O2 -fno-strict-aliasing && ./a.out 1 It might therefore well be that the "fix" between 3.2 and 3.2.2 just doesn't exercise rights to optimize, with your code still being faulty. 3.3 and mainline work, by the way. W. http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=9998