* [brauner-vfs:vfs-7.2.vmsplice 2/4] fs/read_write.c:1219:1: warning: alias and aliasee have different types 'long (unsigned long, const struct iovec *, unsigned long, unsigned int)' and 'long (typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL...
@ 2026-06-02 9:01 kernel test robot
2026-06-03 1:58 ` Nathan Chancellor
0 siblings, 1 reply; 2+ messages in thread
From: kernel test robot @ 2026-06-02 9:01 UTC (permalink / raw)
To: Askar Safin; +Cc: llvm, oe-kbuild-all, Christian Brauner, Christian Brauner
tree: https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git vfs-7.2.vmsplice
head: 2d4099641dbaed4b98711fc7d8ec94c5aec0a0f0
commit: e2c0b2368081bef7d1f6758cc9e7edde8521237c [2/4] vmsplice: make vmsplice a trivial wrapper for preadv2/pwritev2
config: um-allnoconfig (https://download.01.org/0day-ci/archive/20260602/202606021605.feT4WbtH-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project e5ab4f8a1f766febdc65ce89c00dec85393cfd68)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260602/202606021605.feT4WbtH-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202606021605.feT4WbtH-lkp@intel.com/
All warnings (new ones prefixed by >>):
fs/read_write.c:1176:1: warning: alias and aliasee have different types 'long (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long)' and 'long (typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((const struct iovec *)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((const struct iovec *)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)))' (aka 'long (long, long, long, long, long)') [-Wattribute-alias]
1176 | SYSCALL_DEFINE5(preadv, unsigned long, fd, const struct iovec __user *, vec,
| ^
include/linux/syscalls.h:229:36: note: expanded from macro 'SYSCALL_DEFINE5'
229 | #define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
| ^
include/linux/syscalls.h:236:2: note: expanded from macro 'SYSCALL_DEFINEx'
236 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^
include/linux/syscalls.h:251:18: note: expanded from macro '__SYSCALL_DEFINEx'
251 | __attribute__((alias(__stringify(__se_sys##name)))); \
| ^
fs/read_write.c:1176:1: note: aliasee is declared here
include/linux/syscalls.h:229:36: note: expanded from macro 'SYSCALL_DEFINE5'
229 | #define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
| ^
include/linux/syscalls.h:236:2: note: expanded from macro 'SYSCALL_DEFINEx'
236 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^
include/linux/syscalls.h:255:18: note: expanded from macro '__SYSCALL_DEFINEx'
255 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
| ^
<scratch space>:43:1: note: expanded from here
43 | __se_sys_preadv
| ^
fs/read_write.c:1184:1: warning: alias and aliasee have different types 'long (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long, rwf_t)' (aka 'long (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long, int)') and 'long (typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((const struct iovec *)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((const struct iovec *)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((rwf_t)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((rwf_t)0), typeof (0ULL))), 0LL, 0L)))' (aka 'long (long, long, long, long, long, long)') [-Wattribute-alias]
1184 | SYSCALL_DEFINE6(preadv2, unsigned long, fd, const struct iovec __user *, vec,
| ^
include/linux/syscalls.h:230:36: note: expanded from macro 'SYSCALL_DEFINE6'
230 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^
include/linux/syscalls.h:236:2: note: expanded from macro 'SYSCALL_DEFINEx'
236 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^
include/linux/syscalls.h:251:18: note: expanded from macro '__SYSCALL_DEFINEx'
251 | __attribute__((alias(__stringify(__se_sys##name)))); \
| ^
fs/read_write.c:1184:1: note: aliasee is declared here
include/linux/syscalls.h:230:36: note: expanded from macro 'SYSCALL_DEFINE6'
230 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^
include/linux/syscalls.h:236:2: note: expanded from macro 'SYSCALL_DEFINEx'
236 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^
include/linux/syscalls.h:255:18: note: expanded from macro '__SYSCALL_DEFINEx'
255 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
| ^
<scratch space>:73:1: note: expanded from here
73 | __se_sys_preadv2
| ^
fs/read_write.c:1196:1: warning: alias and aliasee have different types 'long (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long)' and 'long (typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((const struct iovec *)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((const struct iovec *)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)))' (aka 'long (long, long, long, long, long)') [-Wattribute-alias]
1196 | SYSCALL_DEFINE5(pwritev, unsigned long, fd, const struct iovec __user *, vec,
| ^
include/linux/syscalls.h:229:36: note: expanded from macro 'SYSCALL_DEFINE5'
229 | #define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
| ^
include/linux/syscalls.h:236:2: note: expanded from macro 'SYSCALL_DEFINEx'
236 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^
include/linux/syscalls.h:251:18: note: expanded from macro '__SYSCALL_DEFINEx'
251 | __attribute__((alias(__stringify(__se_sys##name)))); \
| ^
fs/read_write.c:1196:1: note: aliasee is declared here
include/linux/syscalls.h:229:36: note: expanded from macro 'SYSCALL_DEFINE5'
229 | #define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
| ^
include/linux/syscalls.h:236:2: note: expanded from macro 'SYSCALL_DEFINEx'
236 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^
include/linux/syscalls.h:255:18: note: expanded from macro '__SYSCALL_DEFINEx'
255 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
| ^
<scratch space>:104:1: note: expanded from here
104 | __se_sys_pwritev
| ^
fs/read_write.c:1204:1: warning: alias and aliasee have different types 'long (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long, rwf_t)' (aka 'long (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long, int)') and 'long (typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((const struct iovec *)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((const struct iovec *)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((rwf_t)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((rwf_t)0), typeof (0ULL))), 0LL, 0L)))' (aka 'long (long, long, long, long, long, long)') [-Wattribute-alias]
1204 | SYSCALL_DEFINE6(pwritev2, unsigned long, fd, const struct iovec __user *, vec,
| ^
include/linux/syscalls.h:230:36: note: expanded from macro 'SYSCALL_DEFINE6'
230 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^
include/linux/syscalls.h:236:2: note: expanded from macro 'SYSCALL_DEFINEx'
236 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^
include/linux/syscalls.h:251:18: note: expanded from macro '__SYSCALL_DEFINEx'
251 | __attribute__((alias(__stringify(__se_sys##name)))); \
| ^
fs/read_write.c:1204:1: note: aliasee is declared here
include/linux/syscalls.h:230:36: note: expanded from macro 'SYSCALL_DEFINE6'
230 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^
include/linux/syscalls.h:236:2: note: expanded from macro 'SYSCALL_DEFINEx'
236 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^
include/linux/syscalls.h:255:18: note: expanded from macro '__SYSCALL_DEFINEx'
255 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
| ^
<scratch space>:134:1: note: expanded from here
134 | __se_sys_pwritev2
| ^
>> fs/read_write.c:1219:1: warning: alias and aliasee have different types 'long (unsigned long, const struct iovec *, unsigned long, unsigned int)' and 'long (typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((const struct iovec *)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((const struct iovec *)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned int)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned int)0), typeof (0ULL))), 0LL, 0L)))' (aka 'long (long, long, long, long)') [-Wattribute-alias]
1219 | SYSCALL_DEFINE4(vmsplice, unsigned long, fd, const struct iovec __user *, vec,
| ^
include/linux/syscalls.h:228:36: note: expanded from macro 'SYSCALL_DEFINE4'
228 | #define SYSCALL_DEFINE4(name, ...) SYSCALL_DEFINEx(4, _##name, __VA_ARGS__)
| ^
include/linux/syscalls.h:236:2: note: expanded from macro 'SYSCALL_DEFINEx'
236 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^
include/linux/syscalls.h:251:18: note: expanded from macro '__SYSCALL_DEFINEx'
251 | __attribute__((alias(__stringify(__se_sys##name)))); \
| ^
fs/read_write.c:1219:1: note: aliasee is declared here
include/linux/syscalls.h:228:36: note: expanded from macro 'SYSCALL_DEFINE4'
228 | #define SYSCALL_DEFINE4(name, ...) SYSCALL_DEFINEx(4, _##name, __VA_ARGS__)
| ^
include/linux/syscalls.h:236:2: note: expanded from macro 'SYSCALL_DEFINEx'
236 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^
include/linux/syscalls.h:255:18: note: expanded from macro '__SYSCALL_DEFINEx'
255 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
| ^
<scratch space>:165:1: note: expanded from here
165 | __se_sys_vmsplice
| ^
fs/read_write.c:1423:1: warning: alias and aliasee have different types 'long (int, int, off_t *, size_t)' (aka 'long (int, int, long *, unsigned int)') and 'long (typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((int)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((int)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((int)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((int)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((off_t *)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((off_t *)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((size_t)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((size_t)0), typeof (0ULL))), 0LL, 0L)))' (aka 'long (long, long, long, long)') [-Wattribute-alias]
1423 | SYSCALL_DEFINE4(sendfile, int, out_fd, int, in_fd, off_t __user *, offset, size_t, count)
| ^
include/linux/syscalls.h:228:36: note: expanded from macro 'SYSCALL_DEFINE4'
228 | #define SYSCALL_DEFINE4(name, ...) SYSCALL_DEFINEx(4, _##name, __VA_ARGS__)
| ^
include/linux/syscalls.h:236:2: note: expanded from macro 'SYSCALL_DEFINEx'
236 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^
include/linux/syscalls.h:251:18: note: expanded from macro '__SYSCALL_DEFINEx'
251 | __attribute__((alias(__stringify(__se_sys##name)))); \
| ^
fs/read_write.c:1423:1: note: aliasee is declared here
include/linux/syscalls.h:228:36: note: expanded from macro 'SYSCALL_DEFINE4'
228 | #define SYSCALL_DEFINE4(name, ...) SYSCALL_DEFINEx(4, _##name, __VA_ARGS__)
| ^
include/linux/syscalls.h:236:2: note: expanded from macro 'SYSCALL_DEFINEx'
236 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^
include/linux/syscalls.h:255:18: note: expanded from macro '__SYSCALL_DEFINEx'
255 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
| ^
<scratch space>:56:1: note: expanded from here
56 | __se_sys_sendfile
| ^
fs/read_write.c:1442:1: warning: alias and aliasee have different types 'long (int, int, loff_t *, size_t)' (aka 'long (int, int, long long *, unsigned int)') and 'long (typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((int)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((int)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((int)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((int)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((loff_t *)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((loff_t *)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((size_t)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((size_t)0), typeof (0ULL))), 0LL, 0L)))' (aka 'long (long, long, long, long)') [-Wattribute-alias]
1442 | SYSCALL_DEFINE4(sendfile64, int, out_fd, int, in_fd, loff_t __user *, offset, size_t, count)
| ^
include/linux/syscalls.h:228:36: note: expanded from macro 'SYSCALL_DEFINE4'
228 | #define SYSCALL_DEFINE4(name, ...) SYSCALL_DEFINEx(4, _##name, __VA_ARGS__)
| ^
include/linux/syscalls.h:236:2: note: expanded from macro 'SYSCALL_DEFINEx'
236 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^
include/linux/syscalls.h:251:18: note: expanded from macro '__SYSCALL_DEFINEx'
251 | __attribute__((alias(__stringify(__se_sys##name)))); \
| ^
fs/read_write.c:1442:1: note: aliasee is declared here
include/linux/syscalls.h:228:36: note: expanded from macro 'SYSCALL_DEFINE4'
228 | #define SYSCALL_DEFINE4(name, ...) SYSCALL_DEFINEx(4, _##name, __VA_ARGS__)
| ^
include/linux/syscalls.h:236:2: note: expanded from macro 'SYSCALL_DEFINEx'
236 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^
include/linux/syscalls.h:255:18: note: expanded from macro '__SYSCALL_DEFINEx'
255 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
| ^
<scratch space>:85:1: note: expanded from here
85 | __se_sys_sendfile64
| ^
fs/read_write.c:1673:1: warning: alias and aliasee have different types 'long (int, loff_t *, int, loff_t *, size_t, unsigned int)' (aka 'long (int, long long *, int, long long *, unsigned int, unsigned int)') and 'long (typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((int)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((int)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((loff_t *)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((loff_t *)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((int)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((int)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((loff_t *)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((loff_t *)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((size_t)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((size_t)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned int)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned int)0), typeof (0ULL))), 0LL, 0L)))' (aka 'long (long, long, long, long, long, long)') [-Wattribute-alias]
1673 | SYSCALL_DEFINE6(copy_file_range, int, fd_in, loff_t __user *, off_in,
| ^
include/linux/syscalls.h:230:36: note: expanded from macro 'SYSCALL_DEFINE6'
230 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^
include/linux/syscalls.h:236:2: note: expanded from macro 'SYSCALL_DEFINEx'
236 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^
include/linux/syscalls.h:251:18: note: expanded from macro '__SYSCALL_DEFINEx'
251 | __attribute__((alias(__stringify(__se_sys##name)))); \
| ^
fs/read_write.c:1673:1: note: aliasee is declared here
include/linux/syscalls.h:230:36: note: expanded from macro 'SYSCALL_DEFINE6'
230 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^
include/linux/syscalls.h:236:2: note: expanded from macro 'SYSCALL_DEFINEx'
236 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^
include/linux/syscalls.h:255:18: note: expanded from macro '__SYSCALL_DEFINEx'
255 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
| ^
<scratch space>:145:1: note: expanded from here
145 | __se_sys_copy_file_range
| ^
16 warnings generated.
vim +1219 fs/read_write.c
1215
1216 /*
1217 * Legacy preadv2/pwritev2 wrapper.
1218 */
> 1219 SYSCALL_DEFINE4(vmsplice, unsigned long, fd, const struct iovec __user *, vec,
1220 unsigned long, vlen, unsigned int, flags)
1221 {
1222 if (unlikely(flags & ~SPLICE_F_ALL))
1223 return -EINVAL;
1224
1225 CLASS(fd, f)(fd);
1226 if (fd_empty(f))
1227 return -EBADF;
1228
1229 /* We do do_writev/do_readv, so it is okay to pass "false" here */
1230 if (!get_pipe_info(fd_file(f), /* for_splice = */ false))
1231 return -EBADF;
1232
1233 if (fd_file(f)->f_mode & FMODE_WRITE)
1234 return do_writev(fd, vec, vlen, (flags & SPLICE_F_NONBLOCK) ? RWF_NOWAIT : 0);
1235 else
1236 return do_readv(fd, vec, vlen, (flags & SPLICE_F_NONBLOCK) ? RWF_NOWAIT : 0);
1237 }
1238
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [brauner-vfs:vfs-7.2.vmsplice 2/4] fs/read_write.c:1219:1: warning: alias and aliasee have different types 'long (unsigned long, const struct iovec *, unsigned long, unsigned int)' and 'long (typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL...
2026-06-02 9:01 [brauner-vfs:vfs-7.2.vmsplice 2/4] fs/read_write.c:1219:1: warning: alias and aliasee have different types 'long (unsigned long, const struct iovec *, unsigned long, unsigned int)' and 'long (typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL kernel test robot
@ 2026-06-03 1:58 ` Nathan Chancellor
0 siblings, 0 replies; 2+ messages in thread
From: Nathan Chancellor @ 2026-06-03 1:58 UTC (permalink / raw)
To: kernel test robot
Cc: Askar Safin, llvm, oe-kbuild-all, Christian Brauner,
Christian Brauner
On Tue, Jun 02, 2026 at 05:01:04PM +0800, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git vfs-7.2.vmsplice
> head: 2d4099641dbaed4b98711fc7d8ec94c5aec0a0f0
> commit: e2c0b2368081bef7d1f6758cc9e7edde8521237c [2/4] vmsplice: make vmsplice a trivial wrapper for preadv2/pwritev2
> config: um-allnoconfig (https://download.01.org/0day-ci/archive/20260602/202606021605.feT4WbtH-lkp@intel.com/config)
> compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project e5ab4f8a1f766febdc65ce89c00dec85393cfd68)
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260602/202606021605.feT4WbtH-lkp@intel.com/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@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202606021605.feT4WbtH-lkp@intel.com/
>
> All warnings (new ones prefixed by >>):
>
> fs/read_write.c:1176:1: warning: alias and aliasee have different types 'long (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long)' and 'long (typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((const struct iovec *)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((const struct iovec *)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)), typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL)) || __builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0ULL))), 0LL, 0L)))' (aka 'long (long, long, long, long, long)') [-Wattribute-alias]
> 1176 | SYSCALL_DEFINE5(preadv, unsigned long, fd, const struct iovec __user *, vec,
> | ^
> include/linux/syscalls.h:229:36: note: expanded from macro 'SYSCALL_DEFINE5'
> 229 | #define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
> | ^
> include/linux/syscalls.h:236:2: note: expanded from macro 'SYSCALL_DEFINEx'
> 236 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
> | ^
> include/linux/syscalls.h:251:18: note: expanded from macro '__SYSCALL_DEFINEx'
> 251 | __attribute__((alias(__stringify(__se_sys##name)))); \
> | ^
> fs/read_write.c:1176:1: note: aliasee is declared here
> include/linux/syscalls.h:229:36: note: expanded from macro 'SYSCALL_DEFINE5'
> 229 | #define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
> | ^
> include/linux/syscalls.h:236:2: note: expanded from macro 'SYSCALL_DEFINEx'
> 236 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
> | ^
> include/linux/syscalls.h:255:18: note: expanded from macro '__SYSCALL_DEFINEx'
> 255 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
> | ^
> <scratch space>:43:1: note: expanded from here
> 43 | __se_sys_preadv
> | ^
This should be addressed in Linus's tree with
175db11786bd ("Disable -Wattribute-alias for clang-23 and newer")
--
Cheers,
Nathan
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-06-03 1:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-02 9:01 [brauner-vfs:vfs-7.2.vmsplice 2/4] fs/read_write.c:1219:1: warning: alias and aliasee have different types 'long (unsigned long, const struct iovec *, unsigned long, unsigned int)' and 'long (typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL kernel test robot
2026-06-03 1:58 ` Nathan Chancellor
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox