Re: [PATCH v2 4/5] powerpc: Fix duplicate const clang warning in user access code
From: Joel Stanley <joel@jms.id.au>
Date: 2018-09-19 07:46:00
On Sat, 15 Sep 2018 at 03:27, Nick Desaulniers [off-list ref] wrote:
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' declaration specifier [-Wduplicate-decl-specifier] ret = __get_user(c, uaddr); The problem is we are doing const __typeof__(*(ptr)), which will hit the 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>
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. https://reviews.llvm.org/D52248 Cheers, Joel