From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12171 invoked by alias); 22 Jul 2002 06:34:43 -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 12162 invoked from network); 22 Jul 2002 06:34:43 -0000 Received: from unknown (HELO monkey.daikokuya.co.uk) (213.152.55.49) by sources.redhat.com with SMTP; 22 Jul 2002 06:34:43 -0000 Received: from neil by monkey.daikokuya.co.uk with local (Exim 3.35 #1 (Debian)) id 17WWlU-0005on-00; Mon, 22 Jul 2002 07:33:52 +0100 Date: Mon, 22 Jul 2002 05:22:00 -0000 From: Neil Booth To: gcc@gcc.gnu.org Cc: Zack Weinberg Subject: Unused macros warning? Message-ID: <20020722063352.GA22349@daikokuya.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4i X-SW-Source: 2002-07/txt/msg01007.txt.bz2 I made a local modification to cpplib so that, if -Wunused, it reports all macros defined in the main file that are unused, or unused before being #undef-ed. Might this be a useful addition to mainline? It shouldn't be in -Wall, as it involves a slightly expensive hashtable walk at the end of preprocessing which most users wouldn't want to pay for, but could be enabled with the front ends' -Wunused, say. Long-term, it would be nice if cpplib could tell you if any header you include is not used for any purpose. The kernel guys have wanted this feature for a long time. I think it's not too hard, once the front end uses logical lines internally; it then just becomes a matter of reporting a line as "used" when something from it (like a macro, struct, typedef etc.) is used, and letting cpplib use the line maps to convert that to file usage, and doing a quick pass over the linemap structures at the end of preprocessing. Neil.