diff options
author | Jordan Rose <jordan_rose@apple.com> | 2012-11-09 23:55:21 +0000 |
---|---|---|
committer | Jordan Rose <jordan_rose@apple.com> | 2012-11-09 23:55:21 +0000 |
commit | e2028139e9abab88a62b87615b1b9c1d362efcdb (patch) | |
tree | 4ddb8dbeee5e4095d9f366c9decf801fad8a3e3f /clang/lib/Sema/SemaExpr.cpp | |
parent | c0cad046b689ae64571f68c6c697d66cc5499e6c (diff) | |
download | bcm5719-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.cpp | 3 |
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" |