diff options
author | Matt Beaumont-Gay <matthewbg@google.com> | 2011-09-19 18:51:20 +0000 |
---|---|---|
committer | Matt Beaumont-Gay <matthewbg@google.com> | 2011-09-19 18:51:20 +0000 |
commit | 6e5218367c513fe02d1c7210023d40739ecb1572 (patch) | |
tree | 029683c54d09f7faae717a71e98d4f9ba9fdcd71 /lib/AST/Expr.cpp | |
parent | 71ac1e003b7a82ca6ac7ed76e4d0f9c6d4a1e30a (diff) |
Fix a QoI bug with overloaded operators inside macros.
We were failing to set source locations and ranges in isUnusedResultAWarning
for CXXOperatorCallExprs, leading to an "expression result unused" warning
with absolutely no context if the expression was inside a macro.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140036 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/Expr.cpp')
-rw-r--r-- | lib/AST/Expr.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/AST/Expr.cpp b/lib/AST/Expr.cpp index 8beecc0856..7983d61f04 100644 --- a/lib/AST/Expr.cpp +++ b/lib/AST/Expr.cpp @@ -1631,8 +1631,11 @@ bool Expr::isUnusedResultAWarning(SourceLocation &Loc, SourceRange &R1, // DiagnoseUnusedComparison should be as well. const CXXOperatorCallExpr *Op = cast<CXXOperatorCallExpr>(this); if (Op->getOperator() == OO_EqualEqual || - Op->getOperator() == OO_ExclaimEqual) + Op->getOperator() == OO_ExclaimEqual) { + Loc = Op->getOperatorLoc(); + R1 = Op->getSourceRange(); return true; + } // Fallthrough for generic call handling. } |