svf-tools 1.0.758 → 1.0.760

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 (666) hide show
  1. package/CMakeLists.txt +7 -0
  2. package/SVF-doxygen/html/html/AccessPath_8cpp_source.html +2 -2
  3. package/SVF-doxygen/html/html/AddressValue_8h_source.html +1 -1
  4. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +5 -5
  6. package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
  7. package/SVF-doxygen/html/html/CFBasicBlockG_8cpp_source.html +4 -4
  8. package/SVF-doxygen/html/html/CFBasicBlockG_8h_source.html +2 -2
  9. package/SVF-doxygen/html/html/CFGrammar_8cpp_source.html +11 -8
  10. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +7 -7
  11. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +1 -1
  12. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +17 -17
  13. package/SVF-doxygen/html/html/CHG_8cpp.html +2 -2
  14. package/SVF-doxygen/html/html/CHG_8cpp_source.html +7 -7
  15. package/SVF-doxygen/html/html/CHG_8h_source.html +3 -3
  16. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +6 -6
  17. package/SVF-doxygen/html/html/CallGraphBuilder_8h_source.html +1 -1
  18. package/SVF-doxygen/html/html/CommandLine_8h_source.html +2 -1
  19. package/SVF-doxygen/html/html/ConsExeState_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/html/ConsExeState_8h_source.html +1 -1
  21. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  22. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +1 -1
  23. package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +2 -2
  25. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +11 -11
  26. package/SVF-doxygen/html/html/DCHG_8h_source.html +3 -3
  27. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
  28. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  29. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/html/DDAPass_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
  32. package/SVF-doxygen/html/html/ExeState_8h_source.html +1 -1
  33. package/SVF-doxygen/html/html/ExtAPI_8cpp.html +0 -196
  34. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +121 -786
  35. package/SVF-doxygen/html/html/ExtAPI_8h.html +2 -67
  36. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +69 -654
  37. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +2 -2
  38. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
  39. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +1 -1
  40. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +1 -1
  41. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +11 -11
  42. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +2 -2
  43. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +1 -1
  44. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +4 -4
  45. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +7 -7
  46. package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
  47. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
  48. package/SVF-doxygen/html/html/IntervalExeState_8h_source.html +1 -1
  49. package/SVF-doxygen/html/html/IntervalValue_8h_source.html +1 -1
  50. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +6 -6
  51. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h_source.html +1 -1
  52. package/SVF-doxygen/html/html/LLVMModule_8cpp.html +3 -4
  53. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1408 -1289
  54. package/SVF-doxygen/html/html/LLVMModule_8h.html +1 -0
  55. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +418 -400
  56. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +744 -616
  57. package/SVF-doxygen/html/html/LLVMUtil_8h.html +9 -1
  58. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +485 -472
  59. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
  60. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +14 -14
  61. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +2 -2
  62. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +8 -8
  63. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +5 -5
  64. package/SVF-doxygen/html/html/MHP_8cpp_source.html +14 -14
  65. package/SVF-doxygen/html/html/MHP_8h_source.html +3 -3
  66. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
  67. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +5 -5
  68. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +4 -4
  69. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +5 -5
  70. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +7 -7
  71. package/SVF-doxygen/html/html/MTA_8cpp_source.html +4 -4
  72. package/SVF-doxygen/html/html/MTA_8h_source.html +1 -1
  73. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +13 -13
  74. package/SVF-doxygen/html/html/MemRegion_8h_source.html +1 -1
  75. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +20 -20
  76. package/SVF-doxygen/html/html/MemSSA_8h_source.html +1 -1
  77. package/SVF-doxygen/html/html/NumericLiteral_8h_source.html +1 -1
  78. package/SVF-doxygen/html/html/Options_8cpp_source.html +2 -1
  79. package/SVF-doxygen/html/html/PCG_8cpp_source.html +13 -13
  80. package/SVF-doxygen/html/html/PCG_8h_source.html +3 -3
  81. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
  82. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  83. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +3 -3
  84. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +12 -12
  85. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
  86. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
  87. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +2 -2
  88. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +1 -1
  89. package/SVF-doxygen/html/html/RelExeState_8h_source.html +1 -1
  90. package/SVF-doxygen/html/html/SVFBugReport_8cpp_source.html +362 -365
  91. package/SVF-doxygen/html/html/SVFBugReport_8h_source.html +24 -24
  92. package/SVF-doxygen/html/html/SVFFileSystem_8cpp_source.html +2087 -2084
  93. package/SVF-doxygen/html/html/SVFFileSystem_8h.html +1 -1
  94. package/SVF-doxygen/html/html/SVFFileSystem_8h_source.html +60 -60
  95. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
  96. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +2 -2
  97. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +1 -1
  98. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +5 -5
  99. package/SVF-doxygen/html/html/SVFIR2ConsExeState_8cpp_source.html +4 -4
  100. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +4 -4
  101. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +454 -527
  102. package/SVF-doxygen/html/html/SVFIRBuilder_8h.html +1 -1
  103. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +211 -233
  104. package/SVF-doxygen/html/html/SVFIRExtAPI_8cpp.html +2 -0
  105. package/SVF-doxygen/html/html/SVFIRExtAPI_8cpp_source.html +286 -682
  106. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +2 -2
  107. package/SVF-doxygen/html/html/SVFIR_8h_source.html +1 -1
  108. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +9 -9
  109. package/SVF-doxygen/html/html/SVFModule_8h.html +0 -1
  110. package/SVF-doxygen/html/html/SVFModule_8h_source.html +258 -260
  111. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +8 -8
  112. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  113. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +2 -2
  114. package/SVF-doxygen/html/html/SVFType_8h_source.html +1 -1
  115. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +7 -6
  116. package/SVF-doxygen/html/html/SVFUtil_8h.html +4 -9
  117. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +392 -405
  118. package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +11 -10
  119. package/SVF-doxygen/html/html/SVFValue_8h_source.html +1038 -1030
  120. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  121. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  122. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +14 -14
  123. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +6 -6
  124. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  125. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +1 -1
  126. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +1 -1
  127. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  128. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +5 -5
  129. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
  130. package/SVF-doxygen/html/html/SymState_8cpp_source.html +1 -1
  131. package/SVF-doxygen/html/html/SymState_8h_source.html +1 -1
  132. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +28 -28
  133. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
  134. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
  135. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +2 -2
  136. package/SVF-doxygen/html/html/TCT_8cpp_source.html +15 -15
  137. package/SVF-doxygen/html/html/TCT_8h_source.html +7 -7
  138. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +14 -14
  139. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +5 -5
  140. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  141. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +3 -3
  142. package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
  143. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +2 -2
  144. package/SVF-doxygen/html/html/WPAPass_8h_source.html +1 -1
  145. package/SVF-doxygen/html/html/WTO_8h_source.html +1 -1
  146. package/SVF-doxygen/html/html/annotated.html +1 -4
  147. package/SVF-doxygen/html/html/cJSON_8cpp.html +2 -1
  148. package/SVF-doxygen/html/html/cJSON_8cpp_source.html +2 -1
  149. package/SVF-doxygen/html/html/cfl_8cpp.html +2 -2
  150. package/SVF-doxygen/html/html/cfl_8cpp_source.html +2 -2
  151. package/SVF-doxygen/html/html/classOption.html +2 -1
  152. package/SVF-doxygen/html/html/classSVF_1_1AccessPath.html +2 -2
  153. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  154. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +1 -1
  156. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  157. package/SVF-doxygen/html/html/classSVF_1_1AddressValue.html +1 -1
  158. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
  159. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +5 -5
  160. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
  161. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +3 -3
  162. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  163. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  164. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
  165. package/SVF-doxygen/html/html/classSVF_1_1BufferOverflowBug.html +50 -50
  166. package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockGWTO.html +1 -1
  167. package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockGWTOCycle.html +1 -1
  168. package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockNode.html +1 -1
  169. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +7 -7
  170. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +18 -18
  171. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +5 -5
  172. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  173. package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +6 -6
  175. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +2 -2
  176. package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +1 -1
  177. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  178. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +95 -95
  179. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  180. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  181. package/SVF-doxygen/html/html/classSVF_1_1ConsExeState.html +1 -1
  182. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +1 -1
  183. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +1 -1
  184. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  185. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +1 -1
  186. package/SVF-doxygen/html/html/classSVF_1_1CxtDPItem.html +1 -1
  187. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
  188. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +1 -1
  190. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +9 -9
  191. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeBug.html +35 -35
  192. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
  193. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +1 -1
  194. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +8 -77
  195. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +130 -1337
  196. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  197. package/SVF-doxygen/html/html/classSVF_1_1FileNeverCloseBug.html +10 -10
  198. package/SVF-doxygen/html/html/classSVF_1_1FilePartialCloseBug.html +35 -35
  199. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +12 -12
  200. package/SVF-doxygen/html/html/classSVF_1_1FullNullPtrDereferenceBug.html +10 -10
  201. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +3 -3
  202. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +4 -4
  203. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +2 -2
  204. package/SVF-doxygen/html/html/classSVF_1_1GenericBug.html +9 -13
  205. package/SVF-doxygen/html/html/classSVF_1_1GenericGraphReader.html +1 -1
  206. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  207. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  208. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  209. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +11 -8
  210. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
  211. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +11 -11
  212. package/SVF-doxygen/html/html/classSVF_1_1ICFGWriter.html +11 -11
  213. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  214. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  215. package/SVF-doxygen/html/html/classSVF_1_1IntervalExeState.html +1 -1
  216. package/SVF-doxygen/html/html/classSVF_1_1IntervalValue.html +1 -1
  217. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
  218. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +3 -3
  219. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  220. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +5 -5
  221. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +42 -40
  222. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +1583 -1452
  223. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +4 -4
  224. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  225. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +14 -14
  226. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +8 -8
  227. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +14 -14
  228. package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +3 -3
  229. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +13 -13
  230. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
  231. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
  232. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +6 -6
  233. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +1 -1
  234. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +7 -7
  235. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  236. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +21 -21
  237. package/SVF-doxygen/html/html/classSVF_1_1NeverFreeBug.html +10 -10
  238. package/SVF-doxygen/html/html/classSVF_1_1NumericLiteral.html +1 -1
  239. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  240. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +14 -14
  241. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  242. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +1 -1
  243. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +1 -1
  244. package/SVF-doxygen/html/html/classSVF_1_1PartialLeakBug.html +34 -34
  245. package/SVF-doxygen/html/html/classSVF_1_1PartialNullPtrDereferenceBug.html +10 -10
  246. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  247. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +11 -11
  248. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +1 -1
  249. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +1 -1
  250. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +2 -2
  251. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +7 -7
  252. package/SVF-doxygen/html/html/classSVF_1_1RaceValidator.html +3 -3
  253. package/SVF-doxygen/html/html/classSVF_1_1ReaderIDToObjMap.html +2 -2
  254. package/SVF-doxygen/html/html/classSVF_1_1ReaderPtrPool.html +2 -2
  255. package/SVF-doxygen/html/html/classSVF_1_1RelExeState.html +1 -1
  256. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  257. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +2 -2
  258. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  259. package/SVF-doxygen/html/html/classSVF_1_1SVFArgument.html +30 -30
  260. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +73 -73
  261. package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue.html +15 -15
  262. package/SVF-doxygen/html/html/classSVF_1_1SVFBugEvent.html +50 -50
  263. package/SVF-doxygen/html/html/classSVF_1_1SVFBugReport.html +87 -87
  264. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst.html +67 -67
  265. package/SVF-doxygen/html/html/classSVF_1_1SVFConstant.html +17 -17
  266. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData.html +23 -23
  267. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP.html +21 -21
  268. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt.html +27 -27
  269. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr.html +15 -15
  270. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +15 -13
  271. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +222 -153
  272. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +5 -5
  273. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +5 -5
  274. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +1 -1
  275. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +34 -34
  276. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +2 -2
  277. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ConsExeState.html +3 -3
  278. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +4 -4
  279. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +64 -73
  280. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +905 -1767
  281. package/SVF-doxygen/html/html/classSVF_1_1SVFIRReader.html +1126 -1124
  282. package/SVF-doxygen/html/html/classSVF_1_1SVFIRWriter.html +547 -546
  283. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +53 -53
  284. package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo.html +2 -2
  285. package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue.html +15 -15
  286. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +173 -173
  287. package/SVF-doxygen/html/html/classSVF_1_1SVFModuleReader.html +1 -1
  288. package/SVF-doxygen/html/html/classSVF_1_1SVFModuleWriter.html +23 -23
  289. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +1 -1
  290. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue.html +11 -11
  291. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +8 -8
  292. package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +1 -1
  293. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +27 -27
  294. package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst.html +53 -53
  295. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +13 -13
  296. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
  297. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  298. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +1 -1
  299. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +5 -5
  300. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  301. package/SVF-doxygen/html/html/classSVF_1_1SymState.html +1 -1
  302. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +27 -27
  303. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfoReader.html +1 -1
  304. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +15 -15
  305. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  306. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  307. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +8 -8
  308. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +1 -1
  309. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +5 -5
  310. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +3 -3
  311. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  312. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  313. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  314. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +1 -1
  315. package/SVF-doxygen/html/html/classSVF_1_1iter__adaptor__base.html +1 -1
  316. package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base_1_1ReferenceProxy.html +1 -1
  317. package/SVF-doxygen/html/html/classSVF_1_1iter__range.html +1 -1
  318. package/SVF-doxygen/html/html/classSVF_1_1mapped__iter.html +1 -1
  319. package/SVF-doxygen/html/html/classSVF_1_1pointer__iterator.html +1 -1
  320. package/SVF-doxygen/html/html/classes.html +335 -338
  321. package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
  322. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  323. package/SVF-doxygen/html/html/dir_3bbf4ce25bc1411b817b5643b794c8fb.html +2 -0
  324. package/SVF-doxygen/html/html/extapi_8c.html +1950 -0
  325. package/SVF-doxygen/html/html/extapi_8c_source.html +1488 -0
  326. package/SVF-doxygen/html/html/files.html +29 -28
  327. package/SVF-doxygen/html/html/functions_a.html +17 -27
  328. package/SVF-doxygen/html/html/functions_b.html +9 -12
  329. package/SVF-doxygen/html/html/functions_c.html +26 -70
  330. package/SVF-doxygen/html/html/functions_d.html +3 -7
  331. package/SVF-doxygen/html/html/functions_e.html +4 -121
  332. package/SVF-doxygen/html/html/functions_enum.html +0 -6
  333. package/SVF-doxygen/html/html/functions_eval.html +0 -1
  334. package/SVF-doxygen/html/html/functions_eval_c.html +1 -15
  335. package/SVF-doxygen/html/html/functions_eval_e.html +0 -96
  336. package/SVF-doxygen/html/html/functions_eval_g.html +1 -2
  337. package/SVF-doxygen/html/html/functions_eval_l.html +0 -1
  338. package/SVF-doxygen/html/html/functions_eval_m.html +0 -6
  339. package/SVF-doxygen/html/html/functions_eval_o.html +0 -3
  340. package/SVF-doxygen/html/html/functions_eval_r.html +0 -6
  341. package/SVF-doxygen/html/html/functions_eval_s.html +0 -1
  342. package/SVF-doxygen/html/html/functions_f.html +16 -19
  343. package/SVF-doxygen/html/html/functions_func.html +6 -18
  344. package/SVF-doxygen/html/html/functions_func_e.html +1 -13
  345. package/SVF-doxygen/html/html/functions_func_g.html +24 -91
  346. package/SVF-doxygen/html/html/functions_func_h.html +9 -12
  347. package/SVF-doxygen/html/html/functions_func_i.html +16 -28
  348. package/SVF-doxygen/html/html/functions_func_n.html +0 -3
  349. package/SVF-doxygen/html/html/functions_func_p.html +3 -12
  350. package/SVF-doxygen/html/html/functions_func_s.html +20 -83
  351. package/SVF-doxygen/html/html/functions_g.html +32 -100
  352. package/SVF-doxygen/html/html/functions_h.html +6 -9
  353. package/SVF-doxygen/html/html/functions_i.html +16 -28
  354. package/SVF-doxygen/html/html/functions_l.html +0 -1
  355. package/SVF-doxygen/html/html/functions_m.html +1 -7
  356. package/SVF-doxygen/html/html/functions_n.html +4 -7
  357. package/SVF-doxygen/html/html/functions_o.html +31 -44
  358. package/SVF-doxygen/html/html/functions_p.html +18 -29
  359. package/SVF-doxygen/html/html/functions_r.html +9 -16
  360. package/SVF-doxygen/html/html/functions_s.html +16 -84
  361. package/SVF-doxygen/html/html/functions_t.html +4 -10
  362. package/SVF-doxygen/html/html/functions_v.html +3 -3
  363. package/SVF-doxygen/html/html/functions_vars_a.html +3 -0
  364. package/SVF-doxygen/html/html/functions_vars_b.html +0 -3
  365. package/SVF-doxygen/html/html/functions_vars_c.html +1 -23
  366. package/SVF-doxygen/html/html/functions_vars_d.html +1 -5
  367. package/SVF-doxygen/html/html/functions_vars_e.html +2 -8
  368. package/SVF-doxygen/html/html/functions_vars_f.html +0 -3
  369. package/SVF-doxygen/html/html/functions_vars_o.html +0 -9
  370. package/SVF-doxygen/html/html/functions_vars_r.html +1 -2
  371. package/SVF-doxygen/html/html/functions_vars_s.html +1 -5
  372. package/SVF-doxygen/html/html/functions_vars_t.html +0 -6
  373. package/SVF-doxygen/html/html/globals.html +22 -4
  374. package/SVF-doxygen/html/html/globals_a.html +3 -0
  375. package/SVF-doxygen/html/html/globals_b.html +3 -0
  376. package/SVF-doxygen/html/html/globals_defs.html +3 -9
  377. package/SVF-doxygen/html/html/globals_e.html +0 -3
  378. package/SVF-doxygen/html/html/globals_f.html +11 -2
  379. package/SVF-doxygen/html/html/globals_func.html +159 -15
  380. package/SVF-doxygen/html/html/globals_g.html +13 -4
  381. package/SVF-doxygen/html/html/globals_i.html +41 -2
  382. package/SVF-doxygen/html/html/globals_j.html +3 -6
  383. package/SVF-doxygen/html/html/globals_l.html +3 -0
  384. package/SVF-doxygen/html/html/globals_m.html +8 -2
  385. package/SVF-doxygen/html/html/globals_n.html +2 -1
  386. package/SVF-doxygen/html/html/globals_p.html +1 -4
  387. package/SVF-doxygen/html/html/globals_r.html +12 -6
  388. package/SVF-doxygen/html/html/globals_s.html +33 -0
  389. package/SVF-doxygen/html/html/globals_t.html +3 -0
  390. package/SVF-doxygen/html/html/hierarchy.html +526 -529
  391. package/SVF-doxygen/html/html/iterator_8h_source.html +1 -1
  392. package/SVF-doxygen/html/html/iterator__range_8h_source.html +1 -1
  393. package/SVF-doxygen/html/html/llvm2svf_8cpp.html +1 -1
  394. package/SVF-doxygen/html/html/llvm2svf_8cpp_source.html +1 -1
  395. package/SVF-doxygen/html/html/menudata.js +3 -0
  396. package/SVF-doxygen/html/html/mta_8cpp.html +1 -1
  397. package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
  398. package/SVF-doxygen/html/html/namespaceSVF.html +152 -151
  399. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +1003 -776
  400. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +298 -368
  401. package/SVF-doxygen/html/html/namespacemembers_func_g.html +11 -5
  402. package/SVF-doxygen/html/html/namespacemembers_func_i.html +11 -14
  403. package/SVF-doxygen/html/html/namespacemembers_func_r.html +6 -0
  404. package/SVF-doxygen/html/html/namespacemembers_g.html +11 -5
  405. package/SVF-doxygen/html/html/namespacemembers_i.html +8 -11
  406. package/SVF-doxygen/html/html/namespacemembers_r.html +6 -0
  407. package/SVF-doxygen/html/html/saber_8cpp.html +1 -1
  408. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
  409. package/SVF-doxygen/html/html/search/all_0.js +153 -147
  410. package/SVF-doxygen/html/html/search/all_1.js +476 -478
  411. package/SVF-doxygen/html/html/search/all_10.js +323 -327
  412. package/SVF-doxygen/html/html/search/all_11.js +212 -209
  413. package/SVF-doxygen/html/html/search/all_12.js +536 -547
  414. package/SVF-doxygen/html/html/search/all_13.js +188 -189
  415. package/SVF-doxygen/html/html/search/all_14.js +66 -66
  416. package/SVF-doxygen/html/html/search/all_15.js +170 -170
  417. package/SVF-doxygen/html/html/search/all_16.js +60 -60
  418. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  419. package/SVF-doxygen/html/html/search/all_18.js +1 -1
  420. package/SVF-doxygen/html/html/search/all_19.js +10 -10
  421. package/SVF-doxygen/html/html/search/all_1a.js +169 -169
  422. package/SVF-doxygen/html/html/search/all_2.js +159 -159
  423. package/SVF-doxygen/html/html/search/all_3.js +597 -608
  424. package/SVF-doxygen/html/html/search/all_4.js +226 -227
  425. package/SVF-doxygen/html/html/search/all_5.js +116 -156
  426. package/SVF-doxygen/html/html/search/all_6.js +225 -223
  427. package/SVF-doxygen/html/html/search/all_7.js +996 -1012
  428. package/SVF-doxygen/html/html/search/all_8.js +191 -192
  429. package/SVF-doxygen/html/html/search/all_9.js +605 -597
  430. package/SVF-doxygen/html/html/search/all_a.js +46 -47
  431. package/SVF-doxygen/html/html/search/all_b.js +26 -26
  432. package/SVF-doxygen/html/html/search/all_c.js +114 -113
  433. package/SVF-doxygen/html/html/search/all_d.js +196 -196
  434. package/SVF-doxygen/html/html/search/all_e.js +205 -206
  435. package/SVF-doxygen/html/html/search/all_f.js +116 -122
  436. package/SVF-doxygen/html/html/search/classes_0.js +26 -26
  437. package/SVF-doxygen/html/html/search/classes_1.js +9 -9
  438. package/SVF-doxygen/html/html/search/classes_10.js +73 -73
  439. package/SVF-doxygen/html/html/search/classes_11.js +15 -15
  440. package/SVF-doxygen/html/html/search/classes_12.js +2 -2
  441. package/SVF-doxygen/html/html/search/classes_13.js +10 -10
  442. package/SVF-doxygen/html/html/search/classes_14.js +14 -14
  443. package/SVF-doxygen/html/html/search/classes_15.js +1 -1
  444. package/SVF-doxygen/html/html/search/classes_2.js +76 -76
  445. package/SVF-doxygen/html/html/search/classes_3.js +35 -35
  446. package/SVF-doxygen/html/html/search/classes_4.js +8 -10
  447. package/SVF-doxygen/html/html/search/classes_5.js +28 -28
  448. package/SVF-doxygen/html/html/search/classes_6.js +98 -98
  449. package/SVF-doxygen/html/html/search/classes_7.js +33 -33
  450. package/SVF-doxygen/html/html/search/classes_8.js +56 -56
  451. package/SVF-doxygen/html/html/search/classes_9.js +1 -1
  452. package/SVF-doxygen/html/html/search/classes_a.js +12 -12
  453. package/SVF-doxygen/html/html/search/classes_b.js +29 -29
  454. package/SVF-doxygen/html/html/search/classes_c.js +6 -6
  455. package/SVF-doxygen/html/html/search/classes_d.js +18 -19
  456. package/SVF-doxygen/html/html/search/classes_e.js +36 -36
  457. package/SVF-doxygen/html/html/search/classes_f.js +25 -25
  458. package/SVF-doxygen/html/html/search/defines_0.js +3 -3
  459. package/SVF-doxygen/html/html/search/defines_1.js +2 -2
  460. package/SVF-doxygen/html/html/search/defines_2.js +30 -30
  461. package/SVF-doxygen/html/html/search/defines_3.js +20 -20
  462. package/SVF-doxygen/html/html/search/defines_4.js +2 -3
  463. package/SVF-doxygen/html/html/search/defines_5.js +4 -4
  464. package/SVF-doxygen/html/html/search/defines_6.js +2 -2
  465. package/SVF-doxygen/html/html/search/defines_7.js +5 -5
  466. package/SVF-doxygen/html/html/search/defines_8.js +11 -13
  467. package/SVF-doxygen/html/html/search/defines_9.js +9 -9
  468. package/SVF-doxygen/html/html/search/defines_a.js +2 -2
  469. package/SVF-doxygen/html/html/search/defines_b.js +1 -1
  470. package/SVF-doxygen/html/html/search/defines_c.js +3 -2
  471. package/SVF-doxygen/html/html/search/defines_d.js +2 -2
  472. package/SVF-doxygen/html/html/search/defines_e.js +6 -6
  473. package/SVF-doxygen/html/html/search/defines_f.js +3 -3
  474. package/SVF-doxygen/html/html/search/enums_0.js +3 -3
  475. package/SVF-doxygen/html/html/search/enums_1.js +2 -2
  476. package/SVF-doxygen/html/html/search/enums_10.js +1 -1
  477. package/SVF-doxygen/html/html/search/enums_11.js +1 -1
  478. package/SVF-doxygen/html/html/search/enums_2.js +8 -8
  479. package/SVF-doxygen/html/html/search/enums_3.js +1 -1
  480. package/SVF-doxygen/html/html/search/enums_4.js +3 -4
  481. package/SVF-doxygen/html/html/search/enums_5.js +1 -1
  482. package/SVF-doxygen/html/html/search/enums_6.js +2 -2
  483. package/SVF-doxygen/html/html/search/enums_7.js +2 -2
  484. package/SVF-doxygen/html/html/search/enums_8.js +4 -4
  485. package/SVF-doxygen/html/html/search/enums_9.js +1 -1
  486. package/SVF-doxygen/html/html/search/enums_a.js +1 -2
  487. package/SVF-doxygen/html/html/search/enums_b.js +7 -7
  488. package/SVF-doxygen/html/html/search/enums_c.js +1 -1
  489. package/SVF-doxygen/html/html/search/enums_d.js +4 -4
  490. package/SVF-doxygen/html/html/search/enums_e.js +2 -2
  491. package/SVF-doxygen/html/html/search/enums_f.js +4 -4
  492. package/SVF-doxygen/html/html/search/enumvalues_0.js +14 -14
  493. package/SVF-doxygen/html/html/search/enumvalues_1.js +14 -14
  494. package/SVF-doxygen/html/html/search/enumvalues_10.js +35 -35
  495. package/SVF-doxygen/html/html/search/enumvalues_11.js +3 -3
  496. package/SVF-doxygen/html/html/search/enumvalues_12.js +10 -10
  497. package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
  498. package/SVF-doxygen/html/html/search/enumvalues_14.js +1 -1
  499. package/SVF-doxygen/html/html/search/enumvalues_15.js +3 -3
  500. package/SVF-doxygen/html/html/search/enumvalues_2.js +36 -40
  501. package/SVF-doxygen/html/html/search/enumvalues_3.js +13 -13
  502. package/SVF-doxygen/html/html/search/enumvalues_4.js +2 -34
  503. package/SVF-doxygen/html/html/search/enumvalues_5.js +48 -48
  504. package/SVF-doxygen/html/html/search/enumvalues_6.js +6 -6
  505. package/SVF-doxygen/html/html/search/enumvalues_7.js +9 -9
  506. package/SVF-doxygen/html/html/search/enumvalues_8.js +23 -23
  507. package/SVF-doxygen/html/html/search/enumvalues_9.js +6 -6
  508. package/SVF-doxygen/html/html/search/enumvalues_a.js +15 -17
  509. package/SVF-doxygen/html/html/search/enumvalues_b.js +11 -11
  510. package/SVF-doxygen/html/html/search/enumvalues_c.js +5 -6
  511. package/SVF-doxygen/html/html/search/enumvalues_d.js +18 -18
  512. package/SVF-doxygen/html/html/search/enumvalues_e.js +9 -11
  513. package/SVF-doxygen/html/html/search/enumvalues_f.js +45 -45
  514. package/SVF-doxygen/html/html/search/files_0.js +13 -13
  515. package/SVF-doxygen/html/html/search/files_1.js +7 -7
  516. package/SVF-doxygen/html/html/search/files_10.js +8 -8
  517. package/SVF-doxygen/html/html/search/files_11.js +8 -8
  518. package/SVF-doxygen/html/html/search/files_12.js +2 -2
  519. package/SVF-doxygen/html/html/search/files_2.js +49 -49
  520. package/SVF-doxygen/html/html/search/files_3.js +14 -14
  521. package/SVF-doxygen/html/html/search/files_4.js +5 -4
  522. package/SVF-doxygen/html/html/search/files_5.js +13 -13
  523. package/SVF-doxygen/html/html/search/files_6.js +9 -9
  524. package/SVF-doxygen/html/html/search/files_7.js +14 -14
  525. package/SVF-doxygen/html/html/search/files_8.js +13 -13
  526. package/SVF-doxygen/html/html/search/files_9.js +18 -18
  527. package/SVF-doxygen/html/html/search/files_a.js +3 -3
  528. package/SVF-doxygen/html/html/search/files_b.js +2 -2
  529. package/SVF-doxygen/html/html/search/files_c.js +20 -20
  530. package/SVF-doxygen/html/html/search/files_d.js +4 -4
  531. package/SVF-doxygen/html/html/search/files_e.js +62 -62
  532. package/SVF-doxygen/html/html/search/files_f.js +8 -8
  533. package/SVF-doxygen/html/html/search/functions_0.js +6 -351
  534. package/SVF-doxygen/html/html/search/functions_1.js +348 -81
  535. package/SVF-doxygen/html/html/search/functions_10.js +139 -122
  536. package/SVF-doxygen/html/html/search/functions_11.js +126 -283
  537. package/SVF-doxygen/html/html/search/functions_12.js +273 -55
  538. package/SVF-doxygen/html/html/search/functions_13.js +56 -38
  539. package/SVF-doxygen/html/html/search/functions_14.js +38 -71
  540. package/SVF-doxygen/html/html/search/functions_15.js +71 -29
  541. package/SVF-doxygen/html/html/search/functions_16.js +29 -2
  542. package/SVF-doxygen/html/html/search/functions_17.js +2 -169
  543. package/SVF-doxygen/html/html/search/functions_18.html +30 -0
  544. package/SVF-doxygen/html/html/search/functions_18.js +172 -0
  545. package/SVF-doxygen/html/html/search/functions_2.js +82 -251
  546. package/SVF-doxygen/html/html/search/functions_3.js +251 -71
  547. package/SVF-doxygen/html/html/search/functions_4.js +71 -55
  548. package/SVF-doxygen/html/html/search/functions_5.js +51 -55
  549. package/SVF-doxygen/html/html/search/functions_6.js +58 -832
  550. package/SVF-doxygen/html/html/search/functions_7.js +816 -144
  551. package/SVF-doxygen/html/html/search/functions_8.js +143 -417
  552. package/SVF-doxygen/html/html/search/functions_9.js +425 -29
  553. package/SVF-doxygen/html/html/search/functions_a.js +30 -2
  554. package/SVF-doxygen/html/html/search/functions_b.js +2 -23
  555. package/SVF-doxygen/html/html/search/functions_c.js +24 -75
  556. package/SVF-doxygen/html/html/search/functions_d.js +77 -35
  557. package/SVF-doxygen/html/html/search/functions_e.js +34 -56
  558. package/SVF-doxygen/html/html/search/functions_f.js +56 -143
  559. package/SVF-doxygen/html/html/search/namespaces_0.js +1 -1
  560. package/SVF-doxygen/html/html/search/namespaces_1.js +7 -7
  561. package/SVF-doxygen/html/html/search/related_0.js +2 -2
  562. package/SVF-doxygen/html/html/search/related_1.js +1 -1
  563. package/SVF-doxygen/html/html/search/related_2.js +2 -2
  564. package/SVF-doxygen/html/html/search/related_3.js +2 -2
  565. package/SVF-doxygen/html/html/search/related_4.js +2 -2
  566. package/SVF-doxygen/html/html/search/related_5.js +1 -1
  567. package/SVF-doxygen/html/html/search/related_6.js +2 -2
  568. package/SVF-doxygen/html/html/search/related_7.js +4 -4
  569. package/SVF-doxygen/html/html/search/related_8.js +2 -2
  570. package/SVF-doxygen/html/html/search/related_9.js +4 -4
  571. package/SVF-doxygen/html/html/search/related_a.js +19 -19
  572. package/SVF-doxygen/html/html/search/related_b.js +4 -4
  573. package/SVF-doxygen/html/html/search/related_c.js +1 -1
  574. package/SVF-doxygen/html/html/search/related_d.js +11 -11
  575. package/SVF-doxygen/html/html/search/related_e.js +2 -2
  576. package/SVF-doxygen/html/html/search/related_f.js +2 -2
  577. package/SVF-doxygen/html/html/search/searchdata.js +1 -1
  578. package/SVF-doxygen/html/html/search/typedefs_0.js +18 -18
  579. package/SVF-doxygen/html/html/search/typedefs_1.js +25 -25
  580. package/SVF-doxygen/html/html/search/typedefs_10.js +60 -60
  581. package/SVF-doxygen/html/html/search/typedefs_11.js +13 -13
  582. package/SVF-doxygen/html/html/search/typedefs_12.js +11 -11
  583. package/SVF-doxygen/html/html/search/typedefs_13.js +35 -35
  584. package/SVF-doxygen/html/html/search/typedefs_14.js +8 -8
  585. package/SVF-doxygen/html/html/search/typedefs_2.js +126 -126
  586. package/SVF-doxygen/html/html/search/typedefs_3.js +39 -39
  587. package/SVF-doxygen/html/html/search/typedefs_4.js +16 -16
  588. package/SVF-doxygen/html/html/search/typedefs_5.js +41 -41
  589. package/SVF-doxygen/html/html/search/typedefs_6.js +52 -52
  590. package/SVF-doxygen/html/html/search/typedefs_7.js +40 -40
  591. package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
  592. package/SVF-doxygen/html/html/search/typedefs_9.js +6 -6
  593. package/SVF-doxygen/html/html/search/typedefs_a.js +29 -29
  594. package/SVF-doxygen/html/html/search/typedefs_b.js +29 -29
  595. package/SVF-doxygen/html/html/search/typedefs_c.js +40 -40
  596. package/SVF-doxygen/html/html/search/typedefs_d.js +15 -15
  597. package/SVF-doxygen/html/html/search/typedefs_e.js +52 -52
  598. package/SVF-doxygen/html/html/search/typedefs_f.js +14 -14
  599. package/SVF-doxygen/html/html/search/variables_0.js +147 -147
  600. package/SVF-doxygen/html/html/search/variables_1.js +75 -74
  601. package/SVF-doxygen/html/html/search/variables_10.js +97 -97
  602. package/SVF-doxygen/html/html/search/variables_11.js +46 -46
  603. package/SVF-doxygen/html/html/search/variables_12.js +92 -93
  604. package/SVF-doxygen/html/html/search/variables_13.js +75 -77
  605. package/SVF-doxygen/html/html/search/variables_14.js +14 -14
  606. package/SVF-doxygen/html/html/search/variables_15.js +48 -48
  607. package/SVF-doxygen/html/html/search/variables_16.js +9 -9
  608. package/SVF-doxygen/html/html/search/variables_17.js +1 -1
  609. package/SVF-doxygen/html/html/search/variables_18.js +2 -2
  610. package/SVF-doxygen/html/html/search/variables_2.js +34 -35
  611. package/SVF-doxygen/html/html/search/variables_3.js +141 -148
  612. package/SVF-doxygen/html/html/search/variables_4.js +55 -56
  613. package/SVF-doxygen/html/html/search/variables_5.js +38 -40
  614. package/SVF-doxygen/html/html/search/variables_6.js +66 -67
  615. package/SVF-doxygen/html/html/search/variables_7.js +33 -33
  616. package/SVF-doxygen/html/html/search/variables_8.js +7 -7
  617. package/SVF-doxygen/html/html/search/variables_9.js +77 -77
  618. package/SVF-doxygen/html/html/search/variables_a.js +4 -4
  619. package/SVF-doxygen/html/html/search/variables_b.js +10 -10
  620. package/SVF-doxygen/html/html/search/variables_c.js +45 -45
  621. package/SVF-doxygen/html/html/search/variables_d.js +56 -56
  622. package/SVF-doxygen/html/html/search/variables_e.js +123 -123
  623. package/SVF-doxygen/html/html/search/variables_f.js +30 -33
  624. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  625. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
  626. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__iterable.html +1 -1
  627. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__iterable_3_01T_00_01void__t_3_01decltype_07std_1_1begin_07std_1_1dec794949348c8e1e00603fd8633b6dd1f3.html +1 -1
  628. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__map.html +1 -1
  629. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__map_3_01std_1_1map_3_01Ts_8_8_8_01_4_01_4.html +1 -1
  630. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__map_3_01std_1_1unordered__map_3_01Ts_8_8_8_01_4_01_4.html +1 -1
  631. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container.html +1 -1
  632. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container_3_01std_1_1deque_3_01Ts_8_8_8_01_4_01_4.html +1 -1
  633. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container_3_01std_1_1list_3_01Ts_8_8_8_01_4_01_4.html +1 -1
  634. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container_3_01std_1_1vector_3_01Ts_8_8_8_01_4_01_4.html +1 -1
  635. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__set.html +1 -1
  636. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__set_3_01std_1_1set_3_01Ts_8_8_8_01_4_01_4.html +1 -1
  637. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__set_3_01std_1_1unordered__set_3_01Ts_8_8_8_01_4_01_4.html +1 -1
  638. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1make__void.html +2 -2
  639. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +7 -7
  640. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmt_01_4.html +1 -1
  641. package/SVF-doxygen/html/html/svf-ex_8cpp.html +3 -3
  642. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +4 -4
  643. package/SVF-doxygen/html/html/svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html +9 -9
  644. package/SVF-doxygen/html/html/svf_2include_2MTA_2MTAResultValidator_8h_source.html +9 -9
  645. package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
  646. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  647. package/build.sh +1 -1
  648. package/package.json +1 -1
  649. package/svf/include/SVFIR/SVFModule.h +0 -1
  650. package/svf/include/SVFIR/SVFValue.h +7 -1
  651. package/svf/include/Util/ExtAPI.h +11 -457
  652. package/svf/include/Util/SVFUtil.h +7 -22
  653. package/svf/lib/SVFIR/SVFFileSystem.cpp +3 -1
  654. package/svf/lib/SVFIR/SVFValue.cpp +2 -2
  655. package/svf/lib/Util/ExtAPI.cpp +36 -595
  656. package/svf/lib/Util/Options.cpp +1 -1
  657. package/svf/lib/Util/SVFBugReport.cpp +0 -2
  658. package/svf-llvm/include/SVF-LLVM/LLVMModule.h +17 -0
  659. package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +14 -1
  660. package/svf-llvm/include/SVF-LLVM/SVFIRBuilder.h +5 -14
  661. package/svf-llvm/lib/LLVMModule.cpp +157 -43
  662. package/svf-llvm/lib/LLVMUtil.cpp +121 -0
  663. package/svf-llvm/lib/SVFIRBuilder.cpp +7 -76
  664. package/svf-llvm/lib/SVFIRExtAPI.cpp +161 -536
  665. package/svf-llvm/lib/extapi.c +1348 -0
  666. package/svf/include/Util/ExtAPI.json +0 -5853
