From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12418 invoked by alias); 28 Apr 2002 21:58:00 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 12391 invoked from network); 28 Apr 2002 21:57:57 -0000 Received: from unknown (HELO executor.cambridge.redhat.com) (195.224.55.237) by sources.redhat.com with SMTP; 28 Apr 2002 21:57:57 -0000 Received: from prospero.cambridge.redhat.com (dell-paw-2.cambridge.redhat.com [195.224.55.226]) by executor.cambridge.redhat.com (Postfix) with ESMTP id 1109CABB03; Sun, 28 Apr 2002 22:57:56 +0100 (BST) Received: by prospero.cambridge.redhat.com (Postfix, from userid 4046) id B1D7CF7B7B; Sun, 28 Apr 2002 22:57:55 +0100 (BST) To: Franz Sirl Cc: gcc-patches@gcc.gnu.org, Richard Henderson , Alan Modra , Mark Mitchell , gcc@gcc.gnu.org Subject: Re: [PATCH] Fix PR c/6343 (was: Re: GCC 3.1 Prerelease) References: <5.1.1.2.2.20020423130143.04a21008@mail.lauterbach.com> <200204252121.58902@enzo.bigblue.local> <200204281640.27693@enzo.bigblue.local> From: Jason Merrill In-Reply-To: <200204281640.27693@enzo.bigblue.local> (Franz Sirl's message of "Sun, 28 Apr 2002 16:40:27 +0200") Date: Sun, 28 Apr 2002 15:00:00 -0000 Message-ID: User-Agent: Gnus/5.090004 (Oort Gnus v0.04) Emacs/21.1 (i686-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2002-04/txt/msg01514.txt.bz2 >>>>> "Franz" == Franz Sirl writes: > + if (SUPPORTS_WEAK > + && DECL_EXTERNAL (newdecl) && DECL_EXTERNAL (olddecl) > + && (TREE_CODE (decl) != VAR_DECL > + || ! TREE_STATIC (decl)) > + && TREE_USED (decl) > + && TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl))) > + warning_with_decl (decl, "weak declaration of `%s' after first use may result in unspecified behaviour"); I intended that TREE_SYMBOL_REFERENCED should be used rather than TREE_USED, not in addition. I'd probably check DECL_ASSEMBLER_NAME_SET_P here, too; if the name hasn't been generated, it hasn't been referenced. Perhaps we want a new macro, say #define DECL_SYMBOL_REFERENCED(DECL) \ (DECL_ASSEMBLER_NAME_SET_P (DECL) \ && TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (DECL))) Thanks, Jason