svf-tools 1.0.410 → 1.0.413

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 (208) hide show
  1. package/CMakeLists.txt +1 -1
  2. package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +1 -1
  3. package/SVF-doxygen/html/html/AndersenHLCD_8cpp_source.html +1 -1
  4. package/SVF-doxygen/html/html/AndersenLCD_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +2 -2
  6. package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +1 -1
  7. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +3 -3
  8. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +3 -3
  9. package/SVF-doxygen/html/html/Andersen_8h_source.html +3 -3
  10. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
  11. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +3 -3
  12. package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +7 -7
  15. package/SVF-doxygen/html/html/DDAStat_8h_source.html +5 -5
  16. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +2 -2
  17. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -2
  18. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +2 -2
  19. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +7 -6
  20. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +3 -3
  21. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +1 -1
  22. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1 -1
  23. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/html/MHP_8cpp.html +2 -83
  25. package/SVF-doxygen/html/html/MHP_8cpp_source.html +42 -46
  26. package/SVF-doxygen/html/html/MHP_8h_source.html +26 -26
  27. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +2 -2
  28. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +1 -1
  29. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +2 -2
  30. package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +3 -3
  32. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +10 -10
  33. package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +9 -9
  34. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +11 -11
  35. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +8 -8
  36. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +9 -9
  37. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +30 -31
  38. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
  39. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +33 -34
  40. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +9 -9
  41. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +8 -7
  42. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +3 -3
  43. package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
  44. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +1 -1
  45. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +1 -1
  46. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +3 -3
  47. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
  48. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +2 -2
  49. package/SVF-doxygen/html/html/TCT_8cpp_source.html +14 -14
  50. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  51. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
  52. package/SVF-doxygen/html/html/VFG_8cpp_source.html +1 -1
  53. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +6 -5
  54. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +214 -215
  55. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +15 -16
  56. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +180 -181
  57. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +1 -4
  58. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +226 -227
  59. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +0 -3
  60. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +232 -233
  61. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +2 -5
  62. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +222 -223
  63. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +3 -6
  64. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +222 -223
  65. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -4
  66. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +152 -154
  67. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +9 -12
  68. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +3 -3
  69. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +221 -222
  70. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +0 -3
  71. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +132 -133
  72. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +28 -33
  73. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +2 -4
  74. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +10 -10
  75. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +1 -1
  76. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +3 -3
  77. package/SVF-doxygen/html/html/classSVF_1_1DDAStat-members.html +4 -4
  78. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +34 -25
  79. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +16 -16
  80. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +247 -248
  81. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +2 -5
  82. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +208 -209
  83. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +8 -11
  84. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +238 -239
  85. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +21 -24
  86. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +2 -2
  87. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +275 -276
  88. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +8 -10
  89. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +31 -31
  90. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +2 -2
  91. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +38 -38
  92. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode-members.html +13 -14
  93. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +19 -43
  94. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +2 -2
  95. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
  96. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +74 -74
  97. package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +7 -7
  98. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +1 -1
  99. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +1 -1
  100. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +4 -4
  101. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +5 -5
  102. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +2 -2
  103. package/SVF-doxygen/html/html/classSVF_1_1MemObj-members.html +1 -1
  104. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +8 -8
  105. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +3 -3
  106. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat-members.html +2 -2
  107. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +15 -14
  108. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +33 -33
  109. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +3 -3
  110. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +94 -95
  111. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +73 -107
  112. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +1 -1
  113. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +4 -4
  114. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +11 -13
  115. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat-members.html +6 -6
  116. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +53 -52
  117. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +15 -30
  118. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +2 -2
  119. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +3 -3
  120. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +193 -194
  121. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +0 -3
  122. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +18 -18
  123. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +1 -1
  124. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +184 -185
  125. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -5
  126. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +3 -3
  127. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +1 -1
  128. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +287 -288
  129. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +8 -10
  130. package/SVF-doxygen/html/html/functions_0x7e.html +1 -1
  131. package/SVF-doxygen/html/html/functions_c.html +18 -21
  132. package/SVF-doxygen/html/html/functions_func_0x7e.html +1 -1
  133. package/SVF-doxygen/html/html/functions_func_c.html +12 -13
  134. package/SVF-doxygen/html/html/functions_func_p.html +9 -9
  135. package/SVF-doxygen/html/html/functions_l.html +3 -3
  136. package/SVF-doxygen/html/html/functions_m.html +4 -4
  137. package/SVF-doxygen/html/html/functions_o.html +4 -4
  138. package/SVF-doxygen/html/html/functions_p.html +12 -12
  139. package/SVF-doxygen/html/html/functions_r.html +5 -4
  140. package/SVF-doxygen/html/html/functions_s.html +3 -3
  141. package/SVF-doxygen/html/html/functions_t.html +5 -7
  142. package/SVF-doxygen/html/html/functions_v.html +6 -6
  143. package/SVF-doxygen/html/html/functions_vars_m.html +4 -4
  144. package/SVF-doxygen/html/html/functions_vars_r.html +1 -2
  145. package/SVF-doxygen/html/html/globals_func_g.html +0 -6
  146. package/SVF-doxygen/html/html/globals_g.html +2 -8
  147. package/SVF-doxygen/html/html/globals_s.html +4 -2
  148. package/SVF-doxygen/html/html/namespaceSVF.html +1 -1
  149. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +1 -2
  150. package/SVF-doxygen/html/html/search/all_10.js +7 -7
  151. package/SVF-doxygen/html/html/search/all_12.js +3 -3
  152. package/SVF-doxygen/html/html/search/all_13.js +7 -7
  153. package/SVF-doxygen/html/html/search/all_14.js +4 -4
  154. package/SVF-doxygen/html/html/search/all_16.js +3 -3
  155. package/SVF-doxygen/html/html/search/all_1b.js +1 -1
  156. package/SVF-doxygen/html/html/search/all_3.js +1 -1
  157. package/SVF-doxygen/html/html/search/all_7.js +0 -2
  158. package/SVF-doxygen/html/html/search/all_c.js +2 -2
  159. package/SVF-doxygen/html/html/search/all_d.js +4 -4
  160. package/SVF-doxygen/html/html/search/all_e.js +1 -1
  161. package/SVF-doxygen/html/html/search/all_f.js +3 -3
  162. package/SVF-doxygen/html/html/search/functions_10.js +1 -1
  163. package/SVF-doxygen/html/html/search/functions_16.js +1 -1
  164. package/SVF-doxygen/html/html/search/functions_2.js +1 -1
  165. package/SVF-doxygen/html/html/search/functions_6.js +0 -2
  166. package/SVF-doxygen/html/html/search/functions_e.js +6 -6
  167. package/SVF-doxygen/html/html/search/variables_12.js +1 -1
  168. package/SVF-doxygen/html/html/search/variables_14.js +3 -3
  169. package/SVF-doxygen/html/html/search/variables_d.js +4 -4
  170. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  171. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +14 -14
  172. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SVFGNodeLockSpan_01_4.html +3 -3
  173. package/SVF-doxygen/html/html/svf-ex_8cpp.html +4 -3
  174. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +2 -1
  175. package/include/DDA/DDAStat.h +4 -4
  176. package/include/Graphs/SVFGNode.h +2 -4
  177. package/include/Graphs/SVFGStat.h +8 -8
  178. package/include/Graphs/VFG.h +1 -1
  179. package/include/MTA/FSMPTA.h +1 -0
  180. package/include/MTA/MTAResultValidator.h +1 -1
  181. package/include/MemoryModel/AbstractPointsToDS.h +6 -0
  182. package/include/MemoryModel/PointerAnalysis.h +0 -5
  183. package/include/MemoryModel/SymbolTableInfo.h +2 -2
  184. package/include/Util/IRAnnotator.h +2 -2
  185. package/include/WPA/Andersen.h +1 -1
  186. package/include/WPA/AndersenSFR.h +1 -1
  187. package/lib/CUDD/CMakeLists.txt +1 -1
  188. package/lib/DDA/DDAStat.cpp +2 -2
  189. package/lib/Graphs/SVFGStat.cpp +4 -4
  190. package/lib/MSSA/SVFGBuilder.cpp +0 -1
  191. package/lib/MTA/FSMPTA.cpp +2 -3
  192. package/lib/MTA/LockResultValidator.cpp +1 -1
  193. package/lib/MTA/MHP.cpp +0 -36
  194. package/lib/MTA/MTAResultValidator.cpp +3 -3
  195. package/lib/MTA/TCT.cpp +0 -1
  196. package/lib/MemoryModel/PointerAnalysis.cpp +1 -1
  197. package/lib/MemoryModel/PointerAnalysisImpl.cpp +0 -1
  198. package/lib/MemoryModel/SVFIR.cpp +15 -15
  199. package/lib/MemoryModel/SymbolTableInfo.cpp +1 -1
  200. package/lib/SVF-FE/LLVMUtil.cpp +1 -1
  201. package/lib/SVF-FE/SVFIRBuilder.cpp +5 -5
  202. package/lib/Util/CoreBitVector.cpp +1 -1
  203. package/lib/Util/NodeIDAllocator.cpp +0 -1
  204. package/lib/WPA/AndersenSFR.cpp +2 -2
  205. package/lib/WPA/FlowSensitiveTBHC.cpp +1 -1
  206. package/lib/WPA/VersionedFlowSensitive.cpp +4 -4
  207. package/package.json +1 -1
  208. package/tools/Example/svf-ex.cpp +4 -3
@@ -302,7 +302,6 @@ bool BVDataPTAImpl::readFromFile(const string& filename)
302
302
  void BVDataPTAImpl::writeToModule()
303
303
  {
304
304
  auto irAnnotator = std::make_unique<IRAnnotator>();
305
- auto mainModule = SVF::LLVMModuleSet::getLLVMModuleSet()->getMainLLVMModule();
306
305
 
307
306
  irAnnotator->processAndersenResults(pag, this, true);
308
307
  }
@@ -52,7 +52,7 @@ AddrStmt* SVFIR::addAddrStmt(NodeID src, NodeID dst)
52
52
  {
53
53
  SVFVar* srcNode = getGNode(src);
54
54
  SVFVar* dstNode = getGNode(dst);
55
- if(SVFStmt* edge = hasNonlabeledEdge(srcNode,dstNode, SVFStmt::Addr))
55
+ if(hasNonlabeledEdge(srcNode,dstNode, SVFStmt::Addr))
56
56
  return nullptr;
57
57
  else
58
58
  {
@@ -70,7 +70,7 @@ CopyStmt* SVFIR::addCopyStmt(NodeID src, NodeID dst)
70
70
  {
71
71
  SVFVar* srcNode = getGNode(src);
72
72
  SVFVar* dstNode = getGNode(dst);
73
- if(SVFStmt* edge = hasNonlabeledEdge(srcNode,dstNode, SVFStmt::Copy))
73
+ if(hasNonlabeledEdge(srcNode,dstNode, SVFStmt::Copy))
74
74
  return nullptr;
75
75
  else
76
76
  {
@@ -112,7 +112,7 @@ SelectStmt* SVFIR::addSelectStmt(NodeID res, NodeID op1, NodeID op2, NodeID cond
112
112
  SVFVar* op2Node = getGNode(op2);
113
113
  SVFVar* dstNode = getGNode(res);
114
114
  SVFVar* condNode = getGNode(cond);
115
- if(SVFStmt* edge = hasLabeledEdge(op1Node, dstNode, SVFStmt::Select, op2Node))
115
+ if(hasLabeledEdge(op1Node, dstNode, SVFStmt::Select, op2Node))
116
116
  return nullptr;
117
117
  else
118
118
  {
@@ -132,7 +132,7 @@ CmpStmt* SVFIR::addCmpStmt(NodeID op1, NodeID op2, NodeID dst, u32_t predicate)
132
132
  SVFVar* op1Node = getGNode(op1);
133
133
  SVFVar* op2Node = getGNode(op2);
134
134
  SVFVar* dstNode = getGNode(dst);
135
- if(SVFStmt* edge = hasLabeledEdge(op1Node, dstNode, SVFStmt::Cmp, op2Node))
135
+ if(hasLabeledEdge(op1Node, dstNode, SVFStmt::Cmp, op2Node))
136
136
  return nullptr;
137
137
  else
138
138
  {
@@ -153,7 +153,7 @@ BinaryOPStmt* SVFIR::addBinaryOPStmt(NodeID op1, NodeID op2, NodeID dst, u32_t o
153
153
  SVFVar* op1Node = getGNode(op1);
154
154
  SVFVar* op2Node = getGNode(op2);
155
155
  SVFVar* dstNode = getGNode(dst);
156
- if(SVFStmt* edge = hasLabeledEdge(op1Node, dstNode, SVFStmt::BinaryOp, op2Node))
156
+ if(hasLabeledEdge(op1Node, dstNode, SVFStmt::BinaryOp, op2Node))
157
157
  return nullptr;
158
158
  else
159
159
  {
@@ -172,7 +172,7 @@ UnaryOPStmt* SVFIR::addUnaryOPStmt(NodeID src, NodeID dst, u32_t opcode)
172
172
  {
173
173
  SVFVar* srcNode = getGNode(src);
174
174
  SVFVar* dstNode = getGNode(dst);
175
- if(SVFStmt* edge = hasNonlabeledEdge(srcNode,dstNode, SVFStmt::UnaryOp))
175
+ if(hasNonlabeledEdge(srcNode,dstNode, SVFStmt::UnaryOp))
176
176
  return nullptr;
177
177
  else
178
178
  {
@@ -190,7 +190,7 @@ BranchStmt* SVFIR::addBranchStmt(NodeID br, NodeID cond, const BranchStmt::SuccA
190
190
  {
191
191
  SVFVar* brNode = getGNode(br);
192
192
  SVFVar* condNode = getGNode(cond);
193
- if(SVFStmt* edge = hasNonlabeledEdge(condNode,brNode, SVFStmt::Branch))
193
+ if(hasNonlabeledEdge(condNode,brNode, SVFStmt::Branch))
194
194
  return nullptr;
195
195
  else
196
196
  {
@@ -208,7 +208,7 @@ LoadStmt* SVFIR::addLoadStmt(NodeID src, NodeID dst)
208
208
  {
209
209
  SVFVar* srcNode = getGNode(src);
210
210
  SVFVar* dstNode = getGNode(dst);
211
- if(SVFStmt* edge = hasNonlabeledEdge(srcNode,dstNode, SVFStmt::Load))
211
+ if(hasNonlabeledEdge(srcNode,dstNode, SVFStmt::Load))
212
212
  return nullptr;
213
213
  else
214
214
  {
@@ -227,7 +227,7 @@ StoreStmt* SVFIR::addStoreStmt(NodeID src, NodeID dst, const IntraICFGNode* curV
227
227
  {
228
228
  SVFVar* srcNode = getGNode(src);
229
229
  SVFVar* dstNode = getGNode(dst);
230
- if(SVFStmt* edge = hasLabeledEdge(srcNode,dstNode, SVFStmt::Store, curVal))
230
+ if(hasLabeledEdge(srcNode,dstNode, SVFStmt::Store, curVal))
231
231
  return nullptr;
232
232
  else
233
233
  {
@@ -245,7 +245,7 @@ CallPE* SVFIR::addCallPE(NodeID src, NodeID dst, const CallICFGNode* cs, const F
245
245
  {
246
246
  SVFVar* srcNode = getGNode(src);
247
247
  SVFVar* dstNode = getGNode(dst);
248
- if(SVFStmt* edge = hasLabeledEdge(srcNode,dstNode, SVFStmt::Call, cs))
248
+ if(hasLabeledEdge(srcNode,dstNode, SVFStmt::Call, cs))
249
249
  return nullptr;
250
250
  else
251
251
  {
@@ -263,7 +263,7 @@ RetPE* SVFIR::addRetPE(NodeID src, NodeID dst, const CallICFGNode* cs, const Fun
263
263
  {
264
264
  SVFVar* srcNode = getGNode(src);
265
265
  SVFVar* dstNode = getGNode(dst);
266
- if(SVFStmt* edge = hasLabeledEdge(srcNode,dstNode, SVFStmt::Ret, cs))
266
+ if(hasLabeledEdge(srcNode,dstNode, SVFStmt::Ret, cs))
267
267
  return nullptr;
268
268
  else
269
269
  {
@@ -292,7 +292,7 @@ TDForkPE* SVFIR::addThreadForkPE(NodeID src, NodeID dst, const CallICFGNode* cs,
292
292
  {
293
293
  SVFVar* srcNode = getGNode(src);
294
294
  SVFVar* dstNode = getGNode(dst);
295
- if(SVFStmt* edge = hasLabeledEdge(srcNode,dstNode, SVFStmt::ThreadFork, cs))
295
+ if(hasLabeledEdge(srcNode,dstNode, SVFStmt::ThreadFork, cs))
296
296
  return nullptr;
297
297
  else
298
298
  {
@@ -310,7 +310,7 @@ TDJoinPE* SVFIR::addThreadJoinPE(NodeID src, NodeID dst, const CallICFGNode* cs,
310
310
  {
311
311
  SVFVar* srcNode = getGNode(src);
312
312
  SVFVar* dstNode = getGNode(dst);
313
- if(SVFStmt* edge = hasLabeledEdge(srcNode,dstNode, SVFStmt::ThreadJoin, cs))
313
+ if(hasLabeledEdge(srcNode,dstNode, SVFStmt::ThreadJoin, cs))
314
314
  return nullptr;
315
315
  else
316
316
  {
@@ -351,7 +351,7 @@ GepStmt* SVFIR::addNormalGepStmt(NodeID src, NodeID dst, const LocationSet& ls)
351
351
  const LocationSet& baseLS = getLocationSetFromBaseNode(src);
352
352
  SVFVar* baseNode = getGNode(getBaseValVar(src));
353
353
  SVFVar* dstNode = getGNode(dst);
354
- if(SVFStmt* edge = hasNonlabeledEdge(baseNode, dstNode, SVFStmt::Gep))
354
+ if(hasNonlabeledEdge(baseNode, dstNode, SVFStmt::Gep))
355
355
  return nullptr;
356
356
  else
357
357
  {
@@ -371,7 +371,7 @@ GepStmt* SVFIR::addVariantGepStmt(NodeID src, NodeID dst, const LocationSet& ls)
371
371
  const LocationSet& baseLS = getLocationSetFromBaseNode(src);
372
372
  SVFVar* baseNode = getGNode(getBaseValVar(src));
373
373
  SVFVar* dstNode = getGNode(dst);
374
- if(SVFStmt* edge = hasNonlabeledEdge(baseNode, dstNode, SVFStmt::Gep))
374
+ if(hasNonlabeledEdge(baseNode, dstNode, SVFStmt::Gep))
375
375
  return nullptr;
376
376
  else
377
377
  {
@@ -631,7 +631,7 @@ void MemObj::setFieldSensitive()
631
631
  * Constructor of a memory object
632
632
  */
633
633
  MemObj::MemObj(SymID id, ObjTypeInfo* ti, const Value *val) :
634
- symId(id), refVal(val), typeInfo(ti)
634
+ typeInfo(ti), refVal(val), symId(id)
635
635
  {
636
636
  }
637
637
 
@@ -388,7 +388,7 @@ void SVFUtil::processArguments(int argc, char **argv, int &arg_num, char **arg_v
388
388
  std::vector<std::string> &moduleNameVec)
389
389
  {
390
390
  bool first_ir_file = true;
391
- for (u32_t i = 0; i < argc; ++i)
391
+ for (int i = 0; i < argc; ++i)
392
392
  {
393
393
  std::string argument(argv[i]);
394
394
  if (SVFUtil::isIRFile(argument))
@@ -238,7 +238,7 @@ bool SVFIRBuilder::computeGepOffset(const User *V, LocationSet& ls)
238
238
  llvm::APInt byteOffset(dataLayout->getIndexSizeInBits(gepOp->getPointerAddressSpace()),0,true);
239
239
  if(gepOp && dataLayout && gepOp->accumulateConstantOffset(*dataLayout,byteOffset))
240
240
  {
241
- s32_t bo = byteOffset.getSExtValue();
241
+ //s32_t bo = byteOffset.getSExtValue();
242
242
  }
243
243
 
244
244
  for (bridge_gep_iterator gi = bridge_gep_begin(*V), ge = bridge_gep_end(*V);
@@ -1331,9 +1331,9 @@ void SVFIRBuilder::handleExtCall(CallSite cs, const SVFFunction *callee)
1331
1331
 
1332
1332
  // We summarize the side effects: arg3->parent = arg1, arg3->left = arg1, arg3->right = arg1
1333
1333
  // Note that arg0 is aligned with "offset".
1334
- for (int i = offset + 1; i <= offset + 3; ++i)
1334
+ for (s32_t i = offset + 1; i <= offset + 3; ++i)
1335
1335
  {
1336
- if(i >= fields.size())
1336
+ if((u32_t)i >= fields.size())
1337
1337
  break;
1338
1338
  const Type* elementType = SymbolTableInfo::SymbolInfo()->getFlatternedElemType(type, fields[i].accumulateConstantFieldIdx());
1339
1339
  NodeID vnD = getGepValVar(vArg3, fields[i], elementType);
@@ -1358,9 +1358,9 @@ void SVFIRBuilder::handleExtCall(CallSite cs, const SVFFunction *callee)
1358
1358
 
1359
1359
  // We summarize the side effects: ret = arg->parent, ret = arg->left, ret = arg->right
1360
1360
  // Note that arg0 is aligned with "offset".
1361
- for (int i = offset + 1; i <= offset + 3; ++i)
1361
+ for (s32_t i = offset + 1; i <= offset + 3; ++i)
1362
1362
  {
1363
- if(i >= fields.size())
1363
+ if((u32_t)i >= fields.size())
1364
1364
  break;
1365
1365
  const Type* elementType = SymbolTableInfo::SymbolInfo()->getFlatternedElemType(type, fields[i].accumulateConstantFieldIdx());
1366
1366
  NodeID vnS = getGepValVar(vArg, fields[i], elementType);
@@ -197,7 +197,7 @@ bool CoreBitVector::operator|=(const CoreBitVector &rhs)
197
197
 
198
198
  // Can start counting from 0 because we took the addresses of both
199
199
  // word vectors at the correct index.
200
- #pragma omp simd
200
+ // #pragma omp simd
201
201
  for (size_t i = 0 ; i < length; ++i)
202
202
  {
203
203
  const Word oldWord = thisWords[i];
@@ -191,7 +191,6 @@ namespace SVF
191
191
  assert(Options::NodeAllocStrat == Strategy::DENSE && "Clusterer::cluster: only dense allocation clustering currently supported");
192
192
 
193
193
  Map<std::string, std::string> overallStats;
194
- double totalTime = 0.0;
195
194
  double fastClusterTime = 0.0;
196
195
  double distanceMatrixTime = 0.0;
197
196
  double dendrogramTraversalTime = 0.0;
@@ -80,7 +80,7 @@ bool AndersenSFR::mergeSrcToTgt(NodeID nodeId, NodeID newRepId)
80
80
  /*!
81
81
  * Propagate point-to set via a gep edge, using SFR
82
82
  */
83
- bool AndersenSFR::processGepPts(PointsTo& pts, const GepCGEdge* edge)
83
+ bool AndersenSFR::processGepPts(const PointsTo& pts, const GepCGEdge* edge)
84
84
  {
85
85
  ConstraintNode* dst = edge->getDstNode();
86
86
  NodeID dstId = dst->getId();
@@ -152,7 +152,7 @@ void AndersenSFR::fieldExpand(NodeSet& initials, s32_t offset, NodeBS& strides,
152
152
  for (auto _s : strides)
153
153
  {
154
154
  s32_t _f1 = _f + _s;
155
- loopFlag = (offsets.find(_f1) == offsets.end()) && (initOffset + _f1 < maxLimit);
155
+ loopFlag = (offsets.find(_f1) == offsets.end()) && ( (u32_t)(initOffset + _f1) < maxLimit);
156
156
  if (loopFlag)
157
157
  offsets.insert(_f1);
158
158
  }
@@ -329,7 +329,7 @@ bool FlowSensitiveTBHC::processGep(const GepSVFGNode* gep)
329
329
  }
330
330
 
331
331
  if (DCHGraph::isAgg(baseType) && baseType->getTag() != dwarf::DW_TAG_array_type
332
- && gepStmt->getConstantFieldIdx() >= dchg->getNumFields(baseType))
332
+ && ((u32_t)gepStmt->getConstantFieldIdx() >= dchg->getNumFields(baseType)))
333
333
  {
334
334
  // If the field offset is too high for this object, it is killed. It seems that a
335
335
  // clone was made on this GEP but this is not the base (e.g. base->f1->f2), and SVF
@@ -306,7 +306,7 @@ void VersionedFlowSensitive::meldLabel(void)
306
306
  Map<MeldVersion, Version> mvv;
307
307
  std::vector<Version> sccToVersion(numSCCs, invalidVersion);
308
308
  Version curVersion = 0;
309
- for (int scc = 0; scc < sccToMeldVersion.size(); ++scc)
309
+ for (u32_t scc = 0; scc < sccToMeldVersion.size(); ++scc)
310
310
  {
311
311
  const MeldVersion &mv = sccToMeldVersion[scc];
312
312
  Map<MeldVersion, Version>::const_iterator foundVersion = mvv.find(mv);
@@ -318,7 +318,7 @@ void VersionedFlowSensitive::meldLabel(void)
318
318
 
319
319
  // Same for storesYieldedMeldVersion.
320
320
  Map<NodeID, Version> storesYieldedVersion;
321
- for (const std::pair<NodeID, MeldVersion> &nmv : storesYieldedMeldVersion)
321
+ for (auto const& nmv : storesYieldedMeldVersion)
322
322
  {
323
323
  const NodeID n = nmv.first;
324
324
  const MeldVersion &mv = nmv.second;
@@ -334,7 +334,7 @@ void VersionedFlowSensitive::meldLabel(void)
334
334
 
335
335
  // 6. From SCC reliance, determine version reliances.
336
336
  Map<Version, std::vector<Version>> &osVersionReliance = this->versionReliance.at(o);
337
- for (int scc = 0; scc < numSCCs; ++scc)
337
+ for (u32_t scc = 0; scc < numSCCs; ++scc)
338
338
  {
339
339
  if (sccReliance[scc].empty()) continue;
340
340
 
@@ -818,7 +818,7 @@ void VersionedFlowSensitive::dumpReliances(void) const
818
818
  {
819
819
  NodeID o = ovrv.first;
820
820
  SVFUtil::outs() << " Object " << o << "\n";
821
- for (const Map<Version, std::vector<Version>>::value_type vrv : ovrv.second)
821
+ for (const Map<Version, std::vector<Version>>::value_type& vrv : ovrv.second)
822
822
  {
823
823
  Version v = vrv.first;
824
824
  SVFUtil::outs() << " Version " << v << " is a reliance for: ";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-tools",
3
- "version": "1.0.410",
3
+ "version": "1.0.413",
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": {
@@ -88,8 +88,8 @@ void traverseOnICFG(ICFG* icfg, const Instruction* inst)
88
88
  while (!worklist.empty())
89
89
  {
90
90
  const ICFGNode* vNode = worklist.pop();
91
- for (ICFGNode::const_iterator it = iNode->OutEdgeBegin(), eit =
92
- iNode->OutEdgeEnd(); it != eit; ++it)
91
+ for (ICFGNode::const_iterator it = vNode->OutEdgeBegin(), eit =
92
+ vNode->OutEdgeEnd(); it != eit; ++it)
93
93
  {
94
94
  ICFGEdge* edge = *it;
95
95
  ICFGNode* succNode = edge->getDstNode();
@@ -135,7 +135,7 @@ void traverseOnVFG(const SVFG* vfg, Value* val)
135
135
  /// Collect all LLVM Values
136
136
  for(Set<const VFGNode*>::const_iterator it = visited.begin(), eit = visited.end(); it!=eit; ++it)
137
137
  {
138
- const VFGNode* node = *it;
138
+ // const VFGNode* node = *it;
139
139
  /// can only query VFGNode involving top-level pointers (starting with % or @ in LLVM IR)
140
140
  /// PAGNode* pNode = vfg->getLHSTopLevPtr(node);
141
141
  /// Value* val = pNode->getValue();
@@ -178,6 +178,7 @@ int main(int argc, char ** argv)
178
178
 
179
179
  /// ICFG
180
180
  ICFG* icfg = pag->getICFG();
181
+ icfg->dump("icfg");
181
182
 
182
183
  /// Value-Flow Graph (VFG)
183
184
  VFG* vfg = new VFG(callgraph);