[clang] [NFC][analyzer] Remove the NodeBuilder from eagerly assume (PR #204371)
Balázs Benics via cfe-commits
cfe-commits at lists.llvm.org
Wed Jun 24 05:45:22 PDT 2026
steakhal wrote:
> > When asked some AI to confirm that this is NFC, it told me that there might be an issue:
> > > Previously, when both `StateTrue` and `StateFalse` were `null` (the symbolic condition is unsatisfiable in the current state), `Pred` remained in the Frontier/Dst because `NodeBuilder::generateNode` was never called and could never erase it. With this patch, that path is dropped: no `Dst.insert(Pred)` runs.
> >
> >
> > I'm not sure, but AFAIK `StateTrue` and `StateFalse` could be null at the same time, so this sounds plausible to me.
>
> Actually, `StateTrue` and `StateFalse` cannot be both null at the same time, because this the corner case when `ConstraintManager::assumeDualImpl` introduces PosteriorlyOverconstrained states instead of returning `{nullptr, nullptr}`. Therefore my conversion happens to be NFC.
>
> (By the way, this was a helpful review comment, because I didn't think about this corner case. Without the PosteriorlyOverconstrained hack the old code would be logically incorrect – in that one very rare case – and the new would be the logically correct transition.)
This is what I figured, and wanted to surface this.
https://github.com/llvm/llvm-project/pull/204371
More information about the cfe-commits
mailing list