Avoid global lookup when decoding XA type.

This patch enhances GDB to take advantage of a recent change in the GNAT
encoding regarding XA types.  A detailed description of the logic has
been added at the start of ada_fixup_array_indexes_type to give the
context behind this enhancement.

2010-05-17  Joel Brobecker  <brobecker@adacore.com>

        * ada-lang.c (to_fixed_range_type): The the raw index type as
        argument instead of the raw type name.  Remove orig_type parameter.
        Update calls throughout.
        (ada_fixup_array_indexes_type): New function.
        (ada_array_bound_from_type): Add call to ada_fixup_array_indexes_type.
        * ada-lang.h (ada_fixup_array_indexes_type): Add declaration.
        * ada-typeprint.c (print_range_type): Renames print_range_type_named.
        Remove name parameter.
        (print_array_type): Add call to ada_fixup_array_indexes_type.
        Update calls to print_range_type.
        (ada_print_type): Update calls to print_range_type.
This commit is contained in:
Joel Brobecker 2010-05-17 16:55:31 +00:00
parent 3872d37d18
commit 28c85d6c4b
4 changed files with 100 additions and 28 deletions

View file

@ -187,6 +187,8 @@ struct value *ada_convert_actual (struct value *actual,
extern struct value *ada_value_subscript (struct value *, int,
struct value **);
extern void ada_fixup_array_indexes_type (struct type *index_desc_type);
extern struct type *ada_array_element_type (struct type *, int);
extern int ada_array_arity (struct type *);