================
@@ -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

Reply via email to