diff options
Diffstat (limited to 'lib/ARCMigrate/TransRetainReleaseDealloc.cpp')
-rw-r--r-- | lib/ARCMigrate/TransRetainReleaseDealloc.cpp | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/lib/ARCMigrate/TransRetainReleaseDealloc.cpp b/lib/ARCMigrate/TransRetainReleaseDealloc.cpp index c411044ecde3f..d199bb9365473 100644 --- a/lib/ARCMigrate/TransRetainReleaseDealloc.cpp +++ b/lib/ARCMigrate/TransRetainReleaseDealloc.cpp @@ -71,9 +71,10 @@ public: // will likely die immediately while previously it was kept alive // by the autorelease pool. This is bad practice in general, leave it // and emit an error to force the user to restructure their code. - Pass.TA.reportError("it is not safe to remove an unused 'autorelease' " + Pass.TA.reportError( + "it is not safe to remove an unused 'autorelease' " "message; its receiver may be destroyed immediately", - E->getLocStart(), E->getSourceRange()); + E->getBeginLoc(), E->getSourceRange()); return true; } } @@ -89,7 +90,7 @@ public: std::string err = "it is not safe to remove '"; err += E->getSelector().getAsString() + "' message on " "an __unsafe_unretained type"; - Pass.TA.reportError(err, rec->getLocStart()); + Pass.TA.reportError(err, rec->getBeginLoc()); return true; } @@ -98,18 +99,21 @@ public: std::string err = "it is not safe to remove '"; err += E->getSelector().getAsString() + "' message on " "a global variable"; - Pass.TA.reportError(err, rec->getLocStart()); + Pass.TA.reportError(err, rec->getBeginLoc()); return true; } if (E->getMethodFamily() == OMF_release && isDelegateMessage(rec)) { - Pass.TA.reportError("it is not safe to remove 'retain' " + Pass.TA.reportError( + "it is not safe to remove 'retain' " "message on the result of a 'delegate' message; " "the object that was passed to 'setDelegate:' may not be " - "properly retained", rec->getLocStart()); + "properly retained", + rec->getBeginLoc()); return true; } } + break; case OMF_dealloc: break; } @@ -250,7 +254,7 @@ private: } while (OuterS && (isa<ParenExpr>(OuterS) || isa<CastExpr>(OuterS) || - isa<ExprWithCleanups>(OuterS))); + isa<FullExpr>(OuterS))); if (!OuterS) return std::make_pair(prevStmt, nextStmt); @@ -373,8 +377,8 @@ private: RecContainer = StmtE; Rec = Init->IgnoreParenImpCasts(); - if (ExprWithCleanups *EWC = dyn_cast<ExprWithCleanups>(Rec)) - Rec = EWC->getSubExpr()->IgnoreParenImpCasts(); + if (FullExpr *FE = dyn_cast<FullExpr>(Rec)) + Rec = FE->getSubExpr()->IgnoreParenImpCasts(); RecRange = Rec->getSourceRange(); if (SM.isMacroArgExpansion(RecRange.getBegin())) RecRange.setBegin(SM.getImmediateSpellingLoc(RecRange.getBegin())); |