- set_atomic_ent_value(res, new_r_SymConst(irg, mode, sym, symconst_addr_ent));
- res->linkage = IR_LINKAGE_CONSTANT;
- res->attr.mtd_attr.irg_add_properties = mtp_property_inherited;
- res->attr.mtd_attr.vtable_number = IR_VTABLE_NUM_NOT_SET;
- res->attr.mtd_attr.param_access = NULL;
- res->attr.mtd_attr.param_weight = NULL;
- res->attr.mtd_attr.irg = NULL;
- } else if (is_compound_type(type)) {
- res->attr.cmpd_attr.values = NULL;
- res->attr.cmpd_attr.val_paths = NULL;
- } else if (is_code_type(type)) {
- res->attr.code_attr.label = (ir_label_t) -1;
+ set_atomic_ent_value(res, new_r_SymConst(irg, mode_P_code, sym, symconst_addr_ent));
+ res->linkage = IR_LINKAGE_CONSTANT;
+ res->attr.mtd_attr.properties = get_method_additional_properties(type);
+ res->attr.mtd_attr.vtable_number = IR_VTABLE_NUM_NOT_SET;
+ res->attr.mtd_attr.param_access = NULL;
+ res->attr.mtd_attr.param_weight = NULL;
+ res->attr.mtd_attr.irg = NULL;
+ } else if (owner != NULL
+ && (is_compound_type(owner) && !(owner->flags & tf_segment))) {
+ res = intern_new_entity(owner, IR_ENTITY_COMPOUND_MEMBER, name, type, db);
+ } else {
+ res = intern_new_entity(owner, IR_ENTITY_NORMAL, name, type, db);