svf-tools 1.0.759 → 1.0.761
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CMakeLists.txt +2 -2
- package/SVF-doxygen/html/html/CFGrammar_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CommandLine_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +6 -5
- package/SVF-doxygen/html/html/SVFFileSystem_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRExtAPI_8cpp_source.html +92 -100
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/cJSON_8cpp.html +1 -1
- package/SVF-doxygen/html/html/cJSON_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/classOption.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +92 -101
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRReader.html +1 -1
- package/SVF-doxygen/html/html/dir_3bbf4ce25bc1411b817b5643b794c8fb.html +2 -0
- package/SVF-doxygen/html/html/dir_fee120689dee99ef16f8bfcaa7a76083.html +0 -2
- package/SVF-doxygen/html/html/extapi_8c.html +223 -221
- package/SVF-doxygen/html/html/extapi_8c_source.html +1103 -1257
- package/SVF-doxygen/html/html/files.html +38 -38
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +1 -1
- package/SVF-doxygen/html/html/search/all_12.js +1 -1
- package/SVF-doxygen/html/html/search/all_13.js +1 -1
- package/package.json +1 -1
- package/svf/lib/Util/ExtAPI.cpp +3 -2
- package/svf-llvm/lib/SVFIRExtAPI.cpp +0 -8
- package/{svf/lib/Util → svf-llvm/lib}/extapi.c +3 -156
package/CMakeLists.txt
CHANGED
|
@@ -91,6 +91,6 @@ install(
|
|
|
91
91
|
# Compile extapi.c to extapi.bc
|
|
92
92
|
find_path(LLVM_CLANG_DIR NAMES clang PATH_SUFFIXES bin)
|
|
93
93
|
add_custom_target(extapi_ir ALL
|
|
94
|
-
COMMAND ${LLVM_CLANG_DIR}/clang -w -S -c -Xclang -disable-O0-optnone -fno-discard-value-names -emit-llvm ${PROJECT_SOURCE_DIR}/svf/lib/
|
|
95
|
-
DEPENDS ${PROJECT_SOURCE_DIR}/svf/lib/
|
|
94
|
+
COMMAND ${LLVM_CLANG_DIR}/clang -w -S -c -Xclang -disable-O0-optnone -fno-discard-value-names -emit-llvm ${PROJECT_SOURCE_DIR}/svf-llvm/lib/extapi.c -o ${PROJECT_BINARY_DIR}/svf-llvm/extapi.bc
|
|
95
|
+
DEPENDS ${PROJECT_SOURCE_DIR}/svf-llvm/lib/extapi.c
|
|
96
96
|
)
|
|
@@ -524,14 +524,14 @@ $(function() {
|
|
|
524
524
|
<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>
|
|
525
525
|
<div class="ttc" id="acJSON_8cpp_html_a65e9886d74aaee76545e83dd09011727"><div class="ttname"><a href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a></div><div class="ttdeci">#define false</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00070">cJSON.cpp:70</a></div></div>
|
|
526
526
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a7583350e892c62a454de8a8317e4c1b8"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a7583350e892c62a454de8a8317e4c1b8">SVF::GrammarBase::insertTerminalSymbol</a></div><div class="ttdeci">Symbol insertTerminalSymbol(std::string strLit)</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8cpp_source.html#l00280">CFGrammar.cpp:280</a></div></div>
|
|
527
|
-
<div class="ttc" id="aextapi_8c_html_a3fa45b35c8abf67a950b6d3d4063dede"><div class="ttname"><a href="extapi_8c.html#a3fa45b35c8abf67a950b6d3d4063dede">isdigit</a></div><div class="ttdeci">int isdigit(int c)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#
|
|
527
|
+
<div class="ttc" id="aextapi_8c_html_a3fa45b35c8abf67a950b6d3d4063dede"><div class="ttname"><a href="extapi_8c.html#a3fa45b35c8abf67a950b6d3d4063dede">isdigit</a></div><div class="ttdeci">int isdigit(int c)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l01038">extapi.c:1038</a></div></div>
|
|
528
528
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a2eb6ab294093710ca1dc119836adff5a"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a2eb6ab294093710ca1dc119836adff5a">SVF::GrammarBase::setRawProductions</a></div><div class="ttdeci">void setRawProductions(SymbolMap< Symbol, Productions > &rawProductions)</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8cpp_source.html#l00040">CFGrammar.cpp:40</a></div></div>
|
|
529
529
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a082342020848e545c983df4d5ec6720a"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a082342020848e545c983df4d5ec6720a">SVF::GrammarBase::setKindToAttrsMap</a></div><div class="ttdeci">void setKindToAttrsMap(const Map< Kind, Set< Attribute >> &kindToAttrsMap)</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8cpp_source.html#l00045">CFGrammar.cpp:45</a></div></div>
|
|
530
530
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_aa188ee22955b98c31abbf2b339b64d20"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#aa188ee22955b98c31abbf2b339b64d20">SVF::GrammarBase::insertAttribute</a></div><div class="ttdeci">void insertAttribute(Kind kind, Attribute a)</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8cpp_source.html#l00327">CFGrammar.cpp:327</a></div></div>
|
|
531
531
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a1e1bf1e32bcd7c68ce789c2f9f6327c0"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a1e1bf1e32bcd7c68ce789c2f9f6327c0">SVF::GrammarBase::setAttributeKinds</a></div><div class="ttdeci">void setAttributeKinds(const Set< Kind > &attributeKind)</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8cpp_source.html#l00050">CFGrammar.cpp:50</a></div></div>
|
|
532
532
|
<div class="ttc" id="aSVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
|
|
533
533
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a63389968c8d246a84562a8d17e08790b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a63389968c8d246a84562a8d17e08790b">SVF::GrammarBase::insertNonTerminalSymbol</a></div><div class="ttdeci">Symbol insertNonTerminalSymbol(std::string strLit)</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8cpp_source.html#l00249">CFGrammar.cpp:249</a></div></div>
|
|
534
|
-
<div class="ttc" id="aextapi_8c_html_adadd6582d46775aab6a51e29d16d9f77"><div class="ttname"><a href="extapi_8c.html#adadd6582d46775aab6a51e29d16d9f77">isupper</a></div><div class="ttdeci">int isupper(int c)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#
|
|
534
|
+
<div class="ttc" id="aextapi_8c_html_adadd6582d46775aab6a51e29d16d9f77"><div class="ttname"><a href="extapi_8c.html#adadd6582d46775aab6a51e29d16d9f77">isupper</a></div><div class="ttdeci">int isupper(int c)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l01068">extapi.c:1068</a></div></div>
|
|
535
535
|
<div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
536
536
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a7909a5f90ed1678a178f18259f0b66a9"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a7909a5f90ed1678a178f18259f0b66a9">SVF::GrammarBase::EBNFSigns</a></div><div class="ttdeci">Map< std::string, Kind > EBNFSigns</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8h_source.html#l00283">CFGrammar.h:283</a></div></div>
|
|
537
537
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a4826df2851cedaa92e3ab10feee9f583"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a4826df2851cedaa92e3ab10feee9f583">SVF::GrammarBase::strToSymbol</a></div><div class="ttdeci">Symbol strToSymbol(const std::string str) const</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8cpp_source.html#l00074">CFGrammar.cpp:74</a></div></div>
|
|
@@ -542,7 +542,7 @@ $(function() {
|
|
|
542
542
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a49aad1a3620735a2929795df3d23ba38"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a49aad1a3620735a2929795df3d23ba38">SVF::GrammarBase::symToStrDump</a></div><div class="ttdeci">std::string symToStrDump(Symbol sym) const</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8cpp_source.html#l00139">CFGrammar.cpp:139</a></div></div>
|
|
543
543
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_ac9f86b0861e93eee2548aa7f5f3b7b7f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac9f86b0861e93eee2548aa7f5f3b7b7f">SVF::GrammarBase::totalKind</a></div><div class="ttdeci">u32_t totalKind</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8h_source.html#l00287">CFGrammar.h:287</a></div></div>
|
|
544
544
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a7aef5c42fbd8a62dd4a541cc0e8e8187"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">SVF::GrammarBase::Kind</a></div><div class="ttdeci">u32_t Kind</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8h_source.html#l00039">CFGrammar.h:39</a></div></div>
|
|
545
|
-
<div class="ttc" id="aextapi_8c_html_af947cbf1ae303e5297c9d68c68a6b9cb"><div class="ttname"><a href="extapi_8c.html#af947cbf1ae303e5297c9d68c68a6b9cb">isalpha</a></div><div class="ttdeci">int isalpha(int character)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#
|
|
545
|
+
<div class="ttc" id="aextapi_8c_html_af947cbf1ae303e5297c9d68c68a6b9cb"><div class="ttname"><a href="extapi_8c.html#af947cbf1ae303e5297c9d68c68a6b9cb">isalpha</a></div><div class="ttdeci">int isalpha(int character)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l01023">extapi.c:1023</a></div></div>
|
|
546
546
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a7707662599fe848ae6526802be4f7b6c"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a7707662599fe848ae6526802be4f7b6c">SVF::GrammarBase::kindToAttrsMap</a></div><div class="ttdeci">Map< Kind, Set< Attribute > > kindToAttrsMap</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8h_source.html#l00285">CFGrammar.h:285</a></div></div>
|
|
547
547
|
<div class="ttc" id="aclassSVF_1_1CFGrammar_html_a02117195df31a99b3fa3250ba33425c5"><div class="ttname"><a href="classSVF_1_1CFGrammar.html#a02117195df31a99b3fa3250ba33425c5">SVF::CFGrammar::firstRHSToProds</a></div><div class="ttdeci">SymbolMap< Symbol, Productions > firstRHSToProds</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8h_source.html#l00396">CFGrammar.h:396</a></div></div>
|
|
548
548
|
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_ab070e5449d26e347b957d8b994d0303f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">SVF::GrammarBase::Attribute</a></div><div class="ttdeci">u32_t Attribute</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8h_source.html#l00040">CFGrammar.h:40</a></div></div>
|
|
@@ -600,7 +600,7 @@ $(function() {
|
|
|
600
600
|
<div class="ttc" id="aclassOption_html_ab40684f5ece904e9b81180ca1012b0b6"><div class="ttname"><a href="classOption.html#ab40684f5ece904e9b81180ca1012b0b6">Option::setValue</a></div><div class="ttdeci">void setValue(T v)</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00351">CommandLine.h:351</a></div></div>
|
|
601
601
|
<div class="ttc" id="aclassOptionMap_html_a0e39650a4340e7ff4f214bc4223575eb"><div class="ttname"><a href="classOptionMap.html#a0e39650a4340e7ff4f214bc4223575eb">OptionMap::possibilities</a></div><div class="ttdeci">OptionPossibilities possibilities</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00451">CommandLine.h:451</a></div></div>
|
|
602
602
|
<div class="ttc" id="aclassOptionMultiple_html_aa582e95f6546ffd2fc8420699967bca9"><div class="ttname"><a href="classOptionMultiple.html#aa582e95f6546ffd2fc8420699967bca9">OptionMultiple::canSet</a></div><div class="ttdeci">virtual bool canSet(void) const override</div><div class="ttdoc">Can this option be set?</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00477">CommandLine.h:477</a></div></div>
|
|
603
|
-
<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#
|
|
603
|
+
<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>
|
|
604
604
|
<div class="ttc" id="aclassOptionBase_html_ac68017dd45d05c5fe26ae04bb58f903c"><div class="ttname"><a href="classOptionBase.html#ac68017dd45d05c5fe26ae04bb58f903c">OptionBase::getOptionsMap</a></div><div class="ttdeci">static std::map< std::string, OptionBase * > & getOptionsMap(void)</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00307">CommandLine.h:307</a></div></div>
|
|
605
605
|
<div class="ttc" id="aclassOption_html_a067413be0c747358947c539a4179d489"><div class="ttname"><a href="classOption.html#a067413be0c747358947c539a4179d489">Option::value</a></div><div class="ttdeci">T value</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00403">CommandLine.h:403</a></div></div>
|
|
606
606
|
<div class="ttc" id="aclassOptionBase_html_ad6fe65a503048686686ea6ced35a2dfd"><div class="ttname"><a href="classOptionBase.html#ad6fe65a503048686686ea6ced35a2dfd">OptionBase::isMultiple</a></div><div class="ttdeci">virtual bool isMultiple(void) const</div><div class="ttdoc">Whether this option is an OptionMultiple.</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00064">CommandLine.h:64</a></div></div>
|
|
@@ -200,10 +200,11 @@ $(function() {
|
|
|
200
200
|
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  assert(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <span class="stringliteral">"Null SVFFunction* pointer"</span>);</div>
|
|
201
201
|
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">if</span> (<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->isDeclaration() || <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->isIntrinsic())</div>
|
|
202
202
|
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
203
|
-
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">else</span
|
|
204
|
-
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">return</span> <
|
|
205
|
-
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">
|
|
206
|
-
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> 
|
|
203
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"OVERWRITE"</span>) && <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->getAnnotations().size() == 1)</div>
|
|
204
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
205
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">else</span></div>
|
|
206
|
+
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">return</span> !<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->getAnnotations().empty();</div>
|
|
207
|
+
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> }</div>
|
|
207
208
|
</div><!-- fragment --></div><!-- contents -->
|
|
208
209
|
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a552feab663622681db231d5b48f00d75"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">SVF::ExtAPI::extOp</a></div><div class="ttdeci">static ExtAPI * extOp</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00048">ExtAPI.h:48</a></div></div>
|
|
209
210
|
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_abe3e0e2500532acfc01cee7e2ce1cd90"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#abe3e0e2500532acfc01cee7e2ce1cd90">SVF::ExtAPI::destory</a></div><div class="ttdeci">static void destory()</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00045">ExtAPI.cpp:45</a></div></div>
|
|
@@ -211,7 +212,7 @@ $(function() {
|
|
|
211
212
|
<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>
|
|
212
213
|
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_ab793be4b6f8f0a025599e76f5df2a4eb"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ab793be4b6f8f0a025599e76f5df2a4eb">SVF::ExtAPI::ExtAPI</a></div><div class="ttdeci">ExtAPI()=default</div></div>
|
|
213
214
|
<div class="ttc" id="acJSON_8h_html_a6288dae99eabb0a393b1d4974e01cde7"><div class="ttname"><a href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a></div><div class="ttdeci">const char *const const double number</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00268">cJSON.h:268</a></div></div>
|
|
214
|
-
<div class="ttc" id="aextapi_8c_html_a3fa45b35c8abf67a950b6d3d4063dede"><div class="ttname"><a href="extapi_8c.html#a3fa45b35c8abf67a950b6d3d4063dede">isdigit</a></div><div class="ttdeci">int isdigit(int c)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#
|
|
215
|
+
<div class="ttc" id="aextapi_8c_html_a3fa45b35c8abf67a950b6d3d4063dede"><div class="ttname"><a href="extapi_8c.html#a3fa45b35c8abf67a950b6d3d4063dede">isdigit</a></div><div class="ttdeci">int isdigit(int c)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l01038">extapi.c:1038</a></div></div>
|
|
215
216
|
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a68939c789d0530151a4e79e79317531a"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a68939c789d0530151a4e79e79317531a">SVF::ExtAPI::get_alloc_arg_pos</a></div><div class="ttdeci">s32_t get_alloc_arg_pos(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00102">ExtAPI.cpp:102</a></div></div>
|
|
216
217
|
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a02380d22fd6021ebce1e54723d695c99"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">SVF::ExtAPI::getExtAPI</a></div><div class="ttdeci">static ExtAPI * getExtAPI(const std::string &="")</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00036">ExtAPI.cpp:36</a></div></div>
|
|
217
218
|
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a9f6e5cd617ab57ef9da0bab6c3c9cdc8"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a9f6e5cd617ab57ef9da0bab6c3c9cdc8">SVF::ExtAPI::is_memset</a></div><div class="ttdeci">bool is_memset(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00085">ExtAPI.cpp:85</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>
|
|
@@ -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>
|
|
@@ -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>
|
|
@@ -5688,7 +5688,7 @@ Variables</h2></td></tr>
|
|
|
5688
5688
|
<div class="ttc" id="acJSON_8cpp_html_a855c7241e836a5b2d87577df8c113faf"><div class="ttname"><a href="cJSON_8cpp.html#a855c7241e836a5b2d87577df8c113faf">global_hooks</a></div><div class="ttdeci">static internal_hooks global_hooks</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00187">cJSON.cpp:187</a></div></div>
|
|
5689
5689
|
<div class="ttc" id="acJSON_8h_html_ad3d18116aae3bfa46f13bcfd7fd6d4e7"><div class="ttname"><a href="cJSON_8h.html#ad3d18116aae3bfa46f13bcfd7fd6d4e7">cJSON_IsReference</a></div><div class="ttdeci">#define cJSON_IsReference</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00099">cJSON.h:99</a></div></div>
|
|
5690
5690
|
<div class="ttc" id="acJSON_8cpp_html_a5714bac836668a1b9af55465b78531ef"><div class="ttname"><a href="cJSON_8cpp.html#a5714bac836668a1b9af55465b78531ef">static_strlen</a></div><div class="ttdeci">#define static_strlen(string_literal)</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00185">cJSON.cpp:185</a></div></div>
|
|
5691
|
-
<div class="ttc" id="aextapi_8c_html_ab017280f95ea769b9422688105f02653"><div class="ttname"><a href="extapi_8c.html#ab017280f95ea769b9422688105f02653">strtod</a></div><div class="ttdeci">double strtod(const char *str, char **endptr)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#
|
|
5691
|
+
<div class="ttc" id="aextapi_8c_html_ab017280f95ea769b9422688105f02653"><div class="ttname"><a href="extapi_8c.html#ab017280f95ea769b9422688105f02653">strtod</a></div><div class="ttdeci">double strtod(const char *str, char **endptr)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l01128">extapi.c:1128</a></div></div>
|
|
5692
5692
|
<div class="ttc" id="acJSON_8h_html_ae9ddc931ea84908d12f48c5b7f8731a1"><div class="ttname"><a href="cJSON_8h.html#ae9ddc931ea84908d12f48c5b7f8731a1">cJSON_Raw</a></div><div class="ttdeci">#define cJSON_Raw</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00097">cJSON.h:97</a></div></div>
|
|
5693
5693
|
<div class="ttc" id="acJSON_8cpp_html_a2257377f8b81f4f76a16b698f681af34"><div class="ttname"><a href="cJSON_8cpp.html#a2257377f8b81f4f76a16b698f681af34">can_read</a></div><div class="ttdeci">#define can_read(buffer, size)</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00298">cJSON.cpp:298</a></div></div>
|
|
5694
5694
|
<div class="ttc" id="astructcJSON_html_a4b21817d0fd2919901abadac73214e7f"><div class="ttname"><a href="structcJSON.html#a4b21817d0fd2919901abadac73214e7f">cJSON::valuedouble</a></div><div class="ttdeci">double valuedouble</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00119">cJSON.h:119</a></div></div>
|
|
@@ -3243,7 +3243,7 @@ $(function() {
|
|
|
3243
3243
|
<div class="ttc" id="acJSON_8cpp_html_a7fd7640617f7ffead7a9b1408c9d0ae8"><div class="ttname"><a href="cJSON_8cpp.html#a7fd7640617f7ffead7a9b1408c9d0ae8">internal_malloc</a></div><div class="ttdeci">#define internal_malloc</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00179">cJSON.cpp:179</a></div></div>
|
|
3244
3244
|
<div class="ttc" id="acJSON_8h_html_ad3d18116aae3bfa46f13bcfd7fd6d4e7"><div class="ttname"><a href="cJSON_8h.html#ad3d18116aae3bfa46f13bcfd7fd6d4e7">cJSON_IsReference</a></div><div class="ttdeci">#define cJSON_IsReference</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00099">cJSON.h:99</a></div></div>
|
|
3245
3245
|
<div class="ttc" id="acJSON_8cpp_html_a5714bac836668a1b9af55465b78531ef"><div class="ttname"><a href="cJSON_8cpp.html#a5714bac836668a1b9af55465b78531ef">static_strlen</a></div><div class="ttdeci">#define static_strlen(string_literal)</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00185">cJSON.cpp:185</a></div></div>
|
|
3246
|
-
<div class="ttc" id="aextapi_8c_html_ab017280f95ea769b9422688105f02653"><div class="ttname"><a href="extapi_8c.html#ab017280f95ea769b9422688105f02653">strtod</a></div><div class="ttdeci">double strtod(const char *str, char **endptr)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#
|
|
3246
|
+
<div class="ttc" id="aextapi_8c_html_ab017280f95ea769b9422688105f02653"><div class="ttname"><a href="extapi_8c.html#ab017280f95ea769b9422688105f02653">strtod</a></div><div class="ttdeci">double strtod(const char *str, char **endptr)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l01128">extapi.c:1128</a></div></div>
|
|
3247
3247
|
<div class="ttc" id="acJSON_8cpp_html_ac3d010a5f321146bc39a696b90a35c37"><div class="ttname"><a href="cJSON_8cpp.html#ac3d010a5f321146bc39a696b90a35c37">json</a></div><div class="ttdeci">global_error json</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01103">cJSON.cpp:1103</a></div></div>
|
|
3248
3248
|
<div class="ttc" id="acJSON_8h_html"><div class="ttname"><a href="cJSON_8h.html">cJSON.h</a></div></div>
|
|
3249
3249
|
<div class="ttc" id="acJSON_8h_html_ae9ddc931ea84908d12f48c5b7f8731a1"><div class="ttname"><a href="cJSON_8h.html#ae9ddc931ea84908d12f48c5b7f8731a1">cJSON_Raw</a></div><div class="ttdeci">#define cJSON_Raw</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00097">cJSON.h:97</a></div></div>
|
|
@@ -599,7 +599,7 @@ template<typename T > </div>
|
|
|
599
599
|
<div class="ttc" id="aCommandLine_8h_html_a2429346d37bd4c40889bd7c6d319d9da"><div class="ttname"><a href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00018">CommandLine.h:18</a></div></div>
|
|
600
600
|
<div class="ttc" id="aclassOption_html_a1a2432713251f4422296c0c42efb9d9c"><div class="ttname"><a href="classOption.html#a1a2432713251f4422296c0c42efb9d9c">Option::fromString</a></div><div class="ttdeci">static bool fromString(const std::string &s, bool &value)</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00363">CommandLine.h:363</a></div></div>
|
|
601
601
|
<div class="ttc" id="aclassOptionBase_html_ae99500409f218ce63d4dbce537884c7f"><div class="ttname"><a href="classOptionBase.html#ae99500409f218ce63d4dbce537884c7f">OptionBase::OptionBase</a></div><div class="ttdeci">OptionBase(std::string name, std::string description)</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00033">CommandLine.h:33</a></div></div>
|
|
602
|
-
<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#
|
|
602
|
+
<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>
|
|
603
603
|
<div class="ttc" id="aclassOption_html_a067413be0c747358947c539a4179d489"><div class="ttname"><a href="classOption.html#a067413be0c747358947c539a4179d489">Option::value</a></div><div class="ttdeci">T value</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00403">CommandLine.h:403</a></div></div>
|
|
604
604
|
<div class="ttc" id="aclassOptionBase_html_a494ea256d6484e4f7e8751de499889fc"><div class="ttname"><a href="classOptionBase.html#a494ea256d6484e4f7e8751de499889fc">OptionBase::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00316">CommandLine.h:316</a></div></div>
|
|
605
605
|
<div class="ttc" id="aclassOption_html_a980a99e59afae6419a9b15f7606d83dc"><div class="ttname"><a href="classOption.html#a980a99e59afae6419a9b15f7606d83dc">Option::isExplicitlySet</a></div><div class="ttdeci">bool isExplicitlySet</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00402">CommandLine.h:402</a></div></div>
|
|
@@ -417,10 +417,11 @@ Static Private Attributes</h2></td></tr>
|
|
|
417
417
|
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  assert(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <span class="stringliteral">"Null SVFFunction* pointer"</span>);</div>
|
|
418
418
|
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">if</span> (<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->isDeclaration() || <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->isIntrinsic())</div>
|
|
419
419
|
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
420
|
-
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">else</span
|
|
421
|
-
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">return</span> <
|
|
422
|
-
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">
|
|
423
|
-
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> 
|
|
420
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"OVERWRITE"</span>) && <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->getAnnotations().size() == 1)</div>
|
|
421
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
422
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">else</span></div>
|
|
423
|
+
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">return</span> !<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->getAnnotations().empty();</div>
|
|
424
|
+
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> }</div>
|
|
424
425
|
</div><!-- fragment -->
|
|
425
426
|
</div>
|
|
426
427
|
</div>
|
|
@@ -526,7 +527,7 @@ Static Private Attributes</h2></td></tr>
|
|
|
526
527
|
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a552feab663622681db231d5b48f00d75"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">SVF::ExtAPI::extOp</a></div><div class="ttdeci">static ExtAPI * extOp</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00048">ExtAPI.h:48</a></div></div>
|
|
527
528
|
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_ab793be4b6f8f0a025599e76f5df2a4eb"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ab793be4b6f8f0a025599e76f5df2a4eb">SVF::ExtAPI::ExtAPI</a></div><div class="ttdeci">ExtAPI()=default</div></div>
|
|
528
529
|
<div class="ttc" id="acJSON_8h_html_a6288dae99eabb0a393b1d4974e01cde7"><div class="ttname"><a href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a></div><div class="ttdeci">const char *const const double number</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00268">cJSON.h:268</a></div></div>
|
|
529
|
-
<div class="ttc" id="aextapi_8c_html_a3fa45b35c8abf67a950b6d3d4063dede"><div class="ttname"><a href="extapi_8c.html#a3fa45b35c8abf67a950b6d3d4063dede">isdigit</a></div><div class="ttdeci">int isdigit(int c)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#
|
|
530
|
+
<div class="ttc" id="aextapi_8c_html_a3fa45b35c8abf67a950b6d3d4063dede"><div class="ttname"><a href="extapi_8c.html#a3fa45b35c8abf67a950b6d3d4063dede">isdigit</a></div><div class="ttdeci">int isdigit(int c)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l01038">extapi.c:1038</a></div></div>
|
|
530
531
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_a067bd6dbaf74a028d546fa56b095791b"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a067bd6dbaf74a028d546fa56b095791b">SVF::SVFFunction::getAnnotations</a></div><div class="ttdeci">const std::vector< std::string > & getAnnotations() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00434">SVFValue.h:434</a></div></div>
|
|
531
532
|
<div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
532
533
|
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a1d7778db3b31f732f06129b49ec6dacd"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">SVF::ExtAPI::hasExtFuncAnnotation</a></div><div class="ttdeci">bool hasExtFuncAnnotation(const SVFFunction *fun, const std::string &funcAnnotation)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00064">ExtAPI.cpp:64</a></div></div>
|