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.
This commit is contained in:
parent
cf000afb0d
commit
92b9ce5b60
5 changed files with 12 additions and 82 deletions
|
@ -1,4 +1,15 @@
|
||||||
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.
|
* stabsread.c (read_args): Handle zero arguments.
|
||||||
|
|
||||||
|
|
|
@ -9656,52 +9656,6 @@ ada_float_to_fixed (struct type *type, DOUBLEST x)
|
||||||
return (LONGEST) (x / scaling_factor (type) + 0.5);
|
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"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Range types */
|
/* Range types */
|
||||||
|
|
|
@ -305,12 +305,6 @@ extern DOUBLEST ada_fixed_to_float (struct type *, LONGEST);
|
||||||
|
|
||||||
extern LONGEST ada_float_to_fixed (struct type *, DOUBLEST);
|
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 struct type *ada_system_address_type (void);
|
||||||
|
|
||||||
extern int ada_which_variant_applies (struct type *, struct type *,
|
extern int ada_which_variant_applies (struct type *, struct type *,
|
||||||
|
|
|
@ -310,15 +310,6 @@ print_fixed_point_type (struct type *type, struct ui_file *stream)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 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
|
/* Print simple (constrained) array type TYPE on STREAM. LEVEL is the
|
||||||
recursion (indentation) level, in case the element type itself has
|
recursion (indentation) level, in case the element type itself has
|
||||||
nested structure, and SHOW is the number of levels of internal
|
nested structure, and SHOW is the number of levels of internal
|
||||||
|
@ -786,8 +777,6 @@ ada_print_type (struct type *type0, char *varstring, struct ui_file *stream,
|
||||||
case TYPE_CODE_INT:
|
case TYPE_CODE_INT:
|
||||||
if (ada_is_fixed_point_type (type))
|
if (ada_is_fixed_point_type (type))
|
||||||
print_fixed_point_type (type, stream);
|
print_fixed_point_type (type, stream);
|
||||||
else if (ada_is_vax_floating_type (type))
|
|
||||||
print_vax_floating_point_type (type, stream);
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
char *name = ada_type_name (type);
|
char *name = ada_type_name (type);
|
||||||
|
@ -804,8 +793,6 @@ ada_print_type (struct type *type0, char *varstring, struct ui_file *stream,
|
||||||
case TYPE_CODE_RANGE:
|
case TYPE_CODE_RANGE:
|
||||||
if (ada_is_fixed_point_type (type))
|
if (ada_is_fixed_point_type (type))
|
||||||
print_fixed_point_type (type, stream);
|
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))
|
else if (ada_is_modular_type (type))
|
||||||
fprintf_filtered (stream, "mod %s",
|
fprintf_filtered (stream, "mod %s",
|
||||||
int_string (ada_modulus (type), 10, 0, 0, 1));
|
int_string (ada_modulus (type), 10, 0, 0, 1));
|
||||||
|
|
|
@ -744,22 +744,6 @@ ada_val_print_1 (struct type *type, const gdb_byte *valaddr0,
|
||||||
(double) ada_fixed_to_float (type, v));
|
(double) ada_fixed_to_float (type, v));
|
||||||
return 0;
|
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)
|
else if (TYPE_CODE (type) == TYPE_CODE_RANGE)
|
||||||
{
|
{
|
||||||
struct type *target_type = TYPE_TARGET_TYPE (type);
|
struct type *target_type = TYPE_TARGET_TYPE (type);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue