svf-tools 1.0.813 → 1.0.814
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/AccessPath_8cpp_source.html +4 -4
- package/SVF-doxygen/html/AccessPath_8h_source.html +3 -3
- package/SVF-doxygen/html/Andersen_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ConsGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/ContextDDA_8cpp_source.html +184 -183
- package/SVF-doxygen/html/ContextDDA_8h_source.html +5 -5
- package/SVF-doxygen/html/FlowDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/FlowSensitive_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +191 -190
- package/SVF-doxygen/html/SVFIR2ConsExeState_8h_source.html +4 -4
- package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +695 -688
- package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +15 -15
- package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +120 -118
- package/SVF-doxygen/html/SVFIR_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SVFStatements_8h_source.html +4 -4
- package/SVF-doxygen/html/SVFVariables_8h_source.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1AccessPath-members.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1AccessPath.html +11 -11
- package/SVF-doxygen/html/classSVF_1_1Andersen.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ContextDDA.html +176 -175
- package/SVF-doxygen/html/classSVF_1_1FlowDDA.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1GepStmt-members.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1GepStmt.html +8 -8
- package/SVF-doxygen/html/classSVF_1_1GepValVar.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1NormalGepCGEdge.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1SVFIR.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +186 -185
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +667 -660
- package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +123 -121
- package/SVF-doxygen/html/functions_b.html +3 -3
- package/SVF-doxygen/html/functions_func_g.html +7 -5
- package/SVF-doxygen/html/functions_func_i.html +1 -1
- package/SVF-doxygen/html/functions_g.html +6 -4
- package/SVF-doxygen/html/functions_i.html +2 -2
- package/SVF-doxygen/html/functions_o.html +4 -4
- package/SVF-doxygen/html/functions_p.html +9 -9
- package/SVF-doxygen/html/functions_r.html +2 -4
- package/SVF-doxygen/html/functions_s.html +5 -5
- package/SVF-doxygen/html/functions_t.html +6 -6
- package/SVF-doxygen/html/functions_v.html +4 -6
- package/SVF-doxygen/html/functions_w.html +1 -1
- package/SVF-doxygen/html/search/all_10.js +324 -324
- package/SVF-doxygen/html/search/all_11.js +222 -222
- package/SVF-doxygen/html/search/all_12.js +544 -544
- package/SVF-doxygen/html/search/all_13.js +191 -191
- package/SVF-doxygen/html/search/all_14.js +67 -67
- package/SVF-doxygen/html/search/all_15.js +167 -167
- package/SVF-doxygen/html/search/all_16.js +63 -63
- package/SVF-doxygen/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/search/all_19.js +11 -11
- package/SVF-doxygen/html/search/all_1a.js +172 -172
- package/SVF-doxygen/html/search/all_2.js +1 -1
- package/SVF-doxygen/html/search/all_7.js +715 -714
- package/SVF-doxygen/html/search/all_8.js +197 -197
- package/SVF-doxygen/html/search/all_9.js +607 -607
- package/SVF-doxygen/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/search/all_c.js +116 -116
- package/SVF-doxygen/html/search/all_d.js +196 -196
- package/SVF-doxygen/html/search/all_e.js +207 -207
- package/SVF-doxygen/html/search/all_f.js +115 -115
- package/SVF-doxygen/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/search/classes_10.js +73 -73
- package/SVF-doxygen/html/search/classes_11.js +15 -15
- package/SVF-doxygen/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/search/classes_14.js +14 -14
- package/SVF-doxygen/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/search/classes_2.js +80 -80
- package/SVF-doxygen/html/search/classes_3.js +37 -37
- package/SVF-doxygen/html/search/classes_4.js +9 -9
- package/SVF-doxygen/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/search/classes_6.js +104 -104
- package/SVF-doxygen/html/search/classes_7.js +33 -33
- package/SVF-doxygen/html/search/classes_8.js +56 -56
- package/SVF-doxygen/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/search/classes_d.js +18 -18
- package/SVF-doxygen/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/search/defines_3.js +21 -21
- package/SVF-doxygen/html/search/defines_4.js +2 -2
- package/SVF-doxygen/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/search/defines_c.js +3 -3
- package/SVF-doxygen/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/search/defines_e.js +7 -7
- package/SVF-doxygen/html/search/defines_f.js +3 -3
- package/SVF-doxygen/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/search/enums_4.js +3 -3
- package/SVF-doxygen/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
- package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
- package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
- package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/search/files_0.js +13 -13
- package/SVF-doxygen/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/search/files_2.js +55 -55
- package/SVF-doxygen/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/search/files_7.js +14 -14
- package/SVF-doxygen/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/search/functions_0.js +12 -12
- package/SVF-doxygen/html/search/functions_1.js +360 -360
- package/SVF-doxygen/html/search/functions_10.js +140 -140
- package/SVF-doxygen/html/search/functions_11.js +138 -138
- package/SVF-doxygen/html/search/functions_12.js +279 -279
- package/SVF-doxygen/html/search/functions_13.js +59 -59
- package/SVF-doxygen/html/search/functions_14.js +39 -39
- package/SVF-doxygen/html/search/functions_15.js +71 -71
- package/SVF-doxygen/html/search/functions_16.js +32 -32
- package/SVF-doxygen/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/search/functions_18.js +172 -172
- package/SVF-doxygen/html/search/functions_2.js +87 -87
- package/SVF-doxygen/html/search/functions_3.js +257 -257
- package/SVF-doxygen/html/search/functions_4.js +75 -75
- package/SVF-doxygen/html/search/functions_5.js +53 -53
- package/SVF-doxygen/html/search/functions_6.js +59 -59
- package/SVF-doxygen/html/search/functions_7.js +853 -852
- package/SVF-doxygen/html/search/functions_8.js +149 -149
- package/SVF-doxygen/html/search/functions_9.js +423 -423
- package/SVF-doxygen/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/search/functions_c.js +26 -26
- package/SVF-doxygen/html/search/functions_d.js +77 -77
- package/SVF-doxygen/html/search/functions_e.js +35 -35
- package/SVF-doxygen/html/search/functions_f.js +56 -56
- package/SVF-doxygen/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/search/related_1.js +2 -2
- package/SVF-doxygen/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/search/related_c.js +1 -1
- package/SVF-doxygen/html/search/related_d.js +12 -12
- package/SVF-doxygen/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/search/typedefs_0.js +19 -19
- package/SVF-doxygen/html/search/typedefs_1.js +26 -26
- package/SVF-doxygen/html/search/typedefs_10.js +61 -61
- package/SVF-doxygen/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/search/typedefs_13.js +33 -33
- package/SVF-doxygen/html/search/typedefs_14.js +8 -8
- package/SVF-doxygen/html/search/typedefs_2.js +129 -129
- package/SVF-doxygen/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/search/typedefs_4.js +17 -17
- package/SVF-doxygen/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/search/typedefs_6.js +55 -55
- package/SVF-doxygen/html/search/typedefs_7.js +44 -44
- package/SVF-doxygen/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/search/typedefs_c.js +41 -41
- package/SVF-doxygen/html/search/typedefs_d.js +14 -14
- package/SVF-doxygen/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/search/variables_0.js +151 -151
- package/SVF-doxygen/html/search/variables_1.js +75 -75
- package/SVF-doxygen/html/search/variables_10.js +97 -97
- package/SVF-doxygen/html/search/variables_11.js +44 -44
- package/SVF-doxygen/html/search/variables_12.js +92 -92
- package/SVF-doxygen/html/search/variables_13.js +75 -75
- package/SVF-doxygen/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/search/variables_15.js +48 -48
- package/SVF-doxygen/html/search/variables_16.js +9 -9
- package/SVF-doxygen/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/search/variables_18.js +2 -2
- package/SVF-doxygen/html/search/variables_2.js +38 -38
- package/SVF-doxygen/html/search/variables_3.js +142 -142
- package/SVF-doxygen/html/search/variables_4.js +55 -55
- package/SVF-doxygen/html/search/variables_5.js +37 -37
- package/SVF-doxygen/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/search/variables_7.js +33 -33
- package/SVF-doxygen/html/search/variables_8.js +7 -7
- package/SVF-doxygen/html/search/variables_9.js +78 -78
- package/SVF-doxygen/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/search/variables_d.js +56 -56
- package/SVF-doxygen/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/search/variables_f.js +29 -29
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1AccessPath_01_4.html +2 -2
- package/SVF-doxygen/html/svf-ex_8cpp.html +11 -11
- package/SVF-doxygen/html/svf-ex_8cpp_source.html +11 -11
- package/package.json +1 -1
- package/svf/include/Graphs/ConsGEdge.h +1 -1
- package/svf/include/MemoryModel/AccessPath.h +2 -2
- package/svf/include/SVFIR/SVFStatements.h +2 -2
- package/svf/include/SVFIR/SVFVariables.h +1 -1
- package/svf/lib/AbstractExecution/SVFIR2ConsExeState.cpp +2 -1
- package/svf/lib/AbstractExecution/SVFIR2ItvExeState.cpp +4 -0
- package/svf/lib/DDA/ContextDDA.cpp +2 -1
- package/svf/lib/DDA/FlowDDA.cpp +1 -1
- package/svf/lib/MemoryModel/AccessPath.cpp +4 -4
- package/svf/lib/SVFIR/SVFIR.cpp +1 -1
- package/svf/lib/WPA/Andersen.cpp +1 -1
- package/svf/lib/WPA/FlowSensitive.cpp +1 -1
- package/svf-llvm/lib/SVFIRBuilder.cpp +2 -2
- package/svf-llvm/lib/SVFIRExtAPI.cpp +7 -5
|
@@ -1190,25 +1190,25 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1190
1190
|
<p>get callsite id from call, return 0 if it is a spurious call edge </p>
|
|
1191
1191
|
<p>get callsite id from call, return 0 if it is a spurious call edge translate the callsite id from pre-computed callgraph on <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> to the one on current callgraph </p>
|
|
1192
1192
|
|
|
1193
|
-
<p class="definition">Definition at line <a class="el" href="ContextDDA_8cpp_source.html#
|
|
1194
|
-
<div class="fragment"><div class="line"><a name="
|
|
1195
|
-
<div class="line"><a name="
|
|
1196
|
-
<div class="line"><a name="
|
|
1197
|
-
<div class="line"><a name="
|
|
1198
|
-
<div class="line"><a name="
|
|
1199
|
-
<div class="line"><a name="
|
|
1200
|
-
<div class="line"><a name="
|
|
1201
|
-
<div class="line"><a name="
|
|
1202
|
-
<div class="line"><a name="
|
|
1203
|
-
<div class="line"><a name="
|
|
1204
|
-
<div class="line"><a name="
|
|
1205
|
-
<div class="line"><a name="
|
|
1206
|
-
<div class="line"><a name="
|
|
1207
|
-
<div class="line"><a name="
|
|
1208
|
-
<div class="line"><a name="
|
|
1209
|
-
<div class="line"><a name="
|
|
1210
|
-
<div class="line"><a name="
|
|
1211
|
-
<div class="line"><a name="
|
|
1193
|
+
<p class="definition">Definition at line <a class="el" href="ContextDDA_8cpp_source.html#l00210">210</a> of file <a class="el" href="ContextDDA_8cpp_source.html">ContextDDA.cpp</a>.</p>
|
|
1194
|
+
<div class="fragment"><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> {</div>
|
|
1195
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  </div>
|
|
1196
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> svfg_csId = 0;</div>
|
|
1197
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallDirSVFGEdge.html">CallDirSVFGEdge</a>* callEdge = SVFUtil::dyn_cast<CallDirSVFGEdge>(edge))</div>
|
|
1198
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  svfg_csId = callEdge->getCallSiteId();</div>
|
|
1199
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">else</span></div>
|
|
1200
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  svfg_csId = SVFUtil::cast<CallIndSVFGEdge>(edge)->getCallSiteId();</div>
|
|
1201
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  </div>
|
|
1202
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-><a class="code" href="classSVF_1_1VFG.html#a246cce511b8e9164a7c1760d1983f492">getCallSite</a>(svfg_csId);</div>
|
|
1203
|
+
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>()->getFun();</div>
|
|
1204
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  </div>
|
|
1205
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()->hasCallSiteID(cbn,callee))</div>
|
|
1206
|
+
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  {</div>
|
|
1207
|
+
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#a711bd8ad385f8454fbfcd20f134efe1b">getCallSiteID</a>(cbn,callee);</div>
|
|
1208
|
+
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  }</div>
|
|
1209
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  </div>
|
|
1210
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">return</span> 0;</div>
|
|
1211
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> }</div>
|
|
1212
1212
|
</div><!-- fragment -->
|
|
1213
1213
|
</div>
|
|
1214
1214
|
</div>
|
|
@@ -1241,25 +1241,25 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1241
1241
|
<p>get callsite id from return, return 0 if it is a spurious return edge </p>
|
|
1242
1242
|
<p>get callsite id from return, return 0 if it is a spurious return edge translate the callsite id from pre-computed callgraph on <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> to the one on current callgraph </p>
|
|
1243
1243
|
|
|
1244
|
-
<p class="definition">Definition at line <a class="el" href="ContextDDA_8cpp_source.html#
|
|
1245
|
-
<div class="fragment"><div class="line"><a name="
|
|
1246
|
-
<div class="line"><a name="
|
|
1247
|
-
<div class="line"><a name="
|
|
1248
|
-
<div class="line"><a name="
|
|
1249
|
-
<div class="line"><a name="
|
|
1250
|
-
<div class="line"><a name="
|
|
1251
|
-
<div class="line"><a name="
|
|
1252
|
-
<div class="line"><a name="
|
|
1253
|
-
<div class="line"><a name="
|
|
1254
|
-
<div class="line"><a name="
|
|
1255
|
-
<div class="line"><a name="
|
|
1256
|
-
<div class="line"><a name="
|
|
1257
|
-
<div class="line"><a name="
|
|
1258
|
-
<div class="line"><a name="
|
|
1259
|
-
<div class="line"><a name="
|
|
1260
|
-
<div class="line"><a name="
|
|
1261
|
-
<div class="line"><a name="
|
|
1262
|
-
<div class="line"><a name="
|
|
1244
|
+
<p class="definition">Definition at line <a class="el" href="ContextDDA_8cpp_source.html#l00234">234</a> of file <a class="el" href="ContextDDA_8cpp_source.html">ContextDDA.cpp</a>.</p>
|
|
1245
|
+
<div class="fragment"><div class="line"><a name="l00235"></a><span class="lineno"> 235</span> {</div>
|
|
1246
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  </div>
|
|
1247
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> svfg_csId = 0;</div>
|
|
1248
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetDirSVFGEdge.html">RetDirSVFGEdge</a>* retEdge = SVFUtil::dyn_cast<RetDirSVFGEdge>(edge))</div>
|
|
1249
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  svfg_csId = retEdge->getCallSiteId();</div>
|
|
1250
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordflow">else</span></div>
|
|
1251
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  svfg_csId = SVFUtil::cast<RetIndSVFGEdge>(edge)->getCallSiteId();</div>
|
|
1252
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  </div>
|
|
1253
|
+
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-><a class="code" href="classSVF_1_1VFG.html#a246cce511b8e9164a7c1760d1983f492">getCallSite</a>(svfg_csId);</div>
|
|
1254
|
+
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = edge-><a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>()->getFun();</div>
|
|
1255
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  </div>
|
|
1256
|
+
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()->hasCallSiteID(cbn,callee))</div>
|
|
1257
|
+
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  {</div>
|
|
1258
|
+
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-><a class="code" href="classSVF_1_1PTACallGraph.html#a711bd8ad385f8454fbfcd20f134efe1b">getCallSiteID</a>(cbn,callee);</div>
|
|
1259
|
+
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  }</div>
|
|
1260
|
+
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  </div>
|
|
1261
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">return</span> 0;</div>
|
|
1262
|
+
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> }</div>
|
|
1263
1263
|
</div><!-- fragment -->
|
|
1264
1264
|
</div>
|
|
1265
1265
|
</div>
|
|
@@ -1431,76 +1431,76 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1431
1431
|
|
|
1432
1432
|
<p>Reimplemented from <a class="el" href="classSVF_1_1DDAVFSolver.html#a601282325e55badc15f3ba9141816af5">SVF::DDAVFSolver< CxtVar, CxtPtSet, CxtLocDPItem ></a>.</p>
|
|
1433
1433
|
|
|
1434
|
-
<p class="definition">Definition at line <a class="el" href="ContextDDA_8cpp_source.html#
|
|
1435
|
-
<div class="fragment"><div class="line"><a name="
|
|
1436
|
-
<div class="line"><a name="
|
|
1437
|
-
<div class="line"><a name="
|
|
1438
|
-
<div class="line"><a name="
|
|
1439
|
-
<div class="line"><a name="
|
|
1440
|
-
<div class="line"><a name="
|
|
1441
|
-
<div class="line"><a name="
|
|
1442
|
-
<div class="line"><a name="
|
|
1443
|
-
<div class="line"><a name="
|
|
1444
|
-
<div class="line"><a name="
|
|
1445
|
-
<div class="line"><a name="
|
|
1446
|
-
<div class="line"><a name="
|
|
1447
|
-
<div class="line"><a name="
|
|
1448
|
-
<div class="line"><a name="
|
|
1449
|
-
<div class="line"><a name="
|
|
1450
|
-
<div class="line"><a name="
|
|
1451
|
-
<div class="line"><a name="
|
|
1452
|
-
<div class="line"><a name="
|
|
1453
|
-
<div class="line"><a name="
|
|
1454
|
-
<div class="line"><a name="
|
|
1455
|
-
<div class="line"><a name="
|
|
1456
|
-
<div class="line"><a name="
|
|
1457
|
-
<div class="line"><a name="
|
|
1458
|
-
<div class="line"><a name="
|
|
1459
|
-
<div class="line"><a name="
|
|
1460
|
-
<div class="line"><a name="
|
|
1461
|
-
<div class="line"><a name="
|
|
1462
|
-
<div class="line"><a name="
|
|
1463
|
-
<div class="line"><a name="
|
|
1464
|
-
<div class="line"><a name="
|
|
1465
|
-
<div class="line"><a name="
|
|
1466
|
-
<div class="line"><a name="
|
|
1467
|
-
<div class="line"><a name="
|
|
1468
|
-
<div class="line"><a name="
|
|
1469
|
-
<div class="line"><a name="
|
|
1470
|
-
<div class="line"><a name="
|
|
1471
|
-
<div class="line"><a name="
|
|
1472
|
-
<div class="line"><a name="
|
|
1473
|
-
<div class="line"><a name="
|
|
1474
|
-
<div class="line"><a name="
|
|
1475
|
-
<div class="line"><a name="
|
|
1476
|
-
<div class="line"><a name="
|
|
1477
|
-
<div class="line"><a name="
|
|
1478
|
-
<div class="line"><a name="
|
|
1479
|
-
<div class="line"><a name="
|
|
1480
|
-
<div class="line"><a name="
|
|
1481
|
-
<div class="line"><a name="
|
|
1482
|
-
<div class="line"><a name="
|
|
1483
|
-
<div class="line"><a name="
|
|
1484
|
-
<div class="line"><a name="
|
|
1485
|
-
<div class="line"><a name="
|
|
1486
|
-
<div class="line"><a name="
|
|
1487
|
-
<div class="line"><a name="
|
|
1488
|
-
<div class="line"><a name="
|
|
1489
|
-
<div class="line"><a name="
|
|
1490
|
-
<div class="line"><a name="
|
|
1491
|
-
<div class="line"><a name="
|
|
1492
|
-
<div class="line"><a name="
|
|
1493
|
-
<div class="line"><a name="
|
|
1494
|
-
<div class="line"><a name="
|
|
1495
|
-
<div class="line"><a name="
|
|
1496
|
-
<div class="line"><a name="
|
|
1497
|
-
<div class="line"><a name="
|
|
1498
|
-
<div class="line"><a name="
|
|
1499
|
-
<div class="line"><a name="
|
|
1500
|
-
<div class="line"><a name="
|
|
1501
|
-
<div class="line"><a name="
|
|
1502
|
-
<div class="line"><a name="
|
|
1503
|
-
<div class="line"><a name="
|
|
1434
|
+
<p class="definition">Definition at line <a class="el" href="ContextDDA_8cpp_source.html#l00256">256</a> of file <a class="el" href="ContextDDA_8cpp_source.html">ContextDDA.cpp</a>.</p>
|
|
1435
|
+
<div class="fragment"><div class="line"><a name="l00257"></a><span class="lineno"> 257</span> {</div>
|
|
1436
|
+
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <a class="code" href="classSVF_1_1ContextDDA.html#ae3b04859ed69c47302177988aa68a70b">_client</a>-><a class="code" href="classSVF_1_1DDAClient.html#aec3de00152e828beb5037269430f387d">handleStatement</a>(edge-><a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(), dpm.<a class="code" href="classSVF_1_1DPItem.html#a03a90eca842c0e83d874902103f6fdb2">getCurNodeID</a>());</div>
|
|
1437
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  </div>
|
|
1438
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">if</span> (edge-><a class="code" href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">isCallVFGEdge</a>())</div>
|
|
1439
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  {</div>
|
|
1440
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1ContextDDA.html#a2ce589a1d63a5126e178fc47527e0f92">getCSIDAtCall</a>(dpm,edge))</div>
|
|
1441
|
+
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  {</div>
|
|
1442
|
+
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  </div>
|
|
1443
|
+
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ContextDDA.html#a525949d1743136466d33bf4dc26ba423">isEdgeInRecursion</a>(csId))</div>
|
|
1444
|
+
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  {</div>
|
|
1445
|
+
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\t\t call edge "</span> << <a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()->getCallerOfCallSite(csId)->getName() <<</div>
|
|
1446
|
+
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="stringliteral">"=>"</span> << <a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()->getCalleeOfCallSite(csId)->getName() << <span class="stringliteral">"in recursion \n"</span>);</div>
|
|
1447
|
+
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="classSVF_1_1ContextDDA.html#a2754d0fd4b168786c990bbf36538b151">popRecursiveCallSites</a>(dpm);</div>
|
|
1448
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  }</div>
|
|
1449
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordflow">else</span></div>
|
|
1450
|
+
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  {</div>
|
|
1451
|
+
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">if</span> (dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#a35c0c0d5194983769e313d6e31b3d7ec">matchContext</a>(csId) == <span class="keyword">false</span>)</div>
|
|
1452
|
+
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  {</div>
|
|
1453
|
+
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\t\t context not match, edge "</span></div>
|
|
1454
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  << edge-><a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() << <span class="stringliteral">" --| "</span> << edge-><a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() << <span class="stringliteral">" \t"</span>);</div>
|
|
1455
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="classSVF_1_1ContextDDA.html#ac3e622d810ee69917b7bef08a882117c">dumpContexts</a>(dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#ace41c90e66f6a85f12ff67540ad9d594">getCond</a>()));</div>
|
|
1456
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
1457
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  }</div>
|
|
1458
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  </div>
|
|
1459
|
+
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\t\t match contexts "</span>);</div>
|
|
1460
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="classSVF_1_1ContextDDA.html#ac3e622d810ee69917b7bef08a882117c">dumpContexts</a>(dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#ace41c90e66f6a85f12ff67540ad9d594">getCond</a>()));</div>
|
|
1461
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  }</div>
|
|
1462
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  }</div>
|
|
1463
|
+
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  }</div>
|
|
1464
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  </div>
|
|
1465
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge-><a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>())</div>
|
|
1466
|
+
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  {</div>
|
|
1467
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1ContextDDA.html#a7687f36ad3f27bb16069975f00a1a202">getCSIDAtRet</a>(dpm,edge))</div>
|
|
1468
|
+
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  {</div>
|
|
1469
|
+
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  </div>
|
|
1470
|
+
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ContextDDA.html#a525949d1743136466d33bf4dc26ba423">isEdgeInRecursion</a>(csId))</div>
|
|
1471
|
+
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  {</div>
|
|
1472
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\t\t return edge "</span> << <a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()->getCalleeOfCallSite(csId)->getName() <<</div>
|
|
1473
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="stringliteral">"=>"</span> << <a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()->getCallerOfCallSite(csId)->getName() << <span class="stringliteral">"in recursion \n"</span>);</div>
|
|
1474
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <a class="code" href="classSVF_1_1ContextDDA.html#a2754d0fd4b168786c990bbf36538b151">popRecursiveCallSites</a>(dpm);</div>
|
|
1475
|
+
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  }</div>
|
|
1476
|
+
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">else</span></div>
|
|
1477
|
+
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  {</div>
|
|
1478
|
+
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keywordflow">if</span> (dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#ace41c90e66f6a85f12ff67540ad9d594">getCond</a>().<a class="code" href="classSVF_1_1ContextCond.html#a6f5b0bbc0978220aaa990f5fd0ddce8d">containCallStr</a>(csId))</div>
|
|
1479
|
+
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  {</div>
|
|
1480
|
+
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a> = <span class="keyword">true</span>;</div>
|
|
1481
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2e0196e0ce547ab4a483cc6d2646b24">SVFUtil::writeWrnMsg</a>(<span class="stringliteral">"Call site ID is contained in call string. Is this a recursion?"</span>);</div>
|
|
1482
|
+
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
1483
|
+
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  }</div>
|
|
1484
|
+
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordflow">else</span></div>
|
|
1485
|
+
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  {</div>
|
|
1486
|
+
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  assert(dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#ace41c90e66f6a85f12ff67540ad9d594">getCond</a>().<a class="code" href="classSVF_1_1ContextCond.html#a6f5b0bbc0978220aaa990f5fd0ddce8d">containCallStr</a>(csId) ==<span class="keyword">false</span> && <span class="stringliteral">"contain visited call string ??"</span>);</div>
|
|
1487
|
+
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">if</span>(dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#a3bb07147466d6ccb397616e1c09fc60b">pushContext</a>(csId))</div>
|
|
1488
|
+
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  {</div>
|
|
1489
|
+
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\t\t push context "</span>);</div>
|
|
1490
|
+
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="classSVF_1_1ContextDDA.html#ac3e622d810ee69917b7bef08a882117c">dumpContexts</a>(dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#ace41c90e66f6a85f12ff67540ad9d594">getCond</a>()));</div>
|
|
1491
|
+
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  }</div>
|
|
1492
|
+
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">else</span></div>
|
|
1493
|
+
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  {</div>
|
|
1494
|
+
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\t\t context is full "</span>);</div>
|
|
1495
|
+
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="classSVF_1_1ContextDDA.html#ac3e622d810ee69917b7bef08a882117c">dumpContexts</a>(dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#ace41c90e66f6a85f12ff67540ad9d594">getCond</a>()));</div>
|
|
1496
|
+
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  }</div>
|
|
1497
|
+
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  }</div>
|
|
1498
|
+
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  }</div>
|
|
1499
|
+
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  }</div>
|
|
1500
|
+
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  }</div>
|
|
1501
|
+
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  </div>
|
|
1502
|
+
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
1503
|
+
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> }</div>
|
|
1504
1504
|
</div><!-- fragment -->
|
|
1505
1505
|
</div>
|
|
1506
1506
|
</div>
|
|
@@ -1716,41 +1716,41 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1716
1716
|
|
|
1717
1717
|
<p>Reimplemented from <a class="el" href="classSVF_1_1DDAVFSolver.html#a645c7d0637b49e139898016ff652e1f3">SVF::DDAVFSolver< CxtVar, CxtPtSet, CxtLocDPItem ></a>.</p>
|
|
1718
1718
|
|
|
1719
|
-
<p class="definition">Definition at line <a class="el" href="ContextDDA_8cpp_source.html#
|
|
1720
|
-
<div class="fragment"><div class="line"><a name="
|
|
1721
|
-
<div class="line"><a name="
|
|
1722
|
-
<div class="line"><a name="
|
|
1723
|
-
<div class="line"><a name="
|
|
1724
|
-
<div class="line"><a name="
|
|
1725
|
-
<div class="line"><a name="
|
|
1726
|
-
<div class="line"><a name="
|
|
1727
|
-
<div class="line"><a name="
|
|
1728
|
-
<div class="line"><a name="
|
|
1729
|
-
<div class="line"><a name="
|
|
1730
|
-
<div class="line"><a name="
|
|
1731
|
-
<div class="line"><a name="
|
|
1732
|
-
<div class="line"><a name="
|
|
1733
|
-
<div class="line"><a name="
|
|
1734
|
-
<div class="line"><a name="
|
|
1735
|
-
<div class="line"><a name="
|
|
1736
|
-
<div class="line"><a name="
|
|
1737
|
-
<div class="line"><a name="
|
|
1738
|
-
<div class="line"><a name="
|
|
1739
|
-
<div class="line"><a name="
|
|
1740
|
-
<div class="line"><a name="
|
|
1741
|
-
<div class="line"><a name="
|
|
1742
|
-
<div class="line"><a name="
|
|
1743
|
-
<div class="line"><a name="
|
|
1744
|
-
<div class="line"><a name="
|
|
1745
|
-
<div class="line"><a name="
|
|
1746
|
-
<div class="line"><a name="
|
|
1747
|
-
<div class="line"><a name="
|
|
1748
|
-
<div class="line"><a name="
|
|
1749
|
-
<div class="line"><a name="
|
|
1750
|
-
<div class="line"><a name="
|
|
1751
|
-
<div class="line"><a name="
|
|
1752
|
-
<div class="line"><a name="
|
|
1753
|
-
<div class="line"><a name="
|
|
1719
|
+
<p class="definition">Definition at line <a class="el" href="ContextDDA_8cpp_source.html#l00335">335</a> of file <a class="el" href="ContextDDA_8cpp_source.html">ContextDDA.cpp</a>.</p>
|
|
1720
|
+
<div class="fragment"><div class="line"><a name="l00336"></a><span class="lineno"> 336</span> {</div>
|
|
1721
|
+
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(<a class="code" href="classSVF_1_1ContextDDA.html#a6ae16be6774994932aaa594c9b9cb397">getPtrNodeID</a>(var));</div>
|
|
1722
|
+
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  assert(mem && <span class="stringliteral">"memory object is null??"</span>);</div>
|
|
1723
|
+
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keywordflow">if</span> (mem-><a class="code" href="classSVF_1_1MemObj.html#a898c5bb3956402578266a6fb142e02b1">isHeap</a>())</div>
|
|
1724
|
+
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  {</div>
|
|
1725
|
+
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keywordflow">if</span> (!mem-><a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>())</div>
|
|
1726
|
+
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  {</div>
|
|
1727
|
+
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *pnode = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<a class="code" href="classSVF_1_1ContextDDA.html#a6ae16be6774994932aaa594c9b9cb397">getPtrNodeID</a>(var));</div>
|
|
1728
|
+
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</a>* gepobj = SVFUtil::dyn_cast<GepObjVar>(pnode);</div>
|
|
1729
|
+
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordflow">if</span> (gepobj != <span class="keyword">nullptr</span>)</div>
|
|
1730
|
+
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  {</div>
|
|
1731
|
+
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  assert(SVFUtil::isa<DummyObjVar>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(gepobj-><a class="code" href="classSVF_1_1GepObjVar.html#a4c5e346db61f7e04c15bf8527d8eff3c">getBaseNode</a>()))</div>
|
|
1732
|
+
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  && <span class="stringliteral">"empty refVal in a gep object whose base is a non-dummy object"</span>);</div>
|
|
1733
|
+
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  }</div>
|
|
1734
|
+
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keywordflow">else</span></div>
|
|
1735
|
+
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  {</div>
|
|
1736
|
+
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  assert((SVFUtil::isa<DummyObjVar, DummyValVar>(pnode))</div>
|
|
1737
|
+
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  && <span class="stringliteral">"empty refVal in non-dummy object"</span>);</div>
|
|
1738
|
+
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  }</div>
|
|
1739
|
+
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
1740
|
+
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  }</div>
|
|
1741
|
+
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* mallocSite = SVFUtil::dyn_cast<SVFInstruction>(mem-><a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
|
|
1742
|
+
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  {</div>
|
|
1743
|
+
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfFun = mallocSite->getFunction();</div>
|
|
1744
|
+
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#aa725a0c9426e8615cbc078c88561f66a">isInRecursion</a>(svfFun))</div>
|
|
1745
|
+
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
1746
|
+
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="keywordflow">if</span>(var.<a class="code" href="classSVF_1_1CondVar.html#af84e7bfcff909009be5e109c600c63fe">get_cond</a>().isConcreteCxt() == <span class="keyword">false</span>)</div>
|
|
1747
|
+
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
1748
|
+
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>()-><a class="code" href="classSVF_1_1ICFG.html#ae115e70bf53f25c0ca6b1f22acccf5b5">isInLoop</a>(mallocSite))</div>
|
|
1749
|
+
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
1750
|
+
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  }</div>
|
|
1751
|
+
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  }</div>
|
|
1752
|
+
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
1753
|
+
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> }</div>
|
|
1754
1754
|
</div><!-- fragment -->
|
|
1755
1755
|
</div>
|
|
1756
1756
|
</div>
|
|
@@ -1885,19 +1885,20 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1885
1885
|
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  }</div>
|
|
1886
1886
|
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">else</span></div>
|
|
1887
1887
|
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  {</div>
|
|
1888
|
-
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a> var(ptd.<a class="code" href="classSVF_1_1CondVar.html#af84e7bfcff909009be5e109c600c63fe">get_cond</a>(),<a class="code" href="classSVF_1_1PointerAnalysis.html#aac6ccf3dc313e3c6761bb57316829da8">getGepObjVar</a>(ptd.<a class="code" href="classSVF_1_1CondVar.html#a5d64fa2be89051cd03301e3b07bffd6a">get_id</a>()
|
|
1889
|
-
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> 
|
|
1890
|
-
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> 
|
|
1891
|
-
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> 
|
|
1892
|
-
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> 
|
|
1893
|
-
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> 
|
|
1894
|
-
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> 
|
|
1895
|
-
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() <<
|
|
1896
|
-
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() <<
|
|
1897
|
-
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() <<
|
|
1898
|
-
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() <<
|
|
1899
|
-
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <
|
|
1900
|
-
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> 
|
|
1888
|
+
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a> var(ptd.<a class="code" href="classSVF_1_1CondVar.html#af84e7bfcff909009be5e109c600c63fe">get_cond</a>(),<a class="code" href="classSVF_1_1PointerAnalysis.html#aac6ccf3dc313e3c6761bb57316829da8">getGepObjVar</a>(ptd.<a class="code" href="classSVF_1_1CondVar.html#a5d64fa2be89051cd03301e3b07bffd6a">get_id</a>(),</div>
|
|
1889
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  gepStmt-><a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a5427d08c9eb9d86e66c2bff6aeba6bac">getConstantStructFldIdx</a>()));</div>
|
|
1890
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  tmpDstPts.<a class="code" href="classSVF_1_1CondStdSet.html#ae11deddad534be115d29daad08c90599">set</a>(var);</div>
|
|
1891
|
+
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  }</div>
|
|
1892
|
+
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  }</div>
|
|
1893
|
+
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  }</div>
|
|
1894
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  </div>
|
|
1895
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\t return created gep objs "</span>);</div>
|
|
1896
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << srcPts.<a class="code" href="classSVF_1_1CondStdSet.html#a07267b0a4f7cfeaa6d1f7d722932c4d5">toString</a>());</div>
|
|
1897
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">" --> "</span>);</div>
|
|
1898
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << tmpDstPts.<a class="code" href="classSVF_1_1CondStdSet.html#a07267b0a4f7cfeaa6d1f7d722932c4d5">toString</a>());</div>
|
|
1899
|
+
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n"</span>);</div>
|
|
1900
|
+
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordflow">return</span> tmpDstPts;</div>
|
|
1901
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> }</div>
|
|
1901
1902
|
</div><!-- fragment -->
|
|
1902
1903
|
</div>
|
|
1903
1904
|
</div>
|
|
@@ -2014,22 +2015,22 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2014
2015
|
|
|
2015
2016
|
<p>refine indirect call edge </p>
|
|
2016
2017
|
|
|
2017
|
-
<p class="definition">Definition at line <a class="el" href="ContextDDA_8cpp_source.html#
|
|
2018
|
-
<div class="fragment"><div class="line"><a name="
|
|
2019
|
-
<div class="line"><a name="
|
|
2020
|
-
<div class="line"><a name="
|
|
2021
|
-
<div class="line"><a name="
|
|
2022
|
-
<div class="line"><a name="
|
|
2023
|
-
<div class="line"><a name="
|
|
2024
|
-
<div class="line"><a name="
|
|
2025
|
-
<div class="line"><a name="
|
|
2026
|
-
<div class="line"><a name="
|
|
2027
|
-
<div class="line"><a name="
|
|
2028
|
-
<div class="line"><a name="
|
|
2029
|
-
<div class="line"><a name="
|
|
2030
|
-
<div class="line"><a name="
|
|
2031
|
-
<div class="line"><a name="
|
|
2032
|
-
<div class="line"><a name="
|
|
2018
|
+
<p class="definition">Definition at line <a class="el" href="ContextDDA_8cpp_source.html#l00189">189</a> of file <a class="el" href="ContextDDA_8cpp_source.html">ContextDDA.cpp</a>.</p>
|
|
2019
|
+
<div class="fragment"><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> {</div>
|
|
2020
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()->isIndirectCallSites(cs))</div>
|
|
2021
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  {</div>
|
|
2022
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span> = <a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1SVFIR.html#a17c5d9fa7c0bd3cd03c06b5ff0906eb6">getFunPtr</a>(cs);</div>
|
|
2023
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>);</div>
|
|
2024
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a> funptrVar(dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#ab1098f5093419b62ea27a20933059270">getCondVar</a>().<a class="code" href="classSVF_1_1CondVar.html#af84e7bfcff909009be5e109c600c63fe">get_cond</a>(), <span class="keywordtype">id</span>);</div>
|
|
2025
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <a class="code" href="classSVF_1_1CxtStmtDPItem.html">CxtLocDPItem</a> funptrDpm = <a class="code" href="classSVF_1_1DDAVFSolver.html#ad7d92fad8606d5512786a7b7a08930e2">getDPIm</a>(funptrVar,<a class="code" href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">getDefSVFGNode</a>(node));</div>
|
|
2026
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> pts = <a class="code" href="classSVF_1_1CondPTAImpl.html#a94f3e4d073b8c5bab3c46058ddba3f43">getBVPointsTo</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(funptrDpm));</div>
|
|
2027
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">if</span>(pts.<a class="code" href="classSVF_1_1PointsTo.html#af61271fefa574c39f405fdfee59a8b3f">test</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()->getObjectNode(callee)))</div>
|
|
2028
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
2029
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">else</span></div>
|
|
2030
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
2031
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  }</div>
|
|
2032
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
2033
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> }</div>
|
|
2033
2034
|
</div><!-- fragment -->
|
|
2034
2035
|
</div>
|
|
2035
2036
|
</div>
|
|
@@ -2220,11 +2221,11 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2220
2221
|
<div class="ttc" id="aclassSVF_1_1CxtStmtDPItem_html"><div class="ttname"><a href="classSVF_1_1CxtStmtDPItem.html">SVF::CxtStmtDPItem</a></div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00389">DPItem.h:389</a></div></div>
|
|
2221
2222
|
<div class="ttc" id="aclassSVF_1_1DDAVFSolver_html_a7994236bff84ba8244592fdf5e546734"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7994236bff84ba8244592fdf5e546734">SVF::DDAVFSolver< CxtVar, CxtPtSet, CxtLocDPItem >::isOutOfBudgetQuery</a></div><div class="ttdeci">bool isOutOfBudgetQuery() const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00726">DDAVFSolver.h:726</a></div></div>
|
|
2222
2223
|
<div class="ttc" id="aclassSVF_1_1VFGEdge_html_a3937eef974c3953f1d1e7d64c5a24ff3"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">SVF::VFGEdge::isRetVFGEdge</a></div><div class="ttdeci">bool isRetVFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00088">VFGEdge.h:88</a></div></div>
|
|
2224
|
+
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a5427d08c9eb9d86e66c2bff6aeba6bac"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a5427d08c9eb9d86e66c2bff6aeba6bac">SVF::AccessPath::getConstantStructFldIdx</a></div><div class="ttdeci">APOffset getConstantStructFldIdx() const</div><div class="ttdoc">Get methods.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00098">AccessPath.h:98</a></div></div>
|
|
2223
2225
|
<div class="ttc" id="aclassSVF_1_1DDAVFSolver_html_afdecfbacc64cb8d694268aa73ec8a7b6"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">SVF::DDAVFSolver< CxtVar, CxtPtSet, CxtLocDPItem >::outOfBudgetQuery</a></div><div class="ttdeci">bool outOfBudgetQuery</div><div class="ttdoc">Whether the current query is out of step limits.</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00767">DDAVFSolver.h:767</a></div></div>
|
|
2224
2226
|
<div class="ttc" id="aclassSVF_1_1DDAStat_html_ac3189db5d8e17f64fdfcc9b040cf6100"><div class="ttname"><a href="classSVF_1_1DDAStat.html#ac3189db5d8e17f64fdfcc9b040cf6100">SVF::DDAStat::_TotalTimeOfQueries</a></div><div class="ttdeci">double _TotalTimeOfQueries</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00063">DDAStat.h:63</a></div></div>
|
|
2225
2227
|
<div class="ttc" id="aclassSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00085">GenericGraph.h:85</a></div></div>
|
|
2226
2228
|
<div class="ttc" id="aclassSVF_1_1CondStdSet_html_adf095111734d81b6ad1908a7f795b038"><div class="ttname"><a href="classSVF_1_1CondStdSet.html#adf095111734d81b6ad1908a7f795b038">SVF::CondStdSet::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators.</div><div class="ttdef"><b>Definition:</b> <a href="ConditionalPT_8h_source.html#l00192">ConditionalPT.h:192</a></div></div>
|
|
2227
|
-
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a68e49bb797a84ea035ea338549f2e054"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a68e49bb797a84ea035ea338549f2e054">SVF::AccessPath::getConstantFieldIdx</a></div><div class="ttdeci">APOffset getConstantFieldIdx() const</div><div class="ttdoc">Get methods.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00098">AccessPath.h:98</a></div></div>
|
|
2228
2229
|
<div class="ttc" id="aclassSVF_1_1FlowDDA_html_af1fcf058a9feefeda63f07d4189513a1"><div class="ttname"><a href="classSVF_1_1FlowDDA.html#af1fcf058a9feefeda63f07d4189513a1">SVF::FlowDDA::initialize</a></div><div class="ttdeci">virtual void initialize() override</div><div class="ttdoc">Initialization of the analysis.</div><div class="ttdef"><b>Definition:</b> <a href="FlowDDA_8h_source.html#l00086">FlowDDA.h:86</a></div></div>
|
|
2229
2230
|
<div class="ttc" id="aclassSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
|
|
2230
2231
|
<div class="ttc" id="aclassSVF_1_1CondVar_html_a5d64fa2be89051cd03301e3b07bffd6a"><div class="ttname"><a href="classSVF_1_1CondVar.html#a5d64fa2be89051cd03301e3b07bffd6a">SVF::CondVar::get_id</a></div><div class="ttdeci">NodeID get_id() const</div><div class="ttdef"><b>Definition:</b> <a href="ConditionalPT_8h_source.html#l00104">ConditionalPT.h:104</a></div></div>
|
|
@@ -2281,7 +2282,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2281
2282
|
<div class="ttc" id="aclassSVF_1_1ContextDDA_html_a525949d1743136466d33bf4dc26ba423"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a525949d1743136466d33bf4dc26ba423">SVF::ContextDDA::isEdgeInRecursion</a></div><div class="ttdeci">virtual bool isEdgeInRecursion(CallSiteID csId)</div><div class="ttdoc">Whether call/return inside recursion.</div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00134">ContextDDA.h:134</a></div></div>
|
|
2282
2283
|
<div class="ttc" id="aclassSVF_1_1CxtStmtDPItem_html_ab1098f5093419b62ea27a20933059270"><div class="ttname"><a href="classSVF_1_1CxtStmtDPItem.html#ab1098f5093419b62ea27a20933059270">SVF::CxtStmtDPItem::getCondVar</a></div><div class="ttdeci">CxtVar getCondVar() const</div><div class="ttdoc">Get context var.</div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00408">DPItem.h:408</a></div></div>
|
|
2283
2284
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ac1422cd8b449fdb4a1f7c539364e4c41"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">SVF::PointerAnalysis::FunctionSet</a></div><div class="ttdeci">Set< const SVFFunction * > FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00105">PointerAnalysis.h:105</a></div></div>
|
|
2284
|
-
<div class="ttc" id="aclassSVF_1_1ContextDDA_html_a7687f36ad3f27bb16069975f00a1a202"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a7687f36ad3f27bb16069975f00a1a202">SVF::ContextDDA::getCSIDAtRet</a></div><div class="ttdeci">CallSiteID getCSIDAtRet(CxtLocDPItem &dpm, const SVFGEdge *edge)</div><div class="ttdoc">get callsite id from return, return 0 if it is a spurious return edge</div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8cpp_source.html#
|
|
2285
|
+
<div class="ttc" id="aclassSVF_1_1ContextDDA_html_a7687f36ad3f27bb16069975f00a1a202"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a7687f36ad3f27bb16069975f00a1a202">SVF::ContextDDA::getCSIDAtRet</a></div><div class="ttdeci">CallSiteID getCSIDAtRet(CxtLocDPItem &dpm, const SVFGEdge *edge)</div><div class="ttdoc">get callsite id from return, return 0 if it is a spurious return edge</div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8cpp_source.html#l00234">ContextDDA.cpp:234</a></div></div>
|
|
2285
2286
|
<div class="ttc" id="aclassSVF_1_1FlowDDA_html_a113faa56ee75eff39da19fd4b47a47e0"><div class="ttname"><a href="classSVF_1_1FlowDDA.html#a113faa56ee75eff39da19fd4b47a47e0">SVF::FlowDDA::computeDDAPts</a></div><div class="ttdeci">void computeDDAPts(NodeID id) override</div><div class="ttdoc">Compute points-to set for all top variable.</div><div class="ttdef"><b>Definition:</b> <a href="FlowDDA_8cpp_source.html#l00043">FlowDDA.cpp:43</a></div></div>
|
|
2286
2287
|
<div class="ttc" id="aclassSVF_1_1Options_html_a3bbd106de519cb8d00f33e82f14d279b"><div class="ttname"><a href="classSVF_1_1Options.html#a3bbd106de519cb8d00f33e82f14d279b">SVF::Options::CxtBudget</a></div><div class="ttdeci">static const Option< u32_t > CxtBudget</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00081">Options.h:81</a></div></div>
|
|
2287
2288
|
<div class="ttc" id="anamespaceSVF_html_a03d88a0302bcd253387690f13f693f64"><div class="ttname"><a href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">SVF::CallSiteID</a></div><div class="ttdeci">unsigned CallSiteID</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00059">SVFType.h:59</a></div></div>
|
|
@@ -2310,7 +2311,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2310
2311
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_aa725a0c9426e8615cbc078c88561f66a"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aa725a0c9426e8615cbc078c88561f66a">SVF::PointerAnalysis::isInRecursion</a></div><div class="ttdeci">bool isInRecursion(const SVFFunction *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00414">PointerAnalysis.h:414</a></div></div>
|
|
2311
2312
|
<div class="ttc" id="aclassSVF_1_1CondStdSet_html_ae11deddad534be115d29daad08c90599"><div class="ttname"><a href="classSVF_1_1CondStdSet.html#ae11deddad534be115d29daad08c90599">SVF::CondStdSet::set</a></div><div class="ttdeci">void set(const Element &var)</div><div class="ttdoc">Add the element into set.</div><div class="ttdef"><b>Definition:</b> <a href="ConditionalPT_8h_source.html#l00158">ConditionalPT.h:158</a></div></div>
|
|
2312
2313
|
<div class="ttc" id="aclassSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00028">PointsTo.h:28</a></div></div>
|
|
2313
|
-
<div class="ttc" id="aclassSVF_1_1ContextDDA_html_a2ce589a1d63a5126e178fc47527e0f92"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a2ce589a1d63a5126e178fc47527e0f92">SVF::ContextDDA::getCSIDAtCall</a></div><div class="ttdeci">CallSiteID getCSIDAtCall(CxtLocDPItem &dpm, const SVFGEdge *edge)</div><div class="ttdoc">get callsite id from call, return 0 if it is a spurious call edge</div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8cpp_source.html#
|
|
2314
|
+
<div class="ttc" id="aclassSVF_1_1ContextDDA_html_a2ce589a1d63a5126e178fc47527e0f92"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a2ce589a1d63a5126e178fc47527e0f92">SVF::ContextDDA::getCSIDAtCall</a></div><div class="ttdeci">CallSiteID getCSIDAtCall(CxtLocDPItem &dpm, const SVFGEdge *edge)</div><div class="ttdoc">get callsite id from call, return 0 if it is a spurious call edge</div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8cpp_source.html#l00210">ContextDDA.cpp:210</a></div></div>
|
|
2314
2315
|
<div class="ttc" id="aclassSVF_1_1PTACallGraph_html_a711bd8ad385f8454fbfcd20f134efe1b"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a711bd8ad385f8454fbfcd20f134efe1b">SVF::PTACallGraph::getCallSiteID</a></div><div class="ttdeci">CallSiteID getCallSiteID(const CallICFGNode *cs, const SVFFunction *callee) const</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00344">PTACallGraph.h:344</a></div></div>
|
|
2315
2316
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
|
|
2316
2317
|
<div class="ttc" id="aclassSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00101">GenericGraph.h:101</a></div></div>
|