-2010-01-08 Jan Kratochvil <jan.kratochvil@redhat.com>
+2009-01-08 Joel Brobecker <brobecker@adacore.com>
+
+ Get rid of support for VAX Floats.
+ * ada-lang.h (ada_is_vax_floating_type, ada_vax_float_type_suffix)
+ (ada_vax_float_print_function): Delete.
+ * ada-lang.c (ada_is_vax_floating_type, ada_vax_float_type_suffix)
+ (ada_vax_float_print_function): Delete.
+ * ada-typeprint.c (print_vax_floating_point_type): Delete.
+ (ada_print_type): Remove support for VAX floats.
+ * ada-valprint.c (ada_val_print_1): Remove support for VAX floats.
+
+2010-01-08 jan kratochvil <jan.kratochvil@redhat.com>
* stabsread.c (read_args): Handle zero arguments.
return (LONGEST) (x / scaling_factor (type) + 0.5);
}
-
- /* VAX floating formats */
-
-/* Non-zero iff TYPE represents one of the special VAX floating-point
- types. */
-
-int
-ada_is_vax_floating_type (struct type *type)
-{
- int name_len =
- (ada_type_name (type) == NULL) ? 0 : strlen (ada_type_name (type));
- return
- name_len > 6
- && (TYPE_CODE (type) == TYPE_CODE_INT
- || TYPE_CODE (type) == TYPE_CODE_RANGE)
- && strncmp (ada_type_name (type) + name_len - 6, "___XF", 5) == 0;
-}
-
-/* The type of special VAX floating-point type this is, assuming
- ada_is_vax_floating_point. */
-
-int
-ada_vax_float_type_suffix (struct type *type)
-{
- return ada_type_name (type)[strlen (ada_type_name (type)) - 1];
-}
-
-/* A value representing the special debugging function that outputs
- VAX floating-point values of the type represented by TYPE. Assumes
- ada_is_vax_floating_type (TYPE). */
-
-struct value *
-ada_vax_float_print_function (struct type *type)
-{
- switch (ada_vax_float_type_suffix (type))
- {
- case 'F':
- return get_var_value ("DEBUG_STRING_F", 0);
- case 'D':
- return get_var_value ("DEBUG_STRING_D", 0);
- case 'G':
- return get_var_value ("DEBUG_STRING_G", 0);
- default:
- error (_("invalid VAX floating-point type"));
- }
-}
\f
/* Range types */
extern LONGEST ada_float_to_fixed (struct type *, DOUBLEST);
-extern int ada_is_vax_floating_type (struct type *);
-
-extern int ada_vax_float_type_suffix (struct type *);
-
-extern struct value *ada_vax_float_print_function (struct type *);
-
extern struct type *ada_system_address_type (void);
extern int ada_which_variant_applies (struct type *, struct type *,
}
}
-/* Print representation of special VAX floating-point type TYPE on STREAM. */
-
-static void
-print_vax_floating_point_type (struct type *type, struct ui_file *stream)
-{
- fprintf_filtered (stream, "<float format %c>",
- ada_vax_float_type_suffix (type));
-}
-
/* Print simple (constrained) array type TYPE on STREAM. LEVEL is the
recursion (indentation) level, in case the element type itself has
nested structure, and SHOW is the number of levels of internal
case TYPE_CODE_INT:
if (ada_is_fixed_point_type (type))
print_fixed_point_type (type, stream);
- else if (ada_is_vax_floating_type (type))
- print_vax_floating_point_type (type, stream);
else
{
char *name = ada_type_name (type);
case TYPE_CODE_RANGE:
if (ada_is_fixed_point_type (type))
print_fixed_point_type (type, stream);
- else if (ada_is_vax_floating_type (type))
- print_vax_floating_point_type (type, stream);
else if (ada_is_modular_type (type))
fprintf_filtered (stream, "mod %s",
int_string (ada_modulus (type), 10, 0, 0, 1));
(double) ada_fixed_to_float (type, v));
return 0;
}
- else if (ada_is_vax_floating_type (type))
- {
- struct value *val =
- value_from_contents_and_address (type, valaddr, address);
- struct value *func = ada_vax_float_print_function (type);
- if (func != 0)
- {
- struct gdbarch *gdbarch = get_type_arch (type);
- CORE_ADDR addr;
- addr = value_as_address (call_function_by_hand (func, 1, &val));
- val_print_string (builtin_type (gdbarch)->builtin_true_char,
- addr, -1, stream, options);
- return 0;
- }
- /* No special printing function. Do as best we can. */
- }
else if (TYPE_CODE (type) == TYPE_CODE_RANGE)
{
struct type *target_type = TYPE_TARGET_TYPE (type);