From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7065 invoked by alias); 1 Dec 2010 10:13:01 -0000 Received: (qmail 7046 invoked by uid 22791); 1 Dec 2010 10:13:01 -0000 X-SWARE-Spam-Status: No, hits=-2.8 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 01 Dec 2010 10:12:55 +0000 From: "rguenther at suse dot de" To: gcc-bugs@gcc.gnu.org Subject: [Bug middle-end/46488] [4.5 regression] server/core_filters.c from apache httpd 2.2.17 miscompiled at -O3 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: middle-end X-Bugzilla-Keywords: X-Bugzilla-Severity: major X-Bugzilla-Who: rguenther at suse dot de X-Bugzilla-Status: ASSIGNED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: ebotcazou at gcc dot gnu.org X-Bugzilla-Target-Milestone: 4.5.2 X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Date: Wed, 01 Dec 2010 10:13:00 -0000 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: 2010-12/txt/msg00018.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46488 --- Comment #36 from rguenther at suse dot de 2010-12-01 10:12:21 UTC --- On Tue, 30 Nov 2010, ebotcazou at gcc dot gnu.org wrote: > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46488 > > --- Comment #35 from Eric Botcazou 2010-11-30 23:25:57 UTC --- > > I said in my comment that adding temporaries could correct the issue, > > but they do not. I had some different test trees, and reviewing them, > > what actually "corrected" in one of the builds was adding a volatile > > modifier to APR_RING_HEAD, as in: > > > > #define APR_RING_HEAD(head, elem) \ > > struct head { \ > > struct elem * volatile next; \ > > struct elem * volatile prev; \ > > } > > > > to better match APR_RING_ENTRY. > > Probably a reasonable workaround. Having 2 different constructs APR_RING_ENTRY > and APR_RING_HEAD for the same object is strange in any case. If you'd re-use the same type the issue would go away as well (I think). Richard.