[qt/clang/llvm-project]: Summary of bulk changes made
KDE Git Services - Bulk Change <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git repository change summary for qt/clang/llvm-project Pushed by mirror-service into branch 'upstream/users/usx95/04-07-interior-paths-and-invalidation'. Changed from 85dd83e94734401783fd3072576bffb581742862 to 3670a2bf0a5dbc864746381e9447e560c1998ee1 Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository. This change contains the following new commits: Git commit 7d3f6dd010abe17832257522605f633689d41842 by Utkarsh Saxena on 24/07/2026 at 21:24.. [LifetimeSafety][NFC] Refactor AccessPath and Loan representations This patch refactors the internal representations of `AccessPath` and `Loan` to support path elements, preparing for field-sensitive and interior-sensitive lifetime tracking. - Introduces `PathElement` representing a field or interior dereference. - Refactors `AccessPath` to contain a base and a list of `PathElement`s. - Updates `Loan` and `LoanManager` to use the new `AccessPath` structure. - Refactors debug dump formatting to output path elements if present. - Updates Checker and FactsGenerator to compile with the new interfaces, keeping logic behaviorally identical (NFC). TAG=agy CONV=2cfd8d00-18d7-4a03-8d78-2aba2f9a8f23 https://invent.kde.org/qt/clang/llvm-project/-/commit/7d3f6dd010abe17832257522605f633689d41842 Git commit 0209269c96d91a1a063541d5e5ff9ef847e4d242 by Utkarsh Saxena on 24/07/2026 at 21:24.. [LifetimeSafety][NFC] Update Checker to use prefix comparison interfaces This patch switches the Checker's expiry and invalidation checks to use `AccessPath::isPrefixOf` instead of equality (`==`). Since all generated access paths are currently empty, `isPrefixOf` is behaviorally identical to `==` (NFC). This prepares the checker to handle nested paths (fields and container interiors) in subsequent commits. TAG=agy CONV=2cfd8d00-18d7-4a03-8d78-2aba2f9a8f23 https://invent.kde.org/qt/clang/llvm-project/-/commit/0209269c96d91a1a063541d5e5ff9ef847e4d242 Git commit f138ded1745f87eb732fa32ece536e1578714d5d by Utkarsh Saxena on 24/07/2026 at 21:39.. [LifetimeSafety] Support field-sensitivity in lifetime tracking This patch enables field-sensitivity when tracking lifetimes of nested objects. - FactsGenerator now generates `PathElement::getField` for `MemberExpr` accesses, mapping fields to loans. - LoanPropagation now propagates field paths along flow facts, appending fields to base loans. - Removes false-positive warnings in `invalidations.cpp` where modifications to one field were incorrectly reported as invalidating iterators/pointers to another field. - Adds comprehensive unit tests checking nested field access and placeholder fields. TAG=agy CONV=2cfd8d00-18d7-4a03-8d78-2aba2f9a8f23 https://invent.kde.org/qt/clang/llvm-project/-/commit/f138ded1745f87eb732fa32ece536e1578714d5d Git commit 3670a2bf0a5dbc864746381e9447e560c1998ee1 by Utkarsh Saxena on 24/07/2026 at 21:39.. [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 https://invent.kde.org/qt/clang/llvm-project/-/commit/3670a2bf0a5dbc864746381e9447e560c1998ee1