diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2007-06-16 17:23:12 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@de.ibm.com> | 2007-06-16 17:23:12 +0000 |
commit | cad351d11d6c3f6487cd696c229731e1a7fecdf0 (patch) | |
tree | 68bb345967261a25f2a0050f704e10b541184240 /gdb/c-lang.c | |
parent | 594f77850bb22a2cec4e8fc44c7ea735a6270eb2 (diff) | |
download | gdb-cad351d11d6c3f6487cd696c229731e1a7fecdf0.zip gdb-cad351d11d6c3f6487cd696c229731e1a7fecdf0.tar.gz gdb-cad351d11d6c3f6487cd696c229731e1a7fecdf0.tar.bz2 |
* c-lang.c (cplus_builtin_types): Remove.
(enum cplus_primitive_types): New data type.
(cplus_language_arch_info): New function.
(cplus_language_defn): Set la_language_arch_info member. Do not set
la_builtin_type_vector and string_char_type members.
* f-lang.c (f_builtin_types): Remove.
(enum f_primitive_types): New data type.
(f_language_arch_info): New function.
(f_language_de): Set la_language_arch_info member. Do not set
la_builtin_type_vector and string_char_type members.
* m2-lang.c (m2_builtin_types): Remove.
(enum m2_primitive_types): New data type.
(m2_language_arch_info): New function.
(m2_language_defn): Set la_language_arch_info member. Do not set
la_builtin_type_vector and string_char_type members.
* objc-lang.c (objc_builtin_types): Remove.
(objc_language): Set la_language_arch_info member. Do not set
la_builtin_type_vector and string_char_type members.
* p-lang.c (pascal_builtin_types): Remove.
(enum pascal_primitive_types): New data type.
(pascal_language_arch_info): New function.
(pascal_language_defn): Set la_language_arch_info member. Do not set
la_builtin_type_vector and string_char_type members.
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 }; |