svf-tools 1.0.613 → 1.0.614

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 (538) hide show
  1. package/CMakeLists.txt +13 -0
  2. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +1 -1
  3. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
  4. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +7 -6
  5. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +15 -15
  6. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +22 -22
  8. package/SVF-doxygen/html/html/Andersen_8h_source.html +16 -16
  9. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +6 -6
  10. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +7 -7
  11. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +6 -6
  12. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +1 -1
  14. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +5 -5
  15. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +11 -11
  16. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +1 -1
  17. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +5 -5
  19. package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
  20. package/SVF-doxygen/html/html/CSC_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +14 -14
  22. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
  24. package/SVF-doxygen/html/html/ConsG_8h_source.html +9 -9
  25. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +18 -18
  26. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +9 -9
  27. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +4 -4
  28. package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
  29. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +8 -8
  30. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +4 -6
  32. package/SVF-doxygen/html/html/DDAPass_8h_source.html +3 -3
  33. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +9 -9
  34. package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
  35. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +22 -22
  36. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +21 -21
  40. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
  41. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  42. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +10 -10
  43. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
  44. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +13 -13
  45. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +27 -28
  46. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +65 -65
  47. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
  48. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  49. package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
  50. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
  51. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -3
  52. package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
  53. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +6 -6
  54. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h_source.html +3 -3
  55. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +23 -28
  56. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +8 -8
  57. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
  58. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +9 -9
  59. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +2 -2
  60. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +9 -9
  61. package/SVF-doxygen/html/html/LocationSet_8h_source.html +3 -3
  62. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +5 -5
  63. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +3 -3
  64. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +3 -3
  65. package/SVF-doxygen/html/html/MHP_8cpp_source.html +10 -10
  66. package/SVF-doxygen/html/html/MHP_8h_source.html +5 -5
  67. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +17 -17
  68. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +8 -8
  69. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +3 -3
  70. package/SVF-doxygen/html/html/MTA_8cpp_source.html +12 -17
  71. package/SVF-doxygen/html/html/MTA_8h_source.html +3 -4
  72. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +10 -10
  73. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  74. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +34 -34
  75. package/SVF-doxygen/html/html/MemRegion_8h_source.html +7 -7
  76. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +16 -15
  77. package/SVF-doxygen/html/html/MemSSA_8h_source.html +53 -52
  78. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +7 -8
  79. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +7 -7
  80. package/SVF-doxygen/html/html/Options_8cpp_source.html +52 -53
  81. package/SVF-doxygen/html/html/Options_8h_source.html +53 -54
  82. package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
  83. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +3 -3
  84. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +3 -3
  86. package/SVF-doxygen/html/html/PTAStat_8h_source.html +1 -1
  87. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +33 -33
  88. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +91 -95
  89. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +31 -39
  90. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +85 -92
  91. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +20 -20
  92. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +16 -16
  93. package/SVF-doxygen/html/html/PointsTo_8cpp.html +1 -0
  94. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +51 -51
  95. package/SVF-doxygen/html/html/PointsTo_8h_source.html +38 -38
  96. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +6 -6
  97. package/SVF-doxygen/html/html/SCC_8h_source.html +4 -4
  98. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +11 -22
  99. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +14 -17
  100. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
  101. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  102. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +7 -7
  103. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +21 -19
  104. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +5 -5
  105. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +18 -18
  106. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +49 -62
  107. package/SVF-doxygen/html/html/SVFG_8h_source.html +45 -45
  108. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +12 -12
  109. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +8 -8
  110. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +3 -3
  111. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +10 -16
  112. package/SVF-doxygen/html/html/SVFIR_8h_source.html +83 -83
  113. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +19 -19
  114. package/SVF-doxygen/html/html/SVFType_8h.html +22 -22
  115. package/SVF-doxygen/html/html/SVFType_8h_source.html +76 -77
  116. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +5 -5
  117. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +11 -11
  118. package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +5 -5
  119. package/SVF-doxygen/html/html/SVFValue_8h_source.html +4 -4
  120. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  121. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +3 -3
  122. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +6 -6
  123. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +4 -4
  124. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +15 -15
  125. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -3
  126. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +69 -71
  127. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +13 -13
  128. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +39 -39
  129. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
  130. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -7
  131. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +49 -51
  132. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +13 -13
  133. package/SVF-doxygen/html/html/TCT_8cpp_source.html +4 -4
  134. package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
  135. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +8 -8
  136. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  137. package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
  138. package/SVF-doxygen/html/html/VFG_8cpp_source.html +17 -17
  139. package/SVF-doxygen/html/html/VFG_8h_source.html +5 -5
  140. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +8 -8
  141. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +33 -33
  142. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +4 -4
  143. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +11 -11
  144. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +12 -12
  145. package/SVF-doxygen/html/html/WPAPass_8h_source.html +2 -2
  146. package/SVF-doxygen/html/html/WPASolver_8h_source.html +25 -25
  147. package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +1 -1
  148. package/SVF-doxygen/html/html/cfl_8cpp.html +1 -5
  149. package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -5
  150. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +2 -2
  151. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +2 -2
  152. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +2 -2
  153. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +2 -2
  154. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +187 -188
  155. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +104 -107
  156. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +163 -164
  157. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +47 -50
  158. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +194 -195
  159. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +45 -48
  160. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +204 -205
  161. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +35 -38
  162. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +17 -17
  163. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +191 -192
  164. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +29 -32
  165. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +122 -123
  166. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +158 -219
  167. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +2 -2
  168. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +137 -138
  169. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +57 -49
  170. package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +138 -139
  171. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +34 -34
  172. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +7 -7
  173. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +140 -141
  175. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +30 -30
  176. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +8 -8
  177. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +2 -2
  178. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +2 -2
  179. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +114 -114
  180. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +6 -6
  181. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +8 -8
  182. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +28 -28
  183. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +2 -2
  184. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +6 -6
  185. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +4 -4
  186. package/SVF-doxygen/html/html/classSVF_1_1DDAPass-members.html +1 -1
  187. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +17 -31
  188. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +10 -10
  189. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +40 -40
  190. package/SVF-doxygen/html/html/classSVF_1_1DFPTData.html +15 -15
  191. package/SVF-doxygen/html/html/classSVF_1_1DiffPTData.html +4 -4
  192. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +11 -11
  193. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +5 -5
  194. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
  195. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +2 -2
  196. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +1 -1
  197. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +228 -229
  198. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +62 -65
  199. package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +5 -5
  200. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +17 -17
  201. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +194 -195
  202. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +55 -55
  203. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +219 -220
  204. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +335 -342
  205. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +57 -57
  206. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +6 -6
  207. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +2 -2
  208. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +2 -2
  209. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +4 -4
  210. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +2 -2
  211. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +2 -2
  212. package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +1 -1
  213. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +6 -6
  214. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +2 -2
  215. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +4 -4
  216. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +4 -4
  217. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +2 -2
  218. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +8 -8
  219. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis-members.html +1 -1
  220. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +20 -14
  221. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +4 -4
  222. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +106 -92
  223. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +5 -5
  224. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +36 -36
  225. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +2 -2
  226. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +12 -12
  227. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +25 -25
  228. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +3 -3
  229. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +26 -26
  230. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +87 -87
  231. package/SVF-doxygen/html/html/classSVF_1_1MTA-members.html +2 -2
  232. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +27 -33
  233. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +21 -21
  234. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +14 -14
  235. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder-members.html +41 -43
  236. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +57 -80
  237. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
  238. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +54 -54
  239. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +4 -4
  240. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +4 -3
  241. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +170 -143
  242. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +16 -16
  243. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +2 -2
  244. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData-members.html +3 -3
  245. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData.html +13 -15
  246. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +7 -7
  247. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +2 -2
  248. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +8 -8
  249. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  250. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +17 -18
  251. package/SVF-doxygen/html/html/classSVF_1_1Options.html +53 -79
  252. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  253. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +2 -2
  254. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +2 -2
  255. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +3 -3
  256. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +3 -3
  257. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +4 -4
  258. package/SVF-doxygen/html/html/classSVF_1_1PTData.html +11 -11
  259. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData-members.html +28 -28
  260. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +174 -177
  261. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData-members.html +17 -17
  262. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +99 -102
  263. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData-members.html +30 -30
  264. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +125 -127
  265. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData-members.html +13 -13
  266. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +83 -86
  267. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache-members.html +1 -1
  268. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +122 -122
  269. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData-members.html +22 -22
  270. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +137 -140
  271. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +56 -56
  272. package/SVF-doxygen/html/html/classSVF_1_1PointsTo-members.html +16 -16
  273. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +183 -178
  274. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator-members.html +7 -7
  275. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +87 -65
  276. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +6 -6
  277. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection.html +3 -3
  278. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html +1 -1
  279. package/SVF-doxygen/html/html/classSVF_1_1SVFArgument-members.html +1 -1
  280. package/SVF-doxygen/html/html/classSVF_1_1SVFArgument.html +4 -4
  281. package/SVF-doxygen/html/html/classSVF_1_1SVFArrayType.html +6 -6
  282. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock-members.html +3 -3
  283. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +13 -16
  284. package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue-members.html +1 -1
  285. package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue.html +2 -2
  286. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst-members.html +1 -1
  287. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst.html +2 -2
  288. package/SVF-doxygen/html/html/classSVF_1_1SVFConstant-members.html +1 -1
  289. package/SVF-doxygen/html/html/classSVF_1_1SVFConstant.html +3 -3
  290. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData-members.html +1 -1
  291. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData.html +2 -2
  292. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP-members.html +1 -1
  293. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP.html +2 -2
  294. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt-members.html +1 -1
  295. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt.html +2 -2
  296. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr-members.html +1 -1
  297. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr.html +2 -2
  298. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +1 -1
  299. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +5 -7
  300. package/SVF-doxygen/html/html/classSVF_1_1SVFFunctionType.html +9 -9
  301. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +2 -2
  302. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +211 -236
  303. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder-members.html +7 -9
  304. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +50 -138
  305. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +9 -9
  306. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +82 -82
  307. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +5 -5
  308. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue-members.html +1 -1
  309. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +2 -2
  310. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +1 -1
  311. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +203 -215
  312. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +13 -13
  313. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +79 -79
  314. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction-members.html +1 -1
  315. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +4 -4
  316. package/SVF-doxygen/html/html/classSVF_1_1SVFIntergerType.html +5 -5
  317. package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue-members.html +1 -1
  318. package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue.html +2 -2
  319. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +0 -4
  320. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +5 -5
  321. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue-members.html +1 -1
  322. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue.html +3 -3
  323. package/SVF-doxygen/html/html/classSVF_1_1SVFPointerType.html +9 -9
  324. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +19 -19
  325. package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +5 -5
  326. package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +38 -38
  327. package/SVF-doxygen/html/html/classSVF_1_1SVFValue-members.html +1 -1
  328. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +4 -5
  329. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +1 -1
  330. package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst-members.html +1 -1
  331. package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst.html +2 -2
  332. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +9 -9
  333. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +12 -14
  334. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +42 -68
  335. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector-members.html +1 -1
  336. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +108 -109
  337. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator-members.html +1 -1
  338. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html +50 -50
  339. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +6 -6
  340. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +146 -146
  341. package/SVF-doxygen/html/html/classSVF_1_1StInfo-members.html +5 -5
  342. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +48 -61
  343. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +178 -179
  344. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +35 -38
  345. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
  346. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +20 -20
  347. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +42 -46
  348. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +10 -10
  349. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +8 -8
  350. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +169 -170
  351. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +29 -32
  352. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
  353. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +28 -28
  354. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +263 -264
  355. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +112 -115
  356. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +41 -41
  357. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
  358. package/SVF-doxygen/html/html/classSVF_1_1VersionedPTData.html +9 -9
  359. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver-members.html +2 -2
  360. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +9 -9
  361. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver-members.html +2 -2
  362. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +15 -15
  363. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +25 -25
  364. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver-members.html +2 -2
  365. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +17 -17
  366. package/SVF-doxygen/html/html/classSVF_1_1WPASolver-members.html +2 -2
  367. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +76 -81
  368. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +2 -2
  369. package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
  370. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  371. package/SVF-doxygen/html/html/functions.html +1 -1
  372. package/SVF-doxygen/html/html/functions_0x7e.html +16 -16
  373. package/SVF-doxygen/html/html/functions_a.html +7 -7
  374. package/SVF-doxygen/html/html/functions_b.html +6 -6
  375. package/SVF-doxygen/html/html/functions_c.html +27 -27
  376. package/SVF-doxygen/html/html/functions_d.html +10 -11
  377. package/SVF-doxygen/html/html/functions_e.html +2 -2
  378. package/SVF-doxygen/html/html/functions_f.html +6 -6
  379. package/SVF-doxygen/html/html/functions_func.html +6 -6
  380. package/SVF-doxygen/html/html/functions_func_0x7e.html +16 -16
  381. package/SVF-doxygen/html/html/functions_func_b.html +6 -6
  382. package/SVF-doxygen/html/html/functions_func_c.html +27 -27
  383. package/SVF-doxygen/html/html/functions_func_d.html +10 -11
  384. package/SVF-doxygen/html/html/functions_func_e.html +2 -2
  385. package/SVF-doxygen/html/html/functions_func_f.html +5 -5
  386. package/SVF-doxygen/html/html/functions_func_g.html +22 -22
  387. package/SVF-doxygen/html/html/functions_func_h.html +3 -3
  388. package/SVF-doxygen/html/html/functions_func_i.html +2 -2
  389. package/SVF-doxygen/html/html/functions_func_o.html +3 -3
  390. package/SVF-doxygen/html/html/functions_func_p.html +5 -5
  391. package/SVF-doxygen/html/html/functions_func_r.html +5 -8
  392. package/SVF-doxygen/html/html/functions_func_s.html +5 -5
  393. package/SVF-doxygen/html/html/functions_func_t.html +1 -1
  394. package/SVF-doxygen/html/html/functions_func_u.html +23 -23
  395. package/SVF-doxygen/html/html/functions_g.html +25 -28
  396. package/SVF-doxygen/html/html/functions_h.html +3 -3
  397. package/SVF-doxygen/html/html/functions_i.html +5 -5
  398. package/SVF-doxygen/html/html/functions_m.html +1 -1
  399. package/SVF-doxygen/html/html/functions_o.html +13 -13
  400. package/SVF-doxygen/html/html/functions_p.html +19 -19
  401. package/SVF-doxygen/html/html/functions_r.html +11 -12
  402. package/SVF-doxygen/html/html/functions_s.html +32 -35
  403. package/SVF-doxygen/html/html/functions_t.html +12 -12
  404. package/SVF-doxygen/html/html/functions_type_t.html +1 -1
  405. package/SVF-doxygen/html/html/functions_u.html +26 -23
  406. package/SVF-doxygen/html/html/functions_v.html +6 -6
  407. package/SVF-doxygen/html/html/functions_vars.html +1 -1
  408. package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
  409. package/SVF-doxygen/html/html/functions_vars_g.html +0 -3
  410. package/SVF-doxygen/html/html/functions_vars_i.html +1 -1
  411. package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
  412. package/SVF-doxygen/html/html/functions_vars_p.html +2 -2
  413. package/SVF-doxygen/html/html/functions_vars_s.html +5 -8
  414. package/SVF-doxygen/html/html/functions_vars_t.html +1 -1
  415. package/SVF-doxygen/html/html/functions_vars_u.html +3 -0
  416. package/SVF-doxygen/html/html/functions_w.html +3 -7
  417. package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +1 -1
  418. package/SVF-doxygen/html/html/mta_8cpp.html +1 -1
  419. package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
  420. package/SVF-doxygen/html/html/namespaceSVF.html +35 -35
  421. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +2 -2
  422. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +4 -4
  423. package/SVF-doxygen/html/html/saber_8cpp.html +1 -5
  424. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -5
  425. package/SVF-doxygen/html/html/search/all_0.js +1 -1
  426. package/SVF-doxygen/html/html/search/all_1.js +4 -4
  427. package/SVF-doxygen/html/html/search/all_10.js +15 -15
  428. package/SVF-doxygen/html/html/search/all_11.js +1 -2
  429. package/SVF-doxygen/html/html/search/all_12.js +19 -20
  430. package/SVF-doxygen/html/html/search/all_13.js +8 -8
  431. package/SVF-doxygen/html/html/search/all_14.js +13 -12
  432. package/SVF-doxygen/html/html/search/all_15.js +4 -4
  433. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  434. package/SVF-doxygen/html/html/search/all_19.js +16 -16
  435. package/SVF-doxygen/html/html/search/all_2.js +6 -6
  436. package/SVF-doxygen/html/html/search/all_3.js +14 -14
  437. package/SVF-doxygen/html/html/search/all_4.js +5 -5
  438. package/SVF-doxygen/html/html/search/all_5.js +2 -2
  439. package/SVF-doxygen/html/html/search/all_6.js +5 -5
  440. package/SVF-doxygen/html/html/search/all_7.js +11 -12
  441. package/SVF-doxygen/html/html/search/all_8.js +3 -3
  442. package/SVF-doxygen/html/html/search/all_9.js +3 -3
  443. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  444. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  445. package/SVF-doxygen/html/html/search/all_d.js +3 -3
  446. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  447. package/SVF-doxygen/html/html/search/all_f.js +5 -5
  448. package/SVF-doxygen/html/html/search/functions_0.js +4 -4
  449. package/SVF-doxygen/html/html/search/functions_1.js +6 -6
  450. package/SVF-doxygen/html/html/search/functions_10.js +1 -2
  451. package/SVF-doxygen/html/html/search/functions_11.js +10 -10
  452. package/SVF-doxygen/html/html/search/functions_12.js +1 -1
  453. package/SVF-doxygen/html/html/search/functions_13.js +12 -12
  454. package/SVF-doxygen/html/html/search/functions_17.js +16 -16
  455. package/SVF-doxygen/html/html/search/functions_2.js +14 -14
  456. package/SVF-doxygen/html/html/search/functions_3.js +5 -5
  457. package/SVF-doxygen/html/html/search/functions_4.js +2 -2
  458. package/SVF-doxygen/html/html/search/functions_5.js +4 -4
  459. package/SVF-doxygen/html/html/search/functions_6.js +11 -11
  460. package/SVF-doxygen/html/html/search/functions_7.js +3 -3
  461. package/SVF-doxygen/html/html/search/functions_8.js +2 -2
  462. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  463. package/SVF-doxygen/html/html/search/functions_e.js +3 -3
  464. package/SVF-doxygen/html/html/search/functions_f.js +5 -5
  465. package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
  466. package/SVF-doxygen/html/html/search/variables_0.js +1 -1
  467. package/SVF-doxygen/html/html/search/variables_10.js +2 -2
  468. package/SVF-doxygen/html/html/search/variables_12.js +5 -6
  469. package/SVF-doxygen/html/html/search/variables_13.js +3 -3
  470. package/SVF-doxygen/html/html/search/variables_14.js +1 -0
  471. package/SVF-doxygen/html/html/search/variables_6.js +1 -1
  472. package/SVF-doxygen/html/html/search/variables_7.js +0 -1
  473. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  474. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  475. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  476. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +14 -14
  477. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +2 -2
  478. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
  479. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +1 -1
  480. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
  481. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
  482. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement-members.html +1 -1
  483. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement.html +47 -57
  484. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
  485. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1PointsTo_01_4.html +1 -1
  486. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +5 -5
  487. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
  488. package/SVF-doxygen/html/html/svf-ex_8cpp.html +6 -7
  489. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +7 -7
  490. package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
  491. package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
  492. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  493. package/build.sh +2 -2
  494. package/include/DDA/DDAPass.h +1 -1
  495. package/include/DDA/FlowDDA.h +1 -1
  496. package/include/Graphs/ICFG.h +1 -1
  497. package/include/Graphs/SVFG.h +3 -4
  498. package/include/Graphs/SVFGOPT.h +7 -7
  499. package/include/MSSA/MemSSA.h +2 -0
  500. package/include/MSSA/SVFGBuilder.h +5 -14
  501. package/include/MTA/MTA.h +2 -2
  502. package/include/MemoryModel/MutablePointsToDS.h +3 -3
  503. package/include/MemoryModel/PersistentPointsToCache.h +7 -8
  504. package/include/MemoryModel/PersistentPointsToDS.h +93 -93
  505. package/include/MemoryModel/PointerAnalysisImpl.h +17 -28
  506. package/include/MemoryModel/PointsTo.h +24 -24
  507. package/include/SABER/SrcSnkDDA.h +10 -13
  508. package/include/SVF-LLVM/LLVMLoopAnalysis.h +2 -1
  509. package/include/SVF-LLVM/LLVMModule.h +6 -6
  510. package/include/SVFIR/SVFIR.h +3 -5
  511. package/include/SVFIR/SVFType.h +6 -8
  512. package/include/SVFIR/SVFValue.h +3 -3
  513. package/include/Util/Options.h +0 -1
  514. package/include/Util/SparseBitVector.h +6 -14
  515. package/include/WPA/FlowSensitive.h +13 -20
  516. package/include/WPA/WPASolver.h +5 -9
  517. package/lib/DDA/DDAPass.cpp +4 -4
  518. package/lib/Graphs/CFLGraph.cpp +3 -0
  519. package/lib/Graphs/SVFG.cpp +1 -1
  520. package/lib/MSSA/MemSSA.cpp +5 -3
  521. package/lib/MSSA/SVFGBuilder.cpp +9 -27
  522. package/lib/MTA/MTA.cpp +4 -4
  523. package/lib/MemoryModel/PointerAnalysisImpl.cpp +10 -10
  524. package/lib/MemoryModel/PointsTo.cpp +23 -19
  525. package/lib/SVF-LLVM/LLVMLoopAnalysis.cpp +3 -4
  526. package/lib/SVF-LLVM/LLVMModule.cpp +32 -21
  527. package/lib/SVFIR/SVFIR.cpp +1 -1
  528. package/lib/SVFIR/SymbolTableInfo.cpp +4 -15
  529. package/lib/Util/Options.cpp +0 -6
  530. package/lib/WPA/AndersenSFR.cpp +1 -1
  531. package/lib/WPA/FlowSensitive.cpp +1 -1
  532. package/package.json +1 -1
  533. package/tools/CFL/cfl.cpp +5 -4
  534. package/tools/DDA/dda.cpp +3 -2
  535. package/tools/Example/svf-ex.cpp +3 -2
  536. package/tools/MTA/mta.cpp +6 -4
  537. package/tools/SABER/saber.cpp +7 -5
  538. package/tools/WPA/wpa.cpp +3 -2
@@ -66,9 +66,9 @@ $(function() {
66
66
  <div class="title">SymbolTableInfo.h</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="SymbolTableInfo_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- SymbolTableInfo.h -- Symbol information from IR------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * SymbolTableInfo.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: Nov 11, 2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef INCLUDE_SVF_FE_SYMBOLTABLEINFO_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define INCLUDE_SVF_FE_SYMBOLTABLEINFO_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFUtil_8h.html">Util/SVFUtil.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LocationSet_8h.html">MemoryModel/LocationSet.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFModule_8h.html">SVFIR/SVFModule.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>MemObj;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>ObjTypeInfo;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>StInfo;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html"> 47</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SymbolTableInfo.html">SymbolTableInfo</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a9d9633d48431b80c078bd4a34c1e7fa0"> 49</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SymbolTableBuilder.html">SymbolTableBuilder</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89b"> 54</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89b">SYMTYPE</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba1e6cc9ef0abd047b183382f2681cd4c1"> 56</a></span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba1e6cc9ef0abd047b183382f2681cd4c1">NullPtr</a>,</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba9a9d3f03f58ccd4fdaaf08327a74aa03"> 57</a></span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba9a9d3f03f58ccd4fdaaf08327a74aa03">BlkPtr</a>,</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba95734ab884566beab5cd3523c250b539"> 58</a></span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba95734ab884566beab5cd3523c250b539">BlackHole</a>,</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89baa3ecb7c51e2cba67d1f9a5284c2f215f"> 59</a></span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89baa3ecb7c51e2cba67d1f9a5284c2f215f">ConstantObj</a>,</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba23583f8cf79d3fd142f8550664ad8247"> 60</a></span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba23583f8cf79d3fd142f8550664ad8247">ValSymbol</a>,</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba58703da9c0d4819869447b6a25dcff00"> 61</a></span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba58703da9c0d4819869447b6a25dcff00">ObjSymbol</a>,</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba8ac9528bf8b81f7942c1cdc0bf63ec35"> 62</a></span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba8ac9528bf8b81f7942c1cdc0bf63ec35">RetSymbol</a>,</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89bab8a256319d4853178a0308c0f6f830e3"> 63</a></span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89bab8a256319d4853178a0308c0f6f830e3">VarargSymbol</a></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; };</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">//{@</span></div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ad1741e65d47c39e03049c6d7265961af"> 70</a></span>&#160;<span class="comment"></span> <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap&lt;const SVFValue*, SymID&gt;</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad1741e65d47c39e03049c6d7265961af">ValueToIDMapTy</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a0371b60485199175b011cf3a42b404aa"> 72</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap&lt;SymID,MemObj*&gt;</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a0371b60485199175b011cf3a42b404aa">IDToMemMapTy</a>;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#acd5c1096bb8e93a2a708cd7eef66e7d8"> 74</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap&lt;const SVFFunction*, SymID&gt;</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#acd5c1096bb8e93a2a708cd7eef66e7d8">FunToIDMapTy</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a87d443030a8a86e13be5a3a964bc7fa4"> 76</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const SVFType*&gt;</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a87d443030a8a86e13be5a3a964bc7fa4">SVFTypeSet</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a5054f95a7b77257ffb283044aab17b08"> 80</a></span>&#160; ValueToIDMapTy <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5054f95a7b77257ffb283044aab17b08">valSymMap</a>; </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a5840b742ed8c73ece548b9b4aede07ec"> 81</a></span>&#160; ValueToIDMapTy <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5840b742ed8c73ece548b9b4aede07ec">objSymMap</a>; </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ae6f8a4dbe09ff4756983ffdbed6d0681"> 82</a></span>&#160; FunToIDMapTy <a class="code" href="classSVF_1_1SymbolTableInfo.html#ae6f8a4dbe09ff4756983ffdbed6d0681">returnSymMap</a>; </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a94c06e5ac0b50989743a9e63c9a6d5b9"> 83</a></span>&#160; FunToIDMapTy <a class="code" href="classSVF_1_1SymbolTableInfo.html#a94c06e5ac0b50989743a9e63c9a6d5b9">varargSymMap</a>; </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aeab14702eabde827923a692cba8f7f8a"> 84</a></span>&#160; IDToMemMapTy <a class="code" href="classSVF_1_1SymbolTableInfo.html#aeab14702eabde827923a692cba8f7f8a">objMap</a>; </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// Singleton pattern here to enable instance of SymbolTableInfo can only be created once.</span></div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a4fbb8ea4b4796d10d13c027b7455505c"> 87</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html">SymbolTableInfo</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4fbb8ea4b4796d10d13c027b7455505c">symInfo</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#af8fdaaa03cd2ae9b7d50f57bc678b8ba"> 90</a></span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#af8fdaaa03cd2ae9b7d50f57bc678b8ba">mod</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a87cc3289dd69e5378487dd9ae2c9e82e">destroy</a>();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ad20ccb90e8f9dee488a8aec0600399dc"> 96</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad20ccb90e8f9dee488a8aec0600399dc">modelConstants</a>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a125faa0295b38d027b35bc3d76b3afdd"> 99</a></span>&#160; <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a125faa0295b38d027b35bc3d76b3afdd">totalSymNum</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aff272bc1d00f2e57b7677d1826a31237"> 103</a></span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#aff272bc1d00f2e57b7677d1826a31237">SymbolTableInfo</a>(<span class="keywordtype">void</span>) :</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; mod(nullptr), modelConstants(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), totalSymNum(0), <a class="code" href="classSVF_1_1SymbolTableInfo.html#a0c1143eff451edf8ea47d4487a8d3a55">maxStruct</a>(nullptr), <a class="code" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35">maxStSize</a>(0)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html">SymbolTableInfo</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolInfo</a>();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a9f8d99c761f3c7108d797b3702fcbfec"> 114</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a9f8d99c761f3c7108d797b3702fcbfec">releaseSymbolInfo</a>()</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4fbb8ea4b4796d10d13c027b7455505c">symInfo</a>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; symInfo = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a6efac0ae8ebf2865067136675be5a340"> 119</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a6efac0ae8ebf2865067136675be5a340">~SymbolTableInfo</a>()</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#a87cc3289dd69e5378487dd9ae2c9e82e">destroy</a>();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a4decfc9e7f5dc096d7bfa42d6965763d"> 127</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4decfc9e7f5dc096d7bfa42d6965763d">setModelConstants</a>(<span class="keywordtype">bool</span> _modelConstants)</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; modelConstants = _modelConstants;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a89e9c6da843e5eef25c51afd5d0937e5"> 131</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a89e9c6da843e5eef25c51afd5d0937e5">getModelConstants</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad20ccb90e8f9dee488a8aec0600399dc">modelConstants</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a40387a4893ae5caf58d6f786533d2f44"> 138</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a40387a4893ae5caf58d6f786533d2f44">getModule</a>()</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#af8fdaaa03cd2ae9b7d50f57bc678b8ba">mod</a>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a4f916c64ca04c4db30bd19fb8505724d"> 143</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4f916c64ca04c4db30bd19fb8505724d">setModule</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* m)</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; mod = m;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="comment">// @{</span></div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#acba43b6e9cdf07afaf3d30351aa8df7c"> 150</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#acba43b6e9cdf07afaf3d30351aa8df7c">isBlkPtr</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">id</span> == <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba9a9d3f03f58ccd4fdaaf08327a74aa03">BlkPtr</a>);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ad095e4a569d399cadc03ce864f61c394"> 154</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad095e4a569d399cadc03ce864f61c394">isNullPtr</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">id</span> == <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba1e6cc9ef0abd047b183382f2681cd4c1">NullPtr</a>);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ad9cdb21e20182f3bc95f04bbb97712f3"> 158</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad9cdb21e20182f3bc95f04bbb97712f3">isBlkObj</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">id</span> == <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba95734ab884566beab5cd3523c250b539">BlackHole</a>);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a704b917b1e1dbaf9cd758fa9acc1083b"> 162</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a704b917b1e1dbaf9cd758fa9acc1083b">isConstantObj</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">id</span> == <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89baa3ecb7c51e2cba67d1f9a5284c2f215f">ConstantObj</a>);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a2fc4bfb83b71a4c14e16168382cb8f5d"> 166</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a2fc4bfb83b71a4c14e16168382cb8f5d">isBlkObjOrConstantObj</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SymbolTableInfo.html#ad9cdb21e20182f3bc95f04bbb97712f3">isBlkObj</a>(<span class="keywordtype">id</span>) || <a class="code" href="classSVF_1_1SymbolTableInfo.html#a704b917b1e1dbaf9cd758fa9acc1083b">isConstantObj</a>(<span class="keywordtype">id</span>));</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aebf96274e1ad2a523981487839a3025e"> 171</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#aebf96274e1ad2a523981487839a3025e">getBlkObj</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906">getObj</a>(<a class="code" href="classSVF_1_1SymbolTableInfo.html#a05ca2987d9f8716c24e489bec53502f4">blackholeSymID</a>());</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a661eb9ff1839c3af942517808414202b"> 175</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a661eb9ff1839c3af942517808414202b">getConstantObj</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906">getObj</a>(<a class="code" href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497">constantSymID</a>());</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a1689fa03795200b501ae3887906e7e72"> 180</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a1689fa03795200b501ae3887906e7e72">blkPtrSymID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba9a9d3f03f58ccd4fdaaf08327a74aa03">BlkPtr</a>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#adaed6e68c2f53260ed4c4fc38b5c4721"> 185</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#adaed6e68c2f53260ed4c4fc38b5c4721">nullPtrSymID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba1e6cc9ef0abd047b183382f2681cd4c1">NullPtr</a>;</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;</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497"> 190</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497">constantSymID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89baa3ecb7c51e2cba67d1f9a5284c2f215f">ConstantObj</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a05ca2987d9f8716c24e489bec53502f4"> 195</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a05ca2987d9f8716c24e489bec53502f4">blackholeSymID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba95734ab884566beab5cd3523c250b539">BlackHole</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#ae39b1a2330b157312727a560fddbd0dc">createDummyObj</a>(<a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> symId, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">// @}</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a72be51342f633844f59c5a46b7e01583">getValSym</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* val);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#af5e91f2ace726b1f05b045681d2bd117">hasValSym</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* val);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a7cf19b236d4e44f8ae8da9b303466b36"> 210</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a7cf19b236d4e44f8ae8da9b303466b36">getObjSym</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* val)<span class="keyword"> const</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* svfVal = val;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a>* g = SVFUtil::dyn_cast&lt;SVFGlobalValue&gt;(val))</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; svfVal = g-&gt;getDefGlobalForMultipleModule();</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; ValueToIDMapTy::const_iterator iter = objSymMap.find(svfVal);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; assert(iter!=objSymMap.end() &amp;&amp; <span class="stringliteral">&quot;obj sym not found&quot;</span>);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">return</span> iter-&gt;second;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906"> 220</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906">getObj</a>(<a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; IDToMemMapTy::const_iterator iter = objMap.find(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; assert(iter!=objMap.end() &amp;&amp; <span class="stringliteral">&quot;obj not found&quot;</span>);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> iter-&gt;second;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afb06da4d5f8c75c039b0a05a31d4beb3"> 227</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afb06da4d5f8c75c039b0a05a31d4beb3">getRetSym</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* val)<span class="keyword"> const</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; FunToIDMapTy::const_iterator iter = returnSymMap.find(val);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; assert(iter!=returnSymMap.end() &amp;&amp; <span class="stringliteral">&quot;ret sym not found&quot;</span>);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">return</span> iter-&gt;second;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a6b0e0b41f3dbc095e8dd8472bbbb5baf"> 234</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a6b0e0b41f3dbc095e8dd8472bbbb5baf">getVarargSym</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* val)<span class="keyword"> const</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; FunToIDMapTy::const_iterator iter = varargSymMap.find(val);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; assert(iter!=varargSymMap.end() &amp;&amp; <span class="stringliteral">&quot;vararg sym not found&quot;</span>);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">return</span> iter-&gt;second;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a26eb45eab3da4695a6e5bad51b01ddc5"> 245</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a26eb45eab3da4695a6e5bad51b01ddc5">getTotalSymNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a125faa0295b38d027b35bc3d76b3afdd">totalSymNum</a>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#abc7e567209010286a68634c700d76cca"> 249</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#abc7e567209010286a68634c700d76cca">getMaxStructSize</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35">maxStSize</a>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a8f3cb8a1db34dd692ee04561f4edeebf"> 257</a></span>&#160; <span class="keyword">inline</span> ValueToIDMapTy&amp; <a class="code" href="classSVF_1_1SymbolTableInfo.html#a8f3cb8a1db34dd692ee04561f4edeebf">valSyms</a>()</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5054f95a7b77257ffb283044aab17b08">valSymMap</a>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a3f9612f32c651220386beb0514f8fcff"> 262</a></span>&#160; <span class="keyword">inline</span> ValueToIDMapTy&amp; <a class="code" href="classSVF_1_1SymbolTableInfo.html#a3f9612f32c651220386beb0514f8fcff">objSyms</a>()</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5840b742ed8c73ece548b9b4aede07ec">objSymMap</a>;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a929a20dc8f2eb4d82e93938b8339d697"> 267</a></span>&#160; <span class="keyword">inline</span> IDToMemMapTy&amp; <a class="code" href="classSVF_1_1SymbolTableInfo.html#a929a20dc8f2eb4d82e93938b8339d697">idToObjMap</a>()</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; {</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#aeab14702eabde827923a692cba8f7f8a">objMap</a>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aafd4da7cef6387bb974abe20185b7b96"> 272</a></span>&#160; <span class="keyword">inline</span> FunToIDMapTy&amp; <a class="code" href="classSVF_1_1SymbolTableInfo.html#aafd4da7cef6387bb974abe20185b7b96">retSyms</a>()</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ae6f8a4dbe09ff4756983ffdbed6d0681">returnSymMap</a>;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ac449cd925dc05758c990179c0748e1d5"> 277</a></span>&#160; <span class="keyword">inline</span> FunToIDMapTy&amp; <a class="code" href="classSVF_1_1SymbolTableInfo.html#ac449cd925dc05758c990179c0748e1d5">varargSyms</a>()</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a94c06e5ac0b50989743a9e63c9a6d5b9">varargSymMap</a>;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5dc699aa85fe879eb4b2c9109cf3030d">getTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* T) <span class="keyword">const</span>;</div><div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#af678e138df136d6f3cd53826dfa4486c"> 288</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#af678e138df136d6f3cd53826dfa4486c">hasSVFTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* T)</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; {</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#aff6341f4e2a79b3c999ec955e48555c9">svfTypes</a>.find(T) != <a class="code" href="classSVF_1_1SymbolTableInfo.html#aff6341f4e2a79b3c999ec955e48555c9">svfTypes</a>.end();</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a811a3489df0f793c7a5482d31d470a4c">getNumOfFlattenElements</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* T);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* T, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> origId);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a806ae865d29c4b05b69c499284758c6f">getFlatternedElemType</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* baseType, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flatten_idx);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4bf84ef15f3b4cc865ac64ca0aae84e7">getOriginalElemType</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* baseType, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> origId) <span class="keyword">const</span>;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a1e24131ab0a212df00889e32e6ee04f9">printFlattenFields</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* type);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a7d3001549966444622d5918e5811e89e">toString</a>(<a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89b">SYMTYPE</a> symtype);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a9f4cf6914b400b9f69c7852f13c496a9">dump</a>();</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a480a7565dcb5d9a94f4b0ffb44b127ee">getModulusOffset</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; ls);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a0c1143eff451edf8ea47d4487a8d3a55"> 318</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a0c1143eff451edf8ea47d4487a8d3a55">maxStruct</a>;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35"> 321</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35">maxStSize</a>;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a91083d9504ae5d220b28e0b3e461d4aa"> 323</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a91083d9504ae5d220b28e0b3e461d4aa">addTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty)</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; {</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; assert(!<a class="code" href="classSVF_1_1SymbolTableInfo.html#af678e138df136d6f3cd53826dfa4486c">hasSVFTypeInfo</a>(ty) &amp;&amp; <span class="stringliteral">&quot;this type info has been added before&quot;</span>);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#aff6341f4e2a79b3c999ec955e48555c9">svfTypes</a>.insert(ty);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">const</span> std::vector&lt;const SVFType*&gt;&amp; <a class="code" href="classSVF_1_1SymbolTableInfo.html#a1f65ce2d46190ef85a572a2471d3586b">getFlattenFieldTypes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStructType.html">SVFStructType</a> *T);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a2994a616d76020a21903fcdc2d2cfdff">createObjTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* type);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aff6341f4e2a79b3c999ec955e48555c9"> 341</a></span>&#160; SVFTypeSet <a class="code" href="classSVF_1_1SymbolTableInfo.html#aff6341f4e2a79b3c999ec955e48555c9">svfTypes</a>;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;};</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div><div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html"> 348</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1MemObj.html">MemObj</a></div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;{</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a750770ea992d39b22c8b2dda9aff2eaf"> 353</a></span>&#160; <a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a>* <a class="code" href="classSVF_1_1MemObj.html#a750770ea992d39b22c8b2dda9aff2eaf">typeInfo</a>;</div><div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a33d27c3e75e62f31f62c8d9bfc2e0262"> 355</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* <a class="code" href="classSVF_1_1MemObj.html#a33d27c3e75e62f31f62c8d9bfc2e0262">refVal</a>;</div><div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a37f4e34b7f7dd6bfd4379cf3552e9046"> 357</a></span>&#160; <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1MemObj.html#a37f4e34b7f7dd6bfd4379cf3552e9046">symId</a>;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>(<a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <span class="keywordtype">id</span>, <a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a>* ti, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* val = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a972e94158a18720642b1876fef5056cf"> 364</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MemObj.html#a972e94158a18720642b1876fef5056cf">~MemObj</a>()</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#a87cc3289dd69e5378487dd9ae2c9e82e">destroy</a>();</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; }</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a7d3001549966444622d5918e5811e89e">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4"> 372</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* <a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">return</span> refVal;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; }</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1"> 378</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">return</span> symId;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; }</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* getType() <span class="keyword">const</span>;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> getNumOfElements() <span class="keyword">const</span>;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordtype">void</span> setNumOfElements(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> getMaxFieldOffsetLimit() <span class="keyword">const</span>;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordtype">bool</span> isFieldInsensitive() <span class="keyword">const</span>;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordtype">void</span> setFieldInsensitive();</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordtype">void</span> setFieldSensitive();</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordtype">bool</span> isBlackHoleObj() <span class="keyword">const</span>;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordtype">bool</span> isFunction() <span class="keyword">const</span>;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordtype">bool</span> isGlobalObj() <span class="keyword">const</span>;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordtype">bool</span> isStaticObj() <span class="keyword">const</span>;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordtype">bool</span> isStack() <span class="keyword">const</span>;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordtype">bool</span> isHeap() <span class="keyword">const</span>;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordtype">bool</span> isStruct() <span class="keyword">const</span>;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordtype">bool</span> isArray() <span class="keyword">const</span>;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordtype">bool</span> isVarStruct() <span class="keyword">const</span>;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordtype">bool</span> isVarArray() <span class="keyword">const</span>;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordtype">bool</span> isConstantStruct() <span class="keyword">const</span>;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordtype">bool</span> isConstantArray() <span class="keyword">const</span>;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordtype">bool</span> isConstDataOrConstGlobal() <span class="keyword">const</span>;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">isConstDataOrAggData</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordtype">bool</span> hasPtrObj() <span class="keyword">const</span>;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordtype">bool</span> isNonPtrFieldObj(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; ls) <span class="keyword">const</span>;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a1a8601b72b6e6df211db1fffdd54c48b"> 427</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MemObj.html#a1a8601b72b6e6df211db1fffdd54c48b">operator==</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a> &amp;mem)<span class="keyword"> const</span></div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">return</span> getValue() == mem.<a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>();</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; }</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a87cc3289dd69e5378487dd9ae2c9e82e">destroy</a>();</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;};</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html"> 441</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;{</div><div class="line"><a name="l00443"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a9d9633d48431b80c078bd4a34c1e7fa0"> 443</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SymbolTableBuilder.html">SymbolTableBuilder</a>;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00445"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830"> 445</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">enum</span></div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; {</div><div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830af5f94b2a41dab25fa08c94a989fb9515"> 447</a></span>&#160; FUNCTION_OBJ = 0x1, <span class="comment">// object is a function</span></div><div class="line"><a name="l00448"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830ad2ba0edfac1460f3fd89e7a6c4c4691b"> 448</a></span>&#160; GLOBVAR_OBJ = 0x2, <span class="comment">// object is a global variable</span></div><div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a4e7606afe2dabdef9c9836ae798a9d98"> 449</a></span>&#160; STATIC_OBJ = 0x4, <span class="comment">// object is a static variable allocated before main</span></div><div class="line"><a name="l00450"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830aad918042d1f04a5e3960817d55ccb5d5"> 450</a></span>&#160; STACK_OBJ = 0x8, <span class="comment">// object is a stack variable</span></div><div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a692b4b0df23bad19ea04d18b01bf445c"> 451</a></span>&#160; HEAP_OBJ = 0x10, <span class="comment">// object is a heap variable</span></div><div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830aaf98981bd15b41f543fd99d0c6222f08"> 452</a></span>&#160; VAR_STRUCT_OBJ = 0x20, <span class="comment">// object contains struct</span></div><div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830adedc43e0fcaebf433120869aa9307b1c"> 453</a></span>&#160; VAR_ARRAY_OBJ = 0x40, <span class="comment">// object contains array</span></div><div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a6443b9fadd2d34e00832b2215a120ebd"> 454</a></span>&#160; CONST_STRUCT_OBJ = 0x80, <span class="comment">// constant struct</span></div><div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830aff4142c0c411dea07b484a19af514047"> 455</a></span>&#160; CONST_ARRAY_OBJ = 0x100, <span class="comment">// constant array</span></div><div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a84c1bc6eaff950330a102afca1efc04c"> 456</a></span>&#160; CONST_GLOBAL_OBJ = 0x200, <span class="comment">// global constant object</span></div><div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a5e5bc3a1838476fbd80c52720c9d103e"> 457</a></span>&#160; CONST_DATA = 0x400, <span class="comment">// constant object str e.g. 5, 10, 1.0</span></div><div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830ad17b2a35fb492561c4011dbe3880c6c9"> 458</a></span>&#160; HASPTR_OBJ = 0x800 <span class="comment">// the object stores a pointer address</span></div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; } <a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830">MEMTYPE</a>;</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a3620a491a32ff0af93f0d92f55911498"> 463</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="classSVF_1_1ObjTypeInfo.html#a3620a491a32ff0af93f0d92f55911498">type</a>;</div><div class="line"><a name="l00465"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#abf6bbcccf73bfcd5b950803d349c4eb1"> 465</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ObjTypeInfo.html#abf6bbcccf73bfcd5b950803d349c4eb1">flags</a>;</div><div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a5ff63eb0654acd152f7d6c18618ee94a"> 469</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a5ff63eb0654acd152f7d6c18618ee94a">maxOffsetLimit</a>;</div><div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a5fdcd5f3b7550e7bdc30c8c030c6226d"> 471</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a5fdcd5f3b7550e7bdc30c8c030c6226d">elemNum</a>;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordtype">void</span> resetTypeForHeapStaticObj(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* type);</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* t, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> max);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;</div><div class="line"><a name="l00480"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#ace5fdb3701cb93df0f02aedc94e7e975"> 480</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#ace5fdb3701cb93df0f02aedc94e7e975">~ObjTypeInfo</a>()</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; {</div><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;</div><div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#aaffd94b311238f183031a525376c55a2"> 485</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="classSVF_1_1ObjTypeInfo.html#aaffd94b311238f183031a525376c55a2">getType</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; }</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;</div><div class="line"><a name="l00491"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a81bc3d785062c7e527ecf8e564cd52a4"> 491</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a81bc3d785062c7e527ecf8e564cd52a4">getMaxFieldOffsetLimit</a>()</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; {</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">return</span> maxOffsetLimit;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; }</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;</div><div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a9fff869c63776c6ebeff78933e0f6092"> 497</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a9fff869c63776c6ebeff78933e0f6092">setMaxFieldOffsetLimit</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> limit)</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; {</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; maxOffsetLimit = limit;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; }</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;</div><div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#aff17d13e520a731accedd06350af6221"> 503</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#aff17d13e520a731accedd06350af6221">setNumOfElements</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num)</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; {</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; elemNum = num;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; setMaxFieldOffsetLimit(num);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; }</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a9329740d5db9212c69ed28ca6410559e"> 510</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a9329740d5db9212c69ed28ca6410559e">getNumOfElements</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordflow">return</span> elemNum;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; }</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;</div><div class="line"><a name="l00517"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49"> 517</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">setFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830">MEMTYPE</a> mask)</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; {</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; flags |= mask;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; }</div><div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a8e630eb30d05f665b998c6f9326d65cb"> 521</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a8e630eb30d05f665b998c6f9326d65cb">hasFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830">MEMTYPE</a> mask)</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; {</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">return</span> (flags &amp; mask) == mask;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; }</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;</div><div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#ac99fa14fdf7bc0dd3e9ff36c7a3a351f"> 529</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#ac99fa14fdf7bc0dd3e9ff36c7a3a351f">isFunction</a>()</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; {</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordflow">return</span> hasFlag(FUNCTION_OBJ);</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; }</div><div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#aa2855b69150287e5f04a7a683dc4c91f"> 533</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#aa2855b69150287e5f04a7a683dc4c91f">isGlobalObj</a>()</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; {</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordflow">return</span> hasFlag(GLOBVAR_OBJ);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; }</div><div class="line"><a name="l00537"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a3594dc1c1943dbac0ab72f2ff163c523"> 537</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a3594dc1c1943dbac0ab72f2ff163c523">isStaticObj</a>()</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; {</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">return</span> hasFlag(STATIC_OBJ);</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; }</div><div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#aa568dc82decd28d2ef40785a4a647602"> 541</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#aa568dc82decd28d2ef40785a4a647602">isStack</a>()</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="keywordflow">return</span> hasFlag(STACK_OBJ);</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; }</div><div class="line"><a name="l00545"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a26c179394fbda9a9261d0bf3f52b619d"> 545</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a26c179394fbda9a9261d0bf3f52b619d">isHeap</a>()</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; {</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">return</span> hasFlag(HEAP_OBJ);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; }</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;</div><div class="line"><a name="l00554"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a40d6703875b370aed2c6dc41c0594af5"> 554</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a40d6703875b370aed2c6dc41c0594af5">isVarStruct</a>()</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; {</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">return</span> hasFlag(VAR_STRUCT_OBJ);</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; }</div><div class="line"><a name="l00558"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a41f916ab4e3a2c163fca636eae948ce7"> 558</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a41f916ab4e3a2c163fca636eae948ce7">isConstantStruct</a>()</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; <span class="keywordflow">return</span> hasFlag(CONST_STRUCT_OBJ);</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; }</div><div class="line"><a name="l00562"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a06493939f797f122b70b90bbf22cad7a"> 562</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a06493939f797f122b70b90bbf22cad7a">isStruct</a>()</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; <span class="keywordflow">return</span> hasFlag(VAR_STRUCT_OBJ) || hasFlag(CONST_STRUCT_OBJ);</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; }</div><div class="line"><a name="l00566"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#aca1e900f9b0a774684af77666cf033e3"> 566</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#aca1e900f9b0a774684af77666cf033e3">isVarArray</a>()</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">return</span> hasFlag(VAR_ARRAY_OBJ);</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"><a class="line" href="classSVF_1_1ObjTypeInfo.html#ac1ee7a720959c0e97496870d6e759212"> 570</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#ac1ee7a720959c0e97496870d6e759212">isConstantArray</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="keywordflow">return</span> hasFlag(CONST_ARRAY_OBJ);</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; }</div><div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a0627e8b9dda2e13cc77c334eefab21e1"> 574</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a0627e8b9dda2e13cc77c334eefab21e1">isArray</a>()</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; {</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keywordflow">return</span> hasFlag(VAR_ARRAY_OBJ) || hasFlag(CONST_ARRAY_OBJ);</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; }</div><div class="line"><a name="l00578"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a8e6c60978df9828c1dcb54086e83edc1"> 578</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a8e6c60978df9828c1dcb54086e83edc1">isConstDataOrConstGlobal</a>()</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; {</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">return</span> hasFlag(CONST_GLOBAL_OBJ) || hasFlag(CONST_DATA);</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; }</div><div class="line"><a name="l00582"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a6cc6751c847c667d4fc3052a30195e14"> 582</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a6cc6751c847c667d4fc3052a30195e14">isConstDataOrAggData</a>()</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; {</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">return</span> hasFlag(CONST_DATA);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; }</div><div class="line"><a name="l00586"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#ac5bae1e7917f415193a805e8d2e29320"> 586</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#ac5bae1e7917f415193a805e8d2e29320">hasPtrObj</a>()</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; <span class="keywordflow">return</span> hasFlag(HASPTR_OBJ);</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; }</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isNonPtrFieldObj(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; ls);</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;};</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* INCLUDE_SVF_FE_SYMBOLTABLEINFO_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a1f65ce2d46190ef85a572a2471d3586b"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a1f65ce2d46190ef85a572a2471d3586b">SVF::SymbolTableInfo::getFlattenFieldTypes</a></div><div class="ttdeci">const std::vector&lt; const SVFType * &gt; &amp; getFlattenFieldTypes(const SVFStructType *T)</div><div class="ttdoc">Return the flattened field type for struct type only. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00215">SymbolTableInfo.cpp:215</a></div></div>
69
+ <a href="SymbolTableInfo_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- SymbolTableInfo.h -- Symbol information from IR------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * SymbolTableInfo.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: Nov 11, 2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef INCLUDE_SVF_FE_SYMBOLTABLEINFO_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define INCLUDE_SVF_FE_SYMBOLTABLEINFO_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFUtil_8h.html">Util/SVFUtil.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LocationSet_8h.html">MemoryModel/LocationSet.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFModule_8h.html">SVFIR/SVFModule.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>MemObj;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>ObjTypeInfo;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span>StInfo;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html"> 47</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SymbolTableInfo.html">SymbolTableInfo</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a9d9633d48431b80c078bd4a34c1e7fa0"> 49</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SymbolTableBuilder.html">SymbolTableBuilder</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89b"> 54</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89b">SYMTYPE</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba1e6cc9ef0abd047b183382f2681cd4c1"> 56</a></span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba1e6cc9ef0abd047b183382f2681cd4c1">NullPtr</a>,</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba9a9d3f03f58ccd4fdaaf08327a74aa03"> 57</a></span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba9a9d3f03f58ccd4fdaaf08327a74aa03">BlkPtr</a>,</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba95734ab884566beab5cd3523c250b539"> 58</a></span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba95734ab884566beab5cd3523c250b539">BlackHole</a>,</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89baa3ecb7c51e2cba67d1f9a5284c2f215f"> 59</a></span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89baa3ecb7c51e2cba67d1f9a5284c2f215f">ConstantObj</a>,</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba23583f8cf79d3fd142f8550664ad8247"> 60</a></span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba23583f8cf79d3fd142f8550664ad8247">ValSymbol</a>,</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba58703da9c0d4819869447b6a25dcff00"> 61</a></span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba58703da9c0d4819869447b6a25dcff00">ObjSymbol</a>,</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba8ac9528bf8b81f7942c1cdc0bf63ec35"> 62</a></span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba8ac9528bf8b81f7942c1cdc0bf63ec35">RetSymbol</a>,</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89bab8a256319d4853178a0308c0f6f830e3"> 63</a></span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89bab8a256319d4853178a0308c0f6f830e3">VarargSymbol</a></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; };</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">//{@</span></div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ad1741e65d47c39e03049c6d7265961af"> 70</a></span>&#160;<span class="comment"></span> <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap&lt;const SVFValue*, SymID&gt;</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad1741e65d47c39e03049c6d7265961af">ValueToIDMapTy</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a0371b60485199175b011cf3a42b404aa"> 72</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap&lt;SymID,MemObj*&gt;</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a0371b60485199175b011cf3a42b404aa">IDToMemMapTy</a>;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#acd5c1096bb8e93a2a708cd7eef66e7d8"> 74</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap&lt;const SVFFunction*, SymID&gt;</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#acd5c1096bb8e93a2a708cd7eef66e7d8">FunToIDMapTy</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a87d443030a8a86e13be5a3a964bc7fa4"> 76</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const SVFType*&gt;</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a87d443030a8a86e13be5a3a964bc7fa4">SVFTypeSet</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a5054f95a7b77257ffb283044aab17b08"> 80</a></span>&#160; ValueToIDMapTy <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5054f95a7b77257ffb283044aab17b08">valSymMap</a>; </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a5840b742ed8c73ece548b9b4aede07ec"> 81</a></span>&#160; ValueToIDMapTy <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5840b742ed8c73ece548b9b4aede07ec">objSymMap</a>; </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ae6f8a4dbe09ff4756983ffdbed6d0681"> 82</a></span>&#160; FunToIDMapTy <a class="code" href="classSVF_1_1SymbolTableInfo.html#ae6f8a4dbe09ff4756983ffdbed6d0681">returnSymMap</a>; </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a94c06e5ac0b50989743a9e63c9a6d5b9"> 83</a></span>&#160; FunToIDMapTy <a class="code" href="classSVF_1_1SymbolTableInfo.html#a94c06e5ac0b50989743a9e63c9a6d5b9">varargSymMap</a>; </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aeab14702eabde827923a692cba8f7f8a"> 84</a></span>&#160; IDToMemMapTy <a class="code" href="classSVF_1_1SymbolTableInfo.html#aeab14702eabde827923a692cba8f7f8a">objMap</a>; </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// Singleton pattern here to enable instance of SymbolTableInfo can only be created once.</span></div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a4fbb8ea4b4796d10d13c027b7455505c"> 87</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html">SymbolTableInfo</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4fbb8ea4b4796d10d13c027b7455505c">symInfo</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#af8fdaaa03cd2ae9b7d50f57bc678b8ba"> 90</a></span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#af8fdaaa03cd2ae9b7d50f57bc678b8ba">mod</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a87cc3289dd69e5378487dd9ae2c9e82e">destroy</a>();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ad20ccb90e8f9dee488a8aec0600399dc"> 96</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad20ccb90e8f9dee488a8aec0600399dc">modelConstants</a>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a125faa0295b38d027b35bc3d76b3afdd"> 99</a></span>&#160; <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a125faa0295b38d027b35bc3d76b3afdd">totalSymNum</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aff272bc1d00f2e57b7677d1826a31237"> 103</a></span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#aff272bc1d00f2e57b7677d1826a31237">SymbolTableInfo</a>(<span class="keywordtype">void</span>) :</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; mod(nullptr), modelConstants(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), totalSymNum(0), <a class="code" href="classSVF_1_1SymbolTableInfo.html#a0c1143eff451edf8ea47d4487a8d3a55">maxStruct</a>(nullptr), <a class="code" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35">maxStSize</a>(0)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html">SymbolTableInfo</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolInfo</a>();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a9f8d99c761f3c7108d797b3702fcbfec"> 114</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a9f8d99c761f3c7108d797b3702fcbfec">releaseSymbolInfo</a>()</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4fbb8ea4b4796d10d13c027b7455505c">symInfo</a>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; symInfo = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a6efac0ae8ebf2865067136675be5a340"> 119</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a6efac0ae8ebf2865067136675be5a340">~SymbolTableInfo</a>()</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#a87cc3289dd69e5378487dd9ae2c9e82e">destroy</a>();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a4decfc9e7f5dc096d7bfa42d6965763d"> 127</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4decfc9e7f5dc096d7bfa42d6965763d">setModelConstants</a>(<span class="keywordtype">bool</span> _modelConstants)</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; modelConstants = _modelConstants;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a89e9c6da843e5eef25c51afd5d0937e5"> 131</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a89e9c6da843e5eef25c51afd5d0937e5">getModelConstants</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad20ccb90e8f9dee488a8aec0600399dc">modelConstants</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a40387a4893ae5caf58d6f786533d2f44"> 138</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a40387a4893ae5caf58d6f786533d2f44">getModule</a>()</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#af8fdaaa03cd2ae9b7d50f57bc678b8ba">mod</a>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a4f916c64ca04c4db30bd19fb8505724d"> 143</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4f916c64ca04c4db30bd19fb8505724d">setModule</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* m)</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; mod = m;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="comment">// @{</span></div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#acba43b6e9cdf07afaf3d30351aa8df7c"> 150</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#acba43b6e9cdf07afaf3d30351aa8df7c">isBlkPtr</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">id</span> == <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba9a9d3f03f58ccd4fdaaf08327a74aa03">BlkPtr</a>);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ad095e4a569d399cadc03ce864f61c394"> 154</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad095e4a569d399cadc03ce864f61c394">isNullPtr</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">id</span> == <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba1e6cc9ef0abd047b183382f2681cd4c1">NullPtr</a>);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ad9cdb21e20182f3bc95f04bbb97712f3"> 158</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad9cdb21e20182f3bc95f04bbb97712f3">isBlkObj</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">id</span> == <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba95734ab884566beab5cd3523c250b539">BlackHole</a>);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a704b917b1e1dbaf9cd758fa9acc1083b"> 162</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a704b917b1e1dbaf9cd758fa9acc1083b">isConstantObj</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">id</span> == <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89baa3ecb7c51e2cba67d1f9a5284c2f215f">ConstantObj</a>);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a2fc4bfb83b71a4c14e16168382cb8f5d"> 166</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a2fc4bfb83b71a4c14e16168382cb8f5d">isBlkObjOrConstantObj</a>(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SymbolTableInfo.html#ad9cdb21e20182f3bc95f04bbb97712f3">isBlkObj</a>(<span class="keywordtype">id</span>) || <a class="code" href="classSVF_1_1SymbolTableInfo.html#a704b917b1e1dbaf9cd758fa9acc1083b">isConstantObj</a>(<span class="keywordtype">id</span>));</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aebf96274e1ad2a523981487839a3025e"> 171</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#aebf96274e1ad2a523981487839a3025e">getBlkObj</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906">getObj</a>(<a class="code" href="classSVF_1_1SymbolTableInfo.html#a05ca2987d9f8716c24e489bec53502f4">blackholeSymID</a>());</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a661eb9ff1839c3af942517808414202b"> 175</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a661eb9ff1839c3af942517808414202b">getConstantObj</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906">getObj</a>(<a class="code" href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497">constantSymID</a>());</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a1689fa03795200b501ae3887906e7e72"> 180</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a1689fa03795200b501ae3887906e7e72">blkPtrSymID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba9a9d3f03f58ccd4fdaaf08327a74aa03">BlkPtr</a>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#adaed6e68c2f53260ed4c4fc38b5c4721"> 185</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#adaed6e68c2f53260ed4c4fc38b5c4721">nullPtrSymID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba1e6cc9ef0abd047b183382f2681cd4c1">NullPtr</a>;</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;</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497"> 190</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497">constantSymID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89baa3ecb7c51e2cba67d1f9a5284c2f215f">ConstantObj</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a05ca2987d9f8716c24e489bec53502f4"> 195</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a05ca2987d9f8716c24e489bec53502f4">blackholeSymID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba95734ab884566beab5cd3523c250b539">BlackHole</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#ae39b1a2330b157312727a560fddbd0dc">createDummyObj</a>(<a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> symId, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">// @}</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a72be51342f633844f59c5a46b7e01583">getValSym</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* val);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#af5e91f2ace726b1f05b045681d2bd117">hasValSym</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* val);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a7cf19b236d4e44f8ae8da9b303466b36"> 210</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a7cf19b236d4e44f8ae8da9b303466b36">getObjSym</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* val)<span class="keyword"> const</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* svfVal = val;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a>* g = SVFUtil::dyn_cast&lt;SVFGlobalValue&gt;(val))</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; svfVal = g-&gt;getDefGlobalForMultipleModule();</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; ValueToIDMapTy::const_iterator iter = objSymMap.find(svfVal);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; assert(iter!=objSymMap.end() &amp;&amp; <span class="stringliteral">&quot;obj sym not found&quot;</span>);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">return</span> iter-&gt;second;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906"> 220</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906">getObj</a>(<a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; IDToMemMapTy::const_iterator iter = objMap.find(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; assert(iter!=objMap.end() &amp;&amp; <span class="stringliteral">&quot;obj not found&quot;</span>);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> iter-&gt;second;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afb06da4d5f8c75c039b0a05a31d4beb3"> 227</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afb06da4d5f8c75c039b0a05a31d4beb3">getRetSym</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* val)<span class="keyword"> const</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; FunToIDMapTy::const_iterator iter = returnSymMap.find(val);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; assert(iter!=returnSymMap.end() &amp;&amp; <span class="stringliteral">&quot;ret sym not found&quot;</span>);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">return</span> iter-&gt;second;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a6b0e0b41f3dbc095e8dd8472bbbb5baf"> 234</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a6b0e0b41f3dbc095e8dd8472bbbb5baf">getVarargSym</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* val)<span class="keyword"> const</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; FunToIDMapTy::const_iterator iter = varargSymMap.find(val);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; assert(iter!=varargSymMap.end() &amp;&amp; <span class="stringliteral">&quot;vararg sym not found&quot;</span>);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">return</span> iter-&gt;second;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a26eb45eab3da4695a6e5bad51b01ddc5"> 245</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a26eb45eab3da4695a6e5bad51b01ddc5">getTotalSymNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a125faa0295b38d027b35bc3d76b3afdd">totalSymNum</a>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#abc7e567209010286a68634c700d76cca"> 249</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#abc7e567209010286a68634c700d76cca">getMaxStructSize</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35">maxStSize</a>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a8f3cb8a1db34dd692ee04561f4edeebf"> 257</a></span>&#160; <span class="keyword">inline</span> ValueToIDMapTy&amp; <a class="code" href="classSVF_1_1SymbolTableInfo.html#a8f3cb8a1db34dd692ee04561f4edeebf">valSyms</a>()</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5054f95a7b77257ffb283044aab17b08">valSymMap</a>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a3f9612f32c651220386beb0514f8fcff"> 262</a></span>&#160; <span class="keyword">inline</span> ValueToIDMapTy&amp; <a class="code" href="classSVF_1_1SymbolTableInfo.html#a3f9612f32c651220386beb0514f8fcff">objSyms</a>()</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5840b742ed8c73ece548b9b4aede07ec">objSymMap</a>;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a929a20dc8f2eb4d82e93938b8339d697"> 267</a></span>&#160; <span class="keyword">inline</span> IDToMemMapTy&amp; <a class="code" href="classSVF_1_1SymbolTableInfo.html#a929a20dc8f2eb4d82e93938b8339d697">idToObjMap</a>()</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; {</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#aeab14702eabde827923a692cba8f7f8a">objMap</a>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aafd4da7cef6387bb974abe20185b7b96"> 272</a></span>&#160; <span class="keyword">inline</span> FunToIDMapTy&amp; <a class="code" href="classSVF_1_1SymbolTableInfo.html#aafd4da7cef6387bb974abe20185b7b96">retSyms</a>()</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ae6f8a4dbe09ff4756983ffdbed6d0681">returnSymMap</a>;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ac449cd925dc05758c990179c0748e1d5"> 277</a></span>&#160; <span class="keyword">inline</span> FunToIDMapTy&amp; <a class="code" href="classSVF_1_1SymbolTableInfo.html#ac449cd925dc05758c990179c0748e1d5">varargSyms</a>()</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a94c06e5ac0b50989743a9e63c9a6d5b9">varargSymMap</a>;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5dc699aa85fe879eb4b2c9109cf3030d">getTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* T) <span class="keyword">const</span>;</div><div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#af678e138df136d6f3cd53826dfa4486c"> 288</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#af678e138df136d6f3cd53826dfa4486c">hasSVFTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* T)</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; {</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#aff6341f4e2a79b3c999ec955e48555c9">svfTypes</a>.find(T) != <a class="code" href="classSVF_1_1SymbolTableInfo.html#aff6341f4e2a79b3c999ec955e48555c9">svfTypes</a>.end();</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a811a3489df0f793c7a5482d31d470a4c">getNumOfFlattenElements</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* T);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* T, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> origId);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a806ae865d29c4b05b69c499284758c6f">getFlatternedElemType</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* baseType, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flatten_idx);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4bf84ef15f3b4cc865ac64ca0aae84e7">getOriginalElemType</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* baseType, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> origId) <span class="keyword">const</span>;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a1e24131ab0a212df00889e32e6ee04f9">printFlattenFields</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* type);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a7d3001549966444622d5918e5811e89e">toString</a>(<a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89b">SYMTYPE</a> symtype);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a9f4cf6914b400b9f69c7852f13c496a9">dump</a>();</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a480a7565dcb5d9a94f4b0ffb44b127ee">getModulusOffset</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; ls);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a0c1143eff451edf8ea47d4487a8d3a55"> 318</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a0c1143eff451edf8ea47d4487a8d3a55">maxStruct</a>;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35"> 321</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35">maxStSize</a>;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a91083d9504ae5d220b28e0b3e461d4aa"> 323</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a91083d9504ae5d220b28e0b3e461d4aa">addTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty)</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; {</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; assert(!<a class="code" href="classSVF_1_1SymbolTableInfo.html#af678e138df136d6f3cd53826dfa4486c">hasSVFTypeInfo</a>(ty) &amp;&amp; <span class="stringliteral">&quot;this type info has been added before&quot;</span>);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#aff6341f4e2a79b3c999ec955e48555c9">svfTypes</a>.insert(ty);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">const</span> std::vector&lt;const SVFType*&gt;&amp; <a class="code" href="classSVF_1_1SymbolTableInfo.html#a1f65ce2d46190ef85a572a2471d3586b">getFlattenFieldTypes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStructType.html">SVFStructType</a> *T);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a2994a616d76020a21903fcdc2d2cfdff">createObjTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* type);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aff6341f4e2a79b3c999ec955e48555c9"> 341</a></span>&#160; SVFTypeSet <a class="code" href="classSVF_1_1SymbolTableInfo.html#aff6341f4e2a79b3c999ec955e48555c9">svfTypes</a>;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;};</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div><div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html"> 348</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1MemObj.html">MemObj</a></div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;{</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a750770ea992d39b22c8b2dda9aff2eaf"> 353</a></span>&#160; <a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a>* <a class="code" href="classSVF_1_1MemObj.html#a750770ea992d39b22c8b2dda9aff2eaf">typeInfo</a>;</div><div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a33d27c3e75e62f31f62c8d9bfc2e0262"> 355</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* <a class="code" href="classSVF_1_1MemObj.html#a33d27c3e75e62f31f62c8d9bfc2e0262">refVal</a>;</div><div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a37f4e34b7f7dd6bfd4379cf3552e9046"> 357</a></span>&#160; <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1MemObj.html#a37f4e34b7f7dd6bfd4379cf3552e9046">symId</a>;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>(<a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <span class="keywordtype">id</span>, <a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a>* ti, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* val = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a972e94158a18720642b1876fef5056cf"> 364</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MemObj.html#a972e94158a18720642b1876fef5056cf">~MemObj</a>()</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#a87cc3289dd69e5378487dd9ae2c9e82e">destroy</a>();</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; }</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a7d3001549966444622d5918e5811e89e">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4"> 372</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* <a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">return</span> refVal;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; }</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1"> 378</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">return</span> symId;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; }</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* getType() <span class="keyword">const</span>;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> getNumOfElements() <span class="keyword">const</span>;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordtype">void</span> setNumOfElements(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> getMaxFieldOffsetLimit() <span class="keyword">const</span>;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordtype">bool</span> isFieldInsensitive() <span class="keyword">const</span>;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordtype">void</span> setFieldInsensitive();</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordtype">void</span> setFieldSensitive();</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordtype">bool</span> isBlackHoleObj() <span class="keyword">const</span>;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordtype">bool</span> isFunction() <span class="keyword">const</span>;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordtype">bool</span> isGlobalObj() <span class="keyword">const</span>;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordtype">bool</span> isStaticObj() <span class="keyword">const</span>;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordtype">bool</span> isStack() <span class="keyword">const</span>;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordtype">bool</span> isHeap() <span class="keyword">const</span>;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordtype">bool</span> isStruct() <span class="keyword">const</span>;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordtype">bool</span> isArray() <span class="keyword">const</span>;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordtype">bool</span> isVarStruct() <span class="keyword">const</span>;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordtype">bool</span> isVarArray() <span class="keyword">const</span>;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordtype">bool</span> isConstantStruct() <span class="keyword">const</span>;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordtype">bool</span> isConstantArray() <span class="keyword">const</span>;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordtype">bool</span> isConstDataOrConstGlobal() <span class="keyword">const</span>;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">isConstDataOrAggData</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordtype">bool</span> hasPtrObj() <span class="keyword">const</span>;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordtype">bool</span> isNonPtrFieldObj(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; ls) <span class="keyword">const</span>;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a1a8601b72b6e6df211db1fffdd54c48b"> 427</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MemObj.html#a1a8601b72b6e6df211db1fffdd54c48b">operator==</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a> &amp;mem)<span class="keyword"> const</span></div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">return</span> getValue() == mem.<a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>();</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; }</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a87cc3289dd69e5378487dd9ae2c9e82e">destroy</a>();</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;};</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html"> 441</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;{</div><div class="line"><a name="l00443"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a9d9633d48431b80c078bd4a34c1e7fa0"> 443</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SymbolTableBuilder.html">SymbolTableBuilder</a>;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00445"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830"> 445</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">enum</span></div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; {</div><div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830af5f94b2a41dab25fa08c94a989fb9515"> 447</a></span>&#160; FUNCTION_OBJ = 0x1, <span class="comment">// object is a function</span></div><div class="line"><a name="l00448"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830ad2ba0edfac1460f3fd89e7a6c4c4691b"> 448</a></span>&#160; GLOBVAR_OBJ = 0x2, <span class="comment">// object is a global variable</span></div><div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a4e7606afe2dabdef9c9836ae798a9d98"> 449</a></span>&#160; STATIC_OBJ = 0x4, <span class="comment">// object is a static variable allocated before main</span></div><div class="line"><a name="l00450"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830aad918042d1f04a5e3960817d55ccb5d5"> 450</a></span>&#160; STACK_OBJ = 0x8, <span class="comment">// object is a stack variable</span></div><div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a692b4b0df23bad19ea04d18b01bf445c"> 451</a></span>&#160; HEAP_OBJ = 0x10, <span class="comment">// object is a heap variable</span></div><div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830aaf98981bd15b41f543fd99d0c6222f08"> 452</a></span>&#160; VAR_STRUCT_OBJ = 0x20, <span class="comment">// object contains struct</span></div><div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830adedc43e0fcaebf433120869aa9307b1c"> 453</a></span>&#160; VAR_ARRAY_OBJ = 0x40, <span class="comment">// object contains array</span></div><div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a6443b9fadd2d34e00832b2215a120ebd"> 454</a></span>&#160; CONST_STRUCT_OBJ = 0x80, <span class="comment">// constant struct</span></div><div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830aff4142c0c411dea07b484a19af514047"> 455</a></span>&#160; CONST_ARRAY_OBJ = 0x100, <span class="comment">// constant array</span></div><div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a84c1bc6eaff950330a102afca1efc04c"> 456</a></span>&#160; CONST_GLOBAL_OBJ = 0x200, <span class="comment">// global constant object</span></div><div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a5e5bc3a1838476fbd80c52720c9d103e"> 457</a></span>&#160; CONST_DATA = 0x400, <span class="comment">// constant object str e.g. 5, 10, 1.0</span></div><div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830ad17b2a35fb492561c4011dbe3880c6c9"> 458</a></span>&#160; HASPTR_OBJ = 0x800 <span class="comment">// the object stores a pointer address</span></div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; } <a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830">MEMTYPE</a>;</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a3620a491a32ff0af93f0d92f55911498"> 463</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="classSVF_1_1ObjTypeInfo.html#a3620a491a32ff0af93f0d92f55911498">type</a>;</div><div class="line"><a name="l00465"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#abf6bbcccf73bfcd5b950803d349c4eb1"> 465</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ObjTypeInfo.html#abf6bbcccf73bfcd5b950803d349c4eb1">flags</a>;</div><div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a5ff63eb0654acd152f7d6c18618ee94a"> 469</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a5ff63eb0654acd152f7d6c18618ee94a">maxOffsetLimit</a>;</div><div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a5fdcd5f3b7550e7bdc30c8c030c6226d"> 471</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a5fdcd5f3b7550e7bdc30c8c030c6226d">elemNum</a>;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordtype">void</span> resetTypeForHeapStaticObj(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* type);</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* t, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> max);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;</div><div class="line"><a name="l00480"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#ace5fdb3701cb93df0f02aedc94e7e975"> 480</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#ace5fdb3701cb93df0f02aedc94e7e975">~ObjTypeInfo</a>()</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; {</div><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;</div><div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#aaffd94b311238f183031a525376c55a2"> 485</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="classSVF_1_1ObjTypeInfo.html#aaffd94b311238f183031a525376c55a2">getType</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; }</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;</div><div class="line"><a name="l00491"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a81bc3d785062c7e527ecf8e564cd52a4"> 491</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a81bc3d785062c7e527ecf8e564cd52a4">getMaxFieldOffsetLimit</a>()</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; {</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">return</span> maxOffsetLimit;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; }</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;</div><div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a9fff869c63776c6ebeff78933e0f6092"> 497</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a9fff869c63776c6ebeff78933e0f6092">setMaxFieldOffsetLimit</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> limit)</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; {</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; maxOffsetLimit = limit;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; }</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;</div><div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#aff17d13e520a731accedd06350af6221"> 503</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#aff17d13e520a731accedd06350af6221">setNumOfElements</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num)</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; {</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; elemNum = num;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; setMaxFieldOffsetLimit(num);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; }</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a9329740d5db9212c69ed28ca6410559e"> 510</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a9329740d5db9212c69ed28ca6410559e">getNumOfElements</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordflow">return</span> elemNum;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; }</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;</div><div class="line"><a name="l00517"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49"> 517</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">setFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830">MEMTYPE</a> mask)</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; {</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; flags |= mask;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; }</div><div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a8e630eb30d05f665b998c6f9326d65cb"> 521</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a8e630eb30d05f665b998c6f9326d65cb">hasFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830">MEMTYPE</a> mask)</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; {</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">return</span> (flags &amp; mask) == mask;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; }</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;</div><div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#ac99fa14fdf7bc0dd3e9ff36c7a3a351f"> 529</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#ac99fa14fdf7bc0dd3e9ff36c7a3a351f">isFunction</a>()</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; {</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordflow">return</span> hasFlag(FUNCTION_OBJ);</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; }</div><div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#aa2855b69150287e5f04a7a683dc4c91f"> 533</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#aa2855b69150287e5f04a7a683dc4c91f">isGlobalObj</a>()</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; {</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordflow">return</span> hasFlag(GLOBVAR_OBJ);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; }</div><div class="line"><a name="l00537"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a3594dc1c1943dbac0ab72f2ff163c523"> 537</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a3594dc1c1943dbac0ab72f2ff163c523">isStaticObj</a>()</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; {</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">return</span> hasFlag(STATIC_OBJ);</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; }</div><div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#aa568dc82decd28d2ef40785a4a647602"> 541</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#aa568dc82decd28d2ef40785a4a647602">isStack</a>()</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="keywordflow">return</span> hasFlag(STACK_OBJ);</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; }</div><div class="line"><a name="l00545"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a26c179394fbda9a9261d0bf3f52b619d"> 545</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a26c179394fbda9a9261d0bf3f52b619d">isHeap</a>()</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; {</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">return</span> hasFlag(HEAP_OBJ);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; }</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;</div><div class="line"><a name="l00554"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a40d6703875b370aed2c6dc41c0594af5"> 554</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a40d6703875b370aed2c6dc41c0594af5">isVarStruct</a>()</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; {</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">return</span> hasFlag(VAR_STRUCT_OBJ);</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; }</div><div class="line"><a name="l00558"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a41f916ab4e3a2c163fca636eae948ce7"> 558</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a41f916ab4e3a2c163fca636eae948ce7">isConstantStruct</a>()</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; <span class="keywordflow">return</span> hasFlag(CONST_STRUCT_OBJ);</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; }</div><div class="line"><a name="l00562"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a06493939f797f122b70b90bbf22cad7a"> 562</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a06493939f797f122b70b90bbf22cad7a">isStruct</a>()</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; <span class="keywordflow">return</span> hasFlag(VAR_STRUCT_OBJ) || hasFlag(CONST_STRUCT_OBJ);</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; }</div><div class="line"><a name="l00566"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#aca1e900f9b0a774684af77666cf033e3"> 566</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#aca1e900f9b0a774684af77666cf033e3">isVarArray</a>()</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">return</span> hasFlag(VAR_ARRAY_OBJ);</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"><a class="line" href="classSVF_1_1ObjTypeInfo.html#ac1ee7a720959c0e97496870d6e759212"> 570</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#ac1ee7a720959c0e97496870d6e759212">isConstantArray</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="keywordflow">return</span> hasFlag(CONST_ARRAY_OBJ);</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; }</div><div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a0627e8b9dda2e13cc77c334eefab21e1"> 574</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a0627e8b9dda2e13cc77c334eefab21e1">isArray</a>()</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; {</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keywordflow">return</span> hasFlag(VAR_ARRAY_OBJ) || hasFlag(CONST_ARRAY_OBJ);</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; }</div><div class="line"><a name="l00578"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a8e6c60978df9828c1dcb54086e83edc1"> 578</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a8e6c60978df9828c1dcb54086e83edc1">isConstDataOrConstGlobal</a>()</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; {</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">return</span> hasFlag(CONST_GLOBAL_OBJ) || hasFlag(CONST_DATA);</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; }</div><div class="line"><a name="l00582"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a6cc6751c847c667d4fc3052a30195e14"> 582</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a6cc6751c847c667d4fc3052a30195e14">isConstDataOrAggData</a>()</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; {</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">return</span> hasFlag(CONST_DATA);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; }</div><div class="line"><a name="l00586"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#ac5bae1e7917f415193a805e8d2e29320"> 586</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#ac5bae1e7917f415193a805e8d2e29320">hasPtrObj</a>()</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; <span class="keywordflow">return</span> hasFlag(HASPTR_OBJ);</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; }</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isNonPtrFieldObj(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; ls);</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;};</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* INCLUDE_SVF_FE_SYMBOLTABLEINFO_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a1f65ce2d46190ef85a572a2471d3586b"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a1f65ce2d46190ef85a572a2471d3586b">SVF::SymbolTableInfo::getFlattenFieldTypes</a></div><div class="ttdeci">const std::vector&lt; const SVFType * &gt; &amp; getFlattenFieldTypes(const SVFStructType *T)</div><div class="ttdoc">Return the flattened field type for struct type only. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00204">SymbolTableInfo.cpp:204</a></div></div>
70
70
  <div class="ttc" id="classSVF_1_1SymbolTableBuilder_html"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html">SVF::SymbolTableBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8h_source.html#l00042">SymbolTableBuilder.h:42</a></div></div>
71
- <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_af5e91f2ace726b1f05b045681d2bd117"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#af5e91f2ace726b1f05b045681d2bd117">SVF::SymbolTableInfo::hasValSym</a></div><div class="ttdeci">bool hasValSym(const SVFValue *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00568">SymbolTableInfo.cpp:568</a></div></div>
71
+ <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_af5e91f2ace726b1f05b045681d2bd117"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#af5e91f2ace726b1f05b045681d2bd117">SVF::SymbolTableInfo::hasValSym</a></div><div class="ttdeci">bool hasValSym(const SVFValue *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00557">SymbolTableInfo.cpp:557</a></div></div>
72
72
  <div class="ttc" id="classSVF_1_1MemObj_html_a750770ea992d39b22c8b2dda9aff2eaf"><div class="ttname"><a href="classSVF_1_1MemObj.html#a750770ea992d39b22c8b2dda9aff2eaf">SVF::MemObj::typeInfo</a></div><div class="ttdeci">ObjTypeInfo * typeInfo</div><div class="ttdoc">Type information of this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00353">SymbolTableInfo.h:353</a></div></div>
73
73
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_aff272bc1d00f2e57b7677d1826a31237"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#aff272bc1d00f2e57b7677d1826a31237">SVF::SymbolTableInfo::SymbolTableInfo</a></div><div class="ttdeci">SymbolTableInfo(void)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00103">SymbolTableInfo.h:103</a></div></div>
74
74
  <div class="ttc" id="classSVF_1_1ObjTypeInfo_html_a8e630eb30d05f665b998c6f9326d65cb"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a8e630eb30d05f665b998c6f9326d65cb">SVF::ObjTypeInfo::hasFlag</a></div><div class="ttdeci">bool hasFlag(MEMTYPE mask)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00521">SymbolTableInfo.h:521</a></div></div>
@@ -95,7 +95,7 @@ $(function() {
95
95
  <div class="ttc" id="classSVF_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#l00257">SVFValue.h:257</a></div></div>
96
96
  <div class="ttc" id="classSVF_1_1ObjTypeInfo_html_a9329740d5db9212c69ed28ca6410559e"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a9329740d5db9212c69ed28ca6410559e">SVF::ObjTypeInfo::getNumOfElements</a></div><div class="ttdeci">u32_t getNumOfElements() const</div><div class="ttdoc">Get the number of elements of this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00510">SymbolTableInfo.h:510</a></div></div>
97
97
  <div class="ttc" id="classSVF_1_1ObjTypeInfo_html_ac99fa14fdf7bc0dd3e9ff36c7a3a351f"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#ac99fa14fdf7bc0dd3e9ff36c7a3a351f">SVF::ObjTypeInfo::isFunction</a></div><div class="ttdeci">bool isFunction()</div><div class="ttdoc">Object attributes. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00529">SymbolTableInfo.h:529</a></div></div>
98
- <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a7d3001549966444622d5918e5811e89e"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a7d3001549966444622d5918e5811e89e">SVF::SymbolTableInfo::toString</a></div><div class="ttdeci">static std::string toString(SYMTYPE symtype)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00284">SymbolTableInfo.cpp:284</a></div></div>
98
+ <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a7d3001549966444622d5918e5811e89e"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a7d3001549966444622d5918e5811e89e">SVF::SymbolTableInfo::toString</a></div><div class="ttdeci">static std::string toString(SYMTYPE symtype)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00273">SymbolTableInfo.cpp:273</a></div></div>
99
99
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a704b917b1e1dbaf9cd758fa9acc1083b"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a704b917b1e1dbaf9cd758fa9acc1083b">SVF::SymbolTableInfo::isConstantObj</a></div><div class="ttdeci">static bool isConstantObj(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00162">SymbolTableInfo.h:162</a></div></div>
100
100
  <div class="ttc" id="SVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
101
101
  <div class="ttc" id="cJSON_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>
@@ -107,7 +107,7 @@ $(function() {
107
107
  <div class="ttc" id="classSVF_1_1ObjTypeInfo_html_a41f916ab4e3a2c163fca636eae948ce7"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a41f916ab4e3a2c163fca636eae948ce7">SVF::ObjTypeInfo::isConstantStruct</a></div><div class="ttdeci">bool isConstantStruct()</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00558">SymbolTableInfo.h:558</a></div></div>
108
108
  <div class="ttc" id="classSVF_1_1ObjTypeInfo_html_aca1e900f9b0a774684af77666cf033e3"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#aca1e900f9b0a774684af77666cf033e3">SVF::ObjTypeInfo::isVarArray</a></div><div class="ttdeci">bool isVarArray()</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00566">SymbolTableInfo.h:566</a></div></div>
109
109
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a2994a616d76020a21903fcdc2d2cfdff"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a2994a616d76020a21903fcdc2d2cfdff">SVF::SymbolTableInfo::createObjTypeInfo</a></div><div class="ttdeci">ObjTypeInfo * createObjTypeInfo(const SVFType *type)</div><div class="ttdoc">Create an objectInfo based on LLVM type (value is null, and type could be null, representing a dummy ...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00067">SymbolTableInfo.cpp:67</a></div></div>
110
- <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a72be51342f633844f59c5a46b7e01583"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a72be51342f633844f59c5a46b7e01583">SVF::SymbolTableInfo::getValSym</a></div><div class="ttdeci">SymID getValSym(const SVFValue *val)</div><div class="ttdoc">Get different kinds of syms. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00553">SymbolTableInfo.cpp:553</a></div></div>
110
+ <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a72be51342f633844f59c5a46b7e01583"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a72be51342f633844f59c5a46b7e01583">SVF::SymbolTableInfo::getValSym</a></div><div class="ttdeci">SymID getValSym(const SVFValue *val)</div><div class="ttdoc">Get different kinds of syms. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00542">SymbolTableInfo.cpp:542</a></div></div>
111
111
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_abc7e567209010286a68634c700d76cca"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#abc7e567209010286a68634c700d76cca">SVF::SymbolTableInfo::getMaxStructSize</a></div><div class="ttdeci">u32_t getMaxStructSize() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00249">SymbolTableInfo.h:249</a></div></div>
112
112
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_af8fdaaa03cd2ae9b7d50f57bc678b8ba"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#af8fdaaa03cd2ae9b7d50f57bc678b8ba">SVF::SymbolTableInfo::mod</a></div><div class="ttdeci">SVFModule * mod</div><div class="ttdoc">Module. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00090">SymbolTableInfo.h:90</a></div></div>
113
113
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a65f49178a948380c2d6105178509a906"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906">SVF::SymbolTableInfo::getObj</a></div><div class="ttdeci">MemObj * getObj(SymID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00220">SymbolTableInfo.h:220</a></div></div>
@@ -121,10 +121,10 @@ $(function() {
121
121
  <div class="ttc" id="classSVF_1_1ObjTypeInfo_html_a0627e8b9dda2e13cc77c334eefab21e1"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a0627e8b9dda2e13cc77c334eefab21e1">SVF::ObjTypeInfo::isArray</a></div><div class="ttdeci">bool isArray()</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00574">SymbolTableInfo.h:574</a></div></div>
122
122
  <div class="ttc" id="classSVF_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#l00147">SVFValue.h:147</a></div></div>
123
123
  <div class="ttc" id="classSVF_1_1ObjTypeInfo_html_a91b41b7ade5871362b77a2ef566b2830"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830">SVF::ObjTypeInfo::MEMTYPE</a></div><div class="ttdeci">MEMTYPE</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00445">SymbolTableInfo.h:445</a></div></div>
124
- <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a1e24131ab0a212df00889e32e6ee04f9"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a1e24131ab0a212df00889e32e6ee04f9">SVF::SymbolTableInfo::printFlattenFields</a></div><div class="ttdeci">void printFlattenFields(const SVFType *type)</div><div class="ttdoc">Debug method. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00223">SymbolTableInfo.cpp:223</a></div></div>
125
- <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a4bf84ef15f3b4cc865ac64ca0aae84e7"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a4bf84ef15f3b4cc865ac64ca0aae84e7">SVF::SymbolTableInfo::getOriginalElemType</a></div><div class="ttdeci">const SVFType * getOriginalElemType(const SVFType *baseType, u32_t origId) const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00192">SymbolTableInfo.cpp:192</a></div></div>
124
+ <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a1e24131ab0a212df00889e32e6ee04f9"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a1e24131ab0a212df00889e32e6ee04f9">SVF::SymbolTableInfo::printFlattenFields</a></div><div class="ttdeci">void printFlattenFields(const SVFType *type)</div><div class="ttdoc">Debug method. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00212">SymbolTableInfo.cpp:212</a></div></div>
125
+ <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a4bf84ef15f3b4cc865ac64ca0aae84e7"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a4bf84ef15f3b4cc865ac64ca0aae84e7">SVF::SymbolTableInfo::getOriginalElemType</a></div><div class="ttdeci">const SVFType * getOriginalElemType(const SVFType *baseType, u32_t origId) const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00181">SymbolTableInfo.cpp:181</a></div></div>
126
126
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_abb8550c9ef856e45cb7675c3796f9a35"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35">SVF::SymbolTableInfo::maxStSize</a></div><div class="ttdeci">u32_t maxStSize</div><div class="ttdoc">The number of fields in max_struct. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00321">SymbolTableInfo.h:321</a></div></div>
127
- <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a9f4cf6914b400b9f69c7852f13c496a9"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a9f4cf6914b400b9f69c7852f13c496a9">SVF::SymbolTableInfo::dump</a></div><div class="ttdeci">virtual void dump()</div><div class="ttdoc">Another debug method. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00327">SymbolTableInfo.cpp:327</a></div></div>
127
+ <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a9f4cf6914b400b9f69c7852f13c496a9"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a9f4cf6914b400b9f69c7852f13c496a9">SVF::SymbolTableInfo::dump</a></div><div class="ttdeci">virtual void dump()</div><div class="ttdoc">Another debug method. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00316">SymbolTableInfo.cpp:316</a></div></div>
128
128
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a6efac0ae8ebf2865067136675be5a340"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a6efac0ae8ebf2865067136675be5a340">SVF::SymbolTableInfo::~SymbolTableInfo</a></div><div class="ttdeci">virtual ~SymbolTableInfo()</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00119">SymbolTableInfo.h:119</a></div></div>
129
129
  <div class="ttc" id="classSVF_1_1ObjTypeInfo_html_a5fdcd5f3b7550e7bdc30c8c030c6226d"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a5fdcd5f3b7550e7bdc30c8c030c6226d">SVF::ObjTypeInfo::elemNum</a></div><div class="ttdeci">u32_t elemNum</div><div class="ttdoc">Size of the object or number of elements. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00471">SymbolTableInfo.h:471</a></div></div>
130
130
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_af678e138df136d6f3cd53826dfa4486c"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#af678e138df136d6f3cd53826dfa4486c">SVF::SymbolTableInfo::hasSVFTypeInfo</a></div><div class="ttdeci">bool hasSVFTypeInfo(const SVFType *T)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00288">SymbolTableInfo.h:288</a></div></div>
@@ -142,20 +142,20 @@ $(function() {
142
142
  <div class="ttc" id="namespaceSVF_html_ad11fe2412b2182365a662ff0e4639b48"><div class="ttname"><a href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SVF::SymID</a></div><div class="ttdeci">unsigned SymID</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00057">SVFType.h:57</a></div></div>
143
143
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a26eb45eab3da4695a6e5bad51b01ddc5"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a26eb45eab3da4695a6e5bad51b01ddc5">SVF::SymbolTableInfo::getTotalSymNum</a></div><div class="ttdeci">u32_t getTotalSymNum() const</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00245">SymbolTableInfo.h:245</a></div></div>
144
144
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_acba43b6e9cdf07afaf3d30351aa8df7c"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#acba43b6e9cdf07afaf3d30351aa8df7c">SVF::SymbolTableInfo::isBlkPtr</a></div><div class="ttdeci">static bool isBlkPtr(NodeID id)</div><div class="ttdoc">special value </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00150">SymbolTableInfo.h:150</a></div></div>
145
- <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a806ae865d29c4b05b69c499284758c6f"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a806ae865d29c4b05b69c499284758c6f">SVF::SymbolTableInfo::getFlatternedElemType</a></div><div class="ttdeci">const SVFType * getFlatternedElemType(const SVFType *baseType, u32_t flatten_idx)</div><div class="ttdoc">Return the type of a flattened element given a flattened index. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00198">SymbolTableInfo.cpp:198</a></div></div>
145
+ <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a806ae865d29c4b05b69c499284758c6f"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a806ae865d29c4b05b69c499284758c6f">SVF::SymbolTableInfo::getFlatternedElemType</a></div><div class="ttdeci">const SVFType * getFlatternedElemType(const SVFType *baseType, u32_t flatten_idx)</div><div class="ttdoc">Return the type of a flattened element given a flattened index. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00187">SymbolTableInfo.cpp:187</a></div></div>
146
146
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a40387a4893ae5caf58d6f786533d2f44"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a40387a4893ae5caf58d6f786533d2f44">SVF::SymbolTableInfo::getModule</a></div><div class="ttdeci">SVFModule * getModule()</div><div class="ttdoc">Module. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00138">SymbolTableInfo.h:138</a></div></div>
147
147
  <div class="ttc" id="classSVF_1_1ObjTypeInfo_html_a8e6c60978df9828c1dcb54086e83edc1"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a8e6c60978df9828c1dcb54086e83edc1">SVF::ObjTypeInfo::isConstDataOrConstGlobal</a></div><div class="ttdeci">bool isConstDataOrConstGlobal()</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00578">SymbolTableInfo.h:578</a></div></div>
148
148
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a94c06e5ac0b50989743a9e63c9a6d5b9"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a94c06e5ac0b50989743a9e63c9a6d5b9">SVF::SymbolTableInfo::varargSymMap</a></div><div class="ttdeci">FunToIDMapTy varargSymMap</div><div class="ttdoc">vararg map </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00083">SymbolTableInfo.h:83</a></div></div>
149
149
  <div class="ttc" id="classSVF_1_1SVFGlobalValue_html"><div class="ttname"><a href="classSVF_1_1SVFGlobalValue.html">SVF::SVFGlobalValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00783">SVFValue.h:783</a></div></div>
150
150
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00081">SymbolTableInfo.cpp:81</a></div></div>
151
- <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_ae39b1a2330b157312727a560fddbd0dc"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#ae39b1a2330b157312727a560fddbd0dc">SVF::SymbolTableInfo::createDummyObj</a></div><div class="ttdeci">const MemObj * createDummyObj(SymID symId, const SVFType *type)</div><div class="ttdoc">Can only be invoked by SVFIR::addDummyNode() when creaing SVFIR from file. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00149">SymbolTableInfo.cpp:149</a></div></div>
151
+ <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_ae39b1a2330b157312727a560fddbd0dc"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#ae39b1a2330b157312727a560fddbd0dc">SVF::SymbolTableInfo::createDummyObj</a></div><div class="ttdeci">const MemObj * createDummyObj(SymID symId, const SVFType *type)</div><div class="ttdoc">Can only be invoked by SVFIR::addDummyNode() when creaing SVFIR from file. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00138">SymbolTableInfo.cpp:138</a></div></div>
152
152
  <div class="ttc" id="classSVF_1_1ObjTypeInfo_html_a40d6703875b370aed2c6dc41c0594af5"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a40d6703875b370aed2c6dc41c0594af5">SVF::ObjTypeInfo::isVarStruct</a></div><div class="ttdeci">bool isVarStruct()</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00554">SymbolTableInfo.h:554</a></div></div>
153
153
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_afd2cf6ef6d7f2a583c709a72067be89ba9a9d3f03f58ccd4fdaaf08327a74aa03"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba9a9d3f03f58ccd4fdaaf08327a74aa03">SVF::SymbolTableInfo::BlkPtr</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00057">SymbolTableInfo.h:57</a></div></div>
154
154
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_afd2cf6ef6d7f2a583c709a72067be89ba95734ab884566beab5cd3523c250b539"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba95734ab884566beab5cd3523c250b539">SVF::SymbolTableInfo::BlackHole</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00058">SymbolTableInfo.h:58</a></div></div>
155
155
  <div class="ttc" id="classSVF_1_1MemObj_html_a972e94158a18720642b1876fef5056cf"><div class="ttname"><a href="classSVF_1_1MemObj.html#a972e94158a18720642b1876fef5056cf">SVF::MemObj::~MemObj</a></div><div class="ttdeci">virtual ~MemObj()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00364">SymbolTableInfo.h:364</a></div></div>
156
156
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a5840b742ed8c73ece548b9b4aede07ec"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a5840b742ed8c73ece548b9b4aede07ec">SVF::SymbolTableInfo::objSymMap</a></div><div class="ttdeci">ValueToIDMapTy objSymMap</div><div class="ttdoc">map a obj reference to its sym id </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00081">SymbolTableInfo.h:81</a></div></div>
157
157
  <div class="ttc" id="classSVF_1_1ObjTypeInfo_html_a5ff63eb0654acd152f7d6c18618ee94a"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a5ff63eb0654acd152f7d6c18618ee94a">SVF::ObjTypeInfo::maxOffsetLimit</a></div><div class="ttdeci">u32_t maxOffsetLimit</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00469">SymbolTableInfo.h:469</a></div></div>
158
- <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a24df52313f8093bb651ae9da972cd663"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">SVF::SymbolTableInfo::getFlattenedElemIdx</a></div><div class="ttdeci">u32_t getFlattenedElemIdx(const SVFType *T, u32_t origId)</div><div class="ttdoc">Flatterned element idx of an array or struct by considering stride. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00167">SymbolTableInfo.cpp:167</a></div></div>
158
+ <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a24df52313f8093bb651ae9da972cd663"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">SVF::SymbolTableInfo::getFlattenedElemIdx</a></div><div class="ttdeci">u32_t getFlattenedElemIdx(const SVFType *T, u32_t origId)</div><div class="ttdoc">Flatterned element idx of an array or struct by considering stride. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00156">SymbolTableInfo.cpp:156</a></div></div>
159
159
  <div class="ttc" id="classSVF_1_1ObjTypeInfo_html_ace5fdb3701cb93df0f02aedc94e7e975"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#ace5fdb3701cb93df0f02aedc94e7e975">SVF::ObjTypeInfo::~ObjTypeInfo</a></div><div class="ttdeci">virtual ~ObjTypeInfo()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00480">SymbolTableInfo.h:480</a></div></div>
160
160
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_aff6341f4e2a79b3c999ec955e48555c9"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#aff6341f4e2a79b3c999ec955e48555c9">SVF::SymbolTableInfo::svfTypes</a></div><div class="ttdeci">SVFTypeSet svfTypes</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00341">SymbolTableInfo.h:341</a></div></div>
161
161
  <div class="ttc" id="classSVF_1_1ObjTypeInfo_html_ac5bae1e7917f415193a805e8d2e29320"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#ac5bae1e7917f415193a805e8d2e29320">SVF::ObjTypeInfo::hasPtrObj</a></div><div class="ttdeci">bool hasPtrObj()</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00586">SymbolTableInfo.h:586</a></div></div>
@@ -166,7 +166,7 @@ $(function() {
166
166
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_afd2cf6ef6d7f2a583c709a72067be89ba58703da9c0d4819869447b6a25dcff00"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba58703da9c0d4819869447b6a25dcff00">SVF::SymbolTableInfo::ObjSymbol</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00061">SymbolTableInfo.h:61</a></div></div>
167
167
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_afd2cf6ef6d7f2a583c709a72067be89b"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89b">SVF::SymbolTableInfo::SYMTYPE</a></div><div class="ttdeci">SYMTYPE</div><div class="ttdoc">Symbol types. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00054">SymbolTableInfo.h:54</a></div></div>
168
168
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_afd2cf6ef6d7f2a583c709a72067be89ba23583f8cf79d3fd142f8550664ad8247"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba23583f8cf79d3fd142f8550664ad8247">SVF::SymbolTableInfo::ValSymbol</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00060">SymbolTableInfo.h:60</a></div></div>
169
- <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a811a3489df0f793c7a5482d31d470a4c"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a811a3489df0f793c7a5482d31d470a4c">SVF::SymbolTableInfo::getNumOfFlattenElements</a></div><div class="ttdeci">u32_t getNumOfFlattenElements(const SVFType *T)</div><div class="ttdoc">Number of flattenned elements of an array or struct. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00158">SymbolTableInfo.cpp:158</a></div></div>
169
+ <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a811a3489df0f793c7a5482d31d470a4c"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a811a3489df0f793c7a5482d31d470a4c">SVF::SymbolTableInfo::getNumOfFlattenElements</a></div><div class="ttdeci">u32_t getNumOfFlattenElements(const SVFType *T)</div><div class="ttdoc">Number of flattenned elements of an array or struct. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00147">SymbolTableInfo.cpp:147</a></div></div>
170
170
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_ac449cd925dc05758c990179c0748e1d5"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#ac449cd925dc05758c990179c0748e1d5">SVF::SymbolTableInfo::varargSyms</a></div><div class="ttdeci">FunToIDMapTy &amp; varargSyms()</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00277">SymbolTableInfo.h:277</a></div></div>
171
171
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a87cc3289dd69e5378487dd9ae2c9e82e"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a87cc3289dd69e5378487dd9ae2c9e82e">SVF::SymbolTableInfo::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Clean up memory. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00121">SymbolTableInfo.cpp:121</a></div></div>
172
172
  <div class="ttc" id="classSVF_1_1MemObj_html_a33d27c3e75e62f31f62c8d9bfc2e0262"><div class="ttname"><a href="classSVF_1_1MemObj.html#a33d27c3e75e62f31f62c8d9bfc2e0262">SVF::MemObj::refVal</a></div><div class="ttdeci">const SVFValue * refVal</div><div class="ttdoc">The unique value of this symbol/variable. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00355">SymbolTableInfo.h:355</a></div></div>
@@ -180,7 +180,7 @@ $(function() {
180
180
  <div class="ttc" id="SVFModule_8h_html"><div class="ttname"><a href="SVFModule_8h.html">SVFModule.h</a></div></div>
181
181
  <div class="ttc" id="classSVF_1_1ObjTypeInfo_html_a6cc6751c847c667d4fc3052a30195e14"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a6cc6751c847c667d4fc3052a30195e14">SVF::ObjTypeInfo::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData()</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00582">SymbolTableInfo.h:582</a></div></div>
182
182
  <div class="ttc" id="classSVF_1_1ObjTypeInfo_html_aff17d13e520a731accedd06350af6221"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#aff17d13e520a731accedd06350af6221">SVF::ObjTypeInfo::setNumOfElements</a></div><div class="ttdeci">void setNumOfElements(u32_t num)</div><div class="ttdoc">Set the number of elements of this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00503">SymbolTableInfo.h:503</a></div></div>
183
- <div class="ttc" id="classSVF_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#l00235">SVFType.h:235</a></div></div>
183
+ <div class="ttc" id="classSVF_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#l00233">SVFType.h:233</a></div></div>
184
184
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_ae6f8a4dbe09ff4756983ffdbed6d0681"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#ae6f8a4dbe09ff4756983ffdbed6d0681">SVF::SymbolTableInfo::returnSymMap</a></div><div class="ttdeci">FunToIDMapTy returnSymMap</div><div class="ttdoc">return map </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00082">SymbolTableInfo.h:82</a></div></div>
185
185
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a0371b60485199175b011cf3a42b404aa"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a0371b60485199175b011cf3a42b404aa">SVF::SymbolTableInfo::IDToMemMapTy</a></div><div class="ttdeci">OrderedMap&lt; SymID, MemObj * &gt; IDToMemMapTy</div><div class="ttdoc">sym id to memory object map </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00072">SymbolTableInfo.h:72</a></div></div>
186
186
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_afd2cf6ef6d7f2a583c709a72067be89bab8a256319d4853178a0308c0f6f830e3"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89bab8a256319d4853178a0308c0f6f830e3">SVF::SymbolTableInfo::VarargSymbol</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00063">SymbolTableInfo.h:63</a></div></div>
@@ -193,7 +193,7 @@ $(function() {
193
193
  <div class="ttc" id="classSVF_1_1ObjTypeInfo_html_abf6bbcccf73bfcd5b950803d349c4eb1"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#abf6bbcccf73bfcd5b950803d349c4eb1">SVF::ObjTypeInfo::flags</a></div><div class="ttdeci">u32_t flags</div><div class="ttdoc">Type flags. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00465">SymbolTableInfo.h:465</a></div></div>
194
194
  <div class="ttc" id="classSVF_1_1ObjTypeInfo_html_aa2855b69150287e5f04a7a683dc4c91f"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#aa2855b69150287e5f04a7a683dc4c91f">SVF::ObjTypeInfo::isGlobalObj</a></div><div class="ttdeci">bool isGlobalObj()</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00533">SymbolTableInfo.h:533</a></div></div>
195
195
  <div class="ttc" id="classSVF_1_1ObjTypeInfo_html_a06493939f797f122b70b90bbf22cad7a"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a06493939f797f122b70b90bbf22cad7a">SVF::ObjTypeInfo::isStruct</a></div><div class="ttdeci">bool isStruct()</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00562">SymbolTableInfo.h:562</a></div></div>
196
- <div class="ttc" id="classSVF_1_1SVFStructType_html"><div class="ttname"><a href="classSVF_1_1SVFStructType.html">SVF::SVFStructType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00366">SVFType.h:366</a></div></div>
196
+ <div class="ttc" id="classSVF_1_1SVFStructType_html"><div class="ttname"><a href="classSVF_1_1SVFStructType.html">SVF::SVFStructType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00364">SVFType.h:364</a></div></div>
197
197
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html">SVF::SymbolTableInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00047">SymbolTableInfo.h:47</a></div></div>
198
198
  <div class="ttc" id="LocationSet_8h_html"><div class="ttname"><a href="LocationSet_8h.html">LocationSet.h</a></div></div>
199
199
  <div class="ttc" id="namespaceSVF_html_aedf0d6718ca176e0b9e17ab4b30729c6"><div class="ttname"><a href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">SVF::OrderedMap</a></div><div class="ttdeci">std::map&lt; Key, Value, Compare, Allocator &gt; OrderedMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00106">SVFType.h:106</a></div></div>