[clang] [LifetimeSafety] Detect use-after-return (PR #165370)
Utkarsh Saxena via cfe-commits
cfe-commits at lists.llvm.org
Fri Nov 14 06:20:37 PST 2025
================
@@ -122,6 +122,39 @@ class LifetimeTestHelper {
return LID;
}
+ std::optional<LoanSet> getLiveLoansAtPoint(ProgramPoint P) const {
+ const auto &LiveOriginsAnalysis = Runner.getAnalysis().getLiveOrigins();
+ const auto &LoanPropagation = Runner.getAnalysis().getLoanPropagation();
+
+ LivenessMap LiveOriginsMap = LiveOriginsAnalysis.getLiveOriginsAt(P);
+
+ LoanSet::Factory F;
+ LoanSet Result = F.getEmptySet();
+
+ for (const auto &[OID, LI] : LiveOriginsMap) {
+ if (LI.Kind != LivenessKind::Dead) {
----------------
usx95 wrote:
Do you see "Dead" returned by `getLiveOriginsAt` ? If not, I would skip this check.
https://github.com/llvm/llvm-project/pull/165370
More information about the cfe-commits
mailing list