https://github.com/usx95 created https://github.com/llvm/llvm-project/pull/197219
None >From 8897e283c2cc6bf0802c5965e8a7d0bf9fa0c031 Mon Sep 17 00:00:00 2001 From: Utkarsh Saxena <[email protected]> Date: Tue, 12 May 2026 15:10:29 +0000 Subject: [PATCH] run-lifetime-analysis --- clang/include/clang/Options/Options.td | 4 ++-- clang/lib/Sema/AnalysisBasedWarnings.cpp | 2 +- clang/lib/Sema/SemaLifetimeSafety.h | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/clang/include/clang/Options/Options.td b/clang/include/clang/Options/Options.td index 5eeabf4c33b76..77662a9e4726e 100644 --- a/clang/include/clang/Options/Options.td +++ b/clang/include/clang/Options/Options.td @@ -1995,10 +1995,10 @@ defm bounds_safety : BoolFOption< defm lifetime_safety : BoolFOption< "lifetime-safety", - LangOpts<"EnableLifetimeSafety">, DefaultTrue, + LangOpts<"EnableLifetimeSafety">, DefaultFalse, PosFlag<SetTrue, [], [CC1Option], "Enable">, NegFlag<SetFalse, [], [CC1Option], "Disable">, - BothFlags<[], [CC1Option], " lifetime safety for C++">>; + BothFlags<[], [CC1Option], " run lifetime safety for C++. Warning are still controlled by -Wlifetime-safety warning group. If you want to see warnings use that. This is primarily to run the analysis on code to surface crashes or compile time regressions while remaining silent on the findings produced by the analyis.">>; def lifetime_safety_max_cfg_blocks : Joined<["-"], "lifetime-safety-max-cfg-blocks=">, diff --git a/clang/lib/Sema/AnalysisBasedWarnings.cpp b/clang/lib/Sema/AnalysisBasedWarnings.cpp index 2b30aad880a27..243fdc1f128d9 100644 --- a/clang/lib/Sema/AnalysisBasedWarnings.cpp +++ b/clang/lib/Sema/AnalysisBasedWarnings.cpp @@ -2988,7 +2988,7 @@ void clang::sema::AnalysisBasedWarnings::IssueWarnings( .TraverseTranslationUnitDecl(TU); } - if (S.getLangOpts().EnableLifetimeSafety && S.getLangOpts().CPlusPlus && + if (S.getLangOpts().CPlusPlus && S.getLangOpts().EnableLifetimeSafetyTUAnalysis) LifetimeSafetyTUAnalysis(S, TU, LSStats); } diff --git a/clang/lib/Sema/SemaLifetimeSafety.h b/clang/lib/Sema/SemaLifetimeSafety.h index 1ef28d8ba2cee..9d5243ccf9a4c 100644 --- a/clang/lib/Sema/SemaLifetimeSafety.h +++ b/clang/lib/Sema/SemaLifetimeSafety.h @@ -23,6 +23,8 @@ namespace clang::lifetimes { inline bool IsLifetimeSafetyDiagnosticEnabled(Sema &S, const Decl *D) { + if (S.getLangOpts().EnableLifetimeSafety) + return true; DiagnosticsEngine &Diags = S.getDiagnostics(); constexpr unsigned DiagIDs[] = { diag::warn_lifetime_safety_use_after_scope, _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
