svf-tools 1.0.786 → 1.0.788

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 (299) hide show
  1. package/SVF-doxygen/html/CDGBuilder_8cpp_source.html +128 -122
  2. package/SVF-doxygen/html/CDGBuilder_8h_source.html +5 -5
  3. package/SVF-doxygen/html/CFBasicBlockGBuilder_8cpp.html +92 -0
  4. package/SVF-doxygen/html/CFBasicBlockGBuilder_8cpp_source.html +291 -0
  5. package/SVF-doxygen/html/CFBasicBlockGBuilder_8h.html +98 -0
  6. package/SVF-doxygen/html/CFBasicBlockGBuilder_8h_source.html +154 -0
  7. package/SVF-doxygen/html/CFBasicBlockG_8cpp_source.html +49 -184
  8. package/SVF-doxygen/html/CFBasicBlockG_8h.html +0 -2
  9. package/SVF-doxygen/html/CFBasicBlockG_8h_source.html +509 -506
  10. package/SVF-doxygen/html/CHG_8cpp.html +2 -2
  11. package/SVF-doxygen/html/CHG_8cpp_source.html +3 -3
  12. package/SVF-doxygen/html/MemSSA_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +2 -2
  14. package/SVF-doxygen/html/SVFG_8cpp_source.html +1 -1
  15. package/SVF-doxygen/html/SVFUtil_8cpp_source.html +2 -2
  16. package/SVF-doxygen/html/SVFValue_8cpp_source.html +144 -141
  17. package/SVF-doxygen/html/SVFValue_8h_source.html +9 -9
  18. package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +2 -2
  19. package/SVF-doxygen/html/VFG_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/WTO_8h_source.html +424 -372
  21. package/SVF-doxygen/html/classSVF_1_1CDGBuilder.html +119 -113
  22. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGBuilder-members.html +4 -1
  23. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGBuilder.html +302 -124
  24. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO-members.html +48 -47
  25. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO.html +306 -236
  26. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTOCycle.html +1 -1
  27. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTONode.html +1 -1
  28. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder-members.html +15 -14
  29. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html +90 -44
  30. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO_1_1WTOCycleDepthBuilder.html +26 -26
  31. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGraph-members.html +32 -36
  32. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGraph.html +121 -254
  33. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockNode-members.html +46 -47
  34. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockNode.html +185 -225
  35. package/SVF-doxygen/html/classSVF_1_1CHGraph.html +2 -2
  36. package/SVF-doxygen/html/classSVF_1_1MemSSA.html +1 -1
  37. package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +2 -2
  38. package/SVF-doxygen/html/classSVF_1_1SVFBasicBlock.html +63 -63
  39. package/SVF-doxygen/html/classSVF_1_1SVFFunction.html +28 -28
  40. package/SVF-doxygen/html/classSVF_1_1SVFG.html +1 -1
  41. package/SVF-doxygen/html/classSVF_1_1SVFInstruction.html +4 -4
  42. package/SVF-doxygen/html/classSVF_1_1SVFLoopAndDomInfo.html +25 -22
  43. package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator.html +2 -2
  44. package/SVF-doxygen/html/classSVF_1_1VFG.html +1 -1
  45. package/SVF-doxygen/html/dir_445b24f35a8ddd2effd3d23ee1278e0a.html +2 -0
  46. package/SVF-doxygen/html/dir_fee120689dee99ef16f8bfcaa7a76083.html +2 -0
  47. package/SVF-doxygen/html/files.html +35 -33
  48. package/SVF-doxygen/html/functions.html +3 -4
  49. package/SVF-doxygen/html/functions_a.html +19 -10
  50. package/SVF-doxygen/html/functions_b.html +6 -6
  51. package/SVF-doxygen/html/functions_c.html +29 -29
  52. package/SVF-doxygen/html/functions_func.html +15 -6
  53. package/SVF-doxygen/html/functions_func_b.html +1 -1
  54. package/SVF-doxygen/html/functions_func_c.html +21 -21
  55. package/SVF-doxygen/html/functions_func_g.html +13 -14
  56. package/SVF-doxygen/html/functions_func_h.html +5 -8
  57. package/SVF-doxygen/html/functions_func_i.html +10 -7
  58. package/SVF-doxygen/html/functions_func_s.html +22 -25
  59. package/SVF-doxygen/html/functions_func_t.html +1 -1
  60. package/SVF-doxygen/html/functions_g.html +10 -11
  61. package/SVF-doxygen/html/functions_h.html +3 -6
  62. package/SVF-doxygen/html/functions_i.html +10 -7
  63. package/SVF-doxygen/html/functions_l.html +3 -3
  64. package/SVF-doxygen/html/functions_n.html +4 -4
  65. package/SVF-doxygen/html/functions_o.html +19 -19
  66. package/SVF-doxygen/html/functions_p.html +21 -17
  67. package/SVF-doxygen/html/functions_r.html +1 -1
  68. package/SVF-doxygen/html/functions_s.html +14 -17
  69. package/SVF-doxygen/html/functions_t.html +4 -4
  70. package/SVF-doxygen/html/functions_v.html +3 -3
  71. package/SVF-doxygen/html/functions_vars.html +3 -4
  72. package/SVF-doxygen/html/functions_w.html +7 -7
  73. package/SVF-doxygen/html/namespaceSVF.html +1 -1
  74. package/SVF-doxygen/html/namespaceSVF_1_1SVFUtil.html +2 -2
  75. package/SVF-doxygen/html/search/all_0.js +123 -124
  76. package/SVF-doxygen/html/search/all_1.js +479 -476
  77. package/SVF-doxygen/html/search/all_10.js +324 -324
  78. package/SVF-doxygen/html/search/all_11.js +224 -224
  79. package/SVF-doxygen/html/search/all_12.js +541 -542
  80. package/SVF-doxygen/html/search/all_13.js +190 -190
  81. package/SVF-doxygen/html/search/all_14.js +67 -67
  82. package/SVF-doxygen/html/search/all_15.js +170 -170
  83. package/SVF-doxygen/html/search/all_16.js +63 -63
  84. package/SVF-doxygen/html/search/all_17.js +1 -1
  85. package/SVF-doxygen/html/search/all_18.js +1 -1
  86. package/SVF-doxygen/html/search/all_19.js +11 -11
  87. package/SVF-doxygen/html/search/all_1a.js +172 -172
  88. package/SVF-doxygen/html/search/all_2.js +167 -167
  89. package/SVF-doxygen/html/search/all_3.js +642 -640
  90. package/SVF-doxygen/html/search/all_4.js +233 -233
  91. package/SVF-doxygen/html/search/all_5.js +121 -121
  92. package/SVF-doxygen/html/search/all_6.js +225 -225
  93. package/SVF-doxygen/html/search/all_7.js +1038 -1038
  94. package/SVF-doxygen/html/search/all_8.js +194 -195
  95. package/SVF-doxygen/html/search/all_9.js +608 -607
  96. package/SVF-doxygen/html/search/all_a.js +46 -46
  97. package/SVF-doxygen/html/search/all_b.js +26 -26
  98. package/SVF-doxygen/html/search/all_c.js +116 -116
  99. package/SVF-doxygen/html/search/all_d.js +196 -196
  100. package/SVF-doxygen/html/search/all_e.js +207 -207
  101. package/SVF-doxygen/html/search/all_f.js +116 -116
  102. package/SVF-doxygen/html/search/classes_0.js +26 -26
  103. package/SVF-doxygen/html/search/classes_1.js +9 -9
  104. package/SVF-doxygen/html/search/classes_10.js +73 -73
  105. package/SVF-doxygen/html/search/classes_11.js +15 -15
  106. package/SVF-doxygen/html/search/classes_12.js +2 -2
  107. package/SVF-doxygen/html/search/classes_13.js +10 -10
  108. package/SVF-doxygen/html/search/classes_14.js +14 -14
  109. package/SVF-doxygen/html/search/classes_15.js +1 -1
  110. package/SVF-doxygen/html/search/classes_2.js +80 -80
  111. package/SVF-doxygen/html/search/classes_3.js +37 -37
  112. package/SVF-doxygen/html/search/classes_4.js +9 -9
  113. package/SVF-doxygen/html/search/classes_5.js +28 -28
  114. package/SVF-doxygen/html/search/classes_6.js +104 -104
  115. package/SVF-doxygen/html/search/classes_7.js +33 -33
  116. package/SVF-doxygen/html/search/classes_8.js +56 -56
  117. package/SVF-doxygen/html/search/classes_9.js +1 -1
  118. package/SVF-doxygen/html/search/classes_a.js +12 -12
  119. package/SVF-doxygen/html/search/classes_b.js +29 -29
  120. package/SVF-doxygen/html/search/classes_c.js +6 -6
  121. package/SVF-doxygen/html/search/classes_d.js +18 -18
  122. package/SVF-doxygen/html/search/classes_e.js +36 -36
  123. package/SVF-doxygen/html/search/classes_f.js +25 -25
  124. package/SVF-doxygen/html/search/defines_0.js +3 -3
  125. package/SVF-doxygen/html/search/defines_1.js +2 -2
  126. package/SVF-doxygen/html/search/defines_2.js +30 -30
  127. package/SVF-doxygen/html/search/defines_3.js +21 -21
  128. package/SVF-doxygen/html/search/defines_4.js +2 -2
  129. package/SVF-doxygen/html/search/defines_5.js +4 -4
  130. package/SVF-doxygen/html/search/defines_6.js +2 -2
  131. package/SVF-doxygen/html/search/defines_7.js +5 -5
  132. package/SVF-doxygen/html/search/defines_8.js +11 -11
  133. package/SVF-doxygen/html/search/defines_9.js +9 -9
  134. package/SVF-doxygen/html/search/defines_a.js +2 -2
  135. package/SVF-doxygen/html/search/defines_b.js +1 -1
  136. package/SVF-doxygen/html/search/defines_c.js +3 -3
  137. package/SVF-doxygen/html/search/defines_d.js +2 -2
  138. package/SVF-doxygen/html/search/defines_e.js +7 -7
  139. package/SVF-doxygen/html/search/defines_f.js +3 -3
  140. package/SVF-doxygen/html/search/enums_0.js +3 -3
  141. package/SVF-doxygen/html/search/enums_1.js +2 -2
  142. package/SVF-doxygen/html/search/enums_10.js +1 -1
  143. package/SVF-doxygen/html/search/enums_11.js +1 -1
  144. package/SVF-doxygen/html/search/enums_2.js +8 -8
  145. package/SVF-doxygen/html/search/enums_3.js +1 -1
  146. package/SVF-doxygen/html/search/enums_4.js +3 -3
  147. package/SVF-doxygen/html/search/enums_5.js +1 -1
  148. package/SVF-doxygen/html/search/enums_6.js +2 -2
  149. package/SVF-doxygen/html/search/enums_7.js +2 -2
  150. package/SVF-doxygen/html/search/enums_8.js +4 -4
  151. package/SVF-doxygen/html/search/enums_9.js +1 -1
  152. package/SVF-doxygen/html/search/enums_a.js +1 -1
  153. package/SVF-doxygen/html/search/enums_b.js +7 -7
  154. package/SVF-doxygen/html/search/enums_c.js +1 -1
  155. package/SVF-doxygen/html/search/enums_d.js +4 -4
  156. package/SVF-doxygen/html/search/enums_e.js +2 -2
  157. package/SVF-doxygen/html/search/enums_f.js +4 -4
  158. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  159. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  160. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  161. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  162. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  163. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  164. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  165. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  166. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  167. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  168. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  169. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  170. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  171. package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
  172. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  173. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  174. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  175. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  176. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  177. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  178. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  179. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  180. package/SVF-doxygen/html/search/files_0.js +13 -13
  181. package/SVF-doxygen/html/search/files_1.js +7 -7
  182. package/SVF-doxygen/html/search/files_10.js +8 -8
  183. package/SVF-doxygen/html/search/files_11.js +8 -8
  184. package/SVF-doxygen/html/search/files_12.js +2 -2
  185. package/SVF-doxygen/html/search/files_2.js +55 -53
  186. package/SVF-doxygen/html/search/files_3.js +14 -14
  187. package/SVF-doxygen/html/search/files_4.js +5 -5
  188. package/SVF-doxygen/html/search/files_5.js +13 -13
  189. package/SVF-doxygen/html/search/files_6.js +9 -9
  190. package/SVF-doxygen/html/search/files_7.js +14 -14
  191. package/SVF-doxygen/html/search/files_8.js +13 -13
  192. package/SVF-doxygen/html/search/files_9.js +18 -18
  193. package/SVF-doxygen/html/search/files_a.js +3 -3
  194. package/SVF-doxygen/html/search/files_b.js +2 -2
  195. package/SVF-doxygen/html/search/files_c.js +20 -20
  196. package/SVF-doxygen/html/search/files_d.js +4 -4
  197. package/SVF-doxygen/html/search/files_e.js +62 -62
  198. package/SVF-doxygen/html/search/files_f.js +8 -8
  199. package/SVF-doxygen/html/search/functions_0.js +12 -12
  200. package/SVF-doxygen/html/search/functions_1.js +359 -356
  201. package/SVF-doxygen/html/search/functions_10.js +140 -140
  202. package/SVF-doxygen/html/search/functions_11.js +138 -138
  203. package/SVF-doxygen/html/search/functions_12.js +276 -277
  204. package/SVF-doxygen/html/search/functions_13.js +58 -58
  205. package/SVF-doxygen/html/search/functions_14.js +39 -39
  206. package/SVF-doxygen/html/search/functions_15.js +71 -71
  207. package/SVF-doxygen/html/search/functions_16.js +32 -32
  208. package/SVF-doxygen/html/search/functions_17.js +3 -3
  209. package/SVF-doxygen/html/search/functions_18.js +172 -172
  210. package/SVF-doxygen/html/search/functions_2.js +86 -86
  211. package/SVF-doxygen/html/search/functions_3.js +257 -257
  212. package/SVF-doxygen/html/search/functions_4.js +75 -75
  213. package/SVF-doxygen/html/search/functions_5.js +53 -53
  214. package/SVF-doxygen/html/search/functions_6.js +59 -59
  215. package/SVF-doxygen/html/search/functions_7.js +849 -849
  216. package/SVF-doxygen/html/search/functions_8.js +146 -147
  217. package/SVF-doxygen/html/search/functions_9.js +426 -425
  218. package/SVF-doxygen/html/search/functions_a.js +30 -30
  219. package/SVF-doxygen/html/search/functions_b.js +2 -2
  220. package/SVF-doxygen/html/search/functions_c.js +26 -26
  221. package/SVF-doxygen/html/search/functions_d.js +77 -77
  222. package/SVF-doxygen/html/search/functions_e.js +35 -35
  223. package/SVF-doxygen/html/search/functions_f.js +56 -56
  224. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  225. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  226. package/SVF-doxygen/html/search/related_0.js +2 -2
  227. package/SVF-doxygen/html/search/related_1.js +2 -2
  228. package/SVF-doxygen/html/search/related_2.js +2 -2
  229. package/SVF-doxygen/html/search/related_3.js +2 -2
  230. package/SVF-doxygen/html/search/related_4.js +2 -2
  231. package/SVF-doxygen/html/search/related_5.js +1 -1
  232. package/SVF-doxygen/html/search/related_6.js +2 -2
  233. package/SVF-doxygen/html/search/related_7.js +4 -4
  234. package/SVF-doxygen/html/search/related_8.js +2 -2
  235. package/SVF-doxygen/html/search/related_9.js +4 -4
  236. package/SVF-doxygen/html/search/related_a.js +19 -19
  237. package/SVF-doxygen/html/search/related_b.js +4 -4
  238. package/SVF-doxygen/html/search/related_c.js +1 -1
  239. package/SVF-doxygen/html/search/related_d.js +11 -11
  240. package/SVF-doxygen/html/search/related_e.js +2 -2
  241. package/SVF-doxygen/html/search/related_f.js +2 -2
  242. package/SVF-doxygen/html/search/typedefs_0.js +18 -18
  243. package/SVF-doxygen/html/search/typedefs_1.js +26 -26
  244. package/SVF-doxygen/html/search/typedefs_10.js +61 -61
  245. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  246. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  247. package/SVF-doxygen/html/search/typedefs_13.js +35 -35
  248. package/SVF-doxygen/html/search/typedefs_14.js +8 -8
  249. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  250. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  251. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  252. package/SVF-doxygen/html/search/typedefs_5.js +41 -41
  253. package/SVF-doxygen/html/search/typedefs_6.js +55 -55
  254. package/SVF-doxygen/html/search/typedefs_7.js +42 -42
  255. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  256. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  257. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  258. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  259. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  260. package/SVF-doxygen/html/search/typedefs_d.js +15 -15
  261. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  262. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  263. package/SVF-doxygen/html/search/variables_0.js +151 -152
  264. package/SVF-doxygen/html/search/variables_1.js +75 -75
  265. package/SVF-doxygen/html/search/variables_10.js +97 -97
  266. package/SVF-doxygen/html/search/variables_11.js +46 -46
  267. package/SVF-doxygen/html/search/variables_12.js +92 -92
  268. package/SVF-doxygen/html/search/variables_13.js +75 -75
  269. package/SVF-doxygen/html/search/variables_14.js +14 -14
  270. package/SVF-doxygen/html/search/variables_15.js +48 -48
  271. package/SVF-doxygen/html/search/variables_16.js +9 -9
  272. package/SVF-doxygen/html/search/variables_17.js +1 -1
  273. package/SVF-doxygen/html/search/variables_18.js +2 -2
  274. package/SVF-doxygen/html/search/variables_2.js +37 -37
  275. package/SVF-doxygen/html/search/variables_3.js +142 -142
  276. package/SVF-doxygen/html/search/variables_4.js +55 -55
  277. package/SVF-doxygen/html/search/variables_5.js +39 -39
  278. package/SVF-doxygen/html/search/variables_6.js +66 -66
  279. package/SVF-doxygen/html/search/variables_7.js +33 -33
  280. package/SVF-doxygen/html/search/variables_8.js +7 -7
  281. package/SVF-doxygen/html/search/variables_9.js +77 -77
  282. package/SVF-doxygen/html/search/variables_a.js +4 -4
  283. package/SVF-doxygen/html/search/variables_b.js +10 -10
  284. package/SVF-doxygen/html/search/variables_c.js +45 -45
  285. package/SVF-doxygen/html/search/variables_d.js +56 -56
  286. package/SVF-doxygen/html/search/variables_e.js +123 -123
  287. package/SVF-doxygen/html/search/variables_f.js +30 -30
  288. package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01SVF_1_1CFBasicBlockGraph_01_5_01_4.html +93 -40
  289. package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CFBasicBlockNode_01_5_01_4_01_4.html +1 -1
  290. package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFBasicBlockGraph_01_5_01_4.html +2 -2
  291. package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFBasicBlockNode_01_5_01_4.html +1 -1
  292. package/package.json +1 -1
  293. package/svf/include/AbstractExecution/WTO.h +56 -10
  294. package/svf/include/Graphs/CFBasicBlockG.h +62 -50
  295. package/svf/include/Util/CFBasicBlockGBuilder.h +59 -0
  296. package/svf/lib/Graphs/CFBasicBlockG.cpp +0 -111
  297. package/svf/lib/SVFIR/SVFValue.cpp +2 -0
  298. package/svf/lib/Util/CDGBuilder.cpp +5 -0
  299. package/svf/lib/Util/CFBasicBlockGBuilder.cpp +183 -0
@@ -188,157 +188,159 @@ $(function() {
188
188
  <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// continue going up til we arrive at the same node.</span></div>
189
189
  <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">while</span> (A != B)</div>
190
190
  <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; {</div>
191
- <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> lvA = getBBPDomLevel().find(A);</div>
192
- <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> lvB = getBBPDomLevel().find(B);</div>
193
- <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; assert(lvA != getBBPDomLevel().end() &amp;&amp; lvB != getBBPDomLevel().end());</div>
194
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; </div>
195
- <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">if</span> (lvA-&gt;second &lt; lvB-&gt;second) std::swap(A, B);</div>
191
+ <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// no common PDominator</span></div>
192
+ <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">if</span>(A == <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>) <span class="keywordflow">return</span> <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>;</div>
193
+ <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> lvA = getBBPDomLevel().find(A);</div>
194
+ <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> lvB = getBBPDomLevel().find(B);</div>
195
+ <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; assert(lvA != getBBPDomLevel().end() &amp;&amp; lvB != getBBPDomLevel().end());</div>
196
196
  <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
197
- <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> lvAIdom = getBB2PIdom().find(A);</div>
198
- <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; assert(lvAIdom != getBB2PIdom().end());</div>
199
- <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; A = lvAIdom-&gt;second;</div>
200
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div>
201
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; </div>
202
- <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> A;</div>
203
- <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;}</div>
204
- <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; </div>
205
- <div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFLoopAndDomInfo.html#a39257282d3875b5d28c21f6c8b1caf43"> 138</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a39257282d3875b5d28c21f6c8b1caf43">SVFLoopAndDomInfo::isLoopHeader</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb)<span class="keyword"> const</span></div>
206
- <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword"></span>{</div>
207
- <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">if</span> (hasLoopInfo(bb))</div>
208
- <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div>
209
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ae5e2b154313b4330bb015050aec72a1f">LoopBBs</a>&amp; blocks = getLoopInfo(bb);</div>
210
- <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; assert(!blocks.empty() &amp;&amp; <span class="stringliteral">&quot;no available loop info?&quot;</span>);</div>
211
- <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span> blocks.front() == bb;</div>
212
- <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div>
213
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
214
- <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;}</div>
215
- <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; </div>
216
- <div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#a0cf5ddbb884a0a99f43b7741f1ce2786"> 149</a></span>&#160;<a class="code" href="classSVF_1_1SVFFunction.html#a7e965c21a8afe7fca32d0f41b16361cf">SVFFunction::SVFFunction</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunctionType.html">SVFFunctionType</a>* ft,</div>
217
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordtype">bool</span> declare, <span class="keywordtype">bool</span> intrinsic, <span class="keywordtype">bool</span> adt, <span class="keywordtype">bool</span> varg,</div>
218
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html">SVFLoopAndDomInfo</a>* ld, std::vector&lt;std::string&gt; annos)</div>
219
- <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; : <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>(ty, <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>::SVFFunc), isDecl(declare), intrinsic(intrinsic),</div>
220
- <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; addrTaken(adt), isUncalled(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), isNotRet(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), varArg(varg),</div>
221
- <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; funcType(ft), loopAndDom(ld), realDefFun(nullptr), annotations(std::<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">move</a>(annos))</div>
222
- <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;{</div>
223
- <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;}</div>
224
- <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; </div>
225
- <div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#a5f6f7bf27f373b16b9c51de310b40686"> 158</a></span>&#160;<a class="code" href="classSVF_1_1SVFFunction.html#a5f6f7bf27f373b16b9c51de310b40686">SVFFunction::~SVFFunction</a>()</div>
226
- <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;{</div>
227
- <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb : <a class="code" href="classSVF_1_1SVFFunction.html#aa61307a21647def105677d36bfbaf32f">allBBs</a>)</div>
228
- <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">delete</span> bb;</div>
229
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* arg : <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>)</div>
230
- <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">delete</span> arg;</div>
231
- <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1SVFFunction.html#aefde3a0671e34541a4ad5d7a6dfaa5d1">loopAndDom</a>;</div>
232
- <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;}</div>
233
- <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; </div>
234
- <div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e"> 167</a></span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e">SVFFunction::arg_size</a>()<span class="keyword"> const</span></div>
235
- <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="keyword"></span>{</div>
236
- <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>.size();</div>
237
- <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;}</div>
238
- <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div>
239
- <div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#a10d9481ae41dce4f266dad5e64fffcee"> 172</a></span>&#160;<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* <a class="code" href="classSVF_1_1SVFFunction.html#a10d9481ae41dce4f266dad5e64fffcee">SVFFunction::getArg</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx)<span class="keyword"> const</span></div>
240
- <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="keyword"></span>{</div>
241
- <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; assert (idx &lt; <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>.size() &amp;&amp; <span class="stringliteral">&quot;getArg() out of range!&quot;</span>);</div>
242
- <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>[idx];</div>
243
- <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;}</div>
244
- <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; </div>
245
- <div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58"> 178</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58">SVFFunction::isVarArg</a>()<span class="keyword"> const</span></div>
246
- <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="keyword"></span>{</div>
247
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFFunction.html#a11aaa0ffaf7fa3d220c9af5d4537eaad">varArg</a>;</div>
248
- <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;}</div>
249
- <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; </div>
250
- <div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a2f21fd47b023a9786f8ab39faaca0a27"> 183</a></span>&#160;<a class="code" href="classSVF_1_1SVFBasicBlock.html#ae017f9a00c523585718bde13665275b3">SVFBasicBlock::SVFBasicBlock</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* f)</div>
251
- <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; : <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>(ty, <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>::SVFBB), fun(f)</div>
252
- <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;{</div>
253
- <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;}</div>
254
- <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; </div>
255
- <div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#abd5adb119af2024fe4702ba25394d5ac"> 188</a></span>&#160;<a class="code" href="classSVF_1_1SVFBasicBlock.html#abd5adb119af2024fe4702ba25394d5ac">SVFBasicBlock::~SVFBasicBlock</a>()</div>
256
- <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;{</div>
257
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* inst : <a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>)</div>
258
- <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">delete</span> inst;</div>
259
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;}</div>
260
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; </div>
261
- <div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174"> 197</a></span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174">SVFBasicBlock::getBBSuccessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* Succ)</div>
262
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;{</div>
263
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0;</div>
264
- <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* SuccBB: <a class="code" href="classSVF_1_1SVFBasicBlock.html#a7c3a69644f5e1351aad5d0ce0048abfd">succBBs</a>)</div>
265
- <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div>
266
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span> (SuccBB == Succ)</div>
267
- <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">return</span> i;</div>
268
- <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; i++;</div>
269
- <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</div>
270
- <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Didn&#39;t find successor edge?&quot;</span>);</div>
271
- <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> 0;</div>
272
- <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;}</div>
273
- <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; </div>
274
- <div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a104c66cdd4d88ba90eefd32bc9eef389"> 210</a></span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174">SVFBasicBlock::getBBSuccessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* Succ)<span class="keyword"> const</span></div>
275
- <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="keyword"></span>{</div>
276
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0;</div>
277
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* SuccBB: <a class="code" href="classSVF_1_1SVFBasicBlock.html#a7c3a69644f5e1351aad5d0ce0048abfd">succBBs</a>)</div>
278
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div>
279
- <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span> (SuccBB == Succ)</div>
280
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">return</span> i;</div>
281
- <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; i++;</div>
282
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; }</div>
283
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Didn&#39;t find successor edge?&quot;</span>);</div>
284
- <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> 0;</div>
285
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;}</div>
286
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; </div>
287
- <div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38"> 223</a></span>&#160;<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* <a class="code" href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38">SVFBasicBlock::getTerminator</a>()<span class="keyword"> const</span></div>
288
- <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="keyword"></span>{</div>
289
- <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>.empty() || !<a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>.back()-&gt;isTerminator())</div>
290
- <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
291
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>.back();</div>
292
- <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;}</div>
293
- <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; </div>
294
- <div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5"> 233</a></span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5">SVFBasicBlock::getBBPredecessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succbb)</div>
295
- <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;{</div>
296
- <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos = 0;</div>
297
- <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* PredBB : succbb-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#ac6fabc508f6b64127bb597f7b2110231">getPredecessors</a>())</div>
298
- <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; {</div>
299
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">if</span>(PredBB == <span class="keyword">this</span>)</div>
300
- <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">return</span> pos;</div>
301
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; ++pos;</div>
302
- <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; }</div>
303
- <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Didn&#39;t find predecessor edge?&quot;</span>);</div>
304
- <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span> pos;</div>
305
- <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;}</div>
306
- <div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a5fe2dae55581ff1cd6ef251a351d5c4f"> 245</a></span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5">SVFBasicBlock::getBBPredecessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succbb)<span class="keyword"> const</span></div>
307
- <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="keyword"></span>{</div>
308
- <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos = 0;</div>
309
- <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* PredBB : succbb-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#ac6fabc508f6b64127bb597f7b2110231">getPredecessors</a>())</div>
310
- <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; {</div>
311
- <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">if</span>(PredBB == <span class="keyword">this</span>)</div>
312
- <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> pos;</div>
313
- <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; ++pos;</div>
314
- <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div>
315
- <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Didn&#39;t find predecessor edge?&quot;</span>);</div>
316
- <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">return</span> pos;</div>
317
- <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;}</div>
318
- <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; </div>
319
- <div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFInstruction.html#a976cc9df05994e7e1b11fcdd22febcc5"> 258</a></span>&#160;<a class="code" href="classSVF_1_1SVFInstruction.html#a7d81c86ea5e1f8e313457862e19c2a3c">SVFInstruction::SVFInstruction</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>,</div>
320
- <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordtype">bool</span> tm, <span class="keywordtype">bool</span> isRet, <a class="code" href="classSVF_1_1SVFValue.html#afb50ea5aeea7a0608a3c9335aea6860e">SVFValKind</a> k)</div>
321
- <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; : <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>(ty, k), bb(<a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>), terminator(tm), ret(isRet)</div>
322
- <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;{</div>
323
- <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;}</div>
197
+ <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">if</span> (lvA-&gt;second &lt; lvB-&gt;second) std::swap(A, B);</div>
198
+ <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; </div>
199
+ <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> lvAIdom = getBB2PIdom().find(A);</div>
200
+ <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; assert(lvAIdom != getBB2PIdom().end());</div>
201
+ <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; A = lvAIdom-&gt;second;</div>
202
+ <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div>
203
+ <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; </div>
204
+ <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> A;</div>
205
+ <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;}</div>
206
+ <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; </div>
207
+ <div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFLoopAndDomInfo.html#a39257282d3875b5d28c21f6c8b1caf43"> 140</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a39257282d3875b5d28c21f6c8b1caf43">SVFLoopAndDomInfo::isLoopHeader</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb)<span class="keyword"> const</span></div>
208
+ <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keyword"></span>{</div>
209
+ <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span> (hasLoopInfo(bb))</div>
210
+ <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {</div>
211
+ <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ae5e2b154313b4330bb015050aec72a1f">LoopBBs</a>&amp; blocks = getLoopInfo(bb);</div>
212
+ <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; assert(!blocks.empty() &amp;&amp; <span class="stringliteral">&quot;no available loop info?&quot;</span>);</div>
213
+ <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> blocks.front() == bb;</div>
214
+ <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div>
215
+ <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
216
+ <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;}</div>
217
+ <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div>
218
+ <div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#a0cf5ddbb884a0a99f43b7741f1ce2786"> 151</a></span>&#160;<a class="code" href="classSVF_1_1SVFFunction.html#a7e965c21a8afe7fca32d0f41b16361cf">SVFFunction::SVFFunction</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunctionType.html">SVFFunctionType</a>* ft,</div>
219
+ <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordtype">bool</span> declare, <span class="keywordtype">bool</span> intrinsic, <span class="keywordtype">bool</span> adt, <span class="keywordtype">bool</span> varg,</div>
220
+ <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html">SVFLoopAndDomInfo</a>* ld, std::vector&lt;std::string&gt; annos)</div>
221
+ <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; : <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>(ty, <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>::SVFFunc), isDecl(declare), intrinsic(intrinsic),</div>
222
+ <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; addrTaken(adt), isUncalled(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), isNotRet(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), varArg(varg),</div>
223
+ <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; funcType(ft), loopAndDom(ld), realDefFun(nullptr), annotations(std::<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">move</a>(annos))</div>
224
+ <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;{</div>
225
+ <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;}</div>
226
+ <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; </div>
227
+ <div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#a5f6f7bf27f373b16b9c51de310b40686"> 160</a></span>&#160;<a class="code" href="classSVF_1_1SVFFunction.html#a5f6f7bf27f373b16b9c51de310b40686">SVFFunction::~SVFFunction</a>()</div>
228
+ <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;{</div>
229
+ <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb : <a class="code" href="classSVF_1_1SVFFunction.html#aa61307a21647def105677d36bfbaf32f">allBBs</a>)</div>
230
+ <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">delete</span> bb;</div>
231
+ <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* arg : <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>)</div>
232
+ <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">delete</span> arg;</div>
233
+ <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1SVFFunction.html#aefde3a0671e34541a4ad5d7a6dfaa5d1">loopAndDom</a>;</div>
234
+ <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;}</div>
235
+ <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; </div>
236
+ <div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e"> 169</a></span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e">SVFFunction::arg_size</a>()<span class="keyword"> const</span></div>
237
+ <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="keyword"></span>{</div>
238
+ <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>.size();</div>
239
+ <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;}</div>
240
+ <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; </div>
241
+ <div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#a10d9481ae41dce4f266dad5e64fffcee"> 174</a></span>&#160;<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* <a class="code" href="classSVF_1_1SVFFunction.html#a10d9481ae41dce4f266dad5e64fffcee">SVFFunction::getArg</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx)<span class="keyword"> const</span></div>
242
+ <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="keyword"></span>{</div>
243
+ <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; assert (idx &lt; <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>.size() &amp;&amp; <span class="stringliteral">&quot;getArg() out of range!&quot;</span>);</div>
244
+ <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>[idx];</div>
245
+ <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;}</div>
246
+ <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; </div>
247
+ <div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58"> 180</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58">SVFFunction::isVarArg</a>()<span class="keyword"> const</span></div>
248
+ <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="keyword"></span>{</div>
249
+ <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFFunction.html#a11aaa0ffaf7fa3d220c9af5d4537eaad">varArg</a>;</div>
250
+ <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;}</div>
251
+ <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; </div>
252
+ <div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a2f21fd47b023a9786f8ab39faaca0a27"> 185</a></span>&#160;<a class="code" href="classSVF_1_1SVFBasicBlock.html#ae017f9a00c523585718bde13665275b3">SVFBasicBlock::SVFBasicBlock</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* f)</div>
253
+ <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; : <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>(ty, <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>::SVFBB), fun(f)</div>
254
+ <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;{</div>
255
+ <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;}</div>
256
+ <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; </div>
257
+ <div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#abd5adb119af2024fe4702ba25394d5ac"> 190</a></span>&#160;<a class="code" href="classSVF_1_1SVFBasicBlock.html#abd5adb119af2024fe4702ba25394d5ac">SVFBasicBlock::~SVFBasicBlock</a>()</div>
258
+ <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;{</div>
259
+ <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* inst : <a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>)</div>
260
+ <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">delete</span> inst;</div>
261
+ <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;}</div>
262
+ <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; </div>
263
+ <div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174"> 199</a></span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174">SVFBasicBlock::getBBSuccessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* Succ)</div>
264
+ <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;{</div>
265
+ <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0;</div>
266
+ <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* SuccBB: <a class="code" href="classSVF_1_1SVFBasicBlock.html#a7c3a69644f5e1351aad5d0ce0048abfd">succBBs</a>)</div>
267
+ <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; {</div>
268
+ <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">if</span> (SuccBB == Succ)</div>
269
+ <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> i;</div>
270
+ <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; i++;</div>
271
+ <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div>
272
+ <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Didn&#39;t find successor edge?&quot;</span>);</div>
273
+ <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">return</span> 0;</div>
274
+ <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;}</div>
275
+ <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; </div>
276
+ <div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a104c66cdd4d88ba90eefd32bc9eef389"> 212</a></span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174">SVFBasicBlock::getBBSuccessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* Succ)<span class="keyword"> const</span></div>
277
+ <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="keyword"></span>{</div>
278
+ <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0;</div>
279
+ <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* SuccBB: <a class="code" href="classSVF_1_1SVFBasicBlock.html#a7c3a69644f5e1351aad5d0ce0048abfd">succBBs</a>)</div>
280
+ <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; {</div>
281
+ <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">if</span> (SuccBB == Succ)</div>
282
+ <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">return</span> i;</div>
283
+ <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; i++;</div>
284
+ <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div>
285
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Didn&#39;t find successor edge?&quot;</span>);</div>
286
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> 0;</div>
287
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;}</div>
288
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; </div>
289
+ <div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38"> 225</a></span>&#160;<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* <a class="code" href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38">SVFBasicBlock::getTerminator</a>()<span class="keyword"> const</span></div>
290
+ <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="keyword"></span>{</div>
291
+ <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>.empty() || !<a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>.back()-&gt;isTerminator())</div>
292
+ <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
293
+ <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>.back();</div>
294
+ <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;}</div>
295
+ <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; </div>
296
+ <div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5"> 235</a></span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5">SVFBasicBlock::getBBPredecessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succbb)</div>
297
+ <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;{</div>
298
+ <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos = 0;</div>
299
+ <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* PredBB : succbb-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#ac6fabc508f6b64127bb597f7b2110231">getPredecessors</a>())</div>
300
+ <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; {</div>
301
+ <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">if</span>(PredBB == <span class="keyword">this</span>)</div>
302
+ <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">return</span> pos;</div>
303
+ <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; ++pos;</div>
304
+ <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</div>
305
+ <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Didn&#39;t find predecessor edge?&quot;</span>);</div>
306
+ <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">return</span> pos;</div>
307
+ <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;}</div>
308
+ <div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a5fe2dae55581ff1cd6ef251a351d5c4f"> 247</a></span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5">SVFBasicBlock::getBBPredecessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succbb)<span class="keyword"> const</span></div>
309
+ <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="keyword"></span>{</div>
310
+ <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos = 0;</div>
311
+ <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* PredBB : succbb-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#ac6fabc508f6b64127bb597f7b2110231">getPredecessors</a>())</div>
312
+ <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div>
313
+ <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">if</span>(PredBB == <span class="keyword">this</span>)</div>
314
+ <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> pos;</div>
315
+ <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; ++pos;</div>
316
+ <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div>
317
+ <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Didn&#39;t find predecessor edge?&quot;</span>);</div>
318
+ <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> pos;</div>
319
+ <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;}</div>
320
+ <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; </div>
321
+ <div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFInstruction.html#a976cc9df05994e7e1b11fcdd22febcc5"> 260</a></span>&#160;<a class="code" href="classSVF_1_1SVFInstruction.html#a7d81c86ea5e1f8e313457862e19c2a3c">SVFInstruction::SVFInstruction</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>,</div>
322
+ <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordtype">bool</span> tm, <span class="keywordtype">bool</span> isRet, <a class="code" href="classSVF_1_1SVFValue.html#afb50ea5aeea7a0608a3c9335aea6860e">SVFValKind</a> k)</div>
323
+ <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; : <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>(ty, k), bb(<a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>), terminator(tm), ret(isRet)</div>
324
+ <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;{</div>
325
+ <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;}</div>
324
326
  </div><!-- fragment --></div><!-- contents -->
