| .. | .. |
|---|
| 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 { |
|---|