From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1035897AbdEXVWc (ORCPT ); Wed, 24 May 2017 17:22:32 -0400 Received: from mail-pf0-f175.google.com ([209.85.192.175]:36305 "EHLO mail-pf0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1033614AbdEXVWb (ORCPT ); Wed, 24 May 2017 17:22:31 -0400 Date: Wed, 24 May 2017 14:22:29 -0700 From: Matthias Kaehlcke To: David Rientjes Cc: Andrew Morton , Christoph Lameter , Pekka Enberg , Joonsoo Kim , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Douglas Anderson , Mark Brown , Ingo Molnar , David Miller Subject: Re: [patch] compiler, clang: suppress warning for unused static inline functions Message-ID: <20170524212229.GR141096@google.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org El Wed, May 24, 2017 at 02:01:15PM -0700 David Rientjes ha dit: > GCC explicitly does not warn for unused static inline functions for > -Wunused-function. The manual states: > > Warn whenever a static function is declared but not defined or > a non-inline static function is unused. > > Clang does warn for static inline functions that are unused. > > It turns out that suppressing the warnings avoids potentially complex > #ifdef directives, which also reduces LOC. > > Supress the warning for clang. > > Signed-off-by: David Rientjes > --- As expressed earlier in other threads, I don't think gcc's behavior is preferable in this case. The warning on static inline functions (only in .c files) allows to detect truly unused code. About 50% of the warnings I have looked into so far fall into this category. In my opinion it is more valuable to detect dead code than not having a few more __maybe_unused attributes (there aren't really that many instances, at least with x86 and arm64 defconfig). In most cases it is not necessary to use #ifdef, it is an option which is preferred by some maintainers. The reduced LOC is arguable, since dectecting dead code allows to remove it. I'm not a kernel maintainer, so it's not my decision whether this warning should be silenced, my personal opinion is that it's benfits outweigh the inconveniences of dealing with half-false positives, generally caused by the heavy use of #ifdef by the kernel itself.