2009-04-04  Kai Tietz  <kai.tietz@onevision.com>

        * setjmp.h (_setjmp3): Use for 32-bit instead of _setjmp.
        Additional pass NULL as secondary element for 32-bits.



git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@717 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-headers/include/ChangeLog b/mingw-w64-headers/include/ChangeLog
index c4b66d5..6cb5b08 100644
--- a/mingw-w64-headers/include/ChangeLog
+++ b/mingw-w64-headers/include/ChangeLog
@@ -1,3 +1,8 @@
+2009-04-04  Kai Tietz  <kai.tietz@onevision.com>
+
+	* setjmp.h (_setjmp3): Use for 32-bit instead of _setjmp.
+	Additional pass NULL as secondary element for 32-bits.
+
 2009-04-03  Kai Tietz  <kai.tietz@onevision.com>
 
 	PR/2675096
diff --git a/mingw-w64-headers/include/_mingw.h b/mingw-w64-headers/include/_mingw.h
index ab3a30d..0f1b3d5 100644
--- a/mingw-w64-headers/include/_mingw.h
+++ b/mingw-w64-headers/include/_mingw.h
@@ -182,11 +182,6 @@
 #undef _CRT_PACKING
 #define _CRT_PACKING 8
 
-#ifdef _WIN64
-#undef USE_MINGW_SETJMP_TWO_ARGS
-#define USE_MINGW_SETJMP_TWO_ARGS
-#endif
-
 #pragma pack(push,_CRT_PACKING)
 
 #include <vadefs.h>
diff --git a/mingw-w64-headers/include/setjmp.h b/mingw-w64-headers/include/setjmp.h
index e4f142a..154480e 100644
--- a/mingw-w64-headers/include/setjmp.h
+++ b/mingw-w64-headers/include/setjmp.h
@@ -132,20 +132,33 @@
 
   void * __cdecl __attribute__ ((__nothrow__)) mingw_getsp(void);
 
-#ifdef USE_MINGW_SETJMP_TWO_ARGS
+#ifndef USE_NO_MINGW_SETJMP_TWO_ARGS
 #ifndef _INC_SETJMPEX
-#define setjmp(BUF) _setjmp((BUF),mingw_getsp())
-  int __cdecl __attribute__ ((__nothrow__)) _setjmp(jmp_buf _Buf,void *_Ctx);
+#ifdef _WIN64
+#define setjmp(BUF) _setjmp((BUF), mingw_getsp())
+#else
+#define setjmp(BUF) _setjmp3((BUF), NULL)
+#endif
+  int __cdecl __attribute__ ((__nothrow__)) _setjmp(jmp_buf _Buf, void *_Ctx);
+  int __cdecl __attribute__ ((__nothrow__)) _setjmp3(jmp_buf _Buf, void *_Ctx);
 #else
 #undef setjmp
-#define setjmp(BUF) _setjmpex((BUF),mingw_getsp())
-#define setjmpex(BUF) _setjmpex((BUF),mingw_getsp())
+#ifdef _WIN64
+#define setjmp(BUF) _setjmpex((BUF), mingw_getsp())
+#define setjmpex(BUF) _setjmpex((BUF), mingw_getsp())
+#else
+#define setjmp(BUF) _setjmpex((BUF), NULL)
+#define setjmpex(BUF) _setjmpex((BUF), NULL)
+#endif
   int __cdecl __attribute__ ((__nothrow__)) _setjmpex(jmp_buf _Buf,void *_Ctx);
 #endif
+
 #else
+
 #ifndef _INC_SETJMPEX
 #define setjmp _setjmp
 #endif
+
   int __cdecl __attribute__ ((__nothrow__)) setjmp(jmp_buf _Buf);
 #endif