[clang] fe381c2 - [LifetimeSafety] Use source ranges instead of end locations in diagnostics (#177020)

via cfe-commits cfe-commits at lists.llvm.org
Wed Jan 21 03:38:53 PST 2026


Author: Utkarsh Saxena
Date: 2026-01-21T12:38:49+01:00
New Revision: fe381c2bf94f28daf813423f06521035948954b3

URL: https://github.com/llvm/llvm-project/commit/fe381c2bf94f28daf813423f06521035948954b3
DIFF: https://github.com/llvm/llvm-project/commit/fe381c2bf94f28daf813423f06521035948954b3.diff

LOG: [LifetimeSafety] Use source ranges instead of end locations in diagnostics (#177020)

### TL;DR

Update diagnostic location information to use full source ranges instead of just end locations for lifetime safety warnings.

Added: 
    

Modified: 
    clang/lib/Sema/AnalysisBasedWarnings.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Sema/AnalysisBasedWarnings.cpp b/clang/lib/Sema/AnalysisBasedWarnings.cpp
index 793ece2c937de..14d8618f0afdd 100644
--- a/clang/lib/Sema/AnalysisBasedWarnings.cpp
+++ b/clang/lib/Sema/AnalysisBasedWarnings.cpp
@@ -2883,10 +2883,10 @@ class LifetimeSafetyReporterImpl : public LifetimeSafetyReporter {
            C == Confidence::Definite
                ? diag::warn_lifetime_safety_loan_expires_permissive
                : diag::warn_lifetime_safety_loan_expires_strict)
-        << IssueExpr->getEndLoc();
+        << IssueExpr->getSourceRange();
     S.Diag(FreeLoc, diag::note_lifetime_safety_destroyed_here);
     S.Diag(UseExpr->getExprLoc(), diag::note_lifetime_safety_used_here)
-        << UseExpr->getEndLoc();
+        << UseExpr->getSourceRange();
   }
 
   void reportUseAfterReturn(const Expr *IssueExpr, const Expr *EscapeExpr,
@@ -2895,10 +2895,10 @@ class LifetimeSafetyReporterImpl : public LifetimeSafetyReporter {
            C == Confidence::Definite
                ? diag::warn_lifetime_safety_return_stack_addr_permissive
                : diag::warn_lifetime_safety_return_stack_addr_strict)
-        << IssueExpr->getEndLoc();
+        << IssueExpr->getSourceRange();
 
     S.Diag(EscapeExpr->getExprLoc(), diag::note_lifetime_safety_returned_here)
-        << EscapeExpr->getEndLoc();
+        << EscapeExpr->getSourceRange();
   }
 
   void suggestAnnotation(SuggestionScope Scope,


        


More information about the cfe-commits mailing list