svf-tools 1.0.908 → 1.0.910

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 (268) hide show
  1. package/SVF-doxygen/html/AbstractInterpretation_8cpp_source.html +1549 -1576
  2. package/SVF-doxygen/html/AbstractInterpretation_8h_source.html +68 -75
  3. package/SVF-doxygen/html/AbstractState_8cpp_source.html +25 -25
  4. package/SVF-doxygen/html/AbstractState_8h_source.html +390 -391
  5. package/SVF-doxygen/html/BufOverflowChecker_8cpp_source.html +15 -15
  6. package/SVF-doxygen/html/RelExeState_8cpp_source.html +5 -5
  7. package/SVF-doxygen/html/RelExeState_8h_source.html +178 -179
  8. package/SVF-doxygen/html/RelationSolver_8cpp_source.html +3 -3
  9. package/SVF-doxygen/html/SVFIR2AbsState_8cpp_source.html +10 -10
  10. package/SVF-doxygen/html/SVFIR2AbsState_8h_source.html +12 -17
  11. package/SVF-doxygen/html/ae_8cpp_source.html +3 -3
  12. package/SVF-doxygen/html/classSVF_1_1AEStat.html +115 -115
  13. package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation-members.html +7 -9
  14. package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation.html +1435 -1521
  15. package/SVF-doxygen/html/classSVF_1_1AbstractState-members.html +25 -25
  16. package/SVF-doxygen/html/classSVF_1_1AbstractState.html +340 -342
  17. package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker-members.html +7 -9
  18. package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker.html +20 -10
  19. package/SVF-doxygen/html/classSVF_1_1RelExeState-members.html +19 -19
  20. package/SVF-doxygen/html/classSVF_1_1RelExeState.html +131 -132
  21. package/SVF-doxygen/html/classSVF_1_1RelationSolver.html +3 -3
  22. package/SVF-doxygen/html/classSVF_1_1SVFIR2AbsState-members.html +22 -24
  23. package/SVF-doxygen/html/classSVF_1_1SVFIR2AbsState.html +23 -91
  24. package/SVF-doxygen/html/classSymblicAbstractionTest.html +2 -2
  25. package/SVF-doxygen/html/functions.html +6 -9
  26. package/SVF-doxygen/html/functions_a.html +9 -3
  27. package/SVF-doxygen/html/functions_f.html +3 -3
  28. package/SVF-doxygen/html/functions_func.html +1 -1
  29. package/SVF-doxygen/html/functions_func_g.html +9 -9
  30. package/SVF-doxygen/html/functions_func_i.html +7 -13
  31. package/SVF-doxygen/html/functions_func_p.html +3 -3
  32. package/SVF-doxygen/html/functions_g.html +10 -10
  33. package/SVF-doxygen/html/functions_i.html +12 -18
  34. package/SVF-doxygen/html/functions_l.html +3 -9
  35. package/SVF-doxygen/html/functions_o.html +17 -17
  36. package/SVF-doxygen/html/functions_p.html +18 -22
  37. package/SVF-doxygen/html/functions_r.html +1 -1
  38. package/SVF-doxygen/html/functions_s.html +12 -14
  39. package/SVF-doxygen/html/functions_t.html +2 -2
  40. package/SVF-doxygen/html/functions_type.html +6 -0
  41. package/SVF-doxygen/html/functions_type_l.html +0 -6
  42. package/SVF-doxygen/html/functions_v.html +3 -3
  43. package/SVF-doxygen/html/functions_vars.html +6 -9
  44. package/SVF-doxygen/html/functions_w.html +1 -1
  45. package/SVF-doxygen/html/search/all_0.js +167 -168
  46. package/SVF-doxygen/html/search/all_1.js +504 -502
  47. package/SVF-doxygen/html/search/all_10.js +326 -326
  48. package/SVF-doxygen/html/search/all_11.js +227 -227
  49. package/SVF-doxygen/html/search/all_12.js +562 -562
  50. package/SVF-doxygen/html/search/all_13.js +186 -186
  51. package/SVF-doxygen/html/search/all_14.js +74 -74
  52. package/SVF-doxygen/html/search/all_15.js +175 -175
  53. package/SVF-doxygen/html/search/all_16.js +77 -77
  54. package/SVF-doxygen/html/search/all_17.js +1 -1
  55. package/SVF-doxygen/html/search/all_18.js +1 -1
  56. package/SVF-doxygen/html/search/all_19.js +27 -27
  57. package/SVF-doxygen/html/search/all_1a.js +174 -174
  58. package/SVF-doxygen/html/search/all_2.js +180 -180
  59. package/SVF-doxygen/html/search/all_3.js +635 -635
  60. package/SVF-doxygen/html/search/all_4.js +237 -237
  61. package/SVF-doxygen/html/search/all_5.js +120 -120
  62. package/SVF-doxygen/html/search/all_6.js +236 -236
  63. package/SVF-doxygen/html/search/all_7.js +1039 -1039
  64. package/SVF-doxygen/html/search/all_8.js +224 -224
  65. package/SVF-doxygen/html/search/all_9.js +623 -625
  66. package/SVF-doxygen/html/search/all_a.js +46 -46
  67. package/SVF-doxygen/html/search/all_b.js +24 -24
  68. package/SVF-doxygen/html/search/all_c.js +111 -113
  69. package/SVF-doxygen/html/search/all_d.js +204 -204
  70. package/SVF-doxygen/html/search/all_e.js +207 -207
  71. package/SVF-doxygen/html/search/all_f.js +122 -122
  72. package/SVF-doxygen/html/search/classes_0.js +29 -29
  73. package/SVF-doxygen/html/search/classes_1.js +11 -11
  74. package/SVF-doxygen/html/search/classes_10.js +71 -71
  75. package/SVF-doxygen/html/search/classes_11.js +14 -14
  76. package/SVF-doxygen/html/search/classes_12.js +2 -2
  77. package/SVF-doxygen/html/search/classes_13.js +10 -10
  78. package/SVF-doxygen/html/search/classes_14.js +19 -19
  79. package/SVF-doxygen/html/search/classes_15.js +1 -1
  80. package/SVF-doxygen/html/search/classes_2.js +72 -72
  81. package/SVF-doxygen/html/search/classes_3.js +35 -35
  82. package/SVF-doxygen/html/search/classes_4.js +7 -7
  83. package/SVF-doxygen/html/search/classes_5.js +28 -28
  84. package/SVF-doxygen/html/search/classes_6.js +98 -98
  85. package/SVF-doxygen/html/search/classes_7.js +33 -33
  86. package/SVF-doxygen/html/search/classes_8.js +57 -57
  87. package/SVF-doxygen/html/search/classes_9.js +1 -1
  88. package/SVF-doxygen/html/search/classes_a.js +12 -12
  89. package/SVF-doxygen/html/search/classes_b.js +29 -29
  90. package/SVF-doxygen/html/search/classes_c.js +6 -6
  91. package/SVF-doxygen/html/search/classes_d.js +19 -19
  92. package/SVF-doxygen/html/search/classes_e.js +36 -36
  93. package/SVF-doxygen/html/search/classes_f.js +25 -25
  94. package/SVF-doxygen/html/search/defines_0.js +3 -3
  95. package/SVF-doxygen/html/search/defines_1.js +3 -3
  96. package/SVF-doxygen/html/search/defines_10.js +2 -2
  97. package/SVF-doxygen/html/search/defines_2.js +30 -30
  98. package/SVF-doxygen/html/search/defines_3.js +20 -20
  99. package/SVF-doxygen/html/search/defines_4.js +3 -3
  100. package/SVF-doxygen/html/search/defines_5.js +4 -4
  101. package/SVF-doxygen/html/search/defines_6.js +2 -2
  102. package/SVF-doxygen/html/search/defines_7.js +5 -5
  103. package/SVF-doxygen/html/search/defines_8.js +11 -11
  104. package/SVF-doxygen/html/search/defines_9.js +9 -9
  105. package/SVF-doxygen/html/search/defines_a.js +2 -2
  106. package/SVF-doxygen/html/search/defines_b.js +1 -1
  107. package/SVF-doxygen/html/search/defines_c.js +3 -3
  108. package/SVF-doxygen/html/search/defines_d.js +2 -2
  109. package/SVF-doxygen/html/search/defines_e.js +8 -8
  110. package/SVF-doxygen/html/search/defines_f.js +4 -4
  111. package/SVF-doxygen/html/search/enums_0.js +3 -3
  112. package/SVF-doxygen/html/search/enums_1.js +2 -2
  113. package/SVF-doxygen/html/search/enums_10.js +1 -1
  114. package/SVF-doxygen/html/search/enums_11.js +1 -1
  115. package/SVF-doxygen/html/search/enums_2.js +9 -9
  116. package/SVF-doxygen/html/search/enums_3.js +2 -2
  117. package/SVF-doxygen/html/search/enums_4.js +3 -3
  118. package/SVF-doxygen/html/search/enums_5.js +1 -1
  119. package/SVF-doxygen/html/search/enums_6.js +2 -2
  120. package/SVF-doxygen/html/search/enums_7.js +2 -2
  121. package/SVF-doxygen/html/search/enums_8.js +4 -4
  122. package/SVF-doxygen/html/search/enums_9.js +1 -1
  123. package/SVF-doxygen/html/search/enums_a.js +1 -1
  124. package/SVF-doxygen/html/search/enums_b.js +7 -7
  125. package/SVF-doxygen/html/search/enums_c.js +1 -1
  126. package/SVF-doxygen/html/search/enums_d.js +4 -4
  127. package/SVF-doxygen/html/search/enums_e.js +2 -2
  128. package/SVF-doxygen/html/search/enums_f.js +4 -4
  129. package/SVF-doxygen/html/search/enumvalues_0.js +15 -15
  130. package/SVF-doxygen/html/search/enumvalues_1.js +16 -16
  131. package/SVF-doxygen/html/search/enumvalues_10.js +36 -36
  132. package/SVF-doxygen/html/search/enumvalues_11.js +6 -6
  133. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  134. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  135. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  136. package/SVF-doxygen/html/search/enumvalues_15.js +4 -4
  137. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  138. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  139. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  140. package/SVF-doxygen/html/search/enumvalues_5.js +50 -50
  141. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  142. package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
  143. package/SVF-doxygen/html/search/enumvalues_8.js +24 -24
  144. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  145. package/SVF-doxygen/html/search/enumvalues_a.js +17 -17
  146. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  147. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  148. package/SVF-doxygen/html/search/enumvalues_d.js +19 -19
  149. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  150. package/SVF-doxygen/html/search/enumvalues_f.js +48 -48
  151. package/SVF-doxygen/html/search/files_0.js +18 -18
  152. package/SVF-doxygen/html/search/files_1.js +9 -9
  153. package/SVF-doxygen/html/search/files_10.js +8 -8
  154. package/SVF-doxygen/html/search/files_11.js +8 -8
  155. package/SVF-doxygen/html/search/files_12.js +2 -2
  156. package/SVF-doxygen/html/search/files_2.js +51 -51
  157. package/SVF-doxygen/html/search/files_3.js +14 -14
  158. package/SVF-doxygen/html/search/files_4.js +3 -3
  159. package/SVF-doxygen/html/search/files_5.js +13 -13
  160. package/SVF-doxygen/html/search/files_6.js +10 -10
  161. package/SVF-doxygen/html/search/files_7.js +15 -15
  162. package/SVF-doxygen/html/search/files_8.js +13 -13
  163. package/SVF-doxygen/html/search/files_9.js +18 -18
  164. package/SVF-doxygen/html/search/files_a.js +3 -3
  165. package/SVF-doxygen/html/search/files_b.js +4 -4
  166. package/SVF-doxygen/html/search/files_c.js +20 -20
  167. package/SVF-doxygen/html/search/files_d.js +4 -4
  168. package/SVF-doxygen/html/search/files_e.js +57 -57
  169. package/SVF-doxygen/html/search/files_f.js +8 -8
  170. package/SVF-doxygen/html/search/functions_0.js +13 -13
  171. package/SVF-doxygen/html/search/functions_1.js +366 -366
  172. package/SVF-doxygen/html/search/functions_10.js +140 -140
  173. package/SVF-doxygen/html/search/functions_11.js +140 -140
  174. package/SVF-doxygen/html/search/functions_12.js +293 -293
  175. package/SVF-doxygen/html/search/functions_13.js +52 -52
  176. package/SVF-doxygen/html/search/functions_14.js +41 -41
  177. package/SVF-doxygen/html/search/functions_15.js +70 -70
  178. package/SVF-doxygen/html/search/functions_16.js +38 -38
  179. package/SVF-doxygen/html/search/functions_17.js +3 -3
  180. package/SVF-doxygen/html/search/functions_18.js +174 -174
  181. package/SVF-doxygen/html/search/functions_2.js +92 -92
  182. package/SVF-doxygen/html/search/functions_3.js +257 -257
  183. package/SVF-doxygen/html/search/functions_4.js +85 -85
  184. package/SVF-doxygen/html/search/functions_5.js +54 -54
  185. package/SVF-doxygen/html/search/functions_6.js +65 -65
  186. package/SVF-doxygen/html/search/functions_7.js +857 -857
  187. package/SVF-doxygen/html/search/functions_8.js +176 -176
  188. package/SVF-doxygen/html/search/functions_9.js +436 -438
  189. package/SVF-doxygen/html/search/functions_a.js +30 -30
  190. package/SVF-doxygen/html/search/functions_b.js +2 -2
  191. package/SVF-doxygen/html/search/functions_c.js +22 -22
  192. package/SVF-doxygen/html/search/functions_d.js +81 -81
  193. package/SVF-doxygen/html/search/functions_e.js +34 -34
  194. package/SVF-doxygen/html/search/functions_f.js +58 -58
  195. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  196. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  197. package/SVF-doxygen/html/search/related_0.js +4 -4
  198. package/SVF-doxygen/html/search/related_1.js +2 -2
  199. package/SVF-doxygen/html/search/related_2.js +2 -2
  200. package/SVF-doxygen/html/search/related_3.js +2 -2
  201. package/SVF-doxygen/html/search/related_4.js +2 -2
  202. package/SVF-doxygen/html/search/related_5.js +1 -1
  203. package/SVF-doxygen/html/search/related_6.js +2 -2
  204. package/SVF-doxygen/html/search/related_7.js +5 -5
  205. package/SVF-doxygen/html/search/related_8.js +2 -2
  206. package/SVF-doxygen/html/search/related_9.js +4 -4
  207. package/SVF-doxygen/html/search/related_a.js +19 -19
  208. package/SVF-doxygen/html/search/related_b.js +4 -4
  209. package/SVF-doxygen/html/search/related_c.js +2 -2
  210. package/SVF-doxygen/html/search/related_d.js +11 -11
  211. package/SVF-doxygen/html/search/related_e.js +2 -2
  212. package/SVF-doxygen/html/search/related_f.js +2 -2
  213. package/SVF-doxygen/html/search/typedefs_0.js +20 -18
  214. package/SVF-doxygen/html/search/typedefs_1.js +27 -27
  215. package/SVF-doxygen/html/search/typedefs_10.js +65 -65
  216. package/SVF-doxygen/html/search/typedefs_11.js +12 -12
  217. package/SVF-doxygen/html/search/typedefs_12.js +13 -13
  218. package/SVF-doxygen/html/search/typedefs_13.js +40 -40
  219. package/SVF-doxygen/html/search/typedefs_14.js +11 -11
  220. package/SVF-doxygen/html/search/typedefs_2.js +125 -125
  221. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  222. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  223. package/SVF-doxygen/html/search/typedefs_5.js +42 -42
  224. package/SVF-doxygen/html/search/typedefs_6.js +54 -54
  225. package/SVF-doxygen/html/search/typedefs_7.js +47 -47
  226. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  227. package/SVF-doxygen/html/search/typedefs_9.js +4 -4
  228. package/SVF-doxygen/html/search/typedefs_a.js +28 -30
  229. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  230. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  231. package/SVF-doxygen/html/search/typedefs_d.js +15 -15
  232. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  233. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  234. package/SVF-doxygen/html/search/variables_0.js +170 -171
  235. package/SVF-doxygen/html/search/variables_1.js +78 -78
  236. package/SVF-doxygen/html/search/variables_10.js +98 -98
  237. package/SVF-doxygen/html/search/variables_11.js +47 -47
  238. package/SVF-doxygen/html/search/variables_12.js +93 -93
  239. package/SVF-doxygen/html/search/variables_13.js +76 -76
  240. package/SVF-doxygen/html/search/variables_14.js +14 -14
  241. package/SVF-doxygen/html/search/variables_15.js +49 -49
  242. package/SVF-doxygen/html/search/variables_16.js +11 -11
  243. package/SVF-doxygen/html/search/variables_17.js +1 -1
  244. package/SVF-doxygen/html/search/variables_18.js +17 -17
  245. package/SVF-doxygen/html/search/variables_2.js +40 -40
  246. package/SVF-doxygen/html/search/variables_3.js +143 -143
  247. package/SVF-doxygen/html/search/variables_4.js +51 -51
  248. package/SVF-doxygen/html/search/variables_5.js +39 -39
  249. package/SVF-doxygen/html/search/variables_6.js +66 -66
  250. package/SVF-doxygen/html/search/variables_7.js +32 -32
  251. package/SVF-doxygen/html/search/variables_8.js +8 -8
  252. package/SVF-doxygen/html/search/variables_9.js +80 -80
  253. package/SVF-doxygen/html/search/variables_a.js +4 -4
  254. package/SVF-doxygen/html/search/variables_b.js +10 -10
  255. package/SVF-doxygen/html/search/variables_c.js +44 -44
  256. package/SVF-doxygen/html/search/variables_d.js +58 -58
  257. package/SVF-doxygen/html/search/variables_e.js +123 -123
  258. package/SVF-doxygen/html/search/variables_f.js +31 -31
  259. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1RelExeState_01_4.html +6 -6
  260. package/package.json +1 -1
  261. package/svf/include/AE/Core/AbstractState.h +23 -24
  262. package/svf/include/AE/Core/RelExeState.h +10 -11
  263. package/svf/include/AE/Svfexe/AbstractInterpretation.h +4 -9
  264. package/svf/include/AE/Svfexe/SVFIR2AbsState.h +0 -3
  265. package/svf/lib/AE/Core/AbstractState.cpp +22 -22
  266. package/svf/lib/AE/Core/RelExeState.cpp +3 -3
  267. package/svf/lib/AE/Svfexe/AbstractInterpretation.cpp +3 -27
  268. package/svf/lib/AE/Svfexe/SVFIR2AbsState.cpp +8 -8
@@ -113,228 +113,227 @@ $(function() {
113
113
  <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; </div>
114
114
  <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">public</span>:</div>
115
115
  <div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#afcdf0c842f48a35cf19b2f7887174e98"> 44</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;u32_t, Z3Expr&gt;</a> <a class="code" href="classSVF_1_1RelExeState.html#afcdf0c842f48a35cf19b2f7887174e98">VarToValMap</a>;</div>
116
- <div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#aae7d4cc75071ce34d68bd4e1709bd2c8"> 45</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1RelExeState.html#afcdf0c842f48a35cf19b2f7887174e98">VarToValMap</a> <a class="code" href="classSVF_1_1RelExeState.html#aae7d4cc75071ce34d68bd4e1709bd2c8">LocToValMap</a>;</div>
116
+ <div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a019c2d09ca0ccfbd21502089e348bdfb"> 45</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1RelExeState.html#afcdf0c842f48a35cf19b2f7887174e98">VarToValMap</a> <a class="code" href="classSVF_1_1RelExeState.html#a019c2d09ca0ccfbd21502089e348bdfb">AddrToValMap</a>;</div>
117
117
  <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div>
118
118
  <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">protected</span>:</div>
119
119
  <div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#ab4cede761cb0bdc082da8e53cd2d5b06"> 48</a></span>&#160; <a class="code" href="classSVF_1_1RelExeState.html#afcdf0c842f48a35cf19b2f7887174e98">VarToValMap</a> <a class="code" href="classSVF_1_1RelExeState.html#ab4cede761cb0bdc082da8e53cd2d5b06">_varToVal</a>;</div>
120
- <div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#ab2bae973796c52765500b506844286e4"> 49</a></span>&#160; <a class="code" href="classSVF_1_1RelExeState.html#aae7d4cc75071ce34d68bd4e1709bd2c8">LocToValMap</a> <a class="code" href="classSVF_1_1RelExeState.html#ab2bae973796c52765500b506844286e4">_locToVal</a>;</div>
120
+ <div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#ad92f53c7a29641d50cda609f779a46e2"> 49</a></span>&#160; <a class="code" href="classSVF_1_1RelExeState.html#a019c2d09ca0ccfbd21502089e348bdfb">AddrToValMap</a> <a class="code" href="classSVF_1_1RelExeState.html#ad92f53c7a29641d50cda609f779a46e2">_addrToVal</a>;</div>
121
121
  <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div>
122
122
  <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">public</span>:</div>
123
123
  <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html#a34d81c2627e224283e07765d15543bf1">RelExeState</a>() = <span class="keywordflow">default</span>;</div>
124
124
  <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; </div>
125
- <div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a0078db58922ddbf5a9ec9641ed6f4544"> 54</a></span>&#160; <a class="code" href="classSVF_1_1RelExeState.html#a0078db58922ddbf5a9ec9641ed6f4544">RelExeState</a>(<a class="code" href="classSVF_1_1RelExeState.html#afcdf0c842f48a35cf19b2f7887174e98">VarToValMap</a> &amp;varToVal, <a class="code" href="classSVF_1_1RelExeState.html#aae7d4cc75071ce34d68bd4e1709bd2c8">LocToValMap</a> &amp;locToVal) : <a class="code" href="classSVF_1_1RelExeState.html#ab4cede761cb0bdc082da8e53cd2d5b06">_varToVal</a>(varToVal),</div>
126
- <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html#ab2bae973796c52765500b506844286e4">_locToVal</a>(locToVal) {}</div>
127
- <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div>
128
- <div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a482bd4d7143e7d78a22f276bf5a4f30f"> 57</a></span>&#160; <a class="code" href="classSVF_1_1RelExeState.html#a482bd4d7143e7d78a22f276bf5a4f30f">RelExeState</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> &amp;rhs) : <a class="code" href="classSVF_1_1RelExeState.html#ab4cede761cb0bdc082da8e53cd2d5b06">_varToVal</a>(rhs.<a class="code" href="classSVF_1_1RelExeState.html#a9c64d2699cb67cdf8d1c3c23aebf2c4a">getVarToVal</a>()), <a class="code" href="classSVF_1_1RelExeState.html#ab2bae973796c52765500b506844286e4">_locToVal</a>(rhs.<a class="code" href="classSVF_1_1RelExeState.html#a3eb51c26ae9c87e1457d6515e6d537f9">getLocToVal</a>())</div>
129
- <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; {</div>
130
- <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
131
- <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div>
132
- <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
133
- <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1RelExeState.html#a885dff82580de5bdb478f6991c6c357c">~RelExeState</a>() = <span class="keywordflow">default</span>;</div>
134
- <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
135
- <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> &amp;<a class="code" href="classSVF_1_1RelExeState.html#a7ab6cb58ed0f95417549b6291f658f86">operator=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> &amp;rhs);</div>
136
- <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; </div>
137
- <div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a0d2f6c9fe4a54b9a7c6d7167e24e1425"> 66</a></span>&#160; <a class="code" href="classSVF_1_1RelExeState.html#a0d2f6c9fe4a54b9a7c6d7167e24e1425">RelExeState</a>(<a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> &amp;&amp;rhs) noexcept: <a class="code" href="classSVF_1_1RelExeState.html#ab4cede761cb0bdc082da8e53cd2d5b06">_varToVal</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(rhs._varToVal)),</div>
138
- <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html#ab2bae973796c52765500b506844286e4">_locToVal</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(rhs._locToVal))</div>
139
- <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div>
140
- <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div>
141
- <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div>
142
- <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
143
- <div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a1fe9d8a646640f9995d92bf8a577cd20"> 72</a></span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> &amp;<a class="code" href="classSVF_1_1RelExeState.html#a1fe9d8a646640f9995d92bf8a577cd20">operator=</a>(<a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> &amp;&amp;rhs) noexcept</div>
144
- <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; {</div>
145
- <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">if</span> (&amp;rhs != <span class="keyword">this</span>)</div>
146
- <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div>
147
- <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html#ab4cede761cb0bdc082da8e53cd2d5b06">_varToVal</a> = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(rhs._varToVal);</div>
148
- <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html#ab2bae973796c52765500b506844286e4">_locToVal</a> = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(rhs._locToVal);</div>
149
- <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div>
150
- <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
151
- <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div>
152
- <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; </div>
153
- <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RelExeState.html#ac07371e3f4f62530088cd8e6b5f0ba4e">operator==</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> &amp;rhs) <span class="keyword">const</span>;</div>
154
- <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; </div>
155
- <div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#ae6ececb2e5bca174b46450d841ac51fa"> 86</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RelExeState.html#ae6ececb2e5bca174b46450d841ac51fa">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> &amp;rhs)<span class="keyword"> const</span></div>
156
- <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="keyword"> </span>{</div>
157
- <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> !(*<span class="keyword">this</span> == rhs);</div>
158
- <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div>
159
- <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; </div>
160
- <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RelExeState.html#ac280dc7a1db7dc80f9c85921215e4c97">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> &amp;rhs) <span class="keyword">const</span>;</div>
125
+ <div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a9e32fb273b4d2d69b1405f514e333033"> 54</a></span>&#160; <a class="code" href="classSVF_1_1RelExeState.html#a9e32fb273b4d2d69b1405f514e333033">RelExeState</a>(<a class="code" href="classSVF_1_1RelExeState.html#afcdf0c842f48a35cf19b2f7887174e98">VarToValMap</a> &amp;varToVal, <a class="code" href="classSVF_1_1RelExeState.html#a019c2d09ca0ccfbd21502089e348bdfb">AddrToValMap</a>&amp;locToVal) : <a class="code" href="classSVF_1_1RelExeState.html#ab4cede761cb0bdc082da8e53cd2d5b06">_varToVal</a>(varToVal), <a class="code" href="classSVF_1_1RelExeState.html#ad92f53c7a29641d50cda609f779a46e2">_addrToVal</a>(locToVal) {}</div>
126
+ <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
127
+ <div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a482bd4d7143e7d78a22f276bf5a4f30f"> 56</a></span>&#160; <a class="code" href="classSVF_1_1RelExeState.html#a482bd4d7143e7d78a22f276bf5a4f30f">RelExeState</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> &amp;rhs) : <a class="code" href="classSVF_1_1RelExeState.html#ab4cede761cb0bdc082da8e53cd2d5b06">_varToVal</a>(rhs.<a class="code" href="classSVF_1_1RelExeState.html#a9c64d2699cb67cdf8d1c3c23aebf2c4a">getVarToVal</a>()), <a class="code" href="classSVF_1_1RelExeState.html#ad92f53c7a29641d50cda609f779a46e2">_addrToVal</a>(rhs.<a class="code" href="classSVF_1_1RelExeState.html#a86eb61721db5e50d421f3dc8606ea0ea">getLocToVal</a>())</div>
128
+ <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div>
129
+ <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
130
+ <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div>
131
+ <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; </div>
132
+ <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1RelExeState.html#a885dff82580de5bdb478f6991c6c357c">~RelExeState</a>() = <span class="keywordflow">default</span>;</div>
133
+ <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
134
+ <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> &amp;<a class="code" href="classSVF_1_1RelExeState.html#a7ab6cb58ed0f95417549b6291f658f86">operator=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> &amp;rhs);</div>
135
+ <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; </div>
136
+ <div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a0d2f6c9fe4a54b9a7c6d7167e24e1425"> 65</a></span>&#160; <a class="code" href="classSVF_1_1RelExeState.html#a0d2f6c9fe4a54b9a7c6d7167e24e1425">RelExeState</a>(<a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> &amp;&amp;rhs) noexcept: <a class="code" href="classSVF_1_1RelExeState.html#ab4cede761cb0bdc082da8e53cd2d5b06">_varToVal</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(rhs._varToVal)),</div>
137
+ <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html#ad92f53c7a29641d50cda609f779a46e2">_addrToVal</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(rhs._addrToVal))</div>
138
+ <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div>
139
+ <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; </div>
140
+ <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div>
141
+ <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
142
+ <div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a1fe9d8a646640f9995d92bf8a577cd20"> 71</a></span>&#160; <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> &amp;<a class="code" href="classSVF_1_1RelExeState.html#a1fe9d8a646640f9995d92bf8a577cd20">operator=</a>(<a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> &amp;&amp;rhs) noexcept</div>
143
+ <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div>
144
+ <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span> (&amp;rhs != <span class="keyword">this</span>)</div>
145
+ <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; {</div>
146
+ <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html#ab4cede761cb0bdc082da8e53cd2d5b06">_varToVal</a> = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(rhs._varToVal);</div>
147
+ <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html#ad92f53c7a29641d50cda609f779a46e2">_addrToVal</a> = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(rhs._addrToVal);</div>
148
+ <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div>
149
+ <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
150
+ <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div>
151
+ <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div>
152
+ <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RelExeState.html#ac07371e3f4f62530088cd8e6b5f0ba4e">operator==</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> &amp;rhs) <span class="keyword">const</span>;</div>
153
+ <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; </div>
154
+ <div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#ae6ececb2e5bca174b46450d841ac51fa"> 85</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RelExeState.html#ae6ececb2e5bca174b46450d841ac51fa">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> &amp;rhs)<span class="keyword"> const</span></div>
155
+ <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="keyword"> </span>{</div>
156
+ <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> !(*<span class="keyword">this</span> == rhs);</div>
157
+ <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div>
158
+ <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; </div>
159
+ <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RelExeState.html#ac280dc7a1db7dc80f9c85921215e4c97">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html">RelExeState</a> &amp;rhs) <span class="keyword">const</span>;</div>
160
+ <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
161
161
  <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div>
162
- <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; </div>
163
- <div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a9f41158b546faa706bc40c061cfa79be"> 95</a></span>&#160; <span class="keyword">static</span> z3::context &amp;<a class="code" href="classSVF_1_1RelExeState.html#a9f41158b546faa706bc40c061cfa79be">getContext</a>()</div>
164
- <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div>
165
- <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>();</div>
166
- <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div>
167
- <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; </div>
168
- <div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a9c64d2699cb67cdf8d1c3c23aebf2c4a"> 100</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html#afcdf0c842f48a35cf19b2f7887174e98">VarToValMap</a> &amp;<a class="code" href="classSVF_1_1RelExeState.html#a9c64d2699cb67cdf8d1c3c23aebf2c4a">getVarToVal</a>()<span class="keyword"> const</span></div>
169
- <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keyword"> </span>{</div>
170
- <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1RelExeState.html#ab4cede761cb0bdc082da8e53cd2d5b06">_varToVal</a>;</div>
171
- <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div>
172
- <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; </div>
173
- <div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a3eb51c26ae9c87e1457d6515e6d537f9"> 105</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html#aae7d4cc75071ce34d68bd4e1709bd2c8">LocToValMap</a> &amp;<a class="code" href="classSVF_1_1RelExeState.html#a3eb51c26ae9c87e1457d6515e6d537f9">getLocToVal</a>()<span class="keyword"> const</span></div>
174
- <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword"> </span>{</div>
175
- <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1RelExeState.html#ab2bae973796c52765500b506844286e4">_locToVal</a>;</div>
176
- <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div>
177
- <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
178
- <div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a8cb105e01839b136618103a3710d9d86"> 110</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;<a class="code" href="classSVF_1_1RelExeState.html#a8cb105e01839b136618103a3710d9d86">operator[]</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
179
- <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; {</div>
180
- <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1RelExeState.html#ace3b86d12ed10af211d5902ec3fa2e5a">getZ3Expr</a>(varId);</div>
181
- <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div>
182
- <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; </div>
183
- <div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a021da964784427cfb9f4353e2678ce73"> 115</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1RelExeState.html#a021da964784427cfb9f4353e2678ce73">hash</a>()<span class="keyword"> const</span></div>
184
- <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword"> </span>{</div>
185
- <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordtype">size_t</span> h = <a class="code" href="classSVF_1_1RelExeState.html#a9c64d2699cb67cdf8d1c3c23aebf2c4a">getVarToVal</a>().size() * 2;</div>
186
- <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="structSVF_1_1Hash.html">SVF::Hash&lt;SVF::u32_t&gt;</a> hf;</div>
187
- <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;t: <a class="code" href="classSVF_1_1RelExeState.html#a9c64d2699cb67cdf8d1c3c23aebf2c4a">getVarToVal</a>())</div>
188
- <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div>
189
- <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; h ^= hf(t.first) + 0x9e3779b9 + (h &lt;&lt; 6) + (h &gt;&gt; 2);</div>
190
- <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; h ^= hf(t.second.id()) + 0x9e3779b9 + (h &lt;&lt; 6) + (h &gt;&gt; 2);</div>
191
- <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div>
192
- <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; </div>
193
- <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordtype">size_t</span> h2 = <a class="code" href="classSVF_1_1RelExeState.html#a9c64d2699cb67cdf8d1c3c23aebf2c4a">getVarToVal</a>().size() * 2;</div>
194
- <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; </div>
195
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;t: <a class="code" href="classSVF_1_1RelExeState.html#a3eb51c26ae9c87e1457d6515e6d537f9">getLocToVal</a>())</div>
196
- <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div>
197
- <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; h2 ^= hf(t.first) + 0x9e3779b9 + (h2 &lt;&lt; 6) + (h2 &gt;&gt; 2);</div>
198
- <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; h2 ^= hf(t.second.id()) + 0x9e3779b9 + (h2 &lt;&lt; 6) + (h2 &gt;&gt; 2);</div>
199
- <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div>
200
- <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="structSVF_1_1Hash.html">SVF::Hash&lt;std::pair&lt;SVF::u32_t, SVF::u32_t&gt;</a>&gt; pairH;</div>
201
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; </div>
202
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> pairH(std::make_pair(h, h2));</div>
203
- <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div>
204
- <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; </div>
205
- <div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a85573e2041f53c49da9f92b95ccbc052"> 138</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RelExeState.html#a85573e2041f53c49da9f92b95ccbc052">existsVar</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)<span class="keyword"> const</span></div>
206
- <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword"> </span>{</div>
207
- <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1RelExeState.html#ab4cede761cb0bdc082da8e53cd2d5b06">_varToVal</a>.count(varId);</div>
208
- <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div>
209
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; </div>
210
- <div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#ace3b86d12ed10af211d5902ec3fa2e5a"> 144</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;<a class="code" href="classSVF_1_1RelExeState.html#ace3b86d12ed10af211d5902ec3fa2e5a">getZ3Expr</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
211
- <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div>
212
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1RelExeState.html#ab4cede761cb0bdc082da8e53cd2d5b06">_varToVal</a>[varId];</div>
213
- <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div>
214
- <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; </div>
215
- <div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a8045abc5e96d0c7b373587c796180d3e"> 150</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> <a class="code" href="classSVF_1_1RelExeState.html#a8045abc5e96d0c7b373587c796180d3e">toZ3Expr</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)<span class="keyword"> const</span></div>
216
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="keyword"> </span>{</div>
217
- <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1RelExeState.html#a9f41158b546faa706bc40c061cfa79be">getContext</a>().int_const(std::to_string(varId).c_str());</div>
218
- <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div>
219
- <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; </div>
220
- <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;expr, <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> &amp;res);</div>
221
- <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; </div>
222
- <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1RelExeState.html#af32619ee086ab307c68923f7c66896aa">extractCmpVars</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;expr, <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> &amp;res);</div>
223
- <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div>
224
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> <a class="code" href="classSVF_1_1RelExeState.html#ab798aa0dfa3f71a53a6860dc84e92210">buildRelZ3Expr</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> cmp, <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> succ, <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> &amp;vars, <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> &amp;initVars);</div>
225
- <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; </div>
226
- <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1RelExeState.html#a3a2d5de4c61fab8b277308a186795a13">store</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;loc, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;value);</div>
227
- <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; </div>
228
- <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;<a class="code" href="classSVF_1_1RelExeState.html#aa550a580be3278d19f759b3a644baea5">load</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;loc);</div>
229
- <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; </div>
230
- <div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a24408ea140a8d0b5a9fdd1d9d2fbd296"> 171</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1RelExeState.html#a24408ea140a8d0b5a9fdd1d9d2fbd296">getVirtualMemAddress</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx)</div>
231
- <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div>
232
- <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AddressValue.html#aa6ccc9882f89804cd6566e3dfe3dfdc8">AddressValue::getVirtualMemAddress</a>(idx);</div>
233
- <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div>
234
- <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; </div>
235
- <div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#adc3ed92ba80bb95326cbbe675a278879"> 177</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RelExeState.html#adc3ed92ba80bb95326cbbe675a278879">isVirtualMemAddress</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> val)</div>
236
- <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; {</div>
237
- <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AddressValue.html#ab76f47f97262d40dbbee12f466f746e8">AddressValue::isVirtualMemAddress</a>(val);</div>
238
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div>
239
- <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; </div>
240
- <div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#ab03410a5a0014d77d4f95f3a0bf45bfd"> 183</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1RelExeState.html#ab03410a5a0014d77d4f95f3a0bf45bfd">getInternalID</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx)</div>
241
- <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div>
242
- <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AddressValue.html#a3be7a2e3ec3215b67cd60f122d2cd10e">AddressValue::getInternalID</a>(idx);</div>
243
- <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div>
244
- <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; </div>
245
- <div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#accb15cf8109eec2a7cc497badcdbaa57"> 189</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="classSVF_1_1RelExeState.html#accb15cf8109eec2a7cc497badcdbaa57">z3Expr2NumValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;e)</div>
246
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div>
247
- <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; assert(e.<a class="code" href="classSVF_1_1Z3Expr.html#ad1802109545427278e3a8bde52e016b0">is_numeral</a>() &amp;&amp; <span class="stringliteral">&quot;not numeral?&quot;</span>);</div>
248
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> e.<a class="code" href="classSVF_1_1Z3Expr.html#ad94bbaa31e6df4e8b8238d69b8f4ae06">get_numeral_int64</a>();</div>
249
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div>
250
- <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; </div>
251
- <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1RelExeState.html#a3537b1534a643af880ad6e474e00dc7b">printExprValues</a>();</div>
252
- <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; </div>
253
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="keyword">private</span>:</div>
254
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RelExeState.html#aaa5306f4f26b5a11342a726c2f7e4bb6">eqVarToValMap</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html#afcdf0c842f48a35cf19b2f7887174e98">VarToValMap</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html#afcdf0c842f48a35cf19b2f7887174e98">VarToValMap</a> &amp;rhs) <span class="keyword">const</span>;</div>
255
- <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div>
256
- <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RelExeState.html#a1bc5dc440ad614fd7b4804bfa88c37c0">lessThanVarToValMap</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html#afcdf0c842f48a35cf19b2f7887174e98">VarToValMap</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html#afcdf0c842f48a35cf19b2f7887174e98">VarToValMap</a> &amp;rhs) <span class="keyword">const</span>;</div>
257
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; </div>
258
- <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="keyword">protected</span>:</div>
259
- <div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a29be58e0074d7495c36713fd96832823"> 204</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1RelExeState.html#a29be58e0074d7495c36713fd96832823">store</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;z3Expr)</div>
260
- <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div>
261
- <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html#ab2bae973796c52765500b506844286e4">_locToVal</a>[objId] = z3Expr.<a class="code" href="classSVF_1_1Z3Expr.html#afb3478316592a395c6d473791b5a0981">simplify</a>();</div>
262
- <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div>
263
- <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; </div>
264
- <div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a72ec0766984f31168ad59a4ee23bcc9d"> 209</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;<a class="code" href="classSVF_1_1RelExeState.html#a72ec0766984f31168ad59a4ee23bcc9d">load</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId)</div>
265
- <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; {</div>
266
- <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1RelExeState.html#ab2bae973796c52765500b506844286e4">_locToVal</a>[objId];</div>
267
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div>
268
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;}; <span class="comment">// end class RelExeState</span></div>
269
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;} <span class="comment">// end namespace SVF</span></div>
270
- <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; </div>
271
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="keyword">template</span>&lt;&gt;</div>
272
- <div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="structstd_1_1hash_3_01SVF_1_1RelExeState_01_4.html"> 217</a></span>&#160;<span class="keyword">struct </span>std::hash&lt;<a class="code" href="namespaceSVF.html">SVF</a>::RelExeState&gt;</div>
273
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;{</div>
274
- <div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="structstd_1_1hash_3_01SVF_1_1RelExeState_01_4.html#aea05ac3204b21682cf1accec34645d88"> 219</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structstd_1_1hash_3_01SVF_1_1RelExeState_01_4.html#aea05ac3204b21682cf1accec34645d88">operator()</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html">SVF::RelExeState</a> &amp;exeState)<span class="keyword"> const</span></div>
275
- <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="keyword"> </span>{</div>
276
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> exeState.<a class="code" href="classSVF_1_1RelExeState.html#a021da964784427cfb9f4353e2678ce73">hash</a>();</div>
277
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div>
278
- <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;};</div>
279
- <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; </div>
280
- <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor">#endif //Z3_EXAMPLE_RELEXESTATE_H</span></div>
162
+ <div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a9f41158b546faa706bc40c061cfa79be"> 94</a></span>&#160; <span class="keyword">static</span> z3::context &amp;<a class="code" href="classSVF_1_1RelExeState.html#a9f41158b546faa706bc40c061cfa79be">getContext</a>()</div>
163
+ <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; {</div>
164
+ <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">Z3Expr::getContext</a>();</div>
165
+ <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div>
166
+ <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; </div>
167
+ <div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a9c64d2699cb67cdf8d1c3c23aebf2c4a"> 99</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html#afcdf0c842f48a35cf19b2f7887174e98">VarToValMap</a> &amp;<a class="code" href="classSVF_1_1RelExeState.html#a9c64d2699cb67cdf8d1c3c23aebf2c4a">getVarToVal</a>()<span class="keyword"> const</span></div>
168
+ <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword"> </span>{</div>
169
+ <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1RelExeState.html#ab4cede761cb0bdc082da8e53cd2d5b06">_varToVal</a>;</div>
170
+ <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div>
171
+ <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div>
172
+ <div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a86eb61721db5e50d421f3dc8606ea0ea"> 104</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html#a019c2d09ca0ccfbd21502089e348bdfb">AddrToValMap</a>&amp;<a class="code" href="classSVF_1_1RelExeState.html#a86eb61721db5e50d421f3dc8606ea0ea">getLocToVal</a>()<span class="keyword"> const</span></div>
173
+ <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="keyword"> </span>{</div>
174
+ <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1RelExeState.html#ad92f53c7a29641d50cda609f779a46e2">_addrToVal</a>;</div>
175
+ <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div>
176
+ <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; </div>
177
+ <div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a8cb105e01839b136618103a3710d9d86"> 109</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;<a class="code" href="classSVF_1_1RelExeState.html#a8cb105e01839b136618103a3710d9d86">operator[]</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
178
+ <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div>
179
+ <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1RelExeState.html#ace3b86d12ed10af211d5902ec3fa2e5a">getZ3Expr</a>(varId);</div>
180
+ <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div>
181
+ <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
182
+ <div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a021da964784427cfb9f4353e2678ce73"> 114</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1RelExeState.html#a021da964784427cfb9f4353e2678ce73">hash</a>()<span class="keyword"> const</span></div>
183
+ <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="keyword"> </span>{</div>
184
+ <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">size_t</span> h = <a class="code" href="classSVF_1_1RelExeState.html#a9c64d2699cb67cdf8d1c3c23aebf2c4a">getVarToVal</a>().size() * 2;</div>
185
+ <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="structSVF_1_1Hash.html">SVF::Hash&lt;SVF::u32_t&gt;</a> hf;</div>
186
+ <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;t: <a class="code" href="classSVF_1_1RelExeState.html#a9c64d2699cb67cdf8d1c3c23aebf2c4a">getVarToVal</a>())</div>
187
+ <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; {</div>
188
+ <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; h ^= hf(t.first) + 0x9e3779b9 + (h &lt;&lt; 6) + (h &gt;&gt; 2);</div>
189
+ <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; h ^= hf(t.second.id()) + 0x9e3779b9 + (h &lt;&lt; 6) + (h &gt;&gt; 2);</div>
190
+ <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div>
191
+ <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; </div>
192
+ <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordtype">size_t</span> h2 = <a class="code" href="classSVF_1_1RelExeState.html#a9c64d2699cb67cdf8d1c3c23aebf2c4a">getVarToVal</a>().size() * 2;</div>
193
+ <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; </div>
194
+ <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;t: <a class="code" href="classSVF_1_1RelExeState.html#a86eb61721db5e50d421f3dc8606ea0ea">getLocToVal</a>())</div>
195
+ <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {</div>
196
+ <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; h2 ^= hf(t.first) + 0x9e3779b9 + (h2 &lt;&lt; 6) + (h2 &gt;&gt; 2);</div>
197
+ <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; h2 ^= hf(t.second.id()) + 0x9e3779b9 + (h2 &lt;&lt; 6) + (h2 &gt;&gt; 2);</div>
198
+ <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div>
199
+ <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="structSVF_1_1Hash.html">SVF::Hash&lt;std::pair&lt;SVF::u32_t, SVF::u32_t&gt;</a>&gt; pairH;</div>
200
+ <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
201
+ <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">return</span> pairH(std::make_pair(h, h2));</div>
202
+ <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div>
203
+ <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; </div>
204
+ <div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a85573e2041f53c49da9f92b95ccbc052"> 137</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RelExeState.html#a85573e2041f53c49da9f92b95ccbc052">existsVar</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)<span class="keyword"> const</span></div>
205
+ <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="keyword"> </span>{</div>
206
+ <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1RelExeState.html#ab4cede761cb0bdc082da8e53cd2d5b06">_varToVal</a>.count(varId);</div>
207
+ <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div>
208
+ <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; </div>
209
+ <div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#ace3b86d12ed10af211d5902ec3fa2e5a"> 143</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;<a class="code" href="classSVF_1_1RelExeState.html#ace3b86d12ed10af211d5902ec3fa2e5a">getZ3Expr</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
210
+ <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div>
211
+ <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1RelExeState.html#ab4cede761cb0bdc082da8e53cd2d5b06">_varToVal</a>[varId];</div>
212
+ <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div>
213
+ <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; </div>
214
+ <div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a8045abc5e96d0c7b373587c796180d3e"> 149</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> <a class="code" href="classSVF_1_1RelExeState.html#a8045abc5e96d0c7b373587c796180d3e">toZ3Expr</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)<span class="keyword"> const</span></div>
215
+ <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="keyword"> </span>{</div>
216
+ <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1RelExeState.html#a9f41158b546faa706bc40c061cfa79be">getContext</a>().int_const(std::to_string(varId).c_str());</div>
217
+ <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div>
218
+ <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; </div>
219
+ <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">extractSubVars</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;expr, <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> &amp;res);</div>
220
+ <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
221
+ <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1RelExeState.html#af32619ee086ab307c68923f7c66896aa">extractCmpVars</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;expr, <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> &amp;res);</div>
222
+ <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; </div>
223
+ <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> <a class="code" href="classSVF_1_1RelExeState.html#ab798aa0dfa3f71a53a6860dc84e92210">buildRelZ3Expr</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> cmp, <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> succ, <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> &amp;vars, <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;u32_t&gt;</a> &amp;initVars);</div>
224
+ <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; </div>
225
+ <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1RelExeState.html#a3a2d5de4c61fab8b277308a186795a13">store</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;loc, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;value);</div>
226
+ <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
227
+ <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;<a class="code" href="classSVF_1_1RelExeState.html#aa550a580be3278d19f759b3a644baea5">load</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;loc);</div>
228
+ <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; </div>
229
+ <div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a24408ea140a8d0b5a9fdd1d9d2fbd296"> 170</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1RelExeState.html#a24408ea140a8d0b5a9fdd1d9d2fbd296">getVirtualMemAddress</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx)</div>
230
+ <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; {</div>
231
+ <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AddressValue.html#aa6ccc9882f89804cd6566e3dfe3dfdc8">AddressValue::getVirtualMemAddress</a>(idx);</div>
232
+ <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div>
233
+ <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; </div>
234
+ <div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#adc3ed92ba80bb95326cbbe675a278879"> 176</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RelExeState.html#adc3ed92ba80bb95326cbbe675a278879">isVirtualMemAddress</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> val)</div>
235
+ <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; {</div>
236
+ <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AddressValue.html#ab76f47f97262d40dbbee12f466f746e8">AddressValue::isVirtualMemAddress</a>(val);</div>
237
+ <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div>
238
+ <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
239
+ <div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#ab03410a5a0014d77d4f95f3a0bf45bfd"> 182</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1RelExeState.html#ab03410a5a0014d77d4f95f3a0bf45bfd">getInternalID</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx)</div>
240
+ <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; {</div>
241
+ <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AddressValue.html#a3be7a2e3ec3215b67cd60f122d2cd10e">AddressValue::getInternalID</a>(idx);</div>
242
+ <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div>
243
+ <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; </div>
244
+ <div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#accb15cf8109eec2a7cc497badcdbaa57"> 188</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="classSVF_1_1RelExeState.html#accb15cf8109eec2a7cc497badcdbaa57">z3Expr2NumValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;e)</div>
245
+ <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div>
246
+ <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; assert(e.<a class="code" href="classSVF_1_1Z3Expr.html#ad1802109545427278e3a8bde52e016b0">is_numeral</a>() &amp;&amp; <span class="stringliteral">&quot;not numeral?&quot;</span>);</div>
247
+ <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> e.<a class="code" href="classSVF_1_1Z3Expr.html#ad94bbaa31e6df4e8b8238d69b8f4ae06">get_numeral_int64</a>();</div>
248
+ <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div>
249
+ <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; </div>
250
+ <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1RelExeState.html#a3537b1534a643af880ad6e474e00dc7b">printExprValues</a>();</div>
251
+ <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; </div>
252
+ <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="keyword">private</span>:</div>
253
+ <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RelExeState.html#aaa5306f4f26b5a11342a726c2f7e4bb6">eqVarToValMap</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html#afcdf0c842f48a35cf19b2f7887174e98">VarToValMap</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html#afcdf0c842f48a35cf19b2f7887174e98">VarToValMap</a> &amp;rhs) <span class="keyword">const</span>;</div>
254
+ <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; </div>
255
+ <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RelExeState.html#a1bc5dc440ad614fd7b4804bfa88c37c0">lessThanVarToValMap</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html#afcdf0c842f48a35cf19b2f7887174e98">VarToValMap</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html#afcdf0c842f48a35cf19b2f7887174e98">VarToValMap</a> &amp;rhs) <span class="keyword">const</span>;</div>
256
+ <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; </div>
257
+ <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="keyword">protected</span>:</div>
258
+ <div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a29be58e0074d7495c36713fd96832823"> 203</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1RelExeState.html#a29be58e0074d7495c36713fd96832823">store</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;z3Expr)</div>
259
+ <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div>
260
+ <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="classSVF_1_1RelExeState.html#ad92f53c7a29641d50cda609f779a46e2">_addrToVal</a>[objId] = z3Expr.<a class="code" href="classSVF_1_1Z3Expr.html#afb3478316592a395c6d473791b5a0981">simplify</a>();</div>
261
+ <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div>
262
+ <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; </div>
263
+ <div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classSVF_1_1RelExeState.html#a72ec0766984f31168ad59a4ee23bcc9d"> 208</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;<a class="code" href="classSVF_1_1RelExeState.html#a72ec0766984f31168ad59a4ee23bcc9d">load</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId)</div>
264
+ <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; {</div>
265
+ <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1RelExeState.html#ad92f53c7a29641d50cda609f779a46e2">_addrToVal</a>[objId];</div>
266
+ <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div>
267
+ <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;}; <span class="comment">// end class RelExeState</span></div>
268
+ <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;} <span class="comment">// end namespace SVF</span></div>
269
+ <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; </div>
270
+ <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="keyword">template</span>&lt;&gt;</div>
271
+ <div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="structstd_1_1hash_3_01SVF_1_1RelExeState_01_4.html"> 216</a></span>&#160;<span class="keyword">struct </span>std::hash&lt;<a class="code" href="namespaceSVF.html">SVF</a>::RelExeState&gt;</div>
272
+ <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;{</div>
273
+ <div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="structstd_1_1hash_3_01SVF_1_1RelExeState_01_4.html#aea05ac3204b21682cf1accec34645d88"> 218</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structstd_1_1hash_3_01SVF_1_1RelExeState_01_4.html#aea05ac3204b21682cf1accec34645d88">operator()</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RelExeState.html">SVF::RelExeState</a> &amp;exeState)<span class="keyword"> const</span></div>
274
+ <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="keyword"> </span>{</div>
275
+ <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> exeState.<a class="code" href="classSVF_1_1RelExeState.html#a021da964784427cfb9f4353e2678ce73">hash</a>();</div>
276
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div>
277
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;};</div>
278
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; </div>
279
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor">#endif //Z3_EXAMPLE_RELEXESTATE_H</span></div>
281
280
  </div><!-- fragment --></div><!-- contents -->
282
281
  <div class="ttc" id="aclassSVF_1_1RelExeState_html_aaa5306f4f26b5a11342a726c2f7e4bb6"><div class="ttname"><a href="classSVF_1_1RelExeState.html#aaa5306f4f26b5a11342a726c2f7e4bb6">SVF::RelExeState::eqVarToValMap</a></div><div class="ttdeci">bool eqVarToValMap(const VarToValMap &amp;lhs, const VarToValMap &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8cpp_source.html#l00136">RelExeState.cpp:136</a></div></div>
283
282
  <div class="ttc" id="aclassSVF_1_1RelExeState_html_a3a2d5de4c61fab8b277308a186795a13"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a3a2d5de4c61fab8b277308a186795a13">SVF::RelExeState::store</a></div><div class="ttdeci">void store(const Z3Expr &amp;loc, const Z3Expr &amp;value)</div><div class="ttdoc">Store value to location.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8cpp_source.html#l00170">RelExeState.cpp:170</a></div></div>
284
283
  <div class="ttc" id="aclassSVF_1_1RelExeState_html_a34d81c2627e224283e07765d15543bf1"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a34d81c2627e224283e07765d15543bf1">SVF::RelExeState::RelExeState</a></div><div class="ttdeci">RelExeState()=default</div></div>
285
284
  <div class="ttc" id="aclassSVF_1_1RelExeState_html_a885dff82580de5bdb478f6991c6c357c"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a885dff82580de5bdb478f6991c6c357c">SVF::RelExeState::~RelExeState</a></div><div class="ttdeci">virtual ~RelExeState()=default</div></div>
286
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_a9c64d2699cb67cdf8d1c3c23aebf2c4a"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a9c64d2699cb67cdf8d1c3c23aebf2c4a">SVF::RelExeState::getVarToVal</a></div><div class="ttdeci">const VarToValMap &amp; getVarToVal() const</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00100">RelExeState.h:100</a></div></div>
287
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_a0d2f6c9fe4a54b9a7c6d7167e24e1425"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a0d2f6c9fe4a54b9a7c6d7167e24e1425">SVF::RelExeState::RelExeState</a></div><div class="ttdeci">RelExeState(RelExeState &amp;&amp;rhs) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00066">RelExeState.h:66</a></div></div>
288
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_ab03410a5a0014d77d4f95f3a0bf45bfd"><div class="ttname"><a href="classSVF_1_1RelExeState.html#ab03410a5a0014d77d4f95f3a0bf45bfd">SVF::RelExeState::getInternalID</a></div><div class="ttdeci">static u32_t getInternalID(u32_t idx)</div><div class="ttdoc">Return the internal index if idx is an address otherwise return the value of idx.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00183">RelExeState.h:183</a></div></div>
285
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_a9c64d2699cb67cdf8d1c3c23aebf2c4a"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a9c64d2699cb67cdf8d1c3c23aebf2c4a">SVF::RelExeState::getVarToVal</a></div><div class="ttdeci">const VarToValMap &amp; getVarToVal() const</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00099">RelExeState.h:99</a></div></div>
286
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_a0d2f6c9fe4a54b9a7c6d7167e24e1425"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a0d2f6c9fe4a54b9a7c6d7167e24e1425">SVF::RelExeState::RelExeState</a></div><div class="ttdeci">RelExeState(RelExeState &amp;&amp;rhs) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00065">RelExeState.h:65</a></div></div>
287
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_ab03410a5a0014d77d4f95f3a0bf45bfd"><div class="ttname"><a href="classSVF_1_1RelExeState.html#ab03410a5a0014d77d4f95f3a0bf45bfd">SVF::RelExeState::getInternalID</a></div><div class="ttdeci">static u32_t getInternalID(u32_t idx)</div><div class="ttdoc">Return the internal index if idx is an address otherwise return the value of idx.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00182">RelExeState.h:182</a></div></div>
289
288
  <div class="ttc" id="anamespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00096">GeneralType.h:96</a></div></div>
290
289
  <div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
291
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_a021da964784427cfb9f4353e2678ce73"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a021da964784427cfb9f4353e2678ce73">SVF::RelExeState::hash</a></div><div class="ttdeci">u32_t hash() const</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00115">RelExeState.h:115</a></div></div>
290
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_a019c2d09ca0ccfbd21502089e348bdfb"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a019c2d09ca0ccfbd21502089e348bdfb">SVF::RelExeState::AddrToValMap</a></div><div class="ttdeci">VarToValMap AddrToValMap</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00045">RelExeState.h:45</a></div></div>
291
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_a021da964784427cfb9f4353e2678ce73"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a021da964784427cfb9f4353e2678ce73">SVF::RelExeState::hash</a></div><div class="ttdeci">u32_t hash() const</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00114">RelExeState.h:114</a></div></div>
292
292
  <div class="ttc" id="astructSVF_1_1Hash_html"><div class="ttname"><a href="structSVF_1_1Hash.html">SVF::Hash</a></div><div class="ttdoc">provide extra hash function for std::pair handling</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00066">GeneralType.h:66</a></div></div>
293
293
  <div class="ttc" id="aclassSVF_1_1Z3Expr_html_acfdff582a0188678c10939165a40df30"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#acfdff582a0188678c10939165a40df30">SVF::Z3Expr::getContext</a></div><div class="ttdeci">static z3::context &amp; getContext()</div><div class="ttdoc">Get z3 context, singleton design here to make sure we only have one context.</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00066">Z3Expr.cpp:66</a></div></div>
294
294
  <div class="ttc" id="aclassSVF_1_1RelExeState_html_afcdf0c842f48a35cf19b2f7887174e98"><div class="ttname"><a href="classSVF_1_1RelExeState.html#afcdf0c842f48a35cf19b2f7887174e98">SVF::RelExeState::VarToValMap</a></div><div class="ttdeci">Map&lt; u32_t, Z3Expr &gt; VarToValMap</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00044">RelExeState.h:44</a></div></div>
295
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_a8045abc5e96d0c7b373587c796180d3e"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a8045abc5e96d0c7b373587c796180d3e">SVF::RelExeState::toZ3Expr</a></div><div class="ttdeci">virtual Z3Expr toZ3Expr(u32_t varId) const</div><div class="ttdoc">Return Z3 expression lazily based on SVFVar ID.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00150">RelExeState.h:150</a></div></div>
295
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_a8045abc5e96d0c7b373587c796180d3e"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a8045abc5e96d0c7b373587c796180d3e">SVF::RelExeState::toZ3Expr</a></div><div class="ttdeci">virtual Z3Expr toZ3Expr(u32_t varId) const</div><div class="ttdoc">Return Z3 expression lazily based on SVFVar ID.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00149">RelExeState.h:149</a></div></div>
296
296
  <div class="ttc" id="aclassSVF_1_1RelExeState_html_a1bc5dc440ad614fd7b4804bfa88c37c0"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a1bc5dc440ad614fd7b4804bfa88c37c0">SVF::RelExeState::lessThanVarToValMap</a></div><div class="ttdeci">bool lessThanVarToValMap(const VarToValMap &amp;lhs, const VarToValMap &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8cpp_source.html#l00149">RelExeState.cpp:149</a></div></div>
297
297
  <div class="ttc" id="aclassSVF_1_1Z3Expr_html"><div class="ttname"><a href="classSVF_1_1Z3Expr.html">SVF::Z3Expr</a></div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00038">Z3Expr.h:38</a></div></div>
298
298
  <div class="ttc" id="aclassSVF_1_1RelExeState_html_a7ab6cb58ed0f95417549b6291f658f86"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a7ab6cb58ed0f95417549b6291f658f86">SVF::RelExeState::operator=</a></div><div class="ttdeci">RelExeState &amp; operator=(const RelExeState &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8cpp_source.html#l00104">RelExeState.cpp:104</a></div></div>
299
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_a8cb105e01839b136618103a3710d9d86"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a8cb105e01839b136618103a3710d9d86">SVF::RelExeState::operator[]</a></div><div class="ttdeci">Z3Expr &amp; operator[](u32_t varId)</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00110">RelExeState.h:110</a></div></div>
300
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_a29be58e0074d7495c36713fd96832823"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a29be58e0074d7495c36713fd96832823">SVF::RelExeState::store</a></div><div class="ttdeci">void store(u32_t objId, const Z3Expr &amp;z3Expr)</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00204">RelExeState.h:204</a></div></div>
299
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_a8cb105e01839b136618103a3710d9d86"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a8cb105e01839b136618103a3710d9d86">SVF::RelExeState::operator[]</a></div><div class="ttdeci">Z3Expr &amp; operator[](u32_t varId)</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00109">RelExeState.h:109</a></div></div>
300
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_a29be58e0074d7495c36713fd96832823"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a29be58e0074d7495c36713fd96832823">SVF::RelExeState::store</a></div><div class="ttdeci">void store(u32_t objId, const Z3Expr &amp;z3Expr)</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00203">RelExeState.h:203</a></div></div>
301
301
  <div class="ttc" id="aclassSVF_1_1RelExeState_html_af32619ee086ab307c68923f7c66896aa"><div class="ttname"><a href="classSVF_1_1RelExeState.html#af32619ee086ab307c68923f7c66896aa">SVF::RelExeState::extractCmpVars</a></div><div class="ttdeci">void extractCmpVars(const Z3Expr &amp;expr, Set&lt; u32_t &gt; &amp;res)</div><div class="ttdoc">Extract all related SVFVar IDs based on compare expr.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8cpp_source.html#l00066">RelExeState.cpp:66</a></div></div>
302
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_a9f41158b546faa706bc40c061cfa79be"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a9f41158b546faa706bc40c061cfa79be">SVF::RelExeState::getContext</a></div><div class="ttdeci">static z3::context &amp; getContext()</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00095">RelExeState.h:95</a></div></div>
303
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_adc3ed92ba80bb95326cbbe675a278879"><div class="ttname"><a href="classSVF_1_1RelExeState.html#adc3ed92ba80bb95326cbbe675a278879">SVF::RelExeState::isVirtualMemAddress</a></div><div class="ttdeci">static bool isVirtualMemAddress(u32_t val)</div><div class="ttdoc">Check bit value of val start with 0x7F000000, filter by 0xFF000000.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00177">RelExeState.h:177</a></div></div>
302
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_a9f41158b546faa706bc40c061cfa79be"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a9f41158b546faa706bc40c061cfa79be">SVF::RelExeState::getContext</a></div><div class="ttdeci">static z3::context &amp; getContext()</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00094">RelExeState.h:94</a></div></div>
303
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_adc3ed92ba80bb95326cbbe675a278879"><div class="ttname"><a href="classSVF_1_1RelExeState.html#adc3ed92ba80bb95326cbbe675a278879">SVF::RelExeState::isVirtualMemAddress</a></div><div class="ttdeci">static bool isVirtualMemAddress(u32_t val)</div><div class="ttdoc">Check bit value of val start with 0x7F000000, filter by 0xFF000000.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00176">RelExeState.h:176</a></div></div>
304
304
  <div class="ttc" id="aclassSVF_1_1RelExeState_html_ac07371e3f4f62530088cd8e6b5f0ba4e"><div class="ttname"><a href="classSVF_1_1RelExeState.html#ac07371e3f4f62530088cd8e6b5f0ba4e">SVF::RelExeState::operator==</a></div><div class="ttdeci">bool operator==(const RelExeState &amp;rhs) const</div><div class="ttdoc">Overloading Operator==.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8cpp_source.html#l00119">RelExeState.cpp:119</a></div></div>
305
305
  <div class="ttc" id="aclassSVF_1_1AddressValue_html_a3be7a2e3ec3215b67cd60f122d2cd10e"><div class="ttname"><a href="classSVF_1_1AddressValue.html#a3be7a2e3ec3215b67cd60f122d2cd10e">SVF::AddressValue::getInternalID</a></div><div class="ttdeci">static u32_t getInternalID(u32_t idx)</div><div class="ttdoc">Return the internal index if idx is an address otherwise return the value of idx.</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00224">AddressValue.h:224</a></div></div>
306
306
  <div class="ttc" id="aclassSVF_1_1Z3Expr_html_ad94bbaa31e6df4e8b8238d69b8f4ae06"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ad94bbaa31e6df4e8b8238d69b8f4ae06">SVF::Z3Expr::get_numeral_int64</a></div><div class="ttdeci">int64_t get_numeral_int64() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00142">Z3Expr.h:142</a></div></div>
307
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_a1fe9d8a646640f9995d92bf8a577cd20"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a1fe9d8a646640f9995d92bf8a577cd20">SVF::RelExeState::operator=</a></div><div class="ttdeci">RelExeState &amp; operator=(RelExeState &amp;&amp;rhs) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00072">RelExeState.h:72</a></div></div>
307
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_a1fe9d8a646640f9995d92bf8a577cd20"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a1fe9d8a646640f9995d92bf8a577cd20">SVF::RelExeState::operator=</a></div><div class="ttdeci">RelExeState &amp; operator=(RelExeState &amp;&amp;rhs) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00071">RelExeState.h:71</a></div></div>
308
308
  <div class="ttc" id="aclassSVF_1_1RelExeState_html_aa550a580be3278d19f759b3a644baea5"><div class="ttname"><a href="classSVF_1_1RelExeState.html#aa550a580be3278d19f759b3a644baea5">SVF::RelExeState::load</a></div><div class="ttdeci">Z3Expr &amp; load(const Z3Expr &amp;loc)</div><div class="ttdoc">Load value at location.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8cpp_source.html#l00183">RelExeState.cpp:183</a></div></div>
309
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_accb15cf8109eec2a7cc497badcdbaa57"><div class="ttname"><a href="classSVF_1_1RelExeState.html#accb15cf8109eec2a7cc497badcdbaa57">SVF::RelExeState::z3Expr2NumValue</a></div><div class="ttdeci">static s32_t z3Expr2NumValue(const Z3Expr &amp;e)</div><div class="ttdoc">Return int value from an expression if it is a numeral, otherwise return an approximate value.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00189">RelExeState.h:189</a></div></div>
309
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_accb15cf8109eec2a7cc497badcdbaa57"><div class="ttname"><a href="classSVF_1_1RelExeState.html#accb15cf8109eec2a7cc497badcdbaa57">SVF::RelExeState::z3Expr2NumValue</a></div><div class="ttdeci">static s32_t z3Expr2NumValue(const Z3Expr &amp;e)</div><div class="ttdoc">Return int value from an expression if it is a numeral, otherwise return an approximate value.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00188">RelExeState.h:188</a></div></div>
310
310
  <div class="ttc" id="anamespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00047">GeneralType.h:47</a></div></div>
311
311
  <div class="ttc" id="aclassSVF_1_1RelExeState_html_a3537b1534a643af880ad6e474e00dc7b"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a3537b1534a643af880ad6e474e00dc7b">SVF::RelExeState::printExprValues</a></div><div class="ttdeci">void printExprValues()</div><div class="ttdoc">Print values of all expressions.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8cpp_source.html#l00196">RelExeState.cpp:196</a></div></div>
312
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_ace3b86d12ed10af211d5902ec3fa2e5a"><div class="ttname"><a href="classSVF_1_1RelExeState.html#ace3b86d12ed10af211d5902ec3fa2e5a">SVF::RelExeState::getZ3Expr</a></div><div class="ttdeci">virtual Z3Expr &amp; getZ3Expr(u32_t varId)</div><div class="ttdoc">Return Z3 expression eagerly based on SVFVar ID.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00144">RelExeState.h:144</a></div></div>
312
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_ace3b86d12ed10af211d5902ec3fa2e5a"><div class="ttname"><a href="classSVF_1_1RelExeState.html#ace3b86d12ed10af211d5902ec3fa2e5a">SVF::RelExeState::getZ3Expr</a></div><div class="ttdeci">virtual Z3Expr &amp; getZ3Expr(u32_t varId)</div><div class="ttdoc">Return Z3 expression eagerly based on SVFVar ID.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00143">RelExeState.h:143</a></div></div>
313
313
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a72502f7f536418621485e90ab98c2016"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">SVF::SVFUtil::move</a></div><div class="ttdeci">constexpr std::remove_reference&lt; T &gt;::type &amp;&amp; move(T &amp;&amp;t) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00621">SVFUtil.h:621</a></div></div>
314
314
  <div class="ttc" id="aclassSVF_1_1RelExeState_html_a3393f160508c33e68ebedd042d1d296f"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a3393f160508c33e68ebedd042d1d296f">SVF::RelExeState::extractSubVars</a></div><div class="ttdeci">void extractSubVars(const Z3Expr &amp;expr, Set&lt; u32_t &gt; &amp;res)</div><div class="ttdoc">Extract sub SVFVar IDs of a Z3Expr.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8cpp_source.html#l00045">RelExeState.cpp:45</a></div></div>
315
315
  <div class="ttc" id="aclassSVF_1_1AddressValue_html_ab76f47f97262d40dbbee12f466f746e8"><div class="ttname"><a href="classSVF_1_1AddressValue.html#ab76f47f97262d40dbbee12f466f746e8">SVF::AddressValue::isVirtualMemAddress</a></div><div class="ttdeci">static bool isVirtualMemAddress(u32_t val)</div><div class="ttdoc">Check bit value of val start with 0x7F000000, filter by 0xFF000000.</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00218">AddressValue.h:218</a></div></div>
316
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_a85573e2041f53c49da9f92b95ccbc052"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a85573e2041f53c49da9f92b95ccbc052">SVF::RelExeState::existsVar</a></div><div class="ttdeci">bool existsVar(u32_t varId) const</div><div class="ttdoc">Return true if map has varId.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00138">RelExeState.h:138</a></div></div>
316
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_a85573e2041f53c49da9f92b95ccbc052"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a85573e2041f53c49da9f92b95ccbc052">SVF::RelExeState::existsVar</a></div><div class="ttdeci">bool existsVar(u32_t varId) const</div><div class="ttdoc">Return true if map has varId.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00137">RelExeState.h:137</a></div></div>
317
317
  <div class="ttc" id="aclassSVF_1_1RelExeState_html_ac280dc7a1db7dc80f9c85921215e4c97"><div class="ttname"><a href="classSVF_1_1RelExeState.html#ac280dc7a1db7dc80f9c85921215e4c97">SVF::RelExeState::operator&lt;</a></div><div class="ttdeci">bool operator&lt;(const RelExeState &amp;rhs) const</div><div class="ttdoc">Overloading Operator==.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8cpp_source.html#l00130">RelExeState.cpp:130</a></div></div>
318
- <div class="ttc" id="astructstd_1_1hash_3_01SVF_1_1RelExeState_01_4_html_aea05ac3204b21682cf1accec34645d88"><div class="ttname"><a href="structstd_1_1hash_3_01SVF_1_1RelExeState_01_4.html#aea05ac3204b21682cf1accec34645d88">std::hash&lt; SVF::RelExeState &gt;::operator()</a></div><div class="ttdeci">size_t operator()(const SVF::RelExeState &amp;exeState) const</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00219">RelExeState.h:219</a></div></div>
318
+ <div class="ttc" id="astructstd_1_1hash_3_01SVF_1_1RelExeState_01_4_html_aea05ac3204b21682cf1accec34645d88"><div class="ttname"><a href="structstd_1_1hash_3_01SVF_1_1RelExeState_01_4.html#aea05ac3204b21682cf1accec34645d88">std::hash&lt; SVF::RelExeState &gt;::operator()</a></div><div class="ttdeci">size_t operator()(const SVF::RelExeState &amp;exeState) const</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00218">RelExeState.h:218</a></div></div>
319
319
  <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html">SVF::SVFIR2AbsState</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8h_source.html#l00042">SVFIR2AbsState.h:42</a></div></div>
320
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_a72ec0766984f31168ad59a4ee23bcc9d"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a72ec0766984f31168ad59a4ee23bcc9d">SVF::RelExeState::load</a></div><div class="ttdeci">Z3Expr &amp; load(u32_t objId)</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00209">RelExeState.h:209</a></div></div>
321
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_ae6ececb2e5bca174b46450d841ac51fa"><div class="ttname"><a href="classSVF_1_1RelExeState.html#ae6ececb2e5bca174b46450d841ac51fa">SVF::RelExeState::operator!=</a></div><div class="ttdeci">bool operator!=(const RelExeState &amp;rhs) const</div><div class="ttdoc">Overloading Operator!=.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00086">RelExeState.h:86</a></div></div>
320
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_a72ec0766984f31168ad59a4ee23bcc9d"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a72ec0766984f31168ad59a4ee23bcc9d">SVF::RelExeState::load</a></div><div class="ttdeci">Z3Expr &amp; load(u32_t objId)</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00208">RelExeState.h:208</a></div></div>
321
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_ae6ececb2e5bca174b46450d841ac51fa"><div class="ttname"><a href="classSVF_1_1RelExeState.html#ae6ececb2e5bca174b46450d841ac51fa">SVF::RelExeState::operator!=</a></div><div class="ttdeci">bool operator!=(const RelExeState &amp;rhs) const</div><div class="ttdoc">Overloading Operator!=.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00085">RelExeState.h:85</a></div></div>
322
322
  <div class="ttc" id="aclassSVF_1_1Z3Expr_html_afb3478316592a395c6d473791b5a0981"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#afb3478316592a395c6d473791b5a0981">SVF::Z3Expr::simplify</a></div><div class="ttdeci">Z3Expr simplify() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00137">Z3Expr.h:137</a></div></div>
323
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_a3eb51c26ae9c87e1457d6515e6d537f9"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a3eb51c26ae9c87e1457d6515e6d537f9">SVF::RelExeState::getLocToVal</a></div><div class="ttdeci">const LocToValMap &amp; getLocToVal() const</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00105">RelExeState.h:105</a></div></div>
324
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_a482bd4d7143e7d78a22f276bf5a4f30f"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a482bd4d7143e7d78a22f276bf5a4f30f">SVF::RelExeState::RelExeState</a></div><div class="ttdeci">RelExeState(const RelExeState &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00057">RelExeState.h:57</a></div></div>
325
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_a0078db58922ddbf5a9ec9641ed6f4544"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a0078db58922ddbf5a9ec9641ed6f4544">SVF::RelExeState::RelExeState</a></div><div class="ttdeci">RelExeState(VarToValMap &amp;varToVal, LocToValMap &amp;locToVal)</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00054">RelExeState.h:54</a></div></div>
323
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_a482bd4d7143e7d78a22f276bf5a4f30f"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a482bd4d7143e7d78a22f276bf5a4f30f">SVF::RelExeState::RelExeState</a></div><div class="ttdeci">RelExeState(const RelExeState &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00056">RelExeState.h:56</a></div></div>
326
324
  <div class="ttc" id="aclassSVF_1_1Z3Expr_html_ad1802109545427278e3a8bde52e016b0"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ad1802109545427278e3a8bde52e016b0">SVF::Z3Expr::is_numeral</a></div><div class="ttdeci">bool is_numeral() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00127">Z3Expr.h:127</a></div></div>
327
325
  <div class="ttc" id="aclassSVF_1_1RelExeState_html"><div class="ttname"><a href="classSVF_1_1RelExeState.html">SVF::RelExeState</a></div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00039">RelExeState.h:39</a></div></div>
328
326
  <div class="ttc" id="aclassSVF_1_1RelExeState_html_ab798aa0dfa3f71a53a6860dc84e92210"><div class="ttname"><a href="classSVF_1_1RelExeState.html#ab798aa0dfa3f71a53a6860dc84e92210">SVF::RelExeState::buildRelZ3Expr</a></div><div class="ttdeci">Z3Expr buildRelZ3Expr(u32_t cmp, s32_t succ, Set&lt; u32_t &gt; &amp;vars, Set&lt; u32_t &gt; &amp;initVars)</div><div class="ttdoc">Build relational Z3Expr.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8cpp_source.html#l00090">RelExeState.cpp:90</a></div></div>
329
327
  <div class="ttc" id="aclassSVF_1_1AddressValue_html_aa6ccc9882f89804cd6566e3dfe3dfdc8"><div class="ttname"><a href="classSVF_1_1AddressValue.html#aa6ccc9882f89804cd6566e3dfe3dfdc8">SVF::AddressValue::getVirtualMemAddress</a></div><div class="ttdeci">static u32_t getVirtualMemAddress(u32_t idx)</div><div class="ttdoc">The physical address starts with 0x7f...... + idx.</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00212">AddressValue.h:212</a></div></div>
330
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_ab2bae973796c52765500b506844286e4"><div class="ttname"><a href="classSVF_1_1RelExeState.html#ab2bae973796c52765500b506844286e4">SVF::RelExeState::_locToVal</a></div><div class="ttdeci">LocToValMap _locToVal</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00049">RelExeState.h:49</a></div></div>
328
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_a86eb61721db5e50d421f3dc8606ea0ea"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a86eb61721db5e50d421f3dc8606ea0ea">SVF::RelExeState::getLocToVal</a></div><div class="ttdeci">const AddrToValMap &amp; getLocToVal() const</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00104">RelExeState.h:104</a></div></div>
331
329
  <div class="ttc" id="aclassSVF_1_1RelExeState_html_ab4cede761cb0bdc082da8e53cd2d5b06"><div class="ttname"><a href="classSVF_1_1RelExeState.html#ab4cede761cb0bdc082da8e53cd2d5b06">SVF::RelExeState::_varToVal</a></div><div class="ttdeci">VarToValMap _varToVal</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00048">RelExeState.h:48</a></div></div>
332
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_aae7d4cc75071ce34d68bd4e1709bd2c8"><div class="ttname"><a href="classSVF_1_1RelExeState.html#aae7d4cc75071ce34d68bd4e1709bd2c8">SVF::RelExeState::LocToValMap</a></div><div class="ttdeci">VarToValMap LocToValMap</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00045">RelExeState.h:45</a></div></div>
333
330
  <div class="ttc" id="anamespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00101">GeneralType.h:101</a></div></div>
334
331
  <div class="ttc" id="aAddressValue_8h_html"><div class="ttname"><a href="AddressValue_8h.html">AddressValue.h</a></div></div>
332
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_a9e32fb273b4d2d69b1405f514e333033"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a9e32fb273b4d2d69b1405f514e333033">SVF::RelExeState::RelExeState</a></div><div class="ttdeci">RelExeState(VarToValMap &amp;varToVal, AddrToValMap &amp;locToVal)</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00054">RelExeState.h:54</a></div></div>
335
333
  <div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00046">GeneralType.h:46</a></div></div>
336
334
  <div class="ttc" id="aZ3Expr_8h_html"><div class="ttname"><a href="Z3Expr_8h.html">Z3Expr.h</a></div></div>
337
- <div class="ttc" id="aclassSVF_1_1RelExeState_html_a24408ea140a8d0b5a9fdd1d9d2fbd296"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a24408ea140a8d0b5a9fdd1d9d2fbd296">SVF::RelExeState::getVirtualMemAddress</a></div><div class="ttdeci">static u32_t getVirtualMemAddress(u32_t idx)</div><div class="ttdoc">The physical address starts with 0x7f...... + idx.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00171">RelExeState.h:171</a></div></div>
335
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_ad92f53c7a29641d50cda609f779a46e2"><div class="ttname"><a href="classSVF_1_1RelExeState.html#ad92f53c7a29641d50cda609f779a46e2">SVF::RelExeState::_addrToVal</a></div><div class="ttdeci">AddrToValMap _addrToVal</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00049">RelExeState.h:49</a></div></div>
336
+ <div class="ttc" id="aclassSVF_1_1RelExeState_html_a24408ea140a8d0b5a9fdd1d9d2fbd296"><div class="ttname"><a href="classSVF_1_1RelExeState.html#a24408ea140a8d0b5a9fdd1d9d2fbd296">SVF::RelExeState::getVirtualMemAddress</a></div><div class="ttdeci">static u32_t getVirtualMemAddress(u32_t idx)</div><div class="ttdoc">The physical address starts with 0x7f...... + idx.</div><div class="ttdef"><b>Definition:</b> <a href="RelExeState_8h_source.html#l00170">RelExeState.h:170</a></div></div>
338
337
  <!-- start footer part -->
339
338
  <hr class="footer"/><address class="footer"><small>
340
339
  Generated by &#160;<a href="http://www.doxygen.org/index.html">