[PATCH] D137948: [clang][dataflow] Add widening API and implement it for built-in boolean model.
Gábor Horváth via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Nov 15 11:58:49 PST 2022
xazax.hun accepted this revision.
xazax.hun added a comment.
This revision is now accepted and ready to land.
LGTM, thanks!
================
Comment at: clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h:114
bool isEqualTypeErased(const TypeErasedLattice &E1,
const TypeErasedLattice &E2) final {
const Lattice &L1 = llvm::any_cast<const Lattice &>(E1.Value);
----------------
ymandel wrote:
> xazax.hun wrote:
> > Maybe this is another case where we want to mark the whole class `final` instead of the individual methods? It is fine to address this in a separate PR.
> Unfortunately not, since this class is used for CRTP.
Whoops, indeed, I missed that.
================
Comment at: clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h:135
+ // between overloads.
+ struct Rank1 {};
+ struct Rank0 : Rank1 {};
----------------
ymandel wrote:
> xazax.hun wrote:
> > Is there ever a reason to instantiate `Rank1`? If no, should we do something (like make its ctor private and friends with `Rank0`?). Although possibly not important enough to worth the hassle.
> No reason to instantiate it that I can see, but since it's a already private to this class, I think it's good enough. But, I just borrowed this from Eric, so I'm not an expert in this pattern. Happy to take suggested improvements.
Let's leave as is.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D137948/new/
https://reviews.llvm.org/D137948
More information about the cfe-commits
mailing list