Summary: 0 and Splat 0 need to be treated the same since code relies on knowing that 0 consists of all-0 bytes, and extracting a subsequence of a Splat 0 yields 0. For example, initializing a struct to all-zeros and then reading a member of pointer type out of it needs to produce the null pointer. Therefore 0 and Splat 0 are redundant representations, and all uses of Splat need to be updated to also handle 0. This unfortunately leads to some near code duplication that seems to be necessary. The issue is that 0 and Splat 0 are, from the backend's perspective, constants in two distinct theories. Since 0 is chosen over Splat 0 as the representation, the sequence theory solver needs to treat 0 as if it was Splat 0, which duplicates some code handling the general Splat cases. Reviewed By: jvillard Differential Revision: D24920758 fbshipit-source-id: 7c02be62bmaster
parent
d2b78bbd79
commit
23b5571029
Loading…
Reference in new issue