+}
+
+static ident *make_parameter_entity_name(size_t pos)
+{
+ char buf[64];
+ snprintf(buf, sizeof(buf), "parameter.%lu", (unsigned long) pos);
+ return new_id_from_str(buf);
+}
+
+ir_entity *new_d_parameter_entity(ir_type *owner, size_t pos, ir_type *type,
+ dbg_info *dbgi)
+{
+ ident *name = make_parameter_entity_name(pos);
+ ir_entity *res
+ = intern_new_entity(owner, IR_ENTITY_PARAMETER, name, type, dbgi);
+ res->attr.parameter.number = pos;
+ hook_new_entity(res);
+ return res;
+}
+
+ir_entity *new_parameter_entity(ir_type *owner, size_t pos, ir_type *type)
+{
+ return new_d_parameter_entity(owner, pos, type, NULL);
+}
+
+ir_entity *new_d_label_entity(ir_label_t label, dbg_info *dbgi)
+{
+ ident *name = id_unique("label_%u");
+ ir_type *global_type = get_glob_type();
+ ir_entity *res
+ = intern_new_entity(global_type, IR_ENTITY_LABEL, name, get_code_type(),
+ dbgi);
+ res->attr.code_attr.label = label;
+ hook_new_entity(res);
+ return res;
+}
+
+ir_entity *new_label_entity(ir_label_t label)
+{
+ return new_d_label_entity(label, NULL);
+}