[PATCH] D106136: [Analyzer][solver] Fix equivalence class invariant violation in removeDeadBindings
Valeriy Savchenko via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Jul 16 03:10:58 PDT 2021
vsavchenko added a comment.
Thanks for working on it, but it is a quite large change that I don't get the motivation for (it doesn't even fix the recently found bug).
Summary explains what the patch does, but for why it is done, it talks about an invariant that is not specified anywhere in the code.
When I was implementing it, trivial class is a symbol that was never ever equal to anything else. The moment we make merge something into it, it stops being trivial, forever! Representative is an implementation detail and shouldn't be required to represent the actual information. What I'm saying is that representative can be long gone, but the class can still hold. If we use representative symbol for something other than its pointer or type after it's gone, the mistake is using representative in the first place, not the motivation to make it more complex and change representatives.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D106136/new/
https://reviews.llvm.org/D106136
More information about the cfe-commits
mailing list