/*
- * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
ir_type *new_d_type_method(ident *name, int n_param, int n_res, dbg_info *db) {
ir_type *res;
- assert((get_mode_size_bytes(mode_P_code) != -1) && "unorthodox modes not implemented");
+ assert((get_mode_size_bits(mode_P_code) % 8 != 0) && "unorthodox modes not implemented");
res = new_type(type_method, mode_P_code, name, db);
res->flags |= tf_layout_fixed;
res->size = get_mode_size_bytes(mode_P_code);
name = tp->name;
if (prefix != NULL)
- mangle(prefix, name);
+ name = mangle(prefix, name);
mode = tp->mode;
n_params = tp->attr.ma.n_params;
res->flags = tp->flags;
res->size = tp->size;
+ res->attr.ma.n_params = n_params;
res->attr.ma.params = xcalloc(n_params, sizeof(res->attr.ma.params[0]));
memcpy(res->attr.ma.params, tp->attr.ma.params, n_params * sizeof(res->attr.ma.params[0]));
res->attr.ma.value_params = tp->attr.ma.value_params;
+ res->attr.ma.n_res = n_res;
res->attr.ma.res_type = xcalloc(n_res, sizeof(res->attr.ma.res_type[0]));
memcpy(res->attr.ma.res_type, tp->attr.ma.res_type, n_res * sizeof(res->attr.ma.res_type[0]));
res->attr.ma.value_ress = tp->attr.ma.value_ress;
assert(mode_is_reference(ptr_mode));
res = new_type(type_pointer, ptr_mode, name, db);
res->attr.pa.points_to = points_to;
- assert((get_mode_size_bytes(res->mode) != -1) && "unorthodox modes not implemented");
+ assert((get_mode_size_bits(res->mode) % 8 != 0) && "unorthodox modes not implemented");
res->size = get_mode_size_bytes(res->mode);
res->flags |= tf_layout_fixed;
hook_new_type(res);