clang API Documentation
CodeInjector is an interface which is responsible for injecting AST of function definitions that may not be available in the original source. More...
#include <CodeInjector.h>
Public Member Functions | |
CodeInjector () | |
virtual | ~CodeInjector () |
virtual Stmt * | getBody (const FunctionDecl *D)=0 |
virtual Stmt * | getBody (const ObjCMethodDecl *D)=0 |
CodeInjector is an interface which is responsible for injecting AST of function definitions that may not be available in the original source.
The getBody function will be called each time the static analyzer examines a function call that has no definition available in the current translation unit. If the returned statement is not a null pointer, it is assumed to be the body of a function which will be used for the analysis. The source of the body can be arbitrary, but it is advised to use memoization to avoid unnecessary reparsing of the external source that provides the body of the functions.
Definition at line 36 of file CodeInjector.h.
Definition at line 14 of file CodeInjector.cpp.
CodeInjector::~CodeInjector | ( | ) | [virtual] |
Definition at line 15 of file CodeInjector.cpp.
virtual Stmt* clang::CodeInjector::getBody | ( | const FunctionDecl * | D | ) | [pure virtual] |
Implemented in clang::ento::ModelInjector.
Referenced by clang::BodyFarm::getBody().
virtual Stmt* clang::CodeInjector::getBody | ( | const ObjCMethodDecl * | D | ) | [pure virtual] |
Implemented in clang::ento::ModelInjector.