diff options
author | Richard Trieu <rtrieu@google.com> | 2014-05-20 01:34:43 +0000 |
---|---|---|
committer | Richard Trieu <rtrieu@google.com> | 2014-05-20 01:34:43 +0000 |
commit | ccedd52736bafd5d9bf6765b25a808db143f2bb9 (patch) | |
tree | c6065924030998be8e674be97303a096904581f8 | |
parent | d52b1528c0dd7a5f00e18d9ba974c8ef0e549f0b (diff) | |
download | bcm5719-llvm-ccedd52736bafd5d9bf6765b25a808db143f2bb9.tar.gz bcm5719-llvm-ccedd52736bafd5d9bf6765b25a808db143f2bb9.zip |
Ignore void returning overloaded functions fom -Wunused-comparison. PR19791.
llvm-svn: 209186
-rw-r--r-- | clang/lib/AST/Expr.cpp | 3 | ||||
-rw-r--r-- | clang/test/SemaCXX/warn-unused-comparison.cpp | 14 |
2 files changed, 16 insertions, 1 deletions
diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp index f51e188b416..aea2f432ad5 100644 --- a/clang/lib/AST/Expr.cpp +++ b/clang/lib/AST/Expr.cpp @@ -2094,7 +2094,8 @@ bool Expr::isUnusedResultAWarning(const Expr *&WarnE, SourceLocation &Loc, 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(); diff --git a/clang/test/SemaCXX/warn-unused-comparison.cpp b/clang/test/SemaCXX/warn-unused-comparison.cpp index 4dd203875b3..3afad585b66 100644 --- a/clang/test/SemaCXX/warn-unused-comparison.cpp +++ b/clang/test/SemaCXX/warn-unused-comparison.cpp @@ -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@-1{{use '=' to turn this equality comparison into an assignment}} +} +} |