lib/crc/arm/crc64-neon.h:11:9: sparse: sparse: Trying to use reserved word 'return' as identifier

kernel test robot <[email protected]> Fri, 24 Jul 2026 21:14:34 +0800
Newsgroups dev.linux.lists.oe-kbuild
Message-ID <[email protected]>
:::::: 
:::::: Manual check reason: "low confidence static check warning: lib/crc/arm/crc64-neon.h:11:9: sparse: sparse: Trying to use reserved word 'return' as identifier"
:::::: 

BCC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Ard Biesheuvel <[email protected]>
CC: Eric Biggers <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   4539944e515183668109bdf4d0c3d7d228383d88
commit: e3babebfb83865ec2be90e64d3f73f9aca140b3a lib/crc: arm: Enable arm64's NEON intrinsics implementation of crc64
date:   8 weeks ago
:::::: branch date: 2 days ago
:::::: commit date: 8 weeks ago
config: arm-randconfig-r123-20260724 (https://download.01.org/0day-ci/archive/20260724/[email protected]/config)
compiler: arm-linux-gnueabi-gcc (GCC) 8.5.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260724/[email protected]/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
| Fixes: e3babebfb838 ("lib/crc: arm: Enable arm64's NEON intrinsics implementation of crc64")
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/r/[email protected]/

sparse warnings: (new ones prefixed by >>)
   lib/crc/crc64-neon.c: note: in included file:
   arch/arm/include/asm/neon-intrinsics.h:7:2: sparse: sparse: You should compile this file with '-march=armv7-a -mfloat-abi=softfp -mfpu=neon'
   lib/crc/crc64-neon.c: note: in included file (through arch/arm/include/asm/neon-intrinsics.h):
   ../lib/gcc/arm-linux-gnueabi/8.5.0/include/arm_neon.h:31:2: sparse: sparse: "NEON intrinsics not available with the soft-float ABI.  Please use -mfloat-abi=softfp or -mfloat-abi=hard"
   lib/crc/crc64-neon.c: note: in included file:
   lib/crc/arm/crc64-neon.h:3:26: sparse: sparse: Expected ; at end of declaration
   lib/crc/arm/crc64-neon.h:3:26: sparse: sparse: got pmull64
   lib/crc/arm/crc64-neon.h:7:20: sparse: sparse: Expected ; at end of declaration
   lib/crc/arm/crc64-neon.h:7:20: sparse: sparse: got result
>> lib/crc/arm/crc64-neon.h:11:9: sparse: sparse: Trying to use reserved word 'return' as identifier
   lib/crc/arm/crc64-neon.h:11:16: sparse: sparse: Expected ; at end of declaration
   lib/crc/arm/crc64-neon.h:11:16: sparse: sparse: got result
   lib/crc/arm/crc64-neon.h:12:1: sparse: sparse: Expected ; at the end of type declaration
   lib/crc/arm/crc64-neon.h:12:1: sparse: sparse: got }
   lib/crc/arm/crc64-neon.h:18:20: sparse: sparse: Expected ; at end of declaration
   lib/crc/arm/crc64-neon.h:18:20: sparse: sparse: got result
   lib/crc/arm/crc64-neon.h:22:9: sparse: sparse: Trying to use reserved word 'return' as identifier
   lib/crc/arm/crc64-neon.h:22:16: sparse: sparse: Expected ; at end of declaration
   lib/crc/arm/crc64-neon.h:22:16: sparse: sparse: got result
   lib/crc/arm/crc64-neon.h:23:1: sparse: sparse: Expected ; at the end of type declaration
   lib/crc/arm/crc64-neon.h:23:1: sparse: sparse: got }
   lib/crc/arm/crc64-neon.h:29:20: sparse: sparse: Expected ; at end of declaration
   lib/crc/arm/crc64-neon.h:29:20: sparse: sparse: got result
   lib/crc/arm/crc64-neon.h:33:9: sparse: sparse: Trying to use reserved word 'return' as identifier
   lib/crc/arm/crc64-neon.h:33:16: sparse: sparse: Expected ; at end of declaration
   lib/crc/arm/crc64-neon.h:33:16: sparse: sparse: got result
   lib/crc/arm/crc64-neon.h:34:1: sparse: sparse: Expected ; at the end of type declaration
   lib/crc/arm/crc64-neon.h:34:1: sparse: sparse: got }
   lib/crc/crc64-neon.c:22:20: sparse: sparse: Expected ; at end of statement
   lib/crc/crc64-neon.c:22:20: sparse: sparse: got fold_consts
   lib/crc/crc64-neon.c:23:20: sparse: sparse: Expected ; at end of statement
   lib/crc/crc64-neon.c:23:20: sparse: sparse: got v0
   lib/crc/crc64-neon.c:24:20: sparse: sparse: Expected ; at end of statement
   lib/crc/crc64-neon.c:24:20: sparse: sparse: got zero
   lib/crc/crc64-neon.c:41:20: sparse: sparse: Expected ; at end of statement
   lib/crc/crc64-neon.c:41:20: sparse: sparse: got bconsts
   lib/crc/crc64-neon.c:42:20: sparse: sparse: Expected ; at end of statement
   lib/crc/crc64-neon.c:42:20: sparse: sparse: got final
   lib/crc/arm/crc64-neon.h:6:22: sparse: sparse: undefined identifier 'vgetq_lane_u64'
   lib/crc/arm/crc64-neon.h:17:22: sparse: sparse: undefined identifier 'vgetq_lane_u64'
   lib/crc/arm/crc64-neon.h:17:18: sparse: sparse: symbol 'm' has multiple initializers (originally initialized at lib/crc/arm/crc64-neon.h:6)
   lib/crc/arm/crc64-neon.h:28:22: sparse: sparse: undefined identifier 'vgetq_lane_u64'
   lib/crc/arm/crc64-neon.h:28:18: sparse: sparse: symbol 'm' has multiple initializers (originally initialized at lib/crc/arm/crc64-neon.h:17)
   lib/crc/crc64-neon.c:27:17: sparse: sparse: undefined identifier 'v0'
   lib/crc/crc64-neon.c:27:23: sparse: sparse: undefined identifier 'vreinterpretq_u64_u8'
   lib/crc/crc64-neon.c:34:17: sparse: sparse: undefined identifier 'v0'
   lib/crc/crc64-neon.c:34:22: sparse: sparse: undefined identifier 'pmull64'
   lib/crc/crc64-neon.c:34:49: sparse: sparse: undefined identifier 'pmull64_high'
   lib/crc/crc64-neon.c:38:9: sparse: sparse: undefined identifier 'v0'
   lib/crc/crc64-neon.c:38:14: sparse: sparse: undefined identifier 'vextq_u64'
   lib/crc/crc64-neon.c:38:39: sparse: sparse: undefined identifier 'pmull64_hi_lo'
   lib/crc/crc64-neon.c:44:9: sparse: sparse: undefined identifier 'v0'
   lib/crc/crc64-neon.c:44:15: sparse: sparse: undefined identifier 'vextq_u64'
   lib/crc/crc64-neon.c:44:43: sparse: sparse: undefined identifier 'pmull64_hi_lo'
   lib/crc/crc64-neon.c:46:16: sparse: sparse: undefined identifier 'vgetq_lane_u64'

vim +/return +11 lib/crc/arm/crc64-neon.h

e3babebfb83865 Ard Biesheuvel 2026-04-22   2  
e3babebfb83865 Ard Biesheuvel 2026-04-22  @3  static inline uint64x2_t pmull64(uint64x2_t a, uint64x2_t b)
e3babebfb83865 Ard Biesheuvel 2026-04-22   4  {
e3babebfb83865 Ard Biesheuvel 2026-04-22   5  	uint64_t l = vgetq_lane_u64(a, 0);
e3babebfb83865 Ard Biesheuvel 2026-04-22   6  	uint64_t m = vgetq_lane_u64(b, 0);
e3babebfb83865 Ard Biesheuvel 2026-04-22   7  	uint64x2_t result;
e3babebfb83865 Ard Biesheuvel 2026-04-22   8  
e3babebfb83865 Ard Biesheuvel 2026-04-22   9  	asm("vmull.p64	%q0, %P1, %P2" : "=w"(result) : "w"(l), "w"(m));
e3babebfb83865 Ard Biesheuvel 2026-04-22  10  
e3babebfb83865 Ard Biesheuvel 2026-04-22 @11  	return result;
e3babebfb83865 Ard Biesheuvel 2026-04-22  12  }
e3babebfb83865 Ard Biesheuvel 2026-04-22  13  

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki