From cfbaac6733b4186f2129e1c438c324a6736e2daf Mon Sep 17 00:00:00 2001 From: Carles Cufi Date: Wed, 8 Dec 2021 13:09:58 +0100 Subject: [PATCH] tests: kernel: Fix address-of-packed-mem warning The warning below appears once -Waddress-of-packed-mem is enabled: /__w/zephyr/zephyr/tests/kernel/mem_protect/userspace/src/main.c: In function 'test_main': /__w/zephyr/zephyr/tests/kernel/mem_protect/userspace/src/main.c:1024:17: error: converting a packed 'k_thread_stack_t' {aka 'struct z_thread_stack_element'} pointer (alignment 1) to a 'struct z_x86_thread_stack_header' pointer (alignment 4096) may result in an unaligned pointer value [-Werror=address-of-packed-member] 1024 | hdr = ((struct z_x86_thread_stack_header *)ztest_thread_stack); To avoid the warning, use an intermediate void * variable. More info in #16587. Signed-off-by: Carles Cufi --- tests/kernel/mem_protect/userspace/src/main.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/kernel/mem_protect/userspace/src/main.c b/tests/kernel/mem_protect/userspace/src/main.c index e0c12487072..14222988ba1 100644 --- a/tests/kernel/mem_protect/userspace/src/main.c +++ b/tests/kernel/mem_protect/userspace/src/main.c @@ -1012,16 +1012,18 @@ void test_main(void) #if defined(CONFIG_ARM64) struct z_arm64_thread_stack_header *hdr; + void *vhdr = ((struct z_arm64_thread_stack_header *)ztest_thread_stack); - hdr = ((struct z_arm64_thread_stack_header *)ztest_thread_stack); + hdr = vhdr; priv_stack_ptr = (((char *)&hdr->privilege_stack) + (sizeof(hdr->privilege_stack) - 1)); #elif defined(CONFIG_ARM) priv_stack_ptr = (char *)z_priv_stack_find(ztest_thread_stack); #elif defined(CONFIG_X86) struct z_x86_thread_stack_header *hdr; + void *vhdr = ((struct z_x86_thread_stack_header *)ztest_thread_stack); - hdr = ((struct z_x86_thread_stack_header *)ztest_thread_stack); + hdr = vhdr; priv_stack_ptr = (((char *)&hdr->privilege_stack) + (sizeof(hdr->privilege_stack) - 1)); #elif defined(CONFIG_RISCV)