From cad351d11d6c3f6487cd696c229731e1a7fecdf0 Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Sat, 16 Jun 2007 17:23:12 +0000 Subject: [PATCH] * 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. --- gdb/ChangeLog | 31 ++++++++++++++++ gdb/c-lang.c | 96 ++++++++++++++++++++++++++++++++++++------------- gdb/f-lang.c | 69 ++++++++++++++++++++++++----------- gdb/m2-lang.c | 42 ++++++++++++++++------ gdb/objc-lang.c | 28 ++------------- gdb/p-lang.c | 90 ++++++++++++++++++++++++++++++++++------------ 6 files changed, 251 insertions(+), 105 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8b086d7510..922e0bb3e8 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,34 @@ +2007-06-16 Ulrich Weigand + + * 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. + + 2007-06-16 Ulrich Weigand * regcache.c (struct regcache): Add ptid_t member. diff --git a/gdb/c-lang.c b/gdb/c-lang.c index 32b023dae6..1d9e0a3a8a 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 }; diff --git a/gdb/f-lang.c b/gdb/f-lang.c index e6b0d6feea..9f6d0ecce9 100644 --- a/gdb/f-lang.c +++ b/gdb/f-lang.c @@ -434,26 +434,53 @@ static const struct op_print f_op_print_tab[] = {NULL, 0, 0, 0} }; -struct type **const (f_builtin_types[]) = -{ - &builtin_type_f_character, - &builtin_type_f_logical, - &builtin_type_f_logical_s1, - &builtin_type_f_logical_s2, - &builtin_type_f_integer, - &builtin_type_f_integer_s2, - &builtin_type_f_real, - &builtin_type_f_real_s8, - &builtin_type_f_real_s16, - &builtin_type_f_complex_s8, - &builtin_type_f_complex_s16, -#if 0 - &builtin_type_f_complex_s32, -#endif - &builtin_type_f_void, - 0 +enum f_primitive_types { + f_primitive_type_character, + f_primitive_type_logical, + f_primitive_type_logical_s1, + f_primitive_type_logical_s2, + f_primitive_type_integer, + f_primitive_type_integer_s2, + f_primitive_type_real, + f_primitive_type_real_s8, + f_primitive_type_real_s16, + f_primitive_type_complex_s8, + f_primitive_type_complex_s16, + f_primitive_type_void, + nr_f_primitive_types }; +static void +f_language_arch_info (struct gdbarch *gdbarch, + struct language_arch_info *lai) +{ + lai->string_char_type = builtin_type_f_character; + lai->primitive_type_vector + = GDBARCH_OBSTACK_CALLOC (gdbarch, nr_f_primitive_types + 1, + struct type *); + + lai->primitive_type_vector [f_primitive_type_character] + = builtin_type_f_character; + lai->primitive_type_vector [f_primitive_type_logical] + = builtin_type_f_logical; + lai->primitive_type_vector [f_primitive_type_logical_s1] + = builtin_type_f_logical_s1; + lai->primitive_type_vector [f_primitive_type_logical_s2] + = builtin_type_f_logical_s2; + lai->primitive_type_vector [f_primitive_type_real] + = builtin_type_f_real; + lai->primitive_type_vector [f_primitive_type_real_s8] + = builtin_type_f_real_s8; + lai->primitive_type_vector [f_primitive_type_real_s16] + = builtin_type_f_real_s16; + lai->primitive_type_vector [f_primitive_type_complex_s8] + = builtin_type_f_complex_s8; + lai->primitive_type_vector [f_primitive_type_complex_s16] + = builtin_type_f_complex_s16; + lai->primitive_type_vector [f_primitive_type_void] + = builtin_type_f_void; +} + /* This is declared in c-lang.h but it is silly to import that file for what is already just a hack. */ extern int c_value_print (struct value *, struct ui_file *, int, @@ -463,7 +490,7 @@ const struct language_defn f_language_defn = { "fortran", language_fortran, - f_builtin_types, + NULL, range_check_on, type_check_on, case_sensitive_off, @@ -488,9 +515,9 @@ const struct language_defn f_language_defn = f_op_print_tab, /* expression operators for printing */ 0, /* arrays are first-class (not c-style) */ 1, /* String lower bound */ - &builtin_type_f_character, /* Type of string elements */ + NULL, default_word_break_characters, - NULL, /* FIXME: la_language_arch_info. */ + f_language_arch_info, default_print_array_index, LANG_MAGIC }; diff --git a/gdb/m2-lang.c b/gdb/m2-lang.c index 11716b3dcc..668106d75c 100644 --- a/gdb/m2-lang.c +++ b/gdb/m2-lang.c @@ -402,21 +402,41 @@ struct type *builtin_type_m2_card; struct type *builtin_type_m2_real; struct type *builtin_type_m2_bool; -struct type **const (m2_builtin_types[]) = -{ - &builtin_type_m2_char, - &builtin_type_m2_int, - &builtin_type_m2_card, - &builtin_type_m2_real, - &builtin_type_m2_bool, - 0 +enum m2_primitive_types { + m2_primitive_type_char, + m2_primitive_type_int, + m2_primitive_type_card, + m2_primitive_type_real, + m2_primitive_type_bool, + nr_m2_primitive_types }; +static void +m2_language_arch_info (struct gdbarch *gdbarch, + struct language_arch_info *lai) +{ + lai->string_char_type = builtin_type_m2_char; + lai->primitive_type_vector + = GDBARCH_OBSTACK_CALLOC (gdbarch, nr_m2_primitive_types + 1, + struct type *); + + lai->primitive_type_vector [m2_primitive_type_char] + = builtin_type_m2_char; + lai->primitive_type_vector [m2_primitive_type_int] + = builtin_type_m2_int; + lai->primitive_type_vector [m2_primitive_type_card] + = builtin_type_m2_card; + lai->primitive_type_vector [m2_primitive_type_real] + = builtin_type_m2_real; + lai->primitive_type_vector [m2_primitive_type_bool] + = builtin_type_m2_bool; +} + const struct language_defn m2_language_defn = { "modula-2", language_m2, - m2_builtin_types, + NULL, range_check_on, type_check_on, case_sensitive_on, @@ -441,9 +461,9 @@ const struct language_defn m2_language_defn = m2_op_print_tab, /* expression operators for printing */ 0, /* arrays are first-class (not c-style) */ 0, /* String lower bound */ - &builtin_type_m2_char, /* Type of string elements */ + NULL, default_word_break_characters, - NULL, /* FIXME: la_language_arch_info. */ + m2_language_arch_info, default_print_array_index, LANG_MAGIC }; diff --git a/gdb/objc-lang.c b/gdb/objc-lang.c index 2567ed2b30..99d9fbb9fc 100644 --- a/gdb/objc-lang.c +++ b/gdb/objc-lang.c @@ -638,32 +638,10 @@ static const struct op_print objc_op_print_tab[] = {NULL, OP_NULL, PREC_NULL, 0} }; -struct type ** const (objc_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, - 0 -}; - const struct language_defn objc_language_defn = { "objective-c", /* Language name */ language_objc, - objc_builtin_types, + NULL, range_check_off, type_check_off, case_sensitive_on, @@ -688,9 +666,9 @@ const struct language_defn objc_language_defn = { objc_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, default_print_array_index, LANG_MAGIC }; diff --git a/gdb/p-lang.c b/gdb/p-lang.c index aa5545e42e..11df30967e 100644 --- a/gdb/p-lang.c +++ b/gdb/p-lang.c @@ -428,33 +428,77 @@ const struct op_print pascal_op_print_tab[] = {NULL, 0, 0, 0} }; -struct type **const (pascal_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, - 0 +enum pascal_primitive_types { + pascal_primitive_type_int, + pascal_primitive_type_long, + pascal_primitive_type_short, + pascal_primitive_type_char, + pascal_primitive_type_float, + pascal_primitive_type_double, + pascal_primitive_type_void, + pascal_primitive_type_long_long, + pascal_primitive_type_signed_char, + pascal_primitive_type_unsigned_char, + pascal_primitive_type_unsigned_short, + pascal_primitive_type_unsigned_int, + pascal_primitive_type_unsigned_long, + pascal_primitive_type_unsigned_long_long, + pascal_primitive_type_long_double, + pascal_primitive_type_complex, + pascal_primitive_type_double_complex, + nr_pascal_primitive_types }; +static void +pascal_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_pascal_primitive_types + 1, + struct type *); + lai->primitive_type_vector [pascal_primitive_type_int] + = builtin->builtin_int; + lai->primitive_type_vector [pascal_primitive_type_long] + = builtin->builtin_long; + lai->primitive_type_vector [pascal_primitive_type_short] + = builtin->builtin_short; + lai->primitive_type_vector [pascal_primitive_type_char] + = builtin->builtin_char; + lai->primitive_type_vector [pascal_primitive_type_float] + = builtin->builtin_float; + lai->primitive_type_vector [pascal_primitive_type_double] + = builtin->builtin_double; + lai->primitive_type_vector [pascal_primitive_type_void] + = builtin->builtin_void; + lai->primitive_type_vector [pascal_primitive_type_long_long] + = builtin->builtin_long_long; + lai->primitive_type_vector [pascal_primitive_type_signed_char] + = builtin->builtin_signed_char; + lai->primitive_type_vector [pascal_primitive_type_unsigned_char] + = builtin->builtin_unsigned_char; + lai->primitive_type_vector [pascal_primitive_type_unsigned_short] + = builtin->builtin_unsigned_short; + lai->primitive_type_vector [pascal_primitive_type_unsigned_int] + = builtin->builtin_unsigned_int; + lai->primitive_type_vector [pascal_primitive_type_unsigned_long] + = builtin->builtin_unsigned_long; + lai->primitive_type_vector [pascal_primitive_type_unsigned_long_long] + = builtin->builtin_unsigned_long_long; + lai->primitive_type_vector [pascal_primitive_type_long_double] + = builtin->builtin_long_double; + lai->primitive_type_vector [pascal_primitive_type_complex] + = builtin->builtin_complex; + lai->primitive_type_vector [pascal_primitive_type_double_complex] + = builtin->builtin_double_complex; +} + const struct language_defn pascal_language_defn = { "pascal", /* Language name */ language_pascal, - pascal_builtin_types, + NULL, range_check_on, type_check_on, case_sensitive_on, @@ -479,9 +523,9 @@ const struct language_defn pascal_language_defn = pascal_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. */ + pascal_language_arch_info, default_print_array_index, LANG_MAGIC }; -- 2.34.1