aboutsummaryrefslogtreecommitdiff
path: root/src/Module.zig
diff options
context:
space:
mode:
authorJacob Young <jacobly0@users.noreply.github.com>2022-10-15 02:02:21 -0400
committerAndrew Kelley <andrew@ziglang.org>2022-10-15 14:17:25 -0400
commitcb0e22db4e18dd803e1edd681c836fadbae0ea6f (patch)
tree0377d1540686d1e34998a171abb3a7f7ce53ca5e /src/Module.zig
parentfeab1ebe1bfea3955320a6acba69f0c6c79c0730 (diff)
downloadzig-cb0e22db4e18dd803e1edd681c836fadbae0ea6f.tar.gz
zig-cb0e22db4e18dd803e1edd681c836fadbae0ea6f.zip
llvm: fix lowering of runtime refs to comptime-only decls
When we want a runtime pointer to a zero-bit value we use an undef pointer, but what if we want a runtime pointer to a comptime-only value? Normally, if `T` is a comptime-only type such as `*const comptime_int`, then `*const T` would also be a comptime-only type, so anything referencing a comptime-only value is usually also comptime-only, and therefore not emitted to the executable. However, what if instead we have a `*const anyopaque` pointing to a comptime-only value? Certainly, `*const anyopaque` is a runtime type, and so we need some runtime value to store, even when it happens to be pointing to a comptime-only value. In this case we want to do the same thing as we do when pointing to a zero-bit value, so we use `hasRuntimeBits` to handle both cases instead of ignoring comptime. Closes #12025
Diffstat (limited to 'src/Module.zig')
0 files changed, 0 insertions, 0 deletions