From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15058 invoked by alias); 30 Nov 2010 15:11:35 -0000 Received: (qmail 15044 invoked by uid 22791); 30 Nov 2010 15:11:34 -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; Tue, 30 Nov 2010 15:11:30 +0000 From: "ebotcazou at gcc dot gnu.org" 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: ebotcazou at gcc dot gnu.org 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: Tue, 30 Nov 2010 15:18: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-11/txt/msg03686.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46488 --- Comment #32 from Eric Botcazou 2010-11-30 15:10:58 UTC --- The problem appears to be deeply rooted in the Ring construct, more precisely in the HEAD trick. IIUC the idea is to "attach" a doubly-linked list to another structure by means of a "virtual" member overlaid on top of the structure; the only thing they actually share is a special APR_RING_ENTRY (the APR_RING_HEAD). But this overlay fundamentally violates the aliasing rules even if one try to narrow the accesses to just the shared part. Richard, is that how the aliasing rules are implemented in the 4.5.x series? Has this been changed in 4.6.0?