325
327
  <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html">SVF::SVFLoopAndDomInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00050">SVFValue.h:50</a></div></div>
326
- <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_ab8a735b5d183f5190c4c45b313f1b174"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174">SVF::SVFBasicBlock::getBBSuccessorPos</a></div><div class="ttdeci">u32_t getBBSuccessorPos(const SVFBasicBlock *succbb)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00197">SVFValue.cpp:197</a></div></div>
328
+ <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_ab8a735b5d183f5190c4c45b313f1b174"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174">SVF::SVFBasicBlock::getBBSuccessorPos</a></div><div class="ttdeci">u32_t getBBSuccessorPos(const SVFBasicBlock *succbb)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00199">SVFValue.cpp:199</a></div></div>
327
329
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_ac6fabc508f6b64127bb597f7b2110231"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ac6fabc508f6b64127bb597f7b2110231">SVF::SVFBasicBlock::getPredecessors</a></div><div class="ttdeci">const std::vector&lt; const SVFBasicBlock * &gt; &amp; getPredecessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00606">SVFValue.h:606</a></div></div>
328
- <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a10d9481ae41dce4f266dad5e64fffcee"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a10d9481ae41dce4f266dad5e64fffcee">SVF::SVFFunction::getArg</a></div><div class="ttdeci">const SVFArgument * getArg(u32_t idx) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00172">SVFValue.cpp:172</a></div></div>
330
+ <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a10d9481ae41dce4f266dad5e64fffcee"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a10d9481ae41dce4f266dad5e64fffcee">SVF::SVFFunction::getArg</a></div><div class="ttdeci">const SVFArgument * getArg(u32_t idx) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00174">SVFValue.cpp:174</a></div></div>
329
331
  <div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
