aboutsummaryrefslogtreecommitdiff
path: root/lib/std/os/linux/powerpc.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-11-09 22:58:27 -0700
committerAndrew Kelley <andrew@ziglang.org>2021-11-09 23:01:35 -0700
commitcb785b9c6ba705fcb507fdfa470e27b5e82ce1c5 (patch)
tree59bd1aa803f9669ba434aa7e7890c8c5cd283055 /lib/std/os/linux/powerpc.zig
parent008b0ec5e58fc7e31f3b989868a7d1ea4df3f41d (diff)
downloadzig-cb785b9c6ba705fcb507fdfa470e27b5e82ce1c5.tar.gz
zig-cb785b9c6ba705fcb507fdfa470e27b5e82ce1c5.zip
Sema: implement coerce_result_ptr for optionals
New AIR instruction: `optional_payload_ptr_set` It's like `optional_payload_ptr` except it sets the non-null bit. When storing to the payload via a result location that is an optional, `optional_payload_ptr_set` is now emitted. There is a new algorithm in `zirCoerceResultPtr` which stores a dummy value through the result pointer into a temporary block, and then pops off the AIR instructions from the temporary block in order to determine how to transform the result location pointer in case any in-between coercions need to happen. Fixes a couple of behavior tests regarding optionals.
Diffstat (limited to 'lib/std/os/linux/powerpc.zig')
0 files changed, 0 insertions, 0 deletions