svf-tools 1.0.331 → 1.0.335

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 (293) hide show
  1. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +2 -2
  2. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +4 -4
  3. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +3 -3
  4. package/SVF-doxygen/html/html/CSC_8cpp_source.html +2 -2
  5. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +3 -3
  6. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +17 -8
  7. package/SVF-doxygen/html/html/ConsG_8h_source.html +1 -1
  8. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +2 -2
  9. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +2 -2
  10. package/SVF-doxygen/html/html/DCHG_8h_source.html +5 -4
  11. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +2 -2
  12. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +3 -3
  14. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +3 -3
  15. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
  16. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +3 -3
  17. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +3 -3
  18. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +4 -4
  19. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +5 -5
  20. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
  22. package/SVF-doxygen/html/html/LocationSet_8h_source.html +2 -2
  23. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
  24. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +6 -6
  25. package/SVF-doxygen/html/html/MemRegion_8h_source.html +2 -2
  26. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
  27. package/SVF-doxygen/html/html/MemSSA_8h_source.html +2 -2
  28. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
  29. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +3 -3
  30. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +3 -3
  32. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +1 -1
  33. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +3 -3
  34. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +2 -2
  35. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +7 -7
  36. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +18 -18
  37. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +37 -37
  38. package/SVF-doxygen/html/html/SVFIR_8h_source.html +27 -27
  39. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  40. package/SVF-doxygen/html/html/SVFStatements_8h.html +14 -12
  41. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +131 -123
  42. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +18 -18
  43. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +132 -129
  44. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +3 -3
  45. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +2 -2
  46. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  47. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +10 -10
  48. package/SVF-doxygen/html/html/VFGNode_8h_source.html +13 -13
  49. package/SVF-doxygen/html/html/VFG_8cpp_source.html +25 -25
  50. package/SVF-doxygen/html/html/VFG_8h_source.html +18 -17
  51. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
  52. package/SVF-doxygen/html/html/annotated.html +271 -270
  53. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt-members.html +16 -10
  54. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +36 -14
  55. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.png +0 -0
  56. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +2 -2
  57. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +1 -1
  58. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +2 -2
  59. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +3 -3
  60. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +4 -4
  61. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +2 -2
  62. package/SVF-doxygen/html/html/classSVF_1_1AssignStmt-members.html +145 -0
  63. package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.html +770 -0
  64. package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.png +0 -0
  65. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +4 -4
  66. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt-members.html +7 -11
  67. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +19 -138
  68. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +3 -3
  69. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt-members.html +2 -2
  70. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +39 -39
  71. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +3 -3
  72. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +2 -2
  73. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode-members.html +4 -4
  74. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +4 -4
  75. package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +19 -13
  76. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +43 -21
  77. package/SVF-doxygen/html/html/classSVF_1_1CallPE.png +0 -0
  78. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar-members.html +37 -40
  79. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +14 -22
  80. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar-members.html +37 -40
  81. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +15 -23
  82. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +48 -51
  83. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +18 -26
  84. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt-members.html +7 -11
  85. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +20 -139
  86. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +3 -3
  87. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +18 -11
  88. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +2 -2
  89. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt-members.html +16 -10
  90. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +36 -14
  91. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.png +0 -0
  92. package/SVF-doxygen/html/html/classSVF_1_1DCHEdge-members.html +3 -3
  93. package/SVF-doxygen/html/html/classSVF_1_1DCHEdge.html +19 -19
  94. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +2 -2
  95. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +37 -40
  96. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +16 -24
  97. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +36 -39
  98. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +15 -23
  99. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar-members.html +37 -40
  100. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +21 -29
  101. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +1 -1
  102. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +1 -1
  103. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +3 -3
  104. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +5 -5
  105. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode-members.html +2 -2
  106. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +4 -4
  107. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode-members.html +2 -2
  108. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +4 -4
  109. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +3 -9
  110. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.png +0 -0
  111. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar-members.html +49 -52
  112. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +53 -61
  113. package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +23 -15
  114. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +166 -69
  115. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.png +0 -0
  116. package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +45 -48
  117. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +40 -48
  118. package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode-members.html +2 -2
  119. package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode.html +4 -4
  120. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode-members.html +2 -2
  121. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +10 -10
  122. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +12 -12
  123. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +1 -1
  124. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +2 -2
  125. package/SVF-doxygen/html/html/classSVF_1_1InterBlockNode-members.html +2 -2
  126. package/SVF-doxygen/html/html/classSVF_1_1InterBlockNode.html +4 -4
  127. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  128. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode-members.html +2 -2
  129. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +4 -4
  130. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +2 -2
  131. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +1 -1
  132. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt-members.html +16 -10
  133. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +36 -14
  134. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.png +0 -0
  135. package/SVF-doxygen/html/html/classSVF_1_1LocationSet-members.html +1 -1
  136. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +12 -12
  137. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +10 -10
  138. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +6 -6
  139. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt-members.html +36 -29
  140. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +250 -31
  141. package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge-members.html +2 -2
  142. package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge.html +14 -14
  143. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt-members.html +51 -46
  144. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +53 -93
  145. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.png +0 -0
  146. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +1 -1
  147. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +1 -1
  148. package/SVF-doxygen/html/html/classSVF_1_1ObjVar-members.html +37 -40
  149. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +34 -42
  150. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +3 -3
  151. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +4 -4
  152. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +1 -1
  153. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +5 -9
  154. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +18 -137
  155. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +7 -7
  156. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode-members.html +2 -2
  157. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +4 -4
  158. package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +16 -10
  159. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +43 -21
  160. package/SVF-doxygen/html/html/classSVF_1_1RetPE.png +0 -0
  161. package/SVF-doxygen/html/html/classSVF_1_1RetPN-members.html +36 -39
  162. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +16 -24
  163. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +2 -2
  164. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +1 -1
  165. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +61 -53
  166. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +1 -1
  167. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +24 -18
  168. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +12 -8
  169. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.png +0 -0
  170. package/SVF-doxygen/html/html/classSVF_1_1SVFVar-members.html +28 -25
  171. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +185 -107
  172. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +3 -3
  173. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +16 -10
  174. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +36 -14
  175. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.png +0 -0
  176. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +2 -2
  177. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +18 -12
  178. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +35 -13
  179. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.png +0 -0
  180. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +17 -11
  181. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +35 -13
  182. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.png +0 -0
  183. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +1 -1
  184. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +17 -17
  185. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt-members.html +2 -2
  186. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +32 -32
  187. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
  188. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +34 -34
  189. package/SVF-doxygen/html/html/classSVF_1_1ValVar-members.html +36 -39
  190. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +19 -27
  191. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN-members.html +36 -39
  192. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +16 -24
  193. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt-members.html +52 -45
  194. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +56 -25
  195. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.png +0 -0
  196. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +1 -1
  197. package/SVF-doxygen/html/html/classes.html +91 -93
  198. package/SVF-doxygen/html/html/functions_a.html +18 -15
  199. package/SVF-doxygen/html/html/functions_c.html +16 -15
  200. package/SVF-doxygen/html/html/functions_func.html +18 -15
  201. package/SVF-doxygen/html/html/functions_func_c.html +24 -23
  202. package/SVF-doxygen/html/html/functions_func_g.html +45 -37
  203. package/SVF-doxygen/html/html/functions_func_o.html +5 -3
  204. package/SVF-doxygen/html/html/functions_func_s.html +1 -1
  205. package/SVF-doxygen/html/html/functions_func_t.html +1 -0
  206. package/SVF-doxygen/html/html/functions_g.html +46 -38
  207. package/SVF-doxygen/html/html/functions_i.html +7 -6
  208. package/SVF-doxygen/html/html/functions_l.html +4 -4
  209. package/SVF-doxygen/html/html/functions_m.html +1 -1
  210. package/SVF-doxygen/html/html/functions_o.html +12 -10
  211. package/SVF-doxygen/html/html/functions_p.html +12 -8
  212. package/SVF-doxygen/html/html/functions_rela.html +56 -1
  213. package/SVF-doxygen/html/html/functions_s.html +14 -15
  214. package/SVF-doxygen/html/html/functions_t.html +9 -10
  215. package/SVF-doxygen/html/html/functions_v.html +8 -7
  216. package/SVF-doxygen/html/html/functions_vars_l.html +1 -1
  217. package/SVF-doxygen/html/html/functions_vars_o.html +1 -1
  218. package/SVF-doxygen/html/html/hierarchy.html +17 -16
  219. package/SVF-doxygen/html/html/menudata.js +13 -1
  220. package/SVF-doxygen/html/html/namespaceSVF.html +2 -0
  221. package/SVF-doxygen/html/html/search/all_1.js +5 -4
  222. package/SVF-doxygen/html/html/search/all_10.js +6 -6
  223. package/SVF-doxygen/html/html/search/all_13.js +12 -12
  224. package/SVF-doxygen/html/html/search/all_14.js +7 -7
  225. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  226. package/SVF-doxygen/html/html/search/all_16.js +4 -4
  227. package/SVF-doxygen/html/html/search/all_3.js +2 -2
  228. package/SVF-doxygen/html/html/search/all_7.js +12 -8
  229. package/SVF-doxygen/html/html/search/all_9.js +1 -1
  230. package/SVF-doxygen/html/html/search/all_c.js +2 -2
  231. package/SVF-doxygen/html/html/search/all_d.js +3 -3
  232. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  233. package/SVF-doxygen/html/html/search/all_f.js +3 -3
  234. package/SVF-doxygen/html/html/search/classes_0.js +2 -1
  235. package/SVF-doxygen/html/html/search/functions_0.js +5 -4
  236. package/SVF-doxygen/html/html/search/functions_10.js +2 -2
  237. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  238. package/SVF-doxygen/html/html/search/functions_13.js +1 -1
  239. package/SVF-doxygen/html/html/search/functions_2.js +1 -1
  240. package/SVF-doxygen/html/html/search/functions_6.js +12 -8
  241. package/SVF-doxygen/html/html/search/functions_b.js +1 -1
  242. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  243. package/SVF-doxygen/html/html/search/related_4.js +1 -2
  244. package/SVF-doxygen/html/html/search/related_5.js +2 -1
  245. package/SVF-doxygen/html/html/search/related_6.js +1 -4
  246. package/SVF-doxygen/html/html/search/related_7.js +4 -1
  247. package/SVF-doxygen/html/html/search/related_8.js +1 -5
  248. package/SVF-doxygen/html/html/search/related_9.js +6 -2
  249. package/SVF-doxygen/html/html/search/related_a.js +2 -1
  250. package/SVF-doxygen/html/html/search/related_b.html +26 -0
  251. package/SVF-doxygen/html/html/search/related_b.js +5 -0
  252. package/SVF-doxygen/html/html/search/searchdata.js +1 -1
  253. package/SVF-doxygen/html/html/search/variables_14.js +3 -3
  254. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  255. package/SVF-doxygen/html/html/search/variables_c.js +1 -1
  256. package/SVF-doxygen/html/html/search/variables_e.js +2 -2
  257. package/SVF-doxygen/html/html/search/variables_f.js +1 -1
  258. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  259. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +3 -3
  260. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +1 -1
  261. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +2 -2
  262. package/SVF-doxygen/html/html/svf-ex_8cpp.html +2 -2
  263. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +2 -2
  264. package/images/svf-stat.pdf +0 -0
  265. package/include/Graphs/ConsG.h +1 -1
  266. package/include/Graphs/ConsGEdge.h +2 -2
  267. package/include/Graphs/ICFGNode.h +2 -2
  268. package/include/Graphs/VFG.h +4 -4
  269. package/include/MemoryModel/LocationSet.h +3 -3
  270. package/include/MemoryModel/SVFIR.h +1 -1
  271. package/include/MemoryModel/SVFStatements.h +378 -308
  272. package/include/MemoryModel/SVFVariables.h +31 -30
  273. package/include/SVF-FE/DCHG.h +3 -3
  274. package/include/SVF-FE/SVFIRBuilder.h +2 -2
  275. package/include/Util/IRAnnotator.h +1 -1
  276. package/lib/Graphs/ConsG.cpp +25 -25
  277. package/lib/Graphs/VFG.cpp +10 -10
  278. package/lib/MSSA/MemRegion.cpp +5 -5
  279. package/lib/MemoryModel/LocationSet.cpp +2 -2
  280. package/lib/MemoryModel/PAGBuilderFromFile.cpp +1 -1
  281. package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
  282. package/lib/MemoryModel/SVFIR.cpp +9 -9
  283. package/lib/MemoryModel/SVFStatements.cpp +11 -11
  284. package/lib/MemoryModel/SVFVariables.cpp +2 -2
  285. package/lib/MemoryModel/SymbolTableInfo.cpp +2 -2
  286. package/lib/SVF-FE/DCHG.cpp +1 -1
  287. package/lib/SVF-FE/Graph2Json.cpp +1 -1
  288. package/lib/SVF-FE/SVFIRBuilder.cpp +4 -4
  289. package/lib/Util/TypeBasedHeapCloning.cpp +5 -5
  290. package/lib/WPA/AndersenSFR.cpp +2 -2
  291. package/lib/WPA/CSC.cpp +2 -2
  292. package/lib/WPA/FlowSensitiveTBHC.cpp +3 -3
  293. package/package.json +1 -1
@@ -65,7 +65,6 @@ $(function() {
65
65
  <div class="summary">
66
66
  <a href="#pub-methods">Public Member Functions</a> &#124;
67
67
  <a href="#pri-methods">Private Member Functions</a> &#124;
68
- <a href="#pri-attribs">Private Attributes</a> &#124;
69
68
  <a href="classSVF_1_1NormalGepStmt-members.html">List of all members</a> </div>
70
69
  <div class="headertitle">
71
70
  <div class="title">SVF::NormalGepStmt Class Reference</div> </div>
@@ -79,7 +78,8 @@ Inheritance diagram for SVF::NormalGepStmt:</div>
79
78
  <div class="center">
80
79
  <img src="classSVF_1_1NormalGepStmt.png" usemap="#SVF::NormalGepStmt_map" alt=""/>
81
80
  <map id="SVF::NormalGepStmt_map" name="SVF::NormalGepStmt_map">
82
- <area href="classSVF_1_1GepStmt.html" alt="SVF::GepStmt" shape="rect" coords="0,112,187,136"/>
81
+ <area href="classSVF_1_1GepStmt.html" alt="SVF::GepStmt" shape="rect" coords="0,168,187,192"/>
82
+ <area href="classSVF_1_1AssignStmt.html" alt="SVF::AssignStmt" shape="rect" coords="0,112,187,136"/>
83
83
  <area href="classSVF_1_1SVFStmt.html" alt="SVF::SVFStmt" shape="rect" coords="0,56,187,80"/>
84
84
  <area href="classSVF_1_1GenericEdge.html" alt="SVF::GenericEdge&lt; NodeTy &gt;" shape="rect" coords="0,0,187,24"/>
85
85
  </map>
@@ -90,13 +90,23 @@ Public Member Functions</h2></td></tr>
90
90
  <tr class="memitem:a5c0e04f4ee0574e0e4a82c8070b33206"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1NormalGepStmt.html#a5c0e04f4ee0574e0e4a82c8070b33206">NormalGepStmt</a> (<a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *s, <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *d, const <a class="el" href="classSVF_1_1LocationSet.html">LocationSet</a> &amp;l)</td></tr>
91
91
  <tr class="memdesc:a5c0e04f4ee0574e0e4a82c8070b33206"><td class="mdescLeft">&#160;</td><td class="mdescRight">constructor <a href="#a5c0e04f4ee0574e0e4a82c8070b33206">More...</a><br /></td></tr>
92
92
  <tr class="separator:a5c0e04f4ee0574e0e4a82c8070b33206"><td class="memSeparator" colspan="2">&#160;</td></tr>
93
- <tr class="memitem:a904919192ddbd054381c3b863531ab10"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1NormalGepStmt.html#a904919192ddbd054381c3b863531ab10">getOffset</a> () const</td></tr>
94
- <tr class="memdesc:a904919192ddbd054381c3b863531ab10"><td class="mdescLeft">&#160;</td><td class="mdescRight">offset of the gep edge <a href="#a904919192ddbd054381c3b863531ab10">More...</a><br /></td></tr>
95
- <tr class="separator:a904919192ddbd054381c3b863531ab10"><td class="memSeparator" colspan="2">&#160;</td></tr>
96
- <tr class="memitem:a7bf625581c4852212bcea89562ea9cef"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1LocationSet.html">LocationSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1NormalGepStmt.html#a7bf625581c4852212bcea89562ea9cef">getLocationSet</a> () const</td></tr>
97
- <tr class="separator:a7bf625581c4852212bcea89562ea9cef"><td class="memSeparator" colspan="2">&#160;</td></tr>
93
+ <tr class="memitem:a5f68b485fb5d60deef2ca33da40c69ef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1NormalGepStmt.html#a5f68b485fb5d60deef2ca33da40c69ef">getFieldOffset</a> () const</td></tr>
94
+ <tr class="memdesc:a5f68b485fb5d60deef2ca33da40c69ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">offset of the gep edge <a href="#a5f68b485fb5d60deef2ca33da40c69ef">More...</a><br /></td></tr>
95
+ <tr class="separator:a5f68b485fb5d60deef2ca33da40c69ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
98
96
  <tr class="memitem:a1c56ef0156531ba4c81391e1eddc12e6"><td class="memItemLeft" align="right" valign="top">virtual const std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1NormalGepStmt.html#a1c56ef0156531ba4c81391e1eddc12e6">toString</a> () const override</td></tr>
99
97
  <tr class="separator:a1c56ef0156531ba4c81391e1eddc12e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
98
+ <tr class="inherit_header pub_methods_classSVF_1_1GepStmt"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSVF_1_1GepStmt')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></td></tr>
99
+ <tr class="memitem:abec33091e0dac0cdd5b95b6d7b0db3d8 inherit pub_methods_classSVF_1_1GepStmt"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1LocationSet.html">LocationSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8">getLocationSet</a> () const</td></tr>
100
+ <tr class="separator:abec33091e0dac0cdd5b95b6d7b0db3d8 inherit pub_methods_classSVF_1_1GepStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
101
+ <tr class="inherit_header pub_methods_classSVF_1_1AssignStmt"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSVF_1_1AssignStmt')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classSVF_1_1AssignStmt.html">SVF::AssignStmt</a></td></tr>
102
+ <tr class="memitem:ad03d28d16754c9049dd4d0ad3b6c1e28 inherit pub_methods_classSVF_1_1AssignStmt"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">getRHSVar</a> () const</td></tr>
103
+ <tr class="separator:ad03d28d16754c9049dd4d0ad3b6c1e28 inherit pub_methods_classSVF_1_1AssignStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
104
+ <tr class="memitem:a973a2b79da223275ed6a1831837b89c7 inherit pub_methods_classSVF_1_1AssignStmt"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AssignStmt.html#a973a2b79da223275ed6a1831837b89c7">getLHSVar</a> () const</td></tr>
105
+ <tr class="separator:a973a2b79da223275ed6a1831837b89c7 inherit pub_methods_classSVF_1_1AssignStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
106
+ <tr class="memitem:a4cec89489e82c60c287cae3327f3f01d inherit pub_methods_classSVF_1_1AssignStmt"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a> () const</td></tr>
107
+ <tr class="separator:a4cec89489e82c60c287cae3327f3f01d inherit pub_methods_classSVF_1_1AssignStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
108
+ <tr class="memitem:a98f731be7be9bc8e7fd09f5c2204c840 inherit pub_methods_classSVF_1_1AssignStmt"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a> () const</td></tr>
109
+ <tr class="separator:a98f731be7be9bc8e7fd09f5c2204c840 inherit pub_methods_classSVF_1_1AssignStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
100
110
  <tr class="inherit_header pub_methods_classSVF_1_1SVFStmt"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSVF_1_1SVFStmt')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td></tr>
101
111
  <tr class="memitem:a47102f72115d41bff899b1b2ffec75b1 inherit pub_methods_classSVF_1_1SVFStmt"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStmt.html#a47102f72115d41bff899b1b2ffec75b1">SVFStmt</a> (<a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *s, <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *d, <a class="el" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k)</td></tr>
102
112
  <tr class="memdesc:a47102f72115d41bff899b1b2ffec75b1 inherit pub_methods_classSVF_1_1SVFStmt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="classSVF_1_1SVFStmt.html#a47102f72115d41bff899b1b2ffec75b1">More...</a><br /></td></tr>
@@ -166,6 +176,14 @@ Static Public Member Functions</h2></td></tr>
166
176
  <tr class="separator:a92016e7d6061e4a157c9cd39ad94cc20 inherit pub_static_methods_classSVF_1_1GepStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
167
177
  <tr class="memitem:ac47064e21e2afdf7bd85c6acba44367f inherit pub_static_methods_classSVF_1_1GepStmt"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GepStmt.html#ac47064e21e2afdf7bd85c6acba44367f">classof</a> (const <a class="el" href="namespaceSVF.html#ab502ff5e204678640c1081d104f60971">GenericPAGEdgeTy</a> *edge)</td></tr>
168
178
  <tr class="separator:ac47064e21e2afdf7bd85c6acba44367f inherit pub_static_methods_classSVF_1_1GepStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
179
+ <tr class="inherit_header pub_static_methods_classSVF_1_1AssignStmt"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classSVF_1_1AssignStmt')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classSVF_1_1AssignStmt.html">SVF::AssignStmt</a></td></tr>
180
+ <tr class="memitem:a4f94b6731f324e44fc4d4e06d7acdbf7 inherit pub_static_methods_classSVF_1_1AssignStmt"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AssignStmt.html#a4f94b6731f324e44fc4d4e06d7acdbf7">classof</a> (const <a class="el" href="classSVF_1_1AssignStmt.html">AssignStmt</a> *)</td></tr>
181
+ <tr class="memdesc:a4f94b6731f324e44fc4d4e06d7acdbf7 inherit pub_static_methods_classSVF_1_1AssignStmt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Methods for support type inquiry through isa, cast, and dyn_cast: <a href="classSVF_1_1AssignStmt.html#a4f94b6731f324e44fc4d4e06d7acdbf7">More...</a><br /></td></tr>
182
+ <tr class="separator:a4f94b6731f324e44fc4d4e06d7acdbf7 inherit pub_static_methods_classSVF_1_1AssignStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
183
+ <tr class="memitem:ad5e2d41b8cd548628b59227368388ed0 inherit pub_static_methods_classSVF_1_1AssignStmt"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AssignStmt.html#ad5e2d41b8cd548628b59227368388ed0">classof</a> (const <a class="el" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</td></tr>
184
+ <tr class="separator:ad5e2d41b8cd548628b59227368388ed0 inherit pub_static_methods_classSVF_1_1AssignStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
185
+ <tr class="memitem:a8b2837153dcf9f7e2adc3b30b2dd0245 inherit pub_static_methods_classSVF_1_1AssignStmt"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AssignStmt.html#a8b2837153dcf9f7e2adc3b30b2dd0245">classof</a> (const <a class="el" href="namespaceSVF.html#ab502ff5e204678640c1081d104f60971">GenericPAGEdgeTy</a> *edge)</td></tr>
186
+ <tr class="separator:a8b2837153dcf9f7e2adc3b30b2dd0245 inherit pub_static_methods_classSVF_1_1AssignStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
169
187
  <tr class="inherit_header pub_static_methods_classSVF_1_1SVFStmt"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classSVF_1_1SVFStmt')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td></tr>
170
188
  <tr class="memitem:a3b20523aed66ac8943d7d00ff777137b inherit pub_static_methods_classSVF_1_1SVFStmt"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b">makeEdgeFlagWithAddionalOpnd</a> (<a class="el" href="classSVF_1_1GenericEdge.html#a7eb93c9018c80057672a8ce71615dc0d">GEdgeKind</a> k, const <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *var)</td></tr>
171
189
  <tr class="memdesc:a3b20523aed66ac8943d7d00ff777137b inherit pub_static_methods_classSVF_1_1SVFStmt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the unique edgeFlag value from edge kind and second variable operand for <a class="el" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>. <a href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b">More...</a><br /></td></tr>
@@ -193,12 +211,6 @@ Private Member Functions</h2></td></tr>
193
211
  <tr class="memdesc:af5c4696cb71f71ef38d2a62ceebc1789"><td class="mdescLeft">&#160;</td><td class="mdescRight">place holder <a href="#af5c4696cb71f71ef38d2a62ceebc1789">More...</a><br /></td></tr>
194
212
  <tr class="separator:af5c4696cb71f71ef38d2a62ceebc1789"><td class="memSeparator" colspan="2">&#160;</td></tr>
195
213
  </table><table class="memberdecls">
196
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
197
- Private Attributes</h2></td></tr>
198
- <tr class="memitem:a5dd71e9aea01d5dc2bf8fc070e67cadd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1LocationSet.html">LocationSet</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1NormalGepStmt.html#a5dd71e9aea01d5dc2bf8fc070e67cadd">ls</a></td></tr>
199
- <tr class="memdesc:a5dd71e9aea01d5dc2bf8fc070e67cadd"><td class="mdescLeft">&#160;</td><td class="mdescRight">location set of the gep edge <a href="#a5dd71e9aea01d5dc2bf8fc070e67cadd">More...</a><br /></td></tr>
200
- <tr class="separator:a5dd71e9aea01d5dc2bf8fc070e67cadd"><td class="memSeparator" colspan="2">&#160;</td></tr>
201
- </table><table class="memberdecls">
202
214
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
203
215
  Additional Inherited Members</h2></td></tr>
204
216
  <tr class="inherit_header pub_types_classSVF_1_1SVFStmt"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classSVF_1_1SVFStmt')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td></tr>
@@ -248,9 +260,13 @@ Additional Inherited Members</h2></td></tr>
248
260
  <tr class="memdesc:aa306e817648ab5def47e83473e99b3d3 inherit pub_static_attribs_classSVF_1_1SVFStmt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Total edge number. <a href="classSVF_1_1SVFStmt.html#aa306e817648ab5def47e83473e99b3d3">More...</a><br /></td></tr>
249
261
  <tr class="separator:aa306e817648ab5def47e83473e99b3d3 inherit pub_static_attribs_classSVF_1_1SVFStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
250
262
  <tr class="inherit_header pro_methods_classSVF_1_1GepStmt"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classSVF_1_1GepStmt')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></td></tr>
251
- <tr class="memitem:a6ace22baaf73db3302ff2b8ad4285bb6 inherit pro_methods_classSVF_1_1GepStmt"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GepStmt.html#a6ace22baaf73db3302ff2b8ad4285bb6">GepStmt</a> (<a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *s, <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *d, <a class="el" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">PEDGEK</a> k)</td></tr>
252
- <tr class="memdesc:a6ace22baaf73db3302ff2b8ad4285bb6 inherit pro_methods_classSVF_1_1GepStmt"><td class="mdescLeft">&#160;</td><td class="mdescRight">constructor <a href="classSVF_1_1GepStmt.html#a6ace22baaf73db3302ff2b8ad4285bb6">More...</a><br /></td></tr>
253
- <tr class="separator:a6ace22baaf73db3302ff2b8ad4285bb6 inherit pro_methods_classSVF_1_1GepStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
263
+ <tr class="memitem:ab2e054cf447dd676598d79edb44abfdf inherit pro_methods_classSVF_1_1GepStmt"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GepStmt.html#ab2e054cf447dd676598d79edb44abfdf">GepStmt</a> (<a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *s, <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *d, const <a class="el" href="classSVF_1_1LocationSet.html">LocationSet</a> &amp;l, <a class="el" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">PEDGEK</a> k)</td></tr>
264
+ <tr class="memdesc:ab2e054cf447dd676598d79edb44abfdf inherit pro_methods_classSVF_1_1GepStmt"><td class="mdescLeft">&#160;</td><td class="mdescRight">constructor <a href="classSVF_1_1GepStmt.html#ab2e054cf447dd676598d79edb44abfdf">More...</a><br /></td></tr>
265
+ <tr class="separator:ab2e054cf447dd676598d79edb44abfdf inherit pro_methods_classSVF_1_1GepStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
266
+ <tr class="inherit_header pro_methods_classSVF_1_1AssignStmt"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classSVF_1_1AssignStmt')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classSVF_1_1AssignStmt.html">SVF::AssignStmt</a></td></tr>
267
+ <tr class="memitem:aff4c35109790daed3c6170c985153620 inherit pro_methods_classSVF_1_1AssignStmt"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AssignStmt.html#aff4c35109790daed3c6170c985153620">AssignStmt</a> (<a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *s, <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *d, <a class="el" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k)</td></tr>
268
+ <tr class="memdesc:aff4c35109790daed3c6170c985153620 inherit pro_methods_classSVF_1_1AssignStmt"><td class="mdescLeft">&#160;</td><td class="mdescRight">constructor <a href="classSVF_1_1AssignStmt.html#aff4c35109790daed3c6170c985153620">More...</a><br /></td></tr>
269
+ <tr class="separator:aff4c35109790daed3c6170c985153620 inherit pro_methods_classSVF_1_1AssignStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
254
270
  <tr class="inherit_header pro_static_attribs_classSVF_1_1GenericEdge"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_classSVF_1_1GenericEdge')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td></tr>
255
271
  <tr class="memitem:af1c2fd4b5ef1d7b7605572bf2489c298 inherit pro_static_attribs_classSVF_1_1GenericEdge"><td class="memItemLeft" align="right" valign="top">static constexpr unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a> = 8</td></tr>
256
272
  <tr class="memdesc:af1c2fd4b5ef1d7b7605572bf2489c298 inherit pro_static_attribs_classSVF_1_1GenericEdge"><td class="mdescLeft">&#160;</td><td class="mdescRight">We use the lower 8 bits to denote edge kind. <a href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">More...</a><br /></td></tr>
@@ -259,9 +275,9 @@ Additional Inherited Members</h2></td></tr>
259
275
  <tr class="separator:a93dec4c27088242a4b1b6aa82cea46b9 inherit pro_static_attribs_classSVF_1_1GenericEdge"><td class="memSeparator" colspan="2">&#160;</td></tr>
260
276
  </table>
261
277
  <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
262
- <div class="textblock"><p>Gep statement with a fixed offset </p>
278
+ <div class="textblock"><p>Gep statement with a fixed field index for struct field access </p>
263
279
 
264
- <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00709">709</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
280
+ <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00459">459</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
265
281
  </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
266
282
  <a id="a6769f3460e31e3f91921bee6156e144c"></a>
267
283
  <h2 class="memtitle"><span class="permalink"><a href="#a6769f3460e31e3f91921bee6156e144c">&#9670;&nbsp;</a></span>NormalGepStmt() <span class="overload">[1/3]</span></h2>
@@ -360,9 +376,8 @@ Additional Inherited Members</h2></td></tr>
360
376
 
361
377
  <p>constructor </p>
362
378
 
363
- <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00740">740</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
364
- <div class="fragment"><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; : <a class="code" href="classSVF_1_1GepStmt.html#a9877729d1b82317d6e5d28bea9741586">GepStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a>), <a class="code" href="classSVF_1_1NormalGepStmt.html#a5dd71e9aea01d5dc2bf8fc070e67cadd">ls</a>(l)</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; {}</div><div class="ttc" id="classSVF_1_1NormalGepStmt_html_a5dd71e9aea01d5dc2bf8fc070e67cadd"><div class="ttname"><a href="classSVF_1_1NormalGepStmt.html#a5dd71e9aea01d5dc2bf8fc070e67cadd">SVF::NormalGepStmt::ls</a></div><div class="ttdeci">LocationSet ls</div><div class="ttdoc">location set of the gep edge </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00716">SVFStatements.h:716</a></div></div>
365
- <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVF::SVFStmt::NormalGep</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
379
+ <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00488">488</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
380
+ <div class="fragment"><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; : <a class="code" href="classSVF_1_1GepStmt.html#a9877729d1b82317d6e5d28bea9741586">GepStmt</a>(s,d,l, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a>)</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; {}</div><div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVF::SVFStmt::NormalGep</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
366
381
  <div class="ttc" id="classSVF_1_1GepStmt_html_a9877729d1b82317d6e5d28bea9741586"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a9877729d1b82317d6e5d28bea9741586">SVF::GepStmt::GepStmt</a></div><div class="ttdeci">GepStmt()</div><div class="ttdoc">place holder </div></div>
367
382
  </div><!-- fragment -->
368
383
  </div>
@@ -394,8 +409,8 @@ Additional Inherited Members</h2></td></tr>
394
409
 
395
410
  <p>Methods for support type inquiry through isa, cast, and dyn_cast: </p>
396
411
 
397
- <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00721">721</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
398
- <div class="fragment"><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; {</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; }</div></div><!-- fragment -->
412
+ <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00469">469</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
413
+ <div class="fragment"><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; {</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; }</div></div><!-- fragment -->
399
414
  </div>
400
415
  </div>
401
416
  <a id="a2609aa1080824b3568856660b11b253e"></a>
@@ -422,8 +437,8 @@ Additional Inherited Members</h2></td></tr>
422
437
  </table>
423
438
  </div><div class="memdoc">
424
439
 
425
- <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00725">725</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
426
- <div class="fragment"><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; {</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">return</span> edge-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a>;</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVF::SVFStmt::NormalGep</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
440
+ <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00473">473</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
441
+ <div class="fragment"><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; {</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">return</span> edge-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a>;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVF::SVFStmt::NormalGep</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
427
442
  </div><!-- fragment -->
428
443
  </div>
429
444
  </div>
@@ -451,8 +466,8 @@ Additional Inherited Members</h2></td></tr>
451
466
  </table>
452
467
  </div><div class="memdoc">
453
468
 
454
- <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00729">729</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
455
- <div class="fragment"><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; {</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keywordflow">return</span> edge-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a>;</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVF::SVFStmt::NormalGep</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
469
+ <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00477">477</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
470
+ <div class="fragment"><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; {</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">return</span> edge-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a>;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVF::SVFStmt::NormalGep</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
456
471
  </div><!-- fragment -->
457
472
  </div>
458
473
  </div>
@@ -480,13 +495,13 @@ Additional Inherited Members</h2></td></tr>
480
495
  </table>
481
496
  </div><div class="memdoc">
482
497
 
483
- <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00733">733</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
484
- <div class="fragment"><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; {</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <span class="keywordflow">return</span> edge-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a>;</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVF::SVFStmt::NormalGep</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
498
+ <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00481">481</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
499
+ <div class="fragment"><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; {</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">return</span> edge-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a>;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVF::SVFStmt::NormalGep</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
485
500
  </div><!-- fragment -->
486
501
  </div>
487
502
  </div>
488
- <a id="a7bf625581c4852212bcea89562ea9cef"></a>
489
- <h2 class="memtitle"><span class="permalink"><a href="#a7bf625581c4852212bcea89562ea9cef">&#9670;&nbsp;</a></span>getLocationSet()</h2>
503
+ <a id="a5f68b485fb5d60deef2ca33da40c69ef"></a>
504
+ <h2 class="memtitle"><span class="permalink"><a href="#a5f68b485fb5d60deef2ca33da40c69ef">&#9670;&nbsp;</a></span>getFieldOffset()</h2>
490
505
 
491
506
  <div class="memitem">
492
507
  <div class="memproto">
@@ -495,35 +510,7 @@ Additional Inherited Members</h2></td></tr>
495
510
  <td class="mlabels-left">
496
511
  <table class="memname">
497
512
  <tr>
498
- <td class="memname">const <a class="el" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; SVF::NormalGepStmt::getLocationSet </td>
499
- <td>(</td>
500
- <td class="paramname"></td><td>)</td>
501
- <td> const</td>
502
- </tr>
503
- </table>
504
- </td>
505
- <td class="mlabels-right">
506
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
507
- </tr>
508
- </table>
509
- </div><div class="memdoc">
510
-
511
- <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00748">748</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
512
- <div class="fragment"><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; {</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1NormalGepStmt.html#a5dd71e9aea01d5dc2bf8fc070e67cadd">ls</a>;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; }</div><div class="ttc" id="classSVF_1_1NormalGepStmt_html_a5dd71e9aea01d5dc2bf8fc070e67cadd"><div class="ttname"><a href="classSVF_1_1NormalGepStmt.html#a5dd71e9aea01d5dc2bf8fc070e67cadd">SVF::NormalGepStmt::ls</a></div><div class="ttdeci">LocationSet ls</div><div class="ttdoc">location set of the gep edge </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00716">SVFStatements.h:716</a></div></div>
513
- </div><!-- fragment -->
514
- </div>
515
- </div>
516
- <a id="a904919192ddbd054381c3b863531ab10"></a>
517
- <h2 class="memtitle"><span class="permalink"><a href="#a904919192ddbd054381c3b863531ab10">&#9670;&nbsp;</a></span>getOffset()</h2>
518
-
519
- <div class="memitem">
520
- <div class="memproto">
521
- <table class="mlabels">
522
- <tr>
523
- <td class="mlabels-left">
524
- <table class="memname">
525
- <tr>
526
- <td class="memname"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> SVF::NormalGepStmt::getOffset </td>
513
+ <td class="memname"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> SVF::NormalGepStmt::getFieldOffset </td>
527
514
  <td>(</td>
528
515
  <td class="paramname"></td><td>)</td>
529
516
  <td> const</td>
@@ -538,9 +525,9 @@ Additional Inherited Members</h2></td></tr>
538
525
 
539
526
  <p>offset of the gep edge </p>
540
527
 
541
- <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00744">744</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
542
- <div class="fragment"><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; {</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1NormalGepStmt.html#a5dd71e9aea01d5dc2bf8fc070e67cadd">ls</a>.<a class="code" href="classSVF_1_1LocationSet.html#ac098bc95299002b9016684fa7f2799ca">accumulateConstantOffset</a>();</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; }</div><div class="ttc" id="classSVF_1_1NormalGepStmt_html_a5dd71e9aea01d5dc2bf8fc070e67cadd"><div class="ttname"><a href="classSVF_1_1NormalGepStmt.html#a5dd71e9aea01d5dc2bf8fc070e67cadd">SVF::NormalGepStmt::ls</a></div><div class="ttdeci">LocationSet ls</div><div class="ttdoc">location set of the gep edge </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00716">SVFStatements.h:716</a></div></div>
543
- <div class="ttc" id="classSVF_1_1LocationSet_html_ac098bc95299002b9016684fa7f2799ca"><div class="ttname"><a href="classSVF_1_1LocationSet.html#ac098bc95299002b9016684fa7f2799ca">SVF::LocationSet::accumulateConstantOffset</a></div><div class="ttdeci">Size_t accumulateConstantOffset() const</div><div class="ttdoc">Get methods. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00154">LocationSet.h:154</a></div></div>
528
+ <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00492">492</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
529
+ <div class="fragment"><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8">getLocationSet</a>().<a class="code" href="classSVF_1_1LocationSet.html#a43de212ce81a29391cee13d8dbaa93eb">accumulateConstantFieldIdx</a>();</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; }</div><div class="ttc" id="classSVF_1_1GepStmt_html_abec33091e0dac0cdd5b95b6d7b0db3d8"><div class="ttname"><a href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8">SVF::GepStmt::getLocationSet</a></div><div class="ttdeci">const LocationSet &amp; getLocationSet() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00440">SVFStatements.h:440</a></div></div>
530
+ <div class="ttc" id="classSVF_1_1LocationSet_html_a43de212ce81a29391cee13d8dbaa93eb"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a43de212ce81a29391cee13d8dbaa93eb">SVF::LocationSet::accumulateConstantFieldIdx</a></div><div class="ttdeci">Size_t accumulateConstantFieldIdx() const</div><div class="ttdoc">Get methods. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00154">LocationSet.h:154</a></div></div>
544
531
  </div><!-- fragment -->
545
532
  </div>
546
533
  </div>
@@ -598,40 +585,13 @@ Additional Inherited Members</h2></td></tr>
598
585
  <p>Reimplemented from <a class="el" href="classSVF_1_1GepStmt.html#acae68ff97d408a1dd929b0348415c81d">SVF::GepStmt</a>.</p>
599
586
 
600
587
  <p class="definition">Definition at line <a class="el" href="SVFStatements_8cpp_source.html#l00182">182</a> of file <a class="el" href="SVFStatements_8cpp_source.html">SVFStatements.cpp</a>.</p>
601
- <div class="fragment"><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; std::string str;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;NormalGepStmt: [&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() &lt;&lt; <span class="stringliteral">&quot;&lt;--&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() &lt;&lt; <span class="stringliteral">&quot;]\t&quot;</span>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a8eba08052f7af57b762155a58844480c">Options::PAGDotGraphShorter</a>) {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; rawstr &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">getValue</a>());</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
602
- <div class="ttc" id="classSVF_1_1SVFStmt_html_a65ee8b43a3a4999eb112a197d1a9f882"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">SVF::SVFStmt::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00116">SVFStatements.h:116</a></div></div>
603
- <div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
588
+ <div class="fragment"><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; std::string str;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;NormalGepStmt: [&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>() &lt;&lt; <span class="stringliteral">&quot;&lt;--&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>() &lt;&lt; <span class="stringliteral">&quot;]\t&quot;</span>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a8eba08052f7af57b762155a58844480c">Options::PAGDotGraphShorter</a>) {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; rawstr &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">getValue</a>());</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFStmt_html_a65ee8b43a3a4999eb112a197d1a9f882"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">SVF::SVFStmt::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00116">SVFStatements.h:116</a></div></div>
589
+ <div class="ttc" id="classSVF_1_1AssignStmt_html_a4cec89489e82c60c287cae3327f3f01d"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">SVF::AssignStmt::getRHSVarID</a></div><div class="ttdeci">NodeID getRHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00256">SVFStatements.h:256</a></div></div>
604
590
  <div class="ttc" id="classSVF_1_1Options_html_a8eba08052f7af57b762155a58844480c"><div class="ttname"><a href="classSVF_1_1Options.html#a8eba08052f7af57b762155a58844480c">SVF::Options::PAGDotGraphShorter</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; PAGDotGraphShorter</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00134">Options.h:134</a></div></div>
605
591
  <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
592
+ <div class="ttc" id="classSVF_1_1AssignStmt_html_a98f731be7be9bc8e7fd09f5c2204c840"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">SVF::AssignStmt::getLHSVarID</a></div><div class="ttdeci">NodeID getLHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00259">SVFStatements.h:259</a></div></div>
606
593
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00388">SVFUtil.cpp:388</a></div></div>
607
594
  </div><!-- fragment -->
608
- </div>
609
- </div>
610
- <h2 class="groupheader">Member Data Documentation</h2>
611
- <a id="a5dd71e9aea01d5dc2bf8fc070e67cadd"></a>
612
- <h2 class="memtitle"><span class="permalink"><a href="#a5dd71e9aea01d5dc2bf8fc070e67cadd">&#9670;&nbsp;</a></span>ls</h2>
613
-
614
- <div class="memitem">
615
- <div class="memproto">
616
- <table class="mlabels">
617
- <tr>
618
- <td class="mlabels-left">
619
- <table class="memname">
620
- <tr>
621
- <td class="memname"><a class="el" href="classSVF_1_1LocationSet.html">LocationSet</a> SVF::NormalGepStmt::ls</td>
622
- </tr>
623
- </table>
624
- </td>
625
- <td class="mlabels-right">
626
- <span class="mlabels"><span class="mlabel">private</span></span> </td>
627
- </tr>
628
- </table>
629
- </div><div class="memdoc">
630
-
631
- <p>location set of the gep edge </p>
632
-
633
- <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00716">716</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
634
-
635
595
  </div>
636
596
  </div>
637
597
  <hr/>The documentation for this class was generated from the following files:<ul>
@@ -461,7 +461,7 @@ Additional Inherited Members</h2></td></tr>
461
461
  <p>Whether this node is of pointer type (used for pointer analysis). </p>
462
462
 
463
463
  <p class="definition">Definition at line <a class="el" href="VFGNode_8h_source.html#l01142">1142</a> of file <a class="el" href="VFGNode_8h_source.html">VFGNode.h</a>.</p>
464
- <div class="fragment"><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; {</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1NullPtrVFGNode.html#adef43dcc86e61145a7fdc6711b28239d">node</a>-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>();</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFVar_html_a3b61042079a6c9dc395f38925c6a1271"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">SVF::SVFVar::isPointer</a></div><div class="ttdeci">virtual bool isPointer() const</div><div class="ttdoc">Whether it is a pointer. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00115">SVFVariables.h:115</a></div></div>
464
+ <div class="fragment"><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; {</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1NullPtrVFGNode.html#adef43dcc86e61145a7fdc6711b28239d">node</a>-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>();</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFVar_html_a3b61042079a6c9dc395f38925c6a1271"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">SVF::SVFVar::isPointer</a></div><div class="ttdeci">virtual bool isPointer() const</div><div class="ttdoc">Whether it is a pointer. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00118">SVFVariables.h:118</a></div></div>
465
465
  <div class="ttc" id="classSVF_1_1NullPtrVFGNode_html_adef43dcc86e61145a7fdc6711b28239d"><div class="ttname"><a href="classSVF_1_1NullPtrVFGNode.html#adef43dcc86e61145a7fdc6711b28239d">SVF::NullPtrVFGNode::node</a></div><div class="ttdeci">const PAGNode * node</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l01134">VFGNode.h:1134</a></div></div>
466
466
  </div><!-- fragment -->
467
467
  </div>
@@ -740,7 +740,7 @@ Private Attributes</h2></td></tr>
740
740
  <p>Whether a location set is a pointer type or not </p>
741
741
 
742
742
  <p class="definition">Definition at line <a class="el" href="SymbolTableInfo_8cpp_source.html#l00538">538</a> of file <a class="el" href="SymbolTableInfo_8cpp_source.html">SymbolTableInfo.cpp</a>.</p>
743
- <div class="fragment"><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;{</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ObjTypeInfo.html#a26c179394fbda9a9261d0bf3f52b619d">isHeap</a>() || <a class="code" href="classSVF_1_1ObjTypeInfo.html#a3594dc1c1943dbac0ab72f2ff163c523">isStaticObj</a>())</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* ety = <a class="code" href="classSVF_1_1ObjTypeInfo.html#a706cdc47e78732853252d5a4af85653a">getType</a>();</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">while</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">ArrayType</a> *AT= SVFUtil::dyn_cast&lt;ArrayType&gt;(ety))</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; {</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; ety = AT-&gt;getElementType();</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; }</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;StructType&gt;(ety) || SVFUtil::isa&lt;ArrayType&gt;(ety))</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; {</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordtype">bool</span> hasIntersection = <span class="keyword">false</span>;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keyword">const</span> vector&lt;FlattenedFieldInfo&gt; &amp;infovec = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a9ca564bdc1f40a2ccd30d98e0e4075b0">getFlattenedFieldInfoVec</a>(ety);</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; vector&lt;FlattenedFieldInfo&gt;::const_iterator it = infovec.begin();</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; vector&lt;FlattenedFieldInfo&gt;::const_iterator eit = infovec.end();</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; {</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1FlattenedFieldInfo.html">FlattenedFieldInfo</a>&amp; fieldLS = *it;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordflow">if</span> (ls.<a class="code" href="classSVF_1_1LocationSet.html#a0e1cddc4228e310c95f68c661c7b94c8">intersects</a>(<a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>(fieldLS)))</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; {</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; hasIntersection = <span class="keyword">true</span>;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">if</span> (fieldLS.<a class="code" href="classSVF_1_1FlattenedFieldInfo.html#a92c1b65c36feeabf09541c9af4650f14">getFlattenElemTy</a>()-&gt;isPointerTy())</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; }</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; }</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(hasIntersection &amp;&amp; <span class="stringliteral">&quot;cannot find field of specified offset&quot;</span>);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; }</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; {</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ObjTypeInfo.html#a3594dc1c1943dbac0ab72f2ff163c523">isStaticObj</a>() || <a class="code" href="classSVF_1_1ObjTypeInfo.html#a26c179394fbda9a9261d0bf3f52b619d">isHeap</a>())</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; {</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="comment">// TODO: Objects which cannot find proper field for a certain offset including</span></div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="comment">// arguments in main(), static objects allocated before main and heap</span></div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="comment">// objects. Right now they&#39;re considered to have infinite fields and we</span></div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="comment">// treat each field as pointers conservatively.</span></div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="comment">// Try to model static and heap objects more accurately in the future.</span></div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; }</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; {</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="comment">// TODO: Using new memory model (locMM) may create objects with spurious offset</span></div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="comment">// as we simply return new offset by mod operation without checking its</span></div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="comment">// correctness in LocSymTableInfo::getModulusOffset(). So the following</span></div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="comment">// assertion may fail. Try to refine the new memory model.</span></div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="comment">//assert(ls.getOffset() == 0 &amp;&amp; &quot;cannot get a field from a non-struct type&quot;);</span></div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1ObjTypeInfo.html#ac5bae1e7917f415193a805e8d2e29320">hasPtrObj</a>() == <span class="keyword">false</span>);</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; }</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; }</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;}</div><div class="ttc" id="classSVF_1_1LocationSet_html_a0e1cddc4228e310c95f68c661c7b94c8"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a0e1cddc4228e310c95f68c661c7b94c8">SVF::LocationSet::intersects</a></div><div class="ttdeci">bool intersects(const LocationSet &amp;RHS) const</div><div class="ttdoc">Return TRUE if we share any location in common with RHS. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00174">LocationSet.h:174</a></div></div>
743
+ <div class="fragment"><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;{</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ObjTypeInfo.html#a26c179394fbda9a9261d0bf3f52b619d">isHeap</a>() || <a class="code" href="classSVF_1_1ObjTypeInfo.html#a3594dc1c1943dbac0ab72f2ff163c523">isStaticObj</a>())</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* ety = <a class="code" href="classSVF_1_1ObjTypeInfo.html#a706cdc47e78732853252d5a4af85653a">getType</a>();</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">while</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">ArrayType</a> *AT= SVFUtil::dyn_cast&lt;ArrayType&gt;(ety))</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; {</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; ety = AT-&gt;getElementType();</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; }</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;StructType&gt;(ety) || SVFUtil::isa&lt;ArrayType&gt;(ety))</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; {</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordtype">bool</span> hasIntersection = <span class="keyword">false</span>;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keyword">const</span> vector&lt;FlattenedFieldInfo&gt; &amp;infovec = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a9ca564bdc1f40a2ccd30d98e0e4075b0">getFlattenedFieldInfoVec</a>(ety);</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; vector&lt;FlattenedFieldInfo&gt;::const_iterator it = infovec.begin();</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; vector&lt;FlattenedFieldInfo&gt;::const_iterator eit = infovec.end();</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; {</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1FlattenedFieldInfo.html">FlattenedFieldInfo</a>&amp; fieldLS = *it;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordflow">if</span> (ls.<a class="code" href="classSVF_1_1LocationSet.html#a0e1cddc4228e310c95f68c661c7b94c8">intersects</a>(<a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>(fieldLS)))</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; {</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; hasIntersection = <span class="keyword">true</span>;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">if</span> (fieldLS.<a class="code" href="classSVF_1_1FlattenedFieldInfo.html#a92c1b65c36feeabf09541c9af4650f14">getFlattenElemTy</a>()-&gt;isPointerTy())</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; }</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; }</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(hasIntersection &amp;&amp; <span class="stringliteral">&quot;cannot find field of specified offset&quot;</span>);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; }</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; {</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ObjTypeInfo.html#a3594dc1c1943dbac0ab72f2ff163c523">isStaticObj</a>() || <a class="code" href="classSVF_1_1ObjTypeInfo.html#a26c179394fbda9a9261d0bf3f52b619d">isHeap</a>())</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; {</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="comment">// TODO: Objects which cannot find proper field for a certain offset including</span></div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="comment">// arguments in main(), static objects allocated before main and heap</span></div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="comment">// objects. Right now they&#39;re considered to have infinite fields and we</span></div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="comment">// treat each field as pointers conservatively.</span></div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="comment">// Try to model static and heap objects more accurately in the future.</span></div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; }</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; {</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="comment">// TODO: Using new memory model (locMM) may create objects with spurious offset</span></div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="comment">// as we simply return new offset by mod operation without checking its</span></div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="comment">// correctness in LocSymTableInfo::getModulusOffset(). So the following</span></div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="comment">// assertion may fail. Try to refine the new memory model.</span></div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="comment">//assert(ls.getFieldOffset() == 0 &amp;&amp; &quot;cannot get a field from a non-struct type&quot;);</span></div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1ObjTypeInfo.html#ac5bae1e7917f415193a805e8d2e29320">hasPtrObj</a>() == <span class="keyword">false</span>);</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; }</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; }</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;}</div><div class="ttc" id="classSVF_1_1LocationSet_html_a0e1cddc4228e310c95f68c661c7b94c8"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a0e1cddc4228e310c95f68c661c7b94c8">SVF::LocationSet::intersects</a></div><div class="ttdeci">bool intersects(const LocationSet &amp;RHS) const</div><div class="ttdoc">Return TRUE if we share any location in common with RHS. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00174">LocationSet.h:174</a></div></div>
744
744
  <div class="ttc" id="classSVF_1_1ObjTypeInfo_html_a26c179394fbda9a9261d0bf3f52b619d"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a26c179394fbda9a9261d0bf3f52b619d">SVF::ObjTypeInfo::isHeap</a></div><div class="ttdeci">bool isHeap()</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00679">SymbolTableInfo.h:679</a></div></div>
745
745
  <div class="ttc" id="namespaceSVF_html_a1d008c0666c145622b81d427be64c52d"><div class="ttname"><a href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">SVF::Type</a></div><div class="ttdeci">llvm::Type Type</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00075">BasicTypes.h:75</a></div></div>
746
746
  <div class="ttc" id="classSVF_1_1FlattenedFieldInfo_html_a92c1b65c36feeabf09541c9af4650f14"><div class="ttname"><a href="classSVF_1_1FlattenedFieldInfo.html#a92c1b65c36feeabf09541c9af4650f14">SVF::FlattenedFieldInfo::getFlattenElemTy</a></div><div class="ttdeci">const Type * getFlattenElemTy() const</div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00059">LocationSet.h:59</a></div></div>