Add MIR_T_RBLK and comments about it for MIR_var_t and _MIR_arg_desc_t.
@@ -141,7 +141,7 @@ typedef enum {
typedef enum {
REP8 (TYPE_EL, I8, U8, I16, U16, I32, U32, I64, U64), /* Integer types of different size: */
REP3 (TYPE_EL, F, D, LD), /* Float or (long) double type */
- REP2 (TYPE_EL, P, BLK), /* Pointer and memory block */
+ REP3 (TYPE_EL, P, BLK, RBLK), /* Pointer, (return) memory block */
REP2 (TYPE_EL, UNDEF, BOUND),
} MIR_type_t;
@@ -258,9 +258,9 @@ struct MIR_insn {
DEF_DLIST (MIR_insn_t, insn_link);
typedef struct MIR_var {
- MIR_type_t type; /* MIR_T_BLK can be used only args */
+ MIR_type_t type; /* MIR_T_BLK and MIR_T_RBLK can be used only args */
const char *name;
- size_t size; /* ignored for type != MIR_T_BLK */
+ size_t size; /* ignored for type != MIR_T_BLK, MIR_T_RBLK */
} MIR_var_t;
DEF_VARR (MIR_var_t);
@@ -599,7 +599,7 @@ extern void *_MIR_get_bend_builtin (MIR_context_t ctx);
typedef struct {
MIR_type_t type;
- size_t size; /* used only for block arg (type == MIR_T_BLK) */
+ size_t size; /* used only for block arg (type == MIR_T_BLK, MIR_T_RBLK) */
} _MIR_arg_desc_t;
extern void *_MIR_get_ff_call (MIR_context_t ctx, size_t nres, MIR_type_t *res_types, size_t nargs,
