struct FuncFancy [src]
Trailing:
if (has_cc_ref and !has_cc_body) {
cc: Ref,
}
if (has_cc_body) {
cc_body_len: u32
cc_body: u32 // for each cc_body_len
}
if (has_ret_ty_ref and !has_ret_ty_body) {
ret_ty: Ref,
}
if (has_ret_ty_body) {
ret_ty_body_len: u32
ret_ty_body: u32 // for each ret_ty_body_len
}
noalias_bits: u32 // if has_any_noalias
each bit starting with LSB corresponds to parameter indexes
body: Index // for each body_len
src_locs: Func.SrcLocs // if body_len != 0
proto_hash: std.zig.SrcHash // if body_len != 0; hash of function prototype
Fields
param_block: IndexPoints to the block that contains the param instructions for this function.
If this is a declaration, it refers to the declaration's value body.
body_len: u32
bits: Bits
Members
- Bits (struct)
Source
pub const FuncFancy = struct {
/// Points to the block that contains the param instructions for this function.
/// If this is a `declaration`, it refers to the declaration's value body.
param_block: Index,
body_len: u32,
bits: Bits,
/// If both has_cc_ref and has_cc_body are false, it means auto calling convention.
/// If both has_ret_ty_ref and has_ret_ty_body are false, it means void return type.
pub const Bits = packed struct(u32) {
is_var_args: bool,
is_inferred_error: bool,
is_noinline: bool,
has_cc_ref: bool,
has_cc_body: bool,
has_ret_ty_ref: bool,
has_ret_ty_body: bool,
has_any_noalias: bool,
ret_ty_is_generic: bool,
_: u23 = undefined,
};
}