From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 86410 invoked by alias); 18 May 2015 14:02:38 -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 Received: (qmail 86357 invoked by uid 48); 18 May 2015 14:02:33 -0000 From: "marxin at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/66163] [6 Regression] Not working Firefox built with LTO Date: Mon, 18 May 2015 14:02:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: tree-optimization X-Bugzilla-Version: 6.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: marxin at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: hubicka at ucw dot cz X-Bugzilla-Target-Milestone: 6.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-05/txt/msg01378.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D66163 --- Comment #6 from Martin Li=C5=A1ka --- According to -fsanitize=3Dnull, there are many places in Firefox that produ= ce undefined behavior in followin way: https://bugzilla.mozilla.org/show_bug.cgi?id=3D1165904 One common example: static size_t offsetOfThis() { JitFrameLayout* base =3D nullptr; return reinterpret_cast(&base->argv()[0]); } Martin >>From gcc-bugs-return-486539-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Mon May 18 14:28:21 2015 Return-Path: Delivered-To: listarch-gcc-bugs@gcc.gnu.org Received: (qmail 17732 invoked by alias); 18 May 2015 14:28:21 -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 Delivered-To: mailing list gcc-bugs@gcc.gnu.org Received: (qmail 17694 invoked by uid 48); 18 May 2015 14:28:17 -0000 From: "dje at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/66192] New: C++ static initializer unnecessary __cxa_guard_acquire for TARGET_RELAXED_ORDERING Date: Mon, 18 May 2015 14:28:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Version: 6.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: dje at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter target_milestone Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-05/txt/msg01379.txt.bz2 Content-length: 919 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66192 Bug ID: 66192 Summary: C++ static initializer unnecessary __cxa_guard_acquire for TARGET_RELAXED_ORDERING Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: dje at gcc dot gnu.org Target Milestone: --- // static_init.cc int* f(void) { static int* p = new int; return p; } $ g++ -O2 -S -fno-exceptions static_init.cc generates an unnecessary call to __cxa_guard_acquire on what should be the fast path for targets with TARGET_RELAXED_ORDERING defined. The guard should be an atomic variable accessed with the equivalent of __atomic_load(ACQUIRE) instead of a heavy-weight __cxa_guard_acquire() call invoking heavier-weight synchronization.