diff options
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/CodeGen/CGExpr.cpp | 14 | 
1 files changed, 6 insertions, 8 deletions
diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp index 22a6a2d02ed..ea0fc554641 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<ImplicitCastExpr>(E->getCallee())) { -    if (const DeclRefExpr *DRExpr =  -        dyn_cast<DeclRefExpr>(IcExpr->getSubExpr())) { -      TargetDecl = DRExpr->getDecl(); -      if (const FunctionDecl *FDecl = dyn_cast<FunctionDecl>(TargetDecl)) -        if (unsigned builtinID = FDecl->getBuiltinID(getContext())) -          return EmitBuiltinExpr(FDecl, builtinID, E); +  if (const ImplicitCastExpr *CE = dyn_cast<ImplicitCastExpr>(E->getCallee())) { +    if (const DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(CE->getSubExpr())) { +      TargetDecl = DRE->getDecl(); +      if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(TargetDecl)) +        if (unsigned builtinID = FD->getBuiltinID(getContext())) +          return EmitBuiltinExpr(FD, builtinID, E);      }    }  | 

