================
@@ -248,7 +249,9 @@ class UseFact : public Fact {
const OriginList *getUsedOrigins() const { return OList; }
const Expr *getUseExpr() const { return UseExpr; }
void markAsWritten() { IsWritten = true; }
+ void markAsReferenceWrite() { IsReferenceWrite = true; }
----------------
aeft wrote:
Two approaches for the single-origin Read fact:
1. `std::variant<const OriginList *, OriginID>` in `UseFact`.
`getUsedOrigins()` would be replaced by `forEachOrigin(Fn)` which abstracts
over the variant internally.
2. Detached single-node `OriginList` via a new method
`OriginManager::createSingleNode(OriginID)`. `UseFact` unchanged, just add a
setter.
Both generate the same two UseFacts in `handleAssignment`. I'm leaning toward
(2). Which do you prefer?
https://github.com/llvm/llvm-project/pull/184295
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits