xazax.hun added inline comments.
================ Comment at: clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp:114 + if (auto *FirstVal = dyn_cast<PointerValue>(Val)) { + auto *SecondVal = cast<PointerValue>(It->second); ---------------- sgatev wrote: > xazax.hun wrote: > > xazax.hun wrote: > > > xazax.hun wrote: > > > > Shouldn't we ensure that `operator==` return true when we have two > > > > `PointerValue`s with the same pointee above? That would make this piece > > > > of code redundant. > > > Never mind, just realized the above is comparing pointers. But I still > > > think we might want to have a separate `operator==` for `Value`s as we > > > might want to compare values in many separate places. > > Or alternatively, Values could be internalized, and all `PointerValue`s > > with the same pointee could have the same address. > Right. Currently, all tests that assign values in loops (including the test > introduced in this patch) are hitting the maximum iterations limit because we > don't have a way to tell the framework how to compare distinct values (e.g. > there's no need to continue iterating if the `has_value` properties of > distinct optional values are the same). This will be the focus of my next > patch. Oh, I see. In this case let's merge this and looking forward to the next one :) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D118480/new/ https://reviews.llvm.org/D118480 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits