tree: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-nonmm-unstable head: 6e608255168707beff8474615c2da433ed0dbd63 commit: 0b7a2b15a66f84b363058df56e392793b2fea2b2 [38/39] mul_u64_u64_div_u64: make it precise always config: um-allnoconfig (https://download.01.org/0day-ci/archive/20240705/202407051719.g3Vhv3Nn-lkp@xxxxxxxxx/config) compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240705/202407051719.g3Vhv3Nn-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202407051719.g3Vhv3Nn-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): >> lib/math/div64.c:211:2: error: "unknown endianness" 211 | #error "unknown endianness" | ^ >> lib/math/div64.c:219:15: error: no member named 'l' in 'union (unnamed at lib/math/div64.c:201:2)' 219 | X.v = (u64)A.l * B.l; | ~ ^ lib/math/div64.c:219:21: error: no member named 'l' in 'union (unnamed at lib/math/div64.c:201:2)' 219 | X.v = (u64)A.l * B.l; | ~ ^ lib/math/div64.c:220:15: error: no member named 'l' in 'union (unnamed at lib/math/div64.c:201:2)' 220 | Y.v = (u64)A.l * B.h + X.h; | ~ ^ >> lib/math/div64.c:220:21: error: no member named 'h' in 'union (unnamed at lib/math/div64.c:201:2)' 220 | Y.v = (u64)A.l * B.h + X.h; | ~ ^ lib/math/div64.c:220:27: error: no member named 'h' in 'union (unnamed at lib/math/div64.c:201:2)' 220 | Y.v = (u64)A.l * B.h + X.h; | ~ ^ lib/math/div64.c:221:15: error: no member named 'h' in 'union (unnamed at lib/math/div64.c:201:2)' 221 | Z.v = (u64)A.h * B.h + Y.h; | ~ ^ lib/math/div64.c:221:21: error: no member named 'h' in 'union (unnamed at lib/math/div64.c:201:2)' 221 | Z.v = (u64)A.h * B.h + Y.h; | ~ ^ lib/math/div64.c:221:27: error: no member named 'h' in 'union (unnamed at lib/math/div64.c:201:2)' 221 | Z.v = (u64)A.h * B.h + Y.h; | ~ ^ lib/math/div64.c:222:15: error: no member named 'h' in 'union (unnamed at lib/math/div64.c:201:2)' 222 | Y.v = (u64)A.h * B.l + Y.l; | ~ ^ lib/math/div64.c:222:21: error: no member named 'l' in 'union (unnamed at lib/math/div64.c:201:2)' 222 | Y.v = (u64)A.h * B.l + Y.l; | ~ ^ lib/math/div64.c:222:27: error: no member named 'l' in 'union (unnamed at lib/math/div64.c:201:2)' 222 | Y.v = (u64)A.h * B.l + Y.l; | ~ ^ lib/math/div64.c:223:4: error: no member named 'h' in 'union (unnamed at lib/math/div64.c:201:2)' 223 | X.h = Y.l; | ~ ^ lib/math/div64.c:223:10: error: no member named 'l' in 'union (unnamed at lib/math/div64.c:201:2)' 223 | X.h = Y.l; | ~ ^ lib/math/div64.c:224:11: error: no member named 'h' in 'union (unnamed at lib/math/div64.c:201:2)' 224 | Z.v += Y.h; | ~ ^ 15 errors generated. vim +211 lib/math/div64.c 199 200 /* perform a 64x64=128 bits multiplication manually */ 201 union { 202 u64 v; 203 struct { 204 #if defined(CONFIG_CPU_LITTLE_ENDIAN) 205 u32 l; 206 u32 h; 207 #elif defined(CONFIG_CPU_BIG_ENDIAN) 208 u32 h; 209 u32 l; 210 #else > 211 #error "unknown endianness" 212 #endif 213 }; 214 } A, B, X, Y, Z; 215 216 A.v = a; 217 B.v = b; 218 > 219 X.v = (u64)A.l * B.l; > 220 Y.v = (u64)A.l * B.h + X.h; 221 Z.v = (u64)A.h * B.h + Y.h; 222 Y.v = (u64)A.h * B.l + Y.l; 223 X.h = Y.l; 224 Z.v += Y.h; 225 226 u64 n_lo = X.v, n_hi = Z.v; 227 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki