2004-07-28 Andrew Cagney <cagney@gnu.org>
* gdbtypes.h (struct builtin_type): Rename true_char to builtin_true_char. * gdbtypes.c (gdbtypes_post_init): Update. * c-lang.c (arch_info): New function. (enum c_primitive_types): New enum. (c_language_defn): Instead of string_char_type and primitive_type_vector set la_language_arch_info.
This commit is contained in:
parent
ccde110023
commit
685419e2ae
4 changed files with 64 additions and 5 deletions
|
@ -1,3 +1,13 @@
|
|||
2004-07-28 Andrew Cagney <cagney@gnu.org>
|
||||
|
||||
* gdbtypes.h (struct builtin_type): Rename true_char to
|
||||
builtin_true_char.
|
||||
* gdbtypes.c (gdbtypes_post_init): Update.
|
||||
* c-lang.c (arch_info): New function.
|
||||
(enum c_primitive_types): New enum.
|
||||
(c_language_defn): Instead of string_char_type and
|
||||
primitive_type_vector set la_language_arch_info.
|
||||
|
||||
2004-07-28 Andrew Cagney <cagney@gnu.org>
|
||||
|
||||
* language.h (struct language_arch_info): Fix typo
|
||||
|
|
55
gdb/c-lang.c
55
gdb/c-lang.c
|
@ -535,11 +535,60 @@ struct type **const (c_builtin_types[]) =
|
|||
0
|
||||
};
|
||||
|
||||
enum c_primitive_types {
|
||||
c_primitive_type_int,
|
||||
c_primitive_type_long,
|
||||
c_primitive_type_short,
|
||||
c_primitive_type_char,
|
||||
c_primitive_type_float,
|
||||
c_primitive_type_double,
|
||||
c_primitive_type_void,
|
||||
c_primitive_type_long_long,
|
||||
c_primitive_type_signed_char,
|
||||
c_primitive_type_unsigned_char,
|
||||
c_primitive_type_unsigned_short,
|
||||
c_primitive_type_unsigned_int,
|
||||
c_primitive_type_unsigned_long,
|
||||
c_primitive_type_unsigned_long_long,
|
||||
c_primitive_type_long_double,
|
||||
c_primitive_type_complex,
|
||||
c_primitive_type_double_complex,
|
||||
nr_c_primitive_types
|
||||
};
|
||||
|
||||
static void
|
||||
c_language_arch_info (struct gdbarch *gdbarch,
|
||||
struct language_arch_info *lai)
|
||||
{
|
||||
const struct builtin_type *builtin = builtin_type (gdbarch);
|
||||
lai->string_char_type = builtin->builtin_true_char;
|
||||
lai->primitive_type_vector
|
||||
= GDBARCH_OBSTACK_CALLOC (gdbarch, nr_c_primitive_types + 1,
|
||||
struct type *);
|
||||
lai->primitive_type_vector [c_primitive_type_int] = builtin->builtin_int;
|
||||
lai->primitive_type_vector [c_primitive_type_long] = builtin->builtin_long;
|
||||
lai->primitive_type_vector [c_primitive_type_short] = builtin->builtin_short;
|
||||
lai->primitive_type_vector [c_primitive_type_char] = builtin->builtin_char;
|
||||
lai->primitive_type_vector [c_primitive_type_float] = builtin->builtin_float;
|
||||
lai->primitive_type_vector [c_primitive_type_double] = builtin->builtin_double;
|
||||
lai->primitive_type_vector [c_primitive_type_void] = builtin->builtin_void;
|
||||
lai->primitive_type_vector [c_primitive_type_long_long] = builtin->builtin_long_long;
|
||||
lai->primitive_type_vector [c_primitive_type_signed_char] = builtin->builtin_signed_char;
|
||||
lai->primitive_type_vector [c_primitive_type_unsigned_char] = builtin->builtin_unsigned_char;
|
||||
lai->primitive_type_vector [c_primitive_type_unsigned_short] = builtin->builtin_unsigned_short;
|
||||
lai->primitive_type_vector [c_primitive_type_unsigned_int] = builtin->builtin_unsigned_int;
|
||||
lai->primitive_type_vector [c_primitive_type_unsigned_long] = builtin->builtin_unsigned_long;
|
||||
lai->primitive_type_vector [c_primitive_type_unsigned_long_long] = builtin->builtin_unsigned_long_long;
|
||||
lai->primitive_type_vector [c_primitive_type_long_double] = builtin->builtin_long_double;
|
||||
lai->primitive_type_vector [c_primitive_type_complex] = builtin->builtin_complex;
|
||||
lai->primitive_type_vector [c_primitive_type_double_complex] = builtin->builtin_double_complex;
|
||||
};
|
||||
|
||||
const struct language_defn c_language_defn =
|
||||
{
|
||||
"c", /* Language name */
|
||||
language_c,
|
||||
c_builtin_types,
|
||||
NULL,
|
||||
range_check_off,
|
||||
type_check_off,
|
||||
case_sensitive_on,
|
||||
|
@ -567,9 +616,9 @@ const struct language_defn c_language_defn =
|
|||
c_op_print_tab, /* expression operators for printing */
|
||||
1, /* c-style arrays */
|
||||
0, /* String lower bound */
|
||||
&builtin_type_char, /* Type of string elements */
|
||||
NULL,
|
||||
default_word_break_characters,
|
||||
NULL, /* FIXME: la_language_arch_info. */
|
||||
c_language_arch_info,
|
||||
LANG_MAGIC
|
||||
};
|
||||
|
||||
|
|
|
@ -3380,7 +3380,7 @@ gdbtypes_post_init (struct gdbarch *gdbarch)
|
|||
(TYPE_FLAG_NOSIGN
|
||||
| (TARGET_CHAR_SIGNED ? 0 : TYPE_FLAG_UNSIGNED)),
|
||||
"char", (struct objfile *) NULL);
|
||||
builtin_type->true_char =
|
||||
builtin_type->builtin_true_char =
|
||||
init_type (TYPE_CODE_CHAR, TARGET_CHAR_BIT / TARGET_CHAR_BIT,
|
||||
0,
|
||||
"true character", (struct objfile *) NULL);
|
||||
|
|
|
@ -968,7 +968,7 @@ struct builtin_type
|
|||
/* We use this for the '/c' print format, because c_char is just a
|
||||
one-byte integral type, which languages less laid back than C
|
||||
will print as ... well, a one-byte integral type. */
|
||||
struct type *true_char;
|
||||
struct type *builtin_true_char;
|
||||
|
||||
/* Implicit size/sign (based on the the architecture's ABI). */
|
||||
struct type *builtin_void;
|
||||
|
|
Loading…
Reference in a new issue