structstd.zig.Zir.Inst.Call[src]

Stored inside extra, with trailing arguments according to args_len. Implicit 0. arg_0_start: u32, // always same as args_len

  1. arg_end: u32, // for each args_len arg_N_start is the same as arg_N-1_end

Fields

flags: Flags
callee: Ref

Source Code

Source code
pub const Call = struct {
    // Note: Flags *must* come first so that unusedResultExpr
    // can find it when it goes to modify them.
    flags: Flags,
    callee: Ref,

    pub const Flags = packed struct {
        /// std.builtin.CallModifier in packed form
        pub const PackedModifier = u3;
        pub const PackedArgsLen = u27;

        packed_modifier: PackedModifier,
        ensure_result_used: bool = false,
        pop_error_return_trace: bool,
        args_len: PackedArgsLen,

        comptime {
            if (@sizeOf(Flags) != 4 or @bitSizeOf(Flags) != 32)
                @compileError("Layout of Call.Flags needs to be updated!");
            if (@bitSizeOf(std.builtin.CallModifier) != @bitSizeOf(PackedModifier))
                @compileError("Call.Flags.PackedModifier needs to be updated!");
        }
    };
}