svf-tools 1.0.760 → 1.0.762
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/html/CFGrammar_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CommandLine_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +6 -5
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1199 -1180
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +162 -159
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFFileSystem_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFIRExtAPI_8cpp_source.html +93 -101
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/cJSON_8cpp.html +1 -1
- package/SVF-doxygen/html/html/cJSON_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/classOption.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +1206 -1184
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +95 -104
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRReader.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +3 -3
- package/SVF-doxygen/html/html/extapi_8c.html +221 -219
- package/SVF-doxygen/html/html/extapi_8c_source.html +1101 -1255
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +1 -1
- package/SVF-doxygen/html/html/svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/svf_2include_2MTA_2MTAResultValidator_8h_source.html +1 -1
- package/package.json +1 -1
- package/svf/lib/Util/ExtAPI.cpp +3 -2
- package/svf-llvm/include/SVF-LLVM/LLVMModule.h +3 -0
- package/svf-llvm/lib/LLVMModule.cpp +23 -4
- package/svf-llvm/lib/SVFIRExtAPI.cpp +0 -8
- package/svf-llvm/lib/extapi.c +3 -156
|
@@ -1212,7 +1212,7 @@ $(function() {
|
|
|
1212
1212
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a898e9c2ed163b618f2e86bc251131d8b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a898e9c2ed163b618f2e86bc251131d8b">SVF::LLVMUtil::VCallInCtorOrDtor</a></div><div class="ttdeci">bool VCallInCtorOrDtor(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01059">LLVMUtil.cpp:1059</a></div></div>
|
|
1213
1213
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a07bd47ccfd02c5a2a6db26b537b2184f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a07bd47ccfd02c5a2a6db26b537b2184f">SVF::LLVMUtil::stripConstantCasts</a></div><div class="ttdeci">const Value * stripConstantCasts(const Value *val)</div><div class="ttdoc">Strip off the constant casts.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00222">LLVMUtil.cpp:222</a></div></div>
|
|
1214
1214
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2c61d741afbcfa853b505cd391f29f9b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">SVF::LLVMUtil::isUncalledFunction</a></div><div class="ttdeci">bool isUncalledFunction(const Function *fun)</div><div class="ttdoc">whether this is a function without any possible caller?</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00144">LLVMUtil.cpp:144</a></div></div>
|
|
1215
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a5f0bd932f3129a9c565f3a09711f7b99"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">SVF::LLVMModuleSet::getSVFType</a></div><div class="ttdeci">SVFType * getSVFType(const Type *T)</div><div class="ttdoc">Get or create SVFType and typeinfo.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
1215
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a5f0bd932f3129a9c565f3a09711f7b99"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">SVF::LLVMModuleSet::getSVFType</a></div><div class="ttdeci">SVFType * getSVFType(const Type *T)</div><div class="ttdoc">Get or create SVFType and typeinfo.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01178">LLVMModule.cpp:1178</a></div></div>
|
|
1216
1216
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ad8ee8de153df3f1bbdebb67185a2731c"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">SVF::LLVMUtil::isConstantObjSym</a></div><div class="ttdeci">bool isConstantObjSym(const SVFValue *val)</div><div class="ttdoc">Check whether this value points-to a constant object.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00766">LLVMUtil.cpp:766</a></div></div>
|
|
1217
1217
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a50fc24901350df9db890ba16a9b87e33"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">SVF::LLVMModuleSet::getSVFFunction</a></div><div class="ttdeci">SVFFunction * getSVFFunction(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00198">LLVMModule.h:198</a></div></div>
|
|
1218
1218
|
<div class="ttc" id="anamespaceSVF_html_a52c8654c221bb53a59f70ea3cb1e5c45"><div class="ttname"><a href="namespaceSVF.html#a52c8654c221bb53a59f70ea3cb1e5c45">SVF::StructLayout</a></div><div class="ttdeci">llvm::StructLayout StructLayout</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00103">BasicTypes.h:103</a></div></div>
|
|
@@ -1222,7 +1222,7 @@ $(function() {
|
|
|
1222
1222
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a651b6a1cf3665277d2241220bb145aed"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a651b6a1cf3665277d2241220bb145aed">SVF::LLVMUtil::functionDoesNotRet</a></div><div class="ttdeci">bool functionDoesNotRet(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00106">LLVMUtil.cpp:106</a></div></div>
|
|
1223
1223
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a47d2af43ff12d9e1014fa19256619466"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a47d2af43ff12d9e1014fa19256619466">SVF::LLVMUtil::getCalledFunctions</a></div><div class="ttdeci">std::vector< const Function * > getCalledFunctions(const Function *F)</div><div class="ttdoc">Get all called funcions in a parent function.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00549">LLVMUtil.cpp:549</a></div></div>
|
|
1224
1224
|
<div class="ttc" id="anamespaceSVF_html_a5c943191dc4e242704943e5f594ae99e"><div class="ttname"><a href="namespaceSVF.html#a5c943191dc4e242704943e5f594ae99e">SVF::const_pred_iterator</a></div><div class="ttdeci">llvm::const_pred_iterator const_pred_iterator</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00247">BasicTypes.h:247</a></div></div>
|
|
1225
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aa4a604e47daaaf95babc7aca68991000"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aa4a604e47daaaf95babc7aca68991000">SVF::LLVMModuleSet::getDeclaration</a></div><div class="ttdeci">const FunctionSetType & getDeclaration(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#
|
|
1225
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aa4a604e47daaaf95babc7aca68991000"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aa4a604e47daaaf95babc7aca68991000">SVF::LLVMModuleSet::getDeclaration</a></div><div class="ttdeci">const FunctionSetType & getDeclaration(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00301">LLVMModule.h:301</a></div></div>
|
|
1226
1226
|
<div class="ttc" id="anamespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00083">BasicTypes.h:83</a></div></div>
|
|
1227
1227
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a4f803756f0a73e8564d9544ce27be1c9"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a4f803756f0a73e8564d9544ce27be1c9">SVF::LLVMUtil::getVtblStruct</a></div><div class="ttdeci">const ConstantStruct * getVtblStruct(const GlobalValue *vtbl)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00802">LLVMUtil.cpp:802</a></div></div>
|
|
1228
1228
|
<div class="ttc" id="anamespaceSVF_html_a1f4624771922dc8c2447ad7433588c73"><div class="ttname"><a href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">SVF::CallBase</a></div><div class="ttdeci">llvm::CallBase CallBase</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00144">BasicTypes.h:144</a></div></div>
|
|
@@ -537,7 +537,7 @@ $(function() {
|
|
|
537
537
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a08fbef6fe3e2af96a49f79ce23accb01"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a08fbef6fe3e2af96a49f79ce23accb01">SVF::LLVMUtil::isValVtbl</a></div><div class="ttdeci">bool isValVtbl(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00815">LLVMUtil.cpp:815</a></div></div>
|
|
538
538
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &arg_num, char **arg_value, std::vector< std::string > &moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00419">LLVMUtil.cpp:419</a></div></div>
|
|
539
539
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_adad59a953dd81e213db71babbbc9df2f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#adad59a953dd81e213db71babbbc9df2f">SVF::LLVMUtil::ArgInProgEntryFunction</a></div><div class="ttdeci">bool ArgInProgEntryFunction(const Value *val)</div><div class="ttdoc">Return true if this is an argument of a program entry function (e.g. main)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00180">LLVMUtil.h:180</a></div></div>
|
|
540
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a6e670254385050b9a5e612f881b07b9c"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a6e670254385050b9a5e612f881b07b9c">SVF::LLVMModuleSet::getDefinition</a></div><div class="ttdeci">const Function * getDefinition(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#
|
|
540
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a6e670254385050b9a5e612f881b07b9c"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a6e670254385050b9a5e612f881b07b9c">SVF::LLVMModuleSet::getDefinition</a></div><div class="ttdeci">const Function * getDefinition(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00280">LLVMModule.h:280</a></div></div>
|
|
541
541
|
<div class="ttc" id="anamespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00084">BasicTypes.h:84</a></div></div>
|
|
542
542
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ad56c48be3ba6ebb95416623256524097"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad56c48be3ba6ebb95416623256524097">SVF::LLVMUtil::getCallee</a></div><div class="ttdeci">const Function * getCallee(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00074">LLVMUtil.h:74</a></div></div>
|
|
543
543
|
<div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
|
|
@@ -591,7 +591,7 @@ $(function() {
|
|
|
591
591
|
<div class="ttc" id="aBasicTypes_8h_html"><div class="ttname"><a href="BasicTypes_8h.html">BasicTypes.h</a></div></div>
|
|
592
592
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ae59b0dc7f29dbd2018e819f77465f66e"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ae59b0dc7f29dbd2018e819f77465f66e">SVF::LLVMUtil::isSelectConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isSelectConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00271">LLVMUtil.h:271</a></div></div>
|
|
593
593
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a523a8c3f9bfaea178733822ac598d552"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a523a8c3f9bfaea178733822ac598d552">SVF::LLVMUtil::removeFunAnnotations</a></div><div class="ttdeci">void removeFunAnnotations(std::vector< Function * > &removedFuncList)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00487">LLVMUtil.cpp:487</a></div></div>
|
|
594
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a32558da64f03452c502ec57d1e106427"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a32558da64f03452c502ec57d1e106427">SVF::LLVMModuleSet::hasDefinition</a></div><div class="ttdeci">bool hasDefinition(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#
|
|
594
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a32558da64f03452c502ec57d1e106427"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a32558da64f03452c502ec57d1e106427">SVF::LLVMModuleSet::hasDefinition</a></div><div class="ttdeci">bool hasDefinition(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00273">LLVMModule.h:273</a></div></div>
|
|
595
595
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a206973624fcc58e6044c884dba23a754"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a206973624fcc58e6044c884dba23a754">SVF::LLVMUtil::isDestructor</a></div><div class="ttdeci">bool isDestructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01004">LLVMUtil.cpp:1004</a></div></div>
|
|
596
596
|
<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>
|
|
597
597
|
<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>
|
|
@@ -646,7 +646,7 @@ $(function() {
|
|
|
646
646
|
<div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>
|
|
647
647
|
<div class="ttc" id="anamespaceSVF_html_a58cdfbc4160cae08745b67844ac29801"><div class="ttname"><a href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">SVF::Argument</a></div><div class="ttdeci">llvm::Argument Argument</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00143">BasicTypes.h:143</a></div></div>
|
|
648
648
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a847fb0c433b5d3611151636ca4bc5bc5"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a847fb0c433b5d3611151636ca4bc5bc5">SVF::LLVMUtil::isNullPtrSym</a></div><div class="ttdeci">bool isNullPtrSym(const Value *val)</div><div class="ttdoc">Check whether this value is a black hole.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00114">LLVMUtil.h:114</a></div></div>
|
|
649
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a757bf149437cce22163c764ea9993e12"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a757bf149437cce22163c764ea9993e12">SVF::LLVMModuleSet::getGlobalRep</a></div><div class="ttdeci">GlobalVariable * getGlobalRep(const GlobalVariable *val) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#
|
|
649
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a757bf149437cce22163c764ea9993e12"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a757bf149437cce22163c764ea9993e12">SVF::LLVMModuleSet::getGlobalRep</a></div><div class="ttdeci">GlobalVariable * getGlobalRep(const GlobalVariable *val) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00319">LLVMModule.h:319</a></div></div>
|
|
650
650
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a416bcb6da0650f546cb7d83e6be850b6"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a416bcb6da0650f546cb7d83e6be850b6">SVF::LLVMUtil::getClassNameFromType</a></div><div class="ttdeci">std::string getClassNameFromType(const Type *ty)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01072">LLVMUtil.cpp:1072</a></div></div>
|
|
651
651
|
<!-- start footer part -->
|
|
652
652
|
<hr class="footer"/><address class="footer"><small>
|
|
@@ -411,7 +411,7 @@ $(function() {
|
|
|
411
411
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|
|
412
412
|
<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>
|
|
413
413
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a7276e82b4648ed0e1b3d1b8b37b24089"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">SVF::SVFIR::getAllFieldsObjVars</a></div><div class="ttdeci">NodeBS & getAllFieldsObjVars(const MemObj *obj)</div><div class="ttdoc">Get all fields of an object.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00475">SVFIR.cpp:475</a></div></div>
|
|
414
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
414
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01141">LLVMModule.cpp:1141</a></div></div>
|
|
415
415
|
<div class="ttc" id="aclassSVF_1_1MTAAnnotator_html_a108616cc98f15af3010ca45b91f32c04"><div class="ttname"><a href="classSVF_1_1MTAAnnotator.html#a108616cc98f15af3010ca45b91f32c04">SVF::MTAAnnotator::initialize</a></div><div class="ttdeci">void initialize(MHP *mhp, LockAnalysis *lsa)</div><div class="ttdoc">Initialize.</div><div class="ttdef"><b>Definition:</b> <a href="MTAAnnotator_8cpp_source.html#l00107">MTAAnnotator.cpp:107</a></div></div>
|
|
416
416
|
<div class="ttc" id="anamespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
417
417
|
<div class="ttc" id="aSVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DBUG model of each pass.</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00543">SVFType.h:543</a></div></div>
|
|
@@ -2819,7 +2819,7 @@ $(function() {
|
|
|
2819
2819
|
<div class="ttc" id="aclassSVF_1_1SVFIRReader_html_a0dbb50e2c4a8806a741e0c4173c445b8"><div class="ttname"><a href="classSVF_1_1SVFIRReader.html#a0dbb50e2c4a8806a741e0c4173c445b8">SVF::SVFIRReader::irGraphReader</a></div><div class="ttdeci">IRGraphReader irGraphReader</div><div class="ttdef"><b>Definition:</b> <a href="SVFFileSystem_8h_source.html#l01040">SVFFileSystem.h:1040</a></div></div>
|
|
2820
2820
|
<div class="ttc" id="aclassSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00423">SVFStatements.h:423</a></div></div>
|
|
2821
2821
|
<div class="ttc" id="anamespaceSVF_html_ac6a83809ca246bc7a33de3da6b4a4354"><div class="ttname"><a href="namespaceSVF.html#ac6a83809ca246bc7a33de3da6b4a4354">SVF::jsonIsObject</a></div><div class="ttdeci">bool jsonIsObject(const cJSON *item)</div><div class="ttdef"><b>Definition:</b> <a href="SVFFileSystem_8cpp_source.html#l00864">SVFFileSystem.cpp:864</a></div></div>
|
|
2822
|
-
<div class="ttc" id="aextapi_8c_html_aa7d767d03ce3929978c28f64e3a4b222"><div class="ttname"><a href="extapi_8c.html#aa7d767d03ce3929978c28f64e3a4b222">strtoul</a></div><div class="ttdeci">unsigned long int strtoul(const char *str, char **endptr, int base)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#
|
|
2822
|
+
<div class="ttc" id="aextapi_8c_html_aa7d767d03ce3929978c28f64e3a4b222"><div class="ttname"><a href="extapi_8c.html#aa7d767d03ce3929978c28f64e3a4b222">strtoul</a></div><div class="ttdeci">unsigned long int strtoul(const char *str, char **endptr, int base)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l01152">extapi.c:1152</a></div></div>
|
|
2823
2823
|
<div class="ttc" id="aclassSVF_1_1SVFLoop_html"><div class="ttname"><a href="classSVF_1_1SVFLoop.html">SVF::SVFLoop</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFLoop_8h_source.html#l00038">SVFLoop.h:38</a></div></div>
|
|
2824
2824
|
<div class="ttc" id="aclassSVF_1_1NodeIDAllocator_html_a8cf553cd07768aad3f3b91bf3d7c6228"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator.html#a8cf553cd07768aad3f3b91bf3d7c6228">SVF::NodeIDAllocator::Strategy</a></div><div class="ttdeci">Strategy</div><div class="ttdoc">Allocation strategy to use.</div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8h_source.html#l00027">NodeIDAllocator.h:27</a></div></div>
|
|
2825
2825
|
<div class="ttc" id="aclassSVF_1_1MultiOpndStmt_html"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html">SVF::MultiOpndStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00655">SVFStatements.h:655</a></div></div>
|
|
@@ -1418,7 +1418,7 @@ $(function() {
|
|
|
1418
1418
|
<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>
|
|
1419
1419
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_a2f5471985dfe62bc9ded830a693ab153"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a2f5471985dfe62bc9ded830a693ab153">SVF::GenericNode::iterator</a></div><div class="ttdeci">GEdgeSetTy::iterator iterator</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00154">GenericGraph.h:154</a></div></div>
|
|
1420
1420
|
<div class="ttc" id="aclassSVF_1_1PAGBuilderFromFile_html_ac5a5058088d03fc9e0e8a0ed8b4367aa"><div class="ttname"><a href="classSVF_1_1PAGBuilderFromFile.html#ac5a5058088d03fc9e0e8a0ed8b4367aa">SVF::PAGBuilderFromFile::build</a></div><div class="ttdeci">SVFIR * build()</div><div class="ttdoc">Start building.</div><div class="ttdef"><b>Definition:</b> <a href="PAGBuilderFromFile_8cpp_source.html#l00059">PAGBuilderFromFile.cpp:59</a></div></div>
|
|
1421
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
1421
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01141">LLVMModule.cpp:1141</a></div></div>
|
|
1422
1422
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ab5fc50624b5fe83b676b14bec4b99685"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ab5fc50624b5fe83b676b14bec4b99685">SVF::LLVMUtil::isGepConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isGepConstantExpr(const Value *val)</div><div class="ttdoc">Return corresponding constant expression, otherwise return nullptr.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00231">LLVMUtil.h:231</a></div></div>
|
|
1423
1423
|
<div class="ttc" id="anamespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
1424
1424
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a215cc9fd716798bbb7f96f5b64e01349"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a215cc9fd716798bbb7f96f5b64e01349">SVF::LLVMUtil::isUnaryConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isUnaryConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00317">LLVMUtil.h:317</a></div></div>
|
|
@@ -509,7 +509,7 @@ $(function() {
|
|
|
509
509
|
<div class="ttc" id="anamespaceSVF_html_ac9a05dd7ab16e998625037aa242cd30f"><div class="ttname"><a href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">SVF::BranchInst</a></div><div class="ttdeci">llvm::BranchInst BranchInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00152">BasicTypes.h:152</a></div></div>
|
|
510
510
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_aaf521832909781894659725300cf4f49"><div class="ttname"><a href="classSVF_1_1ICFG.html#aaf521832909781894659725300cf4f49">SVF::ICFG::getIntraICFGNode</a></div><div class="ttdeci">IntraICFGNode * getIntraICFGNode(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00259">ICFG.cpp:259</a></div></div>
|
|
511
511
|
<div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html_aa2e07d018323c9d06393266970a0c340"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#aa2e07d018323c9d06393266970a0c340">SVF::SVFIRBuilder::visitVAEndInst</a></div><div class="ttdeci">void visitVAEndInst(VAEndInst &)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00152">SVFIRBuilder.h:152</a></div></div>
|
|
512
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ac1a9d20d62066ec4e181fad223669e32"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">SVF::LLVMModuleSet::getContext</a></div><div class="ttdeci">LLVMContext & getContext() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#
|
|
512
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ac1a9d20d62066ec4e181fad223669e32"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">SVF::LLVMModuleSet::getContext</a></div><div class="ttdeci">LLVMContext & getContext() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00332">LLVMModule.h:332</a></div></div>
|
|
513
513
|
<div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html_a4e1b6797df3e7b98da876f50741e6a3a"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a4e1b6797df3e7b98da876f50741e6a3a">SVF::SVFIRBuilder::addGepEdge</a></div><div class="ttdeci">void addGepEdge(NodeID src, NodeID dst, const AccessPath &ap, bool constGep)</div><div class="ttdoc">Add Gep edge.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00378">SVFIRBuilder.h:378</a></div></div>
|
|
514
514
|
<div class="ttc" id="aclassSVF_1_1TDJoinPE_html"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html">SVF::TDJoinPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01214">SVFStatements.h:1214</a></div></div>
|
|
515
515
|
<div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html_af4e2ec8dee9fca167e20b01cc10b56fd"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#af4e2ec8dee9fca167e20b01cc10b56fd">SVF::SVFIRBuilder::getGlobalVarField</a></div><div class="ttdeci">NodeID getGlobalVarField(const GlobalVariable *gvar, u32_t offset, SVFType *tpy)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00461">SVFIRBuilder.cpp:461</a></div></div>
|
|
@@ -610,7 +610,7 @@ $(function() {
|
|
|
610
610
|
<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>
|
|
611
611
|
<div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html_a1717e26e29f50096b96d7e4c43fe1c76"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a1717e26e29f50096b96d7e4c43fe1c76">SVF::SVFIRBuilder::addNullPtrNode</a></div><div class="ttdeci">NodeID addNullPtrNode()</div><div class="ttdoc">Add NullPtr PAGNode.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00271">SVFIRBuilder.h:271</a></div></div>
|
|
612
612
|
<div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html_abc836736ea16d99921c0e734cf0a3c72"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#abc836736ea16d99921c0e734cf0a3c72">SVF::SVFIRBuilder::visitSelectInst</a></div><div class="ttdeci">void visitSelectInst(SelectInst &I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00789">SVFIRBuilder.cpp:789</a></div></div>
|
|
613
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
613
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01141">LLVMModule.cpp:1141</a></div></div>
|
|
614
614
|
<div class="ttc" id="anamespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
615
615
|
<div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html_a0bc35bb64bbf3b494c0ac93b99c5a6d2"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a0bc35bb64bbf3b494c0ac93b99c5a6d2">SVF::SVFIRBuilder::visitLandingPadInst</a></div><div class="ttdeci">void visitLandingPadInst(LandingPadInst &I)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00170">SVFIRBuilder.h:170</a></div></div>
|
|
616
616
|
<div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html_ad0e9f1dd1cba235a699c2b710a888d06"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#ad0e9f1dd1cba235a699c2b710a888d06">SVF::SVFIRBuilder::addComplexConsForExt</a></div><div class="ttdeci">virtual void addComplexConsForExt(Value *D, Value *S, const Value *sz)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRExtAPI_8cpp_source.html#l00080">SVFIRExtAPI.cpp:80</a></div></div>
|
|
@@ -247,109 +247,101 @@ $(function() {
|
|
|
247
247
|
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">if</span>(SVFUtil::isa<PointerType>(cs->getType()))</div>
|
|
248
248
|
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  addCopyEdge(getValueNode(cs->getArgOperand(0)), getValueNode(cs));</div>
|
|
249
249
|
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  }</div>
|
|
250
|
-
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>
|
|
250
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(svfCallee-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>().compare(<span class="stringliteral">"dlsym"</span>) == 0)</div>
|
|
251
251
|
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  {</div>
|
|
252
|
-
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <a class="code" href="namespaceSVF.html#
|
|
253
|
-
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <a class="code" href="
|
|
254
|
-
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> 
|
|
255
|
-
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> 
|
|
256
|
-
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> 
|
|
257
|
-
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> 
|
|
258
|
-
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> 
|
|
259
|
-
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> 
|
|
260
|
-
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> 
|
|
261
|
-
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> 
|
|
262
|
-
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> 
|
|
263
|
-
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  </div>
|
|
264
|
-
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> 
|
|
265
|
-
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> 
|
|
266
|
-
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">
|
|
267
|
-
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> 
|
|
252
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* src = cs->getArgOperand(1);</div>
|
|
253
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a>* gep = SVFUtil::dyn_cast<GetElementPtrInst>(src))</div>
|
|
254
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  src = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a07bd47ccfd02c5a2a6db26b537b2184f">stripConstantCasts</a>(gep->getPointerOperand());</div>
|
|
255
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  </div>
|
|
256
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keyword">auto</span> getHookFn = [](<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* src)-><span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>*</div>
|
|
257
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  {</div>
|
|
258
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">if</span> (!SVFUtil::isa<GlobalVariable>(src))</div>
|
|
259
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
260
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  </div>
|
|
261
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keyword">auto</span> *glob = SVFUtil::cast<GlobalVariable>(src);</div>
|
|
262
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">if</span> (!glob->hasInitializer() || !SVFUtil::isa<ConstantDataArray>(glob->getInitializer()))</div>
|
|
263
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
264
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  </div>
|
|
265
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keyword">auto</span> *constarray = SVFUtil::cast<ConstantDataArray>(glob->getInitializer());</div>
|
|
266
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a76b0d0ac69c170838cfc8ee26f4518a0">LLVMUtil::getProgFunction</a>(constarray->getAsCString().str());</div>
|
|
267
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  };</div>
|
|
268
268
|
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  </div>
|
|
269
|
-
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> 
|
|
270
|
-
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> 
|
|
271
|
-
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> 
|
|
272
|
-
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> 
|
|
273
|
-
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> 
|
|
274
|
-
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> 
|
|
275
|
-
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> 
|
|
276
|
-
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> 
|
|
277
|
-
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> 
|
|
278
|
-
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> 
|
|
279
|
-
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> 
|
|
280
|
-
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> 
|
|
281
|
-
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> 
|
|
282
|
-
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> 
|
|
283
|
-
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> 
|
|
284
|
-
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> 
|
|
285
|
-
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> 
|
|
269
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fn = getHookFn(src))</div>
|
|
270
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  {</div>
|
|
271
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcNode = getValueNode(fn);</div>
|
|
272
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  addCopyEdge(srcNode, getValueNode(cs));</div>
|
|
273
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  }</div>
|
|
274
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div>
|
|
275
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(svfCallee-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>().find(<span class="stringliteral">"_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_"</span>) != std::string::npos)</div>
|
|
276
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  {</div>
|
|
277
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  assert(svfCall-><a class="code" href="classSVF_1_1SVFCallInst.html#a496d0e963f0f6a4f9c08183fa91792b0">arg_size</a>() == 4 && <span class="stringliteral">"_Rb_tree_insert_and_rebalance should have 4 arguments.\n"</span>);</div>
|
|
278
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  </div>
|
|
279
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="comment">// We have vArg3 points to the entry of _Rb_tree_node_base { color; parent; left; right; }.</span></div>
|
|
280
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="comment">// Now we calculate the offset from base to vArg3</span></div>
|
|
281
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vnArg3 = pag->getValueNode(svfCall-><a class="code" href="classSVF_1_1SVFCallInst.html#a3cbb4b4089c8b27d01da15f2d2f22e14">getArgOperand</a>(3));</div>
|
|
282
|
+
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> = getAccessPathFromBaseNode(vnArg3).getConstantFieldIdx();</div>
|
|
283
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  </div>
|
|
284
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="comment">// We get all flattened fields of base</span></div>
|
|
285
|
+
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  vector<AccessPath> fields = pag->getTypeLocSetsMap(vnArg3).second;</div>
|
|
286
286
|
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  </div>
|
|
287
|
-
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="comment">// We
|
|
288
|
-
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="comment">//
|
|
289
|
-
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="namespaceSVF.html#
|
|
290
|
-
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> 
|
|
291
|
-
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  </div>
|
|
292
|
-
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> 
|
|
293
|
-
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> 
|
|
294
|
-
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> 
|
|
295
|
-
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> 
|
|
296
|
-
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> 
|
|
297
|
-
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> 
|
|
298
|
-
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> 
|
|
299
|
-
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> 
|
|
300
|
-
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> 
|
|
301
|
-
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> 
|
|
302
|
-
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> 
|
|
303
|
-
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> 
|
|
304
|
-
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> 
|
|
305
|
-
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> 
|
|
306
|
-
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> 
|
|
307
|
-
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> 
|
|
308
|
-
<div class="line"><a name="
|
|
309
|
-
<div class="line"><a name="
|
|
310
|
-
<div class="line"><a name="
|
|
311
|
-
<div class="line"><a name="
|
|
312
|
-
<div class="line"><a name="
|
|
313
|
-
<div class="line"><a name="
|
|
314
|
-
<div class="line"><a name="
|
|
315
|
-
<div class="line"><a name="
|
|
316
|
-
<div class="line"><a name="
|
|
317
|
-
<div class="line"><a name="
|
|
318
|
-
<div class="line"><a name="
|
|
319
|
-
<div class="line"><a name="
|
|
320
|
-
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> 
|
|
321
|
-
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> 
|
|
322
|
-
<div class="line"><a name="
|
|
323
|
-
<div class="line"><a name="
|
|
324
|
-
<div class="line"><a name="
|
|
325
|
-
<div class="line"><a name="
|
|
326
|
-
<div class="line"><a name="
|
|
327
|
-
<div class="line"><a name="
|
|
328
|
-
<div class="line"><a name="
|
|
329
|
-
<div class="line"><a name="
|
|
330
|
-
<div class="line"><a name="
|
|
331
|
-
<div class="line"><a name="
|
|
332
|
-
<div class="line"><a name="
|
|
333
|
-
<div class="line"><a name="
|
|
334
|
-
<div class="line"><a name="
|
|
335
|
-
<div class="line"><a name="
|
|
336
|
-
<div class="line"><a name="
|
|
337
|
-
<div class="line"><a name="
|
|
338
|
-
<div class="line"><a name="
|
|
339
|
-
<div class="line"><a name="
|
|
340
|
-
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> 
|
|
341
|
-
<div class="line"><a name="
|
|
342
|
-
<div class="line"><a name="
|
|
343
|
-
<div class="line"><a name="
|
|
344
|
-
<div class="line"><a name="
|
|
345
|
-
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  }</div>
|
|
346
|
-
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  }</div>
|
|
347
|
-
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">else</span></div>
|
|
348
|
-
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  {</div>
|
|
349
|
-
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  }</div>
|
|
350
|
-
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  }</div>
|
|
351
|
-
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  </div>
|
|
352
|
-
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> }</div>
|
|
287
|
+
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="comment">// We summarize the side effects: arg3->parent = arg1, arg3->left = arg1, arg3->right = arg1</span></div>
|
|
288
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="comment">// Note that arg0 is aligned with "offset".</span></div>
|
|
289
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> i = <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> + 1; i <= <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> + 3; ++i)</div>
|
|
290
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  {</div>
|
|
291
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keywordflow">if</span>((<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>)i >= fields.size())</div>
|
|
292
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">break</span>;</div>
|
|
293
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* elementType = pag->getSymbolInfo()->getFlatternedElemType(pag->getTypeLocSetsMap(vnArg3).first,</div>
|
|
294
|
+
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  fields[i].getConstantFieldIdx());</div>
|
|
295
|
+
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vnD = getGepValVar(cs->getArgOperand(3), fields[i], elementType);</div>
|
|
296
|
+
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vnS = pag->getValueNode(svfCall-><a class="code" href="classSVF_1_1SVFCallInst.html#a3cbb4b4089c8b27d01da15f2d2f22e14">getArgOperand</a>(1));</div>
|
|
297
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">if</span>(vnD && vnS)</div>
|
|
298
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  addStoreEdge(vnS,vnD);</div>
|
|
299
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div>
|
|
300
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div>
|
|
301
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  </div>
|
|
302
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c2abeb363081381c3dc939ab511e3f0">isThreadForkCall</a>(svfInst))</div>
|
|
303
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  {</div>
|
|
304
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* forkedFun = SVFUtil::dyn_cast<SVFFunction>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2790c5289dad1d6e80f7597a2ea458ab">getForkedFun</a>(svfInst)))</div>
|
|
305
|
+
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  {</div>
|
|
306
|
+
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  forkedFun = forkedFun->getDefFunForMultipleModule();</div>
|
|
307
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* actualParm = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8c64663b564eb7c399013389920ab500">getActualParmAtForkSite</a>(svfInst);</div>
|
|
308
|
+
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  assert((forkedFun->arg_size() <= 2) && <span class="stringliteral">"Size of formal parameter of start routine should be one"</span>);</div>
|
|
309
|
+
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">if</span> (forkedFun->arg_size() <= 2 && forkedFun->arg_size() >= 1)</div>
|
|
310
|
+
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  {</div>
|
|
311
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* formalParm = forkedFun->getArg(0);</div>
|
|
312
|
+
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">if</span> (actualParm-><a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a870b63af2bf9fe43cdf1df3d56b20f6c">isPointerTy</a>() && formalParm-><a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a870b63af2bf9fe43cdf1df3d56b20f6c">isPointerTy</a>())</div>
|
|
313
|
+
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  {</div>
|
|
314
|
+
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *icfgNode = pag->getICFG()->getCallICFGNode(svfInst);</div>
|
|
315
|
+
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a> *entry = pag->getICFG()->getFunEntryICFGNode(forkedFun);</div>
|
|
316
|
+
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  addThreadForkEdge(pag->getValueNode(actualParm), pag->getValueNode(formalParm), icfgNode, entry);</div>
|
|
317
|
+
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  }</div>
|
|
318
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  }</div>
|
|
319
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  }</div>
|
|
320
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">else</span></div>
|
|
321
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  {</div>
|
|
322
|
+
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  }</div>
|
|
323
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  }</div>
|
|
324
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  </div>
|
|
325
|
+
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a28fbb7cc51eb7e25d88f43e3eb1f30fb">isHareParForCall</a>(svfInst))</div>
|
|
326
|
+
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  {</div>
|
|
327
|
+
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* taskFunc = SVFUtil::dyn_cast<SVFFunction>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a5cee46f58bdab3f9b1c698e97290152f">getTaskFuncAtHareParForSite</a>(svfInst)))</div>
|
|
328
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  {</div>
|
|
329
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  assert((taskFunc->arg_size() == 3) && <span class="stringliteral">"Size of formal parameter of hare_parallel_for's task routine should be 3"</span>);</div>
|
|
330
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* actualParm = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2f74db48793a0db76c000ffecf9e1bd2">getTaskDataAtHareParForSite</a>(svfInst);</div>
|
|
331
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* formalParm = taskFunc->getArg(0);</div>
|
|
332
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">if</span> (actualParm-><a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a870b63af2bf9fe43cdf1df3d56b20f6c">isPointerTy</a>() && formalParm-><a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a870b63af2bf9fe43cdf1df3d56b20f6c">isPointerTy</a>())</div>
|
|
333
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  {</div>
|
|
334
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *icfgNode = pag->getICFG()->getCallICFGNode(svfInst);</div>
|
|
335
|
+
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a> *entry = pag->getICFG()->getFunEntryICFGNode(taskFunc);</div>
|
|
336
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  addThreadForkEdge(pag->getValueNode(actualParm), pag->getValueNode(formalParm), icfgNode, entry);</div>
|
|
337
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  }</div>
|
|
338
|
+
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  }</div>
|
|
339
|
+
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">else</span></div>
|
|
340
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  {</div>
|
|
341
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  }</div>
|
|
342
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  }</div>
|
|
343
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  </div>
|
|
344
|
+
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> }</div>
|
|
353
345
|
</div><!-- fragment --></div><!-- contents -->
|
|
354
346
|
<div class="ttc" id="anamespaceSVF_html_a5c4820681ef340339ddded756eb82ae1"><div class="ttname"><a href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">SVF::APOffset</a></div><div class="ttdeci">s64_t APOffset</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00061">SVFType.h:61</a></div></div>
|
|
355
347
|
<div class="ttc" id="aclassSVF_1_1SVFCallInst_html_a3cbb4b4089c8b27d01da15f2d2f22e14"><div class="ttname"><a href="classSVF_1_1SVFCallInst.html#a3cbb4b4089c8b27d01da15f2d2f22e14">SVF::SVFCallInst::getArgOperand</a></div><div class="ttdeci">const SVFValue * getArgOperand(u32_t i) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00708">SVFValue.h:708</a></div></div>
|
|
@@ -361,7 +353,7 @@ $(function() {
|
|
|
361
353
|
<div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
|
|
362
354
|
<div class="ttc" id="anamespaceSVF_html_aa962cc1d782cc46553251e96b64a754b"><div class="ttname"><a href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">SVF::PointerType</a></div><div class="ttdeci">llvm::PointerType PointerType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00094">BasicTypes.h:94</a></div></div>
|
|
363
355
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a07bd47ccfd02c5a2a6db26b537b2184f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a07bd47ccfd02c5a2a6db26b537b2184f">SVF::LLVMUtil::stripConstantCasts</a></div><div class="ttdeci">const Value * stripConstantCasts(const Value *val)</div><div class="ttdoc">Strip off the constant casts.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00222">LLVMUtil.cpp:222</a></div></div>
|
|
364
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a5f0bd932f3129a9c565f3a09711f7b99"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">SVF::LLVMModuleSet::getSVFType</a></div><div class="ttdeci">SVFType * getSVFType(const Type *T)</div><div class="ttdoc">Get or create SVFType and typeinfo.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
356
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a5f0bd932f3129a9c565f3a09711f7b99"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">SVF::LLVMModuleSet::getSVFType</a></div><div class="ttdeci">SVFType * getSVFType(const Type *T)</div><div class="ttdoc">Get or create SVFType and typeinfo.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01178">LLVMModule.cpp:1178</a></div></div>
|
|
365
357
|
<div class="ttc" id="anamespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdoc">LLVM Basic classes.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00080">BasicTypes.h:80</a></div></div>
|
|
366
358
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a2358a8194b5e2c4bcbb5218dee7fcbcd"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a2358a8194b5e2c4bcbb5218dee7fcbcd">SVF::AccessPath::addOffsetVarAndGepTypePair</a></div><div class="ttdeci">bool addOffsetVarAndGepTypePair(const SVFVar *var, const SVFType *gepIterType)</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00042">AccessPath.cpp:42</a></div></div>
|
|
367
359
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ab2064cb70c76f399ce115f2621adea35"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVF::SVFUtil::isHeapAllocExtCallViaRet</a></div><div class="ttdeci">bool isHeapAllocExtCallViaRet(const CallSite cs)</div><div class="ttdoc">interfaces to be used externally</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00450">SVFUtil.h:450</a></div></div>
|
|
@@ -357,7 +357,7 @@ $(function() {
|
|
|
357
357
|
</div><!-- fragment --></div><!-- contents -->
|
|
358
358
|
<div class="ttc" id="aclassSVF_1_1ThreadAPI_html_a6852ff1eedc1117e95e45e4a90c80d53"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">SVF::ThreadAPI::getThreadAPI</a></div><div class="ttdeci">static ThreadAPI * getThreadAPI()</div><div class="ttdoc">Return a static reference.</div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00102">ThreadAPI.h:102</a></div></div>
|
|
359
359
|
<div class="ttc" id="aSVFUtil_8cpp_html_a326cbc9ef8d75aa44a591bf476c9835b"><div class="ttname"><a href="SVFUtil_8cpp.html#a326cbc9ef8d75aa44a591bf476c9835b">KPUR</a></div><div class="ttdeci">#define KPUR</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00044">SVFUtil.cpp:44</a></div></div>
|
|
360
|
-
<div class="ttc" id="aextapi_8c_html_a4a710d86541afc6b7dafddcdb4b1c94f"><div class="ttname"><a href="extapi_8c.html#a4a710d86541afc6b7dafddcdb4b1c94f">strstr</a></div><div class="ttdeci">char * strstr(const char *haystack, const char *needle)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#
|
|
360
|
+
<div class="ttc" id="aextapi_8c_html_a4a710d86541afc6b7dafddcdb4b1c94f"><div class="ttname"><a href="extapi_8c.html#a4a710d86541afc6b7dafddcdb4b1c94f">strstr</a></div><div class="ttdeci">char * strstr(const char *haystack, const char *needle)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l01008">extapi.c:1008</a></div></div>
|
|
361
361
|
<div class="ttc" id="aSVFUtil_8cpp_html_a137aa83ec74421d226a90c92ec032ac9"><div class="ttname"><a href="SVFUtil_8cpp.html#a137aa83ec74421d226a90c92ec032ac9">KNRM</a></div><div class="ttdeci">#define KNRM</div><div class="ttdoc">Color for output format.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00039">SVFUtil.cpp:39</a></div></div>
|
|
362
362
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a7655b13bbfe720ca2b8a25e0a72528e6"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7655b13bbfe720ca2b8a25e0a72528e6">SVF::SVFUtil::errMsg</a></div><div class="ttdeci">std::string errMsg(const std::string &msg)</div><div class="ttdoc">Print error message by converting a string into red string output.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00076">SVFUtil.cpp:76</a></div></div>
|
|
363
363
|
<div class="ttc" id="aclassSVF_1_1SVFCallInst_html"><div class="ttname"><a href="classSVF_1_1SVFCallInst.html">SVF::SVFCallInst</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00661">SVFValue.h:661</a></div></div>
|