Message ID | 20210920084332.5752-1-pmenzel@molgen.mpg.de (mailing list archive) |
---|---|
State | Handled Elsewhere, archived |
Headers | show |
Series | [v3] lib/zlib_inflate/inffast: Check config in C to avoid unused function warning | expand |
Related | show |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/github-powerpc_sparse | success | Successfully ran 4 jobs. |
snowpatch_ozlabs/github-powerpc_clang | success | Successfully ran 7 jobs. |
snowpatch_ozlabs/github-powerpc_kernel_qemu | success | Successfully ran 24 jobs. |
On Mon, Sep 20, 2021 at 10:43:33AM +0200, Paul Menzel wrote: > Building Linux for ppc64le with Ubuntu clang version 12.0.0-3ubuntu1~21.04.1 > shows the warning below. > > arch/powerpc/boot/inffast.c:20:1: warning: unused function 'get_unaligned16' [-Wunused-function] > get_unaligned16(const unsigned short *p) > ^ > 1 warning generated. > > Fix it, by moving the check from the preprocessor to C, so the compiler > sees the use. > > Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de> Reviewed-by: Nathan Chancellor <nathan@kernel.org> Tested-by: Nathan Chancellor <nathan@kernel.org> > --- > v2: Use IS_ENABLED > v3: Use if statement over ternary operator as requested by Christophe > > lib/zlib_inflate/inffast.c | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > > diff --git a/lib/zlib_inflate/inffast.c b/lib/zlib_inflate/inffast.c > index f19c4fbe1be7..2843f9bb42ac 100644 > --- a/lib/zlib_inflate/inffast.c > +++ b/lib/zlib_inflate/inffast.c > @@ -253,13 +253,12 @@ void inflate_fast(z_streamp strm, unsigned start) > > sfrom = (unsigned short *)(from); > loops = len >> 1; > - do > -#ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS > - *sout++ = *sfrom++; > -#else > - *sout++ = get_unaligned16(sfrom++); > -#endif > - while (--loops); > + do { > + if (IS_ENABLED(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS)) > + *sout++ = *sfrom++; > + else > + *sout++ = get_unaligned16(sfrom++); > + } while (--loops); > out = (unsigned char *)sout; > from = (unsigned char *)sfrom; > } else { /* dist == 1 or dist == 2 */ > -- > 2.33.0 >
Dear Linux folks, Am 20.09.21 um 17:45 schrieb Nathan Chancellor: > On Mon, Sep 20, 2021 at 10:43:33AM +0200, Paul Menzel wrote: >> Building Linux for ppc64le with Ubuntu clang version 12.0.0-3ubuntu1~21.04.1 >> shows the warning below. >> >> arch/powerpc/boot/inffast.c:20:1: warning: unused function 'get_unaligned16' [-Wunused-function] >> get_unaligned16(const unsigned short *p) >> ^ >> 1 warning generated. >> >> Fix it, by moving the check from the preprocessor to C, so the compiler >> sees the use. >> >> Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de> > > Reviewed-by: Nathan Chancellor <nathan@kernel.org> > Tested-by: Nathan Chancellor <nathan@kernel.org> > >> --- >> v2: Use IS_ENABLED >> v3: Use if statement over ternary operator as requested by Christophe >> >> lib/zlib_inflate/inffast.c | 13 ++++++------- >> 1 file changed, 6 insertions(+), 7 deletions(-) >> >> diff --git a/lib/zlib_inflate/inffast.c b/lib/zlib_inflate/inffast.c >> index f19c4fbe1be7..2843f9bb42ac 100644 >> --- a/lib/zlib_inflate/inffast.c >> +++ b/lib/zlib_inflate/inffast.c >> @@ -253,13 +253,12 @@ void inflate_fast(z_streamp strm, unsigned start) >> >> sfrom = (unsigned short *)(from); >> loops = len >> 1; >> - do >> -#ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS >> - *sout++ = *sfrom++; >> -#else >> - *sout++ = get_unaligned16(sfrom++); >> -#endif >> - while (--loops); >> + do { >> + if (IS_ENABLED(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS)) >> + *sout++ = *sfrom++; >> + else >> + *sout++ = get_unaligned16(sfrom++); >> + } while (--loops); >> out = (unsigned char *)sout; >> from = (unsigned char *)sfrom; >> } else { /* dist == 1 or dist == 2 */ >> -- >> 2.33.0 Just for the record, I compared both object files by running `objdump -d`, and the result is the same. The binary differed (`vbindiff`), but I guess this is due to the increased revision (`make bindeb-pkg`). without a change (Linus’ current master): 0000 0B50: 00 00 00 00 00 00 00 00 1F 01 00 00 36 00 00 00 ........ ....6... ^ 0000 0B60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 0000 0B70: 00 00 00 00 00 00 00 00 29 01 00 00 32 00 00 00 ........ )...2... ^ v2 (ternary operator): 0000 0B50: 00 00 00 00 00 00 00 00 1C 01 00 00 36 00 00 00 ........ ....6... 0000 0B60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 0000 0B70: 00 00 00 00 00 00 00 00 26 01 00 00 32 00 00 00 ........ &...2... v3 (if-else statement): 0000 0B50: 00 00 00 00 00 00 00 00 1E 01 00 00 36 00 00 00 ........ ....6... 0000 0B60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 0000 0B70: 00 00 00 00 00 00 00 00 28 01 00 00 32 00 00 00 ........ (...2... Kind regards, Paul
diff --git a/lib/zlib_inflate/inffast.c b/lib/zlib_inflate/inffast.c index f19c4fbe1be7..2843f9bb42ac 100644 --- a/lib/zlib_inflate/inffast.c +++ b/lib/zlib_inflate/inffast.c @@ -253,13 +253,12 @@ void inflate_fast(z_streamp strm, unsigned start) sfrom = (unsigned short *)(from); loops = len >> 1; - do -#ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS - *sout++ = *sfrom++; -#else - *sout++ = get_unaligned16(sfrom++); -#endif - while (--loops); + do { + if (IS_ENABLED(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS)) + *sout++ = *sfrom++; + else + *sout++ = get_unaligned16(sfrom++); + } while (--loops); out = (unsigned char *)sout; from = (unsigned char *)sfrom; } else { /* dist == 1 or dist == 2 */
Building Linux for ppc64le with Ubuntu clang version 12.0.0-3ubuntu1~21.04.1 shows the warning below. arch/powerpc/boot/inffast.c:20:1: warning: unused function 'get_unaligned16' [-Wunused-function] get_unaligned16(const unsigned short *p) ^ 1 warning generated. Fix it, by moving the check from the preprocessor to C, so the compiler sees the use. Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de> --- v2: Use IS_ENABLED v3: Use if statement over ternary operator as requested by Christophe lib/zlib_inflate/inffast.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)