diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp index 22a6a2d02ed0..ea0fc5546412 100644 --- a/clang/lib/CodeGen/CGExpr.cpp +++ b/clang/lib/CodeGen/CGExpr.cpp @@ -971,14 +971,12 @@ RValue CodeGenFunction::EmitCallExpr(const CallExpr *E) { return EmitBlockCallExpr(E); const Decl *TargetDecl = 0; - if (const ImplicitCastExpr *IcExpr = - dyn_cast(E->getCallee())) { - if (const DeclRefExpr *DRExpr = - dyn_cast(IcExpr->getSubExpr())) { - TargetDecl = DRExpr->getDecl(); - if (const FunctionDecl *FDecl = dyn_cast(TargetDecl)) - if (unsigned builtinID = FDecl->getBuiltinID(getContext())) - return EmitBuiltinExpr(FDecl, builtinID, E); + if (const ImplicitCastExpr *CE = dyn_cast(E->getCallee())) { + if (const DeclRefExpr *DRE = dyn_cast(CE->getSubExpr())) { + TargetDecl = DRE->getDecl(); + if (const FunctionDecl *FD = dyn_cast(TargetDecl)) + if (unsigned builtinID = FD->getBuiltinID(getContext())) + return EmitBuiltinExpr(FD, builtinID, E); } }