diff --git a/include/clang/Basic/DiagnosticSemaKinds.td b/include/clang/Basic/DiagnosticSemaKinds.td
index 591cf0a..fb36a71 100644
--- a/include/clang/Basic/DiagnosticSemaKinds.td
+++ b/include/clang/Basic/DiagnosticSemaKinds.td
@@ -1241,9 +1241,6 @@
   "shift count is negative">;
 def warn_shift_gt_typewidth : Warning<
   "shift count >= width of type">;
-def warn_op_no_effect : Warning<
-  "operation has no effect">,
-  InGroup<DiagGroup<"all">>, DefaultIgnore;
 
 def err_sizeof_nonfragile_interface : Error<
   "invalid application of '%select{alignof|sizeof}1' to interface %0 in "
diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp
index cec1aea..f00ab54 100644
--- a/lib/Sema/SemaExpr.cpp
+++ b/lib/Sema/SemaExpr.cpp
@@ -4136,16 +4136,7 @@
   llvm::APSInt Right;
   // Check right/shifter operand
   if (rex->isIntegerConstantExpr(Right, Context)) {
-    // Check left/shiftee operand
-    llvm::APSInt Left;
-    if (lex->isIntegerConstantExpr(Left, Context)) {
-      if (Left == 0 && Right != 0)
-        Diag(Loc, diag::warn_op_no_effect)
-          << lex->getSourceRange() << rex->getSourceRange();
-    }
-    if (isCompAssign && Right == 0)
-      Diag(Loc, diag::warn_op_no_effect) << rex->getSourceRange();
-    else if (Right.isNegative())
+    if (Right.isNegative())
       Diag(Loc, diag::warn_shift_negative) << rex->getSourceRange();
     else {
       llvm::APInt LeftBits(Right.getBitWidth(),
diff --git a/test/Sema/shift.c b/test/Sema/shift.c
index 4c2b88a..2516d1b 100644
--- a/test/Sema/shift.c
+++ b/test/Sema/shift.c
@@ -12,15 +12,15 @@
   char c;
 
   c = 0 << 0;
-  c = 0 << 1; // expected-warning {{no effect}}
+  c = 0 << 1;
   c = 1 << 0;
   c = 1 << -0;
   c = 1 >> -0;
   c = 1 << -1; // expected-warning {{shift count is negative}}
   c = 1 >> -1; // expected-warning {{shift count is negative}}
   c = 1 << c;
-  c <<= 0; // expected-warning {{no effect}}
-  c >>= 0; // expected-warning {{no effect}}
+  c <<= 0;
+  c >>= 0;
   c <<= 1;
   c >>= 1;
   c <<= -1; // expected-warning {{shift count is negative}}
@@ -33,3 +33,8 @@
   c >>= CHAR_BIT+1; // expected-warning {{shift count >= width of type}}
   (void)((long)c << CHAR_BIT);
 }
+
+#define a 0
+#define ashift 8
+enum { b = (a << ashift) };
+
