You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#1519 (comment) highlights an issue in our codebase: we do a lot of pattern matching on Cil.typ to handle particular cases, but the type isn't unrolled beforehand with Cil.unrollType. This can cause some logic to fall back to imprecise behavior due to TNamed instead of TInt/etc, although the TNamed (or a nesting of them!) unrolls to one of the desired types.
I'm not sure how to best find all such places in the codebase, but pattern matching, etc should in most cases probably happen on unrolled types. That is, our analysis should be invariant under extracting/inlining typedefs in the program.
The text was updated successfully, but these errors were encountered:
#1519 (comment) highlights an issue in our codebase: we do a lot of pattern matching on
Cil.typ
to handle particular cases, but the type isn't unrolled beforehand withCil.unrollType
. This can cause some logic to fall back to imprecise behavior due toTNamed
instead ofTInt
/etc, although theTNamed
(or a nesting of them!) unrolls to one of the desired types.I'm not sure how to best find all such places in the codebase, but pattern matching, etc should in most cases probably happen on unrolled types. That is, our analysis should be invariant under extracting/inlining
typedef
s in the program.The text was updated successfully, but these errors were encountered: