svf-tools 1.0.760 → 1.0.762

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 (38) hide show
  1. package/SVF-doxygen/html/html/CFGrammar_8cpp_source.html +3 -3
  2. package/SVF-doxygen/html/html/CommandLine_8h_source.html +1 -1
  3. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +6 -5
  4. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1199 -1180
  6. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +162 -159
  7. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
  8. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +3 -3
  9. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/SVFFileSystem_8cpp_source.html +1 -1
  11. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +1 -1
  12. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +2 -2
  13. package/SVF-doxygen/html/html/SVFIRExtAPI_8cpp_source.html +93 -101
  14. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +1 -1
  15. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +3 -3
  16. package/SVF-doxygen/html/html/cJSON_8cpp.html +1 -1
  17. package/SVF-doxygen/html/html/cJSON_8cpp_source.html +1 -1
  18. package/SVF-doxygen/html/html/classOption.html +1 -1
  19. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +6 -5
  20. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +3 -3
  21. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +1 -1
  22. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +1206 -1184
  23. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +1 -1
  24. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +1 -1
  25. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +95 -104
  26. package/SVF-doxygen/html/html/classSVF_1_1SVFIRReader.html +1 -1
  27. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +3 -3
  28. package/SVF-doxygen/html/html/extapi_8c.html +221 -219
  29. package/SVF-doxygen/html/html/extapi_8c_source.html +1101 -1255
  30. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +1 -1
  31. package/SVF-doxygen/html/html/svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
  32. package/SVF-doxygen/html/html/svf_2include_2MTA_2MTAResultValidator_8h_source.html +1 -1
  33. package/package.json +1 -1
  34. package/svf/lib/Util/ExtAPI.cpp +3 -2
  35. package/svf-llvm/include/SVF-LLVM/LLVMModule.h +3 -0
  36. package/svf-llvm/lib/LLVMModule.cpp +23 -4
  37. package/svf-llvm/lib/SVFIRExtAPI.cpp +0 -8
  38. package/svf-llvm/lib/extapi.c +3 -156
@@ -1241,7 +1241,7 @@ Additional Inherited Members</h2></td></tr>
1241
1241
  <div class="ttc" id="aclassSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
1242
1242
  <div class="ttc" id="aSVFFileSystem_8cpp_html_ab25baccb41e3b67ef0bfdaa1336c9649"><div class="ttname"><a href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a></div><div class="ttdeci">#define F(f)</div></div>
1243
1243
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a7276e82b4648ed0e1b3d1b8b37b24089"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">SVF::SVFIR::getAllFieldsObjVars</a></div><div class="ttdeci">NodeBS &amp; getAllFieldsObjVars(const MemObj *obj)</div><div class="ttdoc">Get all fields of an object.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00475">SVFIR.cpp:475</a></div></div>
1244
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01122">LLVMModule.cpp:1122</a></div></div>
1244
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01141">LLVMModule.cpp:1141</a></div></div>
1245
1245
  <div class="ttc" id="anamespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
1246
1246
  <div class="ttc" id="aclassSVF_1_1MTAAnnotator_html_a37df9f2416685c535be2faa01e162f3a"><div class="ttname"><a href="classSVF_1_1MTAAnnotator.html#a37df9f2416685c535be2faa01e162f3a">SVF::MTAAnnotator::storeset</a></div><div class="ttdeci">InstSet storeset</div><div class="ttdef"><b>Definition:</b> <a href="MTAAnnotator_8h_source.html#l00092">MTAAnnotator.h:92</a></div></div>
1247
1247
  <div class="ttc" id="aSVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DBUG model of each pass.</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00543">SVFType.h:543</a></div></div>
@@ -1768,7 +1768,7 @@ Static Private Attributes</h2></td></tr>
1768
1768
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a4550f2fb815882edfb666ac818792064"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a4550f2fb815882edfb666ac818792064">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(const std::string &amp;msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00099">SVFUtil.cpp:99</a></div></div>
1769
1769
  <div class="ttc" id="aSVFFileSystem_8cpp_html_ab25baccb41e3b67ef0bfdaa1336c9649"><div class="ttname"><a href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a></div><div class="ttdeci">#define F(f)</div></div>
1770
1770
  <div class="ttc" id="aclassSVF_1_1RaceResultValidator_html_ab1fbb367d32d72841119795e48cfae2d"><div class="ttname"><a href="classSVF_1_1RaceResultValidator.html#ab1fbb367d32d72841119795e48cfae2d">SVF::RaceResultValidator::RC_ACCESS</a></div><div class="ttdeci">static constexpr const char * RC_ACCESS</div><div class="ttdef"><b>Definition:</b> <a href="svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html#l00446">MTAResultValidator.h:446</a></div></div>
1771
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01122">LLVMModule.cpp:1122</a></div></div>
1771
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01141">LLVMModule.cpp:1141</a></div></div>
1772
1772
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a5a7dc8680a9714e08b01dd339b85bb20"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a5a7dc8680a9714e08b01dd339b85bb20">SVF::LLVMUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00046">LLVMUtil.h:46</a></div></div>
1773
1773
  <div class="ttc" id="aclassSVF_1_1RaceResultValidator_html_a90f7d527816acf808e3e54c2a4ed0532"><div class="ttname"><a href="classSVF_1_1RaceResultValidator.html#a90f7d527816acf808e3e54c2a4ed0532">SVF::RaceResultValidator::accessPairs</a></div><div class="ttdeci">std::vector&lt; AccessPair &gt; accessPairs</div><div class="ttdef"><b>Definition:</b> <a href="svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html#l00392">MTAResultValidator.h:392</a></div></div>
1774
1774
  <div class="ttc" id="aclassSVF_1_1SVFValue_html_a7effb0f37f486745e0cdc3ae5e9c732b"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">SVF::SVFValue::getSourceLoc</a></div><div class="ttdeci">virtual const std::string getSourceLoc() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00253">SVFValue.h:253</a></div></div>
@@ -2548,109 +2548,101 @@ Private Attributes</h2></td></tr>
2548
2548
  <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;PointerType&gt;(cs-&gt;getType()))</div>
2549
2549
  <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a140defeb309d895394822f8780deda16">addCopyEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(cs-&gt;getArgOperand(0)), <a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(cs));</div>
2550
2550
  <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div>
2551
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (svfCallee-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>().find(<span class="stringliteral">&quot;_ZNSt5arrayIPK1ALm2EE4backEv&quot;</span>) != std::string::npos)</div>
2551
+ <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(svfCallee-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>().compare(<span class="stringliteral">&quot;dlsym&quot;</span>) == 0)</div>
2552
2552
  <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div>
2553
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dummy = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa7e98cd2fd599aedefa4c2e6fb659da0">addDummyValNode</a>();</div>
2554
- <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> ap1(0);</div>
2555
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a975a752e5296a779840a6c405ad5996b">addNormalGepEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(cs-&gt;getArgOperand(0)), dummy, ap1);</div>
2556
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> ap2(0);</div>
2557
- <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a975a752e5296a779840a6c405ad5996b">addNormalGepEdge</a>(dummy, <a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(cs), ap2);</div>
2558
- <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div>
2559
- <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(svfCallee-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>().compare(<span class="stringliteral">&quot;dlsym&quot;</span>) == 0)</div>
2560
- <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div>
2561
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* src = cs-&gt;getArgOperand(1);</div>
2562
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a>* gep = SVFUtil::dyn_cast&lt;GetElementPtrInst&gt;(src))</div>
2563
- <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; src = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a07bd47ccfd02c5a2a6db26b537b2184f">stripConstantCasts</a>(gep-&gt;getPointerOperand());</div>
2564
- <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; </div>
2565
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">auto</span> getHookFn = [](<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* src)-&gt;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>*</div>
2566
- <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; {</div>
2567
- <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">if</span> (!SVFUtil::isa&lt;GlobalVariable&gt;(src))</div>
2568
- <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
2553
+ <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* src = cs-&gt;getArgOperand(1);</div>
2554
+ <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a>* gep = SVFUtil::dyn_cast&lt;GetElementPtrInst&gt;(src))</div>
2555
+ <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; src = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a07bd47ccfd02c5a2a6db26b537b2184f">stripConstantCasts</a>(gep-&gt;getPointerOperand());</div>
2556
+ <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; </div>
2557
+ <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">auto</span> getHookFn = [](<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* src)-&gt;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>*</div>
2558
+ <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; {</div>
2559
+ <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">if</span> (!SVFUtil::isa&lt;GlobalVariable&gt;(src))</div>
2560
+ <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
2561
+ <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; </div>
2562
+ <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">auto</span> *glob = SVFUtil::cast&lt;GlobalVariable&gt;(src);</div>
2563
+ <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">if</span> (!glob-&gt;hasInitializer() || !SVFUtil::isa&lt;ConstantDataArray&gt;(glob-&gt;getInitializer()))</div>
2564
+ <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
2565
+ <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; </div>
2566
+ <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">auto</span> *constarray = SVFUtil::cast&lt;ConstantDataArray&gt;(glob-&gt;getInitializer());</div>
2567
+ <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a76b0d0ac69c170838cfc8ee26f4518a0">LLVMUtil::getProgFunction</a>(constarray-&gt;getAsCString().str());</div>
2568
+ <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; };</div>
2569
2569
  <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; </div>
