Static Value-Flow Analysis
|
#include <SVFFileSystem.h>
Static Public Member Functions | |
static SVFIR * | read (const std::string &path) |
static void | readJson (const cJSON *obj, bool &flag) |
static void | readJson (const cJSON *obj, unsigned &val) |
static void | readJson (const cJSON *obj, int &val) |
static void | readJson (const cJSON *obj, short &val) |
static void | readJson (const cJSON *obj, float &val) |
static void | readJson (const cJSON *obj, unsigned long &val) |
static void | readJson (const cJSON *obj, long long &val) |
static void | readJson (const cJSON *obj, unsigned long long &val) |
static void | readJson (const cJSON *obj, std::string &str) |
static s64_t | applyEdgeMask (u64_t edgeFlag) |
template<typename T > | |
static void | setEdgeFlag (GenericEdge< T > *edge, typename GenericEdge< T >::GEdgeFlag edgeFlag) |
Private Types | |
using | GNodeK = s32_t |
using | GEdgeFlag = GenericEdge< void >::GEdgeFlag |
using | GEdgeKind = GenericEdge< void >::GEdgeKind |
Private Member Functions | |
SVFIR * | read (const cJSON *root) |
const cJSON * | createObjs (const cJSON *root) |
void | readJson (const cJSON *obj, NodeIDAllocator *idAllocator) |
void | readJson (SymbolTableInfo *symTabInfo) |
void | readJson (IRGraph *graph) |
void | readJson (ICFG *icfg) |
void | readJson (CHGraph *graph) |
void | readJson (SVFModule *module) |
void | readJson (const cJSON *obj, SVFType *&type) |
void | readJson (const cJSON *obj, StInfo *&stInfo) |
void | readJson (const cJSON *obj, SVFValue *&value) |
void | readJson (const cJSON *obj, SVFVar *&var) |
void | readJson (const cJSON *obj, SVFStmt *&stmt) |
void | readJson (const cJSON *obj, ICFGNode *&node) |
void | readJson (const cJSON *obj, ICFGEdge *&edge) |
void | readJson (const cJSON *obj, CHNode *&node) |
void | readJson (const cJSON *obj, CHEdge *&edge) |
void | readJson (const cJSON *obj, AccessPath &ap) |
void | readJson (const cJSON *obj, SVFLoop *&loop) |
void | readJson (const cJSON *obj, MemObj *&memObj) |
void | readJson (const cJSON *obj, ObjTypeInfo *&objTypeInfo) |
void | readJson (const cJSON *obj, SVFLoopAndDomInfo *&ldInfo) |
template<unsigned ElementSize> | |
void | readJson (const cJSON *obj, SparseBitVector< ElementSize > &bv) |
template<typename T > | |
SVFUtil::void_t< KindBaseT< T > > | readJson (const cJSON *obj, T *&ptr) |
Read a pointer of some child class of SVFType/SVFValue/SVFVar/SVFStmt/ICFGNode/ICFGEdge/CHNode/CHEdge. More... | |
template<typename T > | |
void | readJson (const cJSON *obj, const T *&cptr) |
Read a const pointer. More... | |
template<typename T1 , typename T2 > | |
void | readJson (const cJSON *obj, std::pair< T1, T2 > &pair) |
template<typename T , size_t N> | |
void | readJson (const cJSON *obj, T(&array)[N]) |
template<typename C > | |
std::enable_if_t< SVFUtil::is_sequence_container_v< C > > | readJson (const cJSON *obj, C &container) |
template<typename C > | |
std::enable_if_t< SVFUtil::is_map_v< C > > | readJson (const cJSON *obj, C &map) |
template<typename C > | |
std::enable_if_t< SVFUtil::is_set_v< C > > | readJson (const cJSON *obj, C &set) |
void | virtFill (const cJSON *&fieldJson, SVFVar *var) |
void | fill (const cJSON *&fieldJson, SVFVar *var) |
void | fill (const cJSON *&fieldJson, ValVar *var) |
void | fill (const cJSON *&fieldJson, ObjVar *var) |
void | fill (const cJSON *&fieldJson, GepValVar *var) |
void | fill (const cJSON *&fieldJson, GepObjVar *var) |
void | fill (const cJSON *&fieldJson, FIObjVar *var) |
void | fill (const cJSON *&fieldJson, RetPN *var) |
void | fill (const cJSON *&fieldJson, VarArgPN *var) |
void | fill (const cJSON *&fieldJson, DummyValVar *var) |
void | fill (const cJSON *&fieldJson, DummyObjVar *var) |
void | virtFill (const cJSON *&fieldJson, SVFStmt *stmt) |
void | fill (const cJSON *&fieldJson, SVFStmt *stmt) |
void | fill (const cJSON *&fieldJson, AssignStmt *stmt) |
void | fill (const cJSON *&fieldJson, AddrStmt *stmt) |
void | fill (const cJSON *&fieldJson, CopyStmt *stmt) |
void | fill (const cJSON *&fieldJson, StoreStmt *stmt) |
void | fill (const cJSON *&fieldJson, LoadStmt *stmt) |
void | fill (const cJSON *&fieldJson, GepStmt *stmt) |
void | fill (const cJSON *&fieldJson, CallPE *stmt) |
void | fill (const cJSON *&fieldJson, RetPE *stmt) |
void | fill (const cJSON *&fieldJson, MultiOpndStmt *stmt) |
void | fill (const cJSON *&fieldJson, PhiStmt *stmt) |
void | fill (const cJSON *&fieldJson, SelectStmt *stmt) |
void | fill (const cJSON *&fieldJson, CmpStmt *stmt) |
void | fill (const cJSON *&fieldJson, BinaryOPStmt *stmt) |
void | fill (const cJSON *&fieldJson, UnaryOPStmt *stmt) |
void | fill (const cJSON *&fieldJson, BranchStmt *stmt) |
void | fill (const cJSON *&fieldJson, TDForkPE *stmt) |
void | fill (const cJSON *&fieldJson, TDJoinPE *stmt) |
void | fill (const cJSON *&fieldJson, MemObj *memObj) |
void | fill (const cJSON *&fieldJson, StInfo *stInfo) |
void | virtFill (const cJSON *&fieldJson, ICFGNode *node) |
void | fill (const cJSON *&fieldJson, ICFGNode *node) |
void | fill (const cJSON *&fieldJson, GlobalICFGNode *node) |
void | fill (const cJSON *&fieldJson, IntraICFGNode *node) |
void | fill (const cJSON *&fieldJson, InterICFGNode *node) |
void | fill (const cJSON *&fieldJson, FunEntryICFGNode *node) |
void | fill (const cJSON *&fieldJson, FunExitICFGNode *node) |
void | fill (const cJSON *&fieldJson, CallICFGNode *node) |
void | fill (const cJSON *&fieldJson, RetICFGNode *node) |
void | virtFill (const cJSON *&fieldJson, ICFGEdge *node) |
void | fill (const cJSON *&fieldJson, ICFGEdge *edge) |
void | fill (const cJSON *&fieldJson, IntraCFGEdge *edge) |
void | fill (const cJSON *&fieldJson, CallCFGEdge *edge) |
void | fill (const cJSON *&fieldJson, RetCFGEdge *edge) |
void | fill (const cJSON *&fieldJson, SVFLoop *loop) |
void | virtFill (const cJSON *&fieldJson, CHNode *node) |
void | virtFill (const cJSON *&fieldJson, CHEdge *edge) |
void | virtFill (const cJSON *&fieldJson, SVFValue *value) |
void | fill (const cJSON *&fieldJson, SVFValue *value) |
void | fill (const cJSON *&fieldJson, SVFFunction *value) |
void | fill (const cJSON *&fieldJson, SVFBasicBlock *value) |
void | fill (const cJSON *&fieldJson, SVFInstruction *value) |
void | fill (const cJSON *&fieldJson, SVFCallInst *value) |
void | fill (const cJSON *&fieldJson, SVFVirtualCallInst *value) |
void | fill (const cJSON *&fieldJson, SVFConstant *value) |
void | fill (const cJSON *&fieldJson, SVFGlobalValue *value) |
void | fill (const cJSON *&fieldJson, SVFArgument *value) |
void | fill (const cJSON *&fieldJson, SVFConstantData *value) |
void | fill (const cJSON *&fieldJson, SVFConstantInt *value) |
void | fill (const cJSON *&fieldJson, SVFConstantFP *value) |
void | fill (const cJSON *&fieldJson, SVFConstantNullPtr *value) |
void | fill (const cJSON *&fieldJson, SVFBlackHoleValue *value) |
void | fill (const cJSON *&fieldJson, SVFOtherValue *value) |
void | fill (const cJSON *&fieldJson, SVFMetadataAsValue *value) |
void | virtFill (const cJSON *&fieldJson, SVFType *type) |
void | fill (const cJSON *&fieldJson, SVFType *type) |
void | fill (const cJSON *&fieldJson, SVFPointerType *type) |
void | fill (const cJSON *&fieldJson, SVFIntegerType *type) |
void | fill (const cJSON *&fieldJson, SVFFunctionType *type) |
void | fill (const cJSON *&fieldJson, SVFStructType *type) |
void | fill (const cJSON *&fieldJson, SVFArrayType *type) |
void | fill (const cJSON *&fieldJson, SVFOtherType *type) |
template<typename NodeTy , typename EdgeTy > | |
void | fill (const cJSON *&fieldJson, GenericNode< NodeTy, EdgeTy > *node) |
template<typename NodeTy > | |
void | fill (const cJSON *&fieldJson, GenericEdge< NodeTy > *edge) |
Static Private Member Functions | |
static ICFGNode * | createICFGNode (NodeID id, GNodeK type) |
static ICFGEdge * | createICFGEdge (GEdgeKind kind) |
static CHNode * | createCHNode (NodeID id, GNodeK kind) |
static CHEdge * | createCHEdge (GEdgeKind kind) |
static SVFVar * | createPAGNode (NodeID id, GNodeK kind) |
static SVFStmt * | createPAGEdge (GEdgeKind kind) |
template<typename EdgeCreator > | |
static auto | createEdgeWithFlag (GEdgeFlag flag, EdgeCreator creator) |
Private Attributes | |
SVFModuleReader | svfModuleReader |
SymbolTableInfoReader | symTableReader |
ICFGReader | icfgReader |
CHGraphReader | chGraphReader |
IRGraphReader | irGraphReader |
Definition at line 1032 of file SVFFileSystem.h.
|
private |
Definition at line 1068 of file SVFFileSystem.h.
|
private |
Definition at line 1069 of file SVFFileSystem.h.
|
private |
Definition at line 1067 of file SVFFileSystem.h.
Definition at line 1055 of file SVFFileSystem.h.
Definition at line 1613 of file SVFFileSystem.cpp.
Definition at line 1607 of file SVFFileSystem.cpp.
|
inlinestaticprivate |
Definition at line 1078 of file SVFFileSystem.h.
Definition at line 1589 of file SVFFileSystem.cpp.
Definition at line 1570 of file SVFFileSystem.cpp.
Definition at line 1384 of file SVFFileSystem.cpp.
Definition at line 1641 of file SVFFileSystem.cpp.
Definition at line 1619 of file SVFFileSystem.cpp.
Definition at line 2028 of file SVFFileSystem.cpp.
|
private |
Definition at line 2023 of file SVFFileSystem.cpp.
|
private |
Definition at line 2094 of file SVFFileSystem.cpp.
|
private |
Definition at line 2106 of file SVFFileSystem.cpp.
|
private |
Definition at line 2245 of file SVFFileSystem.cpp.
|
private |
Definition at line 2203 of file SVFFileSystem.cpp.
Definition at line 2056 of file SVFFileSystem.cpp.
Definition at line 2088 of file SVFFileSystem.cpp.
Definition at line 2033 of file SVFFileSystem.cpp.
|
private |
Definition at line 1977 of file SVFFileSystem.cpp.
|
private |
Definition at line 1972 of file SVFFileSystem.cpp.
Definition at line 1957 of file SVFFileSystem.cpp.
|
private |
Definition at line 2191 of file SVFFileSystem.cpp.
|
private |
Definition at line 2197 of file SVFFileSystem.cpp.
|
inlineprivate |
Definition at line 1323 of file SVFFileSystem.h.
|
inlineprivate |
Definition at line 1315 of file SVFFileSystem.h.
Definition at line 1950 of file SVFFileSystem.cpp.
Definition at line 2049 of file SVFFileSystem.cpp.
Definition at line 1943 of file SVFFileSystem.cpp.
|
private |
Definition at line 2175 of file SVFFileSystem.cpp.
Definition at line 2233 of file SVFFileSystem.cpp.
Definition at line 2166 of file SVFFileSystem.cpp.
|
private |
Definition at line 2186 of file SVFFileSystem.cpp.
|
private |
Definition at line 2238 of file SVFFileSystem.cpp.
|
private |
Definition at line 2180 of file SVFFileSystem.cpp.
Definition at line 2044 of file SVFFileSystem.cpp.
Definition at line 2124 of file SVFFileSystem.cpp.
|
private |
Definition at line 2070 of file SVFFileSystem.cpp.
Definition at line 1937 of file SVFFileSystem.cpp.
Definition at line 2076 of file SVFFileSystem.cpp.
|
private |
Definition at line 2251 of file SVFFileSystem.cpp.
|
private |
Definition at line 2210 of file SVFFileSystem.cpp.
Definition at line 2063 of file SVFFileSystem.cpp.
Definition at line 1962 of file SVFFileSystem.cpp.
|
private |
Definition at line 2082 of file SVFFileSystem.cpp.
Definition at line 2131 of file SVFFileSystem.cpp.
Definition at line 2039 of file SVFFileSystem.cpp.
|
private |
Definition at line 2395 of file SVFFileSystem.cpp.
|
private |
Definition at line 2494 of file SVFFileSystem.cpp.
|
private |
Definition at line 2352 of file SVFFileSystem.cpp.
|
private |
Definition at line 2426 of file SVFFileSystem.cpp.
|
private |
Definition at line 2368 of file SVFFileSystem.cpp.
|
private |
Definition at line 2384 of file SVFFileSystem.cpp.
|
private |
Definition at line 2403 of file SVFFileSystem.cpp.
|
private |
Definition at line 2415 of file SVFFileSystem.cpp.
|
private |
Definition at line 2408 of file SVFFileSystem.cpp.
|
private |
Definition at line 2421 of file SVFFileSystem.cpp.
|
private |
Definition at line 2334 of file SVFFileSystem.cpp.
|
private |
Definition at line 2482 of file SVFFileSystem.cpp.
|
private |
Definition at line 2389 of file SVFFileSystem.cpp.
|
private |
Definition at line 2360 of file SVFFileSystem.cpp.
|
private |
Definition at line 2476 of file SVFFileSystem.cpp.
|
private |
Definition at line 2436 of file SVFFileSystem.cpp.
|
private |
Definition at line 2501 of file SVFFileSystem.cpp.
|
private |
Definition at line 2431 of file SVFFileSystem.cpp.
|
private |
Definition at line 2471 of file SVFFileSystem.cpp.
Definition at line 2014 of file SVFFileSystem.cpp.
|
private |
Definition at line 2488 of file SVFFileSystem.cpp.
Definition at line 2465 of file SVFFileSystem.cpp.
Definition at line 2326 of file SVFFileSystem.cpp.
Definition at line 1923 of file SVFFileSystem.cpp.
|
private |
Definition at line 2376 of file SVFFileSystem.cpp.
Definition at line 2114 of file SVFFileSystem.cpp.
Definition at line 2119 of file SVFFileSystem.cpp.
|
private |
Definition at line 2100 of file SVFFileSystem.cpp.
Definition at line 1932 of file SVFFileSystem.cpp.
Definition at line 1967 of file SVFFileSystem.cpp.
Definition at line 1336 of file SVFFileSystem.cpp.
|
static |
Definition at line 2507 of file SVFFileSystem.cpp.
|
private |
Definition at line 1744 of file SVFFileSystem.cpp.
|
private |
Definition at line 1840 of file SVFFileSystem.cpp.
|
static |
Definition at line 1512 of file SVFFileSystem.cpp.
|
inlineprivate |
Definition at line 1185 of file SVFFileSystem.h.
|
inlineprivate |
Definition at line 1199 of file SVFFileSystem.h.
|
inlineprivate |
Definition at line 1215 of file SVFFileSystem.h.
Definition at line 1834 of file SVFFileSystem.cpp.
Definition at line 1828 of file SVFFileSystem.cpp.
|
inlineprivate |
|
static |
Definition at line 1532 of file SVFFileSystem.cpp.
Definition at line 1822 of file SVFFileSystem.cpp.
Definition at line 1815 of file SVFFileSystem.cpp.
|
static |
Definition at line 1522 of file SVFFileSystem.cpp.
|
static |
Definition at line 1546 of file SVFFileSystem.cpp.
Definition at line 1856 of file SVFFileSystem.cpp.
|
private |
Definition at line 1669 of file SVFFileSystem.cpp.
|
private |
Definition at line 1862 of file SVFFileSystem.cpp.
|
static |
Definition at line 1527 of file SVFFileSystem.cpp.
|
inlineprivate |
Definition at line 1116 of file SVFFileSystem.h.
|
inlineprivate |
Definition at line 1162 of file SVFFileSystem.h.
|
static |
Definition at line 1564 of file SVFFileSystem.cpp.
Definition at line 1788 of file SVFFileSystem.cpp.
Definition at line 1849 of file SVFFileSystem.cpp.
|
private |
Definition at line 1879 of file SVFFileSystem.cpp.
Definition at line 1809 of file SVFFileSystem.cpp.
Definition at line 1782 of file SVFFileSystem.cpp.
Definition at line 1794 of file SVFFileSystem.cpp.
Definition at line 1800 of file SVFFileSystem.cpp.
|
inlineprivate |
Read a pointer of some child class of SVFType/SVFValue/SVFVar/SVFStmt/ICFGNode/ICFGEdge/CHNode/CHEdge.
Definition at line 1140 of file SVFFileSystem.h.
|
inlineprivate |
Definition at line 1170 of file SVFFileSystem.h.
|
static |
Definition at line 1517 of file SVFFileSystem.cpp.
|
static |
Definition at line 1537 of file SVFFileSystem.cpp.
|
static |
Definition at line 1555 of file SVFFileSystem.cpp.
|
private |
Definition at line 1731 of file SVFFileSystem.cpp.
|
private |
Definition at line 1706 of file SVFFileSystem.cpp.
|
private |
Definition at line 1763 of file SVFFileSystem.cpp.
|
private |
Definition at line 1688 of file SVFFileSystem.cpp.
|
inlinestatic |
Definition at line 1060 of file SVFFileSystem.h.
Definition at line 2279 of file SVFFileSystem.cpp.
Definition at line 2269 of file SVFFileSystem.cpp.
Definition at line 2217 of file SVFFileSystem.cpp.
Definition at line 2145 of file SVFFileSystem.cpp.
Definition at line 1982 of file SVFFileSystem.cpp.
Definition at line 2441 of file SVFFileSystem.cpp.
Definition at line 2293 of file SVFFileSystem.cpp.
Definition at line 1899 of file SVFFileSystem.cpp.
|
private |
Definition at line 1038 of file SVFFileSystem.h.
|
private |
Definition at line 1037 of file SVFFileSystem.h.
|
private |
Definition at line 1039 of file SVFFileSystem.h.
|
private |
Definition at line 1035 of file SVFFileSystem.h.
|
private |
Definition at line 1036 of file SVFFileSystem.h.