diff --git a/include/clang/Basic/DiagnosticSemaKinds.td b/include/clang/Basic/DiagnosticSemaKinds.td
index 233fe94..95d0773 100644
--- a/include/clang/Basic/DiagnosticSemaKinds.td
+++ b/include/clang/Basic/DiagnosticSemaKinds.td
@@ -874,7 +874,8 @@
 def warn_uninit_self_reference_in_init : Warning<
   "variable %0 is uninitialized when used within its own initialization">,
   InGroup<Uninitialized>;
-def warn_uninit_var : Warning<"variable %0 is possibly uninitialized when used here">,
+def warn_uninit_var : Warning<
+  "variable %0 is uninitialized when used here">,
   InGroup<Uninitialized>, DefaultIgnore;
 def warn_maybe_uninit_var :
   Warning<"variable %0 is possibly uninitialized when used here">,
@@ -882,7 +883,7 @@
 def note_uninit_var_def : Note<
   "variable %0 is declared here">;
 def warn_uninit_var_captured_by_block : Warning<
-  "variable %0 is possibly uninitialized when captured by block">,
+  "variable %0 is uninitialized when captured by block">,
   InGroup<Uninitialized>, DefaultIgnore;
 def warn_maybe_uninit_var_captured_by_block : Warning<
   "variable %0 is possibly uninitialized when captured by block">,
diff --git a/test/Sema/uninit-variables-vectors.c b/test/Sema/uninit-variables-vectors.c
index d59d6fe..10a8ecc 100644
--- a/test/Sema/uninit-variables-vectors.c
+++ b/test/Sema/uninit-variables-vectors.c
@@ -7,10 +7,10 @@
 
 void test1(float *input) {
   __m128 x, y, z, w, X; // expected-note {{variable 'x' is declared here}} expected-note {{variable 'y' is declared here}} expected-note {{variable 'w' is declared here}}  expected-note {{variable 'z' is declared here}}
-  x = _mm_xor_ps(x,x); // expected-warning {{variable 'x' is possibly uninitialized when used here}}
-  y = _mm_xor_ps(y,y); // expected-warning {{variable 'y' is possibly uninitialized when used here}}
-  z = _mm_xor_ps(z,z); // expected-warning {{variable 'z' is possibly uninitialized when used here}}
-  w = _mm_xor_ps(w,w); // expected-warning {{variable 'w' is possibly uninitialized when used here}}
+  x = _mm_xor_ps(x,x); // expected-warning {{variable 'x' is uninitialized when used here}}
+  y = _mm_xor_ps(y,y); // expected-warning {{variable 'y' is uninitialized when used here}}
+  z = _mm_xor_ps(z,z); // expected-warning {{variable 'z' is uninitialized when used here}}
+  w = _mm_xor_ps(w,w); // expected-warning {{variable 'w' is uninitialized when used here}}
   X = _mm_loadu_ps(&input[0]);
   X = _mm_xor_ps(X,X); // no-warning
 }
diff --git a/test/Sema/uninit-variables.c b/test/Sema/uninit-variables.c
index f09d44c..6318f62 100644
--- a/test/Sema/uninit-variables.c
+++ b/test/Sema/uninit-variables.c
@@ -2,7 +2,7 @@
 
 int test1() {
   int x; // expected-note{{variable 'x' is declared here}} expected-note{{add initialization to silence this warning}}
-  return x; // expected-warning{{variable 'x' is possibly uninitialized when used here}}
+  return x; // expected-warning{{variable 'x' is uninitialized when used here}}
 }
 
 int test2() {
@@ -18,19 +18,19 @@
 
 int test4() {
   int x; // expected-note{{variable 'x' is declared here}} expected-note{{add initialization to silence this warning}}
-  ++x; // expected-warning{{variable 'x' is possibly uninitialized when used here}}
+  ++x; // expected-warning{{variable 'x' is uninitialized when used here}}
   return x; 
 }
 
 int test5() {
   int x, y; // expected-note{{variable 'y' is declared here}} expected-note{{add initialization to silence this warning}}
-  x = y; // expected-warning{{variable 'y' is possibly uninitialized when used here}}
+  x = y; // expected-warning{{variable 'y' is uninitialized when used here}}
   return x;
 }
 
 int test6() {
   int x; // expected-note{{variable 'x' is declared here}} expected-note{{add initialization to silence this warning}}
-  x += 2; // expected-warning{{variable 'x' is possibly uninitialized when used here}}
+  x += 2; // expected-warning{{variable 'x' is uninitialized when used here}}
   return x;
 }
 
@@ -94,7 +94,7 @@
 int test15() {
   int x = x; // no-warning: signals intended lack of initialization. \
              // expected-note{{variable 'x' is declared here}}
-  return x; // expected-warning{{variable 'x' is possibly uninitialized when used here}}
+  return x; // expected-warning{{variable 'x' is uninitialized when used here}}
 }
 
 // Don't warn in the following example; shows dataflow confluence.
@@ -109,7 +109,7 @@
   // Don't warn multiple times about the same uninitialized variable
   // along the same path.
   int *x; // expected-note{{variable 'x' is declared here}} expected-note{{add initialization to silence this warning}}
-  *x = 1; // expected-warning{{variable 'x' is possibly uninitialized when used here}}
+  *x = 1; // expected-warning{{variable 'x' is uninitialized when used here}}
   *x = 1; // no-warning
 }
 
@@ -174,13 +174,13 @@
 
 float test25() {
   float x; // expected-note{{variable 'x' is declared here}} expected-note{{add initialization to silence this warning}}
-  return x; // expected-warning{{variable 'x' is possibly uninitialized when used here}}
+  return x; // expected-warning{{variable 'x' is uninitialized when used here}}
 }
 
 typedef int MyInt;
 MyInt test26() {
   MyInt x; // expected-note{{variable 'x' is declared here}} expected-note{{add initialization to silence this warning}}
-  return x; // expected-warning{{variable 'x' is possibly uninitialized when used here}}
+  return x; // expected-warning{{variable 'x' is uninitialized when used here}}
 }
 
 // Test handling of sizeof().
@@ -191,12 +191,12 @@
 
 int test28() {
   int len; // expected-note{{variable 'len' is declared here}} expected-note{{add initialization to silence this warning}}
-  return sizeof(int[len]); // expected-warning{{variable 'len' is possibly uninitialized when used here}}
+  return sizeof(int[len]); // expected-warning{{variable 'len' is uninitialized when used here}}
 }
 
 void test29() {
   int x; // expected-note{{variable 'x' is declared here}} expected-note{{add initialization to silence this warning}}
-  (void) ^{ (void) x; }; // expected-warning{{variable 'x' is possibly uninitialized when captured by block}}
+  (void) ^{ (void) x; }; // expected-warning{{variable 'x' is uninitialized when captured by block}}
 }
 
 void test30() {
@@ -222,7 +222,7 @@
 int test_34() {
   int x; // expected-note{{variable 'x' is declared here}} expected-note{{add initialization to silence this warning}}
   (void) x;
-  return x; // expected-warning{{variable 'x' is possibly uninitialized when used here}}
+  return x; // expected-warning{{variable 'x' is uninitialized when used here}}
 }
 
 // Test that this case doesn't crash.
@@ -264,14 +264,14 @@
 
 int test39(int x) {
   int y; // expected-note {{variable 'y' is declared here}} expected-note{{add initialization to silence this warning}}
-  int z = x + y; // expected-warning {{variable 'y' is possibly uninitialized when used here}}
+  int z = x + y; // expected-warning {{variable 'y' is uninitialized when used here}}
   return z;
 }
 
 
 int test40(int x) {
   int y; // expected-note {{variable 'y' is declared here}} expected-note{{add initialization to silence this warning}}
-  return x ? 1 : y; // expected-warning {{variable 'y' is possibly uninitialized when used here}}
+  return x ? 1 : y; // expected-warning {{variable 'y' is uninitialized when used here}}
 }
 
 int test41(int x) {
@@ -311,7 +311,7 @@
 void test46()
 {
   int i; // expected-note {{variable 'i' is declared here}} expected-note{{add initialization to silence this warning}}
-  int j = i ? : 1; // expected-warning {{variable 'i' is possibly uninitialized when used here}}
+  int j = i ? : 1; // expected-warning {{variable 'i' is uninitialized when used here}}
 }
 
 void *test47(int *i)
diff --git a/test/SemaCXX/uninit-variables.cpp b/test/SemaCXX/uninit-variables.cpp
index 777734c..9b8db6f 100644
--- a/test/SemaCXX/uninit-variables.cpp
+++ b/test/SemaCXX/uninit-variables.cpp
@@ -38,7 +38,7 @@
   if (flag && (x = test3_aux()) == 0) {
     x = 1;
   }
-  return x; // expected-warning{{variable 'x' is possibly uninitialized when used here}}
+  return x; // expected-warning{{variable 'x' is uninitialized when used here}}
 }
 
 enum test4_A {
@@ -46,7 +46,7 @@
 };
 test4_A test4() {
  test4_A a; // expected-note{{variable 'a' is declared here}}
- return a; // expected-warning{{variable 'a' is possibly uninitialized when used here}}
+ return a; // expected-warning{{variable 'a' is uninitialized when used here}}
 }
 
 // This test previously crashed Sema.
diff --git a/test/SemaObjC/uninit-variables.m b/test/SemaObjC/uninit-variables.m
index 22d4438..b5c4918 100644
--- a/test/SemaObjC/uninit-variables.m
+++ b/test/SemaObjC/uninit-variables.m
@@ -4,7 +4,7 @@
 // Test just to ensure the analysis is working.
 int test1() {
   int x; // expected-note{{variable 'x' is declared here}} expected-note{{add initialization}}
-  return x; // expected-warning{{variable 'x' is possibly uninitialized when used here}}
+  return x; // expected-warning{{variable 'x' is uninitialized when used here}}
 }
 
 // Test ObjC fast enumeration.
