|
autoJSON | generateJson () |
| Main logic to dump a SVFIR to a JSON object. More...
|
|
autoCStr | generateJsonString () |
|
const char * | numToStr (size_t n) |
|
cJSON * | toJson (const NodeIDAllocator *nodeIDAllocator) |
|
cJSON * | toJson (const SymbolTableInfo *symTable) |
|
cJSON * | toJson (const SVFModule *module) |
|
cJSON * | toJson (const SVFType *type) |
|
cJSON * | toJson (const SVFValue *value) |
|
cJSON * | toJson (const IRGraph *graph) |
|
cJSON * | toJson (const SVFVar *var) |
|
cJSON * | toJson (const SVFStmt *stmt) |
|
cJSON * | toJson (const ICFG *icfg) |
|
cJSON * | toJson (const ICFGNode *node) |
|
cJSON * | toJson (const ICFGEdge *edge) |
|
cJSON * | toJson (const CommonCHGraph *graph) |
|
cJSON * | toJson (const CHGraph *graph) |
|
cJSON * | toJson (const CHNode *node) |
|
cJSON * | toJson (const CHEdge *edge) |
|
cJSON * | toJson (const AccessPath &ap) |
|
cJSON * | toJson (const SVFLoop *loop) |
|
cJSON * | toJson (const MemObj *memObj) |
|
cJSON * | toJson (const ObjTypeInfo *objTypeInfo) |
|
cJSON * | toJson (const SVFLoopAndDomInfo *ldInfo) |
|
cJSON * | toJson (const StInfo *stInfo) |
|
cJSON * | toJson (unsigned long number) |
|
cJSON * | toJson (long long number) |
|
cJSON * | toJson (unsigned long long number) |
|
template<typename NodeTy , typename EdgeTy > |
cJSON * | genericNodeToJson (const GenericNode< NodeTy, EdgeTy > *node) |
|
template<typename NodeTy > |
cJSON * | genericEdgeToJson (const GenericEdge< NodeTy > *edge) |
|
template<typename NodeTy , typename EdgeTy > |
cJSON * | genericGraphToJson (const GenericGraph< NodeTy, EdgeTy > *graph, const std::vector< const EdgeTy * > &edgePool) |
|
template<typename T , typename U > |
cJSON * | toJson (const std::pair< T, U > &pair) |
|
template<typename T , typename = std::enable_if_t<SVFUtil::is_iterable_v<T>>> |
cJSON * | toJson (const T &container) |
|
template<typename T > |
bool | jsonAddJsonableToObject (cJSON *obj, const char *name, const T &item) |
|
template<typename T > |
bool | jsonAddContentToObject (cJSON *obj, const char *name, const T &item) |
|
|
cJSON * | virtToJson (const SVFType *type) |
| Parameter types of these functions are all pointers. When they are used as arguments of toJson(), they will be dumped as an index. contentToJson() will dump the actual content. More...
|
|
cJSON * | virtToJson (const SVFValue *value) |
|
cJSON * | virtToJson (const SVFVar *var) |
|
cJSON * | virtToJson (const SVFStmt *stmt) |
|
cJSON * | virtToJson (const ICFGNode *node) |
|
cJSON * | virtToJson (const ICFGEdge *edge) |
|
cJSON * | virtToJson (const CHNode *node) |
|
cJSON * | virtToJson (const CHEdge *edge) |
|
cJSON * | contentToJson (const SVFVar *var) |
|
cJSON * | contentToJson (const ValVar *var) |
|
cJSON * | contentToJson (const ObjVar *var) |
|
cJSON * | contentToJson (const GepValVar *var) |
|
cJSON * | contentToJson (const GepObjVar *var) |
|
cJSON * | contentToJson (const FIObjVar *var) |
|
cJSON * | contentToJson (const RetPN *var) |
|
cJSON * | contentToJson (const VarArgPN *var) |
|
cJSON * | contentToJson (const DummyValVar *var) |
|
cJSON * | contentToJson (const DummyObjVar *var) |
|
cJSON * | contentToJson (const SVFStmt *edge) |
|
cJSON * | contentToJson (const AssignStmt *edge) |
|
cJSON * | contentToJson (const AddrStmt *edge) |
|
cJSON * | contentToJson (const CopyStmt *edge) |
|
cJSON * | contentToJson (const StoreStmt *edge) |
|
cJSON * | contentToJson (const LoadStmt *edge) |
|
cJSON * | contentToJson (const GepStmt *edge) |
|
cJSON * | contentToJson (const CallPE *edge) |
|
cJSON * | contentToJson (const RetPE *edge) |
|
cJSON * | contentToJson (const MultiOpndStmt *edge) |
|
cJSON * | contentToJson (const PhiStmt *edge) |
|
cJSON * | contentToJson (const SelectStmt *edge) |
|
cJSON * | contentToJson (const CmpStmt *edge) |
|
cJSON * | contentToJson (const BinaryOPStmt *edge) |
|
cJSON * | contentToJson (const UnaryOPStmt *edge) |
|
cJSON * | contentToJson (const BranchStmt *edge) |
|
cJSON * | contentToJson (const TDForkPE *edge) |
|
cJSON * | contentToJson (const TDJoinPE *edge) |
|
cJSON * | contentToJson (const ICFGNode *node) |
|
cJSON * | contentToJson (const GlobalICFGNode *node) |
|
cJSON * | contentToJson (const IntraICFGNode *node) |
|
cJSON * | contentToJson (const InterICFGNode *node) |
|
cJSON * | contentToJson (const FunEntryICFGNode *node) |
|
cJSON * | contentToJson (const FunExitICFGNode *node) |
|
cJSON * | contentToJson (const CallICFGNode *node) |
|
cJSON * | contentToJson (const RetICFGNode *node) |
|
cJSON * | contentToJson (const ICFGEdge *edge) |
|
cJSON * | contentToJson (const IntraCFGEdge *edge) |
|
cJSON * | contentToJson (const CallCFGEdge *edge) |
|
cJSON * | contentToJson (const RetCFGEdge *edge) |
|
cJSON * | contentToJson (const CHNode *node) |
|
cJSON * | contentToJson (const CHEdge *edge) |
|
cJSON * | contentToJson (const SVFType *type) |
|
cJSON * | contentToJson (const SVFPointerType *type) |
|
cJSON * | contentToJson (const SVFIntegerType *type) |
|
cJSON * | contentToJson (const SVFFunctionType *type) |
|
cJSON * | contentToJson (const SVFStructType *type) |
|
cJSON * | contentToJson (const SVFArrayType *type) |
|
cJSON * | contentToJson (const SVFOtherType *type) |
|
cJSON * | contentToJson (const SVFValue *value) |
|
cJSON * | contentToJson (const SVFFunction *value) |
|
cJSON * | contentToJson (const SVFBasicBlock *value) |
|
cJSON * | contentToJson (const SVFInstruction *value) |
|
cJSON * | contentToJson (const SVFCallInst *value) |
|
cJSON * | contentToJson (const SVFVirtualCallInst *value) |
|
cJSON * | contentToJson (const SVFConstant *value) |
|
cJSON * | contentToJson (const SVFGlobalValue *value) |
|
cJSON * | contentToJson (const SVFArgument *value) |
|
cJSON * | contentToJson (const SVFConstantData *value) |
|
cJSON * | contentToJson (const SVFConstantInt *value) |
|
cJSON * | contentToJson (const SVFConstantFP *value) |
|
cJSON * | contentToJson (const SVFConstantNullPtr *value) |
|
cJSON * | contentToJson (const SVFBlackHoleValue *value) |
|
cJSON * | contentToJson (const SVFOtherValue *value) |
|
cJSON * | contentToJson (const SVFMetadataAsValue *value) |
|
cJSON * | contentToJson (const SVFLoop *loop) |
|
cJSON * | contentToJson (const MemObj *memObj) |
|
cJSON * | contentToJson (const StInfo *stInfo) |
|
Definition at line 379 of file SVFFileSystem.h.
template<typename T , typename U >
cJSON* SVF::SVFIRWriter::toJson |
( |
const std::pair< T, U > & |
pair | ) |
|
|
inlineprivate |
The following 2 functions are intended to convert SparseBitVectors to JSON. But they're buggy. Commenting them out would enable the toJson(T) where is_iterable_v<T> is true. But that implementation is less space-efficient if the bitvector contains many elements. It is observed that upon construction, SVF IR bitvectors contain at most 1 element. In that case, we can just use the toJson(T) for iterable T without much space overhead.
template <unsigned ElementSize> cJSON* toJson(const SparseBitVectorElement<ElementSize>& element) { cJSON* array = jsonCreateArray(); for (const auto v : element.Bits) { jsonAddItemToArray(array, toJson(v)); } return array; }
template <unsigned ElementSize> cJSON* toJson(const SparseBitVector<ElementSize>& bv) { return toJson(bv.Elements); }
Definition at line 613 of file SVFFileSystem.h.