svf-tools 1.0.766 → 1.0.768
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/ExtAPI_8cpp.html +120 -0
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +196 -114
- package/SVF-doxygen/html/html/ExtAPI_8h.html +27 -1
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +66 -60
- package/SVF-doxygen/html/html/Options_8cpp.html +1 -0
- package/SVF-doxygen/html/html/Options_8cpp_source.html +860 -858
- package/SVF-doxygen/html/html/SVFIRExtAPI_8cpp_source.html +139 -123
- package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +10 -9
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +128 -88
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +139 -123
- package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +1 -1
- package/SVF-doxygen/html/html/functions_func_g.html +16 -13
- package/SVF-doxygen/html/html/functions_func_p.html +1 -1
- package/SVF-doxygen/html/html/functions_func_s.html +2 -2
- package/SVF-doxygen/html/html/functions_g.html +19 -16
- package/SVF-doxygen/html/html/functions_o.html +3 -3
- package/SVF-doxygen/html/html/functions_p.html +9 -9
- package/SVF-doxygen/html/html/functions_r.html +8 -8
- package/SVF-doxygen/html/html/functions_s.html +10 -8
- package/SVF-doxygen/html/html/functions_t.html +5 -5
- package/SVF-doxygen/html/html/functions_v.html +6 -6
- package/SVF-doxygen/html/html/functions_w.html +1 -1
- package/SVF-doxygen/html/html/globals_defs.html +3 -0
- package/SVF-doxygen/html/html/globals_e.html +3 -0
- package/SVF-doxygen/html/html/globals_func.html +6 -0
- package/SVF-doxygen/html/html/globals_g.html +6 -0
- package/SVF-doxygen/html/html/namespaceSVF.html +0 -1
- package/SVF-doxygen/html/html/search/all_10.js +323 -323
- package/SVF-doxygen/html/html/search/all_11.js +212 -212
- package/SVF-doxygen/html/html/search/all_12.js +536 -536
- package/SVF-doxygen/html/html/search/all_13.js +188 -188
- package/SVF-doxygen/html/html/search/all_14.js +66 -66
- package/SVF-doxygen/html/html/search/all_15.js +170 -170
- package/SVF-doxygen/html/html/search/all_16.js +60 -60
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/html/search/all_19.js +10 -10
- package/SVF-doxygen/html/html/search/all_1a.js +169 -169
- package/SVF-doxygen/html/html/search/all_5.js +17 -16
- package/SVF-doxygen/html/html/search/all_6.js +224 -224
- package/SVF-doxygen/html/html/search/all_7.js +999 -996
- package/SVF-doxygen/html/html/search/all_8.js +191 -191
- package/SVF-doxygen/html/html/search/all_9.js +605 -605
- package/SVF-doxygen/html/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/html/search/all_c.js +114 -114
- package/SVF-doxygen/html/html/search/all_d.js +196 -196
- package/SVF-doxygen/html/html/search/all_e.js +205 -205
- package/SVF-doxygen/html/html/search/all_f.js +116 -116
- package/SVF-doxygen/html/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/html/search/classes_10.js +73 -73
- package/SVF-doxygen/html/html/search/classes_11.js +15 -15
- package/SVF-doxygen/html/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/html/search/classes_14.js +14 -14
- package/SVF-doxygen/html/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/html/search/classes_2.js +76 -76
- package/SVF-doxygen/html/html/search/classes_3.js +35 -35
- package/SVF-doxygen/html/html/search/classes_4.js +8 -8
- package/SVF-doxygen/html/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/html/search/classes_6.js +98 -98
- package/SVF-doxygen/html/html/search/classes_7.js +33 -33
- package/SVF-doxygen/html/html/search/classes_8.js +56 -56
- package/SVF-doxygen/html/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/html/search/classes_d.js +18 -18
- package/SVF-doxygen/html/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/html/search/defines_3.js +20 -20
- package/SVF-doxygen/html/html/search/defines_4.js +3 -2
- package/SVF-doxygen/html/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/html/search/defines_c.js +3 -3
- package/SVF-doxygen/html/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/html/search/defines_e.js +6 -6
- package/SVF-doxygen/html/html/search/defines_f.js +3 -3
- package/SVF-doxygen/html/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/html/search/enums_4.js +3 -3
- package/SVF-doxygen/html/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/html/search/enumvalues_1.js +14 -14
- package/SVF-doxygen/html/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/html/search/enumvalues_2.js +36 -36
- package/SVF-doxygen/html/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/html/search/enumvalues_5.js +47 -47
- package/SVF-doxygen/html/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/html/search/enumvalues_7.js +9 -9
- package/SVF-doxygen/html/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/html/search/enumvalues_a.js +15 -15
- package/SVF-doxygen/html/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/html/search/enumvalues_d.js +18 -18
- package/SVF-doxygen/html/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/html/search/files_0.js +13 -13
- package/SVF-doxygen/html/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/html/search/files_2.js +49 -49
- package/SVF-doxygen/html/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/html/search/files_7.js +14 -14
- package/SVF-doxygen/html/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/html/search/functions_0.js +6 -6
- package/SVF-doxygen/html/html/search/functions_1.js +348 -348
- package/SVF-doxygen/html/html/search/functions_10.js +139 -139
- package/SVF-doxygen/html/html/search/functions_11.js +126 -126
- package/SVF-doxygen/html/html/search/functions_12.js +273 -273
- package/SVF-doxygen/html/html/search/functions_13.js +56 -56
- package/SVF-doxygen/html/html/search/functions_14.js +38 -38
- package/SVF-doxygen/html/html/search/functions_15.js +71 -71
- package/SVF-doxygen/html/html/search/functions_16.js +29 -29
- package/SVF-doxygen/html/html/search/functions_17.js +2 -2
- package/SVF-doxygen/html/html/search/functions_18.js +169 -169
- package/SVF-doxygen/html/html/search/functions_2.js +82 -82
- package/SVF-doxygen/html/html/search/functions_3.js +251 -251
- package/SVF-doxygen/html/html/search/functions_4.js +71 -71
- package/SVF-doxygen/html/html/search/functions_5.js +51 -51
- package/SVF-doxygen/html/html/search/functions_6.js +58 -58
- package/SVF-doxygen/html/html/search/functions_7.js +819 -816
- package/SVF-doxygen/html/html/search/functions_8.js +143 -143
- package/SVF-doxygen/html/html/search/functions_9.js +425 -425
- package/SVF-doxygen/html/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/html/search/functions_c.js +24 -24
- package/SVF-doxygen/html/html/search/functions_d.js +77 -77
- package/SVF-doxygen/html/html/search/functions_e.js +34 -34
- package/SVF-doxygen/html/html/search/functions_f.js +56 -56
- package/SVF-doxygen/html/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/html/search/related_1.js +1 -1
- package/SVF-doxygen/html/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/html/search/related_c.js +1 -1
- package/SVF-doxygen/html/html/search/related_d.js +11 -11
- package/SVF-doxygen/html/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_0.js +18 -18
- package/SVF-doxygen/html/html/search/typedefs_1.js +25 -25
- package/SVF-doxygen/html/html/search/typedefs_10.js +60 -60
- package/SVF-doxygen/html/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/html/search/typedefs_13.js +35 -35
- package/SVF-doxygen/html/html/search/typedefs_14.js +8 -8
- package/SVF-doxygen/html/html/search/typedefs_2.js +126 -126
- package/SVF-doxygen/html/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/html/search/typedefs_4.js +16 -16
- package/SVF-doxygen/html/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/html/search/typedefs_6.js +52 -52
- package/SVF-doxygen/html/html/search/typedefs_7.js +40 -40
- package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/html/search/typedefs_c.js +40 -40
- package/SVF-doxygen/html/html/search/typedefs_d.js +15 -15
- package/SVF-doxygen/html/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/html/search/variables_0.js +147 -147
- package/SVF-doxygen/html/html/search/variables_1.js +75 -75
- package/SVF-doxygen/html/html/search/variables_10.js +97 -97
- package/SVF-doxygen/html/html/search/variables_11.js +46 -46
- package/SVF-doxygen/html/html/search/variables_12.js +92 -92
- package/SVF-doxygen/html/html/search/variables_13.js +75 -75
- package/SVF-doxygen/html/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/html/search/variables_15.js +48 -48
- package/SVF-doxygen/html/html/search/variables_16.js +9 -9
- package/SVF-doxygen/html/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/html/search/variables_18.js +2 -2
- package/SVF-doxygen/html/html/search/variables_2.js +34 -34
- package/SVF-doxygen/html/html/search/variables_3.js +141 -141
- package/SVF-doxygen/html/html/search/variables_4.js +55 -55
- package/SVF-doxygen/html/html/search/variables_5.js +38 -38
- package/SVF-doxygen/html/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/html/search/variables_7.js +33 -33
- package/SVF-doxygen/html/html/search/variables_8.js +7 -7
- package/SVF-doxygen/html/html/search/variables_9.js +77 -77
- package/SVF-doxygen/html/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/html/search/variables_d.js +56 -56
- package/SVF-doxygen/html/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/html/search/variables_f.js +30 -30
- package/package.json +1 -1
- package/svf/include/Util/ExtAPI.h +5 -0
- package/svf/lib/Util/ExtAPI.cpp +73 -0
- package/svf/lib/Util/Options.cpp +2 -1
- package/svf-llvm/lib/SVFIRExtAPI.cpp +17 -1
|
@@ -99,137 +99,219 @@ $(function() {
|
|
|
99
99
|
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> */</span></div>
|
|
100
100
|
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
|
|
101
101
|
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="ExtAPI_8h.html">Util/ExtAPI.h</a>"</span></div>
|
|
102
|
-
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> 
|
|
103
|
-
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="
|
|
102
|
+
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="SVFUtil_8h.html">Util/SVFUtil.h</a>"</span></div>
|
|
103
|
+
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <sys/stat.h></span></div>
|
|
104
104
|
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
|
|
105
|
-
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <
|
|
105
|
+
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div>
|
|
106
106
|
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div>
|
|
107
|
-
<div class="line"><a name="l00036"></a><span class="lineno"
|
|
108
|
-
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> 
|
|
109
|
-
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> 
|
|
110
|
-
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> 
|
|
111
|
-
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> 
|
|
112
|
-
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> 
|
|
113
|
-
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> 
|
|
114
|
-
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> }</div>
|
|
115
|
-
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
|
|
116
|
-
<div class="line"><a name="l00045"></a><span class="lineno"
|
|
117
|
-
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> 
|
|
118
|
-
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> 
|
|
119
|
-
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> 
|
|
120
|
-
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> 
|
|
121
|
-
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> 
|
|
122
|
-
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> 
|
|
123
|
-
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> 
|
|
124
|
-
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> 
|
|
125
|
-
<div class="line"><a name="l00054"></a><span class="lineno"
|
|
126
|
-
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> 
|
|
127
|
-
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> 
|
|
128
|
-
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> 
|
|
129
|
-
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> 
|
|
130
|
-
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> 
|
|
131
|
-
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> 
|
|
132
|
-
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="
|
|
133
|
-
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> 
|
|
134
|
-
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div>
|
|
135
|
-
<div class="line"><a name="l00064"></a><span class="lineno"
|
|
136
|
-
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> 
|
|
137
|
-
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> 
|
|
138
|
-
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="
|
|
139
|
-
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">
|
|
140
|
-
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> 
|
|
141
|
-
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> 
|
|
142
|
-
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> 
|
|
143
|
-
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> 
|
|
144
|
-
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> 
|
|
145
|
-
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> 
|
|
146
|
-
<div class="line"><a name="l00075"></a><span class="lineno"
|
|
147
|
-
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> 
|
|
148
|
-
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">return</span>
|
|
107
|
+
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <a class="code" href="classSVF_1_1ExtAPI.html">ExtAPI</a>* <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">ExtAPI::extOp</a> = <span class="keyword">nullptr</span>;</div>
|
|
108
|
+
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
|
|
109
|
+
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99"> 38</a></span> <a class="code" href="classSVF_1_1ExtAPI.html">ExtAPI</a>* <a class="code" href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">ExtAPI::getExtAPI</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& path)</div>
|
|
110
|
+
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div>
|
|
111
|
+
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a> == <span class="keyword">nullptr</span>)</div>
|
|
112
|
+
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  {</div>
|
|
113
|
+
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ExtAPI.html#ab793be4b6f8f0a025599e76f5df2a4eb">ExtAPI</a>;</div>
|
|
114
|
+
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  }</div>
|
|
115
|
+
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a>;</div>
|
|
116
|
+
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> }</div>
|
|
117
|
+
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div>
|
|
118
|
+
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#abe3e0e2500532acfc01cee7e2ce1cd90"> 47</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ExtAPI.html#abe3e0e2500532acfc01cee7e2ce1cd90">ExtAPI::destory</a>()</div>
|
|
119
|
+
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div>
|
|
120
|
+
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a> != <span class="keyword">nullptr</span>)</div>
|
|
121
|
+
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  {</div>
|
|
122
|
+
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">delete</span> <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a>;</div>
|
|
123
|
+
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a> = <span class="keyword">nullptr</span>;</div>
|
|
124
|
+
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  }</div>
|
|
125
|
+
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> }</div>
|
|
126
|
+
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div>
|
|
127
|
+
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">// Get environment variables $SVF_DIR and "npm root" through popen() method</span></div>
|
|
128
|
+
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935"> 57</a></span> <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935">GetStdoutFromCommand</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& command)</div>
|
|
129
|
+
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> {</div>
|
|
130
|
+
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordtype">char</span> <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>[128];</div>
|
|
131
|
+
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> result = <span class="stringliteral">""</span>;</div>
|
|
132
|
+
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="comment">// Open pipe to file</span></div>
|
|
133
|
+
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  FILE* pipe = popen(command.c_str(), <span class="stringliteral">"r"</span>);</div>
|
|
134
|
+
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">if</span> (!pipe)</div>
|
|
135
|
+
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  {</div>
|
|
136
|
+
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">return</span> <span class="stringliteral">"popen failed!"</span>;</div>
|
|
137
|
+
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div>
|
|
138
|
+
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="comment">// read till end of process:</span></div>
|
|
139
|
+
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">while</span> (!feof(pipe))</div>
|
|
140
|
+
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  {</div>
|
|
141
|
+
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="comment">// use buffer to read and add to result</span></div>
|
|
142
|
+
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">if</span> (<a class="code" href="extapi_8c.html#a55c10fd7c7152a709388daa21827771c">fgets</a>(<a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>, 128, pipe) != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div>
|
|
143
|
+
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  result += <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>;</div>
|
|
144
|
+
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  }</div>
|
|
145
|
+
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  pclose(pipe);</div>
|
|
146
|
+
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="comment">// remove "\n"</span></div>
|
|
147
|
+
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  result.erase(remove(result.begin(), result.end(), <span class="charliteral">'\n'</span>), result.end());</div>
|
|
148
|
+
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">return</span> result;</div>
|
|
149
149
|
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> }</div>
|
|
150
150
|
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  </div>
|
|
151
|
-
<div class="line"><a name="l00080"></a><span class="lineno"
|
|
152
|
-
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> 
|
|
153
|
-
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> 
|
|
154
|
-
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> 
|
|
155
|
-
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div>
|
|
156
|
-
<div class="line"><a name="l00085"></a><span class="lineno"
|
|
157
|
-
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> 
|
|
158
|
-
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> 
|
|
159
|
-
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> 
|
|
160
|
-
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> 
|
|
161
|
-
<div class="line"><a name="l00090"></a><span class="lineno"
|
|
162
|
-
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> 
|
|
163
|
-
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> 
|
|
164
|
-
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> 
|
|
165
|
-
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  </div>
|
|
166
|
-
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> 
|
|
167
|
-
<div class="line"><a name="l00096"></a><span class="lineno"
|
|
168
|
-
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> 
|
|
169
|
-
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> 
|
|
170
|
-
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> }</div>
|
|
151
|
+
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment">// Get extapi.bc file path in npm</span></div>
|
|
152
|
+
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="ExtAPI_8cpp.html#a7d2ff3727892c4ee0eff596174eb5b84"> 81</a></span> <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="ExtAPI_8cpp.html#a7d2ff3727892c4ee0eff596174eb5b84">getFilePath</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& path)</div>
|
|
153
|
+
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> {</div>
|
|
154
|
+
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> bcFilePath = <a class="code" href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935">GetStdoutFromCommand</a>(path);</div>
|
|
155
|
+
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">if</span> (path.compare(<span class="stringliteral">"npm root"</span>) == 0)</div>
|
|
156
|
+
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  {</div>
|
|
157
|
+
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordtype">int</span> os_flag = 1;</div>
|
|
158
|
+
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="comment">// SVF installed via npm needs to determine the type of operating</span></div>
|
|
159
|
+
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="comment">// system, otherwise the extapi.bc path may not be found.</span></div>
|
|
160
|
+
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor">#ifdef linux</span></div>
|
|
161
|
+
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="comment">// Linux os</span></div>
|
|
162
|
+
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  os_flag = 0;</div>
|
|
163
|
+
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  bcFilePath.append(<span class="stringliteral">"/svf-lib/SVF-linux"</span>);</div>
|
|
164
|
+
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor">#endif</span></div>
|
|
165
|
+
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// Mac os</span></div>
|
|
166
|
+
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">if</span> (os_flag == 1)</div>
|
|
167
|
+
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  {</div>
|
|
168
|
+
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  bcFilePath.append(<span class="stringliteral">"/svf-lib/SVF-osx"</span>);</div>
|
|
169
|
+
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div>
|
|
170
|
+
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div>
|
|
171
171
|
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  </div>
|
|
172
|
-
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> 
|
|
173
|
-
<div class="line"><a name="l00102"></a><span class="lineno"
|
|
174
|
-
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> 
|
|
175
|
-
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <
|
|
176
|
-
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> 
|
|
177
|
-
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> 
|
|
178
|
-
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> 
|
|
179
|
-
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> 
|
|
180
|
-
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> 
|
|
181
|
-
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> 
|
|
182
|
-
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> 
|
|
183
|
-
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> 
|
|
184
|
-
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> 
|
|
185
|
-
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> 
|
|
186
|
-
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> 
|
|
187
|
-
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> 
|
|
188
|
-
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div>
|
|
189
|
-
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> 
|
|
190
|
-
<div class="line"><a name="l00119"></a><span class="lineno"
|
|
191
|
-
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> 
|
|
192
|
-
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> 
|
|
193
|
-
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> 
|
|
194
|
-
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  </div>
|
|
195
|
-
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> 
|
|
196
|
-
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> 
|
|
197
|
-
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> 
|
|
198
|
-
<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#
|
|
172
|
+
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">if</span> (bcFilePath.back() != <span class="charliteral">'/'</span>)</div>
|
|
173
|
+
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  bcFilePath.push_back(<span class="charliteral">'/'</span>);</div>
|
|
174
|
+
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  bcFilePath.append(<a class="code" href="ExtAPI_8h.html#a02f944ad8948fa28a15d67ab1252573b">EXTAPI_BC_PATH</a>);</div>
|
|
175
|
+
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">return</span> bcFilePath;</div>
|
|
176
|
+
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> }</div>
|
|
177
|
+
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
|
|
178
|
+
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment">// Get extapi.bc path</span></div>
|
|
179
|
+
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a26bc352dbfd1b2fe34106a73f1f6d50c"> 108</a></span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1ExtAPI.html#a26bc352dbfd1b2fe34106a73f1f6d50c">ExtAPI::getExtBcPath</a>()</div>
|
|
180
|
+
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> {</div>
|
|
181
|
+
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">struct </span>stat statbuf;</div>
|
|
182
|
+
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> bcFilePath = <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>(EXTAPI_PATH) + <span class="stringliteral">"/extapi.bc"</span>;</div>
|
|
183
|
+
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">if</span> (!stat(bcFilePath.c_str(), &statbuf))</div>
|
|
184
|
+
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">return</span> bcFilePath;</div>
|
|
185
|
+
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  </div>
|
|
186
|
+
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  bcFilePath = <a class="code" href="ExtAPI_8cpp.html#a7d2ff3727892c4ee0eff596174eb5b84">getFilePath</a>(<span class="stringliteral">"echo $SVF_DIR"</span>);</div>
|
|
187
|
+
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">if</span> (!stat(bcFilePath.c_str(), &statbuf))</div>
|
|
188
|
+
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">return</span> bcFilePath;</div>
|
|
189
|
+
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  </div>
|
|
190
|
+
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  bcFilePath = <a class="code" href="ExtAPI_8cpp.html#a7d2ff3727892c4ee0eff596174eb5b84">getFilePath</a>(<span class="stringliteral">"npm root"</span>);</div>
|
|
191
|
+
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">if</span> (!stat(bcFilePath.c_str(), &statbuf))</div>
|
|
192
|
+
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">return</span> bcFilePath;</div>
|
|
193
|
+
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  </div>
|
|
194
|
+
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <span class="stringliteral">"No extpai.bc found at "</span> << bcFilePath << <span class="stringliteral">" for getExtAPI(); set $SVF_DIR first!\n"</span>;</div>
|
|
195
|
+
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  abort();</div>
|
|
196
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> }</div>
|
|
197
|
+
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div>
|
|
198
|
+
<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a641c82ed1f1a86f0f8a6015ef1fdbfef"> 127</a></span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1ExtAPI.html#a641c82ed1f1a86f0f8a6015ef1fdbfef">ExtAPI::getExtFuncAnnotation</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun, <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& funcAnnotation)</div>
|
|
199
199
|
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> {</div>
|
|
200
|
-
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  assert(
|
|
201
|
-
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="
|
|
202
|
-
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> 
|
|
203
|
-
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> 
|
|
204
|
-
<div class="line"><a name="l00133"></a><span class="lineno"> 133</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> 
|
|
207
|
-
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> 
|
|
200
|
+
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  assert(fun && <span class="stringliteral">"Null SVFFunction* pointer"</span>);</div>
|
|
201
|
+
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keyword">const</span> std::vector<std::string>& annotations = fun-><a class="code" href="classSVF_1_1SVFFunction.html#a067bd6dbaf74a028d546fa56b095791b">getAnnotations</a>();</div>
|
|
202
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& annotation : annotations)</div>
|
|
203
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">if</span> (annotation.find(funcAnnotation) != std::string::npos)</div>
|
|
204
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">return</span> annotation;</div>
|
|
205
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">return</span> <span class="stringliteral">""</span>;</div>
|
|
206
|
+
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> }</div>
|
|
207
|
+
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  </div>
|
|
208
|
+
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd"> 137</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">ExtAPI::hasExtFuncAnnotation</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun, <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& funcAnnotation)</div>
|
|
209
|
+
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> {</div>
|
|
210
|
+
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  assert(fun && <span class="stringliteral">"Null SVFFunction* pointer"</span>);</div>
|
|
211
|
+
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keyword">const</span> std::vector<std::string>& annotations = fun-><a class="code" href="classSVF_1_1SVFFunction.html#a067bd6dbaf74a028d546fa56b095791b">getAnnotations</a>();</div>
|
|
212
|
+
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& annotation : annotations)</div>
|
|
213
|
+
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">if</span> (annotation.find(funcAnnotation) != std::string::npos)</div>
|
|
214
|
+
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
215
|
+
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
216
|
+
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> }</div>
|
|
217
|
+
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  </div>
|
|
218
|
+
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="comment">// Does (F) have a static var X (unavailable to us) that its return points to?</span></div>
|
|
219
|
+
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#ae20ea24cce02de87d89a2d0b773a2357"> 148</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#ae20ea24cce02de87d89a2d0b773a2357">ExtAPI::has_static</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
220
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> {</div>
|
|
221
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"STATIC"</span>);</div>
|
|
222
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> }</div>
|
|
223
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  </div>
|
|
224
|
+
<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#aadc8f2e0ff777e3f611a7d741def0742"> 153</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#aadc8f2e0ff777e3f611a7d741def0742">ExtAPI::is_memcpy</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
225
|
+
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> {</div>
|
|
226
|
+
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"MEMCPY"</span>);</div>
|
|
227
|
+
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> }</div>
|
|
228
|
+
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  </div>
|
|
229
|
+
<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a9f6e5cd617ab57ef9da0bab6c3c9cdc8"> 158</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#a9f6e5cd617ab57ef9da0bab6c3c9cdc8">ExtAPI::is_memset</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
230
|
+
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> {</div>
|
|
231
|
+
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"MEMSET"</span>);</div>
|
|
232
|
+
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> }</div>
|
|
233
|
+
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  </div>
|
|
234
|
+
<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a0d865c55681a3b4a9bb965fd0200029d"> 163</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#a0d865c55681a3b4a9bb965fd0200029d">ExtAPI::is_alloc</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
235
|
+
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> {</div>
|
|
236
|
+
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"ALLOC_RET"</span>);</div>
|
|
237
|
+
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> }</div>
|
|
238
|
+
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  </div>
|
|
239
|
+
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment">// Does (F) allocate a new object and assign it to one of its arguments?</span></div>
|
|
240
|
+
<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a158e7da51d45b746e067dc40e912c477"> 169</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#a158e7da51d45b746e067dc40e912c477">ExtAPI::is_arg_alloc</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
241
|
+
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> {</div>
|
|
242
|
+
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"ALLOC_ARG"</span>);</div>
|
|
243
|
+
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> }</div>
|
|
244
|
+
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div>
|
|
245
|
+
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="comment">// Get the position of argument which holds the new object</span></div>
|
|
246
|
+
<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a68939c789d0530151a4e79e79317531a"> 175</a></span> <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="classSVF_1_1ExtAPI.html#a68939c789d0530151a4e79e79317531a">ExtAPI::get_alloc_arg_pos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
247
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> {</div>
|
|
248
|
+
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> s = <span class="stringliteral">"ALLOC_ARG"</span>;</div>
|
|
249
|
+
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> allocArg = <a class="code" href="classSVF_1_1ExtAPI.html#a641c82ed1f1a86f0f8a6015ef1fdbfef">getExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, s);</div>
|
|
250
|
+
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  assert(!allocArg.empty() && <span class="stringliteral">"Not an alloc call via argument or incorrect extern function annotation!"</span>);</div>
|
|
251
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  </div>
|
|
252
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a>;</div>
|
|
253
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">for</span> (<span class="keywordtype">char</span> c : allocArg)</div>
|
|
254
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  {</div>
|
|
255
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">if</span> (<a class="code" href="extapi_8c.html#a3fa45b35c8abf67a950b6d3d4063dede">isdigit</a>(c))</div>
|
|
256
|
+
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a>.push_back(c);</div>
|
|
257
|
+
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  }</div>
|
|
258
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  assert(!<a class="code" href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a>.empty() && <span class="stringliteral">"Incorrect naming convention for svf external functions(ALLOC_ARG + number)?"</span>);</div>
|
|
259
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">return</span> std::stoi(<a class="code" href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a>);</div>
|
|
260
|
+
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> }</div>
|
|
261
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  </div>
|
|
262
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="comment">// Does (F) reallocate a new object?</span></div>
|
|
263
|
+
<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#ac6d6bdc51a6b75d6d5741cb751559fe4"> 192</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#ac6d6bdc51a6b75d6d5741cb751559fe4">ExtAPI::is_realloc</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
264
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> {</div>
|
|
265
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"REALLOC_RET"</span>);</div>
|
|
266
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> }</div>
|
|
267
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  </div>
|
|
268
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  </div>
|
|
269
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="comment">// Should (F) be considered "external" (either not defined in the program</span></div>
|
|
270
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="comment">// or a user-defined version of a known alloc or no-op)?</span></div>
|
|
271
|
+
<div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a21f45c806672255c044d39490990eae2"> 200</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#a21f45c806672255c044d39490990eae2">ExtAPI::is_ext</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
272
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> {</div>
|
|
273
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  assert(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <span class="stringliteral">"Null SVFFunction* pointer"</span>);</div>
|
|
274
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</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>
|
|
275
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
276
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</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>
|
|
277
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
278
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">else</span></div>
|
|
279
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">return</span> !<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->getAnnotations().empty();</div>
|
|
280
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> }</div>
|
|
208
281
|
</div><!-- fragment --></div><!-- contents -->
|
|
209
|
-
<div class="ttc" id="
|
|
210
|
-
<div class="ttc" id="
|
|
211
|
-
<div class="ttc" id="
|
|
282
|
+
<div class="ttc" id="aextapi_8c_html_a55c10fd7c7152a709388daa21827771c"><div class="ttname"><a href="extapi_8c.html#a55c10fd7c7152a709388daa21827771c">fgets</a></div><div class="ttdeci">char * fgets(char *str, int n, void *stream)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l00968">extapi.c:968</a></div></div>
|
|
283
|
+
<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#l00050">ExtAPI.h:50</a></div></div>
|
|
284
|
+
<div class="ttc" id="aExtAPI_8cpp_html_a424940f91f234b23bcc633f12269f935"><div class="ttname"><a href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935">GetStdoutFromCommand</a></div><div class="ttdeci">static std::string GetStdoutFromCommand(const std::string &command)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00057">ExtAPI.cpp:57</a></div></div>
|
|
285
|
+
<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#l00047">ExtAPI.cpp:47</a></div></div>
|
|
286
|
+
<div class="ttc" id="aExtAPI_8cpp_html_a7d2ff3727892c4ee0eff596174eb5b84"><div class="ttname"><a href="ExtAPI_8cpp.html#a7d2ff3727892c4ee0eff596174eb5b84">getFilePath</a></div><div class="ttdeci">static std::string getFilePath(const std::string &path)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00081">ExtAPI.cpp:81</a></div></div>
|
|
287
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a21f45c806672255c044d39490990eae2"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a21f45c806672255c044d39490990eae2">SVF::ExtAPI::is_ext</a></div><div class="ttdeci">bool is_ext(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00200">ExtAPI.cpp:200</a></div></div>
|
|
212
288
|
<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>
|
|
213
289
|
<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>
|
|
214
290
|
<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>
|
|
215
291
|
<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>
|
|
216
|
-
<div class="ttc" id="
|
|
217
|
-
<div class="ttc" id="
|
|
218
|
-
<div class="ttc" id="
|
|
219
|
-
<div class="ttc" id="
|
|
292
|
+
<div class="ttc" id="aExtAPI_8h_html_a02f944ad8948fa28a15d67ab1252573b"><div class="ttname"><a href="ExtAPI_8h.html#a02f944ad8948fa28a15d67ab1252573b">EXTAPI_BC_PATH</a></div><div class="ttdeci">#define EXTAPI_BC_PATH</div><div class="ttdoc">For a more detailed explanation of how External APIs are handled in SVF, please refer to the SVF Wiki...</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00041">ExtAPI.h:41</a></div></div>
|
|
293
|
+
<div class="ttc" id="acJSON_8h_html_a503753140aa27b00f99a3501280b2746"><div class="ttname"><a href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a></div><div class="ttdeci">char * buffer</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00163">cJSON.h:163</a></div></div>
|
|
294
|
+
<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#l00175">ExtAPI.cpp:175</a></div></div>
|
|
295
|
+
<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#l00038">ExtAPI.cpp:38</a></div></div>
|
|
296
|
+
<div class="ttc" id="aSVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
|
|
297
|
+
<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#l00158">ExtAPI.cpp:158</a></div></div>
|
|
298
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a0d865c55681a3b4a9bb965fd0200029d"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a0d865c55681a3b4a9bb965fd0200029d">SVF::ExtAPI::is_alloc</a></div><div class="ttdeci">bool is_alloc(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00163">ExtAPI.cpp:163</a></div></div>
|
|
220
299
|
<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>
|
|
221
300
|
<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>
|
|
222
|
-
<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#
|
|
301
|
+
<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#l00137">ExtAPI.cpp:137</a></div></div>
|
|
223
302
|
<div class="ttc" id="aExtAPI_8h_html"><div class="ttname"><a href="ExtAPI_8h.html">ExtAPI.h</a></div></div>
|
|
224
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_ae20ea24cce02de87d89a2d0b773a2357"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ae20ea24cce02de87d89a2d0b773a2357">SVF::ExtAPI::has_static</a></div><div class="ttdeci">bool has_static(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#
|
|
303
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_ae20ea24cce02de87d89a2d0b773a2357"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ae20ea24cce02de87d89a2d0b773a2357">SVF::ExtAPI::has_static</a></div><div class="ttdeci">bool has_static(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00148">ExtAPI.cpp:148</a></div></div>
|
|
225
304
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00270">SVFValue.h:270</a></div></div>
|
|
226
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html"><div class="ttname"><a href="classSVF_1_1ExtAPI.html">SVF::ExtAPI</a></div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#
|
|
227
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a158e7da51d45b746e067dc40e912c477"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a158e7da51d45b746e067dc40e912c477">SVF::ExtAPI::is_arg_alloc</a></div><div class="ttdeci">bool is_arg_alloc(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#
|
|
228
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a641c82ed1f1a86f0f8a6015ef1fdbfef"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a641c82ed1f1a86f0f8a6015ef1fdbfef">SVF::ExtAPI::getExtFuncAnnotation</a></div><div class="ttdeci">std::string getExtFuncAnnotation(const SVFFunction *fun, const std::string &funcAnnotation)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#
|
|
305
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html"><div class="ttname"><a href="classSVF_1_1ExtAPI.html">SVF::ExtAPI</a></div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00046">ExtAPI.h:46</a></div></div>
|
|
306
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a158e7da51d45b746e067dc40e912c477"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a158e7da51d45b746e067dc40e912c477">SVF::ExtAPI::is_arg_alloc</a></div><div class="ttdeci">bool is_arg_alloc(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00169">ExtAPI.cpp:169</a></div></div>
|
|
307
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a641c82ed1f1a86f0f8a6015ef1fdbfef"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a641c82ed1f1a86f0f8a6015ef1fdbfef">SVF::ExtAPI::getExtFuncAnnotation</a></div><div class="ttdeci">std::string getExtFuncAnnotation(const SVFFunction *fun, const std::string &funcAnnotation)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00127">ExtAPI.cpp:127</a></div></div>
|
|
229
308
|
<div class="ttc" id="anamespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00052">SVFType.h:52</a></div></div>
|
|
309
|
+
<div class="ttc" id="acJSON_8cpp_html_a1a05ede2ad100bf5de5dfa7ccdfa4397"><div class="ttname"><a href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a></div><div class="ttdeci">return NULL</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01173">cJSON.cpp:1173</a></div></div>
|
|
230
310
|
<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>
|
|
231
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_ac6d6bdc51a6b75d6d5741cb751559fe4"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ac6d6bdc51a6b75d6d5741cb751559fe4">SVF::ExtAPI::is_realloc</a></div><div class="ttdeci">bool is_realloc(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#
|
|
232
|
-
<div class="ttc" id="
|
|
311
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_ac6d6bdc51a6b75d6d5741cb751559fe4"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ac6d6bdc51a6b75d6d5741cb751559fe4">SVF::ExtAPI::is_realloc</a></div><div class="ttdeci">bool is_realloc(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00192">ExtAPI.cpp:192</a></div></div>
|
|
312
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a26bc352dbfd1b2fe34106a73f1f6d50c"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a26bc352dbfd1b2fe34106a73f1f6d50c">SVF::ExtAPI::getExtBcPath</a></div><div class="ttdeci">std::string getExtBcPath()</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00108">ExtAPI.cpp:108</a></div></div>
|
|
313
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_aadc8f2e0ff777e3f611a7d741def0742"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#aadc8f2e0ff777e3f611a7d741def0742">SVF::ExtAPI::is_memcpy</a></div><div class="ttdeci">bool is_memcpy(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00153">ExtAPI.cpp:153</a></div></div>
|
|
314
|
+
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream & errs()</div><div class="ttdoc">Overwrite llvm::errs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00056">SVFUtil.h:56</a></div></div>
|
|
233
315
|
<!-- start footer part -->
|
|
234
316
|
<hr class="footer"/><address class="footer"><small>
|
|
235
317
|
Generated by  <a href="http://www.doxygen.org/index.html">
|