aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Thread/Condition.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-01-22 16:45:09 -0700
committerAndrew Kelley <andrew@ziglang.org>2021-01-31 21:09:22 -0700
commit588171c30b34426fbb07645aa2625e989f369eec (patch)
tree254ff4567279c496dd61a4a790c64c64a8d7e763 /lib/std/Thread/Condition.zig
parent06bb360dd296288db33844d682188e33116d7ab6 (diff)
downloadzig-588171c30b34426fbb07645aa2625e989f369eec.tar.gz
zig-588171c30b34426fbb07645aa2625e989f369eec.zip
sema: after block gets peer type resolved, insert type coercions
on the break instruction operands. This involves a new TZIR instruction, br_block_flat, which represents a break instruction where the operand is the result of a flat block. See the doc comments on the instructions for more details. How it works: when adding break instructions in semantic analysis, the underlying allocation is slightly padded so that it is the size of a br_block_flat instruction, which allows the break instruction to later be converted without removing instructions inside the parent body. The extra type coercion instructions go into the body of the br_block_flat, and backends are responsible for dispatching the instruction correctly (it should map to the same function calls for related instructions).
Diffstat (limited to 'lib/std/Thread/Condition.zig')
0 files changed, 0 insertions, 0 deletions