sgatev accepted this revision. sgatev added inline comments.
================ Comment at: clang/lib/Analysis/FlowSensitive/Transfer.cpp:184-186 - // FIXME: The initializer expression must always be assigned a value. - // Replace this with an assert when we have sufficient coverage of - // language features. ---------------- xazax.hun wrote: > ymandel wrote: > > sgatev wrote: > > > The patch makes sense to me in the current state, but it's unclear why is > > > this not something that we'd like to do in the long term. > > Because of uninterpreted fields. If we consider those a temporary fix, then > > I agree about the long term. I'd thought those were here to stay. That > > said, if we find a way to either interperet fields lazily or only interpret > > those needed in the current function scope, we may be able to avoid > > uninterpreted expressions. > > > > This also begs the question as to why we insist on initializing the > > variable. Arguably, if the expresssion is uninterpreted, so should be the > > variable. So, we should at least explain why we're distinguishing. Thoughts > > on my adding a comment to that effect? > >Because of uninterpreted fields. > > Could you elaborate on this? Do you mean fields being uninterpreted due to > hitting a depth limit or being recursive? Or is this something else? Not initializing the variable in such cases also makes sense to me. I'd very much appreciate a comment. I suggest also keeping the FIXME as interpreting fields lazily (and thus relying that all fields that are accessed are initialized) is still an option. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D123961/new/ https://reviews.llvm.org/D123961 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits