diff --git a/mingw-w64-headers/crt/setjmp.h b/mingw-w64-headers/crt/setjmp.h
index 2dc7d87..97939f5 100644
--- a/mingw-w64-headers/crt/setjmp.h
+++ b/mingw-w64-headers/crt/setjmp.h
@@ -224,21 +224,21 @@
 #ifndef _INC_SETJMPEX
 #  if defined(_X86_) || defined(__i386__)
 #    define setjmp(BUF) _setjmp3((BUF), NULL)
-#  elif ((defined(_ARM_) || defined(__arm__) || defined(_ARM64_) || defined(__aarch64__)) && (!defined(__SEH__) || !__has_builtin(__builtin_sponentry) || defined(__USE_MINGW_SETJMP_NON_SEH)))
-#    define setjmp(BUF) __mingw_setjmp((BUF))
-#    define longjmp __mingw_longjmp
-  int __cdecl __attribute__ ((__nothrow__,__returns_twice__)) __mingw_setjmp(jmp_buf _Buf);
-  __MINGW_ATTRIB_NORETURN __attribute__ ((__nothrow__)) void __mingw_longjmp(jmp_buf _Buf,int _Value);
-#  elif defined(__SEH__) && !defined(__USE_MINGW_SETJMP_NON_SEH)
-#    if defined(__aarch64__) || defined(_ARM64_) || defined(__arm__) || defined(_ARM_)
-#      define setjmp(BUF) _setjmp((BUF), __builtin_sponentry())
-#    elif (__MINGW_GCC_VERSION < 40702) && !defined(__clang__)
-#      define setjmp(BUF) _setjmp((BUF), mingw_getsp())
+#  elif !defined(__SEH__) || defined(__USE_MINGW_SETJMP_NON_SEH)
+#    if defined(__arm__) || defined(__aarch64__)
+#      define setjmp(BUF) __mingw_setjmp((BUF))
+#      define longjmp __mingw_longjmp
+      int __cdecl __attribute__ ((__nothrow__,__returns_twice__)) __mingw_setjmp(jmp_buf _Buf);
+      __MINGW_ATTRIB_NORETURN __attribute__ ((__nothrow__)) void __mingw_longjmp(jmp_buf _Buf,int _Value);
 #    else
-#      define setjmp(BUF) _setjmp((BUF), __builtin_frame_address (0))
+#      define setjmp(BUF) _setjmp((BUF), NULL)
 #    endif
+#  elif defined(__aarch64__) || defined(__arm__)
+#    define setjmp(BUF) _setjmp((BUF), __builtin_sponentry())
+#  elif (__MINGW_GCC_VERSION < 40702) && !defined(__clang__)
+#    define setjmp(BUF) _setjmp((BUF), mingw_getsp())
 #  else
-#    define setjmp(BUF) _setjmp((BUF), NULL)
+#    define setjmp(BUF) _setjmp((BUF), __builtin_frame_address (0))
 #  endif
   int __cdecl __attribute__ ((__nothrow__,__returns_twice__)) _setjmp(jmp_buf _Buf, void *_Ctx);
   int __cdecl __attribute__ ((__nothrow__,__returns_twice__)) _setjmp3(jmp_buf _Buf, void *_Ctx);
