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


Groups > linux.kernel > #1671527 > unrolled thread

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

Started byMasahiro Yamada <yamada.masahiro@socionext.com>
First post2017-06-21 11:20 +0200
Last post2017-06-21 23:20 +0200
Articles 5 — 3 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH 2/2] kbuild: clang: Disable the 'duplicate-decl-specifier' warning Masahiro Yamada <yamada.masahiro@socionext.com> - 2017-06-21 11:20 +0200
    Re: [PATCH 2/2] kbuild: clang: Disable the 'duplicate-decl-specifier' warning Arnd Bergmann <arnd@arndb.de> - 2017-06-21 12:20 +0200
      Re: [PATCH 2/2] kbuild: clang: Disable the  'duplicate-decl-specifier' warning Matthias Kaehlcke <mka@chromium.org> - 2017-06-21 19:00 +0200
        Re: [PATCH 2/2] kbuild: clang: Disable the 'duplicate-decl-specifier' warning Arnd Bergmann <arnd@arndb.de> - 2017-06-21 20:10 +0200
          Re: [PATCH 2/2] kbuild: clang: Disable the  'duplicate-decl-specifier' warning Matthias Kaehlcke <mka@chromium.org> - 2017-06-21 23:20 +0200

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

FromMasahiro Yamada <yamada.masahiro@socionext.com>
Date2017-06-21 11:20 +0200
SubjectRe: [PATCH 2/2] kbuild: clang: Disable the 'duplicate-decl-specifier' warning
Message-ID<tUJXQ-4eI-23@gated-at.bofh.it>
Hi.


2017-05-24 17:21 GMT+09:00 Arnd Bergmann <arnd@arndb.de>:
> On Wed, May 24, 2017 at 2:04 AM, Matthias Kaehlcke <mka@chromium.org> wrote:
>> El Wed, May 17, 2017 at 11:45:29AM -0700 Matthias Kaehlcke ha dit:
>>> El Wed, May 17, 2017 at 09:35:57AM +0200 Arnd Bergmann ha dit:
>>> > On Tue, May 16, 2017 at 11:41 PM, Doug Anderson <dianders@chromium.org> wrote:
>> It seems the duplicate-decl-specifier warning targets specifically C89:
>>
>> "The same type qualifier shall not appear more than once in the same
>> specifier list or qualifier list, either directly or via one or more
>> typedefs."
>>
>> C89 (6.5.3)
>>
>> gcc also raises a warning when '-pedantic' is specified and
>> -std=gnu89/c89 (or unspecified), but not with -std=gnu99/c99.
>>
>> This bug might help to shed more light on this:
>> https://bugs.llvm.org/show_bug.cgi?id=32985
>
> I also notice that neither compiler differentiates between a)
>
> typedef const int cint;
> const cint i;
>
> and b)
> const int i;
> const typeof(a) j;
>
> I would have expected a warning for a) but not b), but both 'clang --std=gnu89'
> and 'gcc --pedantic --std=gnu89' warn about both of b as well, and don't warn
> for newer standards.
>
>        Arnd




I think we agreed to apply 1/2.

How about 2/2?

I think we mostly discussed preferable behavior of -Wduplicate-decl-specifier,
but we did not come up with an idea to solve the problem for
already shipped clang versions.
(BTW, we have not defined the minimal supported version of clang yet.)


-- 
Best Regards
Masahiro Yamada

[toc] | [next] | [standalone]


#1671593

FromArnd Bergmann <arnd@arndb.de>
Date2017-06-21 12:20 +0200
Message-ID<tUKTU-4Pr-21@gated-at.bofh.it>
In reply to#1671527
On Wed, Jun 21, 2017 at 11:11 AM, Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
> 2017-05-24 17:21 GMT+09:00 Arnd Bergmann <arnd@arndb.de>:
>> On Wed, May 24, 2017 at 2:04 AM, Matthias Kaehlcke <mka@chromium.org> wrote:
>>> El Wed, May 17, 2017 at 11:45:29AM -0700 Matthias Kaehlcke ha dit:
>>>> El Wed, May 17, 2017 at 09:35:57AM +0200 Arnd Bergmann ha dit:
>>>> > On Tue, May 16, 2017 at 11:41 PM, Doug Anderson <dianders@chromium.org> wrote:
>>> It seems the duplicate-decl-specifier warning targets specifically C89:
>>>
>>> "The same type qualifier shall not appear more than once in the same
>>> specifier list or qualifier list, either directly or via one or more
>>> typedefs."
>>>
>>> C89 (6.5.3)
>>>
>>> gcc also raises a warning when '-pedantic' is specified and
>>> -std=gnu89/c89 (or unspecified), but not with -std=gnu99/c99.
>>>
>>> This bug might help to shed more light on this:
>>> https://bugs.llvm.org/show_bug.cgi?id=32985
>>
>> I also notice that neither compiler differentiates between a)
>>
>> typedef const int cint;
>> const cint i;
>>
>> and b)
>> const int i;
>> const typeof(a) j;
>>
>> I would have expected a warning for a) but not b), but both 'clang --std=gnu89'
>> and 'gcc --pedantic --std=gnu89' warn about both of b as well, and don't warn
>> for newer standards.
>>
>>        Arnd
>
>
>
>
> I think we agreed to apply 1/2.
>
> How about 2/2?
>
> I think we mostly discussed preferable behavior of -Wduplicate-decl-specifier,
> but we did not come up with an idea to solve the problem for
> already shipped clang versions.
> (BTW, we have not defined the minimal supported version of clang yet.)

I see that container_of() has been modified in linux-next and no longer adds
the 'const' keyword, do we actually still need the patch?

        Arnd

[toc] | [prev] | [next] | [standalone]


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

FromMatthias Kaehlcke <mka@chromium.org>
Date2017-06-21 19:00 +0200
SubjectRe: [PATCH 2/2] kbuild: clang: Disable the 'duplicate-decl-specifier' warning
Message-ID<tUR90-eq-19@gated-at.bofh.it>
In reply to#1671593
El Wed, Jun 21, 2017 at 12:11:55PM +0200 Arnd Bergmann ha dit:

> On Wed, Jun 21, 2017 at 11:11 AM, Masahiro Yamada
> <yamada.masahiro@socionext.com> wrote:
> > 2017-05-24 17:21 GMT+09:00 Arnd Bergmann <arnd@arndb.de>:
> >> On Wed, May 24, 2017 at 2:04 AM, Matthias Kaehlcke <mka@chromium.org> wrote:
> >>> El Wed, May 17, 2017 at 11:45:29AM -0700 Matthias Kaehlcke ha dit:
> >>>> El Wed, May 17, 2017 at 09:35:57AM +0200 Arnd Bergmann ha dit:
> >>>> > On Tue, May 16, 2017 at 11:41 PM, Doug Anderson <dianders@chromium.org> wrote:
> >>> It seems the duplicate-decl-specifier warning targets specifically C89:
> >>>
> >>> "The same type qualifier shall not appear more than once in the same
> >>> specifier list or qualifier list, either directly or via one or more
> >>> typedefs."
> >>>
> >>> C89 (6.5.3)
> >>>
> >>> gcc also raises a warning when '-pedantic' is specified and
> >>> -std=gnu89/c89 (or unspecified), but not with -std=gnu99/c99.
> >>>
> >>> This bug might help to shed more light on this:
> >>> https://bugs.llvm.org/show_bug.cgi?id=32985
> >>
> >> I also notice that neither compiler differentiates between a)
> >>
> >> typedef const int cint;
> >> const cint i;
> >>
> >> and b)
> >> const int i;
> >> const typeof(a) j;
> >>
> >> I would have expected a warning for a) but not b), but both 'clang --std=gnu89'
> >> and 'gcc --pedantic --std=gnu89' warn about both of b as well, and don't warn
> >> for newer standards.
> >>
> >>        Arnd
> >
> >
> >
> >
> > I think we agreed to apply 1/2.
> >
> > How about 2/2?
> >
> > I think we mostly discussed preferable behavior of -Wduplicate-decl-specifier,
> > but we did not come up with an idea to solve the problem for
> > already shipped clang versions.
> > (BTW, we have not defined the minimal supported version of clang yet.)

I think it will have to be a future version. There is still an issue
affecting at least llist_for_each_entry_safe(), where clang optimizes
away a check for check for a NULL pointer. For gcc this optimization
is switched off with -fno-delete-null-pointer-check, clang currently
does not have this flag or an equivalent.

For now a workaround like this is needed for newer kernels:

https://android-git.linaro.org/kernel/hikey-clang.git/commit/?h=android-hikey-linaro-4.9-clang&id=4f3c3c1e7b153e333603be74d786d79bb872e8ff

For arm64 at least one other clang fix is missing, to make
-mgeneral-regs-only consistent with gcc
(https://bugs.llvm.org/show_bug.cgi?id=30792)

> I see that container_of() has been modified in linux-next and no longer adds
> the 'const' keyword, do we actually still need the patch?

There is still (at least) the case of const arrays passed to
MODULE_DEVICE_TABLE.

[toc] | [prev] | [next] | [standalone]


#1671877

FromArnd Bergmann <arnd@arndb.de>
Date2017-06-21 20:10 +0200
Message-ID<tUSeK-1fP-33@gated-at.bofh.it>
In reply to#1671809
On Wed, Jun 21, 2017 at 6:58 PM, Matthias Kaehlcke <mka@chromium.org> wrote:
> El Wed, Jun 21, 2017 at 12:11:55PM +0200 Arnd Bergmann ha dit:
>> I see that container_of() has been modified in linux-next and no longer adds
>> the 'const' keyword, do we actually still need the patch?
>
> There is still (at least) the case of const arrays passed to
> MODULE_DEVICE_TABLE.

Does the 'const' have any effect there? As it's just an alias, it
should at least
not impact the placement of the symbol in the object file, right? Maybe we can
just remove that 'const' too. Do you see any other instances?

       Arnd

[toc] | [prev] | [next] | [standalone]


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

FromMatthias Kaehlcke <mka@chromium.org>
Date2017-06-21 23:20 +0200
SubjectRe: [PATCH 2/2] kbuild: clang: Disable the 'duplicate-decl-specifier' warning
Message-ID<tUVcC-3k9-45@gated-at.bofh.it>
In reply to#1671877
El Wed, Jun 21, 2017 at 07:59:42PM +0200 Arnd Bergmann ha dit:

> On Wed, Jun 21, 2017 at 6:58 PM, Matthias Kaehlcke <mka@chromium.org> wrote:
> > El Wed, Jun 21, 2017 at 12:11:55PM +0200 Arnd Bergmann ha dit:
> >> I see that container_of() has been modified in linux-next and no longer adds
> >> the 'const' keyword, do we actually still need the patch?
> >
> > There is still (at least) the case of const arrays passed to
> > MODULE_DEVICE_TABLE.
> 
> Does the 'const' have any effect there? As it's just an alias, it
> should at least
> not impact the placement of the symbol in the object file, right?

I agree, it shouldn't make a difference.

> Maybe we can just remove that 'const' too.

Seems worth a try. Do you want to send a patch for the removal?

> Do you see any other instances?

For both x86 and arm64 defconfig the instances are all from
container_of() or MODULE_DEVICE_TABLE.

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web