lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20241108172920.GB2564051@thelio-3990X>
Date: Fri, 8 Nov 2024 10:29:20 -0700
From: Nathan Chancellor <nathan@...nel.org>
To: "H. Peter Anvin" <hpa@...or.com>
Cc: Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
	Thomas Gleixner <tglx@...utronix.de>, linux-kernel@...r.kernel.org,
	llvm@...ts.linux.dev, Ingo Molnar <mingo@...hat.com>,
	Borislav Petkov <bp@...en8.de>,
	Dave Hansen <dave.hansen@...ux.intel.com>, x86@...nel.org,
	Nick Desaulniers <ndesaulniers@...gle.com>,
	Bill Wendling <morbo@...gle.com>,
	Justin Stitt <justinstitt@...gle.com>,
	Dave Hansen <dave.hansen@...el.com>
Subject: Re: [PATCH v5 1/1] x86/cpu: Make sure flag_is_changeable_p() is
 always being used

On Fri, Nov 08, 2024 at 04:48:16PM +0100, H. Peter Anvin wrote:
> On November 8, 2024 4:41:16 PM GMT+01:00, Andy Shevchenko <andriy.shevchenko@...ux.intel.com> wrote:
> >On Fri, Nov 08, 2024 at 04:35:17PM +0100, H. Peter Anvin wrote:
> >> On November 8, 2024 4:30:10 PM GMT+01:00, Andy Shevchenko <andriy.shevchenko@...ux.intel.com> wrote:
> >
> >> >See also commit 6863f5643dd7 ("kbuild: allow Clang to find unused static
> >> >inline functions for W=1 build").
> >
> >^^^ (1)
> >
> >> Looks good to me:
> >> 
> >> Reviewed-by: H. Peter Anvin (Intel) <hpa@...or.com>
> >
> >Thank you!
> >
> >> But another question: why the hell does clang complain about an unused static inline function?!
> >
> >Does (1) shed a bit of light to this?
> >
> 
> How on earth is that supposed to work?! We have static inline functions in headers all over the place that are only used in certain circumstances. 
> 
> Is this a good thing, really? Or is it noise?

Did you read the commit message of 6863f5643dd7 or just the title?

The difference between Clang and GCC is only around static inline
function in .c files, not .h files.

  $ cat test.h
  static inline void unused_inline_in_h(void) {}

  $ cat test.c
  #include "test.h"

  static inline void unused_inline_in_c(void) {}

  static void unused_in_c(void) {}

  $ gcc -Wall -c -o /dev/null test.c
  test.c:5:13: warning: ‘unused_in_c’ defined but not used [-Wunused-function]
      5 | static void unused_in_c(void) {}
        |             ^~~~~~~~~~~

  $ clang -fsyntax-only -Wall test.c
  test.c:3:20: warning: unused function 'unused_inline_in_c' [-Wunused-function]
      3 | static inline void unused_inline_in_c(void) {}
        |                    ^~~~~~~~~~~~~~~~~~
  test.c:5:13: warning: unused function 'unused_in_c' [-Wunused-function]
      5 | static void unused_in_c(void) {}
        |             ^~~~~~~~~~~
  2 warnings generated.

I do not think there are too many instances of unused static inline
functions in .c files but Andy might be able to speak more around how
many instances he has had to fix across the tree. I can see how this
difference can be useful for catching dead code and maybe even making
code cleaner but if it proves to be too much of an annoyance for the
wider community, we could potentially discuss reverting 6863f5643dd7.

Cheers,
Nathan

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