Browse Source

Userland: Guard set_jmp.h static_assert check to cpp impls only

Dimenus 3 years ago
parent
commit
de0861581e
1 changed files with 15 additions and 8 deletions
  1. 15 8
      Userland/Libraries/LibC/setjmp.h

+ 15 - 8
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
 
 /**