svf-tools 1.0.798 → 1.0.799
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/DCHG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/LLVMModule_8cpp_source.html +2 -2
- package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/LLVMUtil_8h_source.html +138 -135
- package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SymbolTableBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1DCHGraph.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +2 -2
- package/SVF-doxygen/html/namespaceSVF_1_1LLVMUtil.html +42 -39
- package/package.json +1 -1
- package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +7 -4
|
@@ -1373,7 +1373,7 @@ $(function() {
|
|
|
1373
1373
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_a0a8831a5429005ff9d71adbd6bf3994f"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">SVF::GenericGraph< DCHNode, DCHEdge >::addGNode</a></div><div class="ttdeci">void addGNode(NodeID id, NodeType *node)</div><div class="ttdoc">Add a Node.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00399">GenericGraph.h:399</a></div></div>
|
|
1374
1374
|
<div class="ttc" id="anamespaceSVF_html_a09f5fa3bc44bf53612a085e3a611cc4e"><div class="ttname"><a href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">SVF::GlobalVariable</a></div><div class="ttdeci">llvm::GlobalVariable GlobalVariable</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00128">BasicTypes.h:128</a></div></div>
|
|
1375
1375
|
<div class="ttc" id="aclassSVF_1_1DCHGraph_html_a6d97a772afe16c1483e65eea81f82603"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#a6d97a772afe16c1483e65eea81f82603">SVF::DCHGraph::handleTypedef</a></div><div class="ttdeci">void handleTypedef(const DIType *typedefType)</div><div class="ttdoc">Attaches the typedef(s) to the base node.</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8cpp_source.html#l00137">DCHG.cpp:137</a></div></div>
|
|
1376
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a63222955897ba34e921b9cfd8a2a3619"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a63222955897ba34e921b9cfd8a2a3619">SVF::LLVMUtil::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction(const std::string &name)</div><div class="ttdoc">Get the corresponding Function based on its name.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1376
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a63222955897ba34e921b9cfd8a2a3619"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a63222955897ba34e921b9cfd8a2a3619">SVF::LLVMUtil::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction(const std::string &name)</div><div class="ttdoc">Get the corresponding Function based on its name.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00405">LLVMUtil.h:405</a></div></div>
|
|
1377
1377
|
<div class="ttc" id="aSVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
|
|
1378
1378
|
<div class="ttc" id="aclassSVF_1_1DCHGraph_html_a9d2be5aec5216cbc1d1709b41f79c44b"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#a9d2be5aec5216cbc1d1709b41f79c44b">SVF::DCHGraph::isAgg</a></div><div class="ttdeci">static bool isAgg(const DIType *t)</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8cpp_source.html#l00344">DCHG.cpp:344</a></div></div>
|
|
1379
1379
|
<div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
@@ -1564,7 +1564,7 @@ $(function() {
|
|
|
1564
1564
|
<div class="ttc" id="aclassSVF_1_1SVFConstant_html"><div class="ttname"><a href="classSVF_1_1SVFConstant.html">SVF::SVFConstant</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00822">SVFValue.h:822</a></div></div>
|
|
1565
1565
|
<div class="ttc" id="anamespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00085">BasicTypes.h:85</a></div></div>
|
|
1566
1566
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a3a23aa54459a068e16c96e5b5eb72f77"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a3a23aa54459a068e16c96e5b5eb72f77">SVF::LLVMUtil::getVCallVtblPtr</a></div><div class="ttdeci">const Value * getVCallVtblPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01118">LLVMUtil.cpp:1118</a></div></div>
|
|
1567
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1567
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00411">LLVMUtil.h:411</a></div></div>
|
|
1568
1568
|
<div class="ttc" id="anamespaceSVF_html_a2bf58575ac7d068e0f1a4cf953b9e6cb"><div class="ttname"><a href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">SVF::StructType</a></div><div class="ttdeci">llvm::StructType StructType</div><div class="ttdoc">LLVM types.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00092">BasicTypes.h:92</a></div></div>
|
|
1569
1569
|
<div class="ttc" id="anamespaceSVF_html_a2b28f48dde0a9a91d251e654ce1f9477"><div class="ttname"><a href="namespaceSVF.html#a2b28f48dde0a9a91d251e654ce1f9477">SVF::ConstantStruct</a></div><div class="ttdeci">llvm::ConstantStruct ConstantStruct</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00104">BasicTypes.h:104</a></div></div>
|
|
1570
1570
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00297">SVFValue.h:297</a></div></div>
|
|
@@ -1584,7 +1584,7 @@ $(function() {
|
|
|
1584
1584
|
<div class="ttc" id="aSVFModule_8h_html"><div class="ttname"><a href="SVFModule_8h.html">SVFModule.h</a></div></div>
|
|
1585
1585
|
<div class="ttc" id="aclassSVF_1_1StInfo_html_a1a07c2b1415c29d7d70791c6dfe602a3"><div class="ttname"><a href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">SVF::StInfo::setNumOfFieldsAndElems</a></div><div class="ttdeci">void setNumOfFieldsAndElems(u32_t nf, u32_t ne)</div><div class="ttdoc">Set number of fields and elements of an aggregate.</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00218">SVFType.h:218</a></div></div>
|
|
1586
1586
|
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a58a764c27354d5f9b70995d30de65f1d"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a58a764c27354d5f9b70995d30de65f1d">SVF::ExtAPI::getExtAPI</a></div><div class="ttdeci">static ExtAPI * getExtAPI()</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00040">ExtAPI.cpp:40</a></div></div>
|
|
1587
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9e0c786488dfdc4605d4cbcf9943c85a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">SVF::LLVMUtil::getGlobalRep</a></div><div class="ttdeci">const Value * getGlobalRep(const Value *val)</div><div class="ttdoc">find the unique defined global across multiple modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1587
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9e0c786488dfdc4605d4cbcf9943c85a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">SVF::LLVMUtil::getGlobalRep</a></div><div class="ttdeci">const Value * getGlobalRep(const Value *val)</div><div class="ttdoc">find the unique defined global across multiple modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00418">LLVMUtil.h:418</a></div></div>
|
|
1588
1588
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a8af6b911b728713f66f7c809d5c0fbf1"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8af6b911b728713f66f7c809d5c0fbf1">SVF::LLVMModuleSet::addSVFMain</a></div><div class="ttdeci">void addSVFMain()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00646">LLVMModule.cpp:646</a></div></div>
|
|
1589
1589
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a8ba9092747108e0289014d52465a692d"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8ba9092747108e0289014d52465a692d">SVF::LLVMModuleSet::initDomTree</a></div><div class="ttdeci">void initDomTree(SVFFunction *func, const Function *f)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00358">LLVMModule.cpp:358</a></div></div>
|
|
1590
1590
|
<div class="ttc" id="anamespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00082">BasicTypes.h:82</a></div></div>
|
|
@@ -1367,7 +1367,7 @@ $(function() {
|
|
|
1367
1367
|
<div class="ttc" id="anamespaceSVF_1_1cppUtil_html_a745a2addadc136075d45c7fb8437af3e"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a745a2addadc136075d45c7fb8437af3e">SVF::cppUtil::demangle</a></div><div class="ttdeci">struct DemangledName demangle(const std::string &name)</div><div class="ttdef"><b>Definition:</b> <a href="CppUtil_8cpp_source.html#l00153">CppUtil.cpp:153</a></div></div>
|
|
1368
1368
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a3a23aa54459a068e16c96e5b5eb72f77"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a3a23aa54459a068e16c96e5b5eb72f77">SVF::LLVMUtil::getVCallVtblPtr</a></div><div class="ttdeci">const Value * getVCallVtblPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01118">LLVMUtil.cpp:1118</a></div></div>
|
|
1369
1369
|
<div class="ttc" id="acJSON_8cpp_html_a930920b2bc42824a5c03be681830f4b2"><div class="ttname"><a href="cJSON_8cpp.html#a930920b2bc42824a5c03be681830f4b2">true</a></div><div class="ttdeci">return true</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02295">cJSON.cpp:2295</a></div></div>
|
|
1370
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1370
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00411">LLVMUtil.h:411</a></div></div>
|
|
1371
1371
|
<div class="ttc" id="anamespaceSVF_html_a2bf58575ac7d068e0f1a4cf953b9e6cb"><div class="ttname"><a href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">SVF::StructType</a></div><div class="ttdeci">llvm::StructType StructType</div><div class="ttdoc">LLVM types.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00092">BasicTypes.h:92</a></div></div>
|
|
1372
1372
|
<div class="ttc" id="anamespaceSVF_html_a2b28f48dde0a9a91d251e654ce1f9477"><div class="ttname"><a href="namespaceSVF.html#a2b28f48dde0a9a91d251e654ce1f9477">SVF::ConstantStruct</a></div><div class="ttdeci">llvm::ConstantStruct ConstantStruct</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00104">BasicTypes.h:104</a></div></div>
|
|
1373
1373
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00297">SVFValue.h:297</a></div></div>
|
|
@@ -181,7 +181,7 @@ $(function() {
|
|
|
181
181
|
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870"> 119</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* pty)</div>
|
|
182
182
|
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> {</div>
|
|
183
183
|
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor">#if (LLVM_VERSION_MAJOR < 14)</span></div>
|
|
184
|
-
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">return</span> pty->
|
|
184
|
+
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">return</span> pty->getPointerElementType();</div>
|
|
185
185
|
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="preprocessor">#else</span></div>
|
|
186
186
|
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  assert(!pty->isOpaque() && <span class="stringliteral">"Opaque Pointer is used, please recompile the source adding '-Xclang -no-opaque-pointers'"</span>);</div>
|
|
187
187
|
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">return</span> pty->getNonOpaquePointerElementType();</div>
|
|
@@ -409,141 +409,144 @@ $(function() {
|
|
|
409
409
|
<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a276a85b292038a197a525e08e9252c92"> 384</a></span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a276a85b292038a197a525e08e9252c92">SVFType2ByteSize</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
|
|
410
410
|
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> {</div>
|
|
411
411
|
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">llvm::Type</a>* llvm_rhs = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a610a7777a48132caadec167c8109f044">getLLVMType</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
|
|
412
|
-
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <
|
|
413
|
-
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <
|
|
414
|
-
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="
|
|
415
|
-
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> 
|
|
416
|
-
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> 
|
|
417
|
-
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> 
|
|
418
|
-
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> 
|
|
419
|
-
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> 
|
|
420
|
-
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> 
|
|
421
|
-
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> 
|
|
422
|
-
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> 
|
|
423
|
-
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> 
|
|
424
|
-
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> 
|
|
425
|
-
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> 
|
|
426
|
-
<div class="line"><a name="
|
|
427
|
-
<div class="line"><a name="
|
|
428
|
-
<div class="line"><a name="
|
|
429
|
-
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> 
|
|
430
|
-
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> 
|
|
431
|
-
<div class="line"><a name="
|
|
432
|
-
<div class="line"><a name="
|
|
433
|
-
<div class="line"><a name="
|
|
434
|
-
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> 
|
|
435
|
-
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> 
|
|
436
|
-
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  </div>
|
|
437
|
-
<div class="line"><a name="
|
|
438
|
-
<div class="line"><a name="
|
|
439
|
-
<div class="line"><a name="
|
|
440
|
-
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> 
|
|
441
|
-
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> 
|
|
442
|
-
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> 
|
|
443
|
-
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> 
|
|
444
|
-
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> 
|
|
445
|
-
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> 
|
|
446
|
-
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> 
|
|
447
|
-
<div class="line"><a name="
|
|
412
|
+
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">llvm::PointerType</a>* llvm_rhs_ptr = SVFUtil::dyn_cast<PointerType>(llvm_rhs);</div>
|
|
413
|
+
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  assert(llvm_rhs_ptr && <span class="stringliteral">"not a pointer type?"</span>);</div>
|
|
414
|
+
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *ptrElementType = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(llvm_rhs_ptr);</div>
|
|
415
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> llvm_rhs_size = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a09683d4d88a50fa621809c734465f94d">LLVMUtil::getTypeSizeInBytes</a>(ptrElementType);</div>
|
|
416
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> llvm_elem_size = -1;</div>
|
|
417
|
+
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordflow">if</span> (ptrElementType->isArrayTy() && llvm_rhs_size > 0)</div>
|
|
418
|
+
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  {</div>
|
|
419
|
+
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keywordtype">size_t</span> array_len = ptrElementType->getArrayNumElements();</div>
|
|
420
|
+
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  llvm_elem_size = llvm_rhs_size / array_len;</div>
|
|
421
|
+
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  }</div>
|
|
422
|
+
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keywordflow">else</span></div>
|
|
423
|
+
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  {</div>
|
|
424
|
+
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  llvm_elem_size =llvm_rhs_size;</div>
|
|
425
|
+
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  }</div>
|
|
426
|
+
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keywordflow">return</span> llvm_elem_size;</div>
|
|
427
|
+
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> }</div>
|
|
428
|
+
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  </div>
|
|
429
|
+
<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a63222955897ba34e921b9cfd8a2a3619"> 405</a></span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a63222955897ba34e921b9cfd8a2a3619">getFunction</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& <a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>)</div>
|
|
430
|
+
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> {</div>
|
|
431
|
+
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(<a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>);</div>
|
|
432
|
+
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> }</div>
|
|
433
|
+
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  </div>
|
|
434
|
+
<div class="line"><a name="l00411"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be"> 411</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">isConstDataOrAggData</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
|
|
435
|
+
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> {</div>
|
|
436
|
+
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737">SVFUtil::isa</a><<a class="code" href="namespaceSVF.html#a7332f8059ea95472dcc231de884a5768">ConstantData</a>, <a class="code" href="namespaceSVF.html#a7cbe1c6567039e72958fd70e423d3597">ConstantAggregate</a>,</div>
|
|
437
|
+
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <a class="code" href="namespaceSVF.html#a773900ea3c75022657aac1abf59fa51b">MetadataAsValue</a>, <a class="code" href="namespaceSVF.html#a956458a8554bf734db1194f320fd4b4c">BlockAddress</a>>(val);</div>
|
|
438
|
+
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> }</div>
|
|
439
|
+
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  </div>
|
|
440
|
+
<div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a"> 418</a></span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">getGlobalRep</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
|
|
441
|
+
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> {</div>
|
|
442
|
+
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* gvar = SVFUtil::dyn_cast<GlobalVariable>(val))</div>
|
|
443
|
+
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  {</div>
|
|
444
|
+
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()->hasGlobalRep(gvar))</div>
|
|
445
|
+
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  val = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a757bf149437cce22163c764ea9993e12">getGlobalRep</a>(gvar);</div>
|
|
446
|
+
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  }</div>
|
|
447
|
+
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keywordflow">return</span> val;</div>
|
|
448
|
+
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> }</div>
|
|
448
449
|
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  </div>
|
|
449
|
-
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">isConstantObjSym</a>(<span class="keyword">const</span> <a class="code" href="
|
|
450
|
+
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">isConstantObjSym</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* val);</div>
|
|
450
451
|
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  </div>
|
|
451
|
-
<div class="line"><a name="
|
|
452
|
-
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abc9c437b7da5cfe3d988dadfcbd0635f">viewCFG</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun);</div>
|
|
452
|
+
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">isConstantObjSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val);</div>
|
|
453
453
|
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  </div>
|
|
454
|
-
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="comment">// Dump Control Flow Graph of llvm function,
|
|
455
|
-
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#
|
|
454
|
+
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="comment">// Dump Control Flow Graph of llvm function, with instructions</span></div>
|
|
455
|
+
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abc9c437b7da5cfe3d988dadfcbd0635f">viewCFG</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun);</div>
|
|
456
456
|
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  </div>
|
|
457
|
-
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="comment"
|
|
458
|
-
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="
|
|
459
|
-
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> 
|
|
460
|
-
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="comment"
|
|
461
|
-
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="comment">
|
|
462
|
-
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="comment">
|
|
463
|
-
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="comment"> *
|
|
464
|
-
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="comment">
|
|
465
|
-
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="comment"> * A
|
|
466
|
-
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="comment">
|
|
467
|
-
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="comment"> *
|
|
468
|
-
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="comment">
|
|
469
|
-
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="comment">
|
|
470
|
-
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="comment">
|
|
471
|
-
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="comment">
|
|
472
|
-
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="comment"> *
|
|
457
|
+
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="comment">// Dump Control Flow Graph of llvm function, without instructions</span></div>
|
|
458
|
+
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2abbe4ed46b2031a981d93b3ba9d3fbd">viewCFGOnly</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun);</div>
|
|
459
|
+
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  </div>
|
|
460
|
+
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="comment">/*</span></div>
|
|
461
|
+
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="comment"> * Get the vtable struct of a class.</span></div>
|
|
462
|
+
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="comment"> *</span></div>
|
|
463
|
+
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="comment"> * Given the class:</span></div>
|
|
464
|
+
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="comment"> *</span></div>
|
|
465
|
+
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="comment"> * class A {</span></div>
|
|
466
|
+
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="comment"> * virtual ~A();</span></div>
|
|
467
|
+
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="comment"> * };</span></div>
|
|
468
|
+
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="comment"> * A::~A() = default;</span></div>
|
|
469
|
+
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="comment"> *</span></div>
|
|
470
|
+
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="comment"> * The corresponding vtable @_ZTV1A is of type:</span></div>
|
|
471
|
+
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="comment"> *</span></div>
|
|
472
|
+
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="comment"> * { [4 x i8*] }</span></div>
|
|
473
473
|
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="comment"> *</span></div>
|
|
474
|
-
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="comment"> *
|
|
475
|
-
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="comment">
|
|
476
|
-
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="comment">
|
|
477
|
-
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="comment">
|
|
478
|
-
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="
|
|
479
|
-
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> 
|
|
480
|
-
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="
|
|
481
|
-
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="
|
|
482
|
-
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> 
|
|
483
|
-
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#
|
|
484
|
-
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#
|
|
485
|
-
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#
|
|
486
|
-
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="
|
|
487
|
-
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> 
|
|
488
|
-
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="
|
|
489
|
-
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="
|
|
490
|
-
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> 
|
|
491
|
-
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="comment"
|
|
492
|
-
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="comment"> * }</span></div>
|
|
493
|
-
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> <span class="comment">
|
|
494
|
-
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="comment">
|
|
495
|
-
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="comment"> *
|
|
496
|
-
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="comment">
|
|
497
|
-
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="comment">
|
|
498
|
-
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="comment"> *
|
|
499
|
-
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="comment"> *
|
|
500
|
-
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="comment"> *
|
|
501
|
-
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="comment"> *
|
|
502
|
-
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="comment"> *
|
|
503
|
-
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="comment"> *
|
|
504
|
-
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="comment"> *
|
|
505
|
-
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="comment"> *
|
|
506
|
-
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="comment"> *
|
|
507
|
-
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="comment"> *
|
|
508
|
-
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="comment">
|
|
509
|
-
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <span class="
|
|
510
|
-
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="
|
|
511
|
-
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="
|
|
512
|
-
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <a class="code" href="namespaceSVF.html#
|
|
513
|
-
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <a class="code" href="
|
|
514
|
-
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <a class="code" href="
|
|
515
|
-
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <a class="code" href="
|
|
516
|
-
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <
|
|
517
|
-
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> 
|
|
518
|
-
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="
|
|
519
|
-
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="
|
|
520
|
-
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> 
|
|
521
|
-
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="comment"
|
|
522
|
-
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="comment"> *
|
|
523
|
-
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="comment"> *
|
|
524
|
-
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="comment"> *
|
|
525
|
-
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="comment"> *
|
|
526
|
-
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="comment">
|
|
527
|
-
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="
|
|
528
|
-
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> 
|
|
529
|
-
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> 
|
|
530
|
-
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="
|
|
531
|
-
<div class="line"><a name="l00511"></a><span class="lineno"
|
|
532
|
-
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> 
|
|
533
|
-
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> 
|
|
534
|
-
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> 
|
|
535
|
-
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> 
|
|
536
|
-
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> 
|
|
537
|
-
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> 
|
|
538
|
-
<div class="line"><a name="
|
|
539
|
-
<div class="line"><a name="
|
|
540
|
-
<div class="line"><a name="
|
|
541
|
-
<div class="line"><a name="
|
|
542
|
-
<div class="line"><a name="
|
|
543
|
-
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  </div>
|
|
544
|
-
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> 
|
|
545
|
-
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  </div>
|
|
546
|
-
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> 
|
|
474
|
+
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="comment"> * If the program has been compiled with AddressSanitizer,</span></div>
|
|
475
|
+
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="comment"> * the vtable will have redzones and appear as:</span></div>
|
|
476
|
+
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="comment"> *</span></div>
|
|
477
|
+
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="comment"> * { { [4 x i8*] }, [32 x i8] }</span></div>
|
|
478
|
+
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="comment"> *</span></div>
|
|
479
|
+
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="comment"> * See https://github.com/SVF-tools/SVF/issues/1114 for more.</span></div>
|
|
480
|
+
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="comment"> */</span></div>
|
|
481
|
+
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2b28f48dde0a9a91d251e654ce1f9477">ConstantStruct</a> *<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a4f803756f0a73e8564d9544ce27be1c9">getVtblStruct</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a67f3f86344f028cacfbeb08caaf7bb0f">GlobalValue</a> *vtbl);</div>
|
|
482
|
+
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  </div>
|
|
483
|
+
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a08fbef6fe3e2af96a49f79ce23accb01">isValVtbl</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val);</div>
|
|
484
|
+
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a45da980cb7c085942bb8e6010db9d84f">isLoadVtblInst</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>* loadInst);</div>
|
|
485
|
+
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ab1b4c565ae6be788b934defc21a5cfaf">isVirtualCallSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs);</div>
|
|
486
|
+
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a6dd1590b82d2bd86766886bd21bc2b72">isConstructor</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
487
|
+
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a206973624fcc58e6044c884dba23a754">isDestructor</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
488
|
+
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a47bbc0527ced570d576ccc2f9df409cb">isCPPThunkFunction</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
489
|
+
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#aab1cb59036d181e20a477bf1eebd81ff">getThunkTarget</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
|
|
490
|
+
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  </div>
|
|
491
|
+
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="comment">/*</span></div>
|
|
492
|
+
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="comment"> * VtableA = {&A::foo}</span></div>
|
|
493
|
+
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> <span class="comment"> * A::A(this){</span></div>
|
|
494
|
+
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="comment"> * *this = &VtableA;</span></div>
|
|
495
|
+
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="comment"> * }</span></div>
|
|
496
|
+
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="comment"> *</span></div>
|
|
497
|
+
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="comment"> *</span></div>
|
|
498
|
+
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="comment"> * A* p = new A;</span></div>
|
|
499
|
+
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="comment"> * cs: p->foo(...)</span></div>
|
|
500
|
+
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="comment"> * ==></span></div>
|
|
501
|
+
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="comment"> * vtptr = *p;</span></div>
|
|
502
|
+
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="comment"> * vfn = &vtptr[i]</span></div>
|
|
503
|
+
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="comment"> * %funp = *vfn</span></div>
|
|
504
|
+
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="comment"> * call %funp(p,...)</span></div>
|
|
505
|
+
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="comment"> * getConstructorThisPtr(A) return "this" pointer</span></div>
|
|
506
|
+
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="comment"> * getVCallThisPtr(cs) return p (this pointer)</span></div>
|
|
507
|
+
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="comment"> * getVCallVtblPtr(cs) return vtptr</span></div>
|
|
508
|
+
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="comment"> * getVCallIdx(cs) return i</span></div>
|
|
509
|
+
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <span class="comment"> * getClassNameFromVtblObj(VtableA) return</span></div>
|
|
510
|
+
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="comment"> * getClassNameFromType(type of p) return type A</span></div>
|
|
511
|
+
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="comment"> */</span></div>
|
|
512
|
+
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#addcfb0135655706a86f6cc628475fccf">getConstructorThisPtr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun);</div>
|
|
513
|
+
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a68e7bad8eb537039559d8ddc851032e0">getVCallThisPtr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs);</div>
|
|
514
|
+
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a3a23aa54459a068e16c96e5b5eb72f77">getVCallVtblPtr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs);</div>
|
|
515
|
+
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a718c8ec79f36cef5df2f4530541f2770">getVCallIdx</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs);</div>
|
|
516
|
+
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a416bcb6da0650f546cb7d83e6be850b6">getClassNameFromType</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* ty);</div>
|
|
517
|
+
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#aa841a295ec803b6a1f2bd248f63f863f">getClassNameOfThisPtr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs);</div>
|
|
518
|
+
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a41e64f3318e2bf368eebe9a104ef6ad9">getFunNameOfVCallSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs);</div>
|
|
519
|
+
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a898e9c2ed163b618f2e86bc251131d8b">VCallInCtorOrDtor</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs);</div>
|
|
520
|
+
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  </div>
|
|
521
|
+
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="comment">/*</span></div>
|
|
522
|
+
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="comment"> * A(A* this){</span></div>
|
|
523
|
+
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="comment"> * store this this.addr;</span></div>
|
|
524
|
+
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="comment"> * tmp = load this.addr;</span></div>
|
|
525
|
+
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="comment"> * this1 = bitcast(tmp);</span></div>
|
|
526
|
+
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="comment"> * B(this1);</span></div>
|
|
527
|
+
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="comment"> * }</span></div>
|
|
528
|
+
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="comment"> * this and this1 are the same thisPtr in the constructor</span></div>
|
|
529
|
+
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="comment"> */</span></div>
|
|
530
|
+
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8873eb1cce9496f9699eab22c4a6d3ce">isSameThisPtrInConstructor</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* thisPtr1,</div>
|
|
531
|
+
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* thisPtr2);</div>
|
|
532
|
+
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  </div>
|
|
533
|
+
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
|
|
534
|
+
<div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a7b8b93fec1dc8c63c0a5837a85b99129"> 514</a></span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a7b8b93fec1dc8c63c0a5837a85b99129">llvmToString</a>(<span class="keyword">const</span> T& val)</div>
|
|
535
|
+
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> {</div>
|
|
536
|
+
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
537
|
+
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  llvm::raw_string_ostream(str) << val;</div>
|
|
538
|
+
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keywordflow">return</span> str;</div>
|
|
539
|
+
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> }</div>
|
|
540
|
+
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  </div>
|
|
541
|
+
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a9001722dd27bf487351725c3d7b65f2f">getSuccBBandCondValPairVec</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a412280b134578905248ce0122c5db7c9">SwitchInst</a> &switchInst, <a class="code" href="namespaceSVF.html#a8de26e1810ea0c3b1e8ad62f1c8a864d">SuccBBAndCondValPairVec</a> &vec);</div>
|
|
542
|
+
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  </div>
|
|
543
|
+
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a33e8378ae1a911169394e545a4ba2220">getCaseValue</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a412280b134578905248ce0122c5db7c9">SwitchInst</a> &switchInst, <a class="code" href="namespaceSVF.html#a255efa5be786996cbdd0c1f3d98b8400">SuccBBAndCondValPair</a> &succBB2CondVal);</div>
|
|
544
|
+
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  </div>
|
|
545
|
+
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> } <span class="comment">// End namespace LLVMUtil</span></div>
|
|
546
|
+
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  </div>
|
|
547
|
+
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> } <span class="comment">// End namespace SVF</span></div>
|
|
548
|
+
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  </div>
|
|
549
|
+
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> <span class="preprocessor">#endif </span><span class="comment">/* INCLUDE_SVF_FE_LLVMUTIL_H_ */</span><span class="preprocessor"></span></div>
|
|
547
550
|
</div><!-- fragment --></div><!-- contents -->
|
|
548
551
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8e4add30bd0ce00d3f2aa2e31c64fef8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8e4add30bd0ce00d3f2aa2e31c64fef8">SVF::LLVMUtil::getSourceLoc</a></div><div class="ttdeci">const std::string getSourceLoc(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00667">LLVMUtil.cpp:667</a></div></div>
|
|
549
552
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a38ce45ae5f017c90115ce444b44d478c"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a38ce45ae5f017c90115ce444b44d478c">SVF::LLVMUtil::stripAllCasts</a></div><div class="ttdeci">const Value * stripAllCasts(const Value *val)</div><div class="ttdoc">Strip off the all casts.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00251">LLVMUtil.cpp:251</a></div></div>
|
|
@@ -590,7 +593,7 @@ $(function() {
|
|
|
590
593
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_af983b0e1fbd371d8672e8f03f63084fc"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#af983b0e1fbd371d8672e8f03f63084fc">SVF::LLVMUtil::isCastConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isCastConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00261">LLVMUtil.h:261</a></div></div>
|
|
591
594
|
<div class="ttc" id="anamespaceSVF_html_a956458a8554bf734db1194f320fd4b4c"><div class="ttname"><a href="namespaceSVF.html#a956458a8554bf734db1194f320fd4b4c">SVF::BlockAddress</a></div><div class="ttdeci">llvm::BlockAddress BlockAddress</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00089">BasicTypes.h:89</a></div></div>
|
|
592
595
|
<div class="ttc" id="anamespaceSVF_html_a09f5fa3bc44bf53612a085e3a611cc4e"><div class="ttname"><a href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">SVF::GlobalVariable</a></div><div class="ttdeci">llvm::GlobalVariable GlobalVariable</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00128">BasicTypes.h:128</a></div></div>
|
|
593
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a63222955897ba34e921b9cfd8a2a3619"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a63222955897ba34e921b9cfd8a2a3619">SVF::LLVMUtil::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction(const std::string &name)</div><div class="ttdoc">Get the corresponding Function based on its name.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
596
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a63222955897ba34e921b9cfd8a2a3619"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a63222955897ba34e921b9cfd8a2a3619">SVF::LLVMUtil::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction(const std::string &name)</div><div class="ttdoc">Get the corresponding Function based on its name.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00405">LLVMUtil.h:405</a></div></div>
|
|
594
597
|
<div class="ttc" id="aSVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
|
|
595
598
|
<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#l00337">LLVMUtil.cpp:337</a></div></div>
|
|
596
599
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_addcfb0135655706a86f6cc628475fccf"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#addcfb0135655706a86f6cc628475fccf">SVF::LLVMUtil::getConstructorThisPtr</a></div><div class="ttdeci">const Argument * getConstructorThisPtr(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01039">LLVMUtil.cpp:1039</a></div></div>
|
|
@@ -607,7 +610,7 @@ $(function() {
|
|
|
607
610
|
<div class="ttc" id="anamespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00085">BasicTypes.h:85</a></div></div>
|
|
608
611
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a3a23aa54459a068e16c96e5b5eb72f77"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a3a23aa54459a068e16c96e5b5eb72f77">SVF::LLVMUtil::getVCallVtblPtr</a></div><div class="ttdeci">const Value * getVCallVtblPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01118">LLVMUtil.cpp:1118</a></div></div>
|
|
609
612
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a946a2b51b848c45c6c52f03581ee05b8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a946a2b51b848c45c6c52f03581ee05b8">SVF::LLVMUtil::isTruncConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isTruncConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00281">LLVMUtil.h:281</a></div></div>
|
|
610
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
613
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00411">LLVMUtil.h:411</a></div></div>
|
|
611
614
|
<div class="ttc" id="anamespaceSVF_html_a2bf58575ac7d068e0f1a4cf953b9e6cb"><div class="ttname"><a href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">SVF::StructType</a></div><div class="ttdeci">llvm::StructType StructType</div><div class="ttdoc">LLVM types.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00092">BasicTypes.h:92</a></div></div>
|
|
612
615
|
<div class="ttc" id="anamespaceSVF_html_a2b28f48dde0a9a91d251e654ce1f9477"><div class="ttname"><a href="namespaceSVF.html#a2b28f48dde0a9a91d251e654ce1f9477">SVF::ConstantStruct</a></div><div class="ttdeci">llvm::ConstantStruct ConstantStruct</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00104">BasicTypes.h:104</a></div></div>
|
|
613
616
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00297">SVFValue.h:297</a></div></div>
|
|
@@ -620,7 +623,7 @@ $(function() {
|
|
|
620
623
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a151fd7fb2b2ebe72af7c417defbb4f4d"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a151fd7fb2b2ebe72af7c417defbb4f4d">SVF::LLVMUtil::getDataLayout</a></div><div class="ttdeci">static DataLayout * getDataLayout(Module *mod)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00329">LLVMUtil.h:329</a></div></div>
|
|
621
624
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_adfa4a4e6d13004d14137d9168bd32463"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#adfa4a4e6d13004d14137d9168bd32463">SVF::LLVMUtil::isInt2PtrConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isInt2PtrConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00241">LLVMUtil.h:241</a></div></div>
|
|
622
625
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2834d135a2385efff783e6e22d2eff1f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2834d135a2385efff783e6e22d2eff1f">SVF::LLVMUtil::isPtr2IntConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isPtr2IntConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00251">LLVMUtil.h:251</a></div></div>
|
|
623
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9e0c786488dfdc4605d4cbcf9943c85a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">SVF::LLVMUtil::getGlobalRep</a></div><div class="ttdeci">const Value * getGlobalRep(const Value *val)</div><div class="ttdoc">find the unique defined global across multiple modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
626
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9e0c786488dfdc4605d4cbcf9943c85a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">SVF::LLVMUtil::getGlobalRep</a></div><div class="ttdeci">const Value * getGlobalRep(const Value *val)</div><div class="ttdoc">find the unique defined global across multiple modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00418">LLVMUtil.h:418</a></div></div>
|
|
624
627
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a0095d23a9c9d5d62ec4a23c56824b5f0"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a0095d23a9c9d5d62ec4a23c56824b5f0">SVF::LLVMUtil::getLLVMCallSite</a></div><div class="ttdeci">const CallBase * getLLVMCallSite(const Value *value)</div><div class="ttdoc">Return LLVM callsite given a value.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00068">LLVMUtil.h:68</a></div></div>
|
|
625
628
|
<div class="ttc" id="anamespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00082">BasicTypes.h:82</a></div></div>
|
|
626
629
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ab1b4c565ae6be788b934defc21a5cfaf"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ab1b4c565ae6be788b934defc21a5cfaf">SVF::LLVMUtil::isVirtualCallSite</a></div><div class="ttdeci">bool isVirtualCallSite(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00930">LLVMUtil.cpp:930</a></div></div>
|
|
@@ -647,7 +650,7 @@ $(function() {
|
|
|
647
650
|
<div class="ttc" id="anamespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00118">BasicTypes.h:118</a></div></div>
|
|
648
651
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2abbe4ed46b2031a981d93b3ba9d3fbd"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2abbe4ed46b2031a981d93b3ba9d3fbd">SVF::LLVMUtil::viewCFGOnly</a></div><div class="ttdeci">void viewCFGOnly(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00240">LLVMUtil.cpp:240</a></div></div>
|
|
649
652
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a4c94a6c02fb89c1a1604c87414956acd"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a4c94a6c02fb89c1a1604c87414956acd">SVF::LLVMUtil::getPrevInsts</a></div><div class="ttdeci">void getPrevInsts(const Instruction *curInst, std::vector< const SVFInstruction * > &instList)</div><div class="ttdoc">Get the previous instructions following control flow.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00304">LLVMUtil.cpp:304</a></div></div>
|
|
650
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a7b8b93fec1dc8c63c0a5837a85b99129"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a7b8b93fec1dc8c63c0a5837a85b99129">SVF::LLVMUtil::llvmToString</a></div><div class="ttdeci">std::string llvmToString(const T &val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
653
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a7b8b93fec1dc8c63c0a5837a85b99129"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a7b8b93fec1dc8c63c0a5837a85b99129">SVF::LLVMUtil::llvmToString</a></div><div class="ttdeci">std::string llvmToString(const T &val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00514">LLVMUtil.h:514</a></div></div>
|
|
651
654
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a45da980cb7c085942bb8e6010db9d84f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a45da980cb7c085942bb8e6010db9d84f">SVF::LLVMUtil::isLoadVtblInst</a></div><div class="ttdeci">bool isLoadVtblInst(const LoadInst *loadInst)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00899">LLVMUtil.cpp:899</a></div></div>
|
|
652
655
|
<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>
|
|
653
656
|
<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>
|
|
@@ -390,7 +390,7 @@ $(function() {
|
|
|
390
390
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_aedfa6e9216c6c788c26aef1967689b76"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">SVF::SVFUtil::isHeapAllocExtCallViaArg</a></div><div class="ttdeci">bool isHeapAllocExtCallViaArg(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00431">SVFUtil.h:431</a></div></div>
|
|
391
391
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a76b0d0ac69c170838cfc8ee26f4518a0"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a76b0d0ac69c170838cfc8ee26f4518a0">SVF::LLVMUtil::getProgFunction</a></div><div class="ttdeci">const Function * getProgFunction(const std::string &funName)</div><div class="ttdoc">Get program entry function from module.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00088">LLVMUtil.h:88</a></div></div>
|
|
392
392
|
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_ac2fa9a797e3e2a8885ccc488030659d5"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#ac2fa9a797e3e2a8885ccc488030659d5">SVF::SymbolTableBuilder::collectSym</a></div><div class="ttdeci">void collectSym(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00259">SymbolTableBuilder.cpp:259</a></div></div>
|
|
393
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
393
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00411">LLVMUtil.h:411</a></div></div>
|
|
394
394
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00297">SVFValue.h:297</a></div></div>
|
|
395
395
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a5cee46f58bdab3f9b1c698e97290152f"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a5cee46f58bdab3f9b1c698e97290152f">SVF::SVFUtil::getTaskFuncAtHareParForSite</a></div><div class="ttdeci">const SVFValue * getTaskFuncAtHareParForSite(const CallSite cs)</div><div class="ttdoc">Return the task function of the parallel_for routine.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00587">SVFUtil.h:587</a></div></div>
|
|
396
396
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a54098ea73555caa682287f8e3c9e8fcb"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a54098ea73555caa682287f8e3c9e8fcb">SVF::SVFUtil::isMemsetExtFun</a></div><div class="ttdeci">bool isMemsetExtFun(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00319">SVFUtil.h:319</a></div></div>
|
|
@@ -885,7 +885,7 @@ $(function() {
|
|
|
885
885
|
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_ac2fa9a797e3e2a8885ccc488030659d5"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#ac2fa9a797e3e2a8885ccc488030659d5">SVF::SymbolTableBuilder::collectSym</a></div><div class="ttdeci">void collectSym(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00259">SymbolTableBuilder.cpp:259</a></div></div>
|
|
886
886
|
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a85994a1cdb68036dde589aab0d7b3e82"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a85994a1cdb68036dde589aab0d7b3e82">SVF::SymbolTableBuilder::createConstantObj</a></div><div class="ttdeci">MemObj * createConstantObj(SymID symId)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00058">SymbolTableBuilder.cpp:58</a></div></div>
|
|
887
887
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a946a2b51b848c45c6c52f03581ee05b8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a946a2b51b848c45c6c52f03581ee05b8">SVF::LLVMUtil::isTruncConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isTruncConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00281">LLVMUtil.h:281</a></div></div>
|
|
888
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
888
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00411">LLVMUtil.h:411</a></div></div>
|
|
889
889
|
<div class="ttc" id="anamespaceSVF_html_a2bf58575ac7d068e0f1a4cf953b9e6cb"><div class="ttname"><a href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">SVF::StructType</a></div><div class="ttdeci">llvm::StructType StructType</div><div class="ttdoc">LLVM types.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00092">BasicTypes.h:92</a></div></div>
|
|
890
890
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00297">SVFValue.h:297</a></div></div>
|
|
891
891
|
<div class="ttc" id="aclassSVF_1_1NodeIDAllocator_html_a92b053f79cfa1259603836cb0aacad7d"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator.html#a92b053f79cfa1259603836cb0aacad7d">SVF::NodeIDAllocator::endSymbolAllocation</a></div><div class="ttdeci">NodeID endSymbolAllocation(void)</div><div class="ttdoc">Notify the allocator that all symbols have had IDs allocated.</div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8cpp_source.html#l00163">NodeIDAllocator.cpp:163</a></div></div>
|
|
@@ -904,7 +904,7 @@ $(function() {
|
|
|
904
904
|
<div class="ttc" id="anamespaceSVF_html_a962e9a9044a46fc4bd2367384f6e0827"><div class="ttname"><a href="namespaceSVF.html#a962e9a9044a46fc4bd2367384f6e0827">SVF::CastInst</a></div><div class="ttdeci">llvm::CastInst CastInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00156">BasicTypes.h:156</a></div></div>
|
|
905
905
|
<div class="ttc" id="aclassSVF_1_1ObjTypeInfo_html_ad6fb2bfae3d4b73a6821a87106f65f49"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">SVF::ObjTypeInfo::setFlag</a></div><div class="ttdeci">void setFlag(MEMTYPE mask)</div><div class="ttdoc">Flag for this object type.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00552">SymbolTableInfo.h:552</a></div></div>
|
|
906
906
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2834d135a2385efff783e6e22d2eff1f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2834d135a2385efff783e6e22d2eff1f">SVF::LLVMUtil::isPtr2IntConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isPtr2IntConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00251">LLVMUtil.h:251</a></div></div>
|
|
907
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9e0c786488dfdc4605d4cbcf9943c85a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">SVF::LLVMUtil::getGlobalRep</a></div><div class="ttdeci">const Value * getGlobalRep(const Value *val)</div><div class="ttdoc">find the unique defined global across multiple modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
907
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9e0c786488dfdc4605d4cbcf9943c85a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">SVF::LLVMUtil::getGlobalRep</a></div><div class="ttdeci">const Value * getGlobalRep(const Value *val)</div><div class="ttdoc">find the unique defined global across multiple modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00418">LLVMUtil.h:418</a></div></div>
|
|
908
908
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a0095d23a9c9d5d62ec4a23c56824b5f0"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a0095d23a9c9d5d62ec4a23c56824b5f0">SVF::LLVMUtil::getLLVMCallSite</a></div><div class="ttdeci">const CallBase * getLLVMCallSite(const Value *value)</div><div class="ttdoc">Return LLVM callsite given a value.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00068">LLVMUtil.h:68</a></div></div>
|
|
909
909
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a05850c17c2dbe42e5602dc8c9a70f3bd"><div class="ttname"><a href="classSVF_1_1SVFType.html#a05850c17c2dbe42e5602dc8c9a70f3bd">SVF::SVFType::getTypeInfo</a></div><div class="ttdeci">StInfo * getTypeInfo()</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00309">SVFType.h:309</a></div></div>
|
|
910
910
|
<div class="ttc" id="anamespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00082">BasicTypes.h:82</a></div></div>
|
|
@@ -3301,7 +3301,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3301
3301
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_a0a8831a5429005ff9d71adbd6bf3994f"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">SVF::GenericGraph< DCHNode, DCHEdge >::addGNode</a></div><div class="ttdeci">void addGNode(NodeID id, NodeType *node)</div><div class="ttdoc">Add a Node.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00399">GenericGraph.h:399</a></div></div>
|
|
3302
3302
|
<div class="ttc" id="anamespaceSVF_html_a09f5fa3bc44bf53612a085e3a611cc4e"><div class="ttname"><a href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">SVF::GlobalVariable</a></div><div class="ttdeci">llvm::GlobalVariable GlobalVariable</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00128">BasicTypes.h:128</a></div></div>
|
|
3303
3303
|
<div class="ttc" id="aclassSVF_1_1DCHGraph_html_a6d97a772afe16c1483e65eea81f82603"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#a6d97a772afe16c1483e65eea81f82603">SVF::DCHGraph::handleTypedef</a></div><div class="ttdeci">void handleTypedef(const DIType *typedefType)</div><div class="ttdoc">Attaches the typedef(s) to the base node.</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8cpp_source.html#l00137">DCHG.cpp:137</a></div></div>
|
|
3304
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a63222955897ba34e921b9cfd8a2a3619"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a63222955897ba34e921b9cfd8a2a3619">SVF::LLVMUtil::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction(const std::string &name)</div><div class="ttdoc">Get the corresponding Function based on its name.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
3304
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a63222955897ba34e921b9cfd8a2a3619"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a63222955897ba34e921b9cfd8a2a3619">SVF::LLVMUtil::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction(const std::string &name)</div><div class="ttdoc">Get the corresponding Function based on its name.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00405">LLVMUtil.h:405</a></div></div>
|
|
3305
3305
|
<div class="ttc" id="aclassSVF_1_1DCHGraph_html_a9d2be5aec5216cbc1d1709b41f79c44b"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#a9d2be5aec5216cbc1d1709b41f79c44b">SVF::DCHGraph::isAgg</a></div><div class="ttdeci">static bool isAgg(const DIType *t)</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8cpp_source.html#l00344">DCHG.cpp:344</a></div></div>
|
|
3306
3306
|
<div class="ttc" id="aclassSVF_1_1DCHEdge_html_a70f757826082c95766c8324c1264e977"><div class="ttname"><a href="classSVF_1_1DCHEdge.html#a70f757826082c95766c8324c1264e977">SVF::DCHEdge::setOffset</a></div><div class="ttdeci">void setOffset(u32_t offset)</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8h_source.html#l00055">DCHG.h:55</a></div></div>
|
|
3307
3307
|
<div class="ttc" id="aclassSVF_1_1DCHGraph_html_a8fcbea9435a77beb27ad64d5a3175b0b"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#a8fcbea9435a77beb27ad64d5a3175b0b">SVF::DCHGraph::gatherAggs</a></div><div class="ttdeci">void gatherAggs(const DICompositeType *type)</div><div class="ttdoc">Populates containingAggs for type and all its elements.</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8cpp_source.html#l00352">DCHG.cpp:352</a></div></div>
|
|
@@ -4384,7 +4384,7 @@ Friends</h2></td></tr>
|
|
|
4384
4384
|
<div class="ttc" id="aclassSVF_1_1SVFConstant_html"><div class="ttname"><a href="classSVF_1_1SVFConstant.html">SVF::SVFConstant</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00822">SVFValue.h:822</a></div></div>
|
|
4385
4385
|
<div class="ttc" id="anamespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00085">BasicTypes.h:85</a></div></div>
|
|
4386
4386
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a3a23aa54459a068e16c96e5b5eb72f77"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a3a23aa54459a068e16c96e5b5eb72f77">SVF::LLVMUtil::getVCallVtblPtr</a></div><div class="ttdeci">const Value * getVCallVtblPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01118">LLVMUtil.cpp:1118</a></div></div>
|
|
4387
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
4387
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00411">LLVMUtil.h:411</a></div></div>
|
|
4388
4388
|
<div class="ttc" id="anamespaceSVF_html_a2bf58575ac7d068e0f1a4cf953b9e6cb"><div class="ttname"><a href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">SVF::StructType</a></div><div class="ttdeci">llvm::StructType StructType</div><div class="ttdoc">LLVM types.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00092">BasicTypes.h:92</a></div></div>
|
|
4389
4389
|
<div class="ttc" id="anamespaceSVF_html_a2b28f48dde0a9a91d251e654ce1f9477"><div class="ttname"><a href="namespaceSVF.html#a2b28f48dde0a9a91d251e654ce1f9477">SVF::ConstantStruct</a></div><div class="ttdeci">llvm::ConstantStruct ConstantStruct</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00104">BasicTypes.h:104</a></div></div>
|
|
4390
4390
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00297">SVFValue.h:297</a></div></div>
|
|
@@ -4405,7 +4405,7 @@ Friends</h2></td></tr>
|
|
|
4405
4405
|
<div class="ttc" id="aclassSVF_1_1StInfo_html_a1a07c2b1415c29d7d70791c6dfe602a3"><div class="ttname"><a href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">SVF::StInfo::setNumOfFieldsAndElems</a></div><div class="ttdeci">void setNumOfFieldsAndElems(u32_t nf, u32_t ne)</div><div class="ttdoc">Set number of fields and elements of an aggregate.</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00218">SVFType.h:218</a></div></div>
|
|
4406
4406
|
<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>
|
|
4407
4407
|
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a58a764c27354d5f9b70995d30de65f1d"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a58a764c27354d5f9b70995d30de65f1d">SVF::ExtAPI::getExtAPI</a></div><div class="ttdeci">static ExtAPI * getExtAPI()</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00040">ExtAPI.cpp:40</a></div></div>
|
|
4408
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9e0c786488dfdc4605d4cbcf9943c85a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">SVF::LLVMUtil::getGlobalRep</a></div><div class="ttdeci">const Value * getGlobalRep(const Value *val)</div><div class="ttdoc">find the unique defined global across multiple modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
4408
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9e0c786488dfdc4605d4cbcf9943c85a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">SVF::LLVMUtil::getGlobalRep</a></div><div class="ttdeci">const Value * getGlobalRep(const Value *val)</div><div class="ttdoc">find the unique defined global across multiple modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00418">LLVMUtil.h:418</a></div></div>
|
|
4409
4409
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a8af6b911b728713f66f7c809d5c0fbf1"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8af6b911b728713f66f7c809d5c0fbf1">SVF::LLVMModuleSet::addSVFMain</a></div><div class="ttdeci">void addSVFMain()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00646">LLVMModule.cpp:646</a></div></div>
|
|
4410
4410
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a8ba9092747108e0289014d52465a692d"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8ba9092747108e0289014d52465a692d">SVF::LLVMModuleSet::initDomTree</a></div><div class="ttdeci">void initDomTree(SVFFunction *func, const Function *f)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00358">LLVMModule.cpp:358</a></div></div>
|
|
4411
4411
|
<div class="ttc" id="anamespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00082">BasicTypes.h:82</a></div></div>
|
|
@@ -4836,7 +4836,7 @@ Private Attributes</h2></td></tr>
|
|
|
4836
4836
|
<div class="ttc" id="aclassSVF_1_1IRGraph_html_a3b417ee79560fd00f4cf80906044c198"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198">SVF::IRGraph::getBlkPtr</a></div><div class="ttdeci">NodeID getBlkPtr() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00170">IRGraph.h:170</a></div></div>
|
|
4837
4837
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a946a2b51b848c45c6c52f03581ee05b8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a946a2b51b848c45c6c52f03581ee05b8">SVF::LLVMUtil::isTruncConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isTruncConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00281">LLVMUtil.h:281</a></div></div>
|
|
4838
4838
|
<div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html_aefc70f2a0a2103259ae36d026cbb18be"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#aefc70f2a0a2103259ae36d026cbb18be">SVF::SVFIRBuilder::curVal</a></div><div class="ttdeci">const SVFValue * curVal</div><div class="ttdoc">Current Value during SVFIR construction when visiting the module.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00053">SVFIRBuilder.h:53</a></div></div>
|
|
4839
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
4839
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00411">LLVMUtil.h:411</a></div></div>
|
|
4840
4840
|
<div class="ttc" id="anamespaceSVF_html_a2bf58575ac7d068e0f1a4cf953b9e6cb"><div class="ttname"><a href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">SVF::StructType</a></div><div class="ttdeci">llvm::StructType StructType</div><div class="ttdoc">LLVM types.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00092">BasicTypes.h:92</a></div></div>
|
|
4841
4841
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_a5f2c0aaba07d6fdd63058da0fb60ca8b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">SVF::ICFG::getICFGNode</a></div><div class="ttdeci">ICFGNode * getICFGNode(NodeID id) const</div><div class="ttdoc">Get a ICFG node.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00088">ICFG.h:88</a></div></div>
|
|
4842
4842
|
<div class="ttc" id="aclassSVF_1_1ICFGEdge_html_a395c34788e98950bc43e8cb44313e429ad2370a77f6cc112b8c26efbcc36bf541"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429ad2370a77f6cc112b8c26efbcc36bf541">SVF::ICFGEdge::RetCF</a></div><div class="ttdeci">@ RetCF</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00057">ICFGEdge.h:57</a></div></div>
|
|
@@ -1601,7 +1601,7 @@ Friends</h2></td></tr>
|
|
|
1601
1601
|
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_ac2fa9a797e3e2a8885ccc488030659d5"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#ac2fa9a797e3e2a8885ccc488030659d5">SVF::SymbolTableBuilder::collectSym</a></div><div class="ttdeci">void collectSym(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00259">SymbolTableBuilder.cpp:259</a></div></div>
|
|
1602
1602
|
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html_a85994a1cdb68036dde589aab0d7b3e82"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#a85994a1cdb68036dde589aab0d7b3e82">SVF::SymbolTableBuilder::createConstantObj</a></div><div class="ttdeci">MemObj * createConstantObj(SymID symId)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00058">SymbolTableBuilder.cpp:58</a></div></div>
|
|
1603
1603
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a946a2b51b848c45c6c52f03581ee05b8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a946a2b51b848c45c6c52f03581ee05b8">SVF::LLVMUtil::isTruncConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isTruncConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00281">LLVMUtil.h:281</a></div></div>
|
|
1604
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1604
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00411">LLVMUtil.h:411</a></div></div>
|
|
1605
1605
|
<div class="ttc" id="anamespaceSVF_html_a2bf58575ac7d068e0f1a4cf953b9e6cb"><div class="ttname"><a href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">SVF::StructType</a></div><div class="ttdeci">llvm::StructType StructType</div><div class="ttdoc">LLVM types.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00092">BasicTypes.h:92</a></div></div>
|
|
1606
1606
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00297">SVFValue.h:297</a></div></div>
|
|
1607
1607
|
<div class="ttc" id="aclassSVF_1_1NodeIDAllocator_html_a92b053f79cfa1259603836cb0aacad7d"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator.html#a92b053f79cfa1259603836cb0aacad7d">SVF::NodeIDAllocator::endSymbolAllocation</a></div><div class="ttdeci">NodeID endSymbolAllocation(void)</div><div class="ttdoc">Notify the allocator that all symbols have had IDs allocated.</div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8cpp_source.html#l00163">NodeIDAllocator.cpp:163</a></div></div>
|
|
@@ -1618,7 +1618,7 @@ Friends</h2></td></tr>
|
|
|
1618
1618
|
<div class="ttc" id="anamespaceSVF_html_a962e9a9044a46fc4bd2367384f6e0827"><div class="ttname"><a href="namespaceSVF.html#a962e9a9044a46fc4bd2367384f6e0827">SVF::CastInst</a></div><div class="ttdeci">llvm::CastInst CastInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00156">BasicTypes.h:156</a></div></div>
|
|
1619
1619
|
<div class="ttc" id="aclassSVF_1_1ObjTypeInfo_html_ad6fb2bfae3d4b73a6821a87106f65f49"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">SVF::ObjTypeInfo::setFlag</a></div><div class="ttdeci">void setFlag(MEMTYPE mask)</div><div class="ttdoc">Flag for this object type.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00552">SymbolTableInfo.h:552</a></div></div>
|
|
1620
1620
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2834d135a2385efff783e6e22d2eff1f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2834d135a2385efff783e6e22d2eff1f">SVF::LLVMUtil::isPtr2IntConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isPtr2IntConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00251">LLVMUtil.h:251</a></div></div>
|
|
1621
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9e0c786488dfdc4605d4cbcf9943c85a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">SVF::LLVMUtil::getGlobalRep</a></div><div class="ttdeci">const Value * getGlobalRep(const Value *val)</div><div class="ttdoc">find the unique defined global across multiple modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
1621
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9e0c786488dfdc4605d4cbcf9943c85a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">SVF::LLVMUtil::getGlobalRep</a></div><div class="ttdeci">const Value * getGlobalRep(const Value *val)</div><div class="ttdoc">find the unique defined global across multiple modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00418">LLVMUtil.h:418</a></div></div>
|
|
1622
1622
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a0095d23a9c9d5d62ec4a23c56824b5f0"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a0095d23a9c9d5d62ec4a23c56824b5f0">SVF::LLVMUtil::getLLVMCallSite</a></div><div class="ttdeci">const CallBase * getLLVMCallSite(const Value *value)</div><div class="ttdoc">Return LLVM callsite given a value.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00068">LLVMUtil.h:68</a></div></div>
|
|
1623
1623
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a05850c17c2dbe42e5602dc8c9a70f3bd"><div class="ttname"><a href="classSVF_1_1SVFType.html#a05850c17c2dbe42e5602dc8c9a70f3bd">SVF::SVFType::getTypeInfo</a></div><div class="ttdeci">StInfo * getTypeInfo()</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00309">SVFType.h:309</a></div></div>
|
|
1624
1624
|
<div class="ttc" id="anamespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00082">BasicTypes.h:82</a></div></div>
|
|
@@ -831,10 +831,10 @@ Functions</h2></td></tr>
|
|
|
831
831
|
|
|
832
832
|
<p>Get the corresponding Function based on its name. </p>
|
|
833
833
|
|
|
834
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
835
|
-
<div class="fragment"><div class="line"><a name="
|
|
836
|
-
<div class="line"><a name="
|
|
837
|
-
<div class="line"><a name="
|
|
834
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00405">405</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
835
|
+
<div class="fragment"><div class="line"><a name="l00406"></a><span class="lineno"> 406</span> {</div>
|
|
836
|
+
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keywordflow">return</span> LLVMModuleSet::getLLVMModuleSet()->getSVFFunction(<a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>);</div>
|
|
837
|
+
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> }</div>
|
|
838
838
|
</div><!-- fragment -->
|
|
839
839
|
</div>
|
|
840
840
|
</div>
|
|
@@ -956,15 +956,15 @@ Functions</h2></td></tr>
|
|
|
956
956
|
|
|
957
957
|
<p>find the unique defined global across multiple modules </p>
|
|
958
958
|
|
|
959
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
960
|
-
<div class="fragment"><div class="line"><a name="
|
|
961
|
-
<div class="line"><a name="
|
|
962
|
-
<div class="line"><a name="
|
|
963
|
-
<div class="line"><a name="
|
|
964
|
-
<div class="line"><a name="
|
|
965
|
-
<div class="line"><a name="
|
|
966
|
-
<div class="line"><a name="
|
|
967
|
-
<div class="line"><a name="
|
|
959
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00418">418</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
960
|
+
<div class="fragment"><div class="line"><a name="l00419"></a><span class="lineno"> 419</span> {</div>
|
|
961
|
+
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* gvar = SVFUtil::dyn_cast<GlobalVariable>(val))</div>
|
|
962
|
+
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  {</div>
|
|
963
|
+
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="keywordflow">if</span> (LLVMModuleSet::getLLVMModuleSet()->hasGlobalRep(gvar))</div>
|
|
964
|
+
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  val = LLVMModuleSet::getLLVMModuleSet()->getGlobalRep(gvar);</div>
|
|
965
|
+
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  }</div>
|
|
966
|
+
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keywordflow">return</span> val;</div>
|
|
967
|
+
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> }</div>
|
|
968
968
|
</div><!-- fragment -->
|
|
969
969
|
</div>
|
|
970
970
|
</div>
|
|
@@ -1328,7 +1328,7 @@ Functions</h2></td></tr>
|
|
|
1328
1328
|
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00119">119</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
1329
1329
|
<div class="fragment"><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> {</div>
|
|
1330
1330
|
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor">#if (LLVM_VERSION_MAJOR < 14)</span></div>
|
|
1331
|
-
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">return</span> pty->
|
|
1331
|
+
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">return</span> pty->getPointerElementType();</div>
|
|
1332
1332
|
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="preprocessor">#else</span></div>
|
|
1333
1333
|
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  assert(!pty->isOpaque() && <span class="stringliteral">"Opaque Pointer is used, please recompile the source adding '-Xclang -no-opaque-pointers'"</span>);</div>
|
|
1334
1334
|
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">return</span> pty->getNonOpaquePointerElementType();</div>
|
|
@@ -2287,11 +2287,11 @@ Functions</h2></td></tr>
|
|
|
2287
2287
|
|
|
2288
2288
|
<p>Return true if the value refers to constant data, e.g., i32 0. </p>
|
|
2289
2289
|
|
|
2290
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
2291
|
-
<div class="fragment"><div class="line"><a name="
|
|
2292
|
-
<div class="line"><a name="
|
|
2293
|
-
<div class="line"><a name="
|
|
2294
|
-
<div class="line"><a name="
|
|
2290
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00411">411</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
2291
|
+
<div class="fragment"><div class="line"><a name="l00412"></a><span class="lineno"> 412</span> {</div>
|
|
2292
|
+
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737">SVFUtil::isa</a><<a class="code" href="namespaceSVF.html#a7332f8059ea95472dcc231de884a5768">ConstantData</a>, <a class="code" href="namespaceSVF.html#a7cbe1c6567039e72958fd70e423d3597">ConstantAggregate</a>,</div>
|
|
2293
|
+
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <a class="code" href="namespaceSVF.html#a773900ea3c75022657aac1abf59fa51b">MetadataAsValue</a>, <a class="code" href="namespaceSVF.html#a956458a8554bf734db1194f320fd4b4c">BlockAddress</a>>(val);</div>
|
|
2294
|
+
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> }</div>
|
|
2295
2295
|
</div><!-- fragment -->
|
|
2296
2296
|
</div>
|
|
2297
2297
|
</div>
|
|
@@ -3182,12 +3182,12 @@ template<typename T > </div>
|
|
|
3182
3182
|
</table>
|
|
3183
3183
|
</div><div class="memdoc">
|
|
3184
3184
|
|
|
3185
|
-
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#
|
|
3186
|
-
<div class="fragment"><div class="line"><a name="
|
|
3187
|
-
<div class="line"><a name="
|
|
3188
|
-
<div class="line"><a name="
|
|
3189
|
-
<div class="line"><a name="
|
|
3190
|
-
<div class="line"><a name="
|
|
3185
|
+
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00514">514</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
3186
|
+
<div class="fragment"><div class="line"><a name="l00515"></a><span class="lineno"> 515</span> {</div>
|
|
3187
|
+
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
3188
|
+
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  llvm::raw_string_ostream(str) << val;</div>
|
|
3189
|
+
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keywordflow">return</span> str;</div>
|
|
3190
|
+
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> }</div>
|
|
3191
3191
|
</div><!-- fragment -->
|
|
3192
3192
|
</div>
|
|
3193
3193
|
</div>
|
|
@@ -3544,19 +3544,22 @@ template<typename T > </div>
|
|
|
3544
3544
|
<p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00384">384</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
|
|
3545
3545
|
<div class="fragment"><div class="line"><a name="l00385"></a><span class="lineno"> 385</span> {</div>
|
|
3546
3546
|
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">llvm::Type</a>* llvm_rhs = LLVMModuleSet::getLLVMModuleSet()->getLLVMType(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
|
|
3547
|
-
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <
|
|
3548
|
-
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <
|
|
3549
|
-
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="
|
|
3550
|
-
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> 
|
|
3551
|
-
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> 
|
|
3552
|
-
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> 
|
|
3553
|
-
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> 
|
|
3554
|
-
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> 
|
|
3555
|
-
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> 
|
|
3556
|
-
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> 
|
|
3557
|
-
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> 
|
|
3558
|
-
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> 
|
|
3559
|
-
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> 
|
|
3547
|
+
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">llvm::PointerType</a>* llvm_rhs_ptr = SVFUtil::dyn_cast<PointerType>(llvm_rhs);</div>
|
|
3548
|
+
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  assert(llvm_rhs_ptr && <span class="stringliteral">"not a pointer type?"</span>);</div>
|
|
3549
|
+
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *ptrElementType = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(llvm_rhs_ptr);</div>
|
|
3550
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> llvm_rhs_size = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2b5fdf455c5dd40c0baa60185e5e41c6">LLVMUtil::getTypeSizeInBytes</a>(ptrElementType);</div>
|
|
3551
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> llvm_elem_size = -1;</div>
|
|
3552
|
+
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordflow">if</span> (ptrElementType->isArrayTy() && llvm_rhs_size > 0)</div>
|
|
3553
|
+
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  {</div>
|
|
3554
|
+
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keywordtype">size_t</span> array_len = ptrElementType->getArrayNumElements();</div>
|
|
3555
|
+
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  llvm_elem_size = llvm_rhs_size / array_len;</div>
|
|
3556
|
+
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  }</div>
|
|
3557
|
+
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keywordflow">else</span></div>
|
|
3558
|
+
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  {</div>
|
|
3559
|
+
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  llvm_elem_size =llvm_rhs_size;</div>
|
|
3560
|
+
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  }</div>
|
|
3561
|
+
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keywordflow">return</span> llvm_elem_size;</div>
|
|
3562
|
+
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> }</div>
|
|
3560
3563
|
</div><!-- fragment -->
|
|
3561
3564
|
</div>
|
|
3562
3565
|
</div>
|
|
@@ -3695,7 +3698,7 @@ template<typename T > </div>
|
|
|
3695
3698
|
<div class="ttc" id="anamespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00085">BasicTypes.h:85</a></div></div>
|
|
3696
3699
|
<div class="ttc" id="anamespaceSVF_1_1cppUtil_html_a745a2addadc136075d45c7fb8437af3e"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a745a2addadc136075d45c7fb8437af3e">SVF::cppUtil::demangle</a></div><div class="ttdeci">struct DemangledName demangle(const std::string &name)</div><div class="ttdef"><b>Definition:</b> <a href="CppUtil_8cpp_source.html#l00153">CppUtil.cpp:153</a></div></div>
|
|
3697
3700
|
<div class="ttc" id="acJSON_8cpp_html_a930920b2bc42824a5c03be681830f4b2"><div class="ttname"><a href="cJSON_8cpp.html#a930920b2bc42824a5c03be681830f4b2">true</a></div><div class="ttdeci">return true</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02295">cJSON.cpp:2295</a></div></div>
|
|
3698
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#
|
|
3701
|
+
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00411">LLVMUtil.h:411</a></div></div>
|
|
3699
3702
|
<div class="ttc" id="anamespaceSVF_html_a2bf58575ac7d068e0f1a4cf953b9e6cb"><div class="ttname"><a href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">SVF::StructType</a></div><div class="ttdeci">llvm::StructType StructType</div><div class="ttdoc">LLVM types.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00092">BasicTypes.h:92</a></div></div>
|
|
3700
3703
|
<div class="ttc" id="anamespaceSVF_html_a2b28f48dde0a9a91d251e654ce1f9477"><div class="ttname"><a href="namespaceSVF.html#a2b28f48dde0a9a91d251e654ce1f9477">SVF::ConstantStruct</a></div><div class="ttdeci">llvm::ConstantStruct ConstantStruct</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00104">BasicTypes.h:104</a></div></div>
|
|
3701
3704
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00297">SVFValue.h:297</a></div></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svf-tools",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.799",
|
|
4
4
|
"description": "* <b>[TypeClone](https://github.com/SVF-tools/SVF/wiki/TypeClone) published in our [ECOOP paper](https://yuleisui.github.io/publications/ecoop20.pdf) is now available in SVF </b> * <b>SVF now uses a single script for its build. Just type [`source ./build.sh`](https://github.com/SVF-tools/SVF/blob/master/build.sh) in your terminal, that's it!</b> * <b>SVF now supports LLVM-10.0.0! </b> * <b>We thank [bsauce](https://github.com/bsauce) for writing a user manual of SVF ([link1](https://www.jianshu.com/p/068a08ec749c) and [link2](https://www.jianshu.com/p/777c30d4240e)) in Chinese </b> * <b>SVF now supports LLVM-9.0.0 (Thank [Byoungyoung Lee](https://github.com/SVF-tools/SVF/issues/142) for his help!). </b> * <b>SVF now supports a set of [field-sensitive pointer analyses](https://yuleisui.github.io/publications/sas2019a.pdf). </b> * <b>[Use SVF as an external lib](https://github.com/SVF-tools/SVF/wiki/Using-SVF-as-a-lib-in-your-own-tool) for your own project (Contributed by [Hongxu Chen](https://github.com/HongxuChen)). </b> * <b>SVF now supports LLVM-7.0.0. </b> * <b>SVF now supports Docker. [Try SVF in Docker](https://github.com/SVF-tools/SVF/wiki/Try-SVF-in-Docker)! </b> * <b>SVF now supports [LLVM-6.0.0](https://github.com/svf-tools/SVF/pull/38) (Contributed by [Jack Anthony](https://github.com/jackanth)). </b> * <b>SVF now supports [LLVM-4.0.0](https://github.com/svf-tools/SVF/pull/23) (Contributed by Jared Carlson. Thank [Jared](https://github.com/jcarlson23) and [Will](https://github.com/dtzWill) for their in-depth [discussions](https://github.com/svf-tools/SVF/pull/18) about updating SVF!) </b> * <b>SVF now supports analysis for C++ programs.</b> <br />",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -119,7 +119,7 @@ inline bool isNullPtrSym(const Value* val)
|
|
|
119
119
|
static inline Type* getPtrElementType(const PointerType* pty)
|
|
120
120
|
{
|
|
121
121
|
#if (LLVM_VERSION_MAJOR < 14)
|
|
122
|
-
return pty->
|
|
122
|
+
return pty->getPointerElementType();
|
|
123
123
|
#else
|
|
124
124
|
assert(!pty->isOpaque() && "Opaque Pointer is used, please recompile the source adding '-Xclang -no-opaque-pointers'");
|
|
125
125
|
return pty->getNonOpaquePointerElementType();
|
|
@@ -384,11 +384,14 @@ void removeUnusedFuncsAndAnnotationsAndGlobalVariables(std::vector<Function*> re
|
|
|
384
384
|
inline u32_t SVFType2ByteSize(const SVFType* type)
|
|
385
385
|
{
|
|
386
386
|
const llvm::Type* llvm_rhs = LLVMModuleSet::getLLVMModuleSet()->getLLVMType(type);
|
|
387
|
-
|
|
387
|
+
const llvm::PointerType* llvm_rhs_ptr = SVFUtil::dyn_cast<PointerType>(llvm_rhs);
|
|
388
|
+
assert(llvm_rhs_ptr && "not a pointer type?");
|
|
389
|
+
const Type *ptrElementType = getPtrElementType(llvm_rhs_ptr);
|
|
390
|
+
u32_t llvm_rhs_size = LLVMUtil::getTypeSizeInBytes(ptrElementType);
|
|
388
391
|
u32_t llvm_elem_size = -1;
|
|
389
|
-
if (
|
|
392
|
+
if (ptrElementType->isArrayTy() && llvm_rhs_size > 0)
|
|
390
393
|
{
|
|
391
|
-
size_t array_len =
|
|
394
|
+
size_t array_len = ptrElementType->getArrayNumElements();
|
|
392
395
|
llvm_elem_size = llvm_rhs_size / array_len;
|
|
393
396
|
}
|
|
394
397
|
else
|