const char *name,
i_record *list, size_t length, int part_block_used)
{
- pass_t *pass = (pass_t*)xmalloc(sizeof(*pass) + (length-1) * sizeof(pass->list[0]));
-
+ pass_t *const pass = XMALLOCF(pass_t, list, length);
memcpy(pass->list, list, sizeof(list[0]) * length);
pass->length = length;
pass->part_block_used = part_block_used;
assert(is_compound_type(tp) || is_Array_type(tp));
assert(length > 0);
- res = (compound_graph_path*)xmalloc(sizeof(*res) + (length-1) * sizeof(res->list[0]));
- memset(res, 0, sizeof(*res) + (length-1) * sizeof(res->list[0]));
+ res = XMALLOCFZ(compound_graph_path, list, length);
res->kind = k_ir_compound_graph_path;
res->tp = tp;
res->len = length;