Lines Matching refs:E
60 bool VisitObjCMessageExpr(ObjCMessageExpr *E) { in VisitObjCMessageExpr() argument
61 switch (E->getMethodFamily()) { in VisitObjCMessageExpr()
63 if (E->isInstanceMessage() && E->getSelector() == FinalizeSel) in VisitObjCMessageExpr()
67 if (isRemovable(E)) { in VisitObjCMessageExpr()
68 if (!isCommonUnusedAutorelease(E)) { in VisitObjCMessageExpr()
76 E->getBeginLoc(), E->getSourceRange()); in VisitObjCMessageExpr()
84 if (E->getReceiverKind() == ObjCMessageExpr::Instance) in VisitObjCMessageExpr()
85 if (Expr *rec = E->getInstanceReceiver()) { in VisitObjCMessageExpr()
88 (E->getMethodFamily() != OMF_retain || isRemovable(E))) { in VisitObjCMessageExpr()
90 err += E->getSelector().getAsString() + "' message on " in VisitObjCMessageExpr()
97 (E->getMethodFamily() != OMF_retain || isRemovable(E))) { in VisitObjCMessageExpr()
99 err += E->getSelector().getAsString() + "' message on " in VisitObjCMessageExpr()
105 if (E->getMethodFamily() == OMF_release && isDelegateMessage(rec)) { in VisitObjCMessageExpr()
120 switch (E->getReceiverKind()) { in VisitObjCMessageExpr()
125 clearDiagnostics(E->getSelectorLoc(0)); in VisitObjCMessageExpr()
126 if (tryRemoving(E)) in VisitObjCMessageExpr()
128 Pass.TA.replace(E->getSourceRange(), "self"); in VisitObjCMessageExpr()
135 Expr *rec = E->getInstanceReceiver(); in VisitObjCMessageExpr()
139 clearDiagnostics(E->getSelectorLoc(0)); in VisitObjCMessageExpr()
141 ObjCMessageExpr *Msg = E; in VisitObjCMessageExpr()
177 bool isCommonUnusedAutorelease(ObjCMessageExpr *E) { in isCommonUnusedAutorelease() argument
178 return isPlusOneAssignBeforeOrAfterAutorelease(E) || in isCommonUnusedAutorelease()
179 isReturnedAfterAutorelease(E); in isCommonUnusedAutorelease()
182 bool isReturnedAfterAutorelease(ObjCMessageExpr *E) { in isReturnedAfterAutorelease() argument
183 Expr *Rec = E->getInstanceReceiver(); in isReturnedAfterAutorelease()
191 Stmt *nextStmt = getNextStmt(E); in isReturnedAfterAutorelease()
203 bool isPlusOneAssignBeforeOrAfterAutorelease(ObjCMessageExpr *E) { in isPlusOneAssignBeforeOrAfterAutorelease() argument
204 Expr *Rec = E->getInstanceReceiver(); in isPlusOneAssignBeforeOrAfterAutorelease()
213 std::tie(prevStmt, nextStmt) = getPreviousAndNextStmt(E); in isPlusOneAssignBeforeOrAfterAutorelease()
240 Stmt *getNextStmt(Expr *E) { in getNextStmt() argument
241 return getPreviousAndNextStmt(E).second; in getNextStmt()
244 std::pair<Stmt *, Stmt *> getPreviousAndNextStmt(Expr *E) { in getPreviousAndNextStmt() argument
246 if (!E) in getPreviousAndNextStmt()
249 Stmt *OuterS = E, *InnerS; in getPreviousAndNextStmt()
272 if (auto *E = dyn_cast_or_null<Expr>(prevStmt)) in getPreviousAndNextStmt() local
273 prevStmt = E->IgnoreImplicit(); in getPreviousAndNextStmt()
283 if (auto *E = dyn_cast_or_null<Expr>(nextStmt)) in getPreviousAndNextStmt() local
284 nextStmt = E->IgnoreImplicit(); in getPreviousAndNextStmt()
289 Decl *getReferencedDecl(Expr *E) { in getReferencedDecl() argument
290 if (!E) in getReferencedDecl()
293 E = E->IgnoreParenCasts(); in getReferencedDecl()
294 if (ObjCMessageExpr *ME = dyn_cast<ObjCMessageExpr>(E)) { in getReferencedDecl()
305 if (DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(E)) in getReferencedDecl()
307 if (MemberExpr *ME = dyn_cast<MemberExpr>(E)) in getReferencedDecl()
309 if (ObjCIvarRefExpr *IRE = dyn_cast<ObjCIvarRefExpr>(E)) in getReferencedDecl()
395 bool isDelegateMessage(Expr *E) const { in isDelegateMessage()
396 if (!E) return false; in isDelegateMessage()
398 E = E->IgnoreParenCasts(); in isDelegateMessage()
401 if (PseudoObjectExpr *pseudoOp = dyn_cast<PseudoObjectExpr>(E)) in isDelegateMessage()
402 E = pseudoOp->getResultExpr()->IgnoreImplicit(); in isDelegateMessage()
404 if (ObjCMessageExpr *ME = dyn_cast<ObjCMessageExpr>(E)) in isDelegateMessage()
410 bool isInAtFinally(Expr *E) const { in isInAtFinally()
411 assert(E); in isInAtFinally()
412 Stmt *S = E; in isInAtFinally()
422 bool isRemovable(Expr *E) const { in isRemovable()
423 return Removables.count(E); in isRemovable()
426 bool tryRemoving(Expr *E) const { in tryRemoving()
427 if (isRemovable(E)) { in tryRemoving()
428 Pass.TA.removeStmt(E); in tryRemoving()
432 Stmt *parent = StmtMap->getParent(E); in tryRemoving()
442 if (bopE->getOpcode() == BO_Comma && bopE->getLHS() == E && in tryRemoving()