@@ -122,378 +122,376 @@ $(function() {
122
122
  <div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classSVF_1_1GenericBug.html#abbc86875488c27e53e5c36e95c472b20"> 51</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> GenericBug::getLoc()<span class="keyword"> const</span></div>
123
123
  <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword"></span>{</div>
124
124
  <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBugEvent.html">SVFBugEvent</a>&amp;sourceInstEvent = bugEventStack.at(bugEventStack.size() -1);</div>
125
- <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; assert(sourceInstEvent.<a class="code" href="classSVF_1_1SVFBugEvent.html#a7ded0022f3852a08a05c67aeae77162f">getEventType</a>() == SVFBugEvent::SourceInst &amp;&amp; <span class="stringliteral">&quot;bugEventStack top should be a SourceInst event&quot;</span>);</div>
126
- <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">return</span> sourceInstEvent.<a class="code" href="classSVF_1_1SVFBugEvent.html#a5b3fcd366e5275927eb66a02dc6040f8">getEventLoc</a>();</div>
127
- <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;}</div>
128
- <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
129
- <div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1GenericBug.html#afad49e3f62083345138932ffadf567dd"> 58</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> GenericBug::getFuncName()<span class="keyword"> const</span></div>
130
- <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword"></span>{</div>
131
- <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBugEvent.html">SVFBugEvent</a>&amp;sourceInstEvent = bugEventStack.at(bugEventStack.size() -1);</div>
132
- <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; assert(sourceInstEvent.<a class="code" href="classSVF_1_1SVFBugEvent.html#a7ded0022f3852a08a05c67aeae77162f">getEventType</a>() == SVFBugEvent::SourceInst &amp;&amp; <span class="stringliteral">&quot;bugEventStack top should be a SourceInst event&quot;</span>);</div>
133
- <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">return</span> sourceInstEvent.<a class="code" href="classSVF_1_1SVFBugEvent.html#ad3bcb02563f952edd43ab5a7276bd57d">getFuncName</a>();</div>
134
- <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}</div>
135
- <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; </div>
136
- <div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1BufferOverflowBug.html#a192bb246ed947f33cf7b02493c8fded8"> 65</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> *BufferOverflowBug::getBugDescription()<span class="keyword"> const</span></div>
137
- <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword"></span>{</div>
138
- <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
139
- <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *allocLB = cJSON_CreateNumber(allocLowerBound);</div>
140
- <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *allocUB = cJSON_CreateNumber(allocUpperBound);</div>
141
- <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *accessLB = cJSON_CreateNumber(accessLowerBound);</div>
142
- <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *accessUB = cJSON_CreateNumber(accessUpperBound);</div>
143
- <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div>
144
- <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;AllocLowerBound&quot;</span>, allocLB);</div>
145
- <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;AllocUpperBound&quot;</span>, allocUB);</div>
146
- <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;AccessLowerBound&quot;</span>, accessLB);</div>
147
- <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;AccessUpperBound&quot;</span>, accessUB);</div>
148
- <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div>
149
- <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
150
- <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;}</div>
151
- <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div>
152
- <div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1BufferOverflowBug.html#ac985d855e598175618b517259b6d3212"> 81</a></span>&#160;<span class="keywordtype">void</span> BufferOverflowBug::printBugToTerminal()<span class="keyword"> const</span></div>
153
- <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="keyword"></span>{</div>
154
- <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; stringstream bugInfo;</div>
155
- <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span>(FullBufferOverflowBug::classof(<span class="keyword">this</span>))</div>
156
- <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div>
157
- <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a10504db25b86bc7f74aebb9c54f04cb3">SVFUtil::bugMsg1</a>(<span class="stringliteral">&quot;\t Full Overflow :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; accessing at : (&quot;</span></div>
158
- <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
159
- <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; </div>
160
- <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div>
161
- <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">else</span></div>
162
- <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div>
163
- <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a10504db25b86bc7f74aebb9c54f04cb3">SVFUtil::bugMsg1</a>(<span class="stringliteral">&quot;\t Partial Overflow :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; accessing at : (&quot;</span></div>
164
- <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
165
- <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div>
166
- <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; bugInfo &lt;&lt; <span class="stringliteral">&quot;\t\t allocate size : [&quot;</span> &lt;&lt; allocLowerBound &lt;&lt; <span class="stringliteral">&quot;, &quot;</span> &lt;&lt; allocUpperBound &lt;&lt; <span class="stringliteral">&quot;], &quot;</span>;</div>
167
- <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; bugInfo &lt;&lt; <span class="stringliteral">&quot;access size : [&quot;</span> &lt;&lt; accessLowerBound &lt;&lt; <span class="stringliteral">&quot;, &quot;</span> &lt;&lt; accessUpperBound &lt;&lt; <span class="stringliteral">&quot;]\n&quot;</span>;</div>
168
- <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t Info : \n&quot;</span> &lt;&lt; bugInfo.str();</div>
169
- <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t Events : \n&quot;</span>;</div>
170
- <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; </div>
171
- <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> event : bugEventStack)</div>
172
- <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div>
173
- <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">switch</span>(event.getEventType())</div>
125
+ <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> sourceInstEvent.<a class="code" href="classSVF_1_1SVFBugEvent.html#a5b3fcd366e5275927eb66a02dc6040f8">getEventLoc</a>();</div>
126
+ <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;}</div>
127
+ <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div>
128
+ <div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1GenericBug.html#afad49e3f62083345138932ffadf567dd"> 57</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> GenericBug::getFuncName()<span class="keyword"> const</span></div>
129
+ <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="keyword"></span>{</div>
130
+ <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBugEvent.html">SVFBugEvent</a>&amp;sourceInstEvent = bugEventStack.at(bugEventStack.size() -1);</div>
131
+ <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> sourceInstEvent.<a class="code" href="classSVF_1_1SVFBugEvent.html#ad3bcb02563f952edd43ab5a7276bd57d">getFuncName</a>();</div>
132
+ <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;}</div>
133
+ <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
134
+ <div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1BufferOverflowBug.html#a192bb246ed947f33cf7b02493c8fded8"> 63</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> *BufferOverflowBug::getBugDescription()<span class="keyword"> const</span></div>
135
+ <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword"></span>{</div>
136
+ <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
137
+ <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *allocLB = cJSON_CreateNumber(allocLowerBound);</div>
138
+ <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *allocUB = cJSON_CreateNumber(allocUpperBound);</div>
139
+ <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *accessLB = cJSON_CreateNumber(accessLowerBound);</div>
140
+ <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *accessUB = cJSON_CreateNumber(accessUpperBound);</div>
141
+ <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
142
+ <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;AllocLowerBound&quot;</span>, allocLB);</div>
143
+ <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;AllocUpperBound&quot;</span>, allocUB);</div>
144
+ <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;AccessLowerBound&quot;</span>, accessLB);</div>
145
+ <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;AccessUpperBound&quot;</span>, accessUB);</div>
146
+ <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div>
147
+ <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
148
+ <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}</div>
149
+ <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div>
150
+ <div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classSVF_1_1BufferOverflowBug.html#ac985d855e598175618b517259b6d3212"> 79</a></span>&#160;<span class="keywordtype">void</span> BufferOverflowBug::printBugToTerminal()<span class="keyword"> const</span></div>
151
+ <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keyword"></span>{</div>
152
+ <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; stringstream bugInfo;</div>
153
+ <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">if</span>(FullBufferOverflowBug::classof(<span class="keyword">this</span>))</div>
154
+ <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div>
155
+ <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a10504db25b86bc7f74aebb9c54f04cb3">SVFUtil::bugMsg1</a>(<span class="stringliteral">&quot;\t Full Overflow :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; accessing at : (&quot;</span></div>
156
+ <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
157
+ <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; </div>
158
+ <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div>
159
+ <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">else</span></div>
160
+ <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div>
161
+ <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a10504db25b86bc7f74aebb9c54f04cb3">SVFUtil::bugMsg1</a>(<span class="stringliteral">&quot;\t Partial Overflow :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; accessing at : (&quot;</span></div>
162
+ <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
163
+ <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div>
164
+ <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; bugInfo &lt;&lt; <span class="stringliteral">&quot;\t\t allocate size : [&quot;</span> &lt;&lt; allocLowerBound &lt;&lt; <span class="stringliteral">&quot;, &quot;</span> &lt;&lt; allocUpperBound &lt;&lt; <span class="stringliteral">&quot;], &quot;</span>;</div>
165
+ <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; bugInfo &lt;&lt; <span class="stringliteral">&quot;access size : [&quot;</span> &lt;&lt; accessLowerBound &lt;&lt; <span class="stringliteral">&quot;, &quot;</span> &lt;&lt; accessUpperBound &lt;&lt; <span class="stringliteral">&quot;]\n&quot;</span>;</div>
166
+ <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t Info : \n&quot;</span> &lt;&lt; bugInfo.str();</div>
167
+ <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t Events : \n&quot;</span>;</div>
168
+ <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; </div>
169
+ <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> event : bugEventStack)</div>
170
+ <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div>
171
+ <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">switch</span>(event.getEventType())</div>
172
+ <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div>
173
+ <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">case</span> SVFBugEvent::CallSite:</div>
174
174
  <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div>
175
- <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">case</span> SVFBugEvent::CallSite:</div>
176
- <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div>
177
- <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t callsite at : ( &quot;</span> &lt;&lt; <span class="keyword">event</span>.getEventLoc() &lt;&lt; <span class="stringliteral">&quot; )\n&quot;</span>;</div>
178
- <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">break</span>;</div>
179
- <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div>
180
- <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">default</span>:</div>
181
- <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div>
182
- <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">// TODO: implement more events when needed</span></div>
183
- <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">break</span>;</div>
184
- <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div>
185
- <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div>
186
- <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div>
187
- <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;}</div>
188
- <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div>
189
- <div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classSVF_1_1NeverFreeBug.html#a0e52a0f35ff4d536f2de27a22139e59c"> 118</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> * NeverFreeBug::getBugDescription()<span class="keyword"> const</span></div>
190
- <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="keyword"></span>{</div>
191
- <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
192
- <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
193
- <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;}</div>
194
- <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; </div>
195
- <div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classSVF_1_1NeverFreeBug.html#ac20c926cb9a72c5913afcf6877d04791"> 124</a></span>&#160;<span class="keywordtype">void</span> NeverFreeBug::printBugToTerminal()<span class="keyword"> const</span></div>
196
- <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword"></span>{</div>
197
- <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a10504db25b86bc7f74aebb9c54f04cb3">SVFUtil::bugMsg1</a>(<span class="stringliteral">&quot;\t NeverFree :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; memory allocation at : (&quot;</span></div>
198
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
199
- <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;}</div>
200
- <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
201
- <div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classSVF_1_1PartialLeakBug.html#abd956a30bc4f8b1e25826149d20ea2b5"> 130</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> * PartialLeakBug::getBugDescription()<span class="keyword"> const</span></div>
202
- <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="keyword"></span>{</div>
203
- <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
204
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *pathInfo = cJSON_CreateArray();</div>
205
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
206
- <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
207
- <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div>
208
- <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *newBranch = cJSON_CreateObject();</div>
209
- <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchLoc = cJSON_Parse((*eventIt).getEventLoc().c_str());</div>
210
- <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span>(branchLoc == <span class="keyword">nullptr</span>) branchLoc = cJSON_CreateObject();</div>
175
+ <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t callsite at : ( &quot;</span> &lt;&lt; <span class="keyword">event</span>.getEventLoc() &lt;&lt; <span class="stringliteral">&quot; )\n&quot;</span>;</div>
176
+ <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">break</span>;</div>
177
+ <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div>
178
+ <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">default</span>:</div>
179
+ <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div>
180
+ <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// TODO: implement more events when needed</span></div>
181
+ <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">break</span>;</div>
182
+ <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div>
183
+ <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div>
184
+ <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div>
185
+ <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;}</div>
186
+ <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div>
187
+ <div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classSVF_1_1NeverFreeBug.html#a0e52a0f35ff4d536f2de27a22139e59c"> 116</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> * NeverFreeBug::getBugDescription()<span class="keyword"> const</span></div>
188
+ <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="keyword"></span>{</div>
189
+ <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
190
+ <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
191
+ <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;}</div>
192
+ <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
193
+ <div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classSVF_1_1NeverFreeBug.html#ac20c926cb9a72c5913afcf6877d04791"> 122</a></span>&#160;<span class="keywordtype">void</span> NeverFreeBug::printBugToTerminal()<span class="keyword"> const</span></div>
194
+ <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="keyword"></span>{</div>
195
+ <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a10504db25b86bc7f74aebb9c54f04cb3">SVFUtil::bugMsg1</a>(<span class="stringliteral">&quot;\t NeverFree :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; memory allocation at : (&quot;</span></div>
196
+ <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
197
+ <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;}</div>
198
+ <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; </div>
199
+ <div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classSVF_1_1PartialLeakBug.html#abd956a30bc4f8b1e25826149d20ea2b5"> 128</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> * PartialLeakBug::getBugDescription()<span class="keyword"> const</span></div>
200
+ <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keyword"></span>{</div>
201
+ <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
202
+ <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *pathInfo = cJSON_CreateArray();</div>
203
+ <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
204
+ <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
205
+ <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; {</div>
206
+ <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *newBranch = cJSON_CreateObject();</div>
207
+ <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchLoc = cJSON_Parse((*eventIt).getEventLoc().c_str());</div>
208
+ <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">if</span>(branchLoc == <span class="keyword">nullptr</span>) branchLoc = cJSON_CreateObject();</div>
209
+ <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; </div>
210
+ <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchCondition = cJSON_CreateString((*eventIt).getEventDescription().c_str());</div>
211
211
  <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; </div>
212
- <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchCondition = cJSON_CreateString((*eventIt).getEventDescription().c_str());</div>
213
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; </div>
214
- <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchLoc&quot;</span>, branchLoc);</div>
215
- <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchCond&quot;</span>, branchCondition);</div>
216
- <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div>
217
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; cJSON_AddItemToArray(pathInfo, newBranch);</div>
218
- <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div>
212
+ <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchLoc&quot;</span>, branchLoc);</div>
213
+ <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchCond&quot;</span>, branchCondition);</div>
214
+ <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; </div>
215
+ <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; cJSON_AddItemToArray(pathInfo, newBranch);</div>
216
+ <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div>
217
+ <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; </div>
218
+ <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;ConditionalFreePath&quot;</span>, pathInfo);</div>
219
219
  <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; </div>
220
- <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;ConditionalFreePath&quot;</span>, pathInfo);</div>
221
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div>
222
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
223
- <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;}</div>
224
- <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; </div>
225
- <div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classSVF_1_1PartialLeakBug.html#aa3acf06e90939896a86c449260c2e4b4"> 154</a></span>&#160;<span class="keywordtype">void</span> PartialLeakBug::printBugToTerminal()<span class="keyword"> const</span></div>
226
- <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="keyword"></span>{</div>
227
- <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVFUtil::bugMsg2</a>(<span class="stringliteral">&quot;\t PartialLeak :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; memory allocation at : (&quot;</span></div>
228
- <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
229
- <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; </div>
230
- <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t conditional free path: \n&quot;</span>;</div>
231
- <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
232
- <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
233
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div>
234
- <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t --&gt; (&quot;</span> &lt;&lt; (*eventIt).getEventLoc() &lt;&lt; <span class="stringliteral">&quot;|&quot;</span> &lt;&lt; (*eventIt).getEventDescription() &lt;&lt; <span class="stringliteral">&quot;) \n&quot;</span>;</div>
235
- <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div>
236
- <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
237
- <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;}</div>
238
- <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; </div>
239
- <div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="classSVF_1_1DoubleFreeBug.html#acf0d2ffb52d0b322421a5556d41a1d63"> 168</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> * DoubleFreeBug::getBugDescription()<span class="keyword"> const</span></div>
240
- <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="keyword"></span>{</div>
241
- <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
242
- <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div>
243
- <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *pathInfo = cJSON_CreateArray();</div>
244
- <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
245
- <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
246
- <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; {</div>
247
- <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *newBranch = cJSON_CreateObject();</div>
248
- <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchLoc = cJSON_Parse((*eventIt).getEventLoc().c_str());</div>
249
- <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">if</span>(branchLoc == <span class="keyword">nullptr</span>) branchLoc = cJSON_CreateObject();</div>
250
- <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchCondition = cJSON_CreateString((*eventIt).getEventDescription().c_str());</div>
251
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
252
- <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchLoc&quot;</span>, branchLoc);</div>
253
- <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchCond&quot;</span>, branchCondition);</div>
254
- <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; </div>
255
- <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; cJSON_AddItemToArray(pathInfo, newBranch);</div>
256
- <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div>
257
- <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;DoubleFreePath&quot;</span>, pathInfo);</div>
258
- <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; </div>
259
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
260
- <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;}</div>
261
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; </div>
262
- <div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classSVF_1_1DoubleFreeBug.html#af67320d8ebd56aec6ecddc3f44ec09b9"> 191</a></span>&#160;<span class="keywordtype">void</span> DoubleFreeBug::printBugToTerminal()<span class="keyword"> const</span></div>
263
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="keyword"></span>{</div>
264
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVFUtil::bugMsg2</a>(<span class="stringliteral">&quot;\t Double Free :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; memory allocation at : (&quot;</span></div>
265
- <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
266
- <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; </div>
267
- <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t double free path: \n&quot;</span>;</div>
268
- <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
269
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
270
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; {</div>
271
- <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t --&gt; (&quot;</span> &lt;&lt; (*eventIt).getEventLoc() &lt;&lt; <span class="stringliteral">&quot;|&quot;</span> &lt;&lt; (*eventIt).getEventDescription() &lt;&lt; <span class="stringliteral">&quot;) \n&quot;</span>;</div>
272
- <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div>
273
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
274
- <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;}</div>
275
- <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; </div>
276
- <div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classSVF_1_1FileNeverCloseBug.html#a80257bc6a9cf4eecfa402def59993e6e"> 205</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> * FileNeverCloseBug::getBugDescription()<span class="keyword"> const</span></div>
277
- <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="keyword"></span>{</div>
278
- <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
279
- <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
280
- <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;}</div>
281
- <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; </div>
282
- <div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classSVF_1_1FileNeverCloseBug.html#ae3d9bb5952fa858780ec50148e474388"> 211</a></span>&#160;<span class="keywordtype">void</span> FileNeverCloseBug::printBugToTerminal()<span class="keyword"> const</span></div>
283
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="keyword"></span>{</div>
284
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a10504db25b86bc7f74aebb9c54f04cb3">SVFUtil::bugMsg1</a>(<span class="stringliteral">&quot;\t FileNeverClose :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; file open location at : (&quot;</span></div>
285
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
286
- <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;}</div>
287
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; </div>
288
- <div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classSVF_1_1FilePartialCloseBug.html#a16b96f3c79cf5edae0f0f02e52344283"> 217</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> * FilePartialCloseBug::getBugDescription()<span class="keyword"> const</span></div>
289
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="keyword"></span>{</div>
290
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
220
+ <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
221
+ <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;}</div>
222
+ <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; </div>
223
+ <div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classSVF_1_1PartialLeakBug.html#aa3acf06e90939896a86c449260c2e4b4"> 152</a></span>&#160;<span class="keywordtype">void</span> PartialLeakBug::printBugToTerminal()<span class="keyword"> const</span></div>
224
+ <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="keyword"></span>{</div>
225
+ <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVFUtil::bugMsg2</a>(<span class="stringliteral">&quot;\t PartialLeak :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; memory allocation at : (&quot;</span></div>
226
+ <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
227
+ <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
228
+ <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t conditional free path: \n&quot;</span>;</div>
229
+ <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
230
+ <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
231
+ <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; {</div>
232
+ <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t --&gt; (&quot;</span> &lt;&lt; (*eventIt).getEventLoc() &lt;&lt; <span class="stringliteral">&quot;|&quot;</span> &lt;&lt; (*eventIt).getEventDescription() &lt;&lt; <span class="stringliteral">&quot;) \n&quot;</span>;</div>
233
+ <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div>
234
+ <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
235
+ <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;}</div>
236
+ <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
237
+ <div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classSVF_1_1DoubleFreeBug.html#acf0d2ffb52d0b322421a5556d41a1d63"> 166</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> * DoubleFreeBug::getBugDescription()<span class="keyword"> const</span></div>
238
+ <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="keyword"></span>{</div>
239
+ <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
240
+ <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; </div>
241
+ <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *pathInfo = cJSON_CreateArray();</div>
242
+ <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
243
+ <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
244
+ <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; {</div>
245
+ <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *newBranch = cJSON_CreateObject();</div>
246
+ <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchLoc = cJSON_Parse((*eventIt).getEventLoc().c_str());</div>
247
+ <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span>(branchLoc == <span class="keyword">nullptr</span>) branchLoc = cJSON_CreateObject();</div>
248
+ <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchCondition = cJSON_CreateString((*eventIt).getEventDescription().c_str());</div>
249
+ <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; </div>
250
+ <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchLoc&quot;</span>, branchLoc);</div>
251
+ <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchCond&quot;</span>, branchCondition);</div>
252
+ <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; </div>
253
+ <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; cJSON_AddItemToArray(pathInfo, newBranch);</div>
254
+ <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div>
255
+ <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;DoubleFreePath&quot;</span>, pathInfo);</div>
256
+ <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; </div>
257
+ <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
258
+ <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;}</div>
259
+ <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; </div>
260
+ <div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classSVF_1_1DoubleFreeBug.html#af67320d8ebd56aec6ecddc3f44ec09b9"> 189</a></span>&#160;<span class="keywordtype">void</span> DoubleFreeBug::printBugToTerminal()<span class="keyword"> const</span></div>
261
+ <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="keyword"></span>{</div>
262
+ <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVFUtil::bugMsg2</a>(<span class="stringliteral">&quot;\t Double Free :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; memory allocation at : (&quot;</span></div>
263
+ <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
264
+ <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; </div>
265
+ <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t double free path: \n&quot;</span>;</div>
266
+ <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
267
+ <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
268
+ <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div>
269
+ <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t --&gt; (&quot;</span> &lt;&lt; (*eventIt).getEventLoc() &lt;&lt; <span class="stringliteral">&quot;|&quot;</span> &lt;&lt; (*eventIt).getEventDescription() &lt;&lt; <span class="stringliteral">&quot;) \n&quot;</span>;</div>
270
+ <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div>
271
+ <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
272
+ <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;}</div>
273
+ <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; </div>
274
+ <div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classSVF_1_1FileNeverCloseBug.html#a80257bc6a9cf4eecfa402def59993e6e"> 203</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> * FileNeverCloseBug::getBugDescription()<span class="keyword"> const</span></div>
275
+ <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="keyword"></span>{</div>
276
+ <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
277
+ <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
278
+ <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div>
279
+ <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; </div>
280
+ <div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classSVF_1_1FileNeverCloseBug.html#ae3d9bb5952fa858780ec50148e474388"> 209</a></span>&#160;<span class="keywordtype">void</span> FileNeverCloseBug::printBugToTerminal()<span class="keyword"> const</span></div>
281
+ <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="keyword"></span>{</div>
282
+ <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a10504db25b86bc7f74aebb9c54f04cb3">SVFUtil::bugMsg1</a>(<span class="stringliteral">&quot;\t FileNeverClose :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; file open location at : (&quot;</span></div>
283
+ <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
284
+ <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;}</div>
285
+ <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; </div>
286
+ <div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classSVF_1_1FilePartialCloseBug.html#a16b96f3c79cf5edae0f0f02e52344283"> 215</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> * FilePartialCloseBug::getBugDescription()<span class="keyword"> const</span></div>
287
+ <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="keyword"></span>{</div>
288
+ <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
289
+ <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; </div>
290
+ <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *pathInfo = cJSON_CreateArray();</div>
291
291
  <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; </div>
292
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *pathInfo = cJSON_CreateArray();</div>
293
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; </div>
294
- <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
295
- <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
296
- <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; {</div>
297
- <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *newBranch = cJSON_CreateObject();</div>
298
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchLoc = cJSON_Parse((*eventIt).getEventLoc().c_str());</div>
299
- <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">if</span>(branchLoc == <span class="keyword">nullptr</span>) branchLoc = cJSON_CreateObject();</div>
300
- <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchCondition = cJSON_CreateString((*eventIt).getEventDescription().c_str());</div>
301
- <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; </div>
302
- <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchLoc&quot;</span>, branchLoc);</div>
303
- <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchCond&quot;</span>, branchCondition);</div>
304
- <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; </div>
305
- <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; cJSON_AddItemToArray(pathInfo, newBranch);</div>
306
- <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div>
307
- <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;ConditionalFileClosePath&quot;</span>, pathInfo);</div>
308
- <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; </div>
309
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
310
- <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;}</div>
311
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; </div>
312
- <div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classSVF_1_1FilePartialCloseBug.html#a32576eee4de3b4c094c3f8a5501c7b99"> 241</a></span>&#160;<span class="keywordtype">void</span> FilePartialCloseBug::printBugToTerminal()<span class="keyword"> const</span></div>
313
- <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="keyword"></span>{</div>
314
- <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVFUtil::bugMsg2</a>(<span class="stringliteral">&quot;\t PartialFileClose :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; file open location at : (&quot;</span></div>
315
- <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
316
- <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; </div>
317
- <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t conditional file close path: \n&quot;</span>;</div>
318
- <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
319
- <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
320
- <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; {</div>
321
- <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t --&gt; (&quot;</span> &lt;&lt; (*eventIt).getEventLoc() &lt;&lt; <span class="stringliteral">&quot;|&quot;</span> &lt;&lt; (*eventIt).getEventDescription() &lt;&lt; <span class="stringliteral">&quot;) \n&quot;</span>;</div>
322
- <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div>
323
- <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
324
- <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;}</div>
325
- <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; </div>
326
- <div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="classSVF_1_1FullNullPtrDereferenceBug.html#a8f057178ee7182d691dbb3103d0d0d43"> 255</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> *FullNullPtrDereferenceBug::getBugDescription()<span class="keyword"> const</span></div>
327
- <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="keyword"></span>{</div>
328
- <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
329
- <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
330
- <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;}</div>
331
- <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; </div>
332
- <div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="classSVF_1_1FullNullPtrDereferenceBug.html#ae269f1b62e89f8fcca783865d6ce8723"> 261</a></span>&#160;<span class="keywordtype">void</span> FullNullPtrDereferenceBug::printBugToTerminal()<span class="keyword"> const</span></div>
333
- <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="keyword"></span>{</div>
334
- <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVFUtil::bugMsg2</a>(<span class="stringliteral">&quot;\t FullNullPtrDereference :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; dereference at : (&quot;</span></div>
335
- <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
336
- <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;}</div>
337
- <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; </div>
338
- <div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="classSVF_1_1PartialNullPtrDereferenceBug.html#a910f2e839e1e722655fbb2266c15f136"> 267</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> *PartialNullPtrDereferenceBug::getBugDescription()<span class="keyword"> const</span></div>
339
- <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="keyword"></span>{</div>
340
- <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
341
- <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
342
- <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;}</div>
343
- <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; </div>
344
- <div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="classSVF_1_1PartialNullPtrDereferenceBug.html#acc860880d548ea2cf5b63f0f7ad11456"> 273</a></span>&#160;<span class="keywordtype">void</span> PartialNullPtrDereferenceBug::printBugToTerminal()<span class="keyword"> const</span></div>
345
- <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="keyword"></span>{</div>
346
- <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVFUtil::bugMsg2</a>(<span class="stringliteral">&quot;\t PartialNullPtrDereference :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; dereference at : (&quot;</span></div>
347
- <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
348
- <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;}</div>
349
- <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; </div>
350
- <div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBugEvent.html#ad3bcb02563f952edd43ab5a7276bd57d"> 279</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> SVFBugEvent::getFuncName()<span class="keyword"> const</span></div>
351
- <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="keyword"></span>{</div>
352
- <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> eventInst-&gt;getFunction()-&gt;getName();</div>
353
- <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;}</div>
354
- <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; </div>
355
- <div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBugEvent.html#a5b3fcd366e5275927eb66a02dc6040f8"> 284</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> SVFBugEvent::getEventLoc()<span class="keyword"> const</span></div>
356
- <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="keyword"></span>{</div>
357
- <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">return</span> eventInst-&gt;getSourceLoc();</div>
358
- <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;}</div>
359
- <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; </div>
360
- <div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBugEvent.html#a7c5d28996f9715d0f90d664b93477a23"> 289</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> SVFBugEvent::getEventDescription()<span class="keyword"> const</span></div>
361
- <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="keyword"></span>{</div>
362
- <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">switch</span>(getEventType())</div>
292
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
293
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
294
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; {</div>
295
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *newBranch = cJSON_CreateObject();</div>
296
+ <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchLoc = cJSON_Parse((*eventIt).getEventLoc().c_str());</div>
297
+ <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span>(branchLoc == <span class="keyword">nullptr</span>) branchLoc = cJSON_CreateObject();</div>
298
+ <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *branchCondition = cJSON_CreateString((*eventIt).getEventDescription().c_str());</div>
299
+ <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; </div>
300
+ <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchLoc&quot;</span>, branchLoc);</div>
301
+ <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; cJSON_AddItemToObject(newBranch, <span class="stringliteral">&quot;BranchCond&quot;</span>, branchCondition);</div>
302
+ <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; </div>
303
+ <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; cJSON_AddItemToArray(pathInfo, newBranch);</div>
304
+ <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div>
305
+ <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; cJSON_AddItemToObject(bugDescription, <span class="stringliteral">&quot;ConditionalFileClosePath&quot;</span>, pathInfo);</div>
306
+ <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; </div>
307
+ <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
308
+ <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;}</div>
309
+ <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; </div>
310
+ <div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classSVF_1_1FilePartialCloseBug.html#a32576eee4de3b4c094c3f8a5501c7b99"> 239</a></span>&#160;<span class="keywordtype">void</span> FilePartialCloseBug::printBugToTerminal()<span class="keyword"> const</span></div>
311
+ <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="keyword"></span>{</div>
312
+ <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVFUtil::bugMsg2</a>(<span class="stringliteral">&quot;\t PartialFileClose :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; file open location at : (&quot;</span></div>
313
+ <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
314
+ <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; </div>
315
+ <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t conditional file close path: \n&quot;</span>;</div>
316
+ <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">auto</span> lastBranchEventIt = bugEventStack.end() - 1;</div>
317
+ <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> eventIt = bugEventStack.begin(); eventIt != lastBranchEventIt; eventIt++)</div>
318
+ <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; {</div>
319
+ <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t --&gt; (&quot;</span> &lt;&lt; (*eventIt).getEventLoc() &lt;&lt; <span class="stringliteral">&quot;|&quot;</span> &lt;&lt; (*eventIt).getEventDescription() &lt;&lt; <span class="stringliteral">&quot;) \n&quot;</span>;</div>
320
+ <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div>
321
+ <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
322
+ <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;}</div>
323
+ <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; </div>
324
+ <div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classSVF_1_1FullNullPtrDereferenceBug.html#a8f057178ee7182d691dbb3103d0d0d43"> 253</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> *FullNullPtrDereferenceBug::getBugDescription()<span class="keyword"> const</span></div>
325
+ <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="keyword"></span>{</div>
326
+ <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
327
+ <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
328
+ <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;}</div>
329
+ <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; </div>
330
+ <div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classSVF_1_1FullNullPtrDereferenceBug.html#ae269f1b62e89f8fcca783865d6ce8723"> 259</a></span>&#160;<span class="keywordtype">void</span> FullNullPtrDereferenceBug::printBugToTerminal()<span class="keyword"> const</span></div>
331
+ <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="keyword"></span>{</div>
332
+ <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVFUtil::bugMsg2</a>(<span class="stringliteral">&quot;\t FullNullPtrDereference :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; dereference at : (&quot;</span></div>
333
+ <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
334
+ <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;}</div>
335
+ <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; </div>
336
+ <div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="classSVF_1_1PartialNullPtrDereferenceBug.html#a910f2e839e1e722655fbb2266c15f136"> 265</a></span>&#160;<a class="code" href="structcJSON.html">cJSON</a> *PartialNullPtrDereferenceBug::getBugDescription()<span class="keyword"> const</span></div>
337
+ <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="keyword"></span>{</div>
338
+ <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugDescription = cJSON_CreateObject();</div>
339
+ <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> bugDescription;</div>
340
+ <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;}</div>
341
+ <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; </div>
342
+ <div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="classSVF_1_1PartialNullPtrDereferenceBug.html#acc860880d548ea2cf5b63f0f7ad11456"> 271</a></span>&#160;<span class="keywordtype">void</span> PartialNullPtrDereferenceBug::printBugToTerminal()<span class="keyword"> const</span></div>
343
+ <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="keyword"></span>{</div>
344
+ <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVFUtil::bugMsg2</a>(<span class="stringliteral">&quot;\t PartialNullPtrDereference :&quot;</span>) &lt;&lt; <span class="stringliteral">&quot; dereference at : (&quot;</span></div>
345
+ <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; &lt;&lt; GenericBug::getLoc() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
346
+ <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;}</div>
347
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; </div>
348
+ <div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBugEvent.html#ad3bcb02563f952edd43ab5a7276bd57d"> 277</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> SVFBugEvent::getFuncName()<span class="keyword"> const</span></div>
349
+ <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="keyword"></span>{</div>
350
+ <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> eventInst-&gt;getFunction()-&gt;getName();</div>
351
+ <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;}</div>
352
+ <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; </div>
353
+ <div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBugEvent.html#a5b3fcd366e5275927eb66a02dc6040f8"> 282</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> SVFBugEvent::getEventLoc()<span class="keyword"> const</span></div>
354
+ <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="keyword"></span>{</div>
355
+ <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> eventInst-&gt;getSourceLoc();</div>
356
+ <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;}</div>
357
+ <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; </div>
358
+ <div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBugEvent.html#a7c5d28996f9715d0f90d664b93477a23"> 287</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> SVFBugEvent::getEventDescription()<span class="keyword"> const</span></div>
359
+ <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="keyword"></span>{</div>
360
+ <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">switch</span>(getEventType())</div>
361
+ <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; {</div>
362
+ <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">case</span> SVFBugEvent::Branch:</div>
363
363
  <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div>
364
- <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">case</span> SVFBugEvent::Branch:</div>
365
- <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; {</div>
366
- <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">if</span> (typeAndInfoFlag &amp; <a class="code" href="SVFBugReport_8h.html#a6c7cd1f1c2372251f51de3a8392faeec">BRANCHFLAGMASK</a>)</div>
367
- <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; {</div>
368
- <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;True&quot;</span>;</div>
369
- <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; }</div>
370
- <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">else</span></div>
371
- <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; {</div>
372
- <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;False&quot;</span>;</div>
373
- <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; }</div>
374
- <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">break</span>;</div>
375
- <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div>
376
- <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">case</span> SVFBugEvent::CallSite:</div>
377
- <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; {</div>
378
- <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> description(<span class="stringliteral">&quot;calls &quot;</span>);</div>
379
- <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callee = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad56c48be3ba6ebb95416623256524097">SVFUtil::getCallee</a>(eventInst);</div>
380
- <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">if</span>(callee == <span class="keyword">nullptr</span>)</div>
381
- <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; {</div>
382
- <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; description += <span class="stringliteral">&quot;&lt;unknown&gt;&quot;</span>;</div>
383
- <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; }</div>
384
- <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">else</span></div>
385
- <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; {</div>
386
- <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; description += callee-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>();</div>
387
- <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div>
388
- <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">return</span> description;</div>
389
- <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">break</span>;</div>
390
- <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; }</div>
391
- <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">case</span> SVFBugEvent::SourceInst:</div>
392
- <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; {</div>
393
- <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;None&quot;</span>;</div>
394
- <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div>
395
- <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">default</span>:</div>
396
- <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; {</div>
397
- <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;No such type of event!&quot;</span>);</div>
398
- <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; abort();</div>
399
- <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; }</div>
400
- <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; }</div>
401
- <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;}</div>
402
- <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; </div>
403
- <div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBugReport.html#a4e243c7297791b306d970c19abc87ca9"> 332</a></span>&#160;SVFBugReport::~SVFBugReport()</div>
404
- <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;{</div>
405
- <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> bugIt: bugSet)</div>
406
- <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; {</div>
407
- <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keyword">delete</span> bugIt;</div>
408
- <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; }</div>
409
- <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;}</div>
410
- <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; </div>
411
- <div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBugReport.html#aa119593331403f73867fddcb6ec26989"> 340</a></span>&#160;<span class="keywordtype">void</span> SVFBugReport::dumpToJsonFile(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; filePath)<span class="keyword"> const</span></div>
412
- <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="keyword"></span>{</div>
413
- <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; std::map&lt;u32_t, std::string&gt; eventType2Str =</div>
414
- <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; {</div>
415
- <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; {SVFBugEvent::CallSite, <span class="stringliteral">&quot;call site&quot;</span>},</div>
416
- <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; {SVFBugEvent::Caller, <span class="stringliteral">&quot;caller&quot;</span>},</div>
417
- <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; {<a class="code" href="namespaceSVF.html#abf85e29310b2e4df8925d00a5c081314">SVFBugEvent::Loop</a>, <span class="stringliteral">&quot;loop&quot;</span>},</div>
418
- <div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; {SVFBugEvent::Branch, <span class="stringliteral">&quot;branch&quot;</span>}</div>
419
- <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; };</div>
364
+ <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">if</span> (typeAndInfoFlag &amp; <a class="code" href="SVFBugReport_8h.html#a6c7cd1f1c2372251f51de3a8392faeec">BRANCHFLAGMASK</a>)</div>
365
+ <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; {</div>
366
+ <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;True&quot;</span>;</div>
367
+ <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div>
368
+ <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">else</span></div>
369
+ <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; {</div>
370
+ <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;False&quot;</span>;</div>
371
+ <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div>
372
+ <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">break</span>;</div>
373
+ <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; }</div>
374
+ <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">case</span> SVFBugEvent::CallSite:</div>
375
+ <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; {</div>
376
+ <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> description(<span class="stringliteral">&quot;calls &quot;</span>);</div>
377
+ <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callee = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad56c48be3ba6ebb95416623256524097">SVFUtil::getCallee</a>(eventInst);</div>
378
+ <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">if</span>(callee == <span class="keyword">nullptr</span>)</div>
379
+ <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; {</div>
380
+ <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; description += <span class="stringliteral">&quot;&lt;unknown&gt;&quot;</span>;</div>
381
+ <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div>
382
+ <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">else</span></div>
383
+ <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; {</div>
384
+ <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; description += callee-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>();</div>
385
+ <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; }</div>
386
+ <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">return</span> description;</div>
387
+ <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">break</span>;</div>
388
+ <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div>
389
+ <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">case</span> SVFBugEvent::SourceInst:</div>
390
+ <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; {</div>
391
+ <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;None&quot;</span>;</div>
392
+ <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; }</div>
393
+ <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">default</span>:</div>
394
+ <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; {</div>
395
+ <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;No such type of event!&quot;</span>);</div>
396
+ <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; abort();</div>
397
+ <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; }</div>
398
+ <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div>
399
+ <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;}</div>
400
+ <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; </div>
401
+ <div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBugReport.html#a4e243c7297791b306d970c19abc87ca9"> 330</a></span>&#160;SVFBugReport::~SVFBugReport()</div>
402
+ <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;{</div>
403
+ <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> bugIt: bugSet)</div>
404
+ <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; {</div>
405
+ <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keyword">delete</span> bugIt;</div>
406
+ <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; }</div>
407
+ <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;}</div>
408
+ <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; </div>
409
+ <div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBugReport.html#aa119593331403f73867fddcb6ec26989"> 338</a></span>&#160;<span class="keywordtype">void</span> SVFBugReport::dumpToJsonFile(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; filePath)<span class="keyword"> const</span></div>
410
+ <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="keyword"></span>{</div>
411
+ <div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; std::map&lt;u32_t, std::string&gt; eventType2Str =</div>
412
+ <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; {</div>
413
+ <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; {SVFBugEvent::CallSite, <span class="stringliteral">&quot;call site&quot;</span>},</div>
414
+ <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; {SVFBugEvent::Caller, <span class="stringliteral">&quot;caller&quot;</span>},</div>
415
+ <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; {<a class="code" href="namespaceSVF.html#abf85e29310b2e4df8925d00a5c081314">SVFBugEvent::Loop</a>, <span class="stringliteral">&quot;loop&quot;</span>},</div>
416
+ <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; {SVFBugEvent::Branch, <span class="stringliteral">&quot;branch&quot;</span>}</div>
417
+ <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; };</div>
418
+ <div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; </div>
419
+ <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; ofstream jsonFile(filePath, ios::out);</div>
420
420
  <div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; </div>
421
- <div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; ofstream jsonFile(filePath, ios::out);</div>
421
+ <div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; jsonFile &lt;&lt; <span class="stringliteral">&quot;[&quot;</span>;</div>
422
422
  <div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; </div>
423
- <div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; jsonFile &lt;&lt; <span class="stringliteral">&quot;[&quot;</span>;</div>
424
- <div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; </div>
425
- <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordtype">size_t</span> commaCounter = bugSet.size() - 1; <span class="comment">// comma num needed</span></div>
426
- <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> bugPtr : bugSet)</div>
427
- <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; {</div>
428
- <div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *singleBug = cJSON_CreateObject();</div>
429
- <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; </div>
430
- <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugType = cJSON_CreateString(GenericBug::BugType2Str.at(bugPtr-&gt;getBugType()).c_str());</div>
431
- <div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; cJSON_AddItemToObject(singleBug, <span class="stringliteral">&quot;DefectType&quot;</span>, bugType);</div>
432
- <div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; </div>
433
- <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugLoc = cJSON_Parse(bugPtr-&gt;getLoc().c_str());</div>
434
- <div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">if</span>(bugLoc == <span class="keyword">nullptr</span>)</div>
435
- <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; {</div>
436
- <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; bugLoc = cJSON_CreateObject();</div>
437
- <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; }</div>
438
- <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; cJSON_AddItemToObject(singleBug, <span class="stringliteral">&quot;Location&quot;</span>, bugLoc);</div>
439
- <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; </div>
440
- <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugFunction = cJSON_CreateString(bugPtr-&gt;getFuncName().c_str());</div>
441
- <div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; cJSON_AddItemToObject(singleBug, <span class="stringliteral">&quot;Function&quot;</span>, bugFunction);</div>
423
+ <div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordtype">size_t</span> commaCounter = bugSet.size() - 1; <span class="comment">// comma num needed</span></div>
424
+ <div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> bugPtr : bugSet)</div>
425
+ <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; {</div>
426
+ <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *singleBug = cJSON_CreateObject();</div>
427
+ <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; </div>
428
+ <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugType = cJSON_CreateString(GenericBug::BugType2Str.at(bugPtr-&gt;getBugType()).c_str());</div>
429
+ <div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; cJSON_AddItemToObject(singleBug, <span class="stringliteral">&quot;DefectType&quot;</span>, bugType);</div>
430
+ <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; </div>
431
+ <div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugLoc = cJSON_Parse(bugPtr-&gt;getLoc().c_str());</div>
432
+ <div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">if</span>(bugLoc == <span class="keyword">nullptr</span>)</div>
433
+ <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; {</div>
434
+ <div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; bugLoc = cJSON_CreateObject();</div>
435
+ <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; }</div>
436
+ <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; cJSON_AddItemToObject(singleBug, <span class="stringliteral">&quot;Location&quot;</span>, bugLoc);</div>
437
+ <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; </div>
438
+ <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *bugFunction = cJSON_CreateString(bugPtr-&gt;getFuncName().c_str());</div>
439
+ <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; cJSON_AddItemToObject(singleBug, <span class="stringliteral">&quot;Function&quot;</span>, bugFunction);</div>
440
+ <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; </div>
441
+ <div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; cJSON_AddItemToObject(singleBug, <span class="stringliteral">&quot;Description&quot;</span>, bugPtr-&gt;getBugDescription());</div>
442
442
  <div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; </div>
443
- <div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; cJSON_AddItemToObject(singleBug, <span class="stringliteral">&quot;Description&quot;</span>, bugPtr-&gt;getBugDescription());</div>
444
- <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; </div>
445
- <div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *eventList = cJSON_CreateArray();</div>
446
- <div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1GenericBug.html#acc65b033bfd61257d5b6fdbf932dfafe">GenericBug::EventStack</a> &amp;bugEventStack = bugPtr-&gt;getEventStack();</div>
447
- <div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">if</span>(BufferOverflowBug::classof(bugPtr))</div>
448
- <div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; {</div>
449
- <div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="comment">// add only when bug is context sensitive</span></div>
450
- <div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBugEvent.html">SVFBugEvent</a>&amp;event : bugEventStack)</div>
451
- <div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; {</div>
452
- <div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">if</span> (event.getEventType() == SVFBugEvent::SourceInst)</div>
453
- <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; {</div>
454
- <div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">continue</span>;</div>
455
- <div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; }</div>
456
- <div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; </div>
457
- <div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *singleEvent = cJSON_CreateObject();</div>
458
- <div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="comment">//event type</span></div>
459
- <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *eventType = cJSON_CreateString(eventType2Str[event.getEventType()].c_str());</div>
460
- <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; cJSON_AddItemToObject(singleEvent, <span class="stringliteral">&quot;EventType&quot;</span>, eventType);</div>
461
- <div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="comment">//function name</span></div>
462
- <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *eventFunc = cJSON_CreateString(event.getFuncName().c_str());</div>
463
- <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; cJSON_AddItemToObject(singleEvent, <span class="stringliteral">&quot;Function&quot;</span>, eventFunc);</div>
464
- <div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="comment">//event loc</span></div>
465
- <div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *eventLoc = cJSON_Parse(event.getEventLoc().c_str());</div>
466
- <div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">if</span>(eventLoc == <span class="keyword">nullptr</span>)</div>
467
- <div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; {</div>
468
- <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; eventLoc = cJSON_CreateObject();</div>
469
- <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; }</div>
470
- <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; cJSON_AddItemToObject(singleEvent, <span class="stringliteral">&quot;Location&quot;</span>, eventLoc);</div>
471
- <div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="comment">//event description</span></div>
472
- <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *eventDescription = cJSON_CreateString(event.getEventDescription().c_str());</div>
473
- <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; cJSON_AddItemToObject(singleEvent, <span class="stringliteral">&quot;Description&quot;</span>, eventDescription);</div>
474
- <div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; </div>
475
- <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; cJSON_AddItemToArray(eventList, singleEvent);</div>
476
- <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; }</div>
477
- <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; }</div>
478
- <div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; cJSON_AddItemToObject(singleBug, <span class="stringliteral">&quot;Events&quot;</span>, eventList);</div>
479
- <div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; </div>
480
- <div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordtype">char</span> *singleBugStr = cJSON_Print(singleBug);</div>
481
- <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; jsonFile &lt;&lt; singleBugStr;</div>
482
- <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">if</span> (commaCounter != 0)</div>
483
- <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; {</div>
484
- <div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; jsonFile &lt;&lt; <span class="stringliteral">&quot;,\n&quot;</span>;</div>
485
- <div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; }</div>
486
- <div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; commaCounter --;</div>
487
- <div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; </div>
488
- <div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <a class="code" href="cJSON_8cpp.html#afde5c619f31577b3d821b56b23953c85">cJSON_Delete</a>(singleBug);</div>
489
- <div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div>
490
- <div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; </div>
491
- <div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; jsonFile &lt;&lt; <span class="stringliteral">&quot;]&quot;</span>;</div>
492
- <div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; jsonFile.close();</div>
493
- <div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;}</div>
443
+ <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *eventList = cJSON_CreateArray();</div>
444
+ <div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1GenericBug.html#acc65b033bfd61257d5b6fdbf932dfafe">GenericBug::EventStack</a> &amp;bugEventStack = bugPtr-&gt;getEventStack();</div>
445
+ <div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">if</span>(BufferOverflowBug::classof(bugPtr))</div>
446
+ <div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; {</div>
447
+ <div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="comment">// add only when bug is context sensitive</span></div>
448
+ <div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBugEvent.html">SVFBugEvent</a>&amp;event : bugEventStack)</div>
449
+ <div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; {</div>
450
+ <div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">if</span> (event.getEventType() == SVFBugEvent::SourceInst)</div>
451
+ <div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; {</div>
452
+ <div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">continue</span>;</div>
453
+ <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; }</div>
454
+ <div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; </div>
455
+ <div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *singleEvent = cJSON_CreateObject();</div>
456
+ <div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="comment">//event type</span></div>
457
+ <div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *eventType = cJSON_CreateString(eventType2Str[event.getEventType()].c_str());</div>
458
+ <div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; cJSON_AddItemToObject(singleEvent, <span class="stringliteral">&quot;EventType&quot;</span>, eventType);</div>
459
+ <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="comment">//function name</span></div>
460
+ <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *eventFunc = cJSON_CreateString(event.getFuncName().c_str());</div>
461
+ <div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; cJSON_AddItemToObject(singleEvent, <span class="stringliteral">&quot;Function&quot;</span>, eventFunc);</div>
462
+ <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="comment">//event loc</span></div>
463
+ <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *eventLoc = cJSON_Parse(event.getEventLoc().c_str());</div>
464
+ <div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">if</span>(eventLoc == <span class="keyword">nullptr</span>)</div>
465
+ <div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; {</div>
466
+ <div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; eventLoc = cJSON_CreateObject();</div>
467
+ <div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; }</div>
468
+ <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; cJSON_AddItemToObject(singleEvent, <span class="stringliteral">&quot;Location&quot;</span>, eventLoc);</div>
469
+ <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="comment">//event description</span></div>
470
+ <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *eventDescription = cJSON_CreateString(event.getEventDescription().c_str());</div>
471
+ <div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; cJSON_AddItemToObject(singleEvent, <span class="stringliteral">&quot;Description&quot;</span>, eventDescription);</div>
472
+ <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; </div>
473
+ <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; cJSON_AddItemToArray(eventList, singleEvent);</div>
474
+ <div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; }</div>
475
+ <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; }</div>
476
+ <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; cJSON_AddItemToObject(singleBug, <span class="stringliteral">&quot;Events&quot;</span>, eventList);</div>
477
+ <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; </div>
478
+ <div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordtype">char</span> *singleBugStr = cJSON_Print(singleBug);</div>
479
+ <div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; jsonFile &lt;&lt; singleBugStr;</div>
480
+ <div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">if</span> (commaCounter != 0)</div>
481
+ <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; {</div>
482
+ <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; jsonFile &lt;&lt; <span class="stringliteral">&quot;,\n&quot;</span>;</div>
483
+ <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; }</div>
484
+ <div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; commaCounter --;</div>
485
+ <div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; </div>
486
+ <div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <a class="code" href="cJSON_8cpp.html#afde5c619f31577b3d821b56b23953c85">cJSON_Delete</a>(singleBug);</div>
487
+ <div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div>
488
+ <div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; </div>
489
+ <div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; jsonFile &lt;&lt; <span class="stringliteral">&quot;]&quot;</span>;</div>
490
+ <div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; jsonFile.close();</div>
491
+ <div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;}</div>
494
492
  </div><!-- fragment --></div><!-- contents -->
495
493
  <div class="ttc" id="aclassSVF_1_1SVFValue_html_a2401b022638769f59f86ab424a189b6e"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">SVF::SVFValue::getName</a></div><div class="ttdeci">const std::string &amp; getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00216">SVFValue.h:216</a></div></div>
496
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ad56c48be3ba6ebb95416623256524097"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad56c48be3ba6ebb95416623256524097">SVF::LLVMUtil::getCallee</a></div><div class="ttdeci">const Function * getCallee(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00075">LLVMUtil.h:75</a></div></div>
494
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ad56c48be3ba6ebb95416623256524097"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad56c48be3ba6ebb95416623256524097">SVF::LLVMUtil::getCallee</a></div><div class="ttdeci">const Function * getCallee(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00074">LLVMUtil.h:74</a></div></div>
497
495
  <div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
498
496
  <div class="ttc" id="acJSON_8cpp_html_afde5c619f31577b3d821b56b23953c85"><div class="ttname"><a href="cJSON_8cpp.html#afde5c619f31577b3d821b56b23953c85">cJSON_Delete</a></div><div class="ttdeci">cJSON_Delete(null)</div></div>
499
497
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a10504db25b86bc7f74aebb9c54f04cb3"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a10504db25b86bc7f74aebb9c54f04cb3">SVF::SVFUtil::bugMsg1</a></div><div class="ttdeci">std::string bugMsg1(const std::string &amp;msg)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00081">SVFUtil.cpp:81</a></div></div>
@@ -501,15 +499,14 @@ $(function() {
501
499
  <div class="ttc" id="acJSON_8h_html"><div class="ttname"><a href="cJSON_8h.html">cJSON.h</a></div></div>
502
500
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ac25f6dfcc9118ffd80244a771bdee535"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ac25f6dfcc9118ffd80244a771bdee535">SVF::SVFUtil::bugMsg2</a></div><div class="ttdeci">std::string bugMsg2(const std::string &amp;msg)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00086">SVFUtil.cpp:86</a></div></div>
503
501
  <div class="ttc" id="aSVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
504
- <div class="ttc" id="aclassSVF_1_1SVFBugEvent_html_ad3bcb02563f952edd43ab5a7276bd57d"><div class="ttname"><a href="classSVF_1_1SVFBugEvent.html#ad3bcb02563f952edd43ab5a7276bd57d">SVF::SVFBugEvent::getFuncName</a></div><div class="ttdeci">virtual const std::string getFuncName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8cpp_source.html#l00279">SVFBugReport.cpp:279</a></div></div>
502
+ <div class="ttc" id="aclassSVF_1_1SVFBugEvent_html_ad3bcb02563f952edd43ab5a7276bd57d"><div class="ttname"><a href="classSVF_1_1SVFBugEvent.html#ad3bcb02563f952edd43ab5a7276bd57d">SVF::SVFBugEvent::getFuncName</a></div><div class="ttdeci">virtual const std::string getFuncName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8cpp_source.html#l00277">SVFBugReport.cpp:277</a></div></div>
505
503
  <div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
506
504
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00270">SVFValue.h:270</a></div></div>
507
505
  <div class="ttc" id="aSVFBugReport_8h_html_a6c7cd1f1c2372251f51de3a8392faeec"><div class="ttname"><a href="SVFBugReport_8h.html#a6c7cd1f1c2372251f51de3a8392faeec">BRANCHFLAGMASK</a></div><div class="ttdeci">#define BRANCHFLAGMASK</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8h_source.html#l00040">SVFBugReport.h:40</a></div></div>
508
506
  <div class="ttc" id="astructcJSON_html"><div class="ttname"><a href="structcJSON.html">cJSON</a></div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00103">cJSON.h:103</a></div></div>
509
507
  <div class="ttc" id="aSVFBugReport_8h_html"><div class="ttname"><a href="SVFBugReport_8h.html">SVFBugReport.h</a></div></div>
510
508
  <div class="ttc" id="anamespaceSVF_html_abf85e29310b2e4df8925d00a5c081314"><div class="ttname"><a href="namespaceSVF.html#abf85e29310b2e4df8925d00a5c081314">SVF::Loop</a></div><div class="ttdeci">llvm::Loop Loop</div><div class="ttdoc">LLVM Loop.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00138">BasicTypes.h:138</a></div></div>
511
- <div class="ttc" id="aclassSVF_1_1SVFBugEvent_html_a7ded0022f3852a08a05c67aeae77162f"><div class="ttname"><a href="classSVF_1_1SVFBugEvent.html#a7ded0022f3852a08a05c67aeae77162f">SVF::SVFBugEvent::getEventType</a></div><div class="ttdeci">u32_t getEventType() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8h_source.html#l00071">SVFBugReport.h:71</a></div></div>
512
- <div class="ttc" id="aclassSVF_1_1SVFBugEvent_html_a5b3fcd366e5275927eb66a02dc6040f8"><div class="ttname"><a href="classSVF_1_1SVFBugEvent.html#a5b3fcd366e5275927eb66a02dc6040f8">SVF::SVFBugEvent::getEventLoc</a></div><div class="ttdeci">virtual const std::string getEventLoc() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8cpp_source.html#l00284">SVFBugReport.cpp:284</a></div></div>
509
+ <div class="ttc" id="aclassSVF_1_1SVFBugEvent_html_a5b3fcd366e5275927eb66a02dc6040f8"><div class="ttname"><a href="classSVF_1_1SVFBugEvent.html#a5b3fcd366e5275927eb66a02dc6040f8">SVF::SVFBugEvent::getEventLoc</a></div><div class="ttdeci">virtual const std::string getEventLoc() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8cpp_source.html#l00282">SVFBugReport.cpp:282</a></div></div>
513
510
  <div class="ttc" id="aclassSVF_1_1SVFBugEvent_html"><div class="ttname"><a href="classSVF_1_1SVFBugEvent.html">SVF::SVFBugEvent</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8h_source.html#l00051">SVFBugReport.h:51</a></div></div>
514
511
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream &amp; errs()</div><div class="ttdoc">Overwrite llvm::errs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00056">SVFUtil.h:56</a></div></div>
515
512
  <!-- start footer part -->