2570
- <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">auto</span> *glob = SVFUtil::cast&lt;GlobalVariable&gt;(src);</div>
2571
- <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">if</span> (!glob-&gt;hasInitializer() || !SVFUtil::isa&lt;ConstantDataArray&gt;(glob-&gt;getInitializer()))</div>
2572
- <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
2573
- <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; </div>
2574
- <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">auto</span> *constarray = SVFUtil::cast&lt;ConstantDataArray&gt;(glob-&gt;getInitializer());</div>
2575
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a76b0d0ac69c170838cfc8ee26f4518a0">LLVMUtil::getProgFunction</a>(constarray-&gt;getAsCString().str());</div>
2576
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; };</div>
2577
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; </div>
2578
- <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fn = getHookFn(src))</div>
2579
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; {</div>
2580
- <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcNode = <a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(fn);</div>
2581
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a140defeb309d895394822f8780deda16">addCopyEdge</a>(srcNode, <a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(cs));</div>
2582
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div>
2583
- <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div>
2584
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(svfCallee-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>().find(<span class="stringliteral">&quot;_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_&quot;</span>) != std::string::npos)</div>
2585
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; {</div>
2586
- <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; assert(svfCall-&gt;<a class="code" href="classSVF_1_1SVFCallInst.html#a496d0e963f0f6a4f9c08183fa91792b0">arg_size</a>() == 4 &amp;&amp; <span class="stringliteral">&quot;_Rb_tree_insert_and_rebalance should have 4 arguments.\n&quot;</span>);</div>
2570
+ <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fn = getHookFn(src))</div>
2571
+ <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div>
2572
+ <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcNode = <a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(fn);</div>
2573
+ <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a140defeb309d895394822f8780deda16">addCopyEdge</a>(srcNode, <a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(cs));</div>
2574
+ <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div>
2575
+ <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div>
2576
+ <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(svfCallee-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>().find(<span class="stringliteral">&quot;_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_&quot;</span>) != std::string::npos)</div>
2577
+ <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div>
2578
+ <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; assert(svfCall-&gt;<a class="code" href="classSVF_1_1SVFCallInst.html#a496d0e963f0f6a4f9c08183fa91792b0">arg_size</a>() == 4 &amp;&amp; <span class="stringliteral">&quot;_Rb_tree_insert_and_rebalance should have 4 arguments.\n&quot;</span>);</div>
2579
+ <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; </div>
2580
+ <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">// We have vArg3 points to the entry of _Rb_tree_node_base { color; parent; left; right; }.</span></div>
2581
+ <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="comment">// Now we calculate the offset from base to vArg3</span></div>
2582
+ <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vnArg3 = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(svfCall-&gt;<a class="code" href="classSVF_1_1SVFCallInst.html#a3cbb4b4089c8b27d01da15f2d2f22e14">getArgOperand</a>(3));</div>
2583
+ <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a7c401d6929e583be734c0c4e9957d0d7">getAccessPathFromBaseNode</a>(vnArg3).<a class="code" href="classSVF_1_1AccessPath.html#a68e49bb797a84ea035ea338549f2e054">getConstantFieldIdx</a>();</div>
2584
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; </div>
2585
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="comment">// We get all flattened fields of base</span></div>
2586
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; vector&lt;AccessPath&gt; fields = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#adb6db6407bdc9a39e5bf8cd941f0ad15">getTypeLocSetsMap</a>(vnArg3).second;</div>
2587
2587
  <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; </div>
2588
- <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="comment">// We have vArg3 points to the entry of _Rb_tree_node_base { color; parent; left; right; }.</span></div>
2589
- <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="comment">// Now we calculate the offset from base to vArg3</span></div>
2590
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vnArg3 = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(svfCall-&gt;<a class="code" href="classSVF_1_1SVFCallInst.html#a3cbb4b4089c8b27d01da15f2d2f22e14">getArgOperand</a>(3));</div>
2591
- <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a7c401d6929e583be734c0c4e9957d0d7">getAccessPathFromBaseNode</a>(vnArg3).<a class="code" href="classSVF_1_1AccessPath.html#a68e49bb797a84ea035ea338549f2e054">getConstantFieldIdx</a>();</div>
2592
- <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; </div>
2593
- <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="comment">// We get all flattened fields of base</span></div>
2594
- <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; vector&lt;AccessPath&gt; fields = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#adb6db6407bdc9a39e5bf8cd941f0ad15">getTypeLocSetsMap</a>(vnArg3).second;</div>
2595
- <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; </div>
2596
- <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="comment">// We summarize the side effects: arg3-&gt;parent = arg1, arg3-&gt;left = arg1, arg3-&gt;right = arg1</span></div>
2597
- <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// Note that arg0 is aligned with &quot;offset&quot;.</span></div>
2598
- <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> i = <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> + 1; i &lt;= <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> + 3; ++i)</div>
2599
- <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; {</div>
2600
- <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">if</span>((<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>)i &gt;= fields.size())</div>
2601
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">break</span>;</div>
2602
- <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* elementType = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a9f7c24325d897b598d6b989fdc4aae1e">getSymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a806ae865d29c4b05b69c499284758c6f">getFlatternedElemType</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#adb6db6407bdc9a39e5bf8cd941f0ad15">getTypeLocSetsMap</a>(vnArg3).first,</div>
2603
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; fields[i].getConstantFieldIdx());</div>
2604
- <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vnD = <a class="code" href="classSVF_1_1SVFIRBuilder.html#ae4516ec05eabece1bc8e0cad1ec8cf1c">getGepValVar</a>(cs-&gt;getArgOperand(3), fields[i], elementType);</div>
2605
- <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vnS = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(svfCall-&gt;<a class="code" href="classSVF_1_1SVFCallInst.html#a3cbb4b4089c8b27d01da15f2d2f22e14">getArgOperand</a>(1));</div>
2606
- <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">if</span>(vnD &amp;&amp; vnS)</div>
2607
- <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a30f043eeca79259d84b97e265110f018">addStoreEdge</a>(vnS,vnD);</div>
2608
- <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div>
2609
- <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div>
2610
- <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; </div>
2611
- <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c2abeb363081381c3dc939ab511e3f0">isThreadForkCall</a>(svfInst))</div>
2612
- <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; {</div>
2613
- <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* forkedFun = SVFUtil::dyn_cast&lt;SVFFunction&gt;(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2790c5289dad1d6e80f7597a2ea458ab">getForkedFun</a>(svfInst)))</div>
2614
- <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div>
2615
- <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; forkedFun = forkedFun-&gt;getDefFunForMultipleModule();</div>
2616
- <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* actualParm = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8c64663b564eb7c399013389920ab500">getActualParmAtForkSite</a>(svfInst);</div>
2617
- <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; assert((forkedFun-&gt;arg_size() &lt;= 2) &amp;&amp; <span class="stringliteral">&quot;Size of formal parameter of start routine should be one&quot;</span>);</div>
2618
- <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">if</span> (forkedFun-&gt;arg_size() &lt;= 2 &amp;&amp; forkedFun-&gt;arg_size() &gt;= 1)</div>
2619
- <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; {</div>
2620
- <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* formalParm = forkedFun-&gt;getArg(0);</div>
2621
- <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">if</span> (actualParm-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-&gt;<a class="code" href="classSVF_1_1SVFType.html#a870b63af2bf9fe43cdf1df3d56b20f6c">isPointerTy</a>() &amp;&amp; formalParm-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-&gt;<a class="code" href="classSVF_1_1SVFType.html#a870b63af2bf9fe43cdf1df3d56b20f6c">isPointerTy</a>())</div>
2622
- <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; {</div>
2623
- <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *icfgNode = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">getCallICFGNode</a>(svfInst);</div>
2624
- <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a> *entry = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a0dca4655c2f6112a5be1f921b8e81076">getFunEntryICFGNode</a>(forkedFun);</div>
2625
- <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a54636413fd3ed7e634ac7428139966a4">addThreadForkEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(actualParm), <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(formalParm), icfgNode, entry);</div>
2626
- <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; }</div>
2627
- <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div>
2628
- <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div>
2629
- <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">else</span></div>
2630
- <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; {</div>
2631
- <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div>
2632
- <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div>
2633
- <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; </div>
2634
- <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a28fbb7cc51eb7e25d88f43e3eb1f30fb">isHareParForCall</a>(svfInst))</div>
2635
- <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; {</div>
2636
- <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* taskFunc = SVFUtil::dyn_cast&lt;SVFFunction&gt;(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a5cee46f58bdab3f9b1c698e97290152f">getTaskFuncAtHareParForSite</a>(svfInst)))</div>
2637
- <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; {</div>
2638
- <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; assert((taskFunc-&gt;arg_size() == 3) &amp;&amp; <span class="stringliteral">&quot;Size of formal parameter of hare_parallel_for&#39;s task routine should be 3&quot;</span>);</div>
2639
- <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* actualParm = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2f74db48793a0db76c000ffecf9e1bd2">getTaskDataAtHareParForSite</a>(svfInst);</div>
2640
- <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* formalParm = taskFunc-&gt;getArg(0);</div>
2641
- <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">if</span> (actualParm-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-&gt;<a class="code" href="classSVF_1_1SVFType.html#a870b63af2bf9fe43cdf1df3d56b20f6c">isPointerTy</a>() &amp;&amp; formalParm-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-&gt;<a class="code" href="classSVF_1_1SVFType.html#a870b63af2bf9fe43cdf1df3d56b20f6c">isPointerTy</a>())</div>
2642
- <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div>
2643
- <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *icfgNode = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">getCallICFGNode</a>(svfInst);</div>
2644
- <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a> *entry = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a0dca4655c2f6112a5be1f921b8e81076">getFunEntryICFGNode</a>(taskFunc);</div>
2645
- <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a54636413fd3ed7e634ac7428139966a4">addThreadForkEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(actualParm), <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(formalParm), icfgNode, entry);</div>
2646
- <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div>
2647
- <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div>
2648
- <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">else</span></div>
2649
- <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; {</div>
2650
- <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div>
2651
- <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div>
2652
- <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; </div>
2653
- <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;}</div>
2588
+ <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="comment">// We summarize the side effects: arg3-&gt;parent = arg1, arg3-&gt;left = arg1, arg3-&gt;right = arg1</span></div>
2589
+ <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="comment">// Note that arg0 is aligned with &quot;offset&quot;.</span></div>
2590
+ <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> i = <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> + 1; i &lt;= <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> + 3; ++i)</div>
2591
+ <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; {</div>
2592
+ <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">if</span>((<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>)i &gt;= fields.size())</div>
2593
+ <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">break</span>;</div>
2594
+ <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* elementType = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a9f7c24325d897b598d6b989fdc4aae1e">getSymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a806ae865d29c4b05b69c499284758c6f">getFlatternedElemType</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#adb6db6407bdc9a39e5bf8cd941f0ad15">getTypeLocSetsMap</a>(vnArg3).first,</div>
2595
+ <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; fields[i].getConstantFieldIdx());</div>
2596
+ <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vnD = <a class="code" href="classSVF_1_1SVFIRBuilder.html#ae4516ec05eabece1bc8e0cad1ec8cf1c">getGepValVar</a>(cs-&gt;getArgOperand(3), fields[i], elementType);</div>
2597
+ <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vnS = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(svfCall-&gt;<a class="code" href="classSVF_1_1SVFCallInst.html#a3cbb4b4089c8b27d01da15f2d2f22e14">getArgOperand</a>(1));</div>
2598
+ <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">if</span>(vnD &amp;&amp; vnS)</div>
2599
+ <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a30f043eeca79259d84b97e265110f018">addStoreEdge</a>(vnS,vnD);</div>
2600
+ <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</div>
2601
+ <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div>
2602
+ <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; </div>
2603
+ <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c2abeb363081381c3dc939ab511e3f0">isThreadForkCall</a>(svfInst))</div>
2604
+ <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {</div>
2605
+ <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* forkedFun = SVFUtil::dyn_cast&lt;SVFFunction&gt;(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2790c5289dad1d6e80f7597a2ea458ab">getForkedFun</a>(svfInst)))</div>
2606
+ <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; {</div>
2607
+ <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; forkedFun = forkedFun-&gt;getDefFunForMultipleModule();</div>
2608
+ <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* actualParm = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8c64663b564eb7c399013389920ab500">getActualParmAtForkSite</a>(svfInst);</div>
2609
+ <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; assert((forkedFun-&gt;arg_size() &lt;= 2) &amp;&amp; <span class="stringliteral">&quot;Size of formal parameter of start routine should be one&quot;</span>);</div>
2610
+ <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">if</span> (forkedFun-&gt;arg_size() &lt;= 2 &amp;&amp; forkedFun-&gt;arg_size() &gt;= 1)</div>
2611
+ <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div>
2612
+ <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* formalParm = forkedFun-&gt;getArg(0);</div>
2613
+ <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">if</span> (actualParm-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-&gt;<a class="code" href="classSVF_1_1SVFType.html#a870b63af2bf9fe43cdf1df3d56b20f6c">isPointerTy</a>() &amp;&amp; formalParm-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-&gt;<a class="code" href="classSVF_1_1SVFType.html#a870b63af2bf9fe43cdf1df3d56b20f6c">isPointerTy</a>())</div>
2614
+ <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; {</div>
2615
+ <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *icfgNode = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">getCallICFGNode</a>(svfInst);</div>
2616
+ <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a> *entry = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a0dca4655c2f6112a5be1f921b8e81076">getFunEntryICFGNode</a>(forkedFun);</div>
2617
+ <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a54636413fd3ed7e634ac7428139966a4">addThreadForkEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(actualParm), <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(formalParm), icfgNode, entry);</div>
2618
+ <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div>
2619
+ <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; }</div>
2620
+ <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div>
2621
+ <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">else</span></div>
2622
+ <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; {</div>
2623
+ <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div>
2624
+ <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; }</div>
2625
+ <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; </div>
2626
+ <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a28fbb7cc51eb7e25d88f43e3eb1f30fb">isHareParForCall</a>(svfInst))</div>
2627
+ <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; {</div>
2628
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* taskFunc = SVFUtil::dyn_cast&lt;SVFFunction&gt;(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a5cee46f58bdab3f9b1c698e97290152f">getTaskFuncAtHareParForSite</a>(svfInst)))</div>
2629
+ <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; {</div>
2630
+ <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; assert((taskFunc-&gt;arg_size() == 3) &amp;&amp; <span class="stringliteral">&quot;Size of formal parameter of hare_parallel_for&#39;s task routine should be 3&quot;</span>);</div>
2631
+ <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* actualParm = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2f74db48793a0db76c000ffecf9e1bd2">getTaskDataAtHareParForSite</a>(svfInst);</div>
2632
+ <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* formalParm = taskFunc-&gt;getArg(0);</div>
2633
+ <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">if</span> (actualParm-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-&gt;<a class="code" href="classSVF_1_1SVFType.html#a870b63af2bf9fe43cdf1df3d56b20f6c">isPointerTy</a>() &amp;&amp; formalParm-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-&gt;<a class="code" href="classSVF_1_1SVFType.html#a870b63af2bf9fe43cdf1df3d56b20f6c">isPointerTy</a>())</div>
2634
+ <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; {</div>
2635
+ <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *icfgNode = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">getCallICFGNode</a>(svfInst);</div>
2636
+ <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a> *entry = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a0dca4655c2f6112a5be1f921b8e81076">getFunEntryICFGNode</a>(taskFunc);</div>
2637
+ <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html#a54636413fd3ed7e634ac7428139966a4">addThreadForkEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(actualParm), <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(formalParm), icfgNode, entry);</div>
2638
+ <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div>
2639
+ <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div>
2640
+ <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">else</span></div>
2641
+ <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; {</div>
2642
+ <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div>
2643
+ <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div>
2644
+ <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; </div>
2645
+ <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;}</div>
2654
2646
  </div><!-- fragment -->
2655
2647
  </div>
2656
2648
  </div>
@@ -4737,7 +4729,7 @@ Private Attributes</h2></td></tr>
4737
4729
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a8f3cb8a1db34dd692ee04561f4edeebf"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a8f3cb8a1db34dd692ee04561f4edeebf">SVF::SymbolTableInfo::valSyms</a></div><div class="ttdeci">ValueToIDMapTy &amp; valSyms()</div><div class="ttdoc">Get different kinds of syms maps.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00260">SymbolTableInfo.h:260</a></div></div>
4738
4730
  <div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html_a6ca1b9d5bb267806f8aaae5a94ed36cc"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a6ca1b9d5bb267806f8aaae5a94ed36cc">SVF::SVFIRBuilder::svfModule</a></div><div class="ttdeci">SVFModule * svfModule</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00051">SVFIRBuilder.h:51</a></div></div>
4739
4731
  <div class="ttc" id="aclassSVF_1_1LLVMLoopAnalysis_html"><div class="ttname"><a href="classSVF_1_1LLVMLoopAnalysis.html">SVF::LLVMLoopAnalysis</a></div><div class="ttdef"><b>Definition:</b> <a href="LLVMLoopAnalysis_8h_source.html#l00039">LLVMLoopAnalysis.h:39</a></div></div>
4740
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a5f0bd932f3129a9c565f3a09711f7b99"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">SVF::LLVMModuleSet::getSVFType</a></div><div class="ttdeci">SVFType * getSVFType(const Type *T)</div><div class="ttdoc">Get or create SVFType and typeinfo.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01159">LLVMModule.cpp:1159</a></div></div>
4732
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a5f0bd932f3129a9c565f3a09711f7b99"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">SVF::LLVMModuleSet::getSVFType</a></div><div class="ttdeci">SVFType * getSVFType(const Type *T)</div><div class="ttdoc">Get or create SVFType and typeinfo.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01178">LLVMModule.cpp:1178</a></div></div>
4741
4733
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ad8ee8de153df3f1bbdebb67185a2731c"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">SVF::LLVMUtil::isConstantObjSym</a></div><div class="ttdeci">bool isConstantObjSym(const SVFValue *val)</div><div class="ttdoc">Check whether this value points-to a constant object.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00766">LLVMUtil.cpp:766</a></div></div>
4742
4734
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_aa54b93ebf36944b548aaa74dbf8a144f"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa54b93ebf36944b548aaa74dbf8a144f">SVF::SVFIR::addCopyStmt</a></div><div class="ttdeci">CopyStmt * addCopyStmt(NodeID src, NodeID dst)</div><div class="ttdoc">Add Copy edge.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00064">SVFIR.cpp:64</a></div></div>
4743
4735
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a50fc24901350df9db890ba16a9b87e33"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">SVF::LLVMModuleSet::getSVFFunction</a></div><div class="ttdeci">SVFFunction * getSVFFunction(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00198">LLVMModule.h:198</a></div></div>
@@ -4793,7 +4785,7 @@ Private Attributes</h2></td></tr>
4793
4785
  <div class="ttc" id="aclassSVF_1_1ICFG_html_aaf521832909781894659725300cf4f49"><div class="ttname"><a href="classSVF_1_1ICFG.html#aaf521832909781894659725300cf4f49">SVF::ICFG::getIntraICFGNode</a></div><div class="ttdeci">IntraICFGNode * getIntraICFGNode(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00259">ICFG.cpp:259</a></div></div>
4794
4786
  <div class="ttc" id="aclassSVF_1_1AccessPath_html_a68e49bb797a84ea035ea338549f2e054"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a68e49bb797a84ea035ea338549f2e054">SVF::AccessPath::getConstantFieldIdx</a></div><div class="ttdeci">APOffset getConstantFieldIdx() const</div><div class="ttdoc">Get methods.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00098">AccessPath.h:98</a></div></div>
4795
4787
  <div class="ttc" id="aclassSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
4796
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ac1a9d20d62066ec4e181fad223669e32"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">SVF::LLVMModuleSet::getContext</a></div><div class="ttdeci">LLVMContext &amp; getContext() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00329">LLVMModule.h:329</a></div></div>
4788
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ac1a9d20d62066ec4e181fad223669e32"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">SVF::LLVMModuleSet::getContext</a></div><div class="ttdeci">LLVMContext &amp; getContext() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00332">LLVMModule.h:332</a></div></div>
4797
4789
  <div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html_a4e1b6797df3e7b98da876f50741e6a3a"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a4e1b6797df3e7b98da876f50741e6a3a">SVF::SVFIRBuilder::addGepEdge</a></div><div class="ttdeci">void addGepEdge(NodeID src, NodeID dst, const AccessPath &amp;ap, bool constGep)</div><div class="ttdoc">Add Gep edge.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00378">SVFIRBuilder.h:378</a></div></div>
4798
4790
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a2f74db48793a0db76c000ffecf9e1bd2"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2f74db48793a0db76c000ffecf9e1bd2">SVF::SVFUtil::getTaskDataAtHareParForSite</a></div><div class="ttdeci">const SVFValue * getTaskDataAtHareParForSite(const CallSite cs)</div><div class="ttdoc">Return the task data argument of the parallel_for routine.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00633">SVFUtil.h:633</a></div></div>
4799
4791
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_adb6db6407bdc9a39e5bf8cd941f0ad15"><div class="ttname"><a href="classSVF_1_1SVFIR.html#adb6db6407bdc9a39e5bf8cd941f0ad15">SVF::SVFIR::getTypeLocSetsMap</a></div><div class="ttdeci">SVFTypeLocSetsPair &amp; getTypeLocSetsMap(NodeID argId)</div><div class="ttdoc">Given an arg NodeId, get its base SVFType* and all its field location sets.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00230">SVFIR.h:230</a></div></div>
@@ -4929,7 +4921,7 @@ Private Attributes</h2></td></tr>
4929
4921
  <div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html_a1717e26e29f50096b96d7e4c43fe1c76"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a1717e26e29f50096b96d7e4c43fe1c76">SVF::SVFIRBuilder::addNullPtrNode</a></div><div class="ttdeci">NodeID addNullPtrNode()</div><div class="ttdoc">Add NullPtr PAGNode.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00271">SVFIRBuilder.h:271</a></div></div>
4930
4922
  <div class="ttc" id="aclassSVF_1_1GenericNode_html_a2f5471985dfe62bc9ded830a693ab153"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a2f5471985dfe62bc9ded830a693ab153">SVF::GenericNode::iterator</a></div><div class="ttdeci">GEdgeSetTy::iterator iterator</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00154">GenericGraph.h:154</a></div></div>
4931
4923
  <div class="ttc" id="aclassSVF_1_1ICFGEdge_html_a395c34788e98950bc43e8cb44313e429a3486c9d9a182f2ba5d986fe74439ec2e"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429a3486c9d9a182f2ba5d986fe74439ec2e">SVF::ICFGEdge::CallCF</a></div><div class="ttdeci">@ CallCF</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00056">ICFGEdge.h:56</a></div></div>
4932
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01122">LLVMModule.cpp:1122</a></div></div>
4924
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01141">LLVMModule.cpp:1141</a></div></div>
4933
4925
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a2790c5289dad1d6e80f7597a2ea458ab"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2790c5289dad1d6e80f7597a2ea458ab">SVF::SVFUtil::getForkedFun</a></div><div class="ttdeci">const SVFValue * getForkedFun(const CallSite cs)</div><div class="ttdoc">Return thread fork function.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00413">SVFUtil.h:413</a></div></div>
4934
4926
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ab5fc50624b5fe83b676b14bec4b99685"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ab5fc50624b5fe83b676b14bec4b99685">SVF::LLVMUtil::isGepConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isGepConstantExpr(const Value *val)</div><div class="ttdoc">Return corresponding constant expression, otherwise return nullptr.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00231">LLVMUtil.h:231</a></div></div>
4935
4927
  <div class="ttc" id="aclassSVF_1_1Options_html_a18dd95e01a50aa82165c46a3801053c5"><div class="ttname"><a href="classSVF_1_1Options.html#a18dd95e01a50aa82165c46a3801053c5">SVF::Options::ModelConsts</a></div><div class="ttdeci">static const Option&lt; bool &gt; ModelConsts</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00218">Options.h:218</a></div></div>
@@ -4957,7 +4949,6 @@ Private Attributes</h2></td></tr>
4957
4949
  <div class="ttc" id="aclassSVF_1_1SVFValue_html_a7effb0f37f486745e0cdc3ae5e9c732b"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">SVF::SVFValue::getSourceLoc</a></div><div class="ttdeci">virtual const std::string getSourceLoc() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00253">SVFValue.h:253</a></div></div>
4958
4950
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a7eb14738f0cf08cc8b5c623c953db4ba"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7eb14738f0cf08cc8b5c623c953db4ba">SVF::SVFIR::addCmpStmt</a></div><div class="ttdeci">CmpStmt * addCmpStmt(NodeID op1, NodeID op2, NodeID dst, u32_t predict)</div><div class="ttdoc">Add Copy edge.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00127">SVFIR.cpp:127</a></div></div>
4959
4951
  <div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html_a3ccc53ca9a6862674ee2ec3bd67aa515"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a3ccc53ca9a6862674ee2ec3bd67aa515">SVF::SVFIRBuilder::handleDirectCall</a></div><div class="ttdeci">void handleDirectCall(CallBase *cs, const Function *F)</div><div class="ttdoc">Handle direct call.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00996">SVFIRBuilder.cpp:996</a></div></div>
4960
- <div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html_a975a752e5296a779840a6c405ad5996b"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a975a752e5296a779840a6c405ad5996b">SVF::SVFIRBuilder::addNormalGepEdge</a></div><div class="ttdeci">void addNormalGepEdge(NodeID src, NodeID dst, const AccessPath &amp;ap)</div><div class="ttdoc">Add Offset(Gep) edge.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00384">SVFIRBuilder.h:384</a></div></div>
4961
4952
  <div class="ttc" id="aclassSVF_1_1SVFCallInst_html_a496d0e963f0f6a4f9c08183fa91792b0"><div class="ttname"><a href="classSVF_1_1SVFCallInst.html#a496d0e963f0f6a4f9c08183fa91792b0">SVF::SVFCallInst::arg_size</a></div><div class="ttdeci">u32_t arg_size() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00700">SVFValue.h:700</a></div></div>
4962
4953
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aa0b3e34188f721ff7145e47cb607c79a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aa0b3e34188f721ff7145e47cb607c79a">SVF::LLVMUtil::isCmpConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isCmpConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00295">LLVMUtil.h:295</a></div></div>
4963
4954
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_abba4111230f6009bbf50518ee36a9870"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">SVF::LLVMUtil::getPtrElementType</a></div><div class="ttdeci">static Type * getPtrElementType(const PointerType *pty)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00119">LLVMUtil.h:119</a></div></div>
@@ -6425,7 +6425,7 @@ template&lt;typename T &gt; </div>
6425
6425
  <div class="ttc" id="aSVFFileSystem_8cpp_html_a30d1c3675b87f06ba8a58a010ae55fec"><div class="ttname"><a href="SVFFileSystem_8cpp.html#a30d1c3675b87f06ba8a58a010ae55fec">READ_CREATE_EDGE_FWD</a></div><div class="ttdeci">#define READ_CREATE_EDGE_FWD(GType)</div></div>
6426
6426
  <div class="ttc" id="aclassSVF_1_1SVFIRReader_html_a0dbb50e2c4a8806a741e0c4173c445b8"><div class="ttname"><a href="classSVF_1_1SVFIRReader.html#a0dbb50e2c4a8806a741e0c4173c445b8">SVF::SVFIRReader::irGraphReader</a></div><div class="ttdeci">IRGraphReader irGraphReader</div><div class="ttdef"><b>Definition:</b> <a href="SVFFileSystem_8h_source.html#l01040">SVFFileSystem.h:1040</a></div></div>
6427
6427
  <div class="ttc" id="anamespaceSVF_html_ac6a83809ca246bc7a33de3da6b4a4354"><div class="ttname"><a href="namespaceSVF.html#ac6a83809ca246bc7a33de3da6b4a4354">SVF::jsonIsObject</a></div><div class="ttdeci">bool jsonIsObject(const cJSON *item)</div><div class="ttdef"><b>Definition:</b> <a href="SVFFileSystem_8cpp_source.html#l00864">SVFFileSystem.cpp:864</a></div></div>
6428
- <div class="ttc" id="aextapi_8c_html_aa7d767d03ce3929978c28f64e3a4b222"><div class="ttname"><a href="extapi_8c.html#aa7d767d03ce3929978c28f64e3a4b222">strtoul</a></div><div class="ttdeci">unsigned long int strtoul(const char *str, char **endptr, int base)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l01305">extapi.c:1305</a></div></div>
6428
+ <div class="ttc" id="aextapi_8c_html_aa7d767d03ce3929978c28f64e3a4b222"><div class="ttname"><a href="extapi_8c.html#aa7d767d03ce3929978c28f64e3a4b222">strtoul</a></div><div class="ttdeci">unsigned long int strtoul(const char *str, char **endptr, int base)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l01152">extapi.c:1152</a></div></div>
6429
6429
  <div class="ttc" id="aclassSVF_1_1NodeIDAllocator_html_a8cf553cd07768aad3f3b91bf3d7c6228"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator.html#a8cf553cd07768aad3f3b91bf3d7c6228">SVF::NodeIDAllocator::Strategy</a></div><div class="ttdeci">Strategy</div><div class="ttdoc">Allocation strategy to use.</div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8h_source.html#l00027">NodeIDAllocator.h:27</a></div></div>
6430
6430
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00081">SymbolTableInfo.cpp:81</a></div></div>
6431
6431
  <div class="ttc" id="aclassSVF_1_1GenericEdge_html_a93dec4c27088242a4b1b6aa82cea46b9"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#a93dec4c27088242a4b1b6aa82cea46b9">SVF::GenericEdge::EdgeKindMask</a></div><div class="ttdeci">static constexpr u64_t EdgeKindMask</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00133">GenericGraph.h:133</a></div></div>
@@ -1568,7 +1568,7 @@ Friends</h2></td></tr>
1568
1568
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a0d7588578735679773493ff2d5e458e1"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a0d7588578735679773493ff2d5e458e1">SVF::SVFUtil::increaseStackSize</a></div><div class="ttdeci">void increaseStackSize()</div><div class="ttdoc">Increase the stack size limit.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00227">SVFUtil.cpp:227</a></div></div>
1569
1569
  <div class="ttc" id="aclassSVF_1_1StInfo_html_a518c82138fcadc6634980566c1c0f762"><div class="ttname"><a href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762">SVF::StInfo::getNumOfFlattenElements</a></div><div class="ttdeci">u32_t getNumOfFlattenElements() const</div><div class="ttdoc">Return number of elements after flattening (including array elements)</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00225">SVFType.h:225</a></div></div>
1570
1570
  <div class="ttc" id="anamespaceSVF_html_a412280b134578905248ce0122c5db7c9"><div class="ttname"><a href="namespaceSVF.html#a412280b134578905248ce0122c5db7c9">SVF::SwitchInst</a></div><div class="ttdeci">llvm::SwitchInst SwitchInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00153">BasicTypes.h:153</a></div></div>
1571
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a5f0bd932f3129a9c565f3a09711f7b99"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">SVF::LLVMModuleSet::getSVFType</a></div><div class="ttdeci">SVFType * getSVFType(const Type *T)</div><div class="ttdoc">Get or create SVFType and typeinfo.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01159">LLVMModule.cpp:1159</a></div></div>
1571
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a5f0bd932f3129a9c565f3a09711f7b99"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">SVF::LLVMModuleSet::getSVFType</a></div><div class="ttdeci">SVFType * getSVFType(const Type *T)</div><div class="ttdoc">Get or create SVFType and typeinfo.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01178">LLVMModule.cpp:1178</a></div></div>
1572
1572
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ad8ee8de153df3f1bbdebb67185a2731c"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">SVF::LLVMUtil::isConstantObjSym</a></div><div class="ttdeci">bool isConstantObjSym(const SVFValue *val)</div><div class="ttdoc">Check whether this value points-to a constant object.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00766">LLVMUtil.cpp:766</a></div></div>
1573
1573
  <div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_abc8b35d432db78bd5282010c7c800d70"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#abc8b35d432db78bd5282010c7c800d70">SVF::SymbolTableBuilder::collectVal</a></div><div class="ttdeci">void collectVal(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00288">SymbolTableBuilder.cpp:288</a></div></div>
1574
1574
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a50fc24901350df9db890ba16a9b87e33"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">SVF::LLVMModuleSet::getSVFFunction</a></div><div class="ttdeci">SVFFunction * getSVFFunction(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00198">LLVMModule.h:198</a></div></div>
@@ -1597,7 +1597,7 @@ Friends</h2></td></tr>
1597
1597
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ae62938f722543d6d7fc201b685be1abf"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">SVF::SVFUtil::isStaticExtCall</a></div><div class="ttdeci">bool isStaticExtCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00497">SVFUtil.h:497</a></div></div>
1598
1598
  <div class="ttc" id="anamespaceSVF_html_ac9a05dd7ab16e998625037aa242cd30f"><div class="ttname"><a href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">SVF::BranchInst</a></div><div class="ttdeci">llvm::BranchInst BranchInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00152">BasicTypes.h:152</a></div></div>
1599
1599
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a837d19c740902c419206287bdb21273b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a837d19c740902c419206287bdb21273b">SVF::LLVMUtil::getUniqueUseViaCastInst</a></div><div class="ttdeci">const Value * getUniqueUseViaCastInst(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00339">LLVMUtil.cpp:339</a></div></div>
1600
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ac1a9d20d62066ec4e181fad223669e32"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">SVF::LLVMModuleSet::getContext</a></div><div class="ttdeci">LLVMContext &amp; getContext() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00329">LLVMModule.h:329</a></div></div>
1600
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ac1a9d20d62066ec4e181fad223669e32"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">SVF::LLVMModuleSet::getContext</a></div><div class="ttdeci">LLVMContext &amp; getContext() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00332">LLVMModule.h:332</a></div></div>
1601
1601
  <div class="ttc" id="anamespaceSVF_html_a146d286041987860388da3d8bc85cee3"><div class="ttname"><a href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">SVF::ArrayType</a></div><div class="ttdeci">llvm::ArrayType ArrayType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00093">BasicTypes.h:93</a></div></div>
1602
1602
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_ab582424fdb6d9674c1bd4466cdfbe497"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497">SVF::SymbolTableInfo::constantSymID</a></div><div class="ttdeci">SymID constantSymID() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00193">SymbolTableInfo.h:193</a></div></div>
1603
1603
  <div class="ttc" id="aclassSVF_1_1ObjTypeInfo_html"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html">SVF::ObjTypeInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00473">SymbolTableInfo.h:473</a></div></div>
@@ -1664,7 +1664,7 @@ Friends</h2></td></tr>
1664
1664
  <div class="ttc" id="aclassSVF_1_1ObjTypeInfo_html_a91b41b7ade5871362b77a2ef566b2830ad2ba0edfac1460f3fd89e7a6c4c4691b"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830ad2ba0edfac1460f3fd89e7a6c4c4691b">SVF::ObjTypeInfo::GLOBVAR_OBJ</a></div><div class="ttdeci">@ GLOBVAR_OBJ</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00483">SymbolTableInfo.h:483</a></div></div>
1665
1665
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a89e9c6da843e5eef25c51afd5d0937e5"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a89e9c6da843e5eef25c51afd5d0937e5">SVF::SymbolTableInfo::getModelConstants</a></div><div class="ttdeci">bool getModelConstants() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00134">SymbolTableInfo.h:134</a></div></div>
1666
1666
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a93ac673b885633849fa484938405ca75"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">SVF::SVFUtil::isHeapAllocExtCall</a></div><div class="ttdeci">bool isHeapAllocExtCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00462">SVFUtil.h:462</a></div></div>
1667
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01122">LLVMModule.cpp:1122</a></div></div>
1667
+ <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01141">LLVMModule.cpp:1141</a></div></div>
1668
1668
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a6c5f2f951463494af2e7b0d3267f2772"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a6c5f2f951463494af2e7b0d3267f2772">SVF::LLVMUtil::getRefTypeOfHeapAllocOrStatic</a></div><div class="ttdeci">const PointerType * getRefTypeOfHeapAllocOrStatic(const CallBase *cs)</div><div class="ttdoc">Get the reference type of heap/static object from an allocation site.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00131">LLVMUtil.h:131</a></div></div>
1669
1669
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ab5fc50624b5fe83b676b14bec4b99685"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ab5fc50624b5fe83b676b14bec4b99685">SVF::LLVMUtil::isGepConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isGepConstantExpr(const Value *val)</div><div class="ttdoc">Return corresponding constant expression, otherwise return nullptr.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00231">LLVMUtil.h:231</a></div></div>
1670
1670
  <div class="ttc" id="aclassSVF_1_1Options_html_aaab923c093730b1670a54f09340b1bd5"><div class="ttname"><a href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">SVF::Options::MaxFieldLimit</a></div><div class="ttdeci">static const Option&lt; u32_t &gt; MaxFieldLimit</div><div class="ttdoc">Maximum number of field derivations for an object.</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00038">Options.h:38</a></div></div>