diff options
Diffstat (limited to 'gdb/c-lang.c')
-rw-r--r-- | gdb/c-lang.c | 96 |
1 files changed, 71 insertions, 25 deletions
diff --git a/gdb/c-lang.c b/gdb/c-lang.c index 32b023d..1d9e0a3 100644 --- a/gdb/c-lang.c +++ b/gdb/c-lang.c @@ -573,7 +573,7 @@ c_language_arch_info (struct gdbarch *gdbarch, 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 = { @@ -611,34 +611,80 @@ const struct language_defn c_language_defn = LANG_MAGIC }; -struct type **const (cplus_builtin_types[]) = -{ - &builtin_type_int, - &builtin_type_long, - &builtin_type_short, - &builtin_type_char, - &builtin_type_float, - &builtin_type_double, - &builtin_type_void, - &builtin_type_long_long, - &builtin_type_signed_char, - &builtin_type_unsigned_char, - &builtin_type_unsigned_short, - &builtin_type_unsigned_int, - &builtin_type_unsigned_long, - &builtin_type_unsigned_long_long, - &builtin_type_long_double, - &builtin_type_complex, - &builtin_type_double_complex, - &builtin_type_bool, - 0 +enum cplus_primitive_types { + cplus_primitive_type_int, + cplus_primitive_type_long, + cplus_primitive_type_short, + cplus_primitive_type_char, + cplus_primitive_type_float, + cplus_primitive_type_double, + cplus_primitive_type_void, + cplus_primitive_type_long_long, + cplus_primitive_type_signed_char, + cplus_primitive_type_unsigned_char, + cplus_primitive_type_unsigned_short, + cplus_primitive_type_unsigned_int, + cplus_primitive_type_unsigned_long, + cplus_primitive_type_unsigned_long_long, + cplus_primitive_type_long_double, + cplus_primitive_type_complex, + cplus_primitive_type_double_complex, + cplus_primitive_type_bool, + nr_cplus_primitive_types }; +static void +cplus_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_char; + lai->primitive_type_vector + = GDBARCH_OBSTACK_CALLOC (gdbarch, nr_cplus_primitive_types + 1, + struct type *); + lai->primitive_type_vector [cplus_primitive_type_int] + = builtin->builtin_int; + lai->primitive_type_vector [cplus_primitive_type_long] + = builtin->builtin_long; + lai->primitive_type_vector [cplus_primitive_type_short] + = builtin->builtin_short; + lai->primitive_type_vector [cplus_primitive_type_char] + = builtin->builtin_char; + lai->primitive_type_vector [cplus_primitive_type_float] + = builtin->builtin_float; + lai->primitive_type_vector [cplus_primitive_type_double] + = builtin->builtin_double; + lai->primitive_type_vector [cplus_primitive_type_void] + = builtin->builtin_void; + lai->primitive_type_vector [cplus_primitive_type_long_long] + = builtin->builtin_long_long; + lai->primitive_type_vector [cplus_primitive_type_signed_char] + = builtin->builtin_signed_char; + lai->primitive_type_vector [cplus_primitive_type_unsigned_char] + = builtin->builtin_unsigned_char; + lai->primitive_type_vector [cplus_primitive_type_unsigned_short] + = builtin->builtin_unsigned_short; + lai->primitive_type_vector [cplus_primitive_type_unsigned_int] + = builtin->builtin_unsigned_int; + lai->primitive_type_vector [cplus_primitive_type_unsigned_long] + = builtin->builtin_unsigned_long; + lai->primitive_type_vector [cplus_primitive_type_unsigned_long_long] + = builtin->builtin_unsigned_long_long; + lai->primitive_type_vector [cplus_primitive_type_long_double] + = builtin->builtin_long_double; + lai->primitive_type_vector [cplus_primitive_type_complex] + = builtin->builtin_complex; + lai->primitive_type_vector [cplus_primitive_type_double_complex] + = builtin->builtin_double_complex; + lai->primitive_type_vector [cplus_primitive_type_bool] + = builtin->builtin_bool; +} + const struct language_defn cplus_language_defn = { "c++", /* Language name */ language_cplus, - cplus_builtin_types, + NULL, range_check_off, type_check_off, case_sensitive_on, @@ -663,9 +709,9 @@ const struct language_defn cplus_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. */ + cplus_language_arch_info, default_print_array_index, LANG_MAGIC }; |