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

Reply via email to