svf-tools 1.0.759 → 1.0.761
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/CMakeLists.txt +2 -2
- package/SVF-doxygen/html/html/CFGrammar_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CommandLine_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +6 -5
- package/SVF-doxygen/html/html/SVFFileSystem_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRExtAPI_8cpp_source.html +92 -100
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/cJSON_8cpp.html +1 -1
- package/SVF-doxygen/html/html/cJSON_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/classOption.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +92 -101
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRReader.html +1 -1
- package/SVF-doxygen/html/html/dir_3bbf4ce25bc1411b817b5643b794c8fb.html +2 -0
- package/SVF-doxygen/html/html/dir_fee120689dee99ef16f8bfcaa7a76083.html +0 -2
- package/SVF-doxygen/html/html/extapi_8c.html +223 -221
- package/SVF-doxygen/html/html/extapi_8c_source.html +1103 -1257
- package/SVF-doxygen/html/html/files.html +38 -38
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +1 -1
- package/SVF-doxygen/html/html/search/all_12.js +1 -1
- package/SVF-doxygen/html/html/search/all_13.js +1 -1
- package/package.json +1 -1
- package/svf/lib/Util/ExtAPI.cpp +3 -2
- package/svf-llvm/lib/SVFIRExtAPI.cpp +0 -8
- package/{svf/lib/Util → svf-llvm/lib}/extapi.c +3 -156
|
@@ -1772,9 +1772,9 @@ template<typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
|
|
|
1772
1772
|
<div class="ttc" id="anamespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00097">SVFType.h:97</a></div></div>
|
|
1773
1773
|
<div class="ttc" id="acJSON_8cpp_html_a65e9886d74aaee76545e83dd09011727"><div class="ttname"><a href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a></div><div class="ttdeci">#define false</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00070">cJSON.cpp:70</a></div></div>
|
|
1774
1774
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a7583350e892c62a454de8a8317e4c1b8"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a7583350e892c62a454de8a8317e4c1b8">SVF::GrammarBase::insertTerminalSymbol</a></div><div class="ttdeci">Symbol insertTerminalSymbol(std::string strLit)</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8cpp_source.html#l00280">CFGrammar.cpp:280</a></div></div>
|
|
1775
|
-
<div class="ttc" id="aextapi_8c_html_a3fa45b35c8abf67a950b6d3d4063dede"><div class="ttname"><a href="extapi_8c.html#a3fa45b35c8abf67a950b6d3d4063dede">isdigit</a></div><div class="ttdeci">int isdigit(int c)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#
|
|
1775
|
+
<div class="ttc" id="aextapi_8c_html_a3fa45b35c8abf67a950b6d3d4063dede"><div class="ttname"><a href="extapi_8c.html#a3fa45b35c8abf67a950b6d3d4063dede">isdigit</a></div><div class="ttdeci">int isdigit(int c)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l01038">extapi.c:1038</a></div></div>
|
|
1776
1776
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a63389968c8d246a84562a8d17e08790b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a63389968c8d246a84562a8d17e08790b">SVF::GrammarBase::insertNonTerminalSymbol</a></div><div class="ttdeci">Symbol insertNonTerminalSymbol(std::string strLit)</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8cpp_source.html#l00249">CFGrammar.cpp:249</a></div></div>
|
|
1777
|
-
<div class="ttc" id="aextapi_8c_html_adadd6582d46775aab6a51e29d16d9f77"><div class="ttname"><a href="extapi_8c.html#adadd6582d46775aab6a51e29d16d9f77">isupper</a></div><div class="ttdeci">int isupper(int c)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#
|
|
1777
|
+
<div class="ttc" id="aextapi_8c_html_adadd6582d46775aab6a51e29d16d9f77"><div class="ttname"><a href="extapi_8c.html#adadd6582d46775aab6a51e29d16d9f77">isupper</a></div><div class="ttdeci">int isupper(int c)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l01068">extapi.c:1068</a></div></div>
|
|
1778
1778
|
<div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
1779
1779
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a7909a5f90ed1678a178f18259f0b66a9"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a7909a5f90ed1678a178f18259f0b66a9">SVF::GrammarBase::EBNFSigns</a></div><div class="ttdeci">Map< std::string, Kind > EBNFSigns</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8h_source.html#l00283">CFGrammar.h:283</a></div></div>
|
|
1780
1780
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_adc1413dc2e875a6e74bdb5b985cdd39f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#adc1413dc2e875a6e74bdb5b985cdd39f">SVF::GrammarBase::EdgeKindMaskBits</a></div><div class="ttdeci">static constexpr unsigned char EdgeKindMaskBits</div><div class="ttdoc">We use the lower 8 bits to denote edge kind.</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8h_source.html#l00276">CFGrammar.h:276</a></div></div>
|
|
@@ -1782,7 +1782,7 @@ template<typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
|
|
|
1782
1782
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a760208fb9737e766deb79d593ab86a3c"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a760208fb9737e766deb79d593ab86a3c">SVF::GrammarBase::Symbol</a></div><div class="ttdeci">struct SVF::GrammarBase::Symbol Symbol</div></div>
|
|
1783
1783
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_ac9f86b0861e93eee2548aa7f5f3b7b7f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac9f86b0861e93eee2548aa7f5f3b7b7f">SVF::GrammarBase::totalKind</a></div><div class="ttdeci">u32_t totalKind</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8h_source.html#l00287">CFGrammar.h:287</a></div></div>
|
|
1784
1784
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a7aef5c42fbd8a62dd4a541cc0e8e8187"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">SVF::GrammarBase::Kind</a></div><div class="ttdeci">u32_t Kind</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8h_source.html#l00039">CFGrammar.h:39</a></div></div>
|
|
1785
|
-
<div class="ttc" id="aextapi_8c_html_af947cbf1ae303e5297c9d68c68a6b9cb"><div class="ttname"><a href="extapi_8c.html#af947cbf1ae303e5297c9d68c68a6b9cb">isalpha</a></div><div class="ttdeci">int isalpha(int character)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#
|
|
1785
|
+
<div class="ttc" id="aextapi_8c_html_af947cbf1ae303e5297c9d68c68a6b9cb"><div class="ttname"><a href="extapi_8c.html#af947cbf1ae303e5297c9d68c68a6b9cb">isalpha</a></div><div class="ttdeci">int isalpha(int character)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l01023">extapi.c:1023</a></div></div>
|
|
1786
1786
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a7707662599fe848ae6526802be4f7b6c"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a7707662599fe848ae6526802be4f7b6c">SVF::GrammarBase::kindToAttrsMap</a></div><div class="ttdeci">Map< Kind, Set< Attribute > > kindToAttrsMap</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8h_source.html#l00285">CFGrammar.h:285</a></div></div>
|
|
1787
1787
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_ab070e5449d26e347b957d8b994d0303f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">SVF::GrammarBase::Attribute</a></div><div class="ttdeci">u32_t Attribute</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8h_source.html#l00040">CFGrammar.h:40</a></div></div>
|
|
1788
1788
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a0e99f099b675baae8d1e84b453ee05e0"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a0e99f099b675baae8d1e84b453ee05e0">SVF::GrammarBase::extractAttributeStrFromSymbolStr</a></div><div class="ttdeci">std::string extractAttributeStrFromSymbolStr(const std::string &symbolStr) const</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8cpp_source.html#l00219">CFGrammar.cpp:219</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>  <span class="keywordflow">if</span>(SVFUtil::isa<PointerType>(cs->getType()))</div>
|
|
2549
2549
|
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="classSVF_1_1SVFIRBuilder.html#a140defeb309d895394822f8780deda16">addCopyEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#acc69fc638380f34164db649d9bf2a7d6">getValueNode</a>(cs->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>  }</div>
|
|
2551
|
-
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>
|
|
2551
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(svfCallee-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>().compare(<span class="stringliteral">"dlsym"</span>) == 0)</div>
|
|
2552
2552
|
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  {</div>
|
|
2553
|
-
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <
|
|
2554
|
-
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <a class="code" href="
|
|
2555
|
-
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> 
|
|
2556
|
-
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> 
|
|
2557
|
-
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="
|
|
2558
|
-
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> 
|
|
2559
|
-
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> 
|
|
2560
|
-
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> 
|
|
2561
|
-
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> 
|
|
2562
|
-
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> 
|
|
2563
|
-
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> 
|
|
2564
|
-
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  </div>
|
|
2565
|
-
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> 
|
|
2566
|
-
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> 
|
|
2567
|
-
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">
|
|
2568
|
-
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> 
|
|
2553
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* src = cs->getArgOperand(1);</div>
|
|
2554
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a>* gep = SVFUtil::dyn_cast<GetElementPtrInst>(src))</div>
|
|
2555
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  src = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a07bd47ccfd02c5a2a6db26b537b2184f">stripConstantCasts</a>(gep->getPointerOperand());</div>
|
|
2556
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  </div>
|
|
2557
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keyword">auto</span> getHookFn = [](<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* src)-><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>  {</div>
|
|
2559
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">if</span> (!SVFUtil::isa<GlobalVariable>(src))</div>
|
|
2560
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
2561
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  </div>
|
|
2562
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keyword">auto</span> *glob = SVFUtil::cast<GlobalVariable>(src);</div>
|
|
2563
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">if</span> (!glob->hasInitializer() || !SVFUtil::isa<ConstantDataArray>(glob->getInitializer()))</div>
|
|
2564
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
2565
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  </div>
|
|
2566
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keyword">auto</span> *constarray = SVFUtil::cast<ConstantDataArray>(glob->getInitializer());</div>
|
|
2567
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a76b0d0ac69c170838cfc8ee26f4518a0">LLVMUtil::getProgFunction</a>(constarray->getAsCString().str());</div>
|
|
2568
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  };</div>
|
|
2569
2569
|
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  </div>
|
|
2570
|
-
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> 
|
|
2571
|
-
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> 
|
|
2572
|
-
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> 
|
|
2573
|
-
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  </div>
|
|
2574
|
-
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> 
|
|
2575
|
-
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> 
|
|
2576
|
-
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> 
|
|
2577
|
-
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> 
|
|
2578
|
-
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> 
|
|
2579
|
-
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> 
|
|
2580
|
-
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> 
|
|
2581
|
-
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> 
|
|
2582
|
-
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> 
|
|
2583
|
-
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> 
|
|
2584
|
-
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> 
|
|
2585
|
-
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> 
|
|
2586
|
-
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> 
|
|
2570
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <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>  {</div>
|
|
2572
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <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>  <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>  }</div>
|
|
2575
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div>
|
|
2576
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(svfCallee-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>().find(<span class="stringliteral">"_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_"</span>) != std::string::npos)</div>
|
|
2577
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  {</div>
|
|
2578
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  assert(svfCall-><a class="code" href="classSVF_1_1SVFCallInst.html#a496d0e963f0f6a4f9c08183fa91792b0">arg_size</a>() == 4 && <span class="stringliteral">"_Rb_tree_insert_and_rebalance should have 4 arguments.\n"</span>);</div>
|
|
2579
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  </div>
|
|
2580
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <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>  <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>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vnArg3 = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(svfCall-><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>  <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>  </div>
|
|
2585
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <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>  vector<AccessPath> fields = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-><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>  </div>
|
|
2588
|
-
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="comment">// We
|
|
2589
|
-
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="comment">//
|
|
2590
|
-
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <
|
|
2591
|
-
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> 
|
|
2592
|
-
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  </div>
|
|
2593
|
-
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> 
|
|
2594
|
-
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> 
|
|
2595
|
-
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> 
|
|
2596
|
-
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> 
|
|
2597
|
-
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> 
|
|
2598
|
-
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> 
|
|
2599
|
-
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> 
|
|
2600
|
-
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> 
|
|
2601
|
-
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> 
|
|
2602
|
-
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> 
|
|
2603
|
-
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> 
|
|
2604
|
-
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> 
|
|
2605
|
-
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> 
|
|
2606
|
-
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> 
|
|
2607
|
-
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> 
|
|
2608
|
-
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> 
|
|
2609
|
-
<div class="line"><a name="
|
|
2610
|
-
<div class="line"><a name="
|
|
2611
|
-
<div class="line"><a name="
|
|
2612
|
-
<div class="line"><a name="
|
|
2613
|
-
<div class="line"><a name="
|
|
2614
|
-
<div class="line"><a name="
|
|
2615
|
-
<div class="line"><a name="
|
|
2616
|
-
<div class="line"><a name="
|
|
2617
|
-
<div class="line"><a name="
|
|
2618
|
-
<div class="line"><a name="
|
|
2619
|
-
<div class="line"><a name="
|
|
2620
|
-
<div class="line"><a name="
|
|
2621
|
-
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> 
|
|
2622
|
-
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> 
|
|
2623
|
-
<div class="line"><a name="
|
|
2624
|
-
<div class="line"><a name="
|
|
2625
|
-
<div class="line"><a name="
|
|
2626
|
-
<div class="line"><a name="
|
|
2627
|
-
<div class="line"><a name="
|
|
2628
|
-
<div class="line"><a name="
|
|
2629
|
-
<div class="line"><a name="
|
|
2630
|
-
<div class="line"><a name="
|
|
2631
|
-
<div class="line"><a name="
|
|
2632
|
-
<div class="line"><a name="
|
|
2633
|
-
<div class="line"><a name="
|
|
2634
|
-
<div class="line"><a name="
|
|
2635
|
-
<div class="line"><a name="
|
|
2636
|
-
<div class="line"><a name="
|
|
2637
|
-
<div class="line"><a name="
|
|
2638
|
-
<div class="line"><a name="
|
|
2639
|
-
<div class="line"><a name="
|
|
2640
|
-
<div class="line"><a name="
|
|
2641
|
-
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> 
|
|
2642
|
-
<div class="line"><a name="
|
|
2643
|
-
<div class="line"><a name="
|
|
2644
|
-
<div class="line"><a name="
|
|
2645
|
-
<div class="line"><a name="
|
|
2646
|
-
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  }</div>
|
|
2647
|
-
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  }</div>
|
|
2648
|
-
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">else</span></div>
|
|
2649
|
-
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  {</div>
|
|
2650
|
-
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  }</div>
|
|
2651
|
-
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  }</div>
|
|
2652
|
-
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  </div>
|
|
2653
|
-
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> }</div>
|
|
2588
|
+
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="comment">// We summarize the side effects: arg3->parent = arg1, arg3->left = arg1, arg3->right = arg1</span></div>
|
|
2589
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="comment">// Note that arg0 is aligned with "offset".</span></div>
|
|
2590
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <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 <= <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>  {</div>
|
|
2592
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keywordflow">if</span>((<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>)i >= fields.size())</div>
|
|
2593
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">break</span>;</div>
|
|
2594
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <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>-><a class="code" href="classSVF_1_1IRGraph.html#a9f7c24325d897b598d6b989fdc4aae1e">getSymbolInfo</a>()-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a806ae865d29c4b05b69c499284758c6f">getFlatternedElemType</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-><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>  fields[i].getConstantFieldIdx());</div>
|
|
2596
|
+
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vnD = <a class="code" href="classSVF_1_1SVFIRBuilder.html#ae4516ec05eabece1bc8e0cad1ec8cf1c">getGepValVar</a>(cs->getArgOperand(3), fields[i], elementType);</div>
|
|
2597
|
+
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vnS = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(svfCall-><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>  <span class="keywordflow">if</span>(vnD && vnS)</div>
|
|
2599
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <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>  }</div>
|
|
2601
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div>
|
|
2602
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  </div>
|
|
2603
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <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>  {</div>
|
|
2605
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* forkedFun = SVFUtil::dyn_cast<SVFFunction>(<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>  {</div>
|
|
2607
|
+
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  forkedFun = forkedFun->getDefFunForMultipleModule();</div>
|
|
2608
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <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>  assert((forkedFun->arg_size() <= 2) && <span class="stringliteral">"Size of formal parameter of start routine should be one"</span>);</div>
|
|
2610
|
+
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">if</span> (forkedFun->arg_size() <= 2 && forkedFun->arg_size() >= 1)</div>
|
|
2611
|
+
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  {</div>
|
|
2612
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* formalParm = forkedFun->getArg(0);</div>
|
|
2613
|
+
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">if</span> (actualParm-><a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a870b63af2bf9fe43cdf1df3d56b20f6c">isPointerTy</a>() && formalParm-><a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-><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>  {</div>
|
|
2615
|
+
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *icfgNode = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>()-><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>  <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a> *entry = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>()-><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>  <a class="code" href="classSVF_1_1SVFIRBuilder.html#a54636413fd3ed7e634ac7428139966a4">addThreadForkEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(actualParm), <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-><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>  }</div>
|
|
2619
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  }</div>
|
|
2620
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  }</div>
|
|
2621
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">else</span></div>
|
|
2622
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  {</div>
|
|
2623
|
+
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  }</div>
|
|
2624
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  }</div>
|
|
2625
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  </div>
|
|
2626
|
+
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <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>  {</div>
|
|
2628
|
+
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* taskFunc = SVFUtil::dyn_cast<SVFFunction>(<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>  {</div>
|
|
2630
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  assert((taskFunc->arg_size() == 3) && <span class="stringliteral">"Size of formal parameter of hare_parallel_for's task routine should be 3"</span>);</div>
|
|
2631
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <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>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* formalParm = taskFunc->getArg(0);</div>
|
|
2633
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">if</span> (actualParm-><a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a870b63af2bf9fe43cdf1df3d56b20f6c">isPointerTy</a>() && formalParm-><a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-><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>  {</div>
|
|
2635
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *icfgNode = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>()-><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>  <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a> *entry = <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>()-><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>  <a class="code" href="classSVF_1_1SVFIRBuilder.html#a54636413fd3ed7e634ac7428139966a4">addThreadForkEdge</a>(<a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(actualParm), <a class="code" href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">pag</a>-><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>  }</div>
|
|
2639
|
+
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  }</div>
|
|
2640
|
+
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">else</span></div>
|
|
2641
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  {</div>
|
|
2642
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  }</div>
|
|
2643
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  }</div>
|
|
2644
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  </div>
|
|
2645
|
+
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> }</div>
|
|
2654
2646
|
</div><!-- fragment -->
|
|
2655
2647
|
</div>
|
|
2656
2648
|
</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 &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<typename T > </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#
|
|
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>
|
|
@@ -78,6 +78,8 @@ Files</h2></td></tr>
|
|
|
78
78
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
79
79
|
<tr class="memitem:DCHG_8cpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="DCHG_8cpp.html">DCHG.cpp</a> <a href="DCHG_8cpp_source.html">[code]</a></td></tr>
|
|
80
80
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
81
|
+
<tr class="memitem:extapi_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="extapi_8c.html">extapi.c</a> <a href="extapi_8c_source.html">[code]</a></td></tr>
|
|
82
|
+
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
81
83
|
<tr class="memitem:ICFGBuilder_8cpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="ICFGBuilder_8cpp.html">ICFGBuilder.cpp</a> <a href="ICFGBuilder_8cpp_source.html">[code]</a></td></tr>
|
|
82
84
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
83
85
|
<tr class="memitem:LLVMLoopAnalysis_8cpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="LLVMLoopAnalysis_8cpp.html">LLVMLoopAnalysis.cpp</a> <a href="LLVMLoopAnalysis_8cpp_source.html">[code]</a></td></tr>
|
|
@@ -82,8 +82,6 @@ Files</h2></td></tr>
|
|
|
82
82
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
83
83
|
<tr class="memitem:CppUtil_8cpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="CppUtil_8cpp.html">CppUtil.cpp</a> <a href="CppUtil_8cpp_source.html">[code]</a></td></tr>
|
|
84
84
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
85
|
-
<tr class="memitem:extapi_8c"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="extapi_8c.html">extapi.c</a> <a href="extapi_8c_source.html">[code]</a></td></tr>
|
|
86
|
-
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
87
85
|
<tr class="memitem:ExtAPI_8cpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="ExtAPI_8cpp.html">ExtAPI.cpp</a> <a href="ExtAPI_8cpp_source.html">[code]</a></td></tr>
|
|
88
86
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
89
87
|
<tr class="memitem:NodeIDAllocator_8cpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="NodeIDAllocator_8cpp.html">NodeIDAllocator.cpp</a> <a href="NodeIDAllocator_8cpp_source.html">[code]</a></td></tr>
|