callee = get_Global_entity(call_ptr);
- /* we can only clone calls to existing entities */
- if (get_entity_irg(callee) == NULL)
+ /* we don't know which function gets finally bound to a weak symbol */
+ if (get_entity_linkage(callee) & IR_LINKAGE_WEAK)
return;
- /* we cannot clone calls to weak functions */
- if (get_entity_additional_properties(callee) & mtp_property_weak)
+ /* we can only clone calls to existing entities */
+ if (get_entity_irg(callee) == NULL)
return;
process_call(call, callee, hmap);
new_entity = copy_entity_name(q->ent, clone_ident);
/* a cloned entity is always local */
- add_entity_linkage(new_entity, IR_LINKAGE_LOCAL);
+ set_entity_visibility(new_entity, ir_visibility_local);
/* set a ld name here: Should we mangle this ? */
set_entity_ld_ident(new_entity, get_entity_ident(new_entity));