Out of curiosity I wanted to try the sets domain for base structs (from #419) on zstd, because with simple structs we lose the relationship between its thread pool functions and their arguments:
Therefore we end up calling all the job functions with all the opaque arguments, so calling the functions with arguments of completely wrong types, which cannot possibly be good for precision.
Unfortunately it generates an insane amount of incomparable warnings like:
warn_type leq: incomparable abstr. values Int and Address at lib/common/fse_decompress.c:267:14-267:54: (0) and {}
It's so bad that in a minute it produces more output than the entire ~45 minute analysis with simple structs on zstd.
On a minimized example in our regression tests, in #716 it turned out that these relational struct domains wouldn't even help, because they are still joined together before evaluating offsets on them.
Out of curiosity I wanted to try the
sets
domain for base structs (from #419) on zstd, because with simple structs we lose the relationship between its thread pool functions and their arguments: Therefore we end up calling all the job functions with all theopaque
arguments, so calling the functions with arguments of completely wrong types, which cannot possibly be good for precision.Unfortunately it generates an insane amount of incomparable warnings like:
It's so bad that in a minute it produces more output than the entire ~45 minute analysis with simple structs on zstd.