Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1643044

Re: [PATCH 2/2] kbuild: clang: Disable the 'duplicate-decl-specifier' warning

From Arnd Bergmann <arnd@arndb.de>
Newsgroups linux.kernel
Subject Re: [PATCH 2/2] kbuild: clang: Disable the 'duplicate-decl-specifier' warning
Date 2017-05-17 09:40 +0200
Message-ID <tI1IS-8F-15@gated-at.bofh.it> (permalink)
References <tyOBc-2u9-23@gated-at.bofh.it> <tyOBc-2u9-37@gated-at.bofh.it> <tHSvU-2D0-13@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Tue, May 16, 2017 at 11:41 PM, Doug Anderson <dianders@chromium.org> wrote:
> Hi
>
> On Fri, Apr 21, 2017 at 2:39 PM, Matthias Kaehlcke <mka@chromium.org> wrote:
>> clang generates plenty of these warnings in different parts of the code.
>> They are mostly caused by container_of() and other macros which declare
>> a "const <type> *" variable for their internal use which triggers a
>> "duplicate 'const' specifier" warning if the <type> is already const
>> qualified.
>>
>> Wording-mostly-from: Michael Davidson <md@google.com>
>> Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
>> ---
>>  Makefile | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/Makefile b/Makefile
>> index df5abf346354..6cd6d428db43 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -704,6 +704,7 @@ KBUILD_CFLAGS += $(call cc-disable-warning, unused-variable)
>>  KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier)
>>  KBUILD_CFLAGS += $(call cc-disable-warning, gnu)
>>  KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
>> +KBUILD_CFLAGS += $(call cc-disable-warning, duplicate-decl-specifier)
>>  # Quiet clang warning: comparison of unsigned expression < 0 is always false
>>  KBUILD_CFLAGS += $(call cc-disable-warning, tautological-compare)
>>  # CLANG uses a _MergedGlobals as optimization, but this breaks modpost, as the
>
> It seems like gcc 7 may have the same warning.  Specifically I saw a
> patch fly by from Arnd, which you can find in Mark Brown's tree now:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git/commit/?h=topic/rt5614&id=03ba791df98d15d07ea74075122af71e35c7611c
>
>
> +Arnd since he may be trying to solve the same issues?

gcc-7 has a warning option with the same name, and I think I have
fixed all the occurrences we got in mainline (some patches my still
be in flight). However, it seems that only clang warns about
'const typeof(type)' with 'type' being already const.

I have not looked at clang warnings in a while, how many of these do
we get overall (aside from container_of)? We might be able
to turn off this particular warning by sprinkling in
'_Pragma("clang diagnostic push") _Pragma("clang diagnostic
ignored \"-Wduplicate-decl-specifier\"")' inside of the macro
(not sure if clang allows it there, gcc-4.4 and earlier I think did
not).

It might also be useful to open a bug against clang so they can
change it in future releases, as the gcc behavior seems more
sensible in this instance.

       Arnd

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: [PATCH 2/2] kbuild: clang: Disable the 'duplicate-decl-specifier' warning Doug Anderson <dianders@chromium.org> - 2017-05-16 23:50 +0200
  Re: [PATCH 2/2] kbuild: clang: Disable the 'duplicate-decl-specifier' warning Arnd Bergmann <arnd@arndb.de> - 2017-05-17 09:40 +0200
    Re: [PATCH 2/2] kbuild: clang: Disable the  'duplicate-decl-specifier' warning Matthias Kaehlcke <mka@chromium.org> - 2017-05-17 20:50 +0200
      Re: [PATCH 2/2] kbuild: clang: Disable the  'duplicate-decl-specifier' warning Matthias Kaehlcke <mka@chromium.org> - 2017-05-24 02:10 +0200
        Re: [PATCH 2/2] kbuild: clang: Disable the 'duplicate-decl-specifier' warning Arnd Bergmann <arnd@arndb.de> - 2017-05-24 10:30 +0200

csiph-web