merged from trunk revs.4969/4970: 2012-05-02 Kai Tietz <ktietz@redhat.com>
PR 3521401
* gdtoa/strtodnrp.c (__strtod): Add Int_max initializer to fpi.
* gdtoa/strtof.c (__strtof): Add Int_max initializer to fpi0.
* gdtoa/strtopx.c (__strtopx): Add Int_max initializer to fpi0.
PR 3522948
* intrincs/RtlSecureZeroMemory.c: New file.
* Makefile.am: Add RtlSecureZeroMemory.c file.
* Makefile.in: Regenerated.

git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/stable/v2.x@4972 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-crt/ChangeLog b/mingw-w64-crt/ChangeLog
index 55e8dcc..a3cf106 100644
--- a/mingw-w64-crt/ChangeLog
+++ b/mingw-w64-crt/ChangeLog
@@ -1,3 +1,14 @@
+2012-05-02  Kai Tietz  <ktietz@redhat.com>
+
+	PR 3521401
+	* gdtoa/strtodnrp.c (__strtod): Add Int_max initializer to fpi.
+	* gdtoa/strtof.c (__strtof): Add Int_max initializer to fpi0.
+	* gdtoa/strtopx.c (__strtopx): Add Int_max initializer to fpi0.
+	PR 3522948
+	* intrincs/RtlSecureZeroMemory.c: New file.
+	* Makefile.am: Add RtlSecureZeroMemory.c file.
+	* Makefile.in: Regenerated.
+
 2012-01-19  Ozkan Sezer  <sezeroz@gmail.com>
 
 	Partially revert rev. 3656:
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 7a7bec4..742d147 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -135,6 +135,7 @@
   intrincs/ilockxor.c   intrincs/ilockinc.c    intrincs/ilockdec.c intrincs/ilockexch.c intrincs/ilockcxch.c     \
   intrincs/__movsb.c    intrincs/__movsw.c     intrincs/__movsd.c     \
   intrincs/__stosb.c    intrincs/__stosw.c     intrincs/__stosd.c     \
+  intrincs/RtlSecureZeroMemory.c \
   intrincs/currentteb.c intrincs/currentfiber.c intrincs/fiberdata.c  \
   \
   complex/cabs.c     complex/cabsf.c    complex/cabsl.c   complex/cacos.c    complex/cacosf.c   complex/cacosl.c \
diff --git a/mingw-w64-crt/Makefile.in b/mingw-w64-crt/Makefile.in
index 027e7c6..eb93b8f 100644
--- a/mingw-w64-crt/Makefile.in
+++ b/mingw-w64-crt/Makefile.in
@@ -320,7 +320,8 @@
 	intrincs/ilockxor.c intrincs/ilockinc.c intrincs/ilockdec.c \
 	intrincs/ilockexch.c intrincs/ilockcxch.c intrincs/__movsb.c \
 	intrincs/__movsw.c intrincs/__movsd.c intrincs/__stosb.c \
-	intrincs/__stosw.c intrincs/__stosd.c intrincs/currentteb.c \
+	intrincs/__stosw.c intrincs/__stosd.c \
+	intrincs/RtlSecureZeroMemory.c intrincs/currentteb.c \
 	intrincs/currentfiber.c intrincs/fiberdata.c complex/cabs.c \
 	complex/cabsf.c complex/cabsl.c complex/cacos.c \
 	complex/cacosf.c complex/cacosl.c complex/carg.c \
@@ -516,6 +517,7 @@
 	intrincs/lib32_libmingwex_a-__stosb.$(OBJEXT) \
 	intrincs/lib32_libmingwex_a-__stosw.$(OBJEXT) \
 	intrincs/lib32_libmingwex_a-__stosd.$(OBJEXT) \
+	intrincs/lib32_libmingwex_a-RtlSecureZeroMemory.$(OBJEXT) \
 	intrincs/lib32_libmingwex_a-currentteb.$(OBJEXT) \
 	intrincs/lib32_libmingwex_a-currentfiber.$(OBJEXT) \
 	intrincs/lib32_libmingwex_a-fiberdata.$(OBJEXT) \
@@ -1280,7 +1282,8 @@
 	intrincs/ilockxor.c intrincs/ilockinc.c intrincs/ilockdec.c \
 	intrincs/ilockexch.c intrincs/ilockcxch.c intrincs/__movsb.c \
 	intrincs/__movsw.c intrincs/__movsd.c intrincs/__stosb.c \
-	intrincs/__stosw.c intrincs/__stosd.c intrincs/currentteb.c \
+	intrincs/__stosw.c intrincs/__stosd.c \
+	intrincs/RtlSecureZeroMemory.c intrincs/currentteb.c \
 	intrincs/currentfiber.c intrincs/fiberdata.c complex/cabs.c \
 	complex/cabsf.c complex/cabsl.c complex/cacos.c \
 	complex/cacosf.c complex/cacosl.c complex/carg.c \
@@ -1484,6 +1487,7 @@
 	intrincs/lib64_libmingwex_a-__stosb.$(OBJEXT) \
 	intrincs/lib64_libmingwex_a-__stosw.$(OBJEXT) \
 	intrincs/lib64_libmingwex_a-__stosd.$(OBJEXT) \
+	intrincs/lib64_libmingwex_a-RtlSecureZeroMemory.$(OBJEXT) \
 	intrincs/lib64_libmingwex_a-currentteb.$(OBJEXT) \
 	intrincs/lib64_libmingwex_a-currentfiber.$(OBJEXT) \
 	intrincs/lib64_libmingwex_a-fiberdata.$(OBJEXT) \
@@ -3218,6 +3222,7 @@
   intrincs/ilockxor.c   intrincs/ilockinc.c    intrincs/ilockdec.c intrincs/ilockexch.c intrincs/ilockcxch.c     \
   intrincs/__movsb.c    intrincs/__movsw.c     intrincs/__movsd.c     \
   intrincs/__stosb.c    intrincs/__stosw.c     intrincs/__stosd.c     \
+  intrincs/RtlSecureZeroMemory.c \
   intrincs/currentteb.c intrincs/currentfiber.c intrincs/fiberdata.c  \
   \
   complex/cabs.c     complex/cabsf.c    complex/cabsl.c   complex/cacos.c    complex/cacosf.c   complex/cacosl.c \
@@ -4660,6 +4665,8 @@
 	intrincs/$(am__dirstamp) intrincs/$(DEPDIR)/$(am__dirstamp)
 intrincs/lib32_libmingwex_a-__stosd.$(OBJEXT):  \
 	intrincs/$(am__dirstamp) intrincs/$(DEPDIR)/$(am__dirstamp)
+intrincs/lib32_libmingwex_a-RtlSecureZeroMemory.$(OBJEXT):  \
+	intrincs/$(am__dirstamp) intrincs/$(DEPDIR)/$(am__dirstamp)
 intrincs/lib32_libmingwex_a-currentteb.$(OBJEXT):  \
 	intrincs/$(am__dirstamp) intrincs/$(DEPDIR)/$(am__dirstamp)
 intrincs/lib32_libmingwex_a-currentfiber.$(OBJEXT):  \
@@ -6083,6 +6090,8 @@
 	intrincs/$(am__dirstamp) intrincs/$(DEPDIR)/$(am__dirstamp)
 intrincs/lib64_libmingwex_a-__stosd.$(OBJEXT):  \
 	intrincs/$(am__dirstamp) intrincs/$(DEPDIR)/$(am__dirstamp)
+intrincs/lib64_libmingwex_a-RtlSecureZeroMemory.$(OBJEXT):  \
+	intrincs/$(am__dirstamp) intrincs/$(DEPDIR)/$(am__dirstamp)
 intrincs/lib64_libmingwex_a-currentteb.$(OBJEXT):  \
 	intrincs/$(am__dirstamp) intrincs/$(DEPDIR)/$(am__dirstamp)
 intrincs/lib64_libmingwex_a-currentfiber.$(OBJEXT):  \
@@ -8275,6 +8284,7 @@
 	-rm -f gdtoa/lib64_libmingwex_a-strtopx.$(OBJEXT)
 	-rm -f gdtoa/lib64_libmingwex_a-sum.$(OBJEXT)
 	-rm -f gdtoa/lib64_libmingwex_a-ulp.$(OBJEXT)
+	-rm -f intrincs/lib32_libmingwex_a-RtlSecureZeroMemory.$(OBJEXT)
 	-rm -f intrincs/lib32_libmingwex_a-__movsb.$(OBJEXT)
 	-rm -f intrincs/lib32_libmingwex_a-__movsd.$(OBJEXT)
 	-rm -f intrincs/lib32_libmingwex_a-__movsw.$(OBJEXT)
@@ -8350,6 +8360,7 @@
 	-rm -f intrincs/lib32_libmingwex_a-writefsdword.$(OBJEXT)
 	-rm -f intrincs/lib32_libmingwex_a-writefsword.$(OBJEXT)
 	-rm -f intrincs/lib32_libmingwex_a-writemsr.$(OBJEXT)
+	-rm -f intrincs/lib64_libmingwex_a-RtlSecureZeroMemory.$(OBJEXT)
 	-rm -f intrincs/lib64_libmingwex_a-__movsb.$(OBJEXT)
 	-rm -f intrincs/lib64_libmingwex_a-__movsd.$(OBJEXT)
 	-rm -f intrincs/lib64_libmingwex_a-__movsq.$(OBJEXT)
@@ -9755,6 +9766,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@gdtoa/$(DEPDIR)/lib64_libmingwex_a-strtopx.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@gdtoa/$(DEPDIR)/lib64_libmingwex_a-sum.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@gdtoa/$(DEPDIR)/lib64_libmingwex_a-ulp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@intrincs/$(DEPDIR)/lib32_libmingwex_a-RtlSecureZeroMemory.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@intrincs/$(DEPDIR)/lib32_libmingwex_a-__movsb.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@intrincs/$(DEPDIR)/lib32_libmingwex_a-__movsd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@intrincs/$(DEPDIR)/lib32_libmingwex_a-__movsw.Po@am__quote@
@@ -9830,6 +9842,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@intrincs/$(DEPDIR)/lib32_libmingwex_a-writefsdword.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@intrincs/$(DEPDIR)/lib32_libmingwex_a-writefsword.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@intrincs/$(DEPDIR)/lib32_libmingwex_a-writemsr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@intrincs/$(DEPDIR)/lib64_libmingwex_a-RtlSecureZeroMemory.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@intrincs/$(DEPDIR)/lib64_libmingwex_a-__movsb.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@intrincs/$(DEPDIR)/lib64_libmingwex_a-__movsd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@intrincs/$(DEPDIR)/lib64_libmingwex_a-__movsq.Po@am__quote@
@@ -13596,6 +13609,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o intrincs/lib32_libmingwex_a-__stosd.obj `if test -f 'intrincs/__stosd.c'; then $(CYGPATH_W) 'intrincs/__stosd.c'; else $(CYGPATH_W) '$(srcdir)/intrincs/__stosd.c'; fi`
 
+intrincs/lib32_libmingwex_a-RtlSecureZeroMemory.o: intrincs/RtlSecureZeroMemory.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT intrincs/lib32_libmingwex_a-RtlSecureZeroMemory.o -MD -MP -MF intrincs/$(DEPDIR)/lib32_libmingwex_a-RtlSecureZeroMemory.Tpo -c -o intrincs/lib32_libmingwex_a-RtlSecureZeroMemory.o `test -f 'intrincs/RtlSecureZeroMemory.c' || echo '$(srcdir)/'`intrincs/RtlSecureZeroMemory.c
+@am__fastdepCC_TRUE@	$(am__mv) intrincs/$(DEPDIR)/lib32_libmingwex_a-RtlSecureZeroMemory.Tpo intrincs/$(DEPDIR)/lib32_libmingwex_a-RtlSecureZeroMemory.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='intrincs/RtlSecureZeroMemory.c' object='intrincs/lib32_libmingwex_a-RtlSecureZeroMemory.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o intrincs/lib32_libmingwex_a-RtlSecureZeroMemory.o `test -f 'intrincs/RtlSecureZeroMemory.c' || echo '$(srcdir)/'`intrincs/RtlSecureZeroMemory.c
+
+intrincs/lib32_libmingwex_a-RtlSecureZeroMemory.obj: intrincs/RtlSecureZeroMemory.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT intrincs/lib32_libmingwex_a-RtlSecureZeroMemory.obj -MD -MP -MF intrincs/$(DEPDIR)/lib32_libmingwex_a-RtlSecureZeroMemory.Tpo -c -o intrincs/lib32_libmingwex_a-RtlSecureZeroMemory.obj `if test -f 'intrincs/RtlSecureZeroMemory.c'; then $(CYGPATH_W) 'intrincs/RtlSecureZeroMemory.c'; else $(CYGPATH_W) '$(srcdir)/intrincs/RtlSecureZeroMemory.c'; fi`
+@am__fastdepCC_TRUE@	$(am__mv) intrincs/$(DEPDIR)/lib32_libmingwex_a-RtlSecureZeroMemory.Tpo intrincs/$(DEPDIR)/lib32_libmingwex_a-RtlSecureZeroMemory.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='intrincs/RtlSecureZeroMemory.c' object='intrincs/lib32_libmingwex_a-RtlSecureZeroMemory.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o intrincs/lib32_libmingwex_a-RtlSecureZeroMemory.obj `if test -f 'intrincs/RtlSecureZeroMemory.c'; then $(CYGPATH_W) 'intrincs/RtlSecureZeroMemory.c'; else $(CYGPATH_W) '$(srcdir)/intrincs/RtlSecureZeroMemory.c'; fi`
+
 intrincs/lib32_libmingwex_a-currentteb.o: intrincs/currentteb.c
 @am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT intrincs/lib32_libmingwex_a-currentteb.o -MD -MP -MF intrincs/$(DEPDIR)/lib32_libmingwex_a-currentteb.Tpo -c -o intrincs/lib32_libmingwex_a-currentteb.o `test -f 'intrincs/currentteb.c' || echo '$(srcdir)/'`intrincs/currentteb.c
 @am__fastdepCC_TRUE@	$(am__mv) intrincs/$(DEPDIR)/lib32_libmingwex_a-currentteb.Tpo intrincs/$(DEPDIR)/lib32_libmingwex_a-currentteb.Po
@@ -21870,6 +21897,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o intrincs/lib64_libmingwex_a-__stosd.obj `if test -f 'intrincs/__stosd.c'; then $(CYGPATH_W) 'intrincs/__stosd.c'; else $(CYGPATH_W) '$(srcdir)/intrincs/__stosd.c'; fi`
 
+intrincs/lib64_libmingwex_a-RtlSecureZeroMemory.o: intrincs/RtlSecureZeroMemory.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT intrincs/lib64_libmingwex_a-RtlSecureZeroMemory.o -MD -MP -MF intrincs/$(DEPDIR)/lib64_libmingwex_a-RtlSecureZeroMemory.Tpo -c -o intrincs/lib64_libmingwex_a-RtlSecureZeroMemory.o `test -f 'intrincs/RtlSecureZeroMemory.c' || echo '$(srcdir)/'`intrincs/RtlSecureZeroMemory.c
+@am__fastdepCC_TRUE@	$(am__mv) intrincs/$(DEPDIR)/lib64_libmingwex_a-RtlSecureZeroMemory.Tpo intrincs/$(DEPDIR)/lib64_libmingwex_a-RtlSecureZeroMemory.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='intrincs/RtlSecureZeroMemory.c' object='intrincs/lib64_libmingwex_a-RtlSecureZeroMemory.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o intrincs/lib64_libmingwex_a-RtlSecureZeroMemory.o `test -f 'intrincs/RtlSecureZeroMemory.c' || echo '$(srcdir)/'`intrincs/RtlSecureZeroMemory.c
+
+intrincs/lib64_libmingwex_a-RtlSecureZeroMemory.obj: intrincs/RtlSecureZeroMemory.c
+@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT intrincs/lib64_libmingwex_a-RtlSecureZeroMemory.obj -MD -MP -MF intrincs/$(DEPDIR)/lib64_libmingwex_a-RtlSecureZeroMemory.Tpo -c -o intrincs/lib64_libmingwex_a-RtlSecureZeroMemory.obj `if test -f 'intrincs/RtlSecureZeroMemory.c'; then $(CYGPATH_W) 'intrincs/RtlSecureZeroMemory.c'; else $(CYGPATH_W) '$(srcdir)/intrincs/RtlSecureZeroMemory.c'; fi`
+@am__fastdepCC_TRUE@	$(am__mv) intrincs/$(DEPDIR)/lib64_libmingwex_a-RtlSecureZeroMemory.Tpo intrincs/$(DEPDIR)/lib64_libmingwex_a-RtlSecureZeroMemory.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='intrincs/RtlSecureZeroMemory.c' object='intrincs/lib64_libmingwex_a-RtlSecureZeroMemory.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o intrincs/lib64_libmingwex_a-RtlSecureZeroMemory.obj `if test -f 'intrincs/RtlSecureZeroMemory.c'; then $(CYGPATH_W) 'intrincs/RtlSecureZeroMemory.c'; else $(CYGPATH_W) '$(srcdir)/intrincs/RtlSecureZeroMemory.c'; fi`
+
 intrincs/lib64_libmingwex_a-currentteb.o: intrincs/currentteb.c
 @am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT intrincs/lib64_libmingwex_a-currentteb.o -MD -MP -MF intrincs/$(DEPDIR)/lib64_libmingwex_a-currentteb.Tpo -c -o intrincs/lib64_libmingwex_a-currentteb.o `test -f 'intrincs/currentteb.c' || echo '$(srcdir)/'`intrincs/currentteb.c
 @am__fastdepCC_TRUE@	$(am__mv) intrincs/$(DEPDIR)/lib64_libmingwex_a-currentteb.Tpo intrincs/$(DEPDIR)/lib64_libmingwex_a-currentteb.Po
diff --git a/mingw-w64-crt/gdtoa/strtodnrp.c b/mingw-w64-crt/gdtoa/strtodnrp.c
index 4932aec..0503352 100644
--- a/mingw-w64-crt/gdtoa/strtodnrp.c
+++ b/mingw-w64-crt/gdtoa/strtodnrp.c
@@ -39,7 +39,7 @@
 
 double __strtod (const char *s, char **sp)
 {
-	static FPI fpi = { 53, 1-1023-53+1, 2046-1023-53+1, 1, SI };
+	static FPI fpi = { 53, 1-1023-53+1, 2046-1023-53+1, 1, SI, Int_max };
 	ULong bits[2];
 	Long expo;
 	int k;
diff --git a/mingw-w64-crt/gdtoa/strtof.c b/mingw-w64-crt/gdtoa/strtof.c
index 5091695..5f5208a 100644
--- a/mingw-w64-crt/gdtoa/strtof.c
+++ b/mingw-w64-crt/gdtoa/strtof.c
@@ -33,7 +33,7 @@
 
 float __strtof (const char *s, char **sp)
 {
-	static FPI fpi0 = { 24, 1-127-24+1,  254-127-24+1, 1, SI };
+	static FPI fpi0 = { 24, 1-127-24+1,  254-127-24+1, 1, SI, Int_max };
 	ULong bits[1];
 	Long expo;
 	int k;
diff --git a/mingw-w64-crt/gdtoa/strtopx.c b/mingw-w64-crt/gdtoa/strtopx.c
index ce2e967..b077105 100644
--- a/mingw-w64-crt/gdtoa/strtopx.c
+++ b/mingw-w64-crt/gdtoa/strtopx.c
@@ -58,7 +58,8 @@
 
 static int __strtopx (const char *s, char **sp, lD *V)
 {
-	static FPI fpi0 = { 64, 1-16383-64+1, 32766 - 16383 - 64 + 1, 1, SI };
+	static FPI fpi0 = { 64, 1-16383-64+1, 32766 - 16383 - 64 + 1, 1, SI,
+			   Int_max };
 	ULong bits[2];
 	Long expo;
 	int k;
diff --git a/mingw-w64-crt/intrincs/RtlSecureZeroMemory.c b/mingw-w64-crt/intrincs/RtlSecureZeroMemory.c
new file mode 100644
index 0000000..8255a1e
--- /dev/null
+++ b/mingw-w64-crt/intrincs/RtlSecureZeroMemory.c
@@ -0,0 +1,17 @@
+#define __CRT__NO_INLINE 1
+#include <windows.h>
+
+PVOID WINAPI RtlSecureZeroMemory(PVOID ptr,SIZE_T cnt)
+{
+  volatile char *vptr = (volatile char *)ptr;
+#ifdef __x86_64
+  __stosb ((PBYTE)((DWORD64)vptr),0,cnt);
+#else
+  while (cnt != 0)
+    {
+      *vptr++ = 0;
+      cnt--;
+    }
+#endif /* __x86_64 */
+  return ptr;
+}
diff --git a/mingw-w64-crt/revstamp.h b/mingw-w64-crt/revstamp.h
index 43bb66a..9a4446d 100644
--- a/mingw-w64-crt/revstamp.h
+++ b/mingw-w64-crt/revstamp.h
@@ -1,4 +1,4 @@
 /* Do not edit. Autogenerated.  */
-#define __MINGW_W64_REV	"4966"
-#define __MINGW_W64_REV_STAMP "2012-04-28"
+#define __MINGW_W64_REV	"4972"
+#define __MINGW_W64_REV_STAMP "2012-05-02"