pub const Subprogram = struct {
pub const ops = [_]AbbrevOp{
.{ .literal = @backingInt(ModuleBlock.MetadataBlock.Code.SUBPROGRAM) },
.{ .literal = 0b111 }, // is distinct | has sp flags | has flags
MetadataAbbrev, // scope
MetadataAbbrev, // name
MetadataAbbrev, // linkage name
MetadataAbbrev, // file
LineAbbrev, // line
MetadataAbbrev, // type
LineAbbrev, // scope line
.{ .literal = 0 }, // containing type
.{ .fixed = 32 }, // sp flags
.{ .literal = 0 }, // virtual index
.{ .fixed = 32 }, // flags
MetadataAbbrev, // compile unit
.{ .literal = 0 }, // template params
.{ .literal = 0 }, // declaration
.{ .literal = 0 }, // retained nodes
.{ .literal = 0 }, // this adjustment
.{ .literal = 0 }, // thrown types
.{ .literal = 0 }, // annotations
.{ .literal = 0 }, // target function name
};
scope: Builder.Metadata.Optional,
name: Builder.Metadata.String.Optional,
linkage_name: Builder.Metadata.String.Optional,
file: Builder.Metadata.Optional,
line: u32,
ty: Builder.Metadata.Optional,
scope_line: u32,
sp_flags: Builder.Metadata.Subprogram.DISPFlags,
flags: Builder.Metadata.DIFlags,
compile_unit: Builder.Metadata.Optional,
}