aeft wrote:

> Do we need a new fact? Couldn't we make this work by handling `ExpireFact` in 
> liveness analysis?

Good question! I think it's better to have a new fact. The key distinction is 
that `ExpireFact` and `ExpireOriginFact` operate on different entities:

- `ExpireFact` targets a Loan (pointee storage is destroyed).
- `ExpireOriginFact` targets an Origin (pointer variable's lifetime ends).

This mirrors the existing pattern: `InvalidateOriginFact` also targets an 
Origin rather than a Loan. Both `InvalidateOriginFact` and `ExpireOriginFact` 
act on what a pointer holds, not on what it points to.

https://github.com/llvm/llvm-project/pull/182368
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to