Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1671527 > unrolled thread
| Started by | Masahiro Yamada <yamada.masahiro@socionext.com> |
|---|---|
| First post | 2017-06-21 11:20 +0200 |
| Last post | 2017-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.
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
| From | Masahiro Yamada <yamada.masahiro@socionext.com> |
|---|---|
| Date | 2017-06-21 11:20 +0200 |
| Subject | Re: [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]
| From | Arnd Bergmann <arnd@arndb.de> |
|---|---|
| Date | 2017-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]
| From | Matthias Kaehlcke <mka@chromium.org> |
|---|---|
| Date | 2017-06-21 19:00 +0200 |
| Subject | Re: [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]
| From | Arnd Bergmann <arnd@arndb.de> |
|---|---|
| Date | 2017-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]
| From | Matthias Kaehlcke <mka@chromium.org> |
|---|---|
| Date | 2017-06-21 23:20 +0200 |
| Subject | Re: [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