pub const Variable = struct {
const AddrSpaceAndIsConst = packed struct {
is_const: bool,
one: u1 = 1,
addr_space: Builder.AddrSpace,
};
pub const ops = [_]AbbrevOp{
.{ .literal = @backingInt(ModuleBlock.Code.GLOBALVAR) }, // Code
.{ .vbr = 16 }, // strtab_offset
.{ .vbr = 16 }, // strtab_size
.{ .fixed_runtime = Builder.Type },
.{ .fixed = @bitSizeOf(AddrSpaceAndIsConst) }, // isconst
ConstantAbbrev, // initid
.{ .fixed = @bitSizeOf(Builder.Linkage) },
.{ .fixed = @bitSizeOf(Builder.Alignment) },
.{ .vbr = 16 }, // section
.{ .fixed = @bitSizeOf(Builder.Visibility) },
.{ .fixed = @bitSizeOf(Builder.ThreadLocal) }, // threadlocal
.{ .fixed = @bitSizeOf(Builder.UnnamedAddr) },
.{ .fixed = @bitSizeOf(Builder.ExternallyInitialized) },
.{ .fixed = @bitSizeOf(Builder.DllStorageClass) },
.{ .literal = 0 }, // comdat
.{ .literal = 0 }, // attributes
.{ .fixed = @bitSizeOf(Builder.Preemption) },
};
strtab_offset: usize,
strtab_size: usize,
type_index: Builder.Type,
is_const: AddrSpaceAndIsConst,
initid: u32,
linkage: Builder.Linkage,
alignment: @Int(.unsigned, @bitSizeOf(Builder.Alignment)),
section: usize,
visibility: Builder.Visibility,
thread_local: Builder.ThreadLocal,
unnamed_addr: Builder.UnnamedAddr,
externally_initialized: Builder.ExternallyInitialized,
dllstorageclass: Builder.DllStorageClass,
preemption: Builder.Preemption,
}