svf-tools 1.0.564 → 1.0.565
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.
- package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +1 -2
- package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +11 -10
- package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +10 -9
- package/SVF-doxygen/html/html/CFLGrammar_8txt.html +37 -37
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +1 -2
- package/SVF-doxygen/html/html/CPPUtil_8h.html +4 -4
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +1 -2
- package/SVF-doxygen/html/html/PEGGrammar_8txt.html +37 -138
- package/SVF-doxygen/html/html/SVFUtil_8h.html +1 -1
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer-members.html +12 -11
- package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +63 -28
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +7 -10
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +1 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +2 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +1 -1
- package/SVF-doxygen/html/html/functions_b.html +12 -9
- package/SVF-doxygen/html/html/functions_func_b.html +5 -2
- package/SVF-doxygen/html/html/functions_func_s.html +1 -1
- package/SVF-doxygen/html/html/functions_i.html +3 -3
- package/SVF-doxygen/html/html/functions_l.html +6 -6
- package/SVF-doxygen/html/html/functions_o.html +3 -3
- package/SVF-doxygen/html/html/functions_p.html +14 -14
- package/SVF-doxygen/html/html/functions_s.html +7 -7
- package/SVF-doxygen/html/html/functions_w.html +11 -11
- package/SVF-doxygen/html/html/globals_a.html +0 -1
- package/SVF-doxygen/html/html/globals_c.html +5 -6
- package/SVF-doxygen/html/html/globals_e.html +0 -1
- package/SVF-doxygen/html/html/globals_f.html +2 -3
- package/SVF-doxygen/html/html/globals_func.html +3 -0
- package/SVF-doxygen/html/html/globals_g.html +5 -7
- package/SVF-doxygen/html/html/globals_m.html +3 -6
- package/SVF-doxygen/html/html/globals_vars.html +10 -19
- package/SVF-doxygen/html/html/namespaceSVF.html +2 -2
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +1 -1
- package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +4 -4
- package/SVF-doxygen/html/html/search/all_1.js +1 -1
- package/SVF-doxygen/html/html/search/all_10.js +6 -6
- package/SVF-doxygen/html/html/search/all_11.js +1 -1
- package/SVF-doxygen/html/html/search/all_12.js +8 -8
- package/SVF-doxygen/html/html/search/all_13.js +4 -4
- package/SVF-doxygen/html/html/search/all_16.js +1 -1
- package/SVF-doxygen/html/html/search/all_2.js +1 -0
- package/SVF-doxygen/html/html/search/all_3.js +1 -1
- package/SVF-doxygen/html/html/search/all_5.js +1 -1
- package/SVF-doxygen/html/html/search/all_6.js +2 -2
- package/SVF-doxygen/html/html/search/all_7.js +4 -4
- package/SVF-doxygen/html/html/search/all_9.js +1 -1
- package/SVF-doxygen/html/html/search/all_c.js +3 -3
- package/SVF-doxygen/html/html/search/all_d.js +1 -1
- package/SVF-doxygen/html/html/search/all_e.js +1 -1
- package/SVF-doxygen/html/html/search/all_f.js +1 -1
- package/SVF-doxygen/html/html/search/functions_1.js +1 -0
- package/SVF-doxygen/html/html/search/functions_11.js +1 -1
- package/SVF-doxygen/html/html/search/functions_5.js +1 -0
- package/SVF-doxygen/html/html/search/variables_1.js +1 -1
- package/SVF-doxygen/html/html/search/variables_13.js +2 -2
- package/SVF-doxygen/html/html/search/variables_3.js +1 -1
- package/SVF-doxygen/html/html/search/variables_5.js +1 -1
- package/SVF-doxygen/html/html/search/variables_6.js +2 -2
- package/SVF-doxygen/html/html/search/variables_7.js +4 -4
- package/SVF-doxygen/html/html/search/variables_d.js +1 -1
- package/include/CFL/CFGNormalizer.h +3 -1
- package/include/CFL/PEGGrammar.txt +5 -18
- package/lib/CFL/CFGNormalizer.cpp +57 -6
- package/package.json +1 -1
|
@@ -324,7 +324,7 @@ Static Private Attributes</h2></td></tr>
|
|
|
324
324
|
</div><div class="memdoc">
|
|
325
325
|
|
|
326
326
|
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00357">357</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
327
|
-
<div class="fragment"><div class="line"><a name="l00358"></a><span class="lineno"> 358</span> {</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  std::vector<const Function *> ctor_funcs;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  std::vector<const Function *> dtor_funcs;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> * orgMain = 0;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* mainMod = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="comment">// Collect ctor and dtor functions</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keywordflow">for</span> (Module::global_iterator it = mod.global_begin(),</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  eit = mod.global_end();</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  it != eit; ++it)</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *global = &*it;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">if</span> (global->getName().equals(<a class="code" href="LLVMModule_8cpp.html#aa18802f2f60ef8030c66a42f20f285af">SVF_GLOBAL_CTORS</a>) &&</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  global->hasInitializer())</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  {</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  ctor_funcs = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a0b46a2a5ff2165d17993a071d9cc82c1">getLLVMGlobalFunctions</a>(global);</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  }</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (global->getName().equals(<a class="code" href="LLVMModule_8cpp.html#a9fd6e28e6ed93f65a20a348ab0646320">SVF_GLOBAL_DTORS</a>) &&</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  global->hasInitializer())</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  dtor_funcs = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a0b46a2a5ff2165d17993a071d9cc82c1">getLLVMGlobalFunctions</a>(global);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  }</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="comment">// Find main function</span></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> &func : mod)</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordflow">if</span> (func.getName().equals(<a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>))</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  assert(<span class="keyword">false</span> && <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a> <span class="stringliteral">" already defined"</span>);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordflow">if</span>(func.getName().equals(<span class="stringliteral">"main"</span>))</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  {</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  orgMain = &func;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  mainMod = &mod;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  }</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  }</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  }</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="comment">// Only create svf.main when the original main function is found, and also</span></div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="comment">// there are global contructor or destructor functions.</span></div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordflow">if</span> (orgMain && <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae265a7f3cc7367d62013e0f15cf3d233">getModuleNum</a>() > 0 &&</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  (ctor_funcs.size() > 0 || dtor_funcs.size() > 0))</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  {</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  assert(mainMod && <span class="stringliteral">"Module with main function not found."</span>);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> & <a class="code" href="PEGGrammar_8txt.html#abd600039647a1e73c88e7161fa6eb989">M</a> = *mainMod;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="comment">// char **</span></div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * i8ptr2 = PointerType::getInt8PtrTy(M.getContext())->getPointerTo();</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * i32 = IntegerType::getInt32Ty(M.getContext());</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="comment">// define void @svf.main(i32, i8**, i8**)</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="preprocessor">#if (LLVM_VERSION_MAJOR >= 9)</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  FunctionCallee svfmainFn = M.getOrInsertFunction(</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>,</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  Type::getVoidTy(M.getContext()),</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  i32,i8ptr2,i8ptr2</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  );</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *svfmain = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>>(svfmainFn.getCallee());</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *svfmain = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>>(M.getOrInsertFunction(</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>,</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  Type::getVoidTy(M.getContext()),</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  i32,i8ptr2,i8ptr2</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  ));</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  svfmain->setCallingConv(llvm::CallingConv::C);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* block = BasicBlock::Create(M.getContext(), <span class="stringliteral">"entry"</span>, svfmain);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <a class="code" href="namespaceSVF.html#a94824519e439aeef1568d415b6f7331c">IRBuilder</a> Builder(block);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="comment">// emit "call void @ctor()". ctor_funcs is sorted so the functions are</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="comment">// emitted in the order of priority</span></div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> & ctor: ctor_funcs)</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  {</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keyword">auto</span> target = M.getOrInsertFunction(</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  ctor->getName(),</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  Type::getVoidTy(M.getContext())</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  );</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  Builder.CreateCall(target);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="comment">// main() should be called after all ctor functions and before dtor</span></div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="comment">// functions.</span></div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  Function::arg_iterator arg_it = svfmain->arg_begin();</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> * args[] = {arg_it, arg_it + 1, arg_it + 2 };</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="keywordtype">size_t</span> cnt = orgMain->arg_size();</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  assert(cnt <= 3 && <span class="stringliteral">"Too many arguments for main()"</span>);</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  Builder.CreateCall(orgMain, llvm::ArrayRef<Value*>(args,args + cnt));</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="comment">// emit "call void @dtor()". dtor_funcs is sorted so the functions are</span></div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="comment">// emitted in the order of priority</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> &dtor : dtor_funcs)</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  {</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keyword">auto</span> target = M.getOrInsertFunction(</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  dtor->getName(),</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  Type::getVoidTy(M.getContext())</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  );</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  Builder.CreateCall(target);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  }</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="comment">// return;</span></div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  Builder.CreateRetVoid();</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  }</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span> }</div><div class="ttc" id="namespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00041">BasicTypes.h:41</a></div></div>
|
|
327
|
+
<div class="fragment"><div class="line"><a name="l00358"></a><span class="lineno"> 358</span> {</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  std::vector<const Function *> ctor_funcs;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  std::vector<const Function *> dtor_funcs;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> * orgMain = 0;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* mainMod = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="comment">// Collect ctor and dtor functions</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keywordflow">for</span> (Module::global_iterator it = mod.global_begin(),</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  eit = mod.global_end();</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  it != eit; ++it)</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *global = &*it;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">if</span> (global->getName().equals(<a class="code" href="LLVMModule_8cpp.html#aa18802f2f60ef8030c66a42f20f285af">SVF_GLOBAL_CTORS</a>) &&</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  global->hasInitializer())</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  {</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  ctor_funcs = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a0b46a2a5ff2165d17993a071d9cc82c1">getLLVMGlobalFunctions</a>(global);</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  }</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (global->getName().equals(<a class="code" href="LLVMModule_8cpp.html#a9fd6e28e6ed93f65a20a348ab0646320">SVF_GLOBAL_DTORS</a>) &&</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  global->hasInitializer())</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  dtor_funcs = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a0b46a2a5ff2165d17993a071d9cc82c1">getLLVMGlobalFunctions</a>(global);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  }</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="comment">// Find main function</span></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> &func : mod)</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordflow">if</span> (func.getName().equals(<a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>))</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  assert(<span class="keyword">false</span> && <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a> <span class="stringliteral">" already defined"</span>);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordflow">if</span>(func.getName().equals(<span class="stringliteral">"main"</span>))</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  {</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  orgMain = &func;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  mainMod = &mod;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  }</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  }</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  }</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="comment">// Only create svf.main when the original main function is found, and also</span></div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="comment">// there are global contructor or destructor functions.</span></div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordflow">if</span> (orgMain && <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae265a7f3cc7367d62013e0f15cf3d233">getModuleNum</a>() > 0 &&</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  (ctor_funcs.size() > 0 || dtor_funcs.size() > 0))</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  {</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  assert(mainMod && <span class="stringliteral">"Module with main function not found."</span>);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> & M = *mainMod;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="comment">// char **</span></div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * i8ptr2 = PointerType::getInt8PtrTy(M.getContext())->getPointerTo();</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * i32 = IntegerType::getInt32Ty(M.getContext());</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="comment">// define void @svf.main(i32, i8**, i8**)</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="preprocessor">#if (LLVM_VERSION_MAJOR >= 9)</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  FunctionCallee svfmainFn = M.getOrInsertFunction(</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>,</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  Type::getVoidTy(M.getContext()),</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  i32,i8ptr2,i8ptr2</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  );</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *svfmain = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>>(svfmainFn.getCallee());</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *svfmain = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>>(M.getOrInsertFunction(</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>,</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  Type::getVoidTy(M.getContext()),</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  i32,i8ptr2,i8ptr2</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  ));</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  svfmain->setCallingConv(llvm::CallingConv::C);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* block = BasicBlock::Create(M.getContext(), <span class="stringliteral">"entry"</span>, svfmain);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <a class="code" href="namespaceSVF.html#a94824519e439aeef1568d415b6f7331c">IRBuilder</a> Builder(block);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="comment">// emit "call void @ctor()". ctor_funcs is sorted so the functions are</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="comment">// emitted in the order of priority</span></div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> & ctor: ctor_funcs)</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  {</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keyword">auto</span> target = M.getOrInsertFunction(</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  ctor->getName(),</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  Type::getVoidTy(M.getContext())</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  );</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  Builder.CreateCall(target);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="comment">// main() should be called after all ctor functions and before dtor</span></div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="comment">// functions.</span></div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  Function::arg_iterator arg_it = svfmain->arg_begin();</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> * args[] = {arg_it, arg_it + 1, arg_it + 2 };</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="keywordtype">size_t</span> cnt = orgMain->arg_size();</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  assert(cnt <= 3 && <span class="stringliteral">"Too many arguments for main()"</span>);</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  Builder.CreateCall(orgMain, llvm::ArrayRef<Value*>(args,args + cnt));</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="comment">// emit "call void @dtor()". dtor_funcs is sorted so the functions are</span></div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="comment">// emitted in the order of priority</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> &dtor : dtor_funcs)</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  {</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keyword">auto</span> target = M.getOrInsertFunction(</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  dtor->getName(),</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  Type::getVoidTy(M.getContext())</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  );</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  Builder.CreateCall(target);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  }</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="comment">// return;</span></div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  Builder.CreateRetVoid();</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  }</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span> }</div><div class="ttc" id="namespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00041">BasicTypes.h:41</a></div></div>
|
|
328
328
|
<div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00071">BasicTypes.h:71</a></div></div>
|
|
329
329
|
<div class="ttc" id="namespaceSVF_html_a1d008c0666c145622b81d427be64c52d"><div class="ttname"><a href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">SVF::Type</a></div><div class="ttdeci">llvm::Type Type</div><div class="ttdoc">LLVM Basic classes. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
|
|
330
330
|
<div class="ttc" id="namespaceSVF_html_a09f5fa3bc44bf53612a085e3a611cc4e"><div class="ttname"><a href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">SVF::GlobalVariable</a></div><div class="ttdeci">llvm::GlobalVariable GlobalVariable</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
|
|
@@ -337,7 +337,6 @@ Static Private Attributes</h2></td></tr>
|
|
|
337
337
|
<div class="ttc" id="LLVMModule_8cpp_html_a10ab7c7da3a458495d8528b9e90d714b"><div class="ttname"><a href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a></div><div class="ttdeci">#define SVF_MAIN_FUNC_NAME</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00067">LLVMModule.cpp:67</a></div></div>
|
|
338
338
|
<div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acde6292e719c80f93d3d1c344ab442cd"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">SVF::LLVMModuleSet::modules</a></div><div class="ttdeci">std::vector< std::reference_wrapper< Module > > modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00055">LLVMModule.h:55</a></div></div>
|
|
339
339
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
|
|
340
|
-
<div class="ttc" id="PEGGrammar_8txt_html_abd600039647a1e73c88e7161fa6eb989"><div class="ttname"><a href="PEGGrammar_8txt.html#abd600039647a1e73c88e7161fa6eb989">M</a></div><div class="ttdeci">V M</div><div class="ttdef"><b>Definition:</b> <a href="PEGGrammar_8txt_source.html#l00010">PEGGrammar.txt:10</a></div></div>
|
|
341
340
|
<div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00072">BasicTypes.h:72</a></div></div>
|
|
342
341
|
</div><!-- fragment -->
|
|
343
342
|
</div>
|
|
@@ -127,7 +127,7 @@ Public Member Functions</h2></td></tr>
|
|
|
127
127
|
</table><table class="memberdecls">
|
|
128
128
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
|
|
129
129
|
Static Public Member Functions</h2></td></tr>
|
|
130
|
-
<tr class="memitem:a7cb2fd230ed5839b59f650cc87de192e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceSVF.html#ad8794eb3c00de3d3b5c5e43dded3fb42">ScalarEvolution</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MTA.html#a7cb2fd230ed5839b59f650cc87de192e">getSE</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *<a class="el" href="
|
|
130
|
+
<tr class="memitem:a7cb2fd230ed5839b59f650cc87de192e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceSVF.html#ad8794eb3c00de3d3b5c5e43dded3fb42">ScalarEvolution</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MTA.html#a7cb2fd230ed5839b59f650cc87de192e">getSE</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *<a class="el" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>)</td></tr>
|
|
131
131
|
<tr class="separator:a7cb2fd230ed5839b59f650cc87de192e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
132
132
|
</table><table class="memberdecls">
|
|
133
133
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
|
|
@@ -87,7 +87,7 @@ Public Member Functions</h2></td></tr>
|
|
|
87
87
|
<tr class="separator:a2b989707893cd81dd275be6a3b8c79fc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
88
88
|
<tr class="memitem:a436a61f00b607dd0e5728daad9dd2e93"><td class="memItemLeft" align="right" valign="top">llvm::StringRef </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MergeFunctionRets.html#a436a61f00b607dd0e5728daad9dd2e93">getPassName</a> () const</td></tr>
|
|
89
89
|
<tr class="separator:a436a61f00b607dd0e5728daad9dd2e93"><td class="memSeparator" colspan="2"> </td></tr>
|
|
90
|
-
<tr class="memitem:a8fe74477a43f80104fb3461d006ad392"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MergeFunctionRets.html#a8fe74477a43f80104fb3461d006ad392">runOnModule</a> (<a class="el" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &
|
|
90
|
+
<tr class="memitem:a8fe74477a43f80104fb3461d006ad392"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MergeFunctionRets.html#a8fe74477a43f80104fb3461d006ad392">runOnModule</a> (<a class="el" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &M)</td></tr>
|
|
91
91
|
<tr class="separator:a8fe74477a43f80104fb3461d006ad392"><td class="memSeparator" colspan="2"> </td></tr>
|
|
92
92
|
<tr class="memitem:a8c04750179ee48d283c5db4d84b3eca1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MergeFunctionRets.html#a8c04750179ee48d283c5db4d84b3eca1">UnifyFunctionExit</a> (<a class="el" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &module)</td></tr>
|
|
93
93
|
<tr class="separator:a8c04750179ee48d283c5db4d84b3eca1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -217,8 +217,7 @@ Static Public Attributes</h2></td></tr>
|
|
|
217
217
|
</div><div class="memdoc">
|
|
218
218
|
|
|
219
219
|
<p class="definition">Definition at line <a class="el" href="BreakConstantExpr_8h_source.html#l00068">68</a> of file <a class="el" href="BreakConstantExpr_8h_source.html">BreakConstantExpr.h</a>.</p>
|
|
220
|
-
<div class="fragment"><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="classSVF_1_1MergeFunctionRets.html#a8c04750179ee48d283c5db4d84b3eca1">UnifyFunctionExit</a>(
|
|
221
|
-
<div class="ttc" id="classSVF_1_1MergeFunctionRets_html_a8c04750179ee48d283c5db4d84b3eca1"><div class="ttname"><a href="classSVF_1_1MergeFunctionRets.html#a8c04750179ee48d283c5db4d84b3eca1">SVF::MergeFunctionRets::UnifyFunctionExit</a></div><div class="ttdeci">void UnifyFunctionExit(Module &module)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8h_source.html#l00073">BreakConstantExpr.h:73</a></div></div>
|
|
220
|
+
<div class="fragment"><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="classSVF_1_1MergeFunctionRets.html#a8c04750179ee48d283c5db4d84b3eca1">UnifyFunctionExit</a>(M);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div><div class="ttc" id="classSVF_1_1MergeFunctionRets_html_a8c04750179ee48d283c5db4d84b3eca1"><div class="ttname"><a href="classSVF_1_1MergeFunctionRets.html#a8c04750179ee48d283c5db4d84b3eca1">SVF::MergeFunctionRets::UnifyFunctionExit</a></div><div class="ttdeci">void UnifyFunctionExit(Module &module)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8h_source.html#l00073">BreakConstantExpr.h:73</a></div></div>
|
|
222
221
|
</div><!-- fragment -->
|
|
223
222
|
</div>
|
|
224
223
|
</div>
|
|
@@ -139,7 +139,7 @@ Protected Member Functions</h2></td></tr>
|
|
|
139
139
|
<tr class="memitem:a4cb5ac4a19002023683c4ee47aabb802"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIRBuilder.html#a4cb5ac4a19002023683c4ee47aabb802">getBaseTypeAndFlattenedFields</a> (const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V, std::vector< <a class="el" href="classSVF_1_1LocationSet.html">LocationSet</a> > &fields, const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *sz)</td></tr>
|
|
140
140
|
<tr class="memdesc:a4cb5ac4a19002023683c4ee47aabb802"><td class="mdescLeft"> </td><td class="mdescRight">Get the base type and max offset. <a href="#a4cb5ac4a19002023683c4ee47aabb802">More...</a><br /></td></tr>
|
|
141
141
|
<tr class="separator:a4cb5ac4a19002023683c4ee47aabb802"><td class="memSeparator" colspan="2"> </td></tr>
|
|
142
|
-
<tr class="memitem:afd3125974393d68b4b8f5298ef699ab3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIRBuilder.html#afd3125974393d68b4b8f5298ef699ab3">handleDirectCall</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="
|
|
142
|
+
<tr class="memitem:afd3125974393d68b4b8f5298ef699ab3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIRBuilder.html#afd3125974393d68b4b8f5298ef699ab3">handleDirectCall</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>)</td></tr>
|
|
143
143
|
<tr class="memdesc:afd3125974393d68b4b8f5298ef699ab3"><td class="mdescLeft"> </td><td class="mdescRight">Handle direct call. <a href="#afd3125974393d68b4b8f5298ef699ab3">More...</a><br /></td></tr>
|
|
144
144
|
<tr class="separator:afd3125974393d68b4b8f5298ef699ab3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
145
145
|
<tr class="memitem:aa21ed35656d26eec22c53dc41019adc4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIRBuilder.html#aa21ed35656d26eec22c53dc41019adc4">handleIndCall</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs)</td></tr>
|
|
@@ -221,7 +221,7 @@ Protected Member Functions</h2></td></tr>
|
|
|
221
221
|
<tr class="memitem:a8f4716f34bc0738ed9dec756113f0a37"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIRBuilder.html#a8f4716f34bc0738ed9dec756113f0a37">parseOperations</a> (std::vector< <a class="el" href="classSVF_1_1ExtAPI_1_1Operation.html">ExtAPI::Operation</a> > &operations, <a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs)</td></tr>
|
|
222
222
|
<tr class="memdesc:a8f4716f34bc0738ed9dec756113f0a37"><td class="mdescLeft"> </td><td class="mdescRight">Handle external call. <a href="#a8f4716f34bc0738ed9dec756113f0a37">More...</a><br /></td></tr>
|
|
223
223
|
<tr class="separator:a8f4716f34bc0738ed9dec756113f0a37"><td class="memSeparator" colspan="2"> </td></tr>
|
|
224
|
-
<tr class="memitem:aff08d65b1411d1db81f80b9d4228c65d"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIRBuilder.html#aff08d65b1411d1db81f80b9d4228c65d">handleExtCall</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="
|
|
224
|
+
<tr class="memitem:aff08d65b1411d1db81f80b9d4228c65d"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIRBuilder.html#aff08d65b1411d1db81f80b9d4228c65d">handleExtCall</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>)</td></tr>
|
|
225
225
|
<tr class="separator:aff08d65b1411d1db81f80b9d4228c65d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
226
226
|
<tr class="memitem:ad0e9f1dd1cba235a699c2b710a888d06"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIRBuilder.html#ad0e9f1dd1cba235a699c2b710a888d06">addComplexConsForExt</a> (<a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *D, <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *S, const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *sz)</td></tr>
|
|
227
227
|
<tr class="separator:ad0e9f1dd1cba235a699c2b710a888d06"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -140,7 +140,7 @@ Private Member Functions</h2></td></tr>
|
|
|
140
140
|
<tr class="memitem:a5771df69ffa75b6103a32c8bd48ef488"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SaberCheckerAPI.html#a5771df69ffa75b6103a32c8bd48ef488">init</a> ()</td></tr>
|
|
141
141
|
<tr class="memdesc:a5771df69ffa75b6103a32c8bd48ef488"><td class="mdescLeft"> </td><td class="mdescRight">Initialize the map. <a href="#a5771df69ffa75b6103a32c8bd48ef488">More...</a><br /></td></tr>
|
|
142
142
|
<tr class="separator:a5771df69ffa75b6103a32c8bd48ef488"><td class="memSeparator" colspan="2"> </td></tr>
|
|
143
|
-
<tr class="memitem:ab0cdd9671c406e8d881f0a057fe44081"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SaberCheckerAPI.html#a32f3c37a5957dc7533f7e82617d5d056">CHECKER_TYPE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SaberCheckerAPI.html#ab0cdd9671c406e8d881f0a057fe44081">getType</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="
|
|
143
|
+
<tr class="memitem:ab0cdd9671c406e8d881f0a057fe44081"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SaberCheckerAPI.html#a32f3c37a5957dc7533f7e82617d5d056">CHECKER_TYPE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SaberCheckerAPI.html#ab0cdd9671c406e8d881f0a057fe44081">getType</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>) const</td></tr>
|
|
144
144
|
<tr class="memdesc:ab0cdd9671c406e8d881f0a057fe44081"><td class="mdescLeft"> </td><td class="mdescRight">Get the function type of a function. <a href="#ab0cdd9671c406e8d881f0a057fe44081">More...</a><br /></td></tr>
|
|
145
145
|
<tr class="separator:ab0cdd9671c406e8d881f0a057fe44081"><td class="memSeparator" colspan="2"> </td></tr>
|
|
146
146
|
</table><table class="memberdecls">
|
|
@@ -224,7 +224,7 @@ Private Member Functions</h2></td></tr>
|
|
|
224
224
|
<tr class="memitem:a4535862f26efff9f45236000507932c9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadAPI.html#a4535862f26efff9f45236000507932c9">init</a> ()</td></tr>
|
|
225
225
|
<tr class="memdesc:a4535862f26efff9f45236000507932c9"><td class="mdescLeft"> </td><td class="mdescRight">Initialize the map. <a href="#a4535862f26efff9f45236000507932c9">More...</a><br /></td></tr>
|
|
226
226
|
<tr class="separator:a4535862f26efff9f45236000507932c9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
227
|
-
<tr class="memitem:a768a655dffc5fcf1d63e2a0b3f2930f4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3">TD_TYPE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadAPI.html#a768a655dffc5fcf1d63e2a0b3f2930f4">getType</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="
|
|
227
|
+
<tr class="memitem:a768a655dffc5fcf1d63e2a0b3f2930f4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3">TD_TYPE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadAPI.html#a768a655dffc5fcf1d63e2a0b3f2930f4">getType</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>) const</td></tr>
|
|
228
228
|
<tr class="memdesc:a768a655dffc5fcf1d63e2a0b3f2930f4"><td class="mdescLeft"> </td><td class="mdescRight">Get the function type if it is a threadAPI function. <a href="#a768a655dffc5fcf1d63e2a0b3f2930f4">More...</a><br /></td></tr>
|
|
229
229
|
<tr class="separator:a768a655dffc5fcf1d63e2a0b3f2930f4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
230
230
|
</table><table class="memberdecls">
|
|
@@ -102,6 +102,9 @@ $(function() {
|
|
|
102
102
|
: <a class="el" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">SVF::DDAVFSolver< CVar, CPtSet, DPIm ></a>
|
|
103
103
|
, <a class="el" href="classSVF_1_1SrcSnkDDA.html#a32cc8a131b2448b5e8e1fe65d99fd286">SVF::SrcSnkDDA</a>
|
|
104
104
|
</li>
|
|
105
|
+
<li>barReplace()
|
|
106
|
+
: <a class="el" href="classSVF_1_1CFGNormalizer.html#ad56aa4b7f6eba0c873ea18f83c398bc5">SVF::CFGNormalizer</a>
|
|
107
|
+
</li>
|
|
105
108
|
<li>base
|
|
106
109
|
: <a class="el" href="classSVF_1_1GepObjVar.html#aff50e1d96403eeacaa64f7adb07ce0a5">SVF::GepObjVar</a>
|
|
107
110
|
</li>
|
|
@@ -194,12 +197,12 @@ $(function() {
|
|
|
194
197
|
<li>bbSuccessorPosMap
|
|
195
198
|
: <a class="el" href="classSVF_1_1SVFModule.html#aea210fb8fd41aa497f609f4d9c49b3ae">SVF::SVFModule</a>
|
|
196
199
|
</li>
|
|
197
|
-
<li>bbToCondMap
|
|
198
|
-
: <a class="el" href="classSVF_1_1SaberCondAllocator.html#a6d29487d00d66dadae7b4b79f9bf50e9">SVF::SaberCondAllocator</a>
|
|
199
|
-
</li>
|
|
200
200
|
<li>BBToCondMap
|
|
201
201
|
: <a class="el" href="classSVF_1_1SaberCondAllocator.html#a43782d54ecac8b538c4f8484e8b32dab">SVF::SaberCondAllocator</a>
|
|
202
202
|
</li>
|
|
203
|
+
<li>bbToCondMap
|
|
204
|
+
: <a class="el" href="classSVF_1_1SaberCondAllocator.html#a6d29487d00d66dadae7b4b79f9bf50e9">SVF::SaberCondAllocator</a>
|
|
205
|
+
</li>
|
|
203
206
|
<li>BBToMRSetMap
|
|
204
207
|
: <a class="el" href="classSVF_1_1MemSSA.html#a4d4f7039c2972e671dc15b8c75abad14">SVF::MemSSA</a>
|
|
205
208
|
</li>
|
|
@@ -295,7 +298,7 @@ $(function() {
|
|
|
295
298
|
: <a class="el" href="classSVF_1_1SVFStat.html#a17c8ea68bf1341ab80f71fff76a9ffce">SVF::SVFStat</a>
|
|
296
299
|
</li>
|
|
297
300
|
<li>BranchStmt()
|
|
298
|
-
: <a class="el" href="classSVF_1_1BranchStmt.html#
|
|
301
|
+
: <a class="el" href="classSVF_1_1BranchStmt.html#a5e102d5c08b7121efc87b99651f0b5d2">SVF::BranchStmt</a>
|
|
299
302
|
</li>
|
|
300
303
|
<li>BranchVFGNode()
|
|
301
304
|
: <a class="el" href="classSVF_1_1BranchVFGNode.html#ad1aa629eae4006a68a1e6e8a7621a494">SVF::BranchVFGNode</a>
|
|
@@ -316,7 +319,7 @@ $(function() {
|
|
|
316
319
|
: <a class="el" href="structprintbuffer.html#a754f63618e91db99f7ab6cfc4e629013">printbuffer</a>
|
|
317
320
|
</li>
|
|
318
321
|
<li>build()
|
|
319
|
-
: <a class="el" href="classSVF_1_1CFLGraphBuilder.html#
|
|
322
|
+
: <a class="el" href="classSVF_1_1CFLGraphBuilder.html#ab0d2bd46dd1c3be10c04f573e9365757">SVF::CFLGraphBuilder</a>
|
|
320
323
|
, <a class="el" href="classSVF_1_1GrammarBuilder.html#a23d03b2cd348d85bda1ee582dded6505">SVF::GrammarBuilder</a>
|
|
321
324
|
, <a class="el" href="classSVF_1_1ICFGBuilder.html#ae66565ee32fff4ef5f0157e867333250">SVF::ICFGBuilder</a>
|
|
322
325
|
, <a class="el" href="classSVF_1_1LLVMLoopAnalysis.html#a17e4805c2db146430c58af35625a388d">SVF::LLVMLoopAnalysis</a>
|
|
@@ -350,7 +353,7 @@ $(function() {
|
|
|
350
353
|
: <a class="el" href="classSVF_1_1CHGBuilder.html#a7420a3a4858ebe861aaa47d76f49ab1f">SVF::CHGBuilder</a>
|
|
351
354
|
</li>
|
|
352
355
|
<li>buildCHGNodes()
|
|
353
|
-
: <a class="el" href="classSVF_1_1CHGBuilder.html#
|
|
356
|
+
: <a class="el" href="classSVF_1_1CHGBuilder.html#a648e97899c16a5634fc8369aef8a031f">SVF::CHGBuilder</a>
|
|
354
357
|
</li>
|
|
355
358
|
<li>buildClassNameToAncestorsDescendantsMap()
|
|
356
359
|
: <a class="el" href="classSVF_1_1CHGBuilder.html#ae7832c277f0ff86f3ae750aac6063adb">SVF::CHGBuilder</a>
|
|
@@ -423,12 +426,12 @@ $(function() {
|
|
|
423
426
|
<li>buildVTables()
|
|
424
427
|
: <a class="el" href="classSVF_1_1DCHGraph.html#a1215db390515a30fbc416fb14d2e863f">SVF::DCHGraph</a>
|
|
425
428
|
</li>
|
|
426
|
-
<li>bv
|
|
427
|
-
: <a class="el" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">SVF::PointsTo</a>
|
|
428
|
-
</li>
|
|
429
429
|
<li>BV
|
|
430
430
|
: <a class="el" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">SVF::PointsTo</a>
|
|
431
431
|
</li>
|
|
432
|
+
<li>bv
|
|
433
|
+
: <a class="el" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">SVF::PointsTo</a>
|
|
434
|
+
</li>
|
|
432
435
|
<li>bv2int
|
|
433
436
|
: <a class="el" href="classSVF_1_1Z3Expr.html#a349068a6c6c45f42ee3fedb0a487c06a">SVF::Z3Expr</a>
|
|
434
437
|
</li>
|
|
@@ -92,10 +92,13 @@ $(function() {
|
|
|
92
92
|
<li>backwardVisited()
|
|
93
93
|
: <a class="el" href="classSVF_1_1SrcSnkDDA.html#a32cc8a131b2448b5e8e1fe65d99fd286">SVF::SrcSnkDDA</a>
|
|
94
94
|
</li>
|
|
95
|
+
<li>barReplace()
|
|
96
|
+
: <a class="el" href="classSVF_1_1CFGNormalizer.html#ad56aa4b7f6eba0c873ea18f83c398bc5">SVF::CFGNormalizer</a>
|
|
97
|
+
</li>
|
|
95
98
|
<li>begin()
|
|
96
99
|
: <a class="el" href="classllvm_1_1generic__bridge__gep__type__iterator.html#aabd833b8eca182f681462209c9f24f1a">llvm::generic_bridge_gep_type_iterator< ItTy ></a>
|
|
97
100
|
, <a class="el" href="classSVF_1_1CondPointsToSet.html#a3521ec3be48cc03d9d3f562cb088a9ad">SVF::CondPointsToSet< Cond ></a>
|
|
98
|
-
, <a class="el" href="classSVF_1_1CondStdSet.html#
|
|
101
|
+
, <a class="el" href="classSVF_1_1CondStdSet.html#a76fb2382bf424638ed8e03cb48cdc90e">SVF::CondStdSet< Element ></a>
|
|
99
102
|
, <a class="el" href="classSVF_1_1ContextCond.html#a4ae7e2236708b0d205f393cdce75c8d1">SVF::ContextCond</a>
|
|
100
103
|
, <a class="el" href="classSVF_1_1CoreBitVector.html#a835bf11a1f698942db8e6bdadbbfd1f3">SVF::CoreBitVector</a>
|
|
101
104
|
, <a class="el" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph< NodeTy, EdgeTy ></a>
|
|
@@ -107,7 +110,7 @@ $(function() {
|
|
|
107
110
|
: <a class="el" href="classSVF_1_1BinaryOPStmt.html#a4c87a90a0190b50c0318c0f316f4fc2a">SVF::BinaryOPStmt</a>
|
|
108
111
|
</li>
|
|
109
112
|
<li>BinaryOPVFGNode()
|
|
110
|
-
: <a class="el" href="classSVF_1_1BinaryOPVFGNode.html#
|
|
113
|
+
: <a class="el" href="classSVF_1_1BinaryOPVFGNode.html#afa52d77205075141b59847b8400344e7">SVF::BinaryOPVFGNode</a>
|
|
111
114
|
</li>
|
|
112
115
|
<li>BitVector()
|
|
113
116
|
: <a class="el" href="classSVF_1_1BitVector.html#a212871312b985f7d7215dd46ba171990">SVF::BitVector</a>
|
|
@@ -658,7 +658,7 @@ $(function() {
|
|
|
658
658
|
: <a class="el" href="classSVF_1_1SymbolTableInfo.html#aff272bc1d00f2e57b7677d1826a31237">SVF::SymbolTableInfo</a>
|
|
659
659
|
</li>
|
|
660
660
|
<li>SymState()
|
|
661
|
-
: <a class="el" href="classSVF_1_1SymState.html#
|
|
661
|
+
: <a class="el" href="classSVF_1_1SymState.html#aee986d8fbccf71a606284d8467f450e4">SVF::SymState</a>
|
|
662
662
|
</li>
|
|
663
663
|
<li>szudzik()
|
|
664
664
|
: <a class="el" href="structSVF_1_1Hash_3_01std_1_1pair_3_01S_00_01T_01_4_01_4.html#adf5f19b1b32c117571fe74035cdcdbe2">SVF::Hash< std::pair< S, T > ></a>
|
|
@@ -106,12 +106,12 @@ $(function() {
|
|
|
106
106
|
<li>icfgNode2PTASVFStmtsMap
|
|
107
107
|
: <a class="el" href="classSVF_1_1SVFIR.html#aaae756185bbd5b7175e96f8928a989c2">SVF::SVFIR</a>
|
|
108
108
|
</li>
|
|
109
|
-
<li>ICFGNode2SVFStmtsMap
|
|
110
|
-
: <a class="el" href="classSVF_1_1SVFIR.html#a4666dabcbeb3f40f96a0694ce2f07eb0">SVF::SVFIR</a>
|
|
111
|
-
</li>
|
|
112
109
|
<li>icfgNode2SVFStmtsMap
|
|
113
110
|
: <a class="el" href="classSVF_1_1SVFIR.html#a86c0c23d854b034d741d9d8891debab7">SVF::SVFIR</a>
|
|
114
111
|
</li>
|
|
112
|
+
<li>ICFGNode2SVFStmtsMap
|
|
113
|
+
: <a class="el" href="classSVF_1_1SVFIR.html#a4666dabcbeb3f40f96a0694ce2f07eb0">SVF::SVFIR</a>
|
|
114
|
+
</li>
|
|
115
115
|
<li>ICFGNodeIDToNodeMapTy
|
|
116
116
|
: <a class="el" href="classSVF_1_1ICFG.html#af1fe5708c6f67fd87fa1edaa6c73ff5d">SVF::ICFG</a>
|
|
117
117
|
</li>
|
|
@@ -116,12 +116,12 @@ $(function() {
|
|
|
116
116
|
<li>LLVMLoopAnalysis()
|
|
117
117
|
: <a class="el" href="classSVF_1_1LLVMLoopAnalysis.html#a93161bbdb47c74fce1d8e54a45df2df8">SVF::LLVMLoopAnalysis</a>
|
|
118
118
|
</li>
|
|
119
|
-
<li>LLVMModuleSet()
|
|
120
|
-
: <a class="el" href="classSVF_1_1LLVMModuleSet.html#a8e70de9eefe2e188b10e214e073750e6">SVF::LLVMModuleSet</a>
|
|
121
|
-
</li>
|
|
122
119
|
<li>llvmModuleSet
|
|
123
120
|
: <a class="el" href="classSVF_1_1LLVMModuleSet.html#ac59b07cafcbacc950eefea4082425b63">SVF::LLVMModuleSet</a>
|
|
124
121
|
</li>
|
|
122
|
+
<li>LLVMModuleSet()
|
|
123
|
+
: <a class="el" href="classSVF_1_1LLVMModuleSet.html#a8e70de9eefe2e188b10e214e073750e6">SVF::LLVMModuleSet</a>
|
|
124
|
+
</li>
|
|
125
125
|
<li>Load
|
|
126
126
|
: <a class="el" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2">SVF::ConstraintEdge</a>
|
|
127
127
|
</li>
|
|
@@ -172,12 +172,12 @@ $(function() {
|
|
|
172
172
|
<li>LoadStmt()
|
|
173
173
|
: <a class="el" href="classSVF_1_1LoadStmt.html#a4bd939005c7c6a5da4ed3b6be6ef1a22">SVF::LoadStmt</a>
|
|
174
174
|
</li>
|
|
175
|
-
<li>LoadsToMRsMap
|
|
176
|
-
: <a class="el" href="classSVF_1_1MRGenerator.html#a273b2634adcfa10a08924517e8d51175">SVF::MRGenerator</a>
|
|
177
|
-
</li>
|
|
178
175
|
<li>loadsToMRsMap
|
|
179
176
|
: <a class="el" href="classSVF_1_1MRGenerator.html#a0d8229b1f0b8428708e923d19096e4ba">SVF::MRGenerator</a>
|
|
180
177
|
</li>
|
|
178
|
+
<li>LoadsToMRsMap
|
|
179
|
+
: <a class="el" href="classSVF_1_1MRGenerator.html#a273b2634adcfa10a08924517e8d51175">SVF::MRGenerator</a>
|
|
180
|
+
</li>
|
|
181
181
|
<li>LoadsToPointsToMap
|
|
182
182
|
: <a class="el" href="classSVF_1_1MRGenerator.html#acfadd565b5c978c9417e059b3ea7588c">SVF::MRGenerator</a>
|
|
183
183
|
</li>
|
|
@@ -456,12 +456,12 @@ $(function() {
|
|
|
456
456
|
<li>opVarBegin()
|
|
457
457
|
: <a class="el" href="classSVF_1_1MultiOpndStmt.html#abebed8985cb4d4d1361c42e5454c90b9">SVF::MultiOpndStmt</a>
|
|
458
458
|
</li>
|
|
459
|
-
<li>OPVars
|
|
460
|
-
: <a class="el" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">SVF::MultiOpndStmt</a>
|
|
461
|
-
</li>
|
|
462
459
|
<li>opVars
|
|
463
460
|
: <a class="el" href="classSVF_1_1MultiOpndStmt.html#a172025849492f4de8f87564ef08f5880">SVF::MultiOpndStmt</a>
|
|
464
461
|
</li>
|
|
462
|
+
<li>OPVars
|
|
463
|
+
: <a class="el" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">SVF::MultiOpndStmt</a>
|
|
464
|
+
</li>
|
|
465
465
|
<li>opVer
|
|
466
466
|
: <a class="el" href="classSVF_1_1MSSACHI.html#a86f2f3f6e2215cdbe31caee048510757">SVF::MSSACHI< Cond ></a>
|
|
467
467
|
</li>
|
|
@@ -86,12 +86,12 @@ $(function() {
|
|
|
86
86
|
<li>PAGEdgeSetTy
|
|
87
87
|
: <a class="el" href="classSVF_1_1SVFStmt.html#a2bdfa37167b5496629e5cae62705d5f2">SVF::SVFStmt</a>
|
|
88
88
|
</li>
|
|
89
|
-
<li>pagEdgeToFunMap
|
|
90
|
-
: <a class="el" href="classSVF_1_1MRGenerator.html#ab250a4950269f57027d8e8ef10089f58">SVF::MRGenerator</a>
|
|
91
|
-
</li>
|
|
92
89
|
<li>PAGEdgeToFunMap
|
|
93
90
|
: <a class="el" href="classSVF_1_1MRGenerator.html#a82be01b460a498c07fb6a8aba853ed31">SVF::MRGenerator</a>
|
|
94
91
|
</li>
|
|
92
|
+
<li>pagEdgeToFunMap
|
|
93
|
+
: <a class="el" href="classSVF_1_1MRGenerator.html#ab250a4950269f57027d8e8ef10089f58">SVF::MRGenerator</a>
|
|
94
|
+
</li>
|
|
95
95
|
<li>PAGEdgeToSetMapTy
|
|
96
96
|
: <a class="el" href="classSVF_1_1SVFStmt.html#a229c78147511f2a581c761552179b6fa">SVF::SVFStmt</a>
|
|
97
97
|
</li>
|
|
@@ -172,12 +172,12 @@ $(function() {
|
|
|
172
172
|
<li>PAGPrint
|
|
173
173
|
: <a class="el" href="classSVF_1_1Options.html#a98df022c5da54ea30b3f0ce008d3ca80">SVF::Options</a>
|
|
174
174
|
</li>
|
|
175
|
-
<li>pagReadFromTxt
|
|
176
|
-
: <a class="el" href="classSVF_1_1SVFModule.html#a2547331e2c32b077d5876e609cb7f48f">SVF::SVFModule</a>
|
|
177
|
-
</li>
|
|
178
175
|
<li>pagReadFromTXT()
|
|
179
176
|
: <a class="el" href="classSVF_1_1SVFModule.html#a1357c876eccedd58b3abe68875b3a570">SVF::SVFModule</a>
|
|
180
177
|
</li>
|
|
178
|
+
<li>pagReadFromTxt
|
|
179
|
+
: <a class="el" href="classSVF_1_1SVFModule.html#a2547331e2c32b077d5876e609cb7f48f">SVF::SVFModule</a>
|
|
180
|
+
</li>
|
|
181
181
|
<li>pairheadmap
|
|
182
182
|
: <a class="el" href="classSVF_1_1MTASVFGBuilder.html#af65f6553c6a7184401e249d777cd520e">SVF::MTASVFGBuilder</a>
|
|
183
183
|
</li>
|
|
@@ -825,12 +825,12 @@ $(function() {
|
|
|
825
825
|
<li>PTAStat()
|
|
826
826
|
: <a class="el" href="classSVF_1_1PTAStat.html#ac9b65b591200c16c420fbd26710b448f">SVF::PTAStat</a>
|
|
827
827
|
</li>
|
|
828
|
-
<li>ptaTy
|
|
829
|
-
: <a class="el" href="classSVF_1_1PointerAnalysis.html#ade83738ac754d5ffc2a3b497b600cad4">SVF::PointerAnalysis</a>
|
|
830
|
-
</li>
|
|
831
828
|
<li>PTATY
|
|
832
829
|
: <a class="el" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85">SVF::PointerAnalysis</a>
|
|
833
830
|
</li>
|
|
831
|
+
<li>ptaTy
|
|
832
|
+
: <a class="el" href="classSVF_1_1PointerAnalysis.html#ade83738ac754d5ffc2a3b497b600cad4">SVF::PointerAnalysis</a>
|
|
833
|
+
</li>
|
|
834
834
|
<li>PTAVector
|
|
835
835
|
: <a class="el" href="classSVF_1_1DDAPass.html#acc7ad5d3266cb3e24fba0b4db186348a">SVF::DDAPass</a>
|
|
836
836
|
, <a class="el" href="classSVF_1_1WPAPass.html#ad4e3d480ebcc6bbbb7bcc8dc3df8663e">SVF::WPAPass</a>
|
|
@@ -899,18 +899,18 @@ $(function() {
|
|
|
899
899
|
<li>ptrsInUncalledFunctions
|
|
900
900
|
: <a class="el" href="classSVF_1_1SVFModule.html#a816a7065cd2cf664626ee023f9dfbd1d">SVF::SVFModule</a>
|
|
901
901
|
</li>
|
|
902
|
-
<li>ptrToBVPtsMap
|
|
903
|
-
: <a class="el" href="classSVF_1_1CondPTAImpl.html#a30b9ee7b1dcd04285f92cf7accd05b2e">SVF::CondPTAImpl< Cond ></a>
|
|
904
|
-
</li>
|
|
905
902
|
<li>PtrToBVPtsMap
|
|
906
903
|
: <a class="el" href="classSVF_1_1CondPTAImpl.html#aba828ca8e2aa2bd71b78be8b45a48c9b">SVF::CondPTAImpl< Cond ></a>
|
|
907
904
|
</li>
|
|
908
|
-
<li>
|
|
909
|
-
: <a class="el" href="classSVF_1_1CondPTAImpl.html#
|
|
905
|
+
<li>ptrToBVPtsMap
|
|
906
|
+
: <a class="el" href="classSVF_1_1CondPTAImpl.html#a30b9ee7b1dcd04285f92cf7accd05b2e">SVF::CondPTAImpl< Cond ></a>
|
|
910
907
|
</li>
|
|
911
908
|
<li>PtrToCPtsMap
|
|
912
909
|
: <a class="el" href="classSVF_1_1CondPTAImpl.html#a5043e9d9255d31777d038c48c809bb09">SVF::CondPTAImpl< Cond ></a>
|
|
913
910
|
</li>
|
|
911
|
+
<li>ptrToCPtsMap
|
|
912
|
+
: <a class="el" href="classSVF_1_1CondPTAImpl.html#a61167fcdb2005090de1b38e53450431a">SVF::CondPTAImpl< Cond ></a>
|
|
913
|
+
</li>
|
|
914
914
|
<li>PtrToNSMap
|
|
915
915
|
: <a class="el" href="classSVF_1_1CondPTAImpl.html#a838c3f2be39d278072f7a9df7c0bcb4d">SVF::CondPTAImpl< Cond ></a>
|
|
916
916
|
</li>
|
|
@@ -800,12 +800,12 @@ $(function() {
|
|
|
800
800
|
<li>StoresToMRsMap
|
|
801
801
|
: <a class="el" href="classSVF_1_1MRGenerator.html#afacb458ca832ef459e873b7d90134a8c">SVF::MRGenerator</a>
|
|
802
802
|
</li>
|
|
803
|
-
<li>StoresToPointsToMap
|
|
804
|
-
: <a class="el" href="classSVF_1_1MRGenerator.html#a357e1654e30b2f91f6ea30ea5a52e91d">SVF::MRGenerator</a>
|
|
805
|
-
</li>
|
|
806
803
|
<li>storesToPointsToMap
|
|
807
804
|
: <a class="el" href="classSVF_1_1MRGenerator.html#a7d86f708743a59aa31c0a9fd6de45dac">SVF::MRGenerator</a>
|
|
808
805
|
</li>
|
|
806
|
+
<li>StoresToPointsToMap
|
|
807
|
+
: <a class="el" href="classSVF_1_1MRGenerator.html#a357e1654e30b2f91f6ea30ea5a52e91d">SVF::MRGenerator</a>
|
|
808
|
+
</li>
|
|
809
809
|
<li>storeTime
|
|
810
810
|
: <a class="el" href="classSVF_1_1FlowSensitive.html#a82b76087363b26fbe749653935569de7">SVF::FlowSensitive</a>
|
|
811
811
|
</li>
|
|
@@ -962,12 +962,12 @@ $(function() {
|
|
|
962
962
|
: <a class="el" href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVF::ProgSlice</a>
|
|
963
963
|
, <a class="el" href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVF::SrcSnkDDA</a>
|
|
964
964
|
</li>
|
|
965
|
-
<li>SVFGNodeToCondMap
|
|
966
|
-
: <a class="el" href="classSVF_1_1ProgSlice.html#adaf0bb2e3104c9d86d997b2e7c93275e">SVF::ProgSlice</a>
|
|
967
|
-
</li>
|
|
968
965
|
<li>svfgNodeToCondMap
|
|
969
966
|
: <a class="el" href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce">SVF::ProgSlice</a>
|
|
970
967
|
</li>
|
|
968
|
+
<li>SVFGNodeToCondMap
|
|
969
|
+
: <a class="el" href="classSVF_1_1ProgSlice.html#adaf0bb2e3104c9d86d997b2e7c93275e">SVF::ProgSlice</a>
|
|
970
|
+
</li>
|
|
971
971
|
<li>SVFGNodeToCSIDMap
|
|
972
972
|
: <a class="el" href="classSVF_1_1LeakChecker.html#a90c7275babe222f006233d2f2d2b6700">SVF::LeakChecker</a>
|
|
973
973
|
</li>
|
|
@@ -1086,7 +1086,7 @@ $(function() {
|
|
|
1086
1086
|
, <a class="el" href="classSVF_1_1CFLGraphBuilder.html#a36c5b874527e7694f7fb2fd7291da0da">SVF::CFLGraphBuilder</a>
|
|
1087
1087
|
, <a class="el" href="classSVF_1_1CFLSolver.html#a06e64c18559b4f311717203ac3fe1fcd">SVF::CFLSolver</a>
|
|
1088
1088
|
, <a class="el" href="classSVF_1_1GrammarBase.html#ad4f53184d04d9f7a737b19f63d002550">SVF::GrammarBase</a>
|
|
1089
|
-
, <a class="el" href="structSVF_1_1GrammarBase_1_1Symbol.html#
|
|
1089
|
+
, <a class="el" href="structSVF_1_1GrammarBase_1_1Symbol.html#ad8268060892644d15b13f84124bc1eaf">SVF::GrammarBase::Symbol</a>
|
|
1090
1090
|
</li>
|
|
1091
1091
|
<li>SymbolInfo()
|
|
1092
1092
|
: <a class="el" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo</a>
|
|
@@ -85,39 +85,39 @@ $(function() {
|
|
|
85
85
|
<li>WordSize
|
|
86
86
|
: <a class="el" href="classSVF_1_1CoreBitVector.html#a63f5e4a36359ae62401e5f8dfecb86a3">SVF::CoreBitVector</a>
|
|
87
87
|
</li>
|
|
88
|
+
<li>WorkList
|
|
89
|
+
: <a class="el" href="classSVF_1_1CFLSolver.html#a194d2c4c801799b0ba9562e33ca5b695">SVF::CFLSolver</a>
|
|
90
|
+
</li>
|
|
88
91
|
<li>worklist
|
|
89
92
|
: <a class="el" href="classSVF_1_1CFLSolver.html#a211bb78846886aa9ccd4b160da81e02e">SVF::CFLSolver</a>
|
|
90
93
|
</li>
|
|
91
94
|
<li>WorkList
|
|
92
|
-
: <a class="el" href="
|
|
93
|
-
, <a class="el" href="classSVF_1_1CHGBuilder.html#a727a1737e7290536b29b05e03d8b85ac">SVF::CHGBuilder</a>
|
|
95
|
+
: <a class="el" href="classSVF_1_1CHGBuilder.html#a727a1737e7290536b29b05e03d8b85ac">SVF::CHGBuilder</a>
|
|
94
96
|
, <a class="el" href="classSVF_1_1CHGraph.html#af1b638faf888898cdf168c25e008ab12">SVF::CHGraph</a>
|
|
95
97
|
, <a class="el" href="classSVF_1_1ConstraintGraph.html#ae80fc7e5d68e103d8f3a82bc9ffb0f00">SVF::ConstraintGraph</a>
|
|
98
|
+
, <a class="el" href="classSVF_1_1GraphReachSolver.html#a472784c3cb958b4347958f039d2fe054">SVF::GraphReachSolver< GraphType, DPIm ></a>
|
|
96
99
|
</li>
|
|
97
100
|
<li>worklist
|
|
98
101
|
: <a class="el" href="classSVF_1_1GraphReachSolver.html#a5032d3988dbce5a29274c55dc4dbe6bc">SVF::GraphReachSolver< GraphType, DPIm ></a>
|
|
99
102
|
</li>
|
|
100
103
|
<li>WorkList
|
|
101
|
-
: <a class="el" href="
|
|
102
|
-
, <a class="el" href="classSVF_1_1ICFGBuilder.html#a2dc4467008cdd6eb896e98b67457082a">SVF::ICFGBuilder</a>
|
|
104
|
+
: <a class="el" href="classSVF_1_1ICFGBuilder.html#a2dc4467008cdd6eb896e98b67457082a">SVF::ICFGBuilder</a>
|
|
103
105
|
, <a class="el" href="classSVF_1_1LeakChecker.html#af1e1f0fd38f72dcdfb5daa3d8af9538b">SVF::LeakChecker</a>
|
|
104
106
|
, <a class="el" href="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">SVF::MRGenerator</a>
|
|
105
107
|
, <a class="el" href="classSVF_1_1SaberSVFGBuilder.html#a8e07c6afc4ae6e2792431065c2948039">SVF::SaberSVFGBuilder</a>
|
|
106
108
|
, <a class="el" href="classSVF_1_1SrcSnkDDA.html#a3c0d8850c4dae49a760ce5f80fb8822a">SVF::SrcSnkDDA</a>
|
|
109
|
+
, <a class="el" href="classSVF_1_1SrcSnkSolver.html#a19861635c58ef6db7347c22daabf80da">SVF::SrcSnkSolver< GraphType, DPIm ></a>
|
|
107
110
|
</li>
|
|
108
111
|
<li>worklist
|
|
109
112
|
: <a class="el" href="classSVF_1_1SrcSnkSolver.html#aeecbd88066567b2f123e84072dd09941">SVF::SrcSnkSolver< GraphType, DPIm ></a>
|
|
113
|
+
, <a class="el" href="classSVF_1_1SVFGOPT.html#a925f39665e13b18dfe66c2dded44c194">SVF::SVFGOPT</a>
|
|
110
114
|
</li>
|
|
111
115
|
<li>WorkList
|
|
112
|
-
: <a class="el" href="
|
|
113
|
-
, <a class="el" href="
|
|
116
|
+
: <a class="el" href="classSVF_1_1SVFGOPT.html#a3ee399dc45e90a512be7575642855f40">SVF::SVFGOPT</a>
|
|
117
|
+
, <a class="el" href="classSVF_1_1WPASolver.html#a624e9156b2d3a4f284548cbaaf650334">SVF::WPASolver< GraphType ></a>
|
|
114
118
|
</li>
|
|
115
119
|
<li>worklist
|
|
116
|
-
: <a class="el" href="
|
|
117
|
-
, <a class="el" href="classSVF_1_1WPASolver.html#a1775717a8c8d5d125b7561bc1ae6abf5">SVF::WPASolver< GraphType ></a>
|
|
118
|
-
</li>
|
|
119
|
-
<li>WorkList
|
|
120
|
-
: <a class="el" href="classSVF_1_1WPASolver.html#a624e9156b2d3a4f284548cbaaf650334">SVF::WPASolver< GraphType ></a>
|
|
120
|
+
: <a class="el" href="classSVF_1_1WPASolver.html#a1775717a8c8d5d125b7561bc1ae6abf5">SVF::WPASolver< GraphType ></a>
|
|
121
121
|
</li>
|
|
122
122
|
<li>WorkStack
|
|
123
123
|
: <a class="el" href="classSVF_1_1CSC.html#a0490b9998987d245ee6e56bc68db4f1e">SVF::CSC</a>
|
|
@@ -75,7 +75,6 @@ $(function() {
|
|
|
75
75
|
</li>
|
|
76
76
|
<li>Addr
|
|
77
77
|
: <a class="el" href="CFLGrammar_8txt.html#a017fa6c558fa1eff0a13180c8340aba8">CFLGrammar.txt</a>
|
|
78
|
-
, <a class="el" href="PEGGrammar_8txt.html#aceb4ff2aa6371c1133bbcd5309b0bed1">PEGGrammar.txt</a>
|
|
79
78
|
</li>
|
|
80
79
|
<li>Addrbar
|
|
81
80
|
: <a class="el" href="PEGGrammar_8txt.html#a43cf87c9fa668dbee3d5e626a136c8fe">PEGGrammar.txt</a>
|