From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1618 invoked by alias); 26 Jan 2015 11:06:01 -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 1522 invoked by uid 48); 26 Jan 2015 11:05:53 -0000 From: "redi at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug libstdc++/64504] Invalid free() with _GLIBCXX_DEBUG and -fwhole-program Date: Mon, 26 Jan 2015 11:06:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: libstdc++ X-Bugzilla-Version: 4.9.2 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: redi at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED 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: Message-ID: In-Reply-To: References: 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-01/txt/msg02827.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64504 --- Comment #5 from Jonathan Wakely --- (In reply to Andrey Vihrov from comment #2) > , and there is no warning without -fwhole-program. Of course, I can get the > same effect by making everything "static", but this depends on me > remembering to do it, so this option is better in this regard. -flto doesn't > have the same effect. This is not what -fwhole-program is for, you're just using it for a side-effect that happens as a result of making everything static. So my suggestion would be "don't do that". If you have a single file how hard can it be to remember to make your globals static? How many of them do you have?! Just enclosing them in an anonymous namespace would work, and then all you have to remember to do is add new globals inside that scope, not elsewhere in the file.