svf-tools 1.0.786 → 1.0.787

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 (27) hide show
  1. package/SVF-doxygen/html/CDGBuilder_8cpp_source.html +128 -122
  2. package/SVF-doxygen/html/CDGBuilder_8h_source.html +5 -5
  3. package/SVF-doxygen/html/CHG_8cpp.html +2 -2
  4. package/SVF-doxygen/html/CHG_8cpp_source.html +3 -3
  5. package/SVF-doxygen/html/MemSSA_8cpp_source.html +1 -1
  6. package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +2 -2
  7. package/SVF-doxygen/html/SVFG_8cpp_source.html +1 -1
  8. package/SVF-doxygen/html/SVFUtil_8cpp_source.html +2 -2
  9. package/SVF-doxygen/html/SVFValue_8cpp_source.html +144 -141
  10. package/SVF-doxygen/html/SVFValue_8h_source.html +9 -9
  11. package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +2 -2
  12. package/SVF-doxygen/html/VFG_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/classSVF_1_1CDGBuilder.html +119 -113
  14. package/SVF-doxygen/html/classSVF_1_1CHGraph.html +2 -2
  15. package/SVF-doxygen/html/classSVF_1_1MemSSA.html +1 -1
  16. package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +2 -2
  17. package/SVF-doxygen/html/classSVF_1_1SVFBasicBlock.html +63 -63
  18. package/SVF-doxygen/html/classSVF_1_1SVFFunction.html +28 -28
  19. package/SVF-doxygen/html/classSVF_1_1SVFG.html +1 -1
  20. package/SVF-doxygen/html/classSVF_1_1SVFInstruction.html +4 -4
  21. package/SVF-doxygen/html/classSVF_1_1SVFLoopAndDomInfo.html +25 -22
  22. package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator.html +2 -2
  23. package/SVF-doxygen/html/classSVF_1_1VFG.html +1 -1
  24. package/SVF-doxygen/html/namespaceSVF_1_1SVFUtil.html +2 -2
  25. package/package.json +1 -1
  26. package/svf/lib/SVFIR/SVFValue.cpp +2 -0
  27. package/svf/lib/Util/CDGBuilder.cpp +5 -0
@@ -188,157 +188,159 @@ $(function() {
188
188
  <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// continue going up til we arrive at the same node.</span></div>
189
189
  <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">while</span> (A != B)</div>
190
190
  <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; {</div>
191
- <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> lvA = getBBPDomLevel().find(A);</div>
192
- <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> lvB = getBBPDomLevel().find(B);</div>
193
- <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; assert(lvA != getBBPDomLevel().end() &amp;&amp; lvB != getBBPDomLevel().end());</div>
194
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; </div>
195
- <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">if</span> (lvA-&gt;second &lt; lvB-&gt;second) std::swap(A, B);</div>
191
+ <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// no common PDominator</span></div>
192
+ <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">if</span>(A == <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>) <span class="keywordflow">return</span> <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>;</div>
193
+ <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> lvA = getBBPDomLevel().find(A);</div>
194
+ <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> lvB = getBBPDomLevel().find(B);</div>
195
+ <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; assert(lvA != getBBPDomLevel().end() &amp;&amp; lvB != getBBPDomLevel().end());</div>
196
196
  <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
197
- <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> lvAIdom = getBB2PIdom().find(A);</div>
198
- <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; assert(lvAIdom != getBB2PIdom().end());</div>
199
- <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; A = lvAIdom-&gt;second;</div>
200
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div>
201
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; </div>
202
- <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> A;</div>
203
- <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;}</div>
204
- <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; </div>
205
- <div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFLoopAndDomInfo.html#a39257282d3875b5d28c21f6c8b1caf43"> 138</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a39257282d3875b5d28c21f6c8b1caf43">SVFLoopAndDomInfo::isLoopHeader</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb)<span class="keyword"> const</span></div>
206
- <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword"></span>{</div>
207
- <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">if</span> (hasLoopInfo(bb))</div>
208
- <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div>
209
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ae5e2b154313b4330bb015050aec72a1f">LoopBBs</a>&amp; blocks = getLoopInfo(bb);</div>
210
- <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; assert(!blocks.empty() &amp;&amp; <span class="stringliteral">&quot;no available loop info?&quot;</span>);</div>
211
- <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span> blocks.front() == bb;</div>
212
- <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div>
213
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
214
- <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;}</div>
215
- <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; </div>
216
- <div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#a0cf5ddbb884a0a99f43b7741f1ce2786"> 149</a></span>&#160;<a class="code" href="classSVF_1_1SVFFunction.html#a7e965c21a8afe7fca32d0f41b16361cf">SVFFunction::SVFFunction</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunctionType.html">SVFFunctionType</a>* ft,</div>
217
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordtype">bool</span> declare, <span class="keywordtype">bool</span> intrinsic, <span class="keywordtype">bool</span> adt, <span class="keywordtype">bool</span> varg,</div>
218
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html">SVFLoopAndDomInfo</a>* ld, std::vector&lt;std::string&gt; annos)</div>
219
- <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; : <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>(ty, <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>::SVFFunc), isDecl(declare), intrinsic(intrinsic),</div>
220
- <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; addrTaken(adt), isUncalled(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), isNotRet(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), varArg(varg),</div>
221
- <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; funcType(ft), loopAndDom(ld), realDefFun(nullptr), annotations(std::<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">move</a>(annos))</div>
222
- <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;{</div>
223
- <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;}</div>
224
- <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; </div>
225
- <div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#a5f6f7bf27f373b16b9c51de310b40686"> 158</a></span>&#160;<a class="code" href="classSVF_1_1SVFFunction.html#a5f6f7bf27f373b16b9c51de310b40686">SVFFunction::~SVFFunction</a>()</div>
226
- <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;{</div>
227
- <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb : <a class="code" href="classSVF_1_1SVFFunction.html#aa61307a21647def105677d36bfbaf32f">allBBs</a>)</div>
228
- <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">delete</span> bb;</div>
229
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* arg : <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>)</div>
230
- <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">delete</span> arg;</div>
231
- <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1SVFFunction.html#aefde3a0671e34541a4ad5d7a6dfaa5d1">loopAndDom</a>;</div>
232
- <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;}</div>
233
- <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; </div>
234
- <div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e"> 167</a></span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e">SVFFunction::arg_size</a>()<span class="keyword"> const</span></div>
235
- <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="keyword"></span>{</div>
236
- <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>.size();</div>
237
- <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;}</div>
238
- <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div>
239
- <div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#a10d9481ae41dce4f266dad5e64fffcee"> 172</a></span>&#160;<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* <a class="code" href="classSVF_1_1SVFFunction.html#a10d9481ae41dce4f266dad5e64fffcee">SVFFunction::getArg</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx)<span class="keyword"> const</span></div>
240
- <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="keyword"></span>{</div>
241
- <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; assert (idx &lt; <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>.size() &amp;&amp; <span class="stringliteral">&quot;getArg() out of range!&quot;</span>);</div>
242
- <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>[idx];</div>
243
- <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;}</div>
244
- <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; </div>
245
- <div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58"> 178</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58">SVFFunction::isVarArg</a>()<span class="keyword"> const</span></div>
246
- <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="keyword"></span>{</div>
247
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFFunction.html#a11aaa0ffaf7fa3d220c9af5d4537eaad">varArg</a>;</div>
248
- <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;}</div>
249
- <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; </div>
250
- <div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a2f21fd47b023a9786f8ab39faaca0a27"> 183</a></span>&#160;<a class="code" href="classSVF_1_1SVFBasicBlock.html#ae017f9a00c523585718bde13665275b3">SVFBasicBlock::SVFBasicBlock</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* f)</div>
251
- <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; : <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>(ty, <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>::SVFBB), fun(f)</div>
252
- <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;{</div>
253
- <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;}</div>
254
- <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; </div>
255
- <div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#abd5adb119af2024fe4702ba25394d5ac"> 188</a></span>&#160;<a class="code" href="classSVF_1_1SVFBasicBlock.html#abd5adb119af2024fe4702ba25394d5ac">SVFBasicBlock::~SVFBasicBlock</a>()</div>
256
- <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;{</div>
257
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* inst : <a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>)</div>
258
- <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">delete</span> inst;</div>
259
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;}</div>
260
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; </div>
261
- <div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174"> 197</a></span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174">SVFBasicBlock::getBBSuccessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* Succ)</div>
262
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;{</div>
263
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0;</div>
264
- <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* SuccBB: <a class="code" href="classSVF_1_1SVFBasicBlock.html#a7c3a69644f5e1351aad5d0ce0048abfd">succBBs</a>)</div>
265
- <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div>
266
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span> (SuccBB == Succ)</div>
267
- <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">return</span> i;</div>
268
- <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; i++;</div>
269
- <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</div>
270
- <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Didn&#39;t find successor edge?&quot;</span>);</div>
271
- <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> 0;</div>
272
- <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;}</div>
273
- <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; </div>
274
- <div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a104c66cdd4d88ba90eefd32bc9eef389"> 210</a></span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174">SVFBasicBlock::getBBSuccessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* Succ)<span class="keyword"> const</span></div>
275
- <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="keyword"></span>{</div>
276
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0;</div>
277
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* SuccBB: <a class="code" href="classSVF_1_1SVFBasicBlock.html#a7c3a69644f5e1351aad5d0ce0048abfd">succBBs</a>)</div>
278
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div>
279
- <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span> (SuccBB == Succ)</div>
280
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">return</span> i;</div>
281
- <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; i++;</div>
282
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; }</div>
283
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Didn&#39;t find successor edge?&quot;</span>);</div>
284
- <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> 0;</div>
285
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;}</div>
286
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; </div>
287
- <div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38"> 223</a></span>&#160;<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* <a class="code" href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38">SVFBasicBlock::getTerminator</a>()<span class="keyword"> const</span></div>
288
- <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="keyword"></span>{</div>
289
- <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>.empty() || !<a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>.back()-&gt;isTerminator())</div>
290
- <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
291
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>.back();</div>
292
- <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;}</div>
293
- <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; </div>
294
- <div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5"> 233</a></span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5">SVFBasicBlock::getBBPredecessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succbb)</div>
295
- <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;{</div>
296
- <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos = 0;</div>
297
- <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* PredBB : succbb-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#ac6fabc508f6b64127bb597f7b2110231">getPredecessors</a>())</div>
298
- <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; {</div>
299
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">if</span>(PredBB == <span class="keyword">this</span>)</div>
300
- <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">return</span> pos;</div>
301
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; ++pos;</div>
302
- <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; }</div>
303
- <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Didn&#39;t find predecessor edge?&quot;</span>);</div>
304
- <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span> pos;</div>
305
- <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;}</div>
306
- <div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a5fe2dae55581ff1cd6ef251a351d5c4f"> 245</a></span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5">SVFBasicBlock::getBBPredecessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succbb)<span class="keyword"> const</span></div>
307
- <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="keyword"></span>{</div>
308
- <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos = 0;</div>
309
- <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* PredBB : succbb-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#ac6fabc508f6b64127bb597f7b2110231">getPredecessors</a>())</div>
310
- <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; {</div>
311
- <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">if</span>(PredBB == <span class="keyword">this</span>)</div>
312
- <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> pos;</div>
313
- <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; ++pos;</div>
314
- <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div>
315
- <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Didn&#39;t find predecessor edge?&quot;</span>);</div>
316
- <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">return</span> pos;</div>
317
- <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;}</div>
318
- <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; </div>
319
- <div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFInstruction.html#a976cc9df05994e7e1b11fcdd22febcc5"> 258</a></span>&#160;<a class="code" href="classSVF_1_1SVFInstruction.html#a7d81c86ea5e1f8e313457862e19c2a3c">SVFInstruction::SVFInstruction</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>,</div>
320
- <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordtype">bool</span> tm, <span class="keywordtype">bool</span> isRet, <a class="code" href="classSVF_1_1SVFValue.html#afb50ea5aeea7a0608a3c9335aea6860e">SVFValKind</a> k)</div>
321
- <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; : <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>(ty, k), bb(<a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>), terminator(tm), ret(isRet)</div>
322
- <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;{</div>
323
- <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;}</div>
197
+ <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">if</span> (lvA-&gt;second &lt; lvB-&gt;second) std::swap(A, B);</div>
198
+ <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; </div>
199
+ <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> lvAIdom = getBB2PIdom().find(A);</div>
200
+ <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; assert(lvAIdom != getBB2PIdom().end());</div>
201
+ <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; A = lvAIdom-&gt;second;</div>
202
+ <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div>
203
+ <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; </div>
204
+ <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> A;</div>
205
+ <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;}</div>
206
+ <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; </div>
207
+ <div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFLoopAndDomInfo.html#a39257282d3875b5d28c21f6c8b1caf43"> 140</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a39257282d3875b5d28c21f6c8b1caf43">SVFLoopAndDomInfo::isLoopHeader</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb)<span class="keyword"> const</span></div>
208
+ <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keyword"></span>{</div>
209
+ <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span> (hasLoopInfo(bb))</div>
210
+ <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {</div>
211
+ <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ae5e2b154313b4330bb015050aec72a1f">LoopBBs</a>&amp; blocks = getLoopInfo(bb);</div>
212
+ <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; assert(!blocks.empty() &amp;&amp; <span class="stringliteral">&quot;no available loop info?&quot;</span>);</div>
213
+ <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> blocks.front() == bb;</div>
214
+ <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div>
215
+ <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
216
+ <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;}</div>
217
+ <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div>
218
+ <div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#a0cf5ddbb884a0a99f43b7741f1ce2786"> 151</a></span>&#160;<a class="code" href="classSVF_1_1SVFFunction.html#a7e965c21a8afe7fca32d0f41b16361cf">SVFFunction::SVFFunction</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunctionType.html">SVFFunctionType</a>* ft,</div>
219
+ <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordtype">bool</span> declare, <span class="keywordtype">bool</span> intrinsic, <span class="keywordtype">bool</span> adt, <span class="keywordtype">bool</span> varg,</div>
220
+ <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html">SVFLoopAndDomInfo</a>* ld, std::vector&lt;std::string&gt; annos)</div>
221
+ <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; : <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>(ty, <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>::SVFFunc), isDecl(declare), intrinsic(intrinsic),</div>
222
+ <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; addrTaken(adt), isUncalled(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), isNotRet(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), varArg(varg),</div>
223
+ <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; funcType(ft), loopAndDom(ld), realDefFun(nullptr), annotations(std::<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">move</a>(annos))</div>
224
+ <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;{</div>
225
+ <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;}</div>
226
+ <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; </div>
227
+ <div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#a5f6f7bf27f373b16b9c51de310b40686"> 160</a></span>&#160;<a class="code" href="classSVF_1_1SVFFunction.html#a5f6f7bf27f373b16b9c51de310b40686">SVFFunction::~SVFFunction</a>()</div>
228
+ <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;{</div>
229
+ <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb : <a class="code" href="classSVF_1_1SVFFunction.html#aa61307a21647def105677d36bfbaf32f">allBBs</a>)</div>
230
+ <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">delete</span> bb;</div>
231
+ <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* arg : <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>)</div>
232
+ <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">delete</span> arg;</div>
233
+ <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1SVFFunction.html#aefde3a0671e34541a4ad5d7a6dfaa5d1">loopAndDom</a>;</div>
234
+ <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;}</div>
235
+ <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; </div>
236
+ <div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e"> 169</a></span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e">SVFFunction::arg_size</a>()<span class="keyword"> const</span></div>
237
+ <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="keyword"></span>{</div>
238
+ <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>.size();</div>
239
+ <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;}</div>
240
+ <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; </div>
241
+ <div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#a10d9481ae41dce4f266dad5e64fffcee"> 174</a></span>&#160;<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* <a class="code" href="classSVF_1_1SVFFunction.html#a10d9481ae41dce4f266dad5e64fffcee">SVFFunction::getArg</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx)<span class="keyword"> const</span></div>
242
+ <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="keyword"></span>{</div>
243
+ <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; assert (idx &lt; <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>.size() &amp;&amp; <span class="stringliteral">&quot;getArg() out of range!&quot;</span>);</div>
244
+ <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">allArgs</a>[idx];</div>
245
+ <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;}</div>
246
+ <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; </div>
247
+ <div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58"> 180</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58">SVFFunction::isVarArg</a>()<span class="keyword"> const</span></div>
248
+ <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="keyword"></span>{</div>
249
+ <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFFunction.html#a11aaa0ffaf7fa3d220c9af5d4537eaad">varArg</a>;</div>
250
+ <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;}</div>
251
+ <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; </div>
252
+ <div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a2f21fd47b023a9786f8ab39faaca0a27"> 185</a></span>&#160;<a class="code" href="classSVF_1_1SVFBasicBlock.html#ae017f9a00c523585718bde13665275b3">SVFBasicBlock::SVFBasicBlock</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* f)</div>
253
+ <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; : <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>(ty, <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>::SVFBB), fun(f)</div>
254
+ <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;{</div>
255
+ <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;}</div>
256
+ <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; </div>
257
+ <div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#abd5adb119af2024fe4702ba25394d5ac"> 190</a></span>&#160;<a class="code" href="classSVF_1_1SVFBasicBlock.html#abd5adb119af2024fe4702ba25394d5ac">SVFBasicBlock::~SVFBasicBlock</a>()</div>
258
+ <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;{</div>
259
+ <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* inst : <a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>)</div>
260
+ <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">delete</span> inst;</div>
261
+ <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;}</div>
262
+ <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; </div>
263
+ <div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174"> 199</a></span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174">SVFBasicBlock::getBBSuccessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* Succ)</div>
264
+ <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;{</div>
265
+ <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0;</div>
266
+ <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* SuccBB: <a class="code" href="classSVF_1_1SVFBasicBlock.html#a7c3a69644f5e1351aad5d0ce0048abfd">succBBs</a>)</div>
267
+ <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; {</div>
268
+ <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">if</span> (SuccBB == Succ)</div>
269
+ <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> i;</div>
270
+ <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; i++;</div>
271
+ <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div>
272
+ <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Didn&#39;t find successor edge?&quot;</span>);</div>
273
+ <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">return</span> 0;</div>
274
+ <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;}</div>
275
+ <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; </div>
276
+ <div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a104c66cdd4d88ba90eefd32bc9eef389"> 212</a></span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174">SVFBasicBlock::getBBSuccessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* Succ)<span class="keyword"> const</span></div>
277
+ <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="keyword"></span>{</div>
278
+ <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0;</div>
279
+ <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* SuccBB: <a class="code" href="classSVF_1_1SVFBasicBlock.html#a7c3a69644f5e1351aad5d0ce0048abfd">succBBs</a>)</div>
280
+ <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; {</div>
281
+ <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">if</span> (SuccBB == Succ)</div>
282
+ <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">return</span> i;</div>
283
+ <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; i++;</div>
284
+ <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div>
285
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Didn&#39;t find successor edge?&quot;</span>);</div>
286
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> 0;</div>
287
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;}</div>
288
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; </div>
289
+ <div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38"> 225</a></span>&#160;<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* <a class="code" href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38">SVFBasicBlock::getTerminator</a>()<span class="keyword"> const</span></div>
290
+ <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="keyword"></span>{</div>
291
+ <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>.empty() || !<a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>.back()-&gt;isTerminator())</div>
292
+ <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
293
+ <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">allInsts</a>.back();</div>
294
+ <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;}</div>
295
+ <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; </div>
296
+ <div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5"> 235</a></span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5">SVFBasicBlock::getBBPredecessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succbb)</div>
297
+ <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;{</div>
298
+ <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos = 0;</div>
299
+ <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* PredBB : succbb-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#ac6fabc508f6b64127bb597f7b2110231">getPredecessors</a>())</div>
300
+ <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; {</div>
301
+ <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">if</span>(PredBB == <span class="keyword">this</span>)</div>
302
+ <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">return</span> pos;</div>
303
+ <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; ++pos;</div>
304
+ <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</div>
305
+ <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Didn&#39;t find predecessor edge?&quot;</span>);</div>
306
+ <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">return</span> pos;</div>
307
+ <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;}</div>
308
+ <div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFBasicBlock.html#a5fe2dae55581ff1cd6ef251a351d5c4f"> 247</a></span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5">SVFBasicBlock::getBBPredecessorPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succbb)<span class="keyword"> const</span></div>
309
+ <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="keyword"></span>{</div>
310
+ <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos = 0;</div>
311
+ <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* PredBB : succbb-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#ac6fabc508f6b64127bb597f7b2110231">getPredecessors</a>())</div>
312
+ <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div>
313
+ <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">if</span>(PredBB == <span class="keyword">this</span>)</div>
314
+ <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> pos;</div>
315
+ <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; ++pos;</div>
316
+ <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div>
317
+ <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Didn&#39;t find predecessor edge?&quot;</span>);</div>
318
+ <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> pos;</div>
319
+ <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;}</div>
320
+ <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; </div>
321
+ <div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFInstruction.html#a976cc9df05994e7e1b11fcdd22febcc5"> 260</a></span>&#160;<a class="code" href="classSVF_1_1SVFInstruction.html#a7d81c86ea5e1f8e313457862e19c2a3c">SVFInstruction::SVFInstruction</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>,</div>
322
+ <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordtype">bool</span> tm, <span class="keywordtype">bool</span> isRet, <a class="code" href="classSVF_1_1SVFValue.html#afb50ea5aeea7a0608a3c9335aea6860e">SVFValKind</a> k)</div>
323
+ <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; : <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>(ty, k), bb(<a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>), terminator(tm), ret(isRet)</div>
324
+ <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;{</div>
325
+ <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;}</div>
324
326
  </div><!-- fragment --></div><!-- contents -->
325
327
  <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html">SVF::SVFLoopAndDomInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00050">SVFValue.h:50</a></div></div>
326
- <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_ab8a735b5d183f5190c4c45b313f1b174"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174">SVF::SVFBasicBlock::getBBSuccessorPos</a></div><div class="ttdeci">u32_t getBBSuccessorPos(const SVFBasicBlock *succbb)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00197">SVFValue.cpp:197</a></div></div>
328
+ <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_ab8a735b5d183f5190c4c45b313f1b174"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ab8a735b5d183f5190c4c45b313f1b174">SVF::SVFBasicBlock::getBBSuccessorPos</a></div><div class="ttdeci">u32_t getBBSuccessorPos(const SVFBasicBlock *succbb)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00199">SVFValue.cpp:199</a></div></div>
327
329
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_ac6fabc508f6b64127bb597f7b2110231"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ac6fabc508f6b64127bb597f7b2110231">SVF::SVFBasicBlock::getPredecessors</a></div><div class="ttdeci">const std::vector&lt; const SVFBasicBlock * &gt; &amp; getPredecessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00606">SVFValue.h:606</a></div></div>
328
- <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a10d9481ae41dce4f266dad5e64fffcee"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a10d9481ae41dce4f266dad5e64fffcee">SVF::SVFFunction::getArg</a></div><div class="ttdeci">const SVFArgument * getArg(u32_t idx) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00172">SVFValue.cpp:172</a></div></div>
330
+ <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a10d9481ae41dce4f266dad5e64fffcee"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a10d9481ae41dce4f266dad5e64fffcee">SVF::SVFFunction::getArg</a></div><div class="ttdeci">const SVFArgument * getArg(u32_t idx) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00174">SVFValue.cpp:174</a></div></div>
329
331
  <div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
330
332
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a7c3a69644f5e1351aad5d0ce0048abfd"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a7c3a69644f5e1351aad5d0ce0048abfd">SVF::SVFBasicBlock::succBBs</a></div><div class="ttdeci">std::vector&lt; const SVFBasicBlock * &gt; succBBs</div><div class="ttdoc">all successor BasicBlocks of this BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00529">SVFValue.h:529</a></div></div>
331
333
  <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_a342f2825d6b7e3289d0f0f4b7ee8247c"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#a342f2825d6b7e3289d0f0f4b7ee8247c">SVF::SVFLoopAndDomInfo::dominate</a></div><div class="ttdeci">bool dominate(const SVFBasicBlock *bbKey, const SVFBasicBlock *bbValue) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00053">SVFValue.cpp:53</a></div></div>
332
334
  <div class="ttc" id="acJSON_8cpp_html_a65e9886d74aaee76545e83dd09011727"><div class="ttname"><a href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a></div><div class="ttdeci">#define false</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00070">cJSON.cpp:70</a></div></div>
333
335
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a2954b0f29cd81083598afb6431b78f2a"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a2954b0f29cd81083598afb6431b78f2a">SVF::SVFBasicBlock::allInsts</a></div><div class="ttdeci">std::vector&lt; const SVFInstruction * &gt; allInsts</div><div class="ttdoc">all Instructions in this BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00528">SVFValue.h:528</a></div></div>
334
- <div class="ttc" id="aclassSVF_1_1SVFFunction_html_ab8c7a9c79b0668aae604bbe54e34e46e"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e">SVF::SVFFunction::arg_size</a></div><div class="ttdeci">u32_t arg_size() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00167">SVFValue.cpp:167</a></div></div>
336
+ <div class="ttc" id="aclassSVF_1_1SVFFunction_html_ab8c7a9c79b0668aae604bbe54e34e46e"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e">SVF::SVFFunction::arg_size</a></div><div class="ttdeci">u32_t arg_size() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00169">SVFValue.cpp:169</a></div></div>
335
337
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_ae017f9a00c523585718bde13665275b3"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ae017f9a00c523585718bde13665275b3">SVF::SVFBasicBlock::SVFBasicBlock</a></div><div class="ttdeci">SVFBasicBlock()=delete</div></div>
336
338
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a11aaa0ffaf7fa3d220c9af5d4537eaad"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a11aaa0ffaf7fa3d220c9af5d4537eaad">SVF::SVFFunction::varArg</a></div><div class="ttdeci">bool varArg</div><div class="ttdoc">return true if this function never returns</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00316">SVFValue.h:316</a></div></div>
337
- <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a5f6f7bf27f373b16b9c51de310b40686"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a5f6f7bf27f373b16b9c51de310b40686">SVF::SVFFunction::~SVFFunction</a></div><div class="ttdeci">virtual ~SVFFunction()</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00158">SVFValue.cpp:158</a></div></div>
339
+ <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a5f6f7bf27f373b16b9c51de310b40686"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a5f6f7bf27f373b16b9c51de310b40686">SVF::SVFFunction::~SVFFunction</a></div><div class="ttdeci">virtual ~SVFFunction()</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00160">SVFValue.cpp:160</a></div></div>
338
340
  <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_af66c5a824f9fc2813e2d97e17f9a2e96"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#af66c5a824f9fc2813e2d97e17f9a2e96">SVF::SVFLoopAndDomInfo::postDominate</a></div><div class="ttdeci">bool postDominate(const SVFBasicBlock *bbKey, const SVFBasicBlock *bbValue) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00084">SVFValue.cpp:84</a></div></div>
339
341
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html_aa61307a21647def105677d36bfbaf32f"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#aa61307a21647def105677d36bfbaf32f">SVF::SVFFunction::allBBs</a></div><div class="ttdeci">std::vector&lt; const SVFBasicBlock * &gt; allBBs</div><div class="ttdoc">the definition of a function across multiple modules</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00320">SVFValue.h:320</a></div></div>
340
342
  <div class="ttc" id="aSVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
341
- <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_a39257282d3875b5d28c21f6c8b1caf43"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#a39257282d3875b5d28c21f6c8b1caf43">SVF::SVFLoopAndDomInfo::isLoopHeader</a></div><div class="ttdeci">bool isLoopHeader(const SVFBasicBlock *bb) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00138">SVFValue.cpp:138</a></div></div>
343
+ <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_a39257282d3875b5d28c21f6c8b1caf43"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#a39257282d3875b5d28c21f6c8b1caf43">SVF::SVFLoopAndDomInfo::isLoopHeader</a></div><div class="ttdeci">bool isLoopHeader(const SVFBasicBlock *bb) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00140">SVFValue.cpp:140</a></div></div>
342
344
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00517">SVFValue.h:517</a></div></div>
343
345
  <div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00177">SVFValue.h:177</a></div></div>
344
346
  <div class="ttc" id="aclassSVF_1_1SVFFunctionType_html"><div class="ttname"><a href="classSVF_1_1SVFFunctionType.html">SVF::SVFFunctionType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00385">SVFType.h:385</a></div></div>
@@ -346,21 +348,22 @@ $(function() {
346
348
  <div class="ttc" id="aclassSVF_1_1SVFType_html"><div class="ttname"><a href="classSVF_1_1SVFType.html">SVF::SVFType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00242">SVFType.h:242</a></div></div>
347
349
  <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_a33b96ce50eb1d3caab2b20c19a60b2cc"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#a33b96ce50eb1d3caab2b20c19a60b2cc">SVF::SVFLoopAndDomInfo::BBList</a></div><div class="ttdeci">std::vector&lt; const SVFBasicBlock * &gt; BBList</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00056">SVFValue.h:56</a></div></div>
348
350
  <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_a49dff199b71a991c4525ed819ec92bed"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#a49dff199b71a991c4525ed819ec92bed">SVF::SVFLoopAndDomInfo::findNearestCommonPDominator</a></div><div class="ttdeci">const SVFBasicBlock * findNearestCommonPDominator(const SVFBasicBlock *A, const SVFBasicBlock *B) const</div><div class="ttdoc">find nearest common post dominator of two basic blocks</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00114">SVFValue.cpp:114</a></div></div>
349
- <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a10707086ce21999f415c479706abbd38"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38">SVF::SVFBasicBlock::getTerminator</a></div><div class="ttdeci">const SVFInstruction * getTerminator() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00223">SVFValue.cpp:223</a></div></div>
351
+ <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a10707086ce21999f415c479706abbd38"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38">SVF::SVFBasicBlock::getTerminator</a></div><div class="ttdeci">const SVFInstruction * getTerminator() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00225">SVFValue.cpp:225</a></div></div>
350
352
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00297">SVFValue.h:297</a></div></div>
351
353
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a625bef2b92c8e62df547bd2758b59c75"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a625bef2b92c8e62df547bd2758b59c75">SVF::SVFFunction::allArgs</a></div><div class="ttdeci">std::vector&lt; const SVFArgument * &gt; allArgs</div><div class="ttdoc">all BasicBlocks of this function</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00321">SVFValue.h:321</a></div></div>
352
354
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a7e965c21a8afe7fca32d0f41b16361cf"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a7e965c21a8afe7fca32d0f41b16361cf">SVF::SVFFunction::SVFFunction</a></div><div class="ttdeci">SVFFunction(void)=delete</div></div>
353
355
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html_aefde3a0671e34541a4ad5d7a6dfaa5d1"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#aefde3a0671e34541a4ad5d7a6dfaa5d1">SVF::SVFFunction::loopAndDom</a></div><div class="ttdeci">SVFLoopAndDomInfo * loopAndDom</div><div class="ttdoc">FunctionType, which is different from the type (PointerType) of this SVFFunction.</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00318">SVFValue.h:318</a></div></div>
354
- <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_abd5adb119af2024fe4702ba25394d5ac"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#abd5adb119af2024fe4702ba25394d5ac">SVF::SVFBasicBlock::~SVFBasicBlock</a></div><div class="ttdeci">~SVFBasicBlock() override</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00188">SVFValue.cpp:188</a></div></div>
356
+ <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_abd5adb119af2024fe4702ba25394d5ac"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#abd5adb119af2024fe4702ba25394d5ac">SVF::SVFBasicBlock::~SVFBasicBlock</a></div><div class="ttdeci">~SVFBasicBlock() override</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00190">SVFValue.cpp:190</a></div></div>
355
357
  <div class="ttc" id="aclassSVF_1_1SVFValue_html_afb50ea5aeea7a0608a3c9335aea6860e"><div class="ttname"><a href="classSVF_1_1SVFValue.html#afb50ea5aeea7a0608a3c9335aea6860e">SVF::SVFValue::SVFValKind</a></div><div class="ttdeci">SVFValKind</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00186">SVFValue.h:186</a></div></div>
356
358
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a66f51cd41e93ad055c4a0c2874e73fae"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a66f51cd41e93ad055c4a0c2874e73fae">SVF::SVFBasicBlock::getSuccessors</a></div><div class="ttdeci">const std::vector&lt; const SVFBasicBlock * &gt; &amp; getSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00601">SVFValue.h:601</a></div></div>
357
- <div class="ttc" id="aclassSVF_1_1SVFFunction_html_ae578002917b4ccbf28f172dba30d1d58"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58">SVF::SVFFunction::isVarArg</a></div><div class="ttdeci">bool isVarArg() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00178">SVFValue.cpp:178</a></div></div>
359
+ <div class="ttc" id="aclassSVF_1_1SVFFunction_html_ae578002917b4ccbf28f172dba30d1d58"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58">SVF::SVFFunction::isVarArg</a></div><div class="ttdeci">bool isVarArg() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00180">SVFValue.cpp:180</a></div></div>
358
360
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_af48d08d3adf7dd3ed69d97e4df360059"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#af48d08d3adf7dd3ed69d97e4df360059">SVF::SVFBasicBlock::getParent</a></div><div class="ttdeci">const SVFFunction * getParent() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00577">SVFValue.h:577</a></div></div>
359
361
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a72502f7f536418621485e90ab98c2016"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">SVF::SVFUtil::move</a></div><div class="ttdeci">constexpr std::remove_reference&lt; T &gt;::type &amp;&amp; move(T &amp;&amp;t) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00621">SVFUtil.h:621</a></div></div>
360
362
  <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_a0fb893485fc3df088d921762514faf66"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#a0fb893485fc3df088d921762514faf66">SVF::SVFLoopAndDomInfo::getLoopInfo</a></div><div class="ttdeci">const LoopBBs &amp; getLoopInfo(const SVFBasicBlock *bb) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00027">SVFValue.cpp:27</a></div></div>
361
363
  <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_a48654f61a84ac5f93b02fb618cd0d045"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#a48654f61a84ac5f93b02fb618cd0d045">SVF::SVFLoopAndDomInfo::getExitBlocksOfLoop</a></div><div class="ttdeci">void getExitBlocksOfLoop(const SVFBasicBlock *bb, BBList &amp;exitbbs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00034">SVFValue.cpp:34</a></div></div>
362
- <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a59a4b7d815f624e448afe3ac0e9d18f5"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5">SVF::SVFBasicBlock::getBBPredecessorPos</a></div><div class="ttdeci">u32_t getBBPredecessorPos(const SVFBasicBlock *succbb)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00233">SVFValue.cpp:233</a></div></div>
364
+ <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a59a4b7d815f624e448afe3ac0e9d18f5"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a59a4b7d815f624e448afe3ac0e9d18f5">SVF::SVFBasicBlock::getBBPredecessorPos</a></div><div class="ttdeci">u32_t getBBPredecessorPos(const SVFBasicBlock *succbb)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00235">SVFValue.cpp:235</a></div></div>
363
365
  <div class="ttc" id="aclassSVF_1_1SVFInstruction_html_a7d81c86ea5e1f8e313457862e19c2a3c"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html#a7d81c86ea5e1f8e313457862e19c2a3c">SVF::SVFInstruction::SVFInstruction</a></div><div class="ttdeci">SVFInstruction(void)=delete</div></div>
366
+ <div class="ttc" id="acJSON_8cpp_html_a1a05ede2ad100bf5de5dfa7ccdfa4397"><div class="ttname"><a href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a></div><div class="ttdeci">return NULL</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01173">cJSON.cpp:1173</a></div></div>
364
367
  <div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_ad478ac88bc07cf4d6d0ad3517b2c4ab3"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#ad478ac88bc07cf4d6d0ad3517b2c4ab3">SVF::SVFLoopAndDomInfo::BBSet</a></div><div class="ttdeci">Set&lt; const SVFBasicBlock * &gt; BBSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00055">SVFValue.h:55</a></div></div>
365
368
  <div class="ttc" id="aclassSVF_1_1StInfo_html_aae0736a5e99b11571af52e28500a6f9c"><div class="ttname"><a href="classSVF_1_1StInfo.html#aae0736a5e99b11571af52e28500a6f9c">SVF::StInfo::addFldWithType</a></div><div class="ttdeci">void addFldWithType(u32_t fldIdx, const SVFType *type, u32_t elemIdx)</div><div class="ttdoc">Add field index and element index and their corresponding type.</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00008">SVFValue.cpp:8</a></div></div>
366
369
  <div class="ttc" id="aclassSVF_1_1SVFArgument_html"><div class="ttname"><a href="classSVF_1_1SVFArgument.html">SVF::SVFArgument</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00886">SVFValue.h:886</a></div></div>