- modes_min[get_mode_modecode(mode)] = get_tarval_min(mode);
- modes_max[get_mode_modecode(mode)] = get_tarval_max(mode);
- modes_null[get_mode_modecode(mode)] = get_tarval_null(mode);
- modes_one[get_mode_modecode(mode)] = get_tarval_one(mode);
+ switch (get_mode_sort(mode))
+ {
+ case irms_character:
+ case irms_int_number:
+ case irms_float_number:
+ mode->min = get_tarval_min(mode);
+ mode->max = get_tarval_max(mode);
+ mode->null = get_tarval_null(mode);
+ mode->one = get_tarval_one(mode);
+ break;
+
+ case irms_internal_boolean:
+ mode->min = tarval_b_false;
+ mode->max = tarval_b_true;
+ mode->null = tarval_b_false;
+ mode->one = tarval_b_true;
+ break;
+
+ case irms_reference:
+ mode->min = tarval_bad;
+ mode->max = tarval_bad;
+ mode->null = (get_mode_modecode(mode) == irm_P) ? tarval_P_void : tarval_bad;
+ mode->one = tarval_bad;
+ break;
+
+ case irms_auxiliary:
+ case irms_memory:
+ case irms_control_flow:
+ mode->min = tarval_bad;
+ mode->max = tarval_bad;
+ mode->null = tarval_bad;
+ mode->one = tarval_bad;
+ break;
+ }