CheckerContext.cpp revision b805c8ff133ef0c62df032fa711d6b13c5afd7f4
1//== CheckerContext.cpp - Context info for path-sensitive checkers-----------=// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This file defines CheckerContext that provides contextual info for 11// path-sensitive checkers. 12// 13//===----------------------------------------------------------------------===// 14 15#include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h" 16using namespace clang; 17using namespace ento; 18 19const FunctionDecl *CheckerContext::getCalleeDecl(const CallExpr *CE) const { 20 const ProgramState *State = getState(); 21 const Expr *Callee = CE->getCallee(); 22 SVal L = State->getSVal(Callee); 23 return L.getAsFunctionDecl(); 24} 25 26StringRef CheckerContext::getCalleeName(const CallExpr *CE) const { 27 const FunctionDecl *funDecl = getCalleeDecl(CE); 28 if (!funDecl) 29 return StringRef(); 30 IdentifierInfo *funI = funDecl->getIdentifier(); 31 if (!funI) 32 return StringRef(); 33 return funI->getName(); 34} 35