diff options
Diffstat (limited to 'clang/lib/AST')
| -rw-r--r-- | clang/lib/AST/Expr.cpp | 10 | 
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp index 63a6d3153c7..320a4f1f72e 100644 --- a/clang/lib/AST/Expr.cpp +++ b/clang/lib/AST/Expr.cpp @@ -224,6 +224,16 @@ void CallExpr::Destroy(ASTContext& C) {    C.Deallocate(this);  } +FunctionDecl *CallExpr::getDirectCallee() { +  Expr *CEE = getCallee()->IgnoreParenCasts(); +  if (DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(CEE)) { +    // FIXME: We can follow objective-c methods and C++ member functions... +    return dyn_cast<FunctionDecl>(DRE->getDecl()); +  } + +  return 0; +} +  /// setNumArgs - This changes the number of arguments present in this call.  /// Any orphaned expressions are deleted by this, and any new operands are set  /// to null.  | 