330
332
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a7c3a69644f5e1351aad5d0ce0048abfd"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a7c3a69644f5e1351aad5d0ce0048abfd">SVF::SVFBasicBlock::succBBs</a></div><div class="ttdeci">std::vector&lt; const SVFBasicBlock * &gt; succBBs</div><div class="ttdoc">all successor BasicBlocks of this BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00529">SVFValue.h:529</a></div></div>
331
333
  <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_a342f2825d6b7e3289d0f0f4b7ee8247c"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#a342f2825d6b7e3289d0f0f4b7ee8247c">SVF::SVFLoopAndDomInfo::dominate</a></div><div class="ttdeci">bool dominate(const SVFBasicBlock *bbKey, const SVFBasicBlock *bbValue) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00053">SVFValue.cpp:53</a></div></div>
332
334
  <div class="ttc" id="acJSON_8cpp_html_a65e9886d74aaee76545e83dd09011727"><div class="ttname"><a href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a></div><div class="ttdeci">#define false</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00070">cJSON.cpp:70</a></div></div>
333
335
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a2954b0f29cd81083598afb6431b78f2a"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">SVF::SVFBasicBlock::allInsts</a></div><div class="ttdeci">std::vector&lt; const SVFInstruction * &gt; allInsts</div><div class="ttdoc">all Instructions in this BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00528">SVFValue.h:528</a></div></div>
334
- <div class="ttc" id="aclassSVF_1_1SVFFunction_html_ab8c7a9c79b0668aae604bbe54e34e46e"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e">SVF::SVFFunction::arg_size</a></div><div class="ttdeci">u32_t arg_size() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00167">SVFValue.cpp:167</a></div></div>
336
+ <div class="ttc" id="aclassSVF_1_1SVFFunction_html_ab8c7a9c79b0668aae604bbe54e34e46e"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e">SVF::SVFFunction::arg_size</a></div><div class="ttdeci">u32_t arg_size() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00169">SVFValue.cpp:169</a></div></div>
335
337
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_ae017f9a00c523585718bde13665275b3"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ae017f9a00c523585718bde13665275b3">SVF::SVFBasicBlock::SVFBasicBlock</a></div><div class="ttdeci">SVFBasicBlock()=delete</div></div>
336
338
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a11aaa0ffaf7fa3d220c9af5d4537eaad"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a11aaa0ffaf7fa3d220c9af5d4537eaad">SVF::SVFFunction::varArg</a></div><div class="ttdeci">bool varArg</div><div class="ttdoc">return true if this function never returns</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00316">SVFValue.h:316</a></div></div>
337
- <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a5f6f7bf27f373b16b9c51de310b40686"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a5f6f7bf27f373b16b9c51de310b40686">SVF::SVFFunction::~SVFFunction</a></div><div class="ttdeci">virtual ~SVFFunction()</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00158">SVFValue.cpp:158</a></div></div>
339
+ <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a5f6f7bf27f373b16b9c51de310b40686"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a5f6f7bf27f373b16b9c51de310b40686">SVF::SVFFunction::~SVFFunction</a></div><div class="ttdeci">virtual ~SVFFunction()</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00160">SVFValue.cpp:160</a></div></div>
338
340
  <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_af66c5a824f9fc2813e2d97e17f9a2e96"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#af66c5a824f9fc2813e2d97e17f9a2e96">SVF::SVFLoopAndDomInfo::postDominate</a></div><div class="ttdeci">bool postDominate(const SVFBasicBlock *bbKey, const SVFBasicBlock *bbValue) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00084">SVFValue.cpp:84</a></div></div>
