Skip to content

Add AE function entry mode on latest master#1826

Merged
yuleisui merged 5 commits into
SVF-tools:masterfrom
bjjwwang:0506-master-compatible
May 20, 2026
Merged

Add AE function entry mode on latest master#1826
yuleisui merged 5 commits into
SVF-tools:masterfrom
bjjwwang:0506-master-compatible

Conversation

@bjjwwang

Copy link
Copy Markdown
Contributor

No description provided.

@codecov

codecov Bot commented May 19, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 84.37500% with 5 lines in your changes missing coverage. Please review.
✅ Project coverage is 64.44%. Comparing base (35f73a4) to head (642e95b).
⚠️ Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
svf/lib/AE/Svfexe/AbstractInterpretation.cpp 84.37% 5 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #1826      +/-   ##
==========================================
+ Coverage   64.42%   64.44%   +0.02%     
==========================================
  Files         252      252              
  Lines       25181    25208      +27     
  Branches     4763     4768       +5     
==========================================
+ Hits        16223    16246      +23     
- Misses       8958     8962       +4     
Files with missing lines Coverage Δ
svf/include/AE/Svfexe/AbstractInterpretation.h 100.00% <ø> (ø)
svf/lib/AE/Svfexe/AbstractInterpretation.cpp 82.31% <84.37%> (+0.11%) ⬆️

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment thread svf/lib/Util/Options.cpp Outdated
}
});
const OptionMap<u32_t> Options::FunEntry(
"fun-entry",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ae-fun-entry

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ae-fun-entry

fixed

WIDEN_NARROW
};

enum FunEntryMode

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AEFunEntryMode

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AEFunEntryMode

fixed

Comment on lines +752 to +816
if (mergeStatesFromPredecessors(node))
if (node->getInEdges().empty())
{
updateAbsState(node, getAbsState(globalNode));
handleICFGNode(node);
}
else if (mergeStatesFromPredecessors(node))
handleICFGNode(node);
}
else if (const ICFGCycleWTO* cycle = SVFUtil::dyn_cast<ICFGCycleWTO>(comp))
{
if (mergeStatesFromPredecessors(cycle->head()->getICFGNode()))
const ICFGNode* node = cycle->head()->getICFGNode();
if (node->getInEdges().empty())
{
updateAbsState(node, getAbsState(globalNode));
handleLoopOrRecursion(cycle, caller);
}
else if (mergeStatesFromPredecessors(node))

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is unclear to me why we need to change this?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is unclear to me why we need to change this?

Because GlobalICFGNode just connects to FunEntryNode of Main Function. If there's no main function, FunEntryNode of no-caller Functions should inherit actively from GlobalNode.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should be handled in this loop at line 176 (entryFunctions should include all no-caller functions):

// handle Global ICFGNode of SVFModule
handleGlobalNode();
for (const FunObjVar* entryFun : entryFunctions)
{
    const ICFGNode* funEntry = icfg->getFunEntryICFGNode(entryFun);
    updateAbsState(node, getAbsState(globalNode));
    handleFunction(funEntry);
}

@bjjwwang bjjwwang force-pushed the 0506-master-compatible branch 3 times, most recently from 4a9e39e to 10b84a7 Compare May 19, 2026 11:13
@bjjwwang bjjwwang force-pushed the 0506-master-compatible branch from 10b84a7 to 770f478 Compare May 19, 2026 11:13
@bjjwwang bjjwwang marked this pull request as ready for review May 19, 2026 11:53
@yuleisui yuleisui merged commit 49d96a0 into SVF-tools:master May 20, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants