aboutsummaryrefslogtreecommitdiff
path: root/src/Sema.zig
diff options
context:
space:
mode:
authormlugg <mlugg@mlugg.co.uk>2023-04-14 22:32:31 +0100
committerAndrew Kelley <andrew@ziglang.org>2023-04-23 13:16:42 -0700
commit35d82d31be3d2f2611049f41dc2616f898d70871 (patch)
tree9dfb2332aca1201afb67aea6bf83a9e77bf05c9f /src/Sema.zig
parent42ee364e7b698822a69cba4cd2bda17868657e05 (diff)
downloadzig-35d82d31be3d2f2611049f41dc2616f898d70871.tar.gz
zig-35d82d31be3d2f2611049f41dc2616f898d70871.zip
Add `@inComptime` builtin
Resolves: #868
Diffstat (limited to 'src/Sema.zig')
-rw-r--r--src/Sema.zig13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/Sema.zig b/src/Sema.zig
index 4deb2b0f29..00d511149a 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -1166,6 +1166,7 @@ fn analyzeBodyInner(
.work_item_id => try sema.zirWorkItem( block, extended, extended.opcode),
.work_group_size => try sema.zirWorkItem( block, extended, extended.opcode),
.work_group_id => try sema.zirWorkItem( block, extended, extended.opcode),
+ .in_comptime => try sema.zirInComptime( block),
// zig fmt: on
.fence => {
@@ -22466,6 +22467,18 @@ fn zirWorkItem(
});
}
+fn zirInComptime(
+ sema: *Sema,
+ block: *Block,
+) CompileError!Air.Inst.Ref {
+ _ = sema;
+ if (block.is_comptime) {
+ return Air.Inst.Ref.bool_true;
+ } else {
+ return Air.Inst.Ref.bool_false;
+ }
+}
+
fn requireRuntimeBlock(sema: *Sema, block: *Block, src: LazySrcLoc, runtime_src: ?LazySrcLoc) !void {
if (block.is_comptime) {
const msg = msg: {