mirror of
https://github.com/ziglang/zig.git
synced 2025-12-14 10:13:07 +00:00
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
11 lines
169 B
Zig
11 lines
169 B
Zig
test {
|
|
comptime var st = .{
|
|
.foo = &1,
|
|
.bar = &2,
|
|
};
|
|
|
|
inline for (@typeInfo(@TypeOf(st)).Struct.fields) |field| {
|
|
_ = field;
|
|
}
|
|
}
|