void eh_init(void) { obstack_init(&lpads); ir_type *type_reference = new_type_primitive(mode_P); exception_object_entity = new_entity(get_tls_type(), new_id_from_str("__oo_rt_exception_object__"), type_reference); set_entity_initializer(exception_object_entity, get_initializer_null()); ir_type *throw_type = new_type_method(1, 0); set_method_param_type(throw_type, 0, type_reference); throw_entity = new_entity(get_glob_type(), new_id_from_str("firm_personality"), throw_type); set_entity_visibility(throw_entity, ir_visibility_external); top = NULL; }
ir_initializer_t *create_initializer_compound(size_t n_entries) { struct obstack *obst = get_irg_obstack(get_const_code_irg()); size_t size = sizeof(ir_initializer_compound_t) + n_entries * sizeof(ir_initializer_t*) - sizeof(ir_initializer_t*); ir_initializer_t *initializer = (ir_initializer_t*)obstack_alloc(obst, size); initializer->kind = IR_INITIALIZER_COMPOUND; initializer->compound.n_initializers = n_entries; for (size_t i = 0; i < n_entries; ++i) { initializer->compound.initializers[i] = get_initializer_null(); } return initializer; }
static void set_compound_init_null(ir_initializer_t *init, size_t idx) { ir_initializer_t *null_init = get_initializer_null(); set_initializer_compound_value(init, idx, null_init); }