- /* If information constructed set pass-by-value representation. */
- if (method->attr.ma.value_params) {
- assert(get_method_n_params(method) == get_struct_n_members(method->attr.ma.value_params));
- set_entity_type(get_struct_member(method->attr.ma.value_params, pos), tp);
- }
-}
-
-ir_entity *get_method_value_param_ent(ir_type *method, size_t pos)
-{
- assert(method && (method->type_op == type_method));
- assert(pos < get_method_n_params(method));
-
- if (!method->attr.ma.value_params) {
- /* parameter value type not created yet, build */
- method->attr.ma.value_params = build_value_type("<value param>",
- get_method_n_params(method), method->attr.ma.params);
- }
- /*
- * build_value_type() sets the method->attr.ma.value_params type as default if
- * no type is set!
- */
- assert((get_entity_type(method->attr.ma.params[pos].ent) != method->attr.ma.value_params)
- && "param type not yet set");
- return method->attr.ma.params[pos].ent;
-}
-
-void set_method_value_param_type(ir_type *method, ir_type *tp)
-{
- size_t i;
- size_t n;
-
- assert(method && (method->type_op == type_method));
- assert(is_value_param_type(tp));
- assert(get_method_n_params(method) == get_struct_n_members(tp));
-
- method->attr.ma.value_params = tp;
-
- n = get_struct_n_members(tp);
- for (i = 0; i < n; i++) {
- ir_entity *ent = get_struct_member(tp, i);
- method->attr.ma.params[i].ent = ent;
- }
-}
-
-ir_type *get_method_value_param_type(const ir_type *method)
-{
- assert(method && (method->type_op == type_method));
- return method->attr.ma.value_params;