summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaExpr.cpp
diff options
context:
space:
mode:
authorJordan Rose <jordan_rose@apple.com>2012-11-09 23:55:21 +0000
committerJordan Rose <jordan_rose@apple.com>2012-11-09 23:55:21 +0000
commite2028139e9abab88a62b87615b1b9c1d362efcdb (patch)
tree4ddb8dbeee5e4095d9f366c9decf801fad8a3e3f /clang/lib/Sema/SemaExpr.cpp
parentc0cad046b689ae64571f68c6c697d66cc5499e6c (diff)
downloadbcm5719-llvm-e2028139e9abab88a62b87615b1b9c1d362efcdb.tar.gz
bcm5719-llvm-e2028139e9abab88a62b87615b1b9c1d362efcdb.zip
-Wobjc-literal-compare: look through implicit casts.
This warning was failing to fire under ARC because of the implicit lifetime casts added around the object literal expression. <rdar://problem/11300873>, again. llvm-svn: 167648
Diffstat (limited to 'clang/lib/Sema/SemaExpr.cpp')
-rw-r--r--clang/lib/Sema/SemaExpr.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp
index 28a637180a5..bf4abfcb746 100644
--- a/clang/lib/Sema/SemaExpr.cpp
+++ b/clang/lib/Sema/SemaExpr.cpp
@@ -6783,7 +6783,7 @@ static void diagnoseFunctionPointerToVoidComparison(Sema &S, SourceLocation Loc,
}
static bool isObjCObjectLiteral(ExprResult &E) {
- switch (E.get()->getStmtClass()) {
+ switch (E.get()->IgnoreParenImpCasts()->getStmtClass()) {
case Stmt::ObjCArrayLiteralClass:
case Stmt::ObjCDictionaryLiteralClass:
case Stmt::ObjCStringLiteralClass:
@@ -6875,6 +6875,7 @@ static void diagnoseObjCLiteralComparison(Sema &S, SourceLocation Loc,
LK_String
} LiteralKind;
+ Literal = Literal->IgnoreParenImpCasts();
switch (Literal->getStmtClass()) {
case Stmt::ObjCStringLiteralClass:
// "string literal"
OpenPOWER on IntegriCloud