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

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, }; }