/// the state of the program before the checker ran. Note, checkers should
/// not retain the node in their state since the nodes might get invalidated.
ExplodedNode *getPredecessor() { return Pred; }
- const ProgramState *getState() { return Pred->getState(); }
+ const ProgramState *getState() const { return Pred->getState(); }
/// \brief Returns the number of times the current block has been visited
/// along the analyzed path.
- unsigned getCurrentBlockCount() {
+ unsigned getCurrentBlockCount() const {
return NB.getContext().getCurrentBlockCount();
}
return Eng.getContext();
}
- const LocationContext *getLocationContext() {
+ const LocationContext *getLocationContext() const {
return Pred->getLocationContext();
}
return getSValBuilder().getSymbolManager();
}
- bool isObjCGCEnabled() {
+ bool isObjCGCEnabled() const {
return Eng.isObjCGCEnabled();
}
}
/// \brief Get the name of the called function (path-sensitive).
- StringRef getCalleeName(const CallExpr *CE);
+ StringRef getCalleeName(const CallExpr *CE) const;
private:
ExplodedNode *addTransitionImpl(const ProgramState *State,
using namespace clang;
using namespace ento;
-StringRef CheckerContext::getCalleeName(const CallExpr *CE) {
+StringRef CheckerContext::getCalleeName(const CallExpr *CE) const {
const ProgramState *State = getState();
const Expr *Callee = CE->getCallee();
SVal L = State->getSVal(Callee);