Add a MemoryModelContents
option for not initializing writable global data
#372
Labels
symbolic-execution
Issues relating to macaw-symbolic and symbolic execution
The
MemoryModelContents
datatype determines how writable global data is initialized.macaw/symbolic/src/Data/Macaw/Symbolic/Memory/Common.hs
Line 66 in 7e1694b
The Haddock on this type notes that to support sound verification of individual functions in isolation, such data must be initialized as fully symbolic, i.e., an overapproximation of the possible runtime values. However, none of the available options enable sound bug-finding, which would require that globals are initialized to an underapproximation of the possible runtime values. This is infeasible in practice, as the possible values of the global data upon the entry to the target function are unknowable. The next best thing would be to provide an option to leave such data uninitialized, leading any loads from it to fail, which would prevent unsound results (for bug-finding).
The text was updated successfully, but these errors were encountered: