================
@@ -289,4 +289,21 @@ llvm::SmallVector<OriginID>
LoanPropagationAnalysis::buildOriginFlowChain(
// implemented.
return {};
}
+
+llvm::SmallVector<OriginID>
+LoanPropagationAnalysis::buildOriginFlowChain(const FactManager &FactMgr,
+ const UseFact *UF,
+ const LoanID TargetLoan) const {
+ llvm::SmallVector<OriginID> OriginFlowChain;
+
+ for (const OriginList *Cur = UF->getUsedOrigins(); Cur;
+ Cur = Cur->peelOuterOrigin())
+ if (getLoans(Cur->getOuterOriginID(), UF).contains(TargetLoan)) {
+ OriginFlowChain = buildOriginFlowChain(
+ FactMgr, UF, Cur->getOuterOriginID(), TargetLoan);
+ break;
+ }
----------------
usx95 wrote:
nit: use early `return` instead of `break`
```cpp
for (const OriginList *Cur = UF->getUsedOrigins(); Cur;
Cur = Cur->peelOuterOrigin())
if (getLoans(Cur->getOuterOriginID(), UF).contains(TargetLoan))
return buildOriginFlowChain(FactMgr, UF, Cur->getOuterOriginID(),
TargetLoan);
return {};
```
https://github.com/llvm/llvm-project/pull/199345
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits