[clang] [LifetimeSafety] Use ImmutableList for buildOriginFlowChain DFS nodes (PR #208890)
Yuan Suo via cfe-commits
cfe-commits at lists.llvm.org
Sat Aug 1 02:41:14 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:
Looking at the CI failure log, it seems `llvm::reverse` cannot be used here because `ImmuatbleList` does not provide `rbegin`.
Of cause, we could try first convert it to a `SmallVector`, reverse it, and then reconstruct it, something like:
```cpp
return llvm::SmallVector<OriginID>(llvm::reverse(
llvm::SmallVector<OriginID>(CurrNode.OriginFlowChain.begin(),
CurrNode.OriginFlowChain.end())));
```
https://github.com/llvm/llvm-project/pull/208890
More information about the cfe-commits
mailing list