* [linux-next:master 6210/13128] lib/zstd/decompress/huf_decompress.c:890:25: error: use of bitwise '&' with boolean operands
@ 2021-11-04 13:24 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-11-04 13:24 UTC (permalink / raw)
To: Nick Terrell; +Cc: llvm, kbuild-all, Linux Memory Management List
[-- Attachment #1: Type: text/plain, Size: 9480 bytes --]
INFO skip CC on NO_CC_LKML=Too large changeset: 39854 lines
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 8a796a1dfca2780321755033a74bca2bbe651680
commit: ecea7adad80d9d230df766345e5f8061792da00d [6210/13128] lib: zstd: Upgrade to latest upstream zstd version 1.4.10
config: riscv-buildonly-randconfig-r002-20211104 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 847a6807332b13f43704327c2d30103ec0347c77)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=ecea7adad80d9d230df766345e5f8061792da00d
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout ecea7adad80d9d230df766345e5f8061792da00d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> lib/zstd/decompress/huf_decompress.c:890:25: error: use of bitwise '&' with boolean operands [-Werror,-Wbitwise-instead-of-logical]
(BIT_reloadDStreamFast(&bitD1) == BIT_DStream_unfinished)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/zstd/decompress/../common/compiler.h:127:38: note: expanded from macro 'LIKELY'
#define LIKELY(x) (__builtin_expect((x), 1))
~^~
lib/zstd/decompress/huf_decompress.c:890:25: note: cast one or both operands to int to silence this warning
>> lib/zstd/decompress/huf_decompress.c:890:25: error: use of bitwise '&' with boolean operands [-Werror,-Wbitwise-instead-of-logical]
(BIT_reloadDStreamFast(&bitD1) == BIT_DStream_unfinished)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/zstd/decompress/../common/compiler.h:127:38: note: expanded from macro 'LIKELY'
#define LIKELY(x) (__builtin_expect((x), 1))
^
lib/zstd/decompress/huf_decompress.c:890:25: note: cast one or both operands to int to silence this warning
>> lib/zstd/decompress/huf_decompress.c:890:25: error: use of bitwise '&' with boolean operands [-Werror,-Wbitwise-instead-of-logical]
(BIT_reloadDStreamFast(&bitD1) == BIT_DStream_unfinished)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/zstd/decompress/../common/compiler.h:127:38: note: expanded from macro 'LIKELY'
#define LIKELY(x) (__builtin_expect((x), 1))
^
lib/zstd/decompress/huf_decompress.c:890:25: note: cast one or both operands to int to silence this warning
3 errors generated.
vim +890 lib/zstd/decompress/huf_decompress.c
802
803 FORCE_INLINE_TEMPLATE size_t
804 HUF_decompress4X2_usingDTable_internal_body(
805 void* dst, size_t dstSize,
806 const void* cSrc, size_t cSrcSize,
807 const HUF_DTable* DTable)
808 {
809 if (cSrcSize < 10) return ERROR(corruption_detected); /* strict minimum : jump table + 1 byte per stream */
810
811 { const BYTE* const istart = (const BYTE*) cSrc;
812 BYTE* const ostart = (BYTE*) dst;
813 BYTE* const oend = ostart + dstSize;
814 BYTE* const olimit = oend - (sizeof(size_t)-1);
815 const void* const dtPtr = DTable+1;
816 const HUF_DEltX2* const dt = (const HUF_DEltX2*)dtPtr;
817
818 /* Init */
819 BIT_DStream_t bitD1;
820 BIT_DStream_t bitD2;
821 BIT_DStream_t bitD3;
822 BIT_DStream_t bitD4;
823 size_t const length1 = MEM_readLE16(istart);
824 size_t const length2 = MEM_readLE16(istart+2);
825 size_t const length3 = MEM_readLE16(istart+4);
826 size_t const length4 = cSrcSize - (length1 + length2 + length3 + 6);
827 const BYTE* const istart1 = istart + 6; /* jumpTable */
828 const BYTE* const istart2 = istart1 + length1;
829 const BYTE* const istart3 = istart2 + length2;
830 const BYTE* const istart4 = istart3 + length3;
831 size_t const segmentSize = (dstSize+3) / 4;
832 BYTE* const opStart2 = ostart + segmentSize;
833 BYTE* const opStart3 = opStart2 + segmentSize;
834 BYTE* const opStart4 = opStart3 + segmentSize;
835 BYTE* op1 = ostart;
836 BYTE* op2 = opStart2;
837 BYTE* op3 = opStart3;
838 BYTE* op4 = opStart4;
839 U32 endSignal = 1;
840 DTableDesc const dtd = HUF_getDTableDesc(DTable);
841 U32 const dtLog = dtd.tableLog;
842
843 if (length4 > cSrcSize) return ERROR(corruption_detected); /* overflow */
844 CHECK_F( BIT_initDStream(&bitD1, istart1, length1) );
845 CHECK_F( BIT_initDStream(&bitD2, istart2, length2) );
846 CHECK_F( BIT_initDStream(&bitD3, istart3, length3) );
847 CHECK_F( BIT_initDStream(&bitD4, istart4, length4) );
848
849 /* 16-32 symbols per loop (4-8 symbols per stream) */
850 for ( ; (endSignal) & (op4 < olimit); ) {
851 #if defined(__clang__) && (defined(__x86_64__) || defined(__i386__))
852 HUF_DECODE_SYMBOLX2_2(op1, &bitD1);
853 HUF_DECODE_SYMBOLX2_1(op1, &bitD1);
854 HUF_DECODE_SYMBOLX2_2(op1, &bitD1);
855 HUF_DECODE_SYMBOLX2_0(op1, &bitD1);
856 HUF_DECODE_SYMBOLX2_2(op2, &bitD2);
857 HUF_DECODE_SYMBOLX2_1(op2, &bitD2);
858 HUF_DECODE_SYMBOLX2_2(op2, &bitD2);
859 HUF_DECODE_SYMBOLX2_0(op2, &bitD2);
860 endSignal &= BIT_reloadDStreamFast(&bitD1) == BIT_DStream_unfinished;
861 endSignal &= BIT_reloadDStreamFast(&bitD2) == BIT_DStream_unfinished;
862 HUF_DECODE_SYMBOLX2_2(op3, &bitD3);
863 HUF_DECODE_SYMBOLX2_1(op3, &bitD3);
864 HUF_DECODE_SYMBOLX2_2(op3, &bitD3);
865 HUF_DECODE_SYMBOLX2_0(op3, &bitD3);
866 HUF_DECODE_SYMBOLX2_2(op4, &bitD4);
867 HUF_DECODE_SYMBOLX2_1(op4, &bitD4);
868 HUF_DECODE_SYMBOLX2_2(op4, &bitD4);
869 HUF_DECODE_SYMBOLX2_0(op4, &bitD4);
870 endSignal &= BIT_reloadDStreamFast(&bitD3) == BIT_DStream_unfinished;
871 endSignal &= BIT_reloadDStreamFast(&bitD4) == BIT_DStream_unfinished;
872 #else
873 HUF_DECODE_SYMBOLX2_2(op1, &bitD1);
874 HUF_DECODE_SYMBOLX2_2(op2, &bitD2);
875 HUF_DECODE_SYMBOLX2_2(op3, &bitD3);
876 HUF_DECODE_SYMBOLX2_2(op4, &bitD4);
877 HUF_DECODE_SYMBOLX2_1(op1, &bitD1);
878 HUF_DECODE_SYMBOLX2_1(op2, &bitD2);
879 HUF_DECODE_SYMBOLX2_1(op3, &bitD3);
880 HUF_DECODE_SYMBOLX2_1(op4, &bitD4);
881 HUF_DECODE_SYMBOLX2_2(op1, &bitD1);
882 HUF_DECODE_SYMBOLX2_2(op2, &bitD2);
883 HUF_DECODE_SYMBOLX2_2(op3, &bitD3);
884 HUF_DECODE_SYMBOLX2_2(op4, &bitD4);
885 HUF_DECODE_SYMBOLX2_0(op1, &bitD1);
886 HUF_DECODE_SYMBOLX2_0(op2, &bitD2);
887 HUF_DECODE_SYMBOLX2_0(op3, &bitD3);
888 HUF_DECODE_SYMBOLX2_0(op4, &bitD4);
889 endSignal = (U32)LIKELY(
> 890 (BIT_reloadDStreamFast(&bitD1) == BIT_DStream_unfinished)
891 & (BIT_reloadDStreamFast(&bitD2) == BIT_DStream_unfinished)
892 & (BIT_reloadDStreamFast(&bitD3) == BIT_DStream_unfinished)
893 & (BIT_reloadDStreamFast(&bitD4) == BIT_DStream_unfinished));
894 #endif
895 }
896
897 /* check corruption */
898 if (op1 > opStart2) return ERROR(corruption_detected);
899 if (op2 > opStart3) return ERROR(corruption_detected);
900 if (op3 > opStart4) return ERROR(corruption_detected);
901 /* note : op4 already verified within main loop */
902
903 /* finish bitStreams one by one */
904 HUF_decodeStreamX2(op1, &bitD1, opStart2, dt, dtLog);
905 HUF_decodeStreamX2(op2, &bitD2, opStart3, dt, dtLog);
906 HUF_decodeStreamX2(op3, &bitD3, opStart4, dt, dtLog);
907 HUF_decodeStreamX2(op4, &bitD4, oend, dt, dtLog);
908
909 /* check */
910 { U32 const endCheck = BIT_endOfDStream(&bitD1) & BIT_endOfDStream(&bitD2) & BIT_endOfDStream(&bitD3) & BIT_endOfDStream(&bitD4);
911 if (!endCheck) return ERROR(corruption_detected); }
912
913 /* decoded size */
914 return dstSize;
915 }
916 }
917
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 27291 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-11-04 13:24 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-11-04 13:24 [linux-next:master 6210/13128] lib/zstd/decompress/huf_decompress.c:890:25: error: use of bitwise '&' with boolean operands kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).