aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-08-16 16:45:18 +0000
committerChris Lattner <sabre@nondot.org>2009-08-16 16:45:18 +0000
commita50089ec68a583d13718107c1b0c898f0903709e (patch)
tree8242cabd6ae09a3e3e54e8a4182789d411975a26
parent14c5cbf59cffee52275230922283a247de407712 (diff)
This is an attempt to improve loc info for 'unused result' expression
warnings, but it fails because we don't have the location of the . and I don't understand ObjCKVCRefExpr. I'll revisit this later. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79190 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/AST/Expr.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/AST/Expr.cpp b/lib/AST/Expr.cpp
index fa5ce9f047..f000ff63d0 100644
--- a/lib/AST/Expr.cpp
+++ b/lib/AST/Expr.cpp
@@ -541,6 +541,18 @@ bool Expr::isUnusedResultAWarning(SourceLocation &Loc, SourceRange &R1,
}
case ObjCMessageExprClass:
return false;
+
+ case ObjCKVCRefExprClass: { // Dot syntax for message send.
+#if 0
+ const ObjCKVCRefExpr *KVCRef = cast<ObjCKVCRefExpr>(this);
+ // FIXME: We really want the location of the '.' here.
+ Loc = KVCRef->getLocation();
+ R1 = SourceRange(KVCRef->getLocation(), KVCRef->getLocation());
+ if (KVCRef->getBase())
+ R2 = KVCRef->getBase()->getSourceRange();
+#endif
+ return true;
+ }
case StmtExprClass: {
// Statement exprs don't logically have side effects themselves, but are
// sometimes used in macros in ways that give them a type that is unused.