.. | .. |
---|
1 | | -// SPDX-Licenses: GPLv2 |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0 |
---|
2 | 2 | /* |
---|
3 | 3 | * Test cases for compiler-based stack variable zeroing via future |
---|
4 | 4 | * compiler flags or CONFIG_GCC_PLUGIN_STRUCTLEAK*. |
---|
.. | .. |
---|
67 | 67 | #define INIT_STRUCT_none /**/ |
---|
68 | 68 | #define INIT_STRUCT_zero = { } |
---|
69 | 69 | #define INIT_STRUCT_static_partial = { .two = 0, } |
---|
70 | | -#define INIT_STRUCT_static_all = { .one = arg->one, \ |
---|
71 | | - .two = arg->two, \ |
---|
72 | | - .three = arg->three, \ |
---|
73 | | - .four = arg->four, \ |
---|
| 70 | +#define INIT_STRUCT_static_all = { .one = 0, \ |
---|
| 71 | + .two = 0, \ |
---|
| 72 | + .three = 0, \ |
---|
| 73 | + .four = 0, \ |
---|
74 | 74 | } |
---|
75 | 75 | #define INIT_STRUCT_dynamic_partial = { .two = arg->two, } |
---|
76 | 76 | #define INIT_STRUCT_dynamic_all = { .one = arg->one, \ |
---|
.. | .. |
---|
84 | 84 | var.one = 0; \ |
---|
85 | 85 | var.two = 0; \ |
---|
86 | 86 | var.three = 0; \ |
---|
87 | | - memset(&var.four, 0, \ |
---|
88 | | - sizeof(var.four)) |
---|
| 87 | + var.four = 0 |
---|
89 | 88 | |
---|
90 | 89 | /* |
---|
91 | 90 | * @name: unique string name for the test |
---|
.. | .. |
---|
210 | 209 | unsigned long four; |
---|
211 | 210 | }; |
---|
212 | 211 | |
---|
213 | | -/* Try to trigger unhandled padding in a structure. */ |
---|
214 | | -struct test_aligned { |
---|
215 | | - u32 internal1; |
---|
216 | | - u64 internal2; |
---|
217 | | -} __aligned(64); |
---|
218 | | - |
---|
| 212 | +/* Trigger unhandled padding in a structure. */ |
---|
219 | 213 | struct test_big_hole { |
---|
220 | 214 | u8 one; |
---|
221 | 215 | u8 two; |
---|
222 | 216 | u8 three; |
---|
223 | 217 | /* 61 byte padding hole here. */ |
---|
224 | | - struct test_aligned four; |
---|
| 218 | + u8 four __aligned(64); |
---|
225 | 219 | } __aligned(64); |
---|
226 | 220 | |
---|
227 | 221 | struct test_trailing_hole { |
---|