From de0861581e99230ff695364e40eb7739632193ed Mon Sep 17 00:00:00 2001 From: Dimenus Date: Mon, 30 Aug 2021 17:20:10 -0500 Subject: [PATCH] Userland: Guard set_jmp.h static_assert check to cpp impls only --- Userland/Libraries/LibC/setjmp.h | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/Userland/Libraries/LibC/setjmp.h b/Userland/Libraries/LibC/setjmp.h index 754acf87a6..2c59fc45e1 100644 --- a/Userland/Libraries/LibC/setjmp.h +++ b/Userland/Libraries/LibC/setjmp.h @@ -48,14 +48,21 @@ struct __jmp_buf { typedef struct __jmp_buf jmp_buf[1]; typedef struct __jmp_buf sigjmp_buf[1]; -#ifdef __i386__ -static_assert(sizeof(struct __jmp_buf) == 32, "struct __jmp_buf unsynchronized with i386/setjmp.S"); -#elif __x86_64__ -static_assert(sizeof(struct __jmp_buf) == 72, "struct __jmp_buf unsynchronized with x86_64/setjmp.S"); -#elif __aarch64__ -static_assert(sizeof(struct __jmp_buf) == 184, "struct __jmp_buf unsynchronized with aarch64/setjmp.S"); -#else -# error + +/** + * Since setjmp.h may be included in ports / c-projects, we need to guard this + * + */ +#ifdef __cplusplus + #ifdef __i386__ + static_assert(sizeof(struct __jmp_buf) == 32, "struct __jmp_buf unsynchronized with i386/setjmp.S"); + #elif __x86_64__ + static_assert(sizeof(struct __jmp_buf) == 72, "struct __jmp_buf unsynchronized with x86_64/setjmp.S"); + #elif __aarch64__ + static_assert(sizeof(struct __jmp_buf) == 184, "struct __jmp_buf unsynchronized with aarch64/setjmp.S"); + #else + #error + #endif #endif /**