[clang] [LifetimeSafety] Run analysis in post-order of CallGraph for better annotation propagation (PR #174178)

Utkarsh Saxena via cfe-commits cfe-commits at lists.llvm.org
Mon Jan 5 10:07:27 PST 2026


================
@@ -2969,6 +3009,46 @@ void clang::sema::AnalysisBasedWarnings::IssueWarnings(
     CallableVisitor(CallAnalyzers, TU->getOwningModule())
         .TraverseTranslationUnitDecl(TU);
   }
+
+  if (S.getLangOpts().EnableLifetimeSafety && S.getLangOpts().CPlusPlus &&
+      S.getLangOpts().EnableLifetimeSafetyInferencePostOrder) {
+    llvm::SmallVector<const FunctionDecl *, 64> AllFunctions;
+    auto AddFunctionToList = [&](const Decl *D) -> void {
+      if (const auto *FD = dyn_cast<FunctionDecl>(D))
+        if (FD->doesThisDeclarationHaveABody() &&
+            !S.getSourceManager().isInSystemHeader(FD->getLocation()))
----------------
usx95 wrote:

Why do we have to skip system headers ?

https://github.com/llvm/llvm-project/pull/174178


More information about the cfe-commits mailing list