339
341
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html_aa61307a21647def105677d36bfbaf32f"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#aa61307a21647def105677d36bfbaf32f">SVF::SVFFunction::allBBs</a></div><div class="ttdeci">std::vector&lt; const SVFBasicBlock * &gt; allBBs</div><div class="ttdoc">the definition of a function across multiple modules</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00320">SVFValue.h:320</a></div></div>
340
342
  <div class="ttc" id="aSVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
341
- <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_a39257282d3875b5d28c21f6c8b1caf43"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#a39257282d3875b5d28c21f6c8b1caf43">SVF::SVFLoopAndDomInfo::isLoopHeader</a></div><div class="ttdeci">bool isLoopHeader(const SVFBasicBlock *bb) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00138">SVFValue.cpp:138</a></div></div>
343
+ <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_a39257282d3875b5d28c21f6c8b1caf43"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#a39257282d3875b5d28c21f6c8b1caf43">SVF::SVFLoopAndDomInfo::isLoopHeader</a></div><div class="ttdeci">bool isLoopHeader(const SVFBasicBlock *bb) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00140">SVFValue.cpp:140</a></div></div>
342
344
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00517">SVFValue.h:517</a></div></div>
343
345
  <div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00177">SVFValue.h:177</a></div></div>
344
346
  <div class="ttc" id="aclassSVF_1_1SVFFunctionType_html"><div class="ttname"><a href="classSVF_1_1SVFFunctionType.html">SVF::SVFFunctionType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00385">SVFType.h:385</a></div></div>
@@ -346,21 +348,22 @@ $(function() {
346
348
  <div class="ttc" id="aclassSVF_1_1SVFType_html"><div class="ttname"><a href="classSVF_1_1SVFType.html">SVF::SVFType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00242">SVFType.h:242</a></div></div>
347
349
  <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_a33b96ce50eb1d3caab2b20c19a60b2cc"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#a33b96ce50eb1d3caab2b20c19a60b2cc">SVF::SVFLoopAndDomInfo::BBList</a></div><div class="ttdeci">std::vector&lt; const SVFBasicBlock * &gt; BBList</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00056">SVFValue.h:56</a></div></div>
348
350
  <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_a49dff199b71a991c4525ed819ec92bed"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#a49dff199b71a991c4525ed819ec92bed">SVF::SVFLoopAndDomInfo::findNearestCommonPDominator</a></div><div class="ttdeci">const SVFBasicBlock * findNearestCommonPDominator(const SVFBasicBlock *A, const SVFBasicBlock *B) const</div><div class="ttdoc">find nearest common post dominator of two basic blocks</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00114">SVFValue.cpp:114</a></div></div>
349
- <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a10707086ce21999f415c479706abbd38"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38">SVF::SVFBasicBlock::getTerminator</a></div><div class="ttdeci">const SVFInstruction * getTerminator() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00223">SVFValue.cpp:223</a></div></div>
351
+ <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a10707086ce21999f415c479706abbd38"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38">SVF::SVFBasicBlock::getTerminator</a></div><div class="ttdeci">const SVFInstruction * getTerminator() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00225">SVFValue.cpp:225</a></div></div>
350
352
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00297">SVFValue.h:297</a></div></div>
351
353
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a625bef2b92c8e62df547bd2758b59c75"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">SVF::SVFFunction::allArgs</a></div><div class="ttdeci">std::vector&lt; const SVFArgument * &gt; allArgs</div><div class="ttdoc">all BasicBlocks of this function</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00321">SVFValue.h:321</a></div></div>
352
354
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a7e965c21a8afe7fca32d0f41b16361cf"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a7e965c21a8afe7fca32d0f41b16361cf">SVF::SVFFunction::SVFFunction</a></div><div class="ttdeci">SVFFunction(void)=delete</div></div>
353
355
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html_aefde3a0671e34541a4ad5d7a6dfaa5d1"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#aefde3a0671e34541a4ad5d7a6dfaa5d1">SVF::SVFFunction::loopAndDom</a></div><div class="ttdeci">SVFLoopAndDomInfo * loopAndDom</div><div class="ttdoc">FunctionType, which is different from the type (PointerType) of this SVFFunction.</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00318">SVFValue.h:318</a></div></div>
354
- <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_abd5adb119af2024fe4702ba25394d5ac"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#abd5adb119af2024fe4702ba25394d5ac">SVF::SVFBasicBlock::~SVFBasicBlock</a></div><div class="ttdeci">~SVFBasicBlock() override</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00188">SVFValue.cpp:188</a></div></div>
356
+ <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_abd5adb119af2024fe4702ba25394d5ac"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#abd5adb119af2024fe4702ba25394d5ac">SVF::SVFBasicBlock::~SVFBasicBlock</a></div><div class="ttdeci">~SVFBasicBlock() override</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00190">SVFValue.cpp:190</a></div></div>
355
357
  <div class="ttc" id="aclassSVF_1_1SVFValue_html_afb50ea5aeea7a0608a3c9335aea6860e"><div class="ttname"><a href="classSVF_1_1SVFValue.html#afb50ea5aeea7a0608a3c9335aea6860e">SVF::SVFValue::SVFValKind</a></div><div class="ttdeci">SVFValKind</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00186">SVFValue.h:186</a></div></div>
356
358
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a66f51cd41e93ad055c4a0c2874e73fae"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a66f51cd41e93ad055c4a0c2874e73fae">SVF::SVFBasicBlock::getSuccessors</a></div><div class="ttdeci">const std::vector&lt; const SVFBasicBlock * &gt; &amp; getSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00601">SVFValue.h:601</a></div></div>
357
- <div class="ttc" id="aclassSVF_1_1SVFFunction_html_ae578002917b4ccbf28f172dba30d1d58"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58">SVF::SVFFunction::isVarArg</a></div><div class="ttdeci">bool isVarArg() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00178">SVFValue.cpp:178</a></div></div>
359
+ <div class="ttc" id="aclassSVF_1_1SVFFunction_html_ae578002917b4ccbf28f172dba30d1d58"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58">SVF::SVFFunction::isVarArg</a></div><div class="ttdeci">bool isVarArg() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00180">SVFValue.cpp:180</a></div></div>
358
360
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_af48d08d3adf7dd3ed69d97e4df360059"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#af48d08d3adf7dd3ed69d97e4df360059">SVF::SVFBasicBlock::getParent</a></div><div class="ttdeci">const SVFFunction * getParent() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00577">SVFValue.h:577</a></div></div>
359
361
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a72502f7f536418621485e90ab98c2016"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">SVF::SVFUtil::move</a></div><div class="ttdeci">constexpr std::remove_reference&lt; T &gt;::type &amp;&amp; move(T &amp;&amp;t) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00621">SVFUtil.h:621</a></div></div>
360
362
  <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_a0fb893485fc3df088d921762514faf66"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#a0fb893485fc3df088d921762514faf66">SVF::SVFLoopAndDomInfo::getLoopInfo</a></div><div class="ttdeci">const LoopBBs &amp; getLoopInfo(const SVFBasicBlock *bb) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00027">SVFValue.cpp:27</a></div></div>
361
363
  <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_a48654f61a84ac5f93b02fb618cd0d045"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#a48654f61a84ac5f93b02fb618cd0d045">SVF::SVFLoopAndDomInfo::getExitBlocksOfLoop</a></div><div class="ttdeci">void getExitBlocksOfLoop(const SVFBasicBlock *bb, BBList &amp;exitbbs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00034">SVFValue.cpp:34</a></div></div>
362
- <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a59a4b7d815f624e448afe3ac0e9d18f5"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5">SVF::SVFBasicBlock::getBBPredecessorPos</a></div><div class="ttdeci">u32_t getBBPredecessorPos(const SVFBasicBlock *succbb)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00233">SVFValue.cpp:233</a></div></div>
364
+ <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a59a4b7d815f624e448afe3ac0e9d18f5"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5">SVF::SVFBasicBlock::getBBPredecessorPos</a></div><div class="ttdeci">u32_t getBBPredecessorPos(const SVFBasicBlock *succbb)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00235">SVFValue.cpp:235</a></div></div>
363
365
  <div class="ttc" id="aclassSVF_1_1SVFInstruction_html_a7d81c86ea5e1f8e313457862e19c2a3c"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html#a7d81c86ea5e1f8e313457862e19c2a3c">SVF::SVFInstruction::SVFInstruction</a></div><div class="ttdeci">SVFInstruction(void)=delete</div></div>
366
+ <div class="ttc" id="acJSON_8cpp_html_a1a05ede2ad100bf5de5dfa7ccdfa4397"><div class="ttname"><a href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a></div><div class="ttdeci">return NULL</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01173">cJSON.cpp:1173</a></div></div>
364
367
  <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_ad478ac88bc07cf4d6d0ad3517b2c4ab3"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#ad478ac88bc07cf4d6d0ad3517b2c4ab3">SVF::SVFLoopAndDomInfo::BBSet</a></div><div class="ttdeci">Set&lt; const SVFBasicBlock * &gt; BBSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00055">SVFValue.h:55</a></div></div>
365
368
  <div class="ttc" id="aclassSVF_1_1StInfo_html_aae0736a5e99b11571af52e28500a6f9c"><div class="ttname"><a href="classSVF_1_1StInfo.html#aae0736a5e99b11571af52e28500a6f9c">SVF::StInfo::addFldWithType</a></div><div class="ttdeci">void addFldWithType(u32_t fldIdx, const SVFType *type, u32_t elemIdx)</div><div class="ttdoc">Add field index and element index and their corresponding type.</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00008">SVFValue.cpp:8</a></div></div>
366
369
  <div class="ttc" id="aclassSVF_1_1SVFArgument_html"><div class="ttname"><a href="classSVF_1_1SVFArgument.html">SVF::SVFArgument</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00886">SVFValue.h:886</a></div></div>