Progress towards tracking pointer provenance in integers
This MR generalises the value representation of integers to preserve pointer provenance after a pointer-to-integer cast. However, this provenance information is lost on any arithmetic operation.
In the type system, this is handled using a new l @ intptr<it>
type (similar to n @ int<it>
but refined by a location instead of an integer). Elements of this type can be cast back to an owned pointer type (in which case the provenance is preserved) or to a normal int
type (in which case the provenance information is lost).
Edited by Rodolphe Lepigre