r209186 - Ignore void returning overloaded functions fom -Wunused-comparison. PR19791.

Richard Trieu rtrieu at google.com
Mon May 19 18:34:43 PDT 2014


Author: rtrieu
Date: Mon May 19 20:34:43 2014
New Revision: 209186

URL: http://llvm.org/viewvc/llvm-project?rev=209186&view=rev
Log:
Ignore void returning overloaded functions fom -Wunused-comparison.  PR19791.

Modified:
    cfe/trunk/lib/AST/Expr.cpp
    cfe/trunk/test/SemaCXX/warn-unused-comparison.cpp

Modified: cfe/trunk/lib/AST/Expr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/Expr.cpp?rev=209186&r1=209185&r2=209186&view=diff
==============================================================================
--- cfe/trunk/lib/AST/Expr.cpp (original)
+++ cfe/trunk/lib/AST/Expr.cpp Mon May 19 20:34:43 2014
@@ -2094,7 +2094,8 @@ bool Expr::isUnusedResultAWarning(const
     case OO_Greater:
     case OO_GreaterEqual:
     case OO_LessEqual:
-      if (Op->getCallReturnType()->isReferenceType())
+      if (Op->getCallReturnType()->isReferenceType() ||
+          Op->getCallReturnType()->isVoidType())
         break;
       WarnE = this;
       Loc = Op->getOperatorLoc();

Modified: cfe/trunk/test/SemaCXX/warn-unused-comparison.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/warn-unused-comparison.cpp?rev=209186&r1=209185&r2=209186&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/warn-unused-comparison.cpp (original)
+++ cfe/trunk/test/SemaCXX/warn-unused-comparison.cpp Mon May 19 20:34:43 2014
@@ -119,3 +119,17 @@ void test() {
   cout < cin;  // expected-warning {{relational comparison result unused}}
 }
 }
+
+namespace PR19791 {
+struct S {
+  void operator!=(int);
+  int operator==(int);
+};
+
+void test() {
+  S s;
+  s != 1;
+  s == 1;  // expected-warning{{equality comparison result unused}}
+           // expected-note at -1{{use '=' to turn this equality comparison into an assignment}}
+}
+}





More information about the cfe-commits mailing list