Lines Matching +full:- +full:- +full:init

1 // SPDX-License-Identifier: GPL-2.0
3 * Test cases for compiler-based stack variable zeroing via future
8 #include <linux/init.h>
75 #define INIT_STRUCT_dynamic_partial = { .two = arg->two, }
76 #define INIT_STRUCT_dynamic_all = { .one = arg->one, \
77 .two = arg->two, \
78 .three = arg->three, \
79 .four = arg->four, \
107 /* Fill clone type with zero for per-field init. */ \
123 /* Extract stack-defined variable contents. */ \
133 (int)((ssize_t)(uintptr_t)fill_start - \
152 /* no-op to force compiler into ignoring "uninitialized" vars */\
191 return (int)buf[0] | (int)buf[sizeof(buf) - 1]; \
226 /* "sizeof(unsigned long) - 1" byte padding hole here. */
237 #define DEFINE_SCALAR_TEST(name, init) \ argument
238 DEFINE_TEST(name ## _ ## init, name, SCALAR, init)
240 #define DEFINE_SCALAR_TESTS(init) \ argument
241 DEFINE_SCALAR_TEST(u8, init); \
242 DEFINE_SCALAR_TEST(u16, init); \
243 DEFINE_SCALAR_TEST(u32, init); \
244 DEFINE_SCALAR_TEST(u64, init); \
245 DEFINE_TEST(char_array_ ## init, unsigned char, STRING, init)
247 #define DEFINE_STRUCT_TEST(name, init) \ argument
248 DEFINE_TEST(name ## _ ## init, \
249 struct test_ ## name, STRUCT, init)
251 #define DEFINE_STRUCT_TESTS(init) \ argument
252 DEFINE_STRUCT_TEST(small_hole, init); \
253 DEFINE_STRUCT_TEST(big_hole, init); \
254 DEFINE_STRUCT_TEST(trailing_hole, init); \
255 DEFINE_STRUCT_TEST(packed, init)
276 * which was noticed as a special case in porting earlier stack init
328 * non-code areas (i.e. in a switch statement before the first "case").
338 #define test_scalars(init) do { \ in test_stackinit_init() argument
339 failures += test_u8_ ## init (); \ in test_stackinit_init()
340 failures += test_u16_ ## init (); \ in test_stackinit_init()
341 failures += test_u32_ ## init (); \ in test_stackinit_init()
342 failures += test_u64_ ## init (); \ in test_stackinit_init()
343 failures += test_char_array_ ## init (); \ in test_stackinit_init()
346 #define test_structs(init) do { \ in test_stackinit_init() argument
347 failures += test_small_hole_ ## init (); \ in test_stackinit_init()
348 failures += test_big_hole_ ## init (); \ in test_stackinit_init()
349 failures += test_trailing_hole_ ## init (); \ in test_stackinit_init()
350 failures += test_packed_ ## init (); \ in test_stackinit_init()
381 return failures ? -EINVAL : 0; in test_stackinit_init()