svf-tools 1.0.478 → 1.0.481

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 (322) hide show
  1. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/Andersen_8h_source.html +1 -1
  3. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +1 -1
  4. package/SVF-doxygen/html/html/CFGNormalizer_8cpp.html +5 -4
  5. package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +50 -40
  6. package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +20 -18
  7. package/SVF-doxygen/html/html/CFLAlias_8cpp.html +80 -0
  8. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +107 -0
  9. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +14 -35
  10. package/SVF-doxygen/html/html/CFLGramGraphChecker_8h_source.html +10 -10
  11. package/SVF-doxygen/html/html/CFLGrammar_8cpp.html +1 -0
  12. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +34 -23
  13. package/SVF-doxygen/html/html/CFLGrammar_8h.html +9 -1
  14. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +106 -62
  15. package/SVF-doxygen/html/html/CFLGrammar_8txt.html +58 -151
  16. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +24 -11
  17. package/SVF-doxygen/html/html/CFLGraphBuilder_8h.html +2 -0
  18. package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +18 -19
  19. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +27 -16
  20. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +20 -16
  21. package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +14 -14
  22. package/SVF-doxygen/html/html/CFLSolver_8h_source.html +5 -5
  23. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +1 -1
  25. package/SVF-doxygen/html/html/CHG_8cpp_source.html +1 -1
  26. package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
  27. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +1 -1
  28. package/SVF-doxygen/html/html/CPPUtil_8h.html +4 -4
  29. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/html/CallGraphBuilder_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +7 -7
  32. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
  33. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +4 -4
  34. package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
  35. package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
  36. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +36 -32
  38. package/SVF-doxygen/html/html/ExtAPI_8h.html +36 -0
  39. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +66 -64
  40. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +1 -1
  41. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +1 -1
  42. package/SVF-doxygen/html/html/GrammarBuilder_8cpp_source.html +14 -17
  43. package/SVF-doxygen/html/html/GrammarBuilder_8h.html +0 -1
  44. package/SVF-doxygen/html/html/GrammarBuilder_8h_source.html +9 -11
  45. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +5 -3
  46. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +2 -2
  47. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
  48. package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
  49. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
  50. package/SVF-doxygen/html/html/IRGraph_8h_source.html +1 -1
  51. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1 -1
  52. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +1 -1
  53. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  54. package/SVF-doxygen/html/html/MHP_8cpp_source.html +1 -1
  55. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
  56. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +1 -1
  57. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +1 -1
  58. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +1 -1
  59. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +1 -1
  60. package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -1
  61. package/SVF-doxygen/html/html/MTA_8h_source.html +1 -1
  62. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
  63. package/SVF-doxygen/html/html/OfflineConsG_8h_source.html +1 -1
  64. package/SVF-doxygen/html/html/PCG_8cpp_source.html +1 -1
  65. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +1 -1
  66. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  67. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +1 -1
  68. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +1 -1
  69. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +1 -1
  70. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +1 -1
  71. package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
  72. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +3 -3
  73. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +1 -1
  74. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +1 -1
  75. package/SVF-doxygen/html/html/SVFUtil_8h.html +1 -1
  76. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +8 -8
  77. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  78. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +17 -17
  79. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +15 -15
  80. package/SVF-doxygen/html/html/TCT_8cpp_source.html +1 -1
  81. package/SVF-doxygen/html/html/TCT_8h_source.html +1 -1
  82. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +1 -1
  83. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +1 -1
  84. package/SVF-doxygen/html/html/VFG_8cpp_source.html +1 -1
  85. package/SVF-doxygen/html/html/VFG_8h_source.html +1 -1
  86. package/SVF-doxygen/html/html/annotated.html +298 -293
  87. package/SVF-doxygen/html/html/cfl_8cpp.html +2 -2
  88. package/SVF-doxygen/html/html/cfl_8cpp_source.html +3 -3
  89. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder-members.html +96 -0
  90. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +197 -0
  91. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.png +0 -0
  92. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +1 -1
  93. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +1 -1
  94. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +1 -1
  95. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +1 -1
  96. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
  97. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +1 -1
  98. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +1 -1
  99. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +1 -1
  100. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +1 -1
  101. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer-members.html +3 -3
  102. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +108 -99
  103. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +1 -1
  104. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +52 -39
  105. package/SVF-doxygen/html/html/classSVF_1_1CFLEdge-members.html +3 -1
  106. package/SVF-doxygen/html/html/classSVF_1_1CFLEdge.html +62 -0
  107. package/SVF-doxygen/html/html/classSVF_1_1CFLFIFOWorkList-members.html +91 -0
  108. package/SVF-doxygen/html/html/classSVF_1_1CFLFIFOWorkList.html +459 -0
  109. package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar-members.html +47 -38
  110. package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar.html +180 -137
  111. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph-members.html +21 -20
  112. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +44 -22
  113. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder-members.html +8 -8
  114. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +53 -43
  115. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.png +0 -0
  116. package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +3 -3
  117. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +14 -14
  118. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +3 -3
  119. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +1 -1
  120. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +4 -4
  121. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
  122. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +43 -43
  123. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +5 -4
  124. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +158 -125
  125. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +20 -21
  126. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  127. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase-members.html +29 -21
  128. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +397 -179
  129. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase_1_1SymbolHash-members.html +81 -0
  130. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase_1_1SymbolHash.html +124 -0
  131. package/SVF-doxygen/html/html/classSVF_1_1GrammarBuilder-members.html +6 -7
  132. package/SVF-doxygen/html/html/classSVF_1_1GrammarBuilder.html +73 -91
  133. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +1 -1
  134. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +1 -1
  135. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +1 -1
  136. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +1 -1
  137. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +2 -2
  138. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +1 -1
  139. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +3 -3
  140. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +3 -3
  141. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +3 -3
  142. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +1 -1
  143. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +1 -1
  144. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +3 -3
  145. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +1 -1
  146. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +1 -1
  147. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +14 -14
  148. package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +2 -2
  149. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +54 -53
  150. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +2 -2
  151. package/SVF-doxygen/html/html/classSVF_1_1VariantGepCGEdge.html +11 -11
  152. package/SVF-doxygen/html/html/classes.html +105 -106
  153. package/SVF-doxygen/html/html/classllvm_1_1GraphPrinter.html +1 -1
  154. package/SVF-doxygen/html/html/cuddInt_8c.html +17 -17
  155. package/SVF-doxygen/html/html/cuddInt_8c_source.html +3 -3
  156. package/SVF-doxygen/html/html/cuddInt_8h.html +5 -5
  157. package/SVF-doxygen/html/html/cudd_8h.html +9 -9
  158. package/SVF-doxygen/html/html/cudd_8h_source.html +1 -1
  159. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  160. package/SVF-doxygen/html/html/dir_98f9a352f241e0e917d4efaa4086f6e8.html +2 -0
  161. package/SVF-doxygen/html/html/files.html +5 -4
  162. package/SVF-doxygen/html/html/functions_0x7e.html +3 -0
  163. package/SVF-doxygen/html/html/functions_a.html +14 -8
  164. package/SVF-doxygen/html/html/functions_b.html +4 -3
  165. package/SVF-doxygen/html/html/functions_c.html +37 -35
  166. package/SVF-doxygen/html/html/functions_d.html +8 -4
  167. package/SVF-doxygen/html/html/functions_e.html +15 -8
  168. package/SVF-doxygen/html/html/functions_f.html +16 -17
  169. package/SVF-doxygen/html/html/functions_func.html +1 -1
  170. package/SVF-doxygen/html/html/functions_func_0x7e.html +3 -0
  171. package/SVF-doxygen/html/html/functions_func_b.html +3 -2
  172. package/SVF-doxygen/html/html/functions_func_c.html +32 -28
  173. package/SVF-doxygen/html/html/functions_func_e.html +14 -7
  174. package/SVF-doxygen/html/html/functions_func_f.html +3 -2
  175. package/SVF-doxygen/html/html/functions_func_g.html +22 -18
  176. package/SVF-doxygen/html/html/functions_func_i.html +18 -9
  177. package/SVF-doxygen/html/html/functions_func_l.html +2 -5
  178. package/SVF-doxygen/html/html/functions_func_o.html +20 -5
  179. package/SVF-doxygen/html/html/functions_func_p.html +9 -7
  180. package/SVF-doxygen/html/html/functions_func_s.html +12 -6
  181. package/SVF-doxygen/html/html/functions_g.html +25 -21
  182. package/SVF-doxygen/html/html/functions_i.html +29 -20
  183. package/SVF-doxygen/html/html/functions_k.html +2 -1
  184. package/SVF-doxygen/html/html/functions_l.html +1 -4
  185. package/SVF-doxygen/html/html/functions_n.html +1 -1
  186. package/SVF-doxygen/html/html/functions_o.html +24 -15
  187. package/SVF-doxygen/html/html/functions_p.html +18 -18
  188. package/SVF-doxygen/html/html/functions_r.html +5 -5
  189. package/SVF-doxygen/html/html/functions_s.html +24 -16
  190. package/SVF-doxygen/html/html/functions_t.html +5 -7
  191. package/SVF-doxygen/html/html/functions_type_d.html +4 -2
  192. package/SVF-doxygen/html/html/functions_type_p.html +1 -1
  193. package/SVF-doxygen/html/html/functions_type_s.html +7 -1
  194. package/SVF-doxygen/html/html/functions_type_v.html +3 -0
  195. package/SVF-doxygen/html/html/functions_v.html +7 -1
  196. package/SVF-doxygen/html/html/functions_vars_a.html +6 -0
  197. package/SVF-doxygen/html/html/functions_vars_c.html +1 -1
  198. package/SVF-doxygen/html/html/functions_vars_d.html +4 -2
  199. package/SVF-doxygen/html/html/functions_vars_e.html +1 -1
  200. package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
  201. package/SVF-doxygen/html/html/functions_vars_k.html +1 -0
  202. package/SVF-doxygen/html/html/functions_vars_n.html +1 -1
  203. package/SVF-doxygen/html/html/functions_vars_r.html +1 -1
  204. package/SVF-doxygen/html/html/functions_vars_s.html +2 -2
  205. package/SVF-doxygen/html/html/functions_vars_t.html +1 -1
  206. package/SVF-doxygen/html/html/functions_vars_v.html +3 -0
  207. package/SVF-doxygen/html/html/functions_w.html +6 -10
  208. package/SVF-doxygen/html/html/globals.html +1 -2
  209. package/SVF-doxygen/html/html/globals_a.html +1 -6
  210. package/SVF-doxygen/html/html/globals_c.html +129 -126
  211. package/SVF-doxygen/html/html/globals_defs_j.html +6 -0
  212. package/SVF-doxygen/html/html/globals_e.html +7 -8
  213. package/SVF-doxygen/html/html/globals_f.html +6 -12
  214. package/SVF-doxygen/html/html/globals_func.html +0 -6
  215. package/SVF-doxygen/html/html/globals_func_f.html +0 -8
  216. package/SVF-doxygen/html/html/globals_g.html +4 -2
  217. package/SVF-doxygen/html/html/globals_j.html +6 -0
  218. package/SVF-doxygen/html/html/globals_l.html +3 -0
  219. package/SVF-doxygen/html/html/globals_s.html +7 -9
  220. package/SVF-doxygen/html/html/globals_v.html +3 -0
  221. package/SVF-doxygen/html/html/globals_vars.html +17 -13
  222. package/SVF-doxygen/html/html/hierarchy.html +449 -444
  223. package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
  224. package/SVF-doxygen/html/html/namespaceSVF.html +8 -4
  225. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +2 -2
  226. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +8 -8
  227. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
  228. package/SVF-doxygen/html/html/search/all_0.js +1 -1
  229. package/SVF-doxygen/html/html/search/all_1.js +5 -4
  230. package/SVF-doxygen/html/html/search/all_10.js +12 -12
  231. package/SVF-doxygen/html/html/search/all_12.js +3 -3
  232. package/SVF-doxygen/html/html/search/all_13.js +22 -17
  233. package/SVF-doxygen/html/html/search/all_14.js +5 -5
  234. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  235. package/SVF-doxygen/html/html/search/all_16.js +2 -0
  236. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  237. package/SVF-doxygen/html/html/search/all_1b.js +1 -0
  238. package/SVF-doxygen/html/html/search/all_2.js +2 -2
  239. package/SVF-doxygen/html/html/search/all_3.js +7 -6
  240. package/SVF-doxygen/html/html/search/all_4.js +5 -5
  241. package/SVF-doxygen/html/html/search/all_5.js +7 -5
  242. package/SVF-doxygen/html/html/search/all_6.js +4 -4
  243. package/SVF-doxygen/html/html/search/all_7.js +11 -9
  244. package/SVF-doxygen/html/html/search/all_9.js +8 -5
  245. package/SVF-doxygen/html/html/search/all_a.js +2 -0
  246. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  247. package/SVF-doxygen/html/html/search/all_c.js +1 -2
  248. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  249. package/SVF-doxygen/html/html/search/all_e.js +4 -4
  250. package/SVF-doxygen/html/html/search/all_f.js +9 -6
  251. package/SVF-doxygen/html/html/search/classes_0.js +1 -0
  252. package/SVF-doxygen/html/html/search/classes_2.js +1 -0
  253. package/SVF-doxygen/html/html/search/classes_f.js +3 -0
  254. package/SVF-doxygen/html/html/search/defines_8.js +2 -0
  255. package/SVF-doxygen/html/html/search/files_2.js +1 -1
  256. package/SVF-doxygen/html/html/search/functions_0.js +1 -3
  257. package/SVF-doxygen/html/html/search/functions_1.js +2 -2
  258. package/SVF-doxygen/html/html/search/functions_11.js +4 -2
  259. package/SVF-doxygen/html/html/search/functions_17.js +1 -0
  260. package/SVF-doxygen/html/html/search/functions_2.js +3 -2
  261. package/SVF-doxygen/html/html/search/functions_3.js +1 -1
  262. package/SVF-doxygen/html/html/search/functions_4.js +5 -3
  263. package/SVF-doxygen/html/html/search/functions_5.js +1 -3
  264. package/SVF-doxygen/html/html/search/functions_6.js +9 -8
  265. package/SVF-doxygen/html/html/search/functions_8.js +4 -1
  266. package/SVF-doxygen/html/html/search/functions_b.js +0 -1
  267. package/SVF-doxygen/html/html/search/functions_e.js +8 -5
  268. package/SVF-doxygen/html/html/search/functions_f.js +4 -4
  269. package/SVF-doxygen/html/html/search/typedefs_11.js +3 -1
  270. package/SVF-doxygen/html/html/search/typedefs_14.js +1 -0
  271. package/SVF-doxygen/html/html/search/typedefs_3.js +2 -2
  272. package/SVF-doxygen/html/html/search/typedefs_f.js +1 -1
  273. package/SVF-doxygen/html/html/search/variables_0.js +1 -1
  274. package/SVF-doxygen/html/html/search/variables_1.js +3 -2
  275. package/SVF-doxygen/html/html/search/variables_12.js +1 -1
  276. package/SVF-doxygen/html/html/search/variables_13.js +2 -2
  277. package/SVF-doxygen/html/html/search/variables_14.js +2 -2
  278. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  279. package/SVF-doxygen/html/html/search/variables_16.js +2 -0
  280. package/SVF-doxygen/html/html/search/variables_3.js +2 -2
  281. package/SVF-doxygen/html/html/search/variables_4.js +2 -2
  282. package/SVF-doxygen/html/html/search/variables_5.js +2 -2
  283. package/SVF-doxygen/html/html/search/variables_6.js +3 -3
  284. package/SVF-doxygen/html/html/search/variables_7.js +2 -1
  285. package/SVF-doxygen/html/html/search/variables_b.js +1 -1
  286. package/SVF-doxygen/html/html/search/variables_c.js +1 -0
  287. package/SVF-doxygen/html/html/search/variables_e.js +3 -3
  288. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol-members.html +98 -0
  289. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +652 -0
  290. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1SymbolVectorHash-members.html +81 -0
  291. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1SymbolVectorHash.html +124 -0
  292. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +22 -15
  293. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +4 -2
  294. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +4 -2
  295. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.html +1 -1
  296. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.html +2 -2
  297. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.html +1 -1
  298. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  299. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  300. package/include/CFL/CFGNormalizer.h +14 -9
  301. package/include/CFL/CFLAlias.h +1 -40
  302. package/include/CFL/CFLGrammar.h +246 -31
  303. package/include/CFL/CFLGrammar.txt +13 -15
  304. package/include/CFL/CFLGraphBuilder.h +27 -29
  305. package/include/CFL/GrammarBuilder.h +34 -14
  306. package/include/Graphs/CFLGraph.h +12 -0
  307. package/include/Graphs/ConsGEdge.h +1 -0
  308. package/include/SVF-FE/CallGraphBuilder.h +2 -2
  309. package/include/Util/ExtAPI.h +59 -42
  310. package/lib/CFL/CFGNormalizer.cpp +138 -86
  311. package/lib/CFL/CFLAlias.cpp +73 -0
  312. package/lib/CFL/CFLGrammar.cpp +115 -16
  313. package/lib/CFL/CFLGraphBuilder.cpp +64 -1
  314. package/lib/CFL/GrammarBuilder.cpp +42 -60
  315. package/lib/Graphs/CFLGraph.cpp +41 -1
  316. package/lib/MemoryModel/LocationSet.cpp +1 -1
  317. package/lib/SVF-FE/SVFIRBuilder.cpp +2 -2
  318. package/lib/SVF-FE/SymbolTableBuilder.cpp +4 -0
  319. package/lib/Util/ExtAPI.cpp +34 -2
  320. package/lib/Util/ExtAPI.json +3268 -2585
  321. package/package.json +1 -1
  322. package/include/CFL/CFLGrammarDev.txt +0 -16
@@ -112,15 +112,15 @@ Functions</h2></td></tr>
112
112
  <p>Build Program Assignment Graph (SVFIR) </p>
113
113
 
114
114
  <p class="definition">Definition at line <a class="el" href="cfl_8cpp_source.html#l00043">43</a> of file <a class="el" href="cfl_8cpp_source.html">cfl.cpp</a>.</p>
115
- <div class="fragment"><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">int</span> arg_num = 0;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">LLVMUtil::processArguments</a>(argc, argv, arg_num, arg_value, moduleNameVec);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; cl::ParseCommandLineOptions(arg_num, arg_value,</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="stringliteral">&quot;CFL Reachability Analysis\n&quot;</span>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; LLVMModuleSet::getLLVMModuleSet()-&gt;preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">if</span> (Options::GraphIsFromDot == <span class="keyword">false</span>)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()-&gt;buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">buildSymbolTableInfo</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* svfir = builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#aa6d56f9580f76fd09d25ce6cf7541e98">build</a>(svfModule);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="classSVF_1_1CFLAlias.html">CFLAlias</a>* cflaa = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLAlias.html">CFLAlias</a>(svfir);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; cflaa-&gt;<a class="code" href="classSVF_1_1CFLAlias.html#acc3a9c19cc140aef48712b5c68240454">analyze</a>();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">delete</span> cflaa;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* svfir = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classSVF_1_1CFLAlias.html">CFLAlias</a>* cflaa = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLAlias.html">CFLAlias</a>(svfir);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; cflaa-&gt;<a class="code" href="classSVF_1_1CFLAlias.html#acc3a9c19cc140aef48712b5c68240454">analyze</a>();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">delete</span> cflaa;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; SVFIR::releaseSVFIR();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;}</div><div class="ttc" id="classSVF_1_1CFLAlias_html"><div class="ttname"><a href="classSVF_1_1CFLAlias.html">SVF::CFLAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00043">CFLAlias.h:43</a></div></div>
115
+ <div class="fragment"><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">int</span> arg_num = 0;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">LLVMUtil::processArguments</a>(argc, argv, arg_num, arg_value, moduleNameVec);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; cl::ParseCommandLineOptions(arg_num, arg_value,</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="stringliteral">&quot;CFL Reachability Analysis\n&quot;</span>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; LLVMModuleSet::getLLVMModuleSet()-&gt;preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">if</span> (Options::GraphIsFromDot == <span class="keyword">false</span>)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()-&gt;buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">buildSymbolTableInfo</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* svfir = builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#aa6d56f9580f76fd09d25ce6cf7541e98">build</a>(svfModule);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="classSVF_1_1CFLAlias.html">CFLAlias</a>* cflaa = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLAlias.html">CFLAlias</a>(svfir);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; cflaa-&gt;<a class="code" href="classSVF_1_1CFLAlias.html#afc6922e9f1965ed85ef87151e00f5311">analyze</a>();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">delete</span> cflaa;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* svfir = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classSVF_1_1CFLAlias.html">CFLAlias</a>* cflaa = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLAlias.html">CFLAlias</a>(svfir);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; cflaa-&gt;<a class="code" href="classSVF_1_1CFLAlias.html#afc6922e9f1965ed85ef87151e00f5311">analyze</a>();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">delete</span> cflaa;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; SVFIR::releaseSVFIR();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;}</div><div class="ttc" id="classSVF_1_1CFLAlias_html"><div class="ttname"><a href="classSVF_1_1CFLAlias.html">SVF::CFLAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00043">CFLAlias.h:43</a></div></div>
116
116
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_aa6d56f9580f76fd09d25ce6cf7541e98"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#aa6d56f9580f76fd09d25ce6cf7541e98">SVF::SVFIRBuilder::build</a></div><div class="ttdeci">virtual SVFIR * build(SVFModule *svfModule)</div><div class="ttdoc">Start building SVFIR here. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00050">SVFIRBuilder.cpp:50</a></div></div>
117
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_afc6922e9f1965ed85ef87151e00f5311"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#afc6922e9f1965ed85ef87151e00f5311">SVF::CFLAlias::analyze</a></div><div class="ttdeci">virtual void analyze()</div><div class="ttdoc">Start Analysis here (main part of pointer analysis). </div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8cpp_source.html#l00034">CFLAlias.cpp:34</a></div></div>
117
118
  <div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
118
119
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00046">SVFIRBuilder.h:46</a></div></div>
119
120
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a2f8e91c075d90be66412a079fe73e936"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a></div><div class="ttdeci">static void releaseLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00077">LLVMModule.h:77</a></div></div>
120
121
  <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &amp;arg_num, char **arg_value, std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00427">LLVMUtil.cpp:427</a></div></div>
121
122
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
122
123
  <div class="ttc" id="classSVF_1_1SVFModule_html_aa03ab5272652290f30870c6e2d053d98"><div class="ttname"><a href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">SVF::SVFModule::buildSymbolTableInfo</a></div><div class="ttdeci">void buildSymbolTableInfo()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8cpp_source.html#l00030">SVFModule.cpp:30</a></div></div>
123
- <div class="ttc" id="classSVF_1_1CFLAlias_html_acc3a9c19cc140aef48712b5c68240454"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#acc3a9c19cc140aef48712b5c68240454">SVF::CFLAlias::analyze</a></div><div class="ttdeci">virtual void analyze()</div><div class="ttdoc">Start Analysis here (main part of pointer analysis). </div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00060">CFLAlias.h:60</a></div></div>
124
124
  </div><!-- fragment -->
125
125
  </div>
126
126
  </div>
@@ -66,10 +66,11 @@ $(function() {
66
66
  <div class="title">cfl.cpp</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="cfl_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- cfl.cpp -- A driver of CFL Reachability Analysis-------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===-----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> // A driver of CFL Reachability Analysis</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> //</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> // Author: Yulei Sui,</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LLVMUtil_8h.html">SVF-FE/LLVMUtil.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="CFLAlias_8h.html">CFL/CFLAlias.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Options_8h.html">Util/Options.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFIRBuilder_8h.html">SVF-FE/SVFIRBuilder.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="CFGNormalizer_8h.html">CFL/CFGNormalizer.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacellvm.html">llvm</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">static</span> cl::opt&lt;bool&gt;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<a class="code" href="cfl_8cpp.html#afffbd7760f0128b74c9dbfd517d0f99e">StandardCompileOpts</a>(<span class="stringliteral">&quot;std-compile-opts&quot;</span>,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; cl::desc(<span class="stringliteral">&quot;Include the standard compile time optimizations&quot;</span>));</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="cfl_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 43</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="cfl_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> ** argv)</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">int</span> arg_num = 0;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">LLVMUtil::processArguments</a>(argc, argv, arg_num, arg_value, moduleNameVec);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; cl::ParseCommandLineOptions(arg_num, arg_value,</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="stringliteral">&quot;CFL Reachability Analysis\n&quot;</span>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; LLVMModuleSet::getLLVMModuleSet()-&gt;preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">if</span> (Options::GraphIsFromDot == <span class="keyword">false</span>)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()-&gt;buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">buildSymbolTableInfo</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* svfir = builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#aa6d56f9580f76fd09d25ce6cf7541e98">build</a>(svfModule);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="classSVF_1_1CFLAlias.html">CFLAlias</a>* cflaa = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLAlias.html">CFLAlias</a>(svfir);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; cflaa-&gt;<a class="code" href="classSVF_1_1CFLAlias.html#acc3a9c19cc140aef48712b5c68240454">analyze</a>();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">delete</span> cflaa;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* svfir = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classSVF_1_1CFLAlias.html">CFLAlias</a>* cflaa = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLAlias.html">CFLAlias</a>(svfir);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; cflaa-&gt;<a class="code" href="classSVF_1_1CFLAlias.html#acc3a9c19cc140aef48712b5c68240454">analyze</a>();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">delete</span> cflaa;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; SVFIR::releaseSVFIR();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;}</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="ttc" id="classSVF_1_1CFLAlias_html"><div class="ttname"><a href="classSVF_1_1CFLAlias.html">SVF::CFLAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00043">CFLAlias.h:43</a></div></div>
69
+ <a href="cfl_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- cfl.cpp -- A driver of CFL Reachability Analysis-------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===-----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> // A driver of CFL Reachability Analysis</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> //</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> // Author: Yulei Sui,</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LLVMUtil_8h.html">SVF-FE/LLVMUtil.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="CFLAlias_8h.html">CFL/CFLAlias.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Options_8h.html">Util/Options.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFIRBuilder_8h.html">SVF-FE/SVFIRBuilder.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="CFGNormalizer_8h.html">CFL/CFGNormalizer.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacellvm.html">llvm</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">static</span> cl::opt&lt;bool&gt;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<a class="code" href="cfl_8cpp.html#afffbd7760f0128b74c9dbfd517d0f99e">StandardCompileOpts</a>(<span class="stringliteral">&quot;std-compile-opts&quot;</span>,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; cl::desc(<span class="stringliteral">&quot;Include the standard compile time optimizations&quot;</span>));</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="cfl_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 43</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="cfl_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> ** argv)</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">int</span> arg_num = 0;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">LLVMUtil::processArguments</a>(argc, argv, arg_num, arg_value, moduleNameVec);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; cl::ParseCommandLineOptions(arg_num, arg_value,</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="stringliteral">&quot;CFL Reachability Analysis\n&quot;</span>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; LLVMModuleSet::getLLVMModuleSet()-&gt;preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">if</span> (Options::GraphIsFromDot == <span class="keyword">false</span>)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()-&gt;buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">buildSymbolTableInfo</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* svfir = builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#aa6d56f9580f76fd09d25ce6cf7541e98">build</a>(svfModule);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="classSVF_1_1CFLAlias.html">CFLAlias</a>* cflaa = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLAlias.html">CFLAlias</a>(svfir);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; cflaa-&gt;<a class="code" href="classSVF_1_1CFLAlias.html#afc6922e9f1965ed85ef87151e00f5311">analyze</a>();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">delete</span> cflaa;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* svfir = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classSVF_1_1CFLAlias.html">CFLAlias</a>* cflaa = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLAlias.html">CFLAlias</a>(svfir);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; cflaa-&gt;<a class="code" href="classSVF_1_1CFLAlias.html#afc6922e9f1965ed85ef87151e00f5311">analyze</a>();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">delete</span> cflaa;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; SVFIR::releaseSVFIR();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;}</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="ttc" id="classSVF_1_1CFLAlias_html"><div class="ttname"><a href="classSVF_1_1CFLAlias.html">SVF::CFLAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00043">CFLAlias.h:43</a></div></div>
70
70
  <div class="ttc" id="cfl_8cpp_html_afffbd7760f0128b74c9dbfd517d0f99e"><div class="ttname"><a href="cfl_8cpp.html#afffbd7760f0128b74c9dbfd517d0f99e">StandardCompileOpts</a></div><div class="ttdeci">static cl::opt&lt; bool &gt; StandardCompileOpts(&quot;std-compile-opts&quot;, cl::desc(&quot;Include the standard compile time optimizations&quot;))</div></div>
71
- <div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00107">CFLGraph.h:107</a></div></div>
71
+ <div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00119">CFLGraph.h:119</a></div></div>
72
72
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_aa6d56f9580f76fd09d25ce6cf7541e98"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#aa6d56f9580f76fd09d25ce6cf7541e98">SVF::SVFIRBuilder::build</a></div><div class="ttdeci">virtual SVFIR * build(SVFModule *svfModule)</div><div class="ttdoc">Start building SVFIR here. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00050">SVFIRBuilder.cpp:50</a></div></div>
73
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_afc6922e9f1965ed85ef87151e00f5311"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#afc6922e9f1965ed85ef87151e00f5311">SVF::CFLAlias::analyze</a></div><div class="ttdeci">virtual void analyze()</div><div class="ttdoc">Start Analysis here (main part of pointer analysis). </div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8cpp_source.html#l00034">CFLAlias.cpp:34</a></div></div>
73
74
  <div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
74
75
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00046">SVFIRBuilder.h:46</a></div></div>
75
76
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a2f8e91c075d90be66412a079fe73e936"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a></div><div class="ttdeci">static void releaseLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00077">LLVMModule.h:77</a></div></div>
@@ -82,7 +83,6 @@ $(function() {
82
83
  <div class="ttc" id="CFLAlias_8h_html"><div class="ttname"><a href="CFLAlias_8h.html">CFLAlias.h</a></div></div>
83
84
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
84
85
  <div class="ttc" id="classSVF_1_1SVFModule_html_aa03ab5272652290f30870c6e2d053d98"><div class="ttname"><a href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">SVF::SVFModule::buildSymbolTableInfo</a></div><div class="ttdeci">void buildSymbolTableInfo()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8cpp_source.html#l00030">SVFModule.cpp:30</a></div></div>
85
- <div class="ttc" id="classSVF_1_1CFLAlias_html_acc3a9c19cc140aef48712b5c68240454"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#acc3a9c19cc140aef48712b5c68240454">SVF::CFLAlias::analyze</a></div><div class="ttdeci">virtual void analyze()</div><div class="ttdoc">Start Analysis here (main part of pointer analysis). </div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00060">CFLAlias.h:60</a></div></div>
86
86
  <div class="ttc" id="LLVMUtil_8h_html"><div class="ttname"><a href="LLVMUtil_8h.html">LLVMUtil.h</a></div></div>
87
87
  </div><!-- fragment --></div><!-- contents -->
88
88
  <!-- start footer part -->
@@ -0,0 +1,96 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+ <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+ <meta name="generator" content="Doxygen 1.8.13"/>
7
+ <meta name="viewport" content="width=device-width, initial-scale=1"/>
8
+ <title>Static Value-Flow Analysis: Member List</title>
9
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
10
+ <script type="text/javascript" src="jquery.js"></script>
11
+ <script type="text/javascript" src="dynsections.js"></script>
12
+ <link href="search/search.css" rel="stylesheet" type="text/css"/>
13
+ <script type="text/javascript" src="search/searchdata.js"></script>
14
+ <script type="text/javascript" src="search/search.js"></script>
15
+ <link href="doxygen.css" rel="stylesheet" type="text/css" />
16
+ </head>
17
+ <body>
18
+ <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
19
+ <div id="titlearea">
20
+ <table cellspacing="0" cellpadding="0">
21
+ <tbody>
22
+ <tr style="height: 56px;">
23
+ <td id="projectalign" style="padding-left: 0.5em;">
24
+ <div id="projectname">Static Value-Flow Analysis
25
+ </div>
26
+ </td>
27
+ </tr>
28
+ </tbody>
29
+ </table>
30
+ </div>
31
+ <!-- end header part -->
32
+ <!-- Generated by Doxygen 1.8.13 -->
33
+ <script type="text/javascript">
34
+ var searchBox = new SearchBox("searchBox", "search",false,'Search');
35
+ </script>
36
+ <script type="text/javascript" src="menudata.js"></script>
37
+ <script type="text/javascript" src="menu.js"></script>
38
+ <script type="text/javascript">
39
+ $(function() {
40
+ initMenu('',true,false,'search.php','Search');
41
+ $(document).ready(function() { init_search(); });
42
+ });
43
+ </script>
44
+ <div id="main-nav"></div>
45
+ <!-- window showing the filter options -->
46
+ <div id="MSearchSelectWindow"
47
+ onmouseover="return searchBox.OnSearchSelectShow()"
48
+ onmouseout="return searchBox.OnSearchSelectHide()"
49
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
50
+ </div>
51
+
52
+ <!-- iframe showing the search results (closed by default) -->
53
+ <div id="MSearchResultsWindow">
54
+ <iframe src="javascript:void(0)" frameborder="0"
55
+ name="MSearchResults" id="MSearchResults">
56
+ </iframe>
57
+ </div>
58
+
59
+ <div id="nav-path" class="navpath">
60
+ <ul>
61
+ <li class="navelem"><a class="el" href="namespaceSVF.html">SVF</a></li><li class="navelem"><a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html">AliasCFLGraphBuilder</a></li> </ul>
62
+ </div>
63
+ </div><!-- top -->
64
+ <div class="header">
65
+ <div class="headertitle">
66
+ <div class="title">SVF::AliasCFLGraphBuilder Member List</div> </div>
67
+ </div><!--header-->
68
+ <div class="contents">
69
+
70
+ <p>This is the complete list of members for <a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html">SVF::AliasCFLGraphBuilder</a>, including all inherited members.</p>
71
+ <table class="directory">
72
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#adaa843018284f854ed0ad3bcb1460a01">addAttribute</a>(CFLGrammar::Kind kind, CFLGrammar::Attribute attribute)</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"></td></tr>
73
+ <tr><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#ab0d2bd46dd1c3be10c04f573e9365757">build</a>(GenericGraph&lt; N, E &gt; *graph, CFLGraph *cflGraph)</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
74
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a5944c6a36e150a50a54aedd622c43ff9">build</a>(std::string filename, CFLGraph *cflGraph)</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"></td></tr>
75
+ <tr><td class="entry"><a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html#ab19243c4aceffce7b257f3d8cb3050fd">buildBigraph</a>(ConstraintGraph *graph, Kind startKind, GrammarBase *grammar)</td><td class="entry"><a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html">SVF::AliasCFLGraphBuilder</a></td><td class="entry"></td></tr>
76
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a0184dc6e00c60106034492d012d0a938">SVF::CFLGraphBuilder::buildBigraph</a>(GenericGraph&lt; N, E &gt; *graph, Kind startKind, GrammarBase *grammar)</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
77
+ <tr><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a6c9fa25204550dc5bea1cae52a61472b">buildFromDot</a>(std::string filename, GrammarBase *grammar)</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"></td></tr>
78
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a></td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
79
+ <tr><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a91f1f0e8abc8d781eaf8b1a4f025c18e">externMap</a></td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
80
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a61d935099e0f8408fb2f2f91001cb2fd">getKind2AttrsMap</a>()</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
81
+ <tr><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#ac8482350ceb21d626dcf1f30db737acd">getKind2LabelMap</a>()</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
82
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#afd384231987ab2be138ddb4a8590bc53">getLabel2KindMap</a>()</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
83
+ <tr><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a20299631d2b85507af6d81861736db5e">Kind</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
84
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a5159cea5bc8d69715782ac5f56965a90">kind2AttrsMap</a></td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
85
+ <tr><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a></td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
86
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a></td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
87
+ <tr><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a36c5b874527e7694f7fb2fd7291da0da">Symbol</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
88
+ </table></div><!-- contents -->
89
+ <!-- start footer part -->
90
+ <hr class="footer"/><address class="footer"><small>
91
+ Generated by &#160;<a href="http://www.doxygen.org/index.html">
92
+ <img class="footer" src="doxygen.png" alt="doxygen"/>
93
+ </a> 1.8.13
94
+ </small></address>
95
+ </body>
96
+ </html>
@@ -0,0 +1,197 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+ <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+ <meta name="generator" content="Doxygen 1.8.13"/>
7
+ <meta name="viewport" content="width=device-width, initial-scale=1"/>
8
+ <title>Static Value-Flow Analysis: SVF::AliasCFLGraphBuilder Class Reference</title>
9
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
10
+ <script type="text/javascript" src="jquery.js"></script>
11
+ <script type="text/javascript" src="dynsections.js"></script>
12
+ <link href="search/search.css" rel="stylesheet" type="text/css"/>
13
+ <script type="text/javascript" src="search/searchdata.js"></script>
14
+ <script type="text/javascript" src="search/search.js"></script>
15
+ <link href="doxygen.css" rel="stylesheet" type="text/css" />
16
+ </head>
17
+ <body>
18
+ <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
19
+ <div id="titlearea">
20
+ <table cellspacing="0" cellpadding="0">
21
+ <tbody>
22
+ <tr style="height: 56px;">
23
+ <td id="projectalign" style="padding-left: 0.5em;">
24
+ <div id="projectname">Static Value-Flow Analysis
25
+ </div>
26
+ </td>
27
+ </tr>
28
+ </tbody>
29
+ </table>
30
+ </div>
31
+ <!-- end header part -->
32
+ <!-- Generated by Doxygen 1.8.13 -->
33
+ <script type="text/javascript">
34
+ var searchBox = new SearchBox("searchBox", "search",false,'Search');
35
+ </script>
36
+ <script type="text/javascript" src="menudata.js"></script>
37
+ <script type="text/javascript" src="menu.js"></script>
38
+ <script type="text/javascript">
39
+ $(function() {
40
+ initMenu('',true,false,'search.php','Search');
41
+ $(document).ready(function() { init_search(); });
42
+ });
43
+ </script>
44
+ <div id="main-nav"></div>
45
+ <!-- window showing the filter options -->
46
+ <div id="MSearchSelectWindow"
47
+ onmouseover="return searchBox.OnSearchSelectShow()"
48
+ onmouseout="return searchBox.OnSearchSelectHide()"
49
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
50
+ </div>
51
+
52
+ <!-- iframe showing the search results (closed by default) -->
53
+ <div id="MSearchResultsWindow">
54
+ <iframe src="javascript:void(0)" frameborder="0"
55
+ name="MSearchResults" id="MSearchResults">
56
+ </iframe>
57
+ </div>
58
+
59
+ <div id="nav-path" class="navpath">
60
+ <ul>
61
+ <li class="navelem"><a class="el" href="namespaceSVF.html">SVF</a></li><li class="navelem"><a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html">AliasCFLGraphBuilder</a></li> </ul>
62
+ </div>
63
+ </div><!-- top -->
64
+ <div class="header">
65
+ <div class="summary">
66
+ <a href="#pub-methods">Public Member Functions</a> &#124;
67
+ <a href="classSVF_1_1AliasCFLGraphBuilder-members.html">List of all members</a> </div>
68
+ <div class="headertitle">
69
+ <div class="title">SVF::AliasCFLGraphBuilder Class Reference</div> </div>
70
+ </div><!--header-->
71
+ <div class="contents">
72
+
73
+ <p><code>#include &lt;<a class="el" href="CFLGraphBuilder_8h_source.html">CFLGraphBuilder.h</a>&gt;</code></p>
74
+ <div class="dynheader">
75
+ Inheritance diagram for SVF::AliasCFLGraphBuilder:</div>
76
+ <div class="dyncontent">
77
+ <div class="center">
78
+ <img src="classSVF_1_1AliasCFLGraphBuilder.png" usemap="#SVF::AliasCFLGraphBuilder_map" alt=""/>
79
+ <map id="SVF::AliasCFLGraphBuilder_map" name="SVF::AliasCFLGraphBuilder_map">
80
+ <area href="classSVF_1_1CFLGraphBuilder.html" alt="SVF::CFLGraphBuilder" shape="rect" coords="0,0,170,24"/>
81
+ </map>
82
+ </div></div>
83
+ <table class="memberdecls">
84
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
85
+ Public Member Functions</h2></td></tr>
86
+ <tr class="memitem:ab19243c4aceffce7b257f3d8cb3050fd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html#ab19243c4aceffce7b257f3d8cb3050fd">buildBigraph</a> (<a class="el" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a> *graph, <a class="el" href="classSVF_1_1CFLGraphBuilder.html#a20299631d2b85507af6d81861736db5e">Kind</a> startKind, <a class="el" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar)</td></tr>
87
+ <tr class="memdesc:ab19243c4aceffce7b257f3d8cb3050fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build Bidirectional graph by copying nodes and edges from const graph inherited from <a class="el" href="classSVF_1_1GenericGraph.html">GenericGraph</a>. <a href="#ab19243c4aceffce7b257f3d8cb3050fd">More...</a><br /></td></tr>
88
+ <tr class="separator:ab19243c4aceffce7b257f3d8cb3050fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
89
+ <tr class="inherit_header pub_methods_classSVF_1_1CFLGraphBuilder"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSVF_1_1CFLGraphBuilder')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td></tr>
90
+ <tr class="memitem:adaa843018284f854ed0ad3bcb1460a01 inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#adaa843018284f854ed0ad3bcb1460a01">addAttribute</a> (<a class="el" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFLGrammar::Kind</a> kind, <a class="el" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFLGrammar::Attribute</a> attribute)</td></tr>
91
+ <tr class="memdesc:adaa843018284f854ed0ad3bcb1460a01 inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="mdescLeft">&#160;</td><td class="mdescRight">add attribute to kind2Attribute Map <a href="classSVF_1_1CFLGraphBuilder.html#adaa843018284f854ed0ad3bcb1460a01">More...</a><br /></td></tr>
92
+ <tr class="separator:adaa843018284f854ed0ad3bcb1460a01 inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="memSeparator" colspan="2">&#160;</td></tr>
93
+ <tr class="memitem:ab0d2bd46dd1c3be10c04f573e9365757 inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="memTemplParams" colspan="2">template&lt;class N , class E &gt; </td></tr>
94
+ <tr class="memitem:ab0d2bd46dd1c3be10c04f573e9365757 inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#ab0d2bd46dd1c3be10c04f573e9365757">build</a> (<a class="el" href="classSVF_1_1GenericGraph.html">GenericGraph</a>&lt; N, E &gt; *graph, <a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> *cflGraph)</td></tr>
95
+ <tr class="memdesc:ab0d2bd46dd1c3be10c04f573e9365757 inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build graph by copying nodes and edges from any graph inherited from <a class="el" href="classSVF_1_1GenericGraph.html">GenericGraph</a>. <a href="classSVF_1_1CFLGraphBuilder.html#ab0d2bd46dd1c3be10c04f573e9365757">More...</a><br /></td></tr>
96
+ <tr class="separator:ab0d2bd46dd1c3be10c04f573e9365757 inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="memSeparator" colspan="2">&#160;</td></tr>
97
+ <tr class="memitem:a0184dc6e00c60106034492d012d0a938 inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="memTemplParams" colspan="2">template&lt;class N , class E &gt; </td></tr>
98
+ <tr class="memitem:a0184dc6e00c60106034492d012d0a938 inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a0184dc6e00c60106034492d012d0a938">buildBigraph</a> (<a class="el" href="classSVF_1_1GenericGraph.html">GenericGraph</a>&lt; N, E &gt; *graph, <a class="el" href="classSVF_1_1CFLGraphBuilder.html#a20299631d2b85507af6d81861736db5e">Kind</a> startKind, <a class="el" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar)</td></tr>
99
+ <tr class="memdesc:a0184dc6e00c60106034492d012d0a938 inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build Bidirectional graph by copying nodes and edges from any graph inherited from <a class="el" href="classSVF_1_1GenericGraph.html">GenericGraph</a>. <a href="classSVF_1_1CFLGraphBuilder.html#a0184dc6e00c60106034492d012d0a938">More...</a><br /></td></tr>
100
+ <tr class="separator:a0184dc6e00c60106034492d012d0a938 inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="memSeparator" colspan="2">&#160;</td></tr>
101
+ <tr class="memitem:a5944c6a36e150a50a54aedd622c43ff9 inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a5944c6a36e150a50a54aedd622c43ff9">build</a> (<a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> filename, <a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> *cflGraph)</td></tr>
102
+ <tr class="memdesc:a5944c6a36e150a50a54aedd622c43ff9 inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build graph from file. <a href="classSVF_1_1CFLGraphBuilder.html#a5944c6a36e150a50a54aedd622c43ff9">More...</a><br /></td></tr>
103
+ <tr class="separator:a5944c6a36e150a50a54aedd622c43ff9 inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="memSeparator" colspan="2">&#160;</td></tr>
104
+ <tr class="memitem:a6c9fa25204550dc5bea1cae52a61472b inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a6c9fa25204550dc5bea1cae52a61472b">buildFromDot</a> (<a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> filename, <a class="el" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar)</td></tr>
105
+ <tr class="memdesc:a6c9fa25204550dc5bea1cae52a61472b inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build graph from Dot. <a href="classSVF_1_1CFLGraphBuilder.html#a6c9fa25204550dc5bea1cae52a61472b">More...</a><br /></td></tr>
106
+ <tr class="separator:a6c9fa25204550dc5bea1cae52a61472b inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="memSeparator" colspan="2">&#160;</td></tr>
107
+ <tr class="memitem:afd384231987ab2be138ddb4a8590bc53 inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>, <a class="el" href="classSVF_1_1CFLGraphBuilder.html#a20299631d2b85507af6d81861736db5e">Kind</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#afd384231987ab2be138ddb4a8590bc53">getLabel2KindMap</a> ()</td></tr>
108
+ <tr class="separator:afd384231987ab2be138ddb4a8590bc53 inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="memSeparator" colspan="2">&#160;</td></tr>
109
+ <tr class="memitem:ac8482350ceb21d626dcf1f30db737acd inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="classSVF_1_1CFLGraphBuilder.html#a20299631d2b85507af6d81861736db5e">Kind</a>, <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#ac8482350ceb21d626dcf1f30db737acd">getKind2LabelMap</a> ()</td></tr>
110
+ <tr class="separator:ac8482350ceb21d626dcf1f30db737acd inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="memSeparator" colspan="2">&#160;</td></tr>
111
+ <tr class="memitem:a61d935099e0f8408fb2f2f91001cb2fd inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFLGrammar::Kind</a>, <a class="el" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set</a>&lt; <a class="el" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFLGrammar::Attribute</a> &gt; &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a61d935099e0f8408fb2f2f91001cb2fd">getKind2AttrsMap</a> ()</td></tr>
112
+ <tr class="separator:a61d935099e0f8408fb2f2f91001cb2fd inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="memSeparator" colspan="2">&#160;</td></tr>
113
+ </table><table class="memberdecls">
114
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
115
+ Additional Inherited Members</h2></td></tr>
116
+ <tr class="inherit_header pro_types_classSVF_1_1CFLGraphBuilder"><td colspan="2" onclick="javascript:toggleInherit('pro_types_classSVF_1_1CFLGraphBuilder')"><img src="closed.png" alt="-"/>&#160;Protected Types inherited from <a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td></tr>
117
+ <tr class="memitem:a20299631d2b85507af6d81861736db5e inherit pro_types_classSVF_1_1CFLGraphBuilder"><td class="memItemLeft" align="right" valign="top">typedef CFLGrammar::Kind&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a20299631d2b85507af6d81861736db5e">Kind</a></td></tr>
118
+ <tr class="separator:a20299631d2b85507af6d81861736db5e inherit pro_types_classSVF_1_1CFLGraphBuilder"><td class="memSeparator" colspan="2">&#160;</td></tr>
119
+ <tr class="memitem:a36c5b874527e7694f7fb2fd7291da0da inherit pro_types_classSVF_1_1CFLGraphBuilder"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structSVF_1_1GrammarBase_1_1Symbol.html">CFLGrammar::Symbol</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a36c5b874527e7694f7fb2fd7291da0da">Symbol</a></td></tr>
120
+ <tr class="separator:a36c5b874527e7694f7fb2fd7291da0da inherit pro_types_classSVF_1_1CFLGraphBuilder"><td class="memSeparator" colspan="2">&#160;</td></tr>
121
+ <tr class="inherit_header pro_attribs_classSVF_1_1CFLGraphBuilder"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classSVF_1_1CFLGraphBuilder')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td></tr>
122
+ <tr class="memitem:a7117dbeceeef7a9fcaeee0a84a171590 inherit pro_attribs_classSVF_1_1CFLGraphBuilder"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>, <a class="el" href="classSVF_1_1CFLGraphBuilder.html#a20299631d2b85507af6d81861736db5e">Kind</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a></td></tr>
123
+ <tr class="separator:a7117dbeceeef7a9fcaeee0a84a171590 inherit pro_attribs_classSVF_1_1CFLGraphBuilder"><td class="memSeparator" colspan="2">&#160;</td></tr>
124
+ <tr class="memitem:a461ff21d73f60cf96a3e36672d4c6a6c inherit pro_attribs_classSVF_1_1CFLGraphBuilder"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="classSVF_1_1CFLGraphBuilder.html#a20299631d2b85507af6d81861736db5e">Kind</a>, <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a></td></tr>
125
+ <tr class="separator:a461ff21d73f60cf96a3e36672d4c6a6c inherit pro_attribs_classSVF_1_1CFLGraphBuilder"><td class="memSeparator" colspan="2">&#160;</td></tr>
126
+ <tr class="memitem:a5159cea5bc8d69715782ac5f56965a90 inherit pro_attribs_classSVF_1_1CFLGraphBuilder"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFLGrammar::Kind</a>, <a class="el" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set</a>&lt; <a class="el" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFLGrammar::Attribute</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a5159cea5bc8d69715782ac5f56965a90">kind2AttrsMap</a></td></tr>
127
+ <tr class="separator:a5159cea5bc8d69715782ac5f56965a90 inherit pro_attribs_classSVF_1_1CFLGraphBuilder"><td class="memSeparator" colspan="2">&#160;</td></tr>
128
+ <tr class="memitem:a91f1f0e8abc8d781eaf8b1a4f025c18e inherit pro_attribs_classSVF_1_1CFLGraphBuilder"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a91f1f0e8abc8d781eaf8b1a4f025c18e">externMap</a></td></tr>
129
+ <tr class="separator:a91f1f0e8abc8d781eaf8b1a4f025c18e inherit pro_attribs_classSVF_1_1CFLGraphBuilder"><td class="memSeparator" colspan="2">&#160;</td></tr>
130
+ <tr class="memitem:aad408d6ecb776fd763c9b9221a1bed18 inherit pro_attribs_classSVF_1_1CFLGraphBuilder"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a20299631d2b85507af6d81861736db5e">Kind</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a></td></tr>
131
+ <tr class="separator:aad408d6ecb776fd763c9b9221a1bed18 inherit pro_attribs_classSVF_1_1CFLGraphBuilder"><td class="memSeparator" colspan="2">&#160;</td></tr>
132
+ </table>
133
+ <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
134
+ <div class="textblock">
135
+ <p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#l00143">143</a> of file <a class="el" href="CFLGraphBuilder_8h_source.html">CFLGraphBuilder.h</a>.</p>
136
+ </div><h2 class="groupheader">Member Function Documentation</h2>
137
+ <a id="ab19243c4aceffce7b257f3d8cb3050fd"></a>
138
+ <h2 class="memtitle"><span class="permalink"><a href="#ab19243c4aceffce7b257f3d8cb3050fd">&#9670;&nbsp;</a></span>buildBigraph()</h2>
139
+
140
+ <div class="memitem">
141
+ <div class="memproto">
142
+ <table class="memname">
143
+ <tr>
144
+ <td class="memname"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> * SVF::AliasCFLGraphBuilder::buildBigraph </td>
145
+ <td>(</td>
146
+ <td class="paramtype"><a class="el" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a> *&#160;</td>
147
+ <td class="paramname"><em>graph</em>, </td>
148
+ </tr>
149
+ <tr>
150
+ <td class="paramkey"></td>
151
+ <td></td>
152
+ <td class="paramtype"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a20299631d2b85507af6d81861736db5e">Kind</a>&#160;</td>
153
+ <td class="paramname"><em>startKind</em>, </td>
154
+ </tr>
155
+ <tr>
156
+ <td class="paramkey"></td>
157
+ <td></td>
158
+ <td class="paramtype"><a class="el" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *&#160;</td>
159
+ <td class="paramname"><em>grammar</em>&#160;</td>
160
+ </tr>
161
+ <tr>
162
+ <td></td>
163
+ <td>)</td>
164
+ <td></td><td></td>
165
+ </tr>
166
+ </table>
167
+ </div><div class="memdoc">
168
+
169
+ <p>Build Bidirectional graph by copying nodes and edges from const graph inherited from <a class="el" href="classSVF_1_1GenericGraph.html">GenericGraph</a>. </p>
170
+
171
+ <p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8cpp_source.html#l00162">162</a> of file <a class="el" href="CFLGraphBuilder_8cpp_source.html">CFLGraphBuilder.cpp</a>.</p>
172
+ <div class="fragment"><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;{</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; CFLGraph *cflGraph = <span class="keyword">new</span> CFLGraph(startKind);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a91f1f0e8abc8d781eaf8b1a4f025c18e">externMap</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> pairV : grammar-&gt;getTerminals())</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(pairV.first) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; {</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert(pairV);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.find(pairV.second) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.end())</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.insert(make_pair(pairV.second, pairV.first));</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> pairV : grammar-&gt;getNonterminals())</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(pairV.first) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert(pairV);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.find(pairV.second) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.end())</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.insert(make_pair(pairV.second, pairV.first));</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = graph-&gt;begin(); it!= graph-&gt;end(); it++)</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; CFLNode* node = <span class="keyword">new</span> CFLNode((*it).first);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; cflGraph-&gt;addCFLNode((*it).first, node);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = graph-&gt;begin(); it!= graph-&gt;end(); it++)</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; ConstraintNode* node = (*it).second;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">for</span>(ConstraintEdge* edge : node-&gt;getOutEdges())</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFLGrammar::Kind</a> edgeLabel = edge-&gt;getEdgeKind();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="comment">// Need to get the offset from the Const Edge</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="comment">// The offset present edge is only from Normal Gep CG at moment</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1NormalGepCGEdge.html#a79033645683ead9a7404cd35fd936092">NormalGepCGEdge::classof</a>(edge))</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; NormalGepCGEdge *nGepEdge = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;NormalGepCGEdge&gt;(edge);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFLGrammar::Attribute</a> attr = nGepEdge-&gt;getConstantFieldIdx();</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#adaa843018284f854ed0ad3bcb1460a01">addAttribute</a>(edgeLabel, attr);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; edgeLabel = <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFLGrammar::getAttributedKind</a>(attr, edgeLabel);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(edge-&gt;getSrcID()), cflGraph-&gt;getGNode(edge-&gt;getDstID()), edgeLabel);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[edge-&gt;getEdgeKind()];</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; key.append(<span class="stringliteral">&quot;bar&quot;</span>); <span class="comment">// for example Gep_i should be Gepbar_i, not Gep_ibar</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(edge-&gt;getDstID()), cflGraph-&gt;getGNode(edge-&gt;getSrcID()), <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFLGrammar::getAttributedKind</a>(attr, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]));</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#adaa843018284f854ed0ad3bcb1460a01">addAttribute</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key], attr);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(edge-&gt;getSrcID()), cflGraph-&gt;getGNode(edge-&gt;getDstID()), edgeLabel);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[edge-&gt;getEdgeKind()];</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; key.append(<span class="stringliteral">&quot;bar&quot;</span>);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(edge-&gt;getDstID()), cflGraph-&gt;getGNode(edge-&gt;getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> cflGraph;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;}</div><div class="ttc" id="classSVF_1_1GrammarBase_html_ab070e5449d26e347b957d8b994d0303f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">SVF::GrammarBase::Attribute</a></div><div class="ttdeci">u32_t Attribute</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00040">CFLGrammar.h:40</a></div></div>
173
+ <div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_adaa843018284f854ed0ad3bcb1460a01"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#adaa843018284f854ed0ad3bcb1460a01">SVF::CFLGraphBuilder::addAttribute</a></div><div class="ttdeci">void addAttribute(CFLGrammar::Kind kind, CFLGrammar::Attribute attribute)</div><div class="ttdoc">add attribute to kind2Attribute Map </div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00037">CFLGraphBuilder.cpp:37</a></div></div>
174
+ <div class="ttc" id="classSVF_1_1GrammarBase_html_af418e1033618da75e974a04ee1d7e275"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">SVF::GrammarBase::getAttributedKind</a></div><div class="ttdeci">static Kind getAttributedKind(Attribute attribute, Kind kind)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00270">CFLGrammar.h:270</a></div></div>
175
+ <div class="ttc" id="classSVF_1_1GrammarBase_html_a7aef5c42fbd8a62dd4a541cc0e8e8187"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">SVF::GrammarBase::Kind</a></div><div class="ttdeci">u32_t Kind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00039">CFLGrammar.h:39</a></div></div>
176
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
177
+ <div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a7117dbeceeef7a9fcaeee0a84a171590"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">SVF::CFLGraphBuilder::label2KindMap</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; label2KindMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00045">CFLGraphBuilder.h:45</a></div></div>
178
+ <div class="ttc" id="classSVF_1_1NormalGepCGEdge_html_a79033645683ead9a7404cd35fd936092"><div class="ttname"><a href="classSVF_1_1NormalGepCGEdge.html#a79033645683ead9a7404cd35fd936092">SVF::NormalGepCGEdge::classof</a></div><div class="ttdeci">static bool classof(const NormalGepCGEdge *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00277">ConsGEdge.h:277</a></div></div>
179
+ <div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a461ff21d73f60cf96a3e36672d4c6a6c"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">SVF::CFLGraphBuilder::kind2LabelMap</a></div><div class="ttdeci">Map&lt; Kind, std::string &gt; kind2LabelMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00046">CFLGraphBuilder.h:46</a></div></div>
180
+ <div class="ttc" id="cJSON_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>
181
+ <div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a91f1f0e8abc8d781eaf8b1a4f025c18e"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a91f1f0e8abc8d781eaf8b1a4f025c18e">SVF::CFLGraphBuilder::externMap</a></div><div class="ttdeci">bool externMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00048">CFLGraphBuilder.h:48</a></div></div>
182
+ </div><!-- fragment -->
183
+ </div>
184
+ </div>
185
+ <hr/>The documentation for this class was generated from the following files:<ul>
186
+ <li>/home/runner/work/SVF/SVF/include/CFL/<a class="el" href="CFLGraphBuilder_8h_source.html">CFLGraphBuilder.h</a></li>
187
+ <li>/home/runner/work/SVF/SVF/lib/CFL/<a class="el" href="CFLGraphBuilder_8cpp_source.html">CFLGraphBuilder.cpp</a></li>
188
+ </ul>
189
+ </div><!-- contents -->
190
+ <!-- start footer part -->
191
+ <hr class="footer"/><address class="footer"><small>
192
+ Generated by &#160;<a href="http://www.doxygen.org/index.html">
193
+ <img class="footer" src="doxygen.png" alt="doxygen"/>
194
+ </a> 1.8.13
195
+ </small></address>
196
+ </body>
197
+ </html>