Lines Matching refs:E

88   bool VisitCastExpr(CastExpr *E) {  in VisitCastExpr()  argument
89 if (E->getCastKind() != CK_CPointerToObjCPointerCast && in VisitCastExpr()
90 E->getCastKind() != CK_BitCast && in VisitCastExpr()
91 E->getCastKind() != CK_AnyPointerToBlockPointerCast) in VisitCastExpr()
94 QualType castType = E->getType(); in VisitCastExpr()
95 Expr *castExpr = E->getSubExpr(); in VisitCastExpr()
114 transformNonObjCToObjCCast(E); in VisitCastExpr()
116 transformObjCToNonObjCCast(E); in VisitCastExpr()
122 void transformNonObjCToObjCCast(CastExpr *E) { in transformNonObjCToObjCCast() argument
123 if (!E) return; in transformNonObjCToObjCCast()
126 if (isGlobalVar(E)) in transformNonObjCToObjCCast()
127 if (E->getSubExpr()->getType()->isPointerType()) { in transformNonObjCToObjCCast()
128 castToObjCObject(E, /*retained=*/false); in transformNonObjCToObjCCast()
134 Expr *inner = E->IgnoreParenCasts(); in transformNonObjCToObjCCast()
138 castToObjCObject(E, /*retained=*/true); in transformNonObjCToObjCCast()
142 castToObjCObject(E, /*retained=*/false); in transformNonObjCToObjCCast()
147 ento::cocoa::isRefType(E->getSubExpr()->getType(), "CF", in transformNonObjCToObjCCast()
168 castToObjCObject(E, /*retained=*/true); in transformNonObjCToObjCCast()
173 castToObjCObject(E, /*retained=*/false); in transformNonObjCToObjCCast()
186 isa<ReturnStmt>(StmtMap->getParentIgnoreParenCasts(E))) { in transformNonObjCToObjCCast()
189 castToObjCObject(E, /*retained=*/false); in transformNonObjCToObjCCast()
196 void castToObjCObject(CastExpr *E, bool retained) { in castToObjCObject() argument
197 rewriteToBridgedCast(E, retained ? OBC_BridgeTransfer : OBC_Bridge); in castToObjCObject()
200 void rewriteToBridgedCast(CastExpr *E, ObjCBridgeCastKind Kind) { in rewriteToBridgedCast() argument
202 rewriteToBridgedCast(E, Kind, Trans); in rewriteToBridgedCast()
205 void rewriteToBridgedCast(CastExpr *E, ObjCBridgeCastKind Kind, in rewriteToBridgedCast() argument
212 E->getLocStart())) { in rewriteToBridgedCast()
229 E->getLocStart()); in rewriteToBridgedCast()
231 if (CStyleCastExpr *CCE = dyn_cast<CStyleCastExpr>(E)) { in rewriteToBridgedCast()
234 SourceLocation insertLoc = E->getSubExpr()->getLocStart(); in rewriteToBridgedCast()
238 newCast += E->getType().getAsString(Pass.Ctx.getPrintingPolicy()); in rewriteToBridgedCast()
241 if (isa<ParenExpr>(E->getSubExpr())) { in rewriteToBridgedCast()
246 TA.insertAfterToken(E->getLocEnd(), ")"); in rewriteToBridgedCast()
253 Expr *WrapE = E->getSubExpr(); in rewriteToBridgedCast()
282 void getBlockMacroRanges(CastExpr *E, SourceRange &Outer, SourceRange &Inner) { in getBlockMacroRanges() argument
284 SourceLocation Loc = E->getExprLoc(); in getBlockMacroRanges()
288 SourceRange SubRange = E->getSubExpr()->IgnoreParenImpCasts()->getSourceRange(); in getBlockMacroRanges()
296 void rewriteBlockCopyMacro(CastExpr *E) { in rewriteBlockCopyMacro() argument
298 getBlockMacroRanges(E, OuterRange, InnerRange); in rewriteBlockCopyMacro()
309 void removeBlockReleaseMacro(CastExpr *E) { in removeBlockReleaseMacro() argument
311 getBlockMacroRanges(E, OuterRange, InnerRange); in removeBlockReleaseMacro()
317 if (!hasSideEffects(E, Pass.Ctx)) { in removeBlockReleaseMacro()
318 if (tryRemoving(cast<Expr>(StmtMap->getParentIgnoreParenCasts(E)))) in removeBlockReleaseMacro()
324 bool tryRemoving(Expr *E) const { in tryRemoving()
330 if (Removables->count(E)) { in tryRemoving()
331 Pass.TA.removeStmt(E); in tryRemoving()
338 void transformObjCToNonObjCCast(CastExpr *E) { in transformObjCToNonObjCCast() argument
339 SourceLocation CastLoc = E->getExprLoc(); in transformObjCToNonObjCCast()
345 rewriteBlockCopyMacro(E); in transformObjCToNonObjCCast()
349 removeBlockReleaseMacro(E); in transformObjCToNonObjCCast()
354 if (isSelf(E->getSubExpr())) in transformObjCToNonObjCCast()
355 return rewriteToBridgedCast(E, OBC_Bridge); in transformObjCToNonObjCCast()
358 if (isPassedToCFRetain(E, callE)) in transformObjCToNonObjCCast()
359 return rewriteCastForCFRetain(E, callE); in transformObjCToNonObjCCast()
361 ObjCMethodFamily family = getFamilyOfMessage(E->getSubExpr()); in transformObjCToNonObjCCast()
363 return rewriteToBridgedCast(E, OBC_BridgeRetained); in transformObjCToNonObjCCast()
367 err += E->getType().getAsString(Pass.Ctx.getPrintingPolicy()); in transformObjCToNonObjCCast()
372 Pass.TA.reportError(err, E->getLocStart(), in transformObjCToNonObjCCast()
373 E->getSubExpr()->getSourceRange()); in transformObjCToNonObjCCast()
374 Stmt *parent = E; in transformObjCToNonObjCCast()
382 note += E->getSubExpr()->getType().getAsString(Pass.Ctx.getPrintingPolicy()); in transformObjCToNonObjCCast()
388 Expr *subExpr = E->getSubExpr(); in transformObjCToNonObjCCast()
398 return rewriteToBridgedCast(E, OBC_BridgeRetained); in transformObjCToNonObjCCast()
400 return rewriteToBridgedCast(E, OBC_Bridge); in transformObjCToNonObjCCast()
404 if (isPassedToCParamWithKnownOwnership(E, isConsumed)) in transformObjCToNonObjCCast()
405 return rewriteToBridgedCast(E, isConsumed ? OBC_BridgeRetained in transformObjCToNonObjCCast()
409 static ObjCMethodFamily getFamilyOfMessage(Expr *E) { in getFamilyOfMessage() argument
410 E = E->IgnoreParenCasts(); in getFamilyOfMessage()
411 if (ObjCMessageExpr *ME = dyn_cast<ObjCMessageExpr>(E)) in getFamilyOfMessage()
417 bool isPassedToCFRetain(Expr *E, CallExpr *&callE) const { in isPassedToCFRetain() argument
419 StmtMap->getParentIgnoreParenImpCasts(E)))) in isPassedToCFRetain()
430 bool isPassedToCParamWithKnownOwnership(Expr *E, bool &isConsumed) const { in isPassedToCParamWithKnownOwnership() argument
432 StmtMap->getParentIgnoreParenImpCasts(E))) in isPassedToCParamWithKnownOwnership()
438 if (arg == E || arg->IgnoreParenImpCasts() == E) in isPassedToCParamWithKnownOwnership()
453 bool isSelf(Expr *E) const { in isSelf()
454 E = E->IgnoreParenLValueCasts(); in isSelf()
455 if (DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(E)) in isSelf()