While refactoring, I ran into the issue where `!true == true`, which was caused by the same upper 7-bit of booleans being undefined issue that was encountered before. It turns out the implementation in `gen_unaryop_expr` is also inadequate, as `(~v & (i1) 0x1)`` will still leave upper 7 bits undefined (for whatever reason). This commit fixes this issue once and for all by using a combination of `icmp` + `zext` to ensure that the resulting value must be `0 | 1`, and refactor to use that whenever we need to invert boolean values. |
||
---|---|---|
.. | ||
irrt | ||
nac3core_derive | ||
src | ||
build.rs | ||
Cargo.toml |