Index: test/Preprocessor/init.c
===================================================================
--- test/Preprocessor/init.c	(revision 122970)
+++ test/Preprocessor/init.c	(working copy)
@@ -217,7 +217,7 @@
 // ARM:#define __WCHAR_MAX__ 2147483647
 // ARM:#define __WCHAR_TYPE__ int
 // ARM:#define __WCHAR_WIDTH__ 32
-// ARM:#define __WINT_TYPE__ int
+// ARM:#define __WINT_TYPE__ unsigned int
 // ARM:#define __WINT_WIDTH__ 32
 // ARM:#define __arm 1
 // ARM:#define __arm__ 1
@@ -313,7 +313,7 @@
 // BFIN:#define __WCHAR_MAX__ 2147483647
 // BFIN:#define __WCHAR_TYPE__ int
 // BFIN:#define __WCHAR_WIDTH__ 32
-// BFIN:#define __WINT_TYPE__ int
+// BFIN:#define __WINT_TYPE__ unsigned int
 // BFIN:#define __WINT_WIDTH__ 32
 // BFIN:#define __bfin 1
 // BFIN:#define __bfin__ 1
@@ -408,7 +408,7 @@
 // I386:#define __WCHAR_MAX__ 2147483647
 // I386:#define __WCHAR_TYPE__ int
 // I386:#define __WCHAR_WIDTH__ 32
-// I386:#define __WINT_TYPE__ int
+// I386:#define __WINT_TYPE__ unsigned int
 // I386:#define __WINT_WIDTH__ 32
 // I386:#define __i386 1
 // I386:#define __i386__ 1
@@ -504,7 +504,7 @@
 // MSP430:#define __WCHAR_MAX__ 32767
 // MSP430:#define __WCHAR_TYPE__ int
 // MSP430:#define __WCHAR_WIDTH__ 16
-// MSP430:#define __WINT_TYPE__ int
+// MSP430:#define __WINT_TYPE__ unsigned int
 // MSP430:#define __WINT_WIDTH__ 16
 // MSP430:#define __clang__ 1
 //
@@ -605,7 +605,7 @@
 // PPC64:#define __WCHAR_MAX__ 2147483647
 // PPC64:#define __WCHAR_TYPE__ int
 // PPC64:#define __WCHAR_WIDTH__ 32
-// PPC64:#define __WINT_TYPE__ int
+// PPC64:#define __WINT_TYPE__ unsigned int
 // PPC64:#define __WINT_WIDTH__ 32
 // PPC64:#define __ppc64__ 1
 // PPC64:#define __ppc__ 1
@@ -704,7 +704,7 @@
 // PPC:#define __WCHAR_MAX__ 2147483647
 // PPC:#define __WCHAR_TYPE__ int
 // PPC:#define __WCHAR_WIDTH__ 32
-// PPC:#define __WINT_TYPE__ int
+// PPC:#define __WINT_TYPE__ unsigned int
 // PPC:#define __WINT_WIDTH__ 32
 // PPC:#define __ppc__ 1
 //
@@ -795,7 +795,7 @@
 // S390X:#define __WCHAR_MAX__ 2147483647
 // S390X:#define __WCHAR_TYPE__ int
 // S390X:#define __WCHAR_WIDTH__ 32
-// S390X:#define __WINT_TYPE__ int
+// S390X:#define __WINT_TYPE__ unsigned int
 // S390X:#define __WINT_WIDTH__ 32
 // S390X:#define __s390__ 1
 // S390X:#define __s390x__ 1
@@ -888,7 +888,7 @@
 // SPARC:#define __WCHAR_MAX__ 2147483647
 // SPARC:#define __WCHAR_TYPE__ int
 // SPARC:#define __WCHAR_WIDTH__ 32
-// SPARC:#define __WINT_TYPE__ int
+// SPARC:#define __WINT_TYPE__ unsigned int
 // SPARC:#define __WINT_WIDTH__ 32
 // SPARC:#define __sparc 1
 // SPARC:#define __sparc__ 1
@@ -981,7 +981,7 @@
 // TCE:#define __WCHAR_MAX__ 2147483647
 // TCE:#define __WCHAR_TYPE__ int
 // TCE:#define __WCHAR_WIDTH__ 32
-// TCE:#define __WINT_TYPE__ int
+// TCE:#define __WINT_TYPE__ unsigned int
 // TCE:#define __WINT_WIDTH__ 32
 // TCE:#define __tce 1
 // TCE:#define __tce__ 1
@@ -1083,7 +1083,7 @@
 // X86_64:#define __WCHAR_MAX__ 2147483647
 // X86_64:#define __WCHAR_TYPE__ int
 // X86_64:#define __WCHAR_WIDTH__ 32
-// X86_64:#define __WINT_TYPE__ int
+// X86_64:#define __WINT_TYPE__ unsigned int
 // X86_64:#define __WINT_WIDTH__ 32
 // X86_64:#define __amd64 1
 // X86_64:#define __amd64__ 1
Index: test/Preprocessor/stdint.c
===================================================================
--- test/Preprocessor/stdint.c	(revision 122970)
+++ test/Preprocessor/stdint.c	(working copy)
@@ -87,8 +87,8 @@
 //
 // ARM:SIG_ATOMIC_MIN_ (-2147483647 -1)
 // ARM:SIG_ATOMIC_MAX_ 2147483647
-// ARM:WINT_MIN_ (-2147483647 -1)
-// ARM:WINT_MAX_ 2147483647
+// ARM:WINT_MIN_ 0
+// ARM:WINT_MAX_ 4294967295U
 //
 // ARM:WCHAR_MAX_ 2147483647
 // ARM:WCHAR_MIN_ (-2147483647 -1)
@@ -195,8 +195,8 @@
 //
 // BFIN:SIG_ATOMIC_MIN_ (-2147483647 -1)
 // BFIN:SIG_ATOMIC_MAX_ 2147483647
-// BFIN:WINT_MIN_ (-2147483647 -1)
-// BFIN:WINT_MAX_ 2147483647
+// BFIN:WINT_MIN_ 0
+// BFIN:WINT_MAX_ 4294967295U
 //
 // BFIN:WCHAR_MAX_ 2147483647
 // BFIN:WCHAR_MIN_ (-2147483647 -1)
@@ -303,8 +303,8 @@
 //
 // I386:SIG_ATOMIC_MIN_ (-2147483647 -1)
 // I386:SIG_ATOMIC_MAX_ 2147483647
-// I386:WINT_MIN_ (-2147483647 -1)
-// I386:WINT_MAX_ 2147483647
+// I386:WINT_MIN_ 0
+// I386:WINT_MAX_ 4294967295U
 //
 // I386:WCHAR_MAX_ 2147483647
 // I386:WCHAR_MIN_ (-2147483647 -1)
@@ -403,8 +403,8 @@
 //
 // MSP430:SIG_ATOMIC_MIN_ (-2147483647L -1)
 // MSP430:SIG_ATOMIC_MAX_ 2147483647L
-// MSP430:WINT_MIN_ (-32767 -1)
-// MSP430:WINT_MAX_ 32767
+// MSP430:WINT_MIN_ 0
+// MSP430:WINT_MAX_ 65535U
 //
 // MSP430:WCHAR_MAX_ 32767
 // MSP430:WCHAR_MIN_ (-32767 -1)
@@ -510,8 +510,8 @@
 //
 // PPC64:SIG_ATOMIC_MIN_ (-2147483647 -1)
 // PPC64:SIG_ATOMIC_MAX_ 2147483647
-// PPC64:WINT_MIN_ (-2147483647 -1)
-// PPC64:WINT_MAX_ 2147483647
+// PPC64:WINT_MIN_ 0
+// PPC64:WINT_MAX_ 4294967295U
 //
 // PPC64:WCHAR_MAX_ 2147483647
 // PPC64:WCHAR_MIN_ (-2147483647 -1)
@@ -618,8 +618,8 @@
 //
 // PPC:SIG_ATOMIC_MIN_ (-2147483647 -1)
 // PPC:SIG_ATOMIC_MAX_ 2147483647
-// PPC:WINT_MIN_ (-2147483647 -1)
-// PPC:WINT_MAX_ 2147483647
+// PPC:WINT_MIN_ 0
+// PPC:WINT_MAX_ 4294967295U
 //
 // PPC:WCHAR_MAX_ 2147483647
 // PPC:WCHAR_MIN_ (-2147483647 -1)
@@ -725,8 +725,8 @@
 //
 // S390X:SIG_ATOMIC_MIN_ (-2147483647 -1)
 // S390X:SIG_ATOMIC_MAX_ 2147483647
-// S390X:WINT_MIN_ (-2147483647 -1)
-// S390X:WINT_MAX_ 2147483647
+// S390X:WINT_MIN_ 0
+// S390X:WINT_MAX_ 4294967295U
 //
 // S390X:WCHAR_MAX_ 2147483647
 // S390X:WCHAR_MIN_ (-2147483647 -1)
@@ -832,8 +832,8 @@
 //
 // SPARC:SIG_ATOMIC_MIN_ (-2147483647 -1)
 // SPARC:SIG_ATOMIC_MAX_ 2147483647
-// SPARC:WINT_MIN_ (-2147483647 -1)
-// SPARC:WINT_MAX_ 2147483647
+// SPARC:WINT_MIN_ 0
+// SPARC:WINT_MAX_ 4294967295U
 //
 // SPARC:WCHAR_MAX_ 2147483647
 // SPARC:WCHAR_MIN_ (-2147483647 -1)
@@ -932,8 +932,8 @@
 //
 // TCE:SIG_ATOMIC_MIN_ (-2147483647 -1)
 // TCE:SIG_ATOMIC_MAX_ 2147483647
-// TCE:WINT_MIN_ (-2147483647 -1)
-// TCE:WINT_MAX_ 2147483647
+// TCE:WINT_MIN_ 0
+// TCE:WINT_MAX_ 4294967295U
 //
 // TCE:WCHAR_MAX_ 2147483647
 // TCE:WCHAR_MIN_ (-2147483647 -1)
@@ -1040,8 +1040,8 @@
 //
 // X86_64:SIG_ATOMIC_MIN_ (-2147483647 -1)
 // X86_64:SIG_ATOMIC_MAX_ 2147483647
-// X86_64:WINT_MIN_ (-2147483647 -1)
-// X86_64:WINT_MAX_ 2147483647
+// X86_64:WINT_MIN_ 0
+// X86_64:WINT_MAX_ 4294967295U
 //
 // X86_64:WCHAR_MAX_ 2147483647
 // X86_64:WCHAR_MIN_ (-2147483647 -1)
@@ -1081,8 +1081,8 @@
 // JOIN:UINTMAX_MAX_ 18446744073709551615ULL
 // JOIN:SIG_ATOMIC_MIN_ (-2147483647 -1)
 // JOIN:SIG_ATOMIC_MAX_ 2147483647
-// JOIN:WINT_MIN_ (-2147483647 -1)
-// JOIN:WINT_MAX_ 2147483647
+// JOIN:WINT_MIN_ 0
+// JOIN:WINT_MAX_ 4294967295U
 // JOIN:WCHAR_MAX_ 2147483647
 // JOIN:WCHAR_MIN_ (-2147483647 -1)
 // JOIN:INTMAX_C_(0) 0LL
Index: lib/Basic/TargetInfo.cpp
===================================================================
--- lib/Basic/TargetInfo.cpp	(revision 122970)
+++ lib/Basic/TargetInfo.cpp	(working copy)
@@ -44,7 +44,7 @@
   UIntMaxType = UnsignedLongLong;
   IntPtrType = SignedLong;
   WCharType = SignedInt;
-  WIntType = SignedInt;
+  WIntType = UnsignedInt;
   Char16Type = UnsignedShort;
   Char32Type = UnsignedInt;
   Int64Type = SignedLongLong;
Index: lib/Headers/stdint.h
===================================================================
--- lib/Headers/stdint.h	(revision 122970)
+++ lib/Headers/stdint.h	(working copy)
@@ -630,8 +630,8 @@
 /* C99 7.18.3 Limits of other integer types. */
 #define SIG_ATOMIC_MIN __INTN_MIN(__SIG_ATOMIC_WIDTH__)
 #define SIG_ATOMIC_MAX __INTN_MAX(__SIG_ATOMIC_WIDTH__)
-#define WINT_MIN       __INTN_MIN(__WINT_WIDTH__)
-#define WINT_MAX       __INTN_MAX(__WINT_WIDTH__)
+#define WINT_MIN       0
+#define WINT_MAX       __UINTN_MAX(__WINT_WIDTH__)
 
 /* FIXME: if we ever support a target with unsigned wchar_t, this should be
  * 0 .. Max.
