+ /* If information constructed set pass-by-value representation. */
+ if (method->attr.ma.value_ress) {
+ assert(get_method_n_ress(method) == get_struct_n_members(method->attr.ma.value_ress));
+ set_entity_type(get_struct_member(method->attr.ma.value_ress, pos), tp);
+ }
+}
+/* Returns an entity that represents the copied value result. Only necessary
+ for compounds passed by value. */
+entity *get_method_value_res_ent(type *method, int pos) {
+ assert(method && (method->type_op == type_method));
+ assert(pos >= 0 && pos < get_method_n_ress(method));
+ if (!method->attr.ma.value_ress)
+ method->attr.ma.value_ress
+ = build_value_type(mangle_u(get_type_ident(method), value_ress_suffix),
+ get_method_n_ress(method), method->attr.ma.res_type);
+ assert((get_entity_type(get_struct_member(method->attr.ma.value_ress, pos)) != method->attr.ma.value_ress)
+ && "result type not yet set");
+ return get_struct_member(method->attr.ma.value_ress, pos);
+}
+
+variadicity get_method_variadicity(type *method)
+{
+ assert(method && (method->type_op == type_method));
+ return method->attr.ma.variadicity;
+}
+
+void set_method_variadicity(type *method, variadicity vari)
+{
+ assert(method && (method->type_op == type_method));
+ method->attr.ma.variadicity = vari;