svf-tools 1.0.481 → 1.0.482

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 (337) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
  2. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +1 -1
  4. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +8 -8
  5. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +8 -8
  6. package/SVF-doxygen/html/html/Andersen_8h_source.html +6 -6
  7. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +5 -5
  8. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +1 -1
  9. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +7 -7
  11. package/SVF-doxygen/html/html/CHG_8cpp_source.html +3 -3
  12. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +14 -15
  13. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +14 -14
  14. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  15. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +13 -13
  16. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +7 -7
  17. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +8 -8
  19. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +5 -5
  20. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +4 -4
  21. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +2 -2
  22. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +6 -6
  23. package/SVF-doxygen/html/html/ExeState_8h_source.html +2 -2
  24. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +3 -3
  25. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +4 -4
  26. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +12 -12
  27. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +3 -3
  28. package/SVF-doxygen/html/html/FlowSensitive_8cpp.html +0 -1
  29. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +32 -38
  30. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +66 -67
  31. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
  32. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +6 -6
  33. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +1 -1
  34. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +2 -7
  35. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
  36. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/MTA_8cpp_source.html +2 -2
  38. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +6 -6
  39. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +5 -5
  40. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
  41. package/SVF-doxygen/html/html/Options_8cpp_source.html +17 -21
  42. package/SVF-doxygen/html/html/Options_8h_source.html +13 -16
  43. package/SVF-doxygen/html/html/PCG_8h_source.html +3 -3
  44. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +5 -5
  45. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +1 -1
  46. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +21 -22
  47. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +17 -17
  48. package/SVF-doxygen/html/html/PointerAnalysis_8cpp.html +0 -1
  49. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +64 -69
  50. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +109 -110
  51. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +2 -2
  52. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +3 -3
  53. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
  54. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +1 -1
  55. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +12 -12
  56. package/SVF-doxygen/html/html/SVFIR_8h_source.html +9 -9
  57. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +26 -32
  58. package/SVF-doxygen/html/html/SVFVariables_8h.html +0 -6
  59. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +109 -130
  60. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +1 -1
  61. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +8 -8
  62. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +2 -2
  63. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
  64. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +3 -3
  65. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +4 -4
  66. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +5 -5
  67. package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
  68. package/SVF-doxygen/html/html/VFG_8cpp_source.html +9 -9
  69. package/SVF-doxygen/html/html/VFG_8h_source.html +1 -1
  70. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +16 -16
  71. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +4 -4
  72. package/SVF-doxygen/html/html/WPAPass_8cpp.html +0 -1
  73. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +16 -19
  74. package/SVF-doxygen/html/html/WPAPass_8h_source.html +6 -6
  75. package/SVF-doxygen/html/html/annotated.html +248 -253
  76. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +1 -1
  77. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
  78. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +2 -2
  79. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +173 -174
  80. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +27 -29
  81. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +146 -147
  82. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +17 -19
  83. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +185 -186
  84. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +7 -8
  85. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +189 -190
  86. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +6 -7
  87. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +180 -181
  88. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +8 -9
  89. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +182 -183
  90. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +11 -12
  91. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +185 -186
  92. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +8 -9
  93. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +11 -11
  94. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +177 -178
  95. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +8 -9
  96. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +4 -4
  97. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +103 -104
  98. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +42 -48
  99. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.png +0 -0
  100. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +3 -3
  101. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +73 -74
  102. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +13 -14
  103. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
  104. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +13 -13
  105. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +3 -3
  106. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +3 -3
  107. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +94 -95
  108. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +26 -28
  109. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +163 -164
  110. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +33 -35
  111. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +2 -2
  112. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +3 -3
  113. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +15 -15
  114. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +5 -5
  115. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +2 -2
  116. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +72 -75
  117. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +16 -27
  118. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.png +0 -0
  119. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +70 -73
  120. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +17 -20
  121. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +6 -6
  122. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar-members.html +72 -75
  123. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +18 -29
  124. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.png +0 -0
  125. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +112 -114
  126. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +12 -15
  127. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +163 -164
  128. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +25 -27
  129. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +106 -108
  130. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +234 -314
  131. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.png +0 -0
  132. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +43 -43
  133. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +1 -1
  134. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +1 -1
  135. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +4 -4
  136. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar-members.html +77 -80
  137. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +38 -49
  138. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.png +0 -0
  139. package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +73 -76
  140. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +28 -31
  141. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +9 -9
  142. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +2 -2
  143. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  144. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +2 -2
  145. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +1 -1
  146. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +44 -45
  147. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +4 -45
  148. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +1 -1
  149. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +14 -14
  150. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +2 -2
  151. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +2 -2
  152. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +1 -1
  153. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +8 -8
  154. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1ObjVar-members.html +71 -74
  156. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +30 -42
  157. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.png +0 -0
  158. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +104 -107
  159. package/SVF-doxygen/html/html/classSVF_1_1Options.html +13 -94
  160. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +3 -3
  161. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +4 -4
  162. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +5 -5
  163. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +1 -1
  164. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +69 -70
  165. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +302 -319
  166. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.png +0 -0
  167. package/SVF-doxygen/html/html/classSVF_1_1RetPN-members.html +70 -73
  168. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +18 -21
  169. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +5 -5
  170. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +2 -2
  171. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +18 -18
  172. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +2 -2
  173. package/SVF-doxygen/html/html/classSVF_1_1SVFVar-members.html +73 -76
  174. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +84 -99
  175. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.png +0 -0
  176. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +2 -2
  177. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +8 -8
  178. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +2 -3
  179. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +157 -158
  180. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +6 -7
  181. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +4 -4
  182. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +3 -3
  183. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +150 -151
  184. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +21 -23
  185. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
  186. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +9 -9
  187. package/SVF-doxygen/html/html/classSVF_1_1ValVar-members.html +69 -72
  188. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +23 -26
  189. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN-members.html +70 -73
  190. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +18 -21
  191. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +125 -127
  192. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +44 -48
  193. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +31 -31
  194. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +6 -7
  195. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.png +0 -0
  196. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +38 -40
  197. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +17 -15
  198. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.png +0 -0
  199. package/SVF-doxygen/html/html/classes.html +104 -105
  200. package/SVF-doxygen/html/html/dir_66541c162fd98954e2c32089ba9a721f.html +0 -4
  201. package/SVF-doxygen/html/html/dir_ea25a8a5b2904424d8a51916f8b475b2.html +0 -4
  202. package/SVF-doxygen/html/html/files.html +12 -16
  203. package/SVF-doxygen/html/html/functions_0x7e.html +0 -6
  204. package/SVF-doxygen/html/html/functions_a.html +8 -30
  205. package/SVF-doxygen/html/html/functions_b.html +8 -12
  206. package/SVF-doxygen/html/html/functions_c.html +24 -54
  207. package/SVF-doxygen/html/html/functions_d.html +1 -13
  208. package/SVF-doxygen/html/html/functions_e.html +1 -2
  209. package/SVF-doxygen/html/html/functions_eval_c.html +0 -9
  210. package/SVF-doxygen/html/html/functions_eval_f.html +0 -3
  211. package/SVF-doxygen/html/html/functions_f.html +19 -24
  212. package/SVF-doxygen/html/html/functions_func.html +6 -25
  213. package/SVF-doxygen/html/html/functions_func_0x7e.html +0 -6
  214. package/SVF-doxygen/html/html/functions_func_b.html +1 -5
  215. package/SVF-doxygen/html/html/functions_func_c.html +20 -37
  216. package/SVF-doxygen/html/html/functions_func_d.html +0 -6
  217. package/SVF-doxygen/html/html/functions_func_e.html +2 -3
  218. package/SVF-doxygen/html/html/functions_func_f.html +1 -5
  219. package/SVF-doxygen/html/html/functions_func_g.html +8 -48
  220. package/SVF-doxygen/html/html/functions_func_i.html +5 -15
  221. package/SVF-doxygen/html/html/functions_func_p.html +2 -16
  222. package/SVF-doxygen/html/html/functions_func_s.html +6 -19
  223. package/SVF-doxygen/html/html/functions_func_t.html +0 -6
  224. package/SVF-doxygen/html/html/functions_func_u.html +0 -4
  225. package/SVF-doxygen/html/html/functions_func_v.html +0 -3
  226. package/SVF-doxygen/html/html/functions_g.html +12 -55
  227. package/SVF-doxygen/html/html/functions_i.html +11 -21
  228. package/SVF-doxygen/html/html/functions_l.html +8 -14
  229. package/SVF-doxygen/html/html/functions_m.html +0 -6
  230. package/SVF-doxygen/html/html/functions_n.html +0 -36
  231. package/SVF-doxygen/html/html/functions_o.html +12 -20
  232. package/SVF-doxygen/html/html/functions_p.html +9 -31
  233. package/SVF-doxygen/html/html/functions_s.html +15 -31
  234. package/SVF-doxygen/html/html/functions_t.html +8 -18
  235. package/SVF-doxygen/html/html/functions_u.html +2 -9
  236. package/SVF-doxygen/html/html/functions_v.html +7 -10
  237. package/SVF-doxygen/html/html/functions_vars_a.html +0 -3
  238. package/SVF-doxygen/html/html/functions_vars_c.html +0 -6
  239. package/SVF-doxygen/html/html/functions_vars_d.html +0 -6
  240. package/SVF-doxygen/html/html/functions_vars_g.html +0 -3
  241. package/SVF-doxygen/html/html/functions_vars_l.html +0 -6
  242. package/SVF-doxygen/html/html/functions_vars_m.html +0 -6
  243. package/SVF-doxygen/html/html/functions_vars_n.html +0 -36
  244. package/SVF-doxygen/html/html/functions_vars_o.html +0 -12
  245. package/SVF-doxygen/html/html/functions_vars_p.html +0 -4
  246. package/SVF-doxygen/html/html/functions_vars_s.html +0 -3
  247. package/SVF-doxygen/html/html/functions_vars_t.html +0 -6
  248. package/SVF-doxygen/html/html/functions_vars_u.html +0 -3
  249. package/SVF-doxygen/html/html/functions_w.html +10 -6
  250. package/SVF-doxygen/html/html/globals_func_g.html +0 -3
  251. package/SVF-doxygen/html/html/globals_func_i.html +2 -7
  252. package/SVF-doxygen/html/html/globals_g.html +2 -5
  253. package/SVF-doxygen/html/html/globals_i.html +4 -7
  254. package/SVF-doxygen/html/html/globals_r.html +3 -3
  255. package/SVF-doxygen/html/html/globals_s.html +9 -7
  256. package/SVF-doxygen/html/html/hierarchy.html +13 -19
  257. package/SVF-doxygen/html/html/namespaceSVF.html +0 -10
  258. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +36 -38
  259. package/SVF-doxygen/html/html/search/all_1.js +1 -8
  260. package/SVF-doxygen/html/html/search/all_10.js +19 -21
  261. package/SVF-doxygen/html/html/search/all_12.js +1 -1
  262. package/SVF-doxygen/html/html/search/all_13.js +12 -17
  263. package/SVF-doxygen/html/html/search/all_14.js +8 -12
  264. package/SVF-doxygen/html/html/search/all_15.js +5 -6
  265. package/SVF-doxygen/html/html/search/all_16.js +4 -5
  266. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  267. package/SVF-doxygen/html/html/search/all_1b.js +0 -2
  268. package/SVF-doxygen/html/html/search/all_2.js +0 -1
  269. package/SVF-doxygen/html/html/search/all_3.js +2 -11
  270. package/SVF-doxygen/html/html/search/all_4.js +0 -4
  271. package/SVF-doxygen/html/html/search/all_5.js +2 -2
  272. package/SVF-doxygen/html/html/search/all_6.js +2 -6
  273. package/SVF-doxygen/html/html/search/all_7.js +3 -16
  274. package/SVF-doxygen/html/html/search/all_9.js +5 -8
  275. package/SVF-doxygen/html/html/search/all_c.js +4 -6
  276. package/SVF-doxygen/html/html/search/all_d.js +4 -6
  277. package/SVF-doxygen/html/html/search/all_e.js +3 -15
  278. package/SVF-doxygen/html/html/search/all_f.js +0 -4
  279. package/SVF-doxygen/html/html/search/classes_10.js +1 -2
  280. package/SVF-doxygen/html/html/search/classes_2.js +0 -3
  281. package/SVF-doxygen/html/html/search/classes_5.js +0 -1
  282. package/SVF-doxygen/html/html/search/enumvalues_2.js +0 -3
  283. package/SVF-doxygen/html/html/search/enumvalues_5.js +0 -1
  284. package/SVF-doxygen/html/html/search/files_5.js +0 -2
  285. package/SVF-doxygen/html/html/search/files_e.js +1 -3
  286. package/SVF-doxygen/html/html/search/functions_0.js +1 -7
  287. package/SVF-doxygen/html/html/search/functions_1.js +0 -1
  288. package/SVF-doxygen/html/html/search/functions_11.js +2 -6
  289. package/SVF-doxygen/html/html/search/functions_12.js +2 -3
  290. package/SVF-doxygen/html/html/search/functions_13.js +4 -4
  291. package/SVF-doxygen/html/html/search/functions_14.js +0 -1
  292. package/SVF-doxygen/html/html/search/functions_17.js +0 -2
  293. package/SVF-doxygen/html/html/search/functions_2.js +2 -6
  294. package/SVF-doxygen/html/html/search/functions_3.js +0 -2
  295. package/SVF-doxygen/html/html/search/functions_4.js +1 -1
  296. package/SVF-doxygen/html/html/search/functions_5.js +1 -2
  297. package/SVF-doxygen/html/html/search/functions_6.js +3 -15
  298. package/SVF-doxygen/html/html/search/functions_8.js +4 -7
  299. package/SVF-doxygen/html/html/search/functions_f.js +12 -13
  300. package/SVF-doxygen/html/html/search/variables_1.js +0 -1
  301. package/SVF-doxygen/html/html/search/variables_10.js +1 -2
  302. package/SVF-doxygen/html/html/search/variables_13.js +0 -1
  303. package/SVF-doxygen/html/html/search/variables_14.js +3 -5
  304. package/SVF-doxygen/html/html/search/variables_15.js +1 -2
  305. package/SVF-doxygen/html/html/search/variables_3.js +0 -2
  306. package/SVF-doxygen/html/html/search/variables_4.js +0 -2
  307. package/SVF-doxygen/html/html/search/variables_5.js +1 -1
  308. package/SVF-doxygen/html/html/search/variables_7.js +0 -1
  309. package/SVF-doxygen/html/html/search/variables_c.js +1 -3
  310. package/SVF-doxygen/html/html/search/variables_d.js +1 -3
  311. package/SVF-doxygen/html/html/search/variables_e.js +2 -14
  312. package/SVF-doxygen/html/html/search/variables_f.js +0 -4
  313. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  314. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +3 -3
  315. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +1 -1
  316. package/SVF-doxygen/html/html/svf-ex_8cpp.html +4 -4
  317. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +4 -4
  318. package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
  319. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  320. package/build.sh +1 -28
  321. package/include/MemoryModel/PointerAnalysis.h +0 -1
  322. package/include/MemoryModel/SVFVariables.h +11 -140
  323. package/include/SVF-FE/LLVMModule.h +0 -24
  324. package/include/Util/Options.h +0 -7
  325. package/include/WPA/FlowSensitive.h +0 -4
  326. package/lib/MemoryModel/PointerAnalysis.cpp +4 -22
  327. package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
  328. package/lib/MemoryModel/SVFVariables.cpp +1 -28
  329. package/lib/SVF-FE/CPPUtil.cpp +0 -7
  330. package/lib/Util/Options.cpp +0 -24
  331. package/lib/WPA/FlowSensitive.cpp +1 -75
  332. package/lib/WPA/WPAPass.cpp +0 -4
  333. package/package.json +1 -1
  334. package/include/WPA/FlowSensitiveTBHC.h +0 -122
  335. package/include/WPA/TypeBasedHeapCloning.h +0 -188
  336. package/lib/WPA/FlowSensitiveTBHC.cpp +0 -695
  337. package/lib/WPA/TypeBasedHeapCloning.cpp +0 -795
@@ -1,122 +0,0 @@
1
- //===- FlowSensitiveTBHC.h -- flow-sensitive type filter ----------------//
2
-
3
- /*
4
- * FlowSensitiveTBHC.h
5
- *
6
- * Created on: Oct 08, 2019
7
- * Author: Mohamad Barbar
8
- */
9
-
10
- #ifndef FLOWSENSITIVETYPEFILTER_H_
11
- #define FLOWSENSITIVETYPEFILTER_H_
12
-
13
- #include "SVF-FE/DCHG.h"
14
- #include "Graphs/SVFGOPT.h"
15
- #include "MSSA/SVFGBuilder.h"
16
- #include "TypeBasedHeapCloning.h"
17
- #include "WPA/FlowSensitive.h"
18
- #include "MemoryModel/PointsTo.h"
19
-
20
- namespace SVF
21
- {
22
-
23
- class SVFModule;
24
-
25
- /*!
26
- * Flow sensitive whole program pointer analysis with type-based heap cloning.
27
- */
28
- class FlowSensitiveTBHC : public FlowSensitive, public TypeBasedHeapCloning
29
- {
30
- public:
31
- /// Returns raw ctir metadata of the instruction behind a SVFG node.
32
- /// Wraps getRawCTirMetadata(const Value *). Returns null if it doesn't exist.
33
- static const MDNode *getRawCTirMetadata(const SVFGNode *);
34
-
35
- /// Constructor
36
- FlowSensitiveTBHC(SVFIR* _pag, PTATY type = FSTBHC_WPA);
37
-
38
- /// Destructor
39
- virtual ~FlowSensitiveTBHC() { };
40
-
41
- /// Flow sensitive analysis with FSTBHC.
42
- virtual void analyze() override;
43
- /// Initialize analysis.
44
- virtual void initialize() override;
45
- /// Finalize analysis.
46
- virtual void finalize() override;
47
-
48
- /// Get PTA name
49
- virtual const std::string PTAName() const override
50
- {
51
- return "FSTBHC";
52
- }
53
-
54
- /// For LLVM RTTI.
55
- static inline bool classof(const FlowSensitiveTBHC *)
56
- {
57
- return true;
58
- }
59
-
60
- /// For LLVM RTTI.
61
- static inline bool classof(const PointerAnalysis *pta)
62
- {
63
- return pta->getAnalysisTy() == FSTBHC_WPA;
64
- }
65
-
66
- virtual bool propAlongIndirectEdge(const IndirectSVFGEdge* edge) override;
67
- virtual bool propAlongDirectEdge(const DirectSVFGEdge* edge) override;
68
-
69
- virtual bool processAddr(const AddrSVFGNode* addr) override;
70
- virtual bool processGep(const GepSVFGNode* gep) override;
71
- virtual bool processLoad(const LoadSVFGNode* load) override;
72
- virtual bool processStore(const StoreSVFGNode* store) override;
73
- virtual bool processPhi(const PHISVFGNode* phi) override;
74
- virtual bool processCopy(const CopySVFGNode* copy) override;
75
-
76
- virtual inline const NodeBS& getAllFieldsObjVars(NodeID id) override;
77
-
78
- virtual inline bool updateInFromIn(const SVFGNode* srcStmt, NodeID srcVar, const SVFGNode* dstStmt, NodeID dstVar) override;
79
- virtual inline bool updateInFromOut(const SVFGNode* srcStmt, NodeID srcVar, const SVFGNode* dstStmt, NodeID dstVar) override;
80
-
81
- virtual inline bool unionPtsFromIn(const SVFGNode* stmt, NodeID srcVar, NodeID dstVar) override;
82
- virtual inline bool unionPtsFromTop(const SVFGNode* stmt, NodeID srcVar, NodeID dstVar) override;
83
-
84
- virtual inline bool propDFOutToIn(const SVFGNode* srcStmt, NodeID srcVar, const SVFGNode* dstStmt, NodeID dstVar) override;
85
- virtual inline bool propDFInToIn(const SVFGNode* srcStmt, NodeID srcVar, const SVFGNode* dstStmt, NodeID dstVar) override;
86
-
87
- virtual void expandFIObjs(const PointsTo& pts, PointsTo& expandedPts) override;
88
-
89
- /// Extracts the value from SVFGNode (if it exists), and calls
90
- /// getTypeFromCTirMetadata(const Value *).
91
- /// If no ctir type exists, returns null (void).
92
- const DIType *getTypeFromCTirMetadata(const SVFGNode *);
93
-
94
- protected:
95
- virtual void backPropagate(NodeID clone) override;
96
-
97
- virtual void countAliases(Set<std::pair<NodeID, NodeID>> cmp, unsigned *mayAliases, unsigned *noAliases) override;
98
-
99
- private:
100
- /// Determines whether each GEP is for a load or not. Builds gepIsLoad map.
101
- /// This is a quick heuristic; if all destination nodes are loads, it's a load.
102
- void determineWhichGepsAreLoads(void);
103
-
104
- /// Returns true if the given GEP is for loads, false otherwise. If the node ID
105
- /// is not for a GEP SVFG node, returns false.
106
- bool gepIsLoad(NodeID gep);
107
-
108
- /// Whether to allow for reuse at stores.
109
- bool storeReuse;
110
- /// Whether to allow reuse at all instructions (load/store/field).
111
- /// allReuse => storeReuse.
112
- bool allReuse;
113
-
114
- /// Maps GEP objects to the SVFG nodes that retrieved them with getGepObjClones.
115
- Map<NodeID, NodeBS> gepToSVFGRetrievers;
116
- /// Maps whether a (SVFG) GEP node is a load or not.
117
- NodeBS loadGeps;
118
- };
119
-
120
- } // End namespace SVF
121
-
122
- #endif /* FLOWSENSITIVETYPEFILTER_H_ */
@@ -1,188 +0,0 @@
1
- //===- TypeBasedHeapCloning.h -- Type filter/type-based heap cloning base ------------//
2
-
3
- /*
4
- * TypeBasedHeapCloning.h
5
- *
6
- * Contains data structures and functions to extend a pointer analysis
7
- * with type-based heap cloning/type filtering.
8
- *
9
- * Created on: Feb 08, 2020
10
- * Author: Mohamad Barbar
11
- */
12
-
13
- #include "SVF-FE/DCHG.h"
14
- #include "MemoryModel/SVFIR.h"
15
- #include "MemoryModel/PointerAnalysisImpl.h"
16
- #include "Util/BasicTypes.h"
17
-
18
- namespace SVF
19
- {
20
-
21
- class TypeBasedHeapCloning
22
- {
23
- public:
24
- /// Returns raw ctir metadata of a Value. Returns null if it doesn't exist.
25
- static const MDNode *getRawCTirMetadata(const Value *);
26
-
27
- virtual ~TypeBasedHeapCloning() { };
28
-
29
- protected:
30
- /// The undefined type (•); void.
31
- static const DIType *undefType;
32
-
33
- /// deref function for TBHC alias tests.
34
- static const std::string derefFnName;
35
- /// deref function (mangled) for TBHC alias tests.
36
- static const std::string mangledDerefFnName;
37
-
38
- /// Constructor. pta is the pointer analysis using this object (i.e. that which is extending).
39
- TypeBasedHeapCloning(BVDataPTAImpl *pta);
40
-
41
- /// Required by user. Handles back-propagation of newly created clone after all
42
- /// metadata has been set. Used by cloneObject.
43
- virtual void backPropagate(NodeID clone) = 0;
44
-
45
- /// Class hierarchy graph built from debug information. Required, CHG from
46
- /// IR is insufficient.
47
- DCHGraph *dchg = nullptr;
48
-
49
- /// DCHG *must* be set by extending class once the DCHG is available.
50
- void setDCHG(DCHGraph *dchg);
51
- /// SVFIR *must* be set by extending class once the SVFIR is available.
52
- void setPAG(SVFIR *pag);
53
-
54
- /// Check if an object is a black hole obj or a constant object. Required since
55
- /// other implementations obviously do not account for clones.
56
- bool isBlkObjOrConstantObj(NodeID o) const;
57
-
58
- /// Wrapper around DCHGraph::isBase. Purpose is to keep our conditions clean
59
- /// by only passing two parameters like the rules.
60
- bool isBase(const DIType *a, const DIType *b) const;
61
-
62
- /// Returns true if o is a clone.
63
- bool isClone(NodeID o) const;
64
-
65
- /// Sets the type (in objToType) of o.
66
- void setType(NodeID o, const DIType *t);
67
- /// Returns the type (from objToType) of o. Asserts existence.
68
- const DIType *getType(NodeID o) const;
69
-
70
- /// Sets the allocation site (in objToAllocation) of o.
71
- void setAllocationSite(NodeID o, NodeID site);
72
- /// Returns the allocation site (from objToAllocation) of o. Asserts existence.
73
- NodeID getAllocationSite(NodeID o) const;
74
-
75
- /// Returns objects that have clones (any key in objToClones).
76
- const NodeBS getObjsWithClones(void);
77
- /// Add a clone c to object o.
78
- void addClone(NodeID o, NodeID c);
79
- /// Returns all the clones of o.
80
- const NodeBS &getClones(NodeID o);
81
-
82
- // Set o as the original object of clone c.
83
- void setOriginalObj(NodeID c, NodeID o);
84
- /// Returns the original object c is cloned from. If c is not a clone, returns itself.
85
- NodeID getOriginalObj(NodeID c) const;
86
-
87
- /// Returns the filter set of a location. Not const; could create empty PointsTo.
88
- PointsTo &getFilterSet(NodeID loc);
89
-
90
- /// Associates gep with base (through objToGeps and memObjToGeps).
91
- void addGepToObj(NodeID gep, NodeID base, unsigned offset);
92
- /// Returns all gep objects at a particular offset for memory object.
93
- /// Not const; could create empty set.
94
- const NodeBS &getGepObjsFromMemObj(const MemObj *memObj, unsigned offset);
95
- /// Returns all gep objects under an object.
96
- /// Not const; could create empty set.
97
- const NodeBS &getGepObjs(NodeID base);
98
-
99
- /// Returns the GEP object node(s) of base for ls. This may include clones.
100
- /// If there are no GEP objects, then getGepObjVar is called on the SVFIR
101
- /// (through base's getGepObjVar) which will create one.
102
- const NodeBS getGepObjClones(NodeID base, unsigned offset);
103
-
104
- /// Initialise the pointees of p at loc (which is type tildet *). reuse indicates
105
- /// whether reuse is a possibility for this initialisation. Returns whether p changed.
106
- bool init(NodeID loc, NodeID p, const DIType *tildet, bool reuse, bool gep=false);
107
-
108
- /// Returns a clone of o with type type. reuse indicates whether we are cloning
109
- /// as a result of reuse.
110
- NodeID cloneObject(NodeID o, const DIType *type, bool reuse);
111
-
112
- /// Add clone dummy object node to SVFIR.
113
- inline NodeID addCloneDummyObjNode(const MemObj *mem);
114
- /// Add clone GEP object node to SVFIR.
115
- inline NodeID addCloneGepObjNode(const MemObj *mem, const LocationSet &l);
116
- /// Add clone FI object node to SVFIR.
117
- inline NodeID addCloneFIObjNode(const MemObj *mem);
118
-
119
- /// Returns the ctir type attached to the value, nullptr if non-existant.
120
- /// Not static because it needs the DCHG to return the canonical type.
121
- /// Not static because we need dchg's getCanonicalType.
122
- const DIType *getTypeFromCTirMetadata(const Value *);
123
-
124
- /// Runs tests on MAYALIAS, NOALIAS, etc. built from TBHC_MAYALIAS,
125
- /// TBHC_NOALIAS, etc. macros.
126
- /// TBHC_XALIAS macros produce:
127
- /// call XALIAS(...)
128
- /// %1 = load ...
129
- /// ...
130
- /// %n = load %p
131
- /// store ... %n-1, ...* %n !ctir !t1
132
- /// call deref()
133
- /// %n+1 = load ...
134
- /// ...
135
- /// %n+n = load %q
136
- /// store ... %n+n-1, ...* %n+n !ctir !t2
137
- /// call deref()
138
- /// We want to test the points-to sets of %n and
139
- /// %n+n after filtering with !t1 and !t2 respectively.
140
- void validateTBHCTests(SVFModule *svfMod);
141
-
142
- /// Dump some statistics we tracked.
143
- void dumpStats(void);
144
-
145
- private:
146
- /// PTA extending this class.
147
- BVDataPTAImpl *pta;
148
- /// SVFIR the PTA uses. Just a shortcut for getPAG().
149
- SVFIR *ppag = nullptr;
150
-
151
- /// Object -> its type.
152
- Map<NodeID, const DIType *> objToType;
153
- /// Object -> allocation site.
154
- /// The value NodeID depends on the pointer analysis (could be
155
- /// an SVFG node or SVFIR node for example).
156
- Map<NodeID, NodeID> objToAllocation;
157
- /// (Original) object -> set of its clones.
158
- Map<NodeID, NodeBS> objToClones;
159
- /// (Clone) object -> original object (opposite of objToclones).
160
- Map<NodeID, NodeID> cloneToOriginalObj;
161
- /// Maps nodes (a location like a SVFIR node or SVFG node) to their filter set.
162
- Map<NodeID, PointsTo> locToFilterSet;
163
- /// Maps objects to the GEP nodes beneath them.
164
- Map<NodeID, NodeBS> objToGeps;
165
- /// Maps memory objects to their GEP objects. (memobj -> (fieldidx -> geps))
166
- Map<const MemObj *, Map<unsigned, NodeBS>> memObjToGeps;
167
-
168
- /// Test whether object is a GEP object. For convenience.
169
- bool isGep(const PAGNode *n) const;
170
-
171
- // Bunch of stats to keep track of.
172
- unsigned numInit = 0;
173
- unsigned numTBWU = 0;
174
- unsigned numTBSSU = 0;
175
- unsigned numTBSU = 0;
176
- unsigned numReuse = 0;
177
- unsigned numAgg = 0;
178
-
179
- // Previous stats but only upon stack/global objects.
180
- unsigned numSGInit = 0;
181
- unsigned numSGTBWU = 0;
182
- unsigned numSGTBSSU = 0;
183
- unsigned numSGTBSU = 0;
184
- unsigned numSGReuse = 0;
185
- unsigned numSGAgg = 0;
186
- };
187
-
188
- } // End namespace SVF