Thread (26 messages) flat view 26 messages, 7 authors, 2018-09-20

Re: [PATCH v2 4/5] powerpc: Fix duplicate const clang warning in user access code

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2018-09-20 12:35:47

Christophe LEROY [off-list ref] writes:
Le 19/09/2018 =C3=A0 09:45, Joel Stanley a =C3=A9crit=C2=A0:
quoted
On Sat, 15 Sep 2018 at 03:27, Nick Desaulniers [off-list ref]=
 wrote:
quoted
quoted
On Thu, Sep 13, 2018 at 9:07 PM Joel Stanley [off-list ref] wrote:
quoted
From: Anton Blanchard <redacted>

This re-applies b91c1e3e7a6f which was reverted in f2ca80905929
d466f6c5cac1 f84ed59a612d (powerpc/sparse: Constify the address pointer
...").

We see a large number of duplicate const errors in the user access
code when building with llvm/clang:

   include/linux/pagemap.h:576:8: warning: duplicate 'const' declarati=
on specifier
quoted
quoted
quoted
       [-Wduplicate-decl-specifier]
         ret =3D __get_user(c, uaddr);

The problem is we are doing const __typeof__(*(ptr)), which will hit t=
he
quoted
quoted
quoted
warning if ptr is marked const.

Removing const does not seem to have any effect on GCC code generation.
I wouldn't expect it to for a local variable with such localized
usage.  I myself am quite liberal in applying `const` to everything,
so I will try to fix this in Clang as well, but this should silence
the warning for users of older versions of Clang and results in no
functional change.
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
=20
Nick has written a clang patch that suppresses the warning in the same
way as GCC. Assuming it gets merged, as we depend on clang-8 we could
chose to not merge the kernel patch.
=20
https://reviews.llvm.org/D52248
Seems like Michael has merged this patch anyway.
I'll happily revert it though if someone tells me to.

cheers
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help