svf-lib 1.0.2501 → 1.0.2502
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-linux-aarch64/bin/ae
CHANGED
|
Binary file
|
|
@@ -138,15 +138,13 @@ private:
|
|
|
138
138
|
/// Initialize abstract state for the global ICFG node and process global statements
|
|
139
139
|
virtual void handleGlobalNode();
|
|
140
140
|
|
|
141
|
-
///
|
|
142
|
-
|
|
141
|
+
/// Propagate the post-state of a node to all its intra-procedural successors
|
|
142
|
+
void propagateToSuccessor(const ICFGNode* node,
|
|
143
|
+
const Set<const ICFGNode*>* withinSet = nullptr);
|
|
143
144
|
|
|
144
145
|
/// Check if the branch on intraEdge is feasible under abstract state as
|
|
145
146
|
bool isBranchFeasible(const IntraCFGEdge* intraEdge, AbstractState& as);
|
|
146
147
|
|
|
147
|
-
/// Process all SVF statements in a singleton WTO component (single basic block)
|
|
148
|
-
virtual void handleSingletonWTO(const ICFGSingletonWTO *icfgSingletonWto);
|
|
149
|
-
|
|
150
148
|
/// Handle a call site node: dispatch to ext-call, direct-call, or indirect-call handling
|
|
151
149
|
virtual void handleCallSite(const ICFGNode* node);
|
|
152
150
|
|
|
@@ -156,15 +154,9 @@ private:
|
|
|
156
154
|
/// Handle a function body via worklist-driven WTO traversal starting from funEntry
|
|
157
155
|
void handleFunction(const ICFGNode* funEntry, const CallICFGNode* caller = nullptr);
|
|
158
156
|
|
|
159
|
-
///
|
|
157
|
+
/// Handle an ICFG node: execute statements; return true if state changed
|
|
160
158
|
bool handleICFGNode(const ICFGNode* node);
|
|
161
159
|
|
|
162
|
-
/// Get intra-procedural successor nodes (including call-to-ret shortcut) within the same function
|
|
163
|
-
std::vector<const ICFGNode*> getNextNodes(const ICFGNode* node) const;
|
|
164
|
-
|
|
165
|
-
/// Get successor nodes that exit the given WTO cycle (skipping inner sub-cycles)
|
|
166
|
-
std::vector<const ICFGNode*> getNextNodesOfCycle(const ICFGCycleWTO* cycle) const;
|
|
167
|
-
|
|
168
160
|
/// Dispatch an SVF statement (Addr/Binary/Cmp/Load/Store/Copy/Gep/Select/Phi/Call/Ret) to its handler
|
|
169
161
|
virtual void handleSVFStatement(const SVFStmt* stmt);
|
|
170
162
|
|
|
@@ -232,7 +224,7 @@ private:
|
|
|
232
224
|
// there data should be shared with subclasses
|
|
233
225
|
Map<std::string, std::function<void(const CallICFGNode*)>> func_map;
|
|
234
226
|
|
|
235
|
-
Map<const ICFGNode*, AbstractState> abstractTrace; // abstract states
|
|
227
|
+
Map<const ICFGNode*, AbstractState> abstractTrace; // abstract states for nodes (pre-state before execution, post-state after)
|
|
236
228
|
Set<const ICFGNode*> allAnalyzedNodes; // All nodes ever analyzed (across all entry points)
|
|
237
229
|
std::string moduleName;
|
|
238
230
|
|
|
Binary file
|