Hi Aditya, kernel test robot noticed the following build errors: [auto build test ERROR on akpm-mm/mm-nonmm-unstable] [also build test ERROR on linus/master v6.14-rc4 next-20250228] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Aditya-Garg/lib-vsprintf-Add-support-for-generic-FourCCs-by-extending-p4cc/20250301-003018 base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-nonmm-unstable patch link: https://lore.kernel.org/r/2C9622E6-A2DB-4681-A971-604C79F9955E%40live.com patch subject: [PATCH v5] lib/vsprintf: Add support for generic FourCCs by extending %p4cc config: arc-randconfig-001-20250301 (https://download.01.org/0day-ci/archive/20250302/202503020121.qsiw3acQ-lkp@xxxxxxxxx/config) compiler: arceb-elf-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250302/202503020121.qsiw3acQ-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/202503020121.qsiw3acQ-lkp@xxxxxxxxx/ All error/warnings (new ones prefixed by >>): lib/test_printf.c: In function 'fourcc_pointer': >> lib/test_printf.c:802:17: warning: braces around scalar initializer 802 | { 0x41424344, "ABCD (0x41424344)", }, | ^ lib/test_printf.c:802:17: note: (near initialization for 'try_ch.code') >> lib/test_printf.c:802:31: warning: excess elements in scalar initializer 802 | { 0x41424344, "ABCD (0x41424344)", }, | ^~~~~~~~~~~~~~~~~~~ lib/test_printf.c:802:31: note: (near initialization for 'try_ch.code') lib/test_printf.c:805:17: warning: braces around scalar initializer 805 | { 0x41424344, "DCBA (0x44434241)", }, | ^ lib/test_printf.c:805:17: note: (near initialization for 'try_cn.code') lib/test_printf.c:805:31: warning: excess elements in scalar initializer 805 | { 0x41424344, "DCBA (0x44434241)", }, | ^~~~~~~~~~~~~~~~~~~ lib/test_printf.c:805:31: note: (near initialization for 'try_cn.code') lib/test_printf.c:808:17: warning: braces around scalar initializer 808 | { le32_to_cpu(0x41424344), "ABCD (0x41424344)", }, | ^ lib/test_printf.c:808:17: note: (near initialization for 'try_cl.code') lib/test_printf.c:808:44: warning: excess elements in scalar initializer 808 | { le32_to_cpu(0x41424344), "ABCD (0x41424344)", }, | ^~~~~~~~~~~~~~~~~~~ lib/test_printf.c:808:44: note: (near initialization for 'try_cl.code') lib/test_printf.c:811:17: warning: braces around scalar initializer 811 | { be32_to_cpu(0x41424344), "ABCD (0x41424344)", }, | ^ lib/test_printf.c:811:17: note: (near initialization for 'try_cb.code') lib/test_printf.c:811:44: warning: excess elements in scalar initializer 811 | { be32_to_cpu(0x41424344), "ABCD (0x41424344)", }, | ^~~~~~~~~~~~~~~~~~~ lib/test_printf.c:811:44: note: (near initialization for 'try_cb.code') In file included from include/linux/kernel.h:16, from lib/test_printf.c:9: >> include/linux/array_size.h:11:52: error: subscripted value is neither array nor pointer nor vector 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^ lib/test_printf.c:815:37: note: in expansion of macro 'ARRAY_SIZE' 815 | fourcc_pointer_test(try_ch, ARRAY_SIZE(try_ch), "%p4ch"); | ^~~~~~~~~~ In file included from include/linux/build_bug.h:5, from include/linux/init.h:5, from lib/test_printf.c:8: >> include/linux/compiler.h:201:56: error: subscripted value is neither array nor pointer nor vector 201 | #define __is_array(a) (!__same_type((a), &(a)[0])) | ^ include/linux/compiler.h:197:79: note: in definition of macro '__BUILD_BUG_ON_ZERO_MSG' 197 | #define __BUILD_BUG_ON_ZERO_MSG(e, msg) ((int)sizeof(struct {_Static_assert(!(e), msg);})) | ^ include/linux/compiler.h:201:35: note: in expansion of macro '__same_type' 201 | #define __is_array(a) (!__same_type((a), &(a)[0])) | ^~~~~~~~~~~ include/linux/compiler.h:202:58: note: in expansion of macro '__is_array' 202 | #define __must_be_array(a) __BUILD_BUG_ON_ZERO_MSG(!__is_array(a), \ | ^~~~~~~~~~ include/linux/array_size.h:11:59: note: in expansion of macro '__must_be_array' 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^~~~~~~~~~~~~~~ lib/test_printf.c:815:37: note: in expansion of macro 'ARRAY_SIZE' 815 | fourcc_pointer_test(try_ch, ARRAY_SIZE(try_ch), "%p4ch"); | ^~~~~~~~~~ >> include/linux/compiler.h:197:77: error: expression in static assertion is not an integer 197 | #define __BUILD_BUG_ON_ZERO_MSG(e, msg) ((int)sizeof(struct {_Static_assert(!(e), msg);})) | ^ include/linux/compiler.h:202:33: note: in expansion of macro '__BUILD_BUG_ON_ZERO_MSG' 202 | #define __must_be_array(a) __BUILD_BUG_ON_ZERO_MSG(!__is_array(a), \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/array_size.h:11:59: note: in expansion of macro '__must_be_array' 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^~~~~~~~~~~~~~~ lib/test_printf.c:815:37: note: in expansion of macro 'ARRAY_SIZE' 815 | fourcc_pointer_test(try_ch, ARRAY_SIZE(try_ch), "%p4ch"); | ^~~~~~~~~~ >> lib/test_printf.c:815:29: error: incompatible type for argument 1 of 'fourcc_pointer_test' 815 | fourcc_pointer_test(try_ch, ARRAY_SIZE(try_ch), "%p4ch"); | ^~~~~~ | | | struct fourcc_struct lib/test_printf.c:784:68: note: expected 'const struct fourcc_struct *' but argument is of type 'struct fourcc_struct' 784 | static void __init fourcc_pointer_test(const struct fourcc_struct *fc, size_t n, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ >> include/linux/array_size.h:11:52: error: subscripted value is neither array nor pointer nor vector 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^ lib/test_printf.c:816:37: note: in expansion of macro 'ARRAY_SIZE' 816 | fourcc_pointer_test(try_cn, ARRAY_SIZE(try_cn), "%p4cn"); | ^~~~~~~~~~ >> include/linux/compiler.h:201:56: error: subscripted value is neither array nor pointer nor vector 201 | #define __is_array(a) (!__same_type((a), &(a)[0])) | ^ include/linux/compiler.h:197:79: note: in definition of macro '__BUILD_BUG_ON_ZERO_MSG' 197 | #define __BUILD_BUG_ON_ZERO_MSG(e, msg) ((int)sizeof(struct {_Static_assert(!(e), msg);})) | ^ include/linux/compiler.h:201:35: note: in expansion of macro '__same_type' 201 | #define __is_array(a) (!__same_type((a), &(a)[0])) | ^~~~~~~~~~~ include/linux/compiler.h:202:58: note: in expansion of macro '__is_array' 202 | #define __must_be_array(a) __BUILD_BUG_ON_ZERO_MSG(!__is_array(a), \ | ^~~~~~~~~~ include/linux/array_size.h:11:59: note: in expansion of macro '__must_be_array' 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^~~~~~~~~~~~~~~ lib/test_printf.c:816:37: note: in expansion of macro 'ARRAY_SIZE' 816 | fourcc_pointer_test(try_cn, ARRAY_SIZE(try_cn), "%p4cn"); | ^~~~~~~~~~ >> include/linux/compiler.h:197:77: error: expression in static assertion is not an integer 197 | #define __BUILD_BUG_ON_ZERO_MSG(e, msg) ((int)sizeof(struct {_Static_assert(!(e), msg);})) | ^ include/linux/compiler.h:202:33: note: in expansion of macro '__BUILD_BUG_ON_ZERO_MSG' 202 | #define __must_be_array(a) __BUILD_BUG_ON_ZERO_MSG(!__is_array(a), \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/array_size.h:11:59: note: in expansion of macro '__must_be_array' 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^~~~~~~~~~~~~~~ lib/test_printf.c:816:37: note: in expansion of macro 'ARRAY_SIZE' 816 | fourcc_pointer_test(try_cn, ARRAY_SIZE(try_cn), "%p4cn"); | ^~~~~~~~~~ lib/test_printf.c:816:29: error: incompatible type for argument 1 of 'fourcc_pointer_test' 816 | fourcc_pointer_test(try_cn, ARRAY_SIZE(try_cn), "%p4cn"); | ^~~~~~ | | | struct fourcc_struct lib/test_printf.c:784:68: note: expected 'const struct fourcc_struct *' but argument is of type 'struct fourcc_struct' 784 | static void __init fourcc_pointer_test(const struct fourcc_struct *fc, size_t n, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ >> include/linux/array_size.h:11:52: error: subscripted value is neither array nor pointer nor vector 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^ lib/test_printf.c:817:37: note: in expansion of macro 'ARRAY_SIZE' 817 | fourcc_pointer_test(try_cl, ARRAY_SIZE(try_cl), "%p4cl"); | ^~~~~~~~~~ >> include/linux/compiler.h:201:56: error: subscripted value is neither array nor pointer nor vector 201 | #define __is_array(a) (!__same_type((a), &(a)[0])) | ^ include/linux/compiler.h:197:79: note: in definition of macro '__BUILD_BUG_ON_ZERO_MSG' 197 | #define __BUILD_BUG_ON_ZERO_MSG(e, msg) ((int)sizeof(struct {_Static_assert(!(e), msg);})) | ^ include/linux/compiler.h:201:35: note: in expansion of macro '__same_type' 201 | #define __is_array(a) (!__same_type((a), &(a)[0])) | ^~~~~~~~~~~ include/linux/compiler.h:202:58: note: in expansion of macro '__is_array' 202 | #define __must_be_array(a) __BUILD_BUG_ON_ZERO_MSG(!__is_array(a), \ | ^~~~~~~~~~ include/linux/array_size.h:11:59: note: in expansion of macro '__must_be_array' 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^~~~~~~~~~~~~~~ lib/test_printf.c:817:37: note: in expansion of macro 'ARRAY_SIZE' 817 | fourcc_pointer_test(try_cl, ARRAY_SIZE(try_cl), "%p4cl"); | ^~~~~~~~~~ >> include/linux/compiler.h:197:77: error: expression in static assertion is not an integer 197 | #define __BUILD_BUG_ON_ZERO_MSG(e, msg) ((int)sizeof(struct {_Static_assert(!(e), msg);})) | ^ include/linux/compiler.h:202:33: note: in expansion of macro '__BUILD_BUG_ON_ZERO_MSG' 202 | #define __must_be_array(a) __BUILD_BUG_ON_ZERO_MSG(!__is_array(a), \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/array_size.h:11:59: note: in expansion of macro '__must_be_array' 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^~~~~~~~~~~~~~~ lib/test_printf.c:817:37: note: in expansion of macro 'ARRAY_SIZE' 817 | fourcc_pointer_test(try_cl, ARRAY_SIZE(try_cl), "%p4cl"); | ^~~~~~~~~~ lib/test_printf.c:817:29: error: incompatible type for argument 1 of 'fourcc_pointer_test' 817 | fourcc_pointer_test(try_cl, ARRAY_SIZE(try_cl), "%p4cl"); | ^~~~~~ | | | struct fourcc_struct lib/test_printf.c:784:68: note: expected 'const struct fourcc_struct *' but argument is of type 'struct fourcc_struct' 784 | static void __init fourcc_pointer_test(const struct fourcc_struct *fc, size_t n, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ >> include/linux/array_size.h:11:52: error: subscripted value is neither array nor pointer nor vector 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^ lib/test_printf.c:818:37: note: in expansion of macro 'ARRAY_SIZE' 818 | fourcc_pointer_test(try_cb, ARRAY_SIZE(try_cb), "%p4cb"); | ^~~~~~~~~~ >> include/linux/compiler.h:201:56: error: subscripted value is neither array nor pointer nor vector 201 | #define __is_array(a) (!__same_type((a), &(a)[0])) | ^ include/linux/compiler.h:197:79: note: in definition of macro '__BUILD_BUG_ON_ZERO_MSG' 197 | #define __BUILD_BUG_ON_ZERO_MSG(e, msg) ((int)sizeof(struct {_Static_assert(!(e), msg);})) | ^ include/linux/compiler.h:201:35: note: in expansion of macro '__same_type' 201 | #define __is_array(a) (!__same_type((a), &(a)[0])) | ^~~~~~~~~~~ include/linux/compiler.h:202:58: note: in expansion of macro '__is_array' 202 | #define __must_be_array(a) __BUILD_BUG_ON_ZERO_MSG(!__is_array(a), \ | ^~~~~~~~~~ include/linux/array_size.h:11:59: note: in expansion of macro '__must_be_array' 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^~~~~~~~~~~~~~~ lib/test_printf.c:818:37: note: in expansion of macro 'ARRAY_SIZE' 818 | fourcc_pointer_test(try_cb, ARRAY_SIZE(try_cb), "%p4cb"); | ^~~~~~~~~~ >> include/linux/compiler.h:197:77: error: expression in static assertion is not an integer 197 | #define __BUILD_BUG_ON_ZERO_MSG(e, msg) ((int)sizeof(struct {_Static_assert(!(e), msg);})) | ^ include/linux/compiler.h:202:33: note: in expansion of macro '__BUILD_BUG_ON_ZERO_MSG' 202 | #define __must_be_array(a) __BUILD_BUG_ON_ZERO_MSG(!__is_array(a), \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/array_size.h:11:59: note: in expansion of macro '__must_be_array' 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^~~~~~~~~~~~~~~ lib/test_printf.c:818:37: note: in expansion of macro 'ARRAY_SIZE' 818 | fourcc_pointer_test(try_cb, ARRAY_SIZE(try_cb), "%p4cb"); | ^~~~~~~~~~ lib/test_printf.c:818:29: error: incompatible type for argument 1 of 'fourcc_pointer_test' 818 | fourcc_pointer_test(try_cb, ARRAY_SIZE(try_cb), "%p4cb"); | ^~~~~~ | | | struct fourcc_struct lib/test_printf.c:784:68: note: expected 'const struct fourcc_struct *' but argument is of type 'struct fourcc_struct' 784 | static void __init fourcc_pointer_test(const struct fourcc_struct *fc, size_t n, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ -- test_printf.c: In function 'fourcc_pointer': test_printf.c:802:17: warning: braces around scalar initializer 802 | { 0x41424344, "ABCD (0x41424344)", }, | ^ test_printf.c:802:17: note: (near initialization for 'try_ch.code') test_printf.c:802:31: warning: excess elements in scalar initializer 802 | { 0x41424344, "ABCD (0x41424344)", }, | ^~~~~~~~~~~~~~~~~~~ test_printf.c:802:31: note: (near initialization for 'try_ch.code') test_printf.c:805:17: warning: braces around scalar initializer 805 | { 0x41424344, "DCBA (0x44434241)", }, | ^ test_printf.c:805:17: note: (near initialization for 'try_cn.code') test_printf.c:805:31: warning: excess elements in scalar initializer 805 | { 0x41424344, "DCBA (0x44434241)", }, | ^~~~~~~~~~~~~~~~~~~ test_printf.c:805:31: note: (near initialization for 'try_cn.code') test_printf.c:808:17: warning: braces around scalar initializer 808 | { le32_to_cpu(0x41424344), "ABCD (0x41424344)", }, | ^ test_printf.c:808:17: note: (near initialization for 'try_cl.code') test_printf.c:808:44: warning: excess elements in scalar initializer 808 | { le32_to_cpu(0x41424344), "ABCD (0x41424344)", }, | ^~~~~~~~~~~~~~~~~~~ test_printf.c:808:44: note: (near initialization for 'try_cl.code') test_printf.c:811:17: warning: braces around scalar initializer 811 | { be32_to_cpu(0x41424344), "ABCD (0x41424344)", }, | ^ test_printf.c:811:17: note: (near initialization for 'try_cb.code') test_printf.c:811:44: warning: excess elements in scalar initializer 811 | { be32_to_cpu(0x41424344), "ABCD (0x41424344)", }, | ^~~~~~~~~~~~~~~~~~~ test_printf.c:811:44: note: (near initialization for 'try_cb.code') In file included from include/linux/kernel.h:16, from test_printf.c:9: >> include/linux/array_size.h:11:52: error: subscripted value is neither array nor pointer nor vector 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^ test_printf.c:815:37: note: in expansion of macro 'ARRAY_SIZE' 815 | fourcc_pointer_test(try_ch, ARRAY_SIZE(try_ch), "%p4ch"); | ^~~~~~~~~~ In file included from include/linux/build_bug.h:5, from include/linux/init.h:5, from test_printf.c:8: >> include/linux/compiler.h:201:56: error: subscripted value is neither array nor pointer nor vector 201 | #define __is_array(a) (!__same_type((a), &(a)[0])) | ^ include/linux/compiler.h:197:79: note: in definition of macro '__BUILD_BUG_ON_ZERO_MSG' 197 | #define __BUILD_BUG_ON_ZERO_MSG(e, msg) ((int)sizeof(struct {_Static_assert(!(e), msg);})) | ^ include/linux/compiler.h:201:35: note: in expansion of macro '__same_type' 201 | #define __is_array(a) (!__same_type((a), &(a)[0])) | ^~~~~~~~~~~ include/linux/compiler.h:202:58: note: in expansion of macro '__is_array' 202 | #define __must_be_array(a) __BUILD_BUG_ON_ZERO_MSG(!__is_array(a), \ | ^~~~~~~~~~ include/linux/array_size.h:11:59: note: in expansion of macro '__must_be_array' 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^~~~~~~~~~~~~~~ test_printf.c:815:37: note: in expansion of macro 'ARRAY_SIZE' 815 | fourcc_pointer_test(try_ch, ARRAY_SIZE(try_ch), "%p4ch"); | ^~~~~~~~~~ >> include/linux/compiler.h:197:77: error: expression in static assertion is not an integer 197 | #define __BUILD_BUG_ON_ZERO_MSG(e, msg) ((int)sizeof(struct {_Static_assert(!(e), msg);})) | ^ include/linux/compiler.h:202:33: note: in expansion of macro '__BUILD_BUG_ON_ZERO_MSG' 202 | #define __must_be_array(a) __BUILD_BUG_ON_ZERO_MSG(!__is_array(a), \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/array_size.h:11:59: note: in expansion of macro '__must_be_array' 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^~~~~~~~~~~~~~~ test_printf.c:815:37: note: in expansion of macro 'ARRAY_SIZE' 815 | fourcc_pointer_test(try_ch, ARRAY_SIZE(try_ch), "%p4ch"); | ^~~~~~~~~~ test_printf.c:815:29: error: incompatible type for argument 1 of 'fourcc_pointer_test' 815 | fourcc_pointer_test(try_ch, ARRAY_SIZE(try_ch), "%p4ch"); | ^~~~~~ | | | struct fourcc_struct test_printf.c:784:68: note: expected 'const struct fourcc_struct *' but argument is of type 'struct fourcc_struct' 784 | static void __init fourcc_pointer_test(const struct fourcc_struct *fc, size_t n, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ >> include/linux/array_size.h:11:52: error: subscripted value is neither array nor pointer nor vector 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^ test_printf.c:816:37: note: in expansion of macro 'ARRAY_SIZE' 816 | fourcc_pointer_test(try_cn, ARRAY_SIZE(try_cn), "%p4cn"); | ^~~~~~~~~~ >> include/linux/compiler.h:201:56: error: subscripted value is neither array nor pointer nor vector 201 | #define __is_array(a) (!__same_type((a), &(a)[0])) | ^ include/linux/compiler.h:197:79: note: in definition of macro '__BUILD_BUG_ON_ZERO_MSG' 197 | #define __BUILD_BUG_ON_ZERO_MSG(e, msg) ((int)sizeof(struct {_Static_assert(!(e), msg);})) | ^ include/linux/compiler.h:201:35: note: in expansion of macro '__same_type' 201 | #define __is_array(a) (!__same_type((a), &(a)[0])) | ^~~~~~~~~~~ include/linux/compiler.h:202:58: note: in expansion of macro '__is_array' 202 | #define __must_be_array(a) __BUILD_BUG_ON_ZERO_MSG(!__is_array(a), \ | ^~~~~~~~~~ include/linux/array_size.h:11:59: note: in expansion of macro '__must_be_array' 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^~~~~~~~~~~~~~~ test_printf.c:816:37: note: in expansion of macro 'ARRAY_SIZE' 816 | fourcc_pointer_test(try_cn, ARRAY_SIZE(try_cn), "%p4cn"); | ^~~~~~~~~~ >> include/linux/compiler.h:197:77: error: expression in static assertion is not an integer 197 | #define __BUILD_BUG_ON_ZERO_MSG(e, msg) ((int)sizeof(struct {_Static_assert(!(e), msg);})) | ^ include/linux/compiler.h:202:33: note: in expansion of macro '__BUILD_BUG_ON_ZERO_MSG' 202 | #define __must_be_array(a) __BUILD_BUG_ON_ZERO_MSG(!__is_array(a), \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/array_size.h:11:59: note: in expansion of macro '__must_be_array' 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^~~~~~~~~~~~~~~ test_printf.c:816:37: note: in expansion of macro 'ARRAY_SIZE' 816 | fourcc_pointer_test(try_cn, ARRAY_SIZE(try_cn), "%p4cn"); | ^~~~~~~~~~ test_printf.c:816:29: error: incompatible type for argument 1 of 'fourcc_pointer_test' 816 | fourcc_pointer_test(try_cn, ARRAY_SIZE(try_cn), "%p4cn"); | ^~~~~~ | | | struct fourcc_struct test_printf.c:784:68: note: expected 'const struct fourcc_struct *' but argument is of type 'struct fourcc_struct' 784 | static void __init fourcc_pointer_test(const struct fourcc_struct *fc, size_t n, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ >> include/linux/array_size.h:11:52: error: subscripted value is neither array nor pointer nor vector 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^ test_printf.c:817:37: note: in expansion of macro 'ARRAY_SIZE' 817 | fourcc_pointer_test(try_cl, ARRAY_SIZE(try_cl), "%p4cl"); | ^~~~~~~~~~ >> include/linux/compiler.h:201:56: error: subscripted value is neither array nor pointer nor vector 201 | #define __is_array(a) (!__same_type((a), &(a)[0])) | ^ include/linux/compiler.h:197:79: note: in definition of macro '__BUILD_BUG_ON_ZERO_MSG' 197 | #define __BUILD_BUG_ON_ZERO_MSG(e, msg) ((int)sizeof(struct {_Static_assert(!(e), msg);})) | ^ include/linux/compiler.h:201:35: note: in expansion of macro '__same_type' 201 | #define __is_array(a) (!__same_type((a), &(a)[0])) | ^~~~~~~~~~~ include/linux/compiler.h:202:58: note: in expansion of macro '__is_array' 202 | #define __must_be_array(a) __BUILD_BUG_ON_ZERO_MSG(!__is_array(a), \ | ^~~~~~~~~~ include/linux/array_size.h:11:59: note: in expansion of macro '__must_be_array' 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^~~~~~~~~~~~~~~ test_printf.c:817:37: note: in expansion of macro 'ARRAY_SIZE' 817 | fourcc_pointer_test(try_cl, ARRAY_SIZE(try_cl), "%p4cl"); | ^~~~~~~~~~ >> include/linux/compiler.h:197:77: error: expression in static assertion is not an integer 197 | #define __BUILD_BUG_ON_ZERO_MSG(e, msg) ((int)sizeof(struct {_Static_assert(!(e), msg);})) | ^ include/linux/compiler.h:202:33: note: in expansion of macro '__BUILD_BUG_ON_ZERO_MSG' 202 | #define __must_be_array(a) __BUILD_BUG_ON_ZERO_MSG(!__is_array(a), \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/array_size.h:11:59: note: in expansion of macro '__must_be_array' 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^~~~~~~~~~~~~~~ test_printf.c:817:37: note: in expansion of macro 'ARRAY_SIZE' 817 | fourcc_pointer_test(try_cl, ARRAY_SIZE(try_cl), "%p4cl"); | ^~~~~~~~~~ test_printf.c:817:29: error: incompatible type for argument 1 of 'fourcc_pointer_test' 817 | fourcc_pointer_test(try_cl, ARRAY_SIZE(try_cl), "%p4cl"); | ^~~~~~ | | | struct fourcc_struct test_printf.c:784:68: note: expected 'const struct fourcc_struct *' but argument is of type 'struct fourcc_struct' 784 | static void __init fourcc_pointer_test(const struct fourcc_struct *fc, size_t n, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ >> include/linux/array_size.h:11:52: error: subscripted value is neither array nor pointer nor vector 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^ test_printf.c:818:37: note: in expansion of macro 'ARRAY_SIZE' 818 | fourcc_pointer_test(try_cb, ARRAY_SIZE(try_cb), "%p4cb"); | ^~~~~~~~~~ >> include/linux/compiler.h:201:56: error: subscripted value is neither array nor pointer nor vector 201 | #define __is_array(a) (!__same_type((a), &(a)[0])) | ^ include/linux/compiler.h:197:79: note: in definition of macro '__BUILD_BUG_ON_ZERO_MSG' 197 | #define __BUILD_BUG_ON_ZERO_MSG(e, msg) ((int)sizeof(struct {_Static_assert(!(e), msg);})) | ^ include/linux/compiler.h:201:35: note: in expansion of macro '__same_type' 201 | #define __is_array(a) (!__same_type((a), &(a)[0])) | ^~~~~~~~~~~ include/linux/compiler.h:202:58: note: in expansion of macro '__is_array' 202 | #define __must_be_array(a) __BUILD_BUG_ON_ZERO_MSG(!__is_array(a), \ | ^~~~~~~~~~ include/linux/array_size.h:11:59: note: in expansion of macro '__must_be_array' 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^~~~~~~~~~~~~~~ test_printf.c:818:37: note: in expansion of macro 'ARRAY_SIZE' 818 | fourcc_pointer_test(try_cb, ARRAY_SIZE(try_cb), "%p4cb"); | ^~~~~~~~~~ >> include/linux/compiler.h:197:77: error: expression in static assertion is not an integer 197 | #define __BUILD_BUG_ON_ZERO_MSG(e, msg) ((int)sizeof(struct {_Static_assert(!(e), msg);})) | ^ include/linux/compiler.h:202:33: note: in expansion of macro '__BUILD_BUG_ON_ZERO_MSG' 202 | #define __must_be_array(a) __BUILD_BUG_ON_ZERO_MSG(!__is_array(a), \ | ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/array_size.h:11:59: note: in expansion of macro '__must_be_array' 11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) | ^~~~~~~~~~~~~~~ test_printf.c:818:37: note: in expansion of macro 'ARRAY_SIZE' 818 | fourcc_pointer_test(try_cb, ARRAY_SIZE(try_cb), "%p4cb"); | ^~~~~~~~~~ test_printf.c:818:29: error: incompatible type for argument 1 of 'fourcc_pointer_test' 818 | fourcc_pointer_test(try_cb, ARRAY_SIZE(try_cb), "%p4cb"); | ^~~~~~ | | | struct fourcc_struct test_printf.c:784:68: note: expected 'const struct fourcc_struct *' but argument is of type 'struct fourcc_struct' 784 | static void __init fourcc_pointer_test(const struct fourcc_struct *fc, size_t n, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ vim +/fourcc_pointer_test +815 lib/test_printf.c 792 793 static void __init fourcc_pointer(void) 794 { 795 static const struct fourcc_struct try_cc[] = { 796 { 0x3231564e, "NV12 little-endian (0x3231564e)", }, 797 { 0xb231564e, "NV12 big-endian (0xb231564e)", }, 798 { 0x10111213, ".... little-endian (0x10111213)", }, 799 { 0x20303159, "Y10 little-endian (0x20303159)", }, 800 }; 801 static const struct fourcc_struct try_ch = { > 802 { 0x41424344, "ABCD (0x41424344)", }, 803 }; 804 static const struct fourcc_struct try_cn = { 805 { 0x41424344, "DCBA (0x44434241)", }, 806 }; 807 static const struct fourcc_struct try_cl = { 808 { le32_to_cpu(0x41424344), "ABCD (0x41424344)", }, 809 }; 810 static const struct fourcc_struct try_cb = { 811 { be32_to_cpu(0x41424344), "ABCD (0x41424344)", }, 812 }; 813 814 fourcc_pointer_test(try_cc, ARRAY_SIZE(try_cc), "%p4cc"); > 815 fourcc_pointer_test(try_ch, ARRAY_SIZE(try_ch), "%p4ch"); 816 fourcc_pointer_test(try_cn, ARRAY_SIZE(try_cn), "%p4cn"); 817 fourcc_pointer_test(try_cl, ARRAY_SIZE(try_cl), "%p4cl"); 818 fourcc_pointer_test(try_cb, ARRAY_SIZE(try_cb), "%p4cb"); 819 } 820 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki