[all-commits] [llvm/llvm-project] 85dd83: [LifetimeSafety] Support container interior paths ...

Utkarsh Saxena via All-commits all-commits at lists.llvm.org
Fri Jul 24 07:28:50 PDT 2026


  Branch: refs/heads/users/usx95/04-07-interior-paths-and-invalidation
  Home:   https://github.com/llvm/llvm-project
  Commit: 85dd83e94734401783fd3072576bffb581742862
      https://github.com/llvm/llvm-project/commit/85dd83e94734401783fd3072576bffb581742862
  Author: Utkarsh Saxena <usx at google.com>
  Date:   2026-07-24 (Fri, 24 Jul 2026)

  Changed paths:
    M clang/lib/Analysis/LifetimeSafety/Checker.cpp
    M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
    M clang/lib/Analysis/LifetimeSafety/Loans.cpp
    M clang/test/Sema/LifetimeSafety/Inputs/lifetime-analysis.h
    M clang/test/Sema/LifetimeSafety/invalidations.cpp
    M clang/unittests/Analysis/LifetimeSafetyTest.cpp

  Log Message:
  -----------
  [LifetimeSafety] Support container interior paths and invalidations

This patch completes the implementation of path-sensitive lifetime tracking by supporting container interior paths (`.*`) and deep-nested invalidation.

- Enables `PathElement::getInterior` generation in `FactsGenerator` for GSL Owners and Views (e.g. member functions, function parameters, lambda captures).
- Removes bypass checks in `FactsGenerator::handleInvalidatingCall` to track container invalidation on fields.
- Updates `Checker` to use strict prefix comparison (`isStrictPrefixOf`) for container invalidations, ensuring invalidation of container contents (interior) correctly invalidates iterators but not other sibling fields.
- Reorganizes tests in `invalidations.cpp` by resolving duplicates and distributing them logically.
- Updates unit tests and sema tests with correct expectations for interior paths.

TAG=agy
CONV=2cfd8d00-18d7-4a03-8d78-2aba2f9a8f23



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list