- for (i = 1; i < set->vars->count; ++i) {
- if (!locate_decl_var_arg(set->vars->vars[i], ref_list)) {
+ memset(args, 0, sizeof(*args));
+
+ while ((argc = va_arg(argp, int))) {
+ argv = va_arg(argp, decl_arg **);
+ while (argc--) {
+ add_decl_arg(args, *argv++);
+ }
+ }
+}
+static inline int validate_set_value_ex(PSI_Data *data, set_value *set, decl_arg *ref, decl_args *ref_list) {
+ size_t i;
+ decl_type *ref_type;
+ decl_var *set_var = set->vars->vars[0];
+
+ if (!validate_set_value_handler(set)) {
+ data->error(PSI_WARNING, "Invalid cast '%s'", set->func->name);
+ return 0;
+ }
+
+ for (i = 0; i < set->vars->count; ++i) {
+ if (!locate_decl_var_arg(set->vars->vars[i], ref_list, NULL)) {
+ data->error(PSI_WARNING, "Unknown variable '%s'", set->vars->vars[i]->name);