svf-tools 1.0.440 → 1.0.441

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +11 -8
  2. package/SVF-doxygen/html/html/ExeState_8h_source.html +21 -19
  3. package/SVF-doxygen/html/html/classSVF_1_1ExeState-members.html +16 -14
  4. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +153 -67
  5. package/SVF-doxygen/html/html/functions_e.html +4 -1
  6. package/SVF-doxygen/html/html/functions_f.html +3 -3
  7. package/SVF-doxygen/html/html/functions_func_e.html +5 -2
  8. package/SVF-doxygen/html/html/functions_func_l.html +4 -1
  9. package/SVF-doxygen/html/html/functions_l.html +11 -8
  10. package/SVF-doxygen/html/html/functions_n.html +4 -4
  11. package/SVF-doxygen/html/html/functions_o.html +3 -3
  12. package/SVF-doxygen/html/html/functions_p.html +9 -7
  13. package/SVF-doxygen/html/html/functions_r.html +1 -1
  14. package/SVF-doxygen/html/html/functions_s.html +10 -12
  15. package/SVF-doxygen/html/html/functions_t.html +7 -5
  16. package/SVF-doxygen/html/html/functions_type_l.html +1 -1
  17. package/SVF-doxygen/html/html/search/all_10.js +6 -6
  18. package/SVF-doxygen/html/html/search/all_12.js +1 -1
  19. package/SVF-doxygen/html/html/search/all_13.js +7 -7
  20. package/SVF-doxygen/html/html/search/all_14.js +3 -3
  21. package/SVF-doxygen/html/html/search/all_5.js +1 -0
  22. package/SVF-doxygen/html/html/search/all_6.js +1 -1
  23. package/SVF-doxygen/html/html/search/all_9.js +1 -1
  24. package/SVF-doxygen/html/html/search/all_c.js +4 -3
  25. package/SVF-doxygen/html/html/search/all_e.js +3 -3
  26. package/SVF-doxygen/html/html/search/all_f.js +1 -1
  27. package/SVF-doxygen/html/html/search/functions_10.js +1 -1
  28. package/SVF-doxygen/html/html/search/functions_4.js +1 -0
  29. package/SVF-doxygen/html/html/search/functions_a.js +1 -0
  30. package/SVF-doxygen/html/html/search/typedefs_b.js +1 -1
  31. package/SVF-doxygen/html/html/search/variables_14.js +2 -2
  32. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html +5 -5
  33. package/include/Util/ExeState.h +6 -1
  34. package/lib/Util/ExeState.cpp +20 -36
  35. package/package.json +1 -1
@@ -4,7 +4,7 @@ var searchData=
4
4
  ['nametochnodesmap',['NameToCHNodesMap',['../classSVF_1_1CHGraph.html#aedb20aca2fa11a070cfe28e14fd3552b',1,'SVF::CHGraph']]],
5
5
  ['nan',['nan',['../unionEpTypeUnion.html#a110c7a597a2ccf931b674e2338c64885',1,'EpTypeUnion']]],
6
6
  ['native_5fint_5fsize',['NATIVE_INT_SIZE',['../SVFBasicTypes_8h.html#ab8ca0fd9d0caa6817d305cae0f1cf022',1,'SVFBasicTypes.h']]],
7
- ['neg',['NEG',['../classSVF_1_1BDDExprManager.html#ace340608e136c33867b3e1a986d65c81',1,'SVF::BDDExprManager::NEG()'],['../structcuddPathPair.html#a968dc3d34b592da2876517a687873281',1,'cuddPathPair::neg()']]],
7
+ ['neg',['neg',['../structcuddPathPair.html#a968dc3d34b592da2876517a687873281',1,'cuddPathPair::neg()'],['../classSVF_1_1BDDExprManager.html#ace340608e136c33867b3e1a986d65c81',1,'SVF::BDDExprManager::NEG()']]],
8
8
  ['never_5ffree_5fleak',['NEVER_FREE_LEAK',['../classSVF_1_1LeakChecker.html#a42f54433e5ca60928f3c329ab545842da3ec849f333df9530fb0a6a285c26b86d',1,'SVF::LeakChecker']]],
9
9
  ['newbvnumwords',['NewBvNumWords',['../classSVF_1_1NodeIDAllocator_1_1Clusterer.html#af3fe4b4098898ee38928c9db30ea0fe9',1,'SVF::NodeIDAllocator::Clusterer']]],
10
10
  ['newcond',['newCond',['../classSVF_1_1PathCondAllocator.html#a3cd08242b82129e6074b2f30a19b5c17',1,'SVF::PathCondAllocator']]],
@@ -20,7 +20,7 @@ var searchData=
20
20
  ['nil',['NIL',['../util_8h.html#a31bfee01545b78af63301bf9e857218b',1,'util.h']]],
21
21
  ['no_5fstruct_5falloc',['no_struct_alloc',['../classSVF_1_1ExtAPI.html#a235ef40373e36583004eb6d289ce63f9',1,'SVF::ExtAPI']]],
