-// for (i = 0; i < s->args->count; ++i) {
-// decl_arg *darg = s->args->args[i];
-// impl_val tmp, tmp_ptr;
-// zval ztmp;
-// char *ptr = (char *) ret_val->ptr + darg->layout->pos;
-//
-// tmp_ptr.ptr = &tmp;
-// memset(&tmp, 0, sizeof(tmp));
-// memcpy(&tmp, ptr, darg->layout->len);
-// switch (real_decl_type(darg->type)->type) {
-// case PSI_T_FLOAT:
-// case PSI_T_DOUBLE:
-// psi_to_double(&ztmp, real_decl_type(darg->type)->type, &tmp, darg->var);
-// break;
-// case PSI_T_INT8:
-// case PSI_T_UINT8:
-// if (darg->var->pointer_level) {
-// psi_to_string(&ztmp, real_decl_type(darg->type)->type, &tmp_ptr, darg->var);
-// break;
-// }
-// /* no break */
-// case PSI_T_INT16:
-// case PSI_T_UINT16:
-// case PSI_T_INT32:
-// case PSI_T_UINT32:
-// case PSI_T_INT64:
-// case PSI_T_UINT64:
-// psi_to_int(&ztmp, real_decl_type(darg->type)->type, &tmp, darg->var);
-// break;
-// case PSI_T_STRUCT:
-// psi_to_array(&ztmp, real_decl_type(darg->type)->type, &tmp_ptr, darg->var);
-// break;
-// default:
-// printf("t=%d\n", real_decl_type(darg->type)->type);
-// abort();
-// }
-// add_assoc_zval(return_value, darg->var->name, &ztmp);
-// }