[clang] [LifetimeSafety] Use ImmutableList for buildOriginFlowChain DFS nodes (PR #208890)
Yuan Suo via cfe-commits
cfe-commits at lists.llvm.org
Tue Jul 14 05:33:37 PDT 2026
================
@@ -668,10 +668,10 @@ class LifetimeSafetySemaHelperImpl : public LifetimeSafetySemaHelper {
if (OriginExprChain.empty())
return;
- const Expr *LastExpr = OriginExprChain.back();
+ const Expr *LastExpr = OriginExprChain.front();
std::string IssueStr = getDiagSubjectDescription(LastExpr);
- for (const Expr *CurrExpr : reverse(OriginExprChain.drop_back())) {
+ for (const Expr *CurrExpr : OriginExprChain.drop_front()) {
----------------
suoyuan666 wrote:
According to `FoldingSetBase::InsertNode()`, `ImmutableList` performs forward insertion. As a result, `buildOriginFlowChain()` now returns a list starting from `IssueFact` instead of `StartPoint`. Consequently, the expression list obtained by Sema diagnostic no longer starts from `StartPoint`, which requires changing `drop_back()` to `drop_front()`.
https://github.com/llvm/llvm-project/blob/main/llvm/lib/Support/FoldingSet.cpp#L304C1-L331C2
https://github.com/llvm/llvm-project/pull/208890
More information about the cfe-commits
mailing list