22
22
  ['noalias',['NoAlias',['../namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239',1,'SVF']]],
23
- ['node',['Node',['../classSVF_1_1List.html#a4eba65b40d347ea80e2427320eb9c5a1',1,'SVF::List::Node()'],['../classSVF_1_1SCCDetection.html#a6458c27c625add944fcb8a3ef7b536a6',1,'SVF::SCCDetection::Node()'],['../classSVF_1_1WPASolver.html#a5fd488d74e04aa9e66ca4eb42c6dbbf4',1,'SVF::WPASolver::Node()'],['../structDdGen.html#a7678908601787fa2d5ce4bccdd004ffb',1,'DdGen::node()'],['../classSVF_1_1NullPtrVFGNode.html#adef43dcc86e61145a7fdc6711b28239d',1,'SVF::NullPtrVFGNode::node()']]],
23
+ ['node',['node',['../structDdGen.html#a7678908601787fa2d5ce4bccdd004ffb',1,'DdGen::node()'],['../classSVF_1_1NullPtrVFGNode.html#adef43dcc86e61145a7fdc6711b28239d',1,'SVF::NullPtrVFGNode::node()'],['../classSVF_1_1List.html#a4eba65b40d347ea80e2427320eb9c5a1',1,'SVF::List::Node()'],['../classSVF_1_1SCCDetection.html#a6458c27c625add944fcb8a3ef7b536a6',1,'SVF::SCCDetection::Node()'],['../classSVF_1_1WPASolver.html#a5fd488d74e04aa9e66ca4eb42c6dbbf4',1,'SVF::WPASolver::Node()']]],
24
24
  ['node_5findex',['Node_Index',['../classSVF_1_1SCCDetection.html#a5fa111bb849052b8a753194cd0cd5e0c',1,'SVF::SCCDetection::Node_Index()'],['../classSVF_1_1WPASolver.html#a01450e1475679d093413e6496c198fc0',1,'SVF::WPASolver::Node_Index()']]],
25
25
  ['node_5fiterator',['node_iterator',['../classSVF_1_1SrcSnkSolver.html#a14a76b28f06e167bf66e15b336570cd3',1,'SVF::SrcSnkSolver::node_iterator()'],['../classSVF_1_1SCCDetection.html#abaf75ef45e8f5349b902dab063999ad8',1,'SVF::SCCDetection::node_iterator()']]],
26
26
  ['nodeallocstrat',['NodeAllocStrat',['../classSVF_1_1Options.html#a2537be131132830c63d408133619a065',1,'SVF::Options']]],
@@ -63,7 +63,7 @@ var searchData=
63
63
  ['nodetoptssmap',['NodeToPTSSMap',['../classSVF_1_1MRGenerator.html#ab075a7c7fbc60f678b3fee8bbc06194d',1,'SVF::MRGenerator::NodeToPTSSMap()'],['../classSVF_1_1SaberSVFGBuilder.html#a4cb1f607e33d106dfa178e822c5ab7e1',1,'SVF::SaberSVFGBuilder::NodeToPTSSMap()']]],
64
64
  ['nodetorefmap',['nodeToRefMap',['../classSVF_1_1OfflineConsG.html#aebeb8a44fcfbb677a738fa04c8e9c5e1',1,'SVF::OfflineConsG']]],
65
65
  ['nodetorepmap',['NodeToRepMap',['../classSVF_1_1ConstraintGraph.html#afe34ca6bdbb22b188799a4297fd19004',1,'SVF::ConstraintGraph::NodeToRepMap()'],['../classSVF_1_1ConstraintGraph.html#ab1b5ee9202bd9f5d738f9850b42a45d2',1,'SVF::ConstraintGraph::nodeToRepMap()']]],
66
- ['nodetosubsmap',['nodeToSubsMap',['../classSVF_1_1ConstraintGraph.html#af91f1027cd5de591ae40865f691c5f60',1,'SVF::ConstraintGraph::nodeToSubsMap()'],['../classSVF_1_1Steensgaard.html#aca87fc74b6acb096a7165f105b14854b',1,'SVF::Steensgaard::nodeToSubsMap()'],['../classSVF_1_1ConstraintGraph.html#ac7d24753491a9bab39a13b32bb65f139',1,'SVF::ConstraintGraph::NodeToSubsMap()'],['../classSVF_1_1Steensgaard.html#a45d49eef110e3bc15509a2020be38453',1,'SVF::Steensgaard::NodeToSubsMap()']]],
66
+ ['nodetosubsmap',['NodeToSubsMap',['../classSVF_1_1ConstraintGraph.html#ac7d24753491a9bab39a13b32bb65f139',1,'SVF::ConstraintGraph::NodeToSubsMap()'],['../classSVF_1_1Steensgaard.html#a45d49eef110e3bc15509a2020be38453',1,'SVF::Steensgaard::NodeToSubsMap()'],['../classSVF_1_1ConstraintGraph.html#af91f1027cd5de591ae40865f691c5f60',1,'SVF::ConstraintGraph::nodeToSubsMap()'],['../classSVF_1_1Steensgaard.html#aca87fc74b6acb096a7165f105b14854b',1,'SVF::Steensgaard::nodeToSubsMap()']]],
67
67
  ['nodetype',['NodeType',['../classSVF_1_1GenericEdge.html#aff95460d4b859e657a9198b7c5e5c736',1,'SVF::GenericEdge::NodeType()'],['../classSVF_1_1GenericNode.html#ad63e862eb1d1369bd69318fe698e4a22',1,'SVF::GenericNode::NodeType()'],['../classSVF_1_1GenericGraph.html#a86c50fc6775fd29f88df2cb4646bb211',1,'SVF::GenericGraph::NodeType()'],['../structllvm_1_1GraphTraits_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_01_4.html#aec39caaa600f638af5e5fa57ae0b6706',1,'llvm::GraphTraits< SVF::GenericNode< NodeTy, EdgeTy > * >::NodeType()'],['../structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_4_01_4.html#ab7627f7ad0d6ea6dbe89132031ef732c',1,'llvm::GraphTraits< Inverse< SVF::GenericNode< NodeTy, EdgeTy > *> >::NodeType()'],['../structllvm_1_1GraphTraits_3_01SVF_1_1GenericGraph_3_01NodeTy_00_01EdgeTy_01_4_01_5_4.html#af8a1cf62dc7ed9d8da15e6e92e3a433c',1,'llvm::GraphTraits< SVF::GenericGraph< NodeTy, EdgeTy > *>::NodeType()'],['../structllvm_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4.html#a73928161c8b1427e8150ca68ec48160e',1,'llvm::DOTGraphTraits< CHGraph * >::NodeType()'],['../structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html#ac3889bd563cdc21a55df0524df2ae4da',1,'llvm::DOTGraphTraits< ConstraintGraph * >::NodeType()'],['../structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html#a7ef3894da60c3e3350b8d2de3e94a562',1,'llvm::DOTGraphTraits< ICFG * >::NodeType()'],['../structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#ad6174f74f7a037a7ffd13df41c5f50f7',1,'llvm::DOTGraphTraits< IRGraph * >::NodeType()'],['../structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html#a4de1b76db4f60446aa2db97535fff54f',1,'llvm::DOTGraphTraits< OfflineConsG * >::NodeType()'],['../structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html#ad08b2b59081251fcf467fa992c83986c',1,'llvm::DOTGraphTraits< PTACallGraph * >::NodeType()'],['../structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html#a07ad41a658bfc0a404a5f6abc823040b',1,'llvm::DOTGraphTraits< SVFG * >::NodeType()'],['../structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html#afd7d2c80916a68b53814e6de593bf520',1,'llvm::DOTGraphTraits< VFG * >::NodeType()'],['../structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html#a86caa5eb1467eea028ea13aac175f949',1,'llvm::DOTGraphTraits< TCT * >::NodeType()']]],
68
68
  ['nodevector',['NodeVector',['../namespaceSVF.html#a39d27055a14d9d6363c668ee215a4676',1,'SVF']]],
69
69
  ['nomodref',['NoModRef',['../namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f',1,'SVF']]],
@@ -58,7 +58,7 @@ var searchData=
58
58
  ['operator_7c_7c',['operator||',['../classSVF_1_1Z3Expr.html#a31327900a231526ff8f62be87c5f309d',1,'SVF::Z3Expr']]],
59
59
  ['opicfgnodes',['opICFGNodes',['../classSVF_1_1PhiStmt.html#a4c75a8f8430621aaec62a5189db136b5',1,'SVF::PhiStmt']]],
60
60
  ['opicfgnodevec',['OpICFGNodeVec',['../classSVF_1_1PhiStmt.html#ac505a4fe33e82f555663872e81220ba4',1,'SVF::PhiStmt']]],
61
- ['opincomingbbs',['OPIncomingBBs',['../classSVF_1_1IntraPHIVFGNode.html#a66928f6cc755bd2a048804d00f859a80',1,'SVF::IntraPHIVFGNode::OPIncomingBBs()'],['../classSVF_1_1IntraPHIVFGNode.html#a73f39a488ad82300010abd18afe247a4',1,'SVF::IntraPHIVFGNode::opIncomingBBs()']]],
61
+ ['opincomingbbs',['opIncomingBBs',['../classSVF_1_1IntraPHIVFGNode.html#a73f39a488ad82300010abd18afe247a4',1,'SVF::IntraPHIVFGNode::opIncomingBBs()'],['../classSVF_1_1IntraPHIVFGNode.html#a66928f6cc755bd2a048804d00f859a80',1,'SVF::IntraPHIVFGNode::OPIncomingBBs()']]],
62
62
  ['opit',['OpIt',['../classllvm_1_1generic__bridge__gep__type__iterator.html#aa3fd4dca27e09df9ee726879624ae47e',1,'llvm::generic_bridge_gep_type_iterator']]],
63
63
  ['oppts',['opPts',['../classSVF_1_1PersistentPointsToCache.html#ac7865b3ea1d76d2c522b465cc8e86639',1,'SVF::PersistentPointsToCache']]],
64
64
  ['options',['Options',['../classSVF_1_1Options.html',1,'SVF::Options'],['../classSVF_1_1Options.html#a08c25694f8f9e31eb8b116ad58c1c078',1,'SVF::Options::Options()']]],
@@ -201,7 +201,7 @@ var searchData=
201
201
  ['svfgnodelockspan',['SVFGNodeLockSpan',['../classSVF_1_1SVFGNodeLockSpan.html#a43f4d595b31259576b141cb99883938e',1,'SVF::SVFGNodeLockSpan']]],
202
202
  ['svfgopt',['SVFGOPT',['../classSVF_1_1SVFGOPT.html#a239475c15b39d54c632427307b8e9350',1,'SVF::SVFGOPT']]],
203
203
  ['svfgsccdetection',['SVFGSCCDetection',['../classSVF_1_1DDAVFSolver.html#aba0ec611a5cfd096ac0b8b11e0bd5580',1,'SVF::DDAVFSolver']]],
204
- ['svfgstat',['svfgStat',['../classSVF_1_1FlowSensitive.html#a5f015d8f2b0956306822172d02b415c3',1,'SVF::FlowSensitive::svfgStat()'],['../classSVF_1_1SVFGStat.html#ae61d5bd92ef495a0f6c2f9dedac3da03',1,'SVF::SVFGStat::SVFGStat()']]],
204
+ ['svfgstat',['SVFGStat',['../classSVF_1_1SVFGStat.html#ae61d5bd92ef495a0f6c2f9dedac3da03',1,'SVF::SVFGStat::SVFGStat()'],['../classSVF_1_1FlowSensitive.html#a5f015d8f2b0956306822172d02b415c3',1,'SVF::FlowSensitive::svfgStat()']]],
205
205
  ['svfir',['SVFIR',['../classSVF_1_1SVFIR.html#abf511f82cdbf7a6d9b6da167aee57636',1,'SVF::SVFIR']]],
206
206
  ['svfirbuilder',['SVFIRBuilder',['../classSVF_1_1SVFIRBuilder.html#a8c25c3903cda26312f182014f29069fc',1,'SVF::SVFIRBuilder']]],
207
207
  ['svfmodule',['SVFModule',['../classSVF_1_1SVFModule.html#a22b214595dd7841eb974e7c633ed8bb1',1,'SVF::SVFModule']]],
@@ -35,6 +35,7 @@ var searchData=
35
35
  ['epdpow2',['EpdPow2',['../epd_8h.html#ab698b565b8fe370d23a71a92f1cbd460',1,'EpdPow2(int n, EpDouble *epd): epd.c'],['../epd_8c.html#ab698b565b8fe370d23a71a92f1cbd460',1,'EpdPow2(int n, EpDouble *epd): epd.c']]],
36
36
  ['epdpow2decimal',['EpdPow2Decimal',['../epd_8h.html#aa69188dd624691e44c14889eba0cd9ca',1,'EpdPow2Decimal(int n, EpDouble *epd): epd.c'],['../epd_8c.html#aa69188dd624691e44c14889eba0cd9ca',1,'EpdPow2Decimal(int n, EpDouble *epd): epd.c']]],
37
37
  ['epdsubtract3',['EpdSubtract3',['../epd_8h.html#a766747cec957171a7386fec2faf697cd',1,'EpdSubtract3(EpDouble *epd1, EpDouble *epd2, EpDouble *epd3): epd.c'],['../epd_8c.html#a766747cec957171a7386fec2faf697cd',1,'EpdSubtract3(EpDouble *epd1, EpDouble *epd2, EpDouble *epd3): epd.c']]],
38
+ ['eqvartovalmap',['eqVarToValMap',['../classSVF_1_1ExeState.html#a8447b7c20dd6bb724270026f55cbdece',1,'SVF::ExeState']]],
38
39
  ['errmsg',['errMsg',['../namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01',1,'SVF::SVFUtil']]],
39
40
  ['errs',['errs',['../namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc',1,'SVF::SVFUtil']]],
40
41
  ['evalfinalcond',['evalFinalCond',['../classSVF_1_1ProgSlice.html#afac06b0be2b04cb8a65af21fd697b756',1,'SVF::ProgSlice']]],
@@ -2,6 +2,7 @@ var searchData=
2
2
  [
3
3
  ['largest',['largest',['../cuddInt_8c.html#ae1fb84f2a4466a90328a944b5f1a810d',1,'cuddInt.c']]],
4
4
  ['leakchecker',['LeakChecker',['../classSVF_1_1LeakChecker.html#af1140475e97947d193784d2b90809036',1,'SVF::LeakChecker::LeakChecker()'],['../saber_8cpp.html#a3bebf1fb890054c49ae16f9706fa38d2',1,'LEAKCHECKER(): saber.cpp']]],
5
+ ['lessthanvartovalmap',['lessThanVarToValMap',['../classSVF_1_1ExeState.html#a29c29c85982ffafd4c496e293a80eeeb',1,'SVF::ExeState']]],
5
6
  ['list',['List',['../classSVF_1_1List.html#aeb697e85085a332e5d593b6f8ee95713',1,'SVF::List']]],
6
7
  ['listnode',['ListNode',['../classSVF_1_1List_1_1ListNode.html#ab5a3ef6fe687d646d402516c85b53853',1,'SVF::List::ListNode']]],
7
8
  ['llvmfunbegin',['llvmFunBegin',['../classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951',1,'SVF::SVFModule::llvmFunBegin()'],['../classSVF_1_1SVFModule.html#a83ed76263dbe297ee0ecaf672c3a1805',1,'SVF::SVFModule::llvmFunBegin() const']]],
@@ -21,7 +21,7 @@ var searchData=
21
21
  ['locksitetolockset',['LockSiteToLockSet',['../classSVF_1_1LockAnalysis.html#a1f9ae41c4ed7450d0d8b29cd20a6ef25',1,'SVF::LockAnalysis']]],
22
22
  ['lockspan',['LockSpan',['../classSVF_1_1LockAnalysis.html#a07b7d49e1fbe3e5dc694b6aadbee05b8',1,'SVF::LockAnalysis::LockSpan()'],['../classSVF_1_1MHP.html#a08ba219ec02b07b1bbd91a88ebb4acd7',1,'SVF::MHP::LockSpan()']]],
23
23
  ['loctodpmvecmap',['LocToDPMVecMap',['../classSVF_1_1DDAVFSolver.html#aab76f98ae4f0c1f62f101ac5c5fdbf83',1,'SVF::DDAVFSolver']]],
24
- ['loctovalmap',['LocToValMap',['../classSVF_1_1ExeState.html#aa1e28e7a815e03c0c9a6f94d289f371b',1,'SVF::ExeState']]],
24
+ ['loctovalmap',['LocToValMap',['../classSVF_1_1ExeState.html#a887d6f9108cbbe7dca68dea67f70c392',1,'SVF::ExeState']]],
25
25
  ['locversionmap',['LocVersionMap',['../classSVF_1_1VersionedFlowSensitive.html#aa689d29ead80303b1ef1e1a91f31c296',1,'SVF::VersionedFlowSensitive']]],
26
26
  ['loop',['Loop',['../namespaceSVF.html#abf85e29310b2e4df8925d00a5c081314',1,'SVF']]],
27
27
  ['loopinfo',['LoopInfo',['../namespaceSVF.html#a77e088bfe47c0b0ddcbbe0693dec6fe5',1,'SVF']]],
@@ -25,9 +25,9 @@ var searchData=
25
25
  ['tid',['tid',['../classSVF_1_1CxtThreadStmt.html#ad96bacc3de1ce576ad397d19aa99a269',1,'SVF::CxtThreadStmt::tid()'],['../classSVF_1_1CxtThreadProc.html#a99b24e1be2bfb49569532c2c28c68969',1,'SVF::CxtThreadProc::tid()']]],
26
26
  ['timelimit',['timeLimit',['../structDdManager.html#a6c14f932c4a66c6234e6b19bd8b6647f',1,'DdManager']]],
27
27
  ['timeofcollapse',['timeOfCollapse',['../classSVF_1_1AndersenBase.html#ad40b196c2c699bd115529b806d20de25',1,'SVF::AndersenBase']]],
28
- ['timeofcreatemuchi',['TimeOfCreateMUCHI',['../classSVF_1_1MemSSAStat.html#a48c70f0ed1c7d031a3cd528035162e52',1,'SVF::MemSSAStat::TimeOfCreateMUCHI()'],['../classSVF_1_1MemSSA.html#a4d2418b7df74f23d8fd328f66e29f198',1,'SVF::MemSSA::timeOfCreateMUCHI()']]],
28
+ ['timeofcreatemuchi',['timeOfCreateMUCHI',['../classSVF_1_1MemSSA.html#a4d2418b7df74f23d8fd328f66e29f198',1,'SVF::MemSSA::timeOfCreateMUCHI()'],['../classSVF_1_1MemSSAStat.html#a48c70f0ed1c7d031a3cd528035162e52',1,'SVF::MemSSAStat::TimeOfCreateMUCHI()']]],
29
29
  ['timeofgeneratingmemregions',['TimeOfGeneratingMemRegions',['../classSVF_1_1MemSSAStat.html#a74c36654b7452aa94aa241881f0a83c5',1,'SVF::MemSSAStat::TimeOfGeneratingMemRegions()'],['../classSVF_1_1MemSSA.html#a37dca8a7d155de4870358146d219b5e5',1,'SVF::MemSSA::timeOfGeneratingMemRegions()']]],
30
- ['timeofinsertingphi',['TimeOfInsertingPHI',['../classSVF_1_1MemSSAStat.html#a0c24822c8549af6a96e82312954fab9b',1,'SVF::MemSSAStat::TimeOfInsertingPHI()'],['../classSVF_1_1MemSSA.html#a3c7b5fa73fdc7c805ee3673fbe812b44',1,'SVF::MemSSA::timeOfInsertingPHI()']]],
30
+ ['timeofinsertingphi',['timeOfInsertingPHI',['../classSVF_1_1MemSSA.html#a3c7b5fa73fdc7c805ee3673fbe812b44',1,'SVF::MemSSA::timeOfInsertingPHI()'],['../classSVF_1_1MemSSAStat.html#a0c24822c8549af6a96e82312954fab9b',1,'SVF::MemSSAStat::TimeOfInsertingPHI()']]],
31
31
  ['timeofprocesscopygep',['timeOfProcessCopyGep',['../classSVF_1_1AndersenBase.html#aae14de6fbca9280d8d0290326aa493f0',1,'SVF::AndersenBase']]],
32
32
  ['timeofprocessloadstore',['timeOfProcessLoadStore',['../classSVF_1_1AndersenBase.html#a9fe738f1e11c80006d540f246a80bfdf',1,'SVF::AndersenBase']]],
33
33
  ['timeofsccdetection',['timeOfSCCDetection',['../classSVF_1_1AndersenBase.html#a6b7d0e57f741c446d0bf178939960143',1,'SVF::AndersenBase']]],
@@ -82,7 +82,7 @@ Public Member Functions</h2></td></tr>
82
82
  struct std::hash&lt; SVF::ExeState &gt;</h3>
83
83
 
84
84
 
85
- <p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00151">151</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
85
+ <p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00156">156</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
86
86
  </div><h2 class="groupheader">Member Function Documentation</h2>
87
87
  <a id="a99f262842505ca11c987d68a790aee10"></a>
88
88
  <h2 class="memtitle"><span class="permalink"><a href="#a99f262842505ca11c987d68a790aee10">&#9670;&nbsp;</a></span>operator()()</h2>
@@ -108,11 +108,11 @@ struct std::hash&lt; SVF::ExeState &gt;</h3>
108
108
  </table>
109
109
  </div><div class="memdoc">
110
110
 
111
- <p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00152">152</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
112
- <div class="fragment"><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordtype">size_t</span> h = exeState.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>().size() * 2;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="structSVF_1_1Hash.html">SVF::Hash&lt;SVF::u32_t&gt;</a> hf;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;t: exeState.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>()) {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; h ^= hf(t.first) + 0x9e3779b9 + (h &lt;&lt; 6) + (h &gt;&gt; 2);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; h ^= hf(t.second.id()) + 0x9e3779b9 + (h &lt;&lt; 6) + (h &gt;&gt; 2);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordtype">size_t</span> h2 = exeState.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>().size() * 2;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;t: exeState.<a class="code" href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">getLocToVal</a>()) {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; h2 ^= hf(t.first) + 0x9e3779b9 + (h2 &lt;&lt; 6) + (h2 &gt;&gt; 2);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; h2 ^= hf(t.second.id()) + 0x9e3779b9 + (h2 &lt;&lt; 6) + (h2 &gt;&gt; 2);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="structSVF_1_1Hash.html">SVF::Hash&lt;std::pair&lt;SVF::u32_t, SVF::u32_t&gt;</a>&gt; pairH;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">return</span> pairH(make_pair(pairH(make_pair(h, h2)), exeState.<a class="code" href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">getPathConstraint</a>().<a class="code" href="classSVF_1_1Z3Expr.html#acdb4fbb53f19bac033e79cfe96ce82ca">id</a>()));</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div><div class="ttc" id="classSVF_1_1ExeState_html_a4ee40de7eca22ac055b52360e0101623"><div class="ttname"><a href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">SVF::ExeState::getLocToVal</a></div><div class="ttdeci">const LocToValMap &amp; getLocToVal() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00084">ExeState.h:84</a></div></div>
111
+ <p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00157">157</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
112
+ <div class="fragment"><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; {</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">size_t</span> h = exeState.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>().size() * 2;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="structSVF_1_1Hash.html">SVF::Hash&lt;SVF::u32_t&gt;</a> hf;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;t: exeState.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>()) {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; h ^= hf(t.first) + 0x9e3779b9 + (h &lt;&lt; 6) + (h &gt;&gt; 2);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; h ^= hf(t.second.id()) + 0x9e3779b9 + (h &lt;&lt; 6) + (h &gt;&gt; 2);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordtype">size_t</span> h2 = exeState.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>().size() * 2;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;t: exeState.<a class="code" href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">getLocToVal</a>()) {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; h2 ^= hf(t.first) + 0x9e3779b9 + (h2 &lt;&lt; 6) + (h2 &gt;&gt; 2);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; h2 ^= hf(t.second.id()) + 0x9e3779b9 + (h2 &lt;&lt; 6) + (h2 &gt;&gt; 2);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="structSVF_1_1Hash.html">SVF::Hash&lt;std::pair&lt;SVF::u32_t, SVF::u32_t&gt;</a>&gt; pairH;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> pairH(make_pair(pairH(make_pair(h, h2)), exeState.<a class="code" href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">getPathConstraint</a>().<a class="code" href="classSVF_1_1Z3Expr.html#acdb4fbb53f19bac033e79cfe96ce82ca">id</a>()));</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div><div class="ttc" id="classSVF_1_1ExeState_html_a4ee40de7eca22ac055b52360e0101623"><div class="ttname"><a href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">SVF::ExeState::getLocToVal</a></div><div class="ttdeci">const LocToValMap &amp; getLocToVal() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00086">ExeState.h:86</a></div></div>
113
113
  <div class="ttc" id="structSVF_1_1Hash_html"><div class="ttname"><a href="structSVF_1_1Hash.html">SVF::Hash</a></div><div class="ttdoc">provide extra hash function for std::pair handling </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00056">SVFBasicTypes.h:56</a></div></div>
114
- <div class="ttc" id="classSVF_1_1ExeState_html_a00bd54e2dc70a8547581008e27790eb8"><div class="ttname"><a href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">SVF::ExeState::getPathConstraint</a></div><div class="ttdeci">const Z3Expr &amp; getPathConstraint() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00088">ExeState.h:88</a></div></div>
115
- <div class="ttc" id="classSVF_1_1ExeState_html_abf1237f5e4661a2da6e479f147957b18"><div class="ttname"><a href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">SVF::ExeState::getVarToVal</a></div><div class="ttdeci">const VarToValMap &amp; getVarToVal() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00080">ExeState.h:80</a></div></div>
114
+ <div class="ttc" id="classSVF_1_1ExeState_html_a00bd54e2dc70a8547581008e27790eb8"><div class="ttname"><a href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">SVF::ExeState::getPathConstraint</a></div><div class="ttdeci">const Z3Expr &amp; getPathConstraint() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00090">ExeState.h:90</a></div></div>
115
+ <div class="ttc" id="classSVF_1_1ExeState_html_abf1237f5e4661a2da6e479f147957b18"><div class="ttname"><a href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">SVF::ExeState::getVarToVal</a></div><div class="ttdeci">const VarToValMap &amp; getVarToVal() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00082">ExeState.h:82</a></div></div>
116
116
  <div class="ttc" id="classSVF_1_1Z3Expr_html_acdb4fbb53f19bac033e79cfe96ce82ca"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#acdb4fbb53f19bac033e79cfe96ce82ca">SVF::Z3Expr::id</a></div><div class="ttdeci">u32_t id() const</div><div class="ttdoc">get id </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00094">Z3Expr.h:94</a></div></div>
117
117
  </div><!-- fragment -->
118
118
  </div>
@@ -39,7 +39,7 @@ namespace SVF {
39
39
  class ExeState {
40
40
  public:
41
41
  typedef Map<u32_t, Z3Expr> VarToValMap;
42
- typedef Map<u32_t, Z3Expr> LocToValMap;
42
+ typedef VarToValMap LocToValMap;
43
43
 
44
44
  protected:
45
45
  VarToValMap varToVal;
@@ -73,6 +73,8 @@ public:
73
73
  /// Overloading Operator==
74
74
  bool operator<(const ExeState &rhs) const;
75
75
 
76
+
77
+
76
78
  z3::context &getContext() {
77
79
  return Z3Expr::getContext();
78
80
  }
@@ -136,6 +138,9 @@ public:
136
138
  /// Print values of all expressions
137
139
  void printExprValues();
138
140
 
141
+ private:
142
+ bool eqVarToValMap(const VarToValMap &lhs, const VarToValMap &rhs) const;
143
+ bool lessThanVarToValMap(const VarToValMap &lhs, const VarToValMap &rhs) const;
139
144
  protected:
140
145
  inline void store(u32_t objId, const Z3Expr &z3Expr) {
141
146
  locToVal[objId] = z3Expr.simplify();
@@ -147,30 +147,8 @@ ExeState &ExeState::operator=(const ExeState &rhs) {
147
147
  * @return
148
148
  */
149
149
  bool ExeState::operator==(const ExeState &rhs) const {
150
- // return false if path constraint is not equivalent
151
- if (!eq(pathConstraint, rhs.getPathConstraint()))
152
- return false;
153
- if(varToVal.size() != rhs.getVarToVal().size() || locToVal.size() != rhs.getLocToVal().size())
154
- return false;
155
- for (const auto &item: varToVal) {
156
- auto it = rhs.getVarToVal().find(item.first);
157
- // return false if SVFVar not exists in rhs
158
- if (it == rhs.getVarToVal().end())
159
- return false;
160
- // return false if Z3Expr is not equivalent
161
- if (!eq(item.second, it->second))
162
- return false;
163
- }
164
- for (const auto &item: locToVal) {
165
- auto it = rhs.getLocToVal().find(item.first);
166
- // return false if location not exists in rhs
167
- if (it == rhs.getLocToVal().end())
168
- return false;
169
- // return false if Z3Expr is not equivalent
170
- if (!eq(item.second, it->second))
171
- return false;
172
- }
173
- return true;
150
+ return eq(pathConstraint, rhs.getPathConstraint()) && eqVarToValMap(varToVal, rhs.getVarToVal()) &&
151
+ eqVarToValMap(locToVal, rhs.getLocToVal());
174
152
  }
175
153
 
176
154
  /*!
@@ -182,21 +160,28 @@ bool ExeState::operator<(const ExeState &rhs) const {
182
160
  // judge from path constraint
183
161
  if (!eq(pathConstraint, rhs.getPathConstraint()))
184
162
  return pathConstraint.id() < rhs.getPathConstraint().id();
185
- if(varToVal.size() < rhs.getVarToVal().size() || locToVal.size() < rhs.getLocToVal().size())
163
+ if (lessThanVarToValMap(varToVal, rhs.getVarToVal()) || lessThanVarToValMap(locToVal, rhs.getLocToVal()))
186
164
  return true;
187
- for (const auto &item: varToVal) {
188
- auto it = rhs.getVarToVal().find(item.first);
189
- // lhs > rhs if SVFVar not exists in rhs
190
- if (it == rhs.getVarToVal().end())
165
+ return false;
166
+ }
167
+
168
+ bool ExeState::eqVarToValMap(const VarToValMap &lhs, const VarToValMap &rhs) const {
169
+ if(lhs.size() != rhs.size()) return false;
170
+ for (const auto &item: lhs) {
171
+ auto it = rhs.find(item.first);
172
+ // return false if SVFVar not exists in rhs or z3Expr not equal
173
+ if (it == rhs.end() || !eq(item.second, it->second))
191
174
  return false;
192
- // judge from expr id
193
- if (!eq(item.second, it->second))
194
- return item.second.id() < it->second.id();
195
175
  }
196
- for (const auto &item: locToVal) {
197
- auto it = rhs.getLocToVal().find(item.first);
176
+ return true;
177
+ }
178
+
179
+ bool ExeState::lessThanVarToValMap(const VarToValMap &lhs, const VarToValMap &rhs) const {
180
+ if(lhs.size() != rhs.size()) return lhs.size() < rhs.size();
181
+ for (const auto &item: lhs) {
182
+ auto it = rhs.find(item.first);
198
183
  // lhs > rhs if SVFVar not exists in rhs
199
- if (it == rhs.getLocToVal().end())
184
+ if (it == rhs.end())
200
185
  return false;
201
186
  // judge from expr id
202
187
  if (!eq(item.second, it->second))
@@ -204,7 +189,6 @@ bool ExeState::operator<(const ExeState &rhs) const {
204
189
  }
205
190
  return false;
206
191
  }
207
-
208
192
  /*!
209
193
  * Store value to location
210
194
  * @param loc location, e.g., int_val(0x7f..01)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-tools",
3
- "version": "1.0.440",
3
+ "version": "1.0.441",
4
4
  "description": "* <b>[TypeClone](https://github.com/SVF-tools/SVF/wiki/TypeClone) published in our [ECOOP paper](https://yuleisui.github.io/publications/ecoop20.pdf) is now available in SVF </b> * <b>SVF now uses a single script for its build. Just type [`source ./build.sh`](https://github.com/SVF-tools/SVF/blob/master/build.sh) in your terminal, that's it!</b> * <b>SVF now supports LLVM-10.0.0! </b> * <b>We thank [bsauce](https://github.com/bsauce) for writing a user manual of SVF ([link1](https://www.jianshu.com/p/068a08ec749c) and [link2](https://www.jianshu.com/p/777c30d4240e)) in Chinese </b> * <b>SVF now supports LLVM-9.0.0 (Thank [Byoungyoung Lee](https://github.com/SVF-tools/SVF/issues/142) for his help!). </b> * <b>SVF now supports a set of [field-sensitive pointer analyses](https://yuleisui.github.io/publications/sas2019a.pdf). </b> * <b>[Use SVF as an external lib](https://github.com/SVF-tools/SVF/wiki/Using-SVF-as-a-lib-in-your-own-tool) for your own project (Contributed by [Hongxu Chen](https://github.com/HongxuChen)). </b> * <b>SVF now supports LLVM-7.0.0. </b> * <b>SVF now supports Docker. [Try SVF in Docker](https://github.com/SVF-tools/SVF/wiki/Try-SVF-in-Docker)! </b> * <b>SVF now supports [LLVM-6.0.0](https://github.com/svf-tools/SVF/pull/38) (Contributed by [Jack Anthony](https://github.com/jackanth)). </b> * <b>SVF now supports [LLVM-4.0.0](https://github.com/svf-tools/SVF/pull/23) (Contributed by Jared Carlson. Thank [Jared](https://github.com/jcarlson23) and [Will](https://github.com/dtzWill) for their in-depth [discussions](https://github.com/svf-tools/SVF/pull/18) about updating SVF!) </b> * <b>SVF now supports analysis for C++ programs.</b> <br />",
5
5
  "main": "index.js",
6
6
  "scripts": {