* 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.
This commit is contained in:
Ulrich Weigand 2007-06-16 17:23:12 +00:00
parent 594f77850b
commit cad351d11d
6 changed files with 251 additions and 105 deletions

View file

@ -1,3 +1,34 @@
2007-06-16 Ulrich Weigand <uweigand@de.ibm.com>
* 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 <uweigand@de.ibm.com> 2007-06-16 Ulrich Weigand <uweigand@de.ibm.com>
* regcache.c (struct regcache): Add ptid_t member. * regcache.c (struct regcache): Add ptid_t member.

View file

@ -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_long_double] = builtin->builtin_long_double;
lai->primitive_type_vector [c_primitive_type_complex] = builtin->builtin_complex; lai->primitive_type_vector [c_primitive_type_complex] = builtin->builtin_complex;
lai->primitive_type_vector [c_primitive_type_double_complex] = builtin->builtin_double_complex; lai->primitive_type_vector [c_primitive_type_double_complex] = builtin->builtin_double_complex;
}; }
const struct language_defn c_language_defn = const struct language_defn c_language_defn =
{ {
@ -611,34 +611,80 @@ const struct language_defn c_language_defn =
LANG_MAGIC LANG_MAGIC
}; };
struct type **const (cplus_builtin_types[]) = enum cplus_primitive_types {
{ cplus_primitive_type_int,
&builtin_type_int, cplus_primitive_type_long,
&builtin_type_long, cplus_primitive_type_short,
&builtin_type_short, cplus_primitive_type_char,
&builtin_type_char, cplus_primitive_type_float,
&builtin_type_float, cplus_primitive_type_double,
&builtin_type_double, cplus_primitive_type_void,
&builtin_type_void, cplus_primitive_type_long_long,
&builtin_type_long_long, cplus_primitive_type_signed_char,
&builtin_type_signed_char, cplus_primitive_type_unsigned_char,
&builtin_type_unsigned_char, cplus_primitive_type_unsigned_short,
&builtin_type_unsigned_short, cplus_primitive_type_unsigned_int,
&builtin_type_unsigned_int, cplus_primitive_type_unsigned_long,
&builtin_type_unsigned_long, cplus_primitive_type_unsigned_long_long,
&builtin_type_unsigned_long_long, cplus_primitive_type_long_double,
&builtin_type_long_double, cplus_primitive_type_complex,
&builtin_type_complex, cplus_primitive_type_double_complex,
&builtin_type_double_complex, cplus_primitive_type_bool,
&builtin_type_bool, nr_cplus_primitive_types
0
}; };
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 = const struct language_defn cplus_language_defn =
{ {
"c++", /* Language name */ "c++", /* Language name */
language_cplus, language_cplus,
cplus_builtin_types, NULL,
range_check_off, range_check_off,
type_check_off, type_check_off,
case_sensitive_on, case_sensitive_on,
@ -663,9 +709,9 @@ const struct language_defn cplus_language_defn =
c_op_print_tab, /* expression operators for printing */ c_op_print_tab, /* expression operators for printing */
1, /* c-style arrays */ 1, /* c-style arrays */
0, /* String lower bound */ 0, /* String lower bound */
&builtin_type_char, /* Type of string elements */ NULL,
default_word_break_characters, default_word_break_characters,
NULL, /* FIXME: la_language_arch_info. */ cplus_language_arch_info,
default_print_array_index, default_print_array_index,
LANG_MAGIC LANG_MAGIC
}; };

View file

@ -434,26 +434,53 @@ static const struct op_print f_op_print_tab[] =
{NULL, 0, 0, 0} {NULL, 0, 0, 0}
}; };
struct type **const (f_builtin_types[]) = enum f_primitive_types {
{ f_primitive_type_character,
&builtin_type_f_character, f_primitive_type_logical,
&builtin_type_f_logical, f_primitive_type_logical_s1,
&builtin_type_f_logical_s1, f_primitive_type_logical_s2,
&builtin_type_f_logical_s2, f_primitive_type_integer,
&builtin_type_f_integer, f_primitive_type_integer_s2,
&builtin_type_f_integer_s2, f_primitive_type_real,
&builtin_type_f_real, f_primitive_type_real_s8,
&builtin_type_f_real_s8, f_primitive_type_real_s16,
&builtin_type_f_real_s16, f_primitive_type_complex_s8,
&builtin_type_f_complex_s8, f_primitive_type_complex_s16,
&builtin_type_f_complex_s16, f_primitive_type_void,
#if 0 nr_f_primitive_types
&builtin_type_f_complex_s32,
#endif
&builtin_type_f_void,
0
}; };
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 /* This is declared in c-lang.h but it is silly to import that file for what
is already just a hack. */ is already just a hack. */
extern int c_value_print (struct value *, struct ui_file *, int, extern int c_value_print (struct value *, struct ui_file *, int,
@ -463,7 +490,7 @@ const struct language_defn f_language_defn =
{ {
"fortran", "fortran",
language_fortran, language_fortran,
f_builtin_types, NULL,
range_check_on, range_check_on,
type_check_on, type_check_on,
case_sensitive_off, case_sensitive_off,
@ -488,9 +515,9 @@ const struct language_defn f_language_defn =
f_op_print_tab, /* expression operators for printing */ f_op_print_tab, /* expression operators for printing */
0, /* arrays are first-class (not c-style) */ 0, /* arrays are first-class (not c-style) */
1, /* String lower bound */ 1, /* String lower bound */
&builtin_type_f_character, /* Type of string elements */ NULL,
default_word_break_characters, default_word_break_characters,
NULL, /* FIXME: la_language_arch_info. */ f_language_arch_info,
default_print_array_index, default_print_array_index,
LANG_MAGIC LANG_MAGIC
}; };

View file

@ -402,21 +402,41 @@ struct type *builtin_type_m2_card;
struct type *builtin_type_m2_real; struct type *builtin_type_m2_real;
struct type *builtin_type_m2_bool; struct type *builtin_type_m2_bool;
struct type **const (m2_builtin_types[]) = enum m2_primitive_types {
{ m2_primitive_type_char,
&builtin_type_m2_char, m2_primitive_type_int,
&builtin_type_m2_int, m2_primitive_type_card,
&builtin_type_m2_card, m2_primitive_type_real,
&builtin_type_m2_real, m2_primitive_type_bool,
&builtin_type_m2_bool, nr_m2_primitive_types
0
}; };
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 = const struct language_defn m2_language_defn =
{ {
"modula-2", "modula-2",
language_m2, language_m2,
m2_builtin_types, NULL,
range_check_on, range_check_on,
type_check_on, type_check_on,
case_sensitive_on, case_sensitive_on,
@ -441,9 +461,9 @@ const struct language_defn m2_language_defn =
m2_op_print_tab, /* expression operators for printing */ m2_op_print_tab, /* expression operators for printing */
0, /* arrays are first-class (not c-style) */ 0, /* arrays are first-class (not c-style) */
0, /* String lower bound */ 0, /* String lower bound */
&builtin_type_m2_char, /* Type of string elements */ NULL,
default_word_break_characters, default_word_break_characters,
NULL, /* FIXME: la_language_arch_info. */ m2_language_arch_info,
default_print_array_index, default_print_array_index,
LANG_MAGIC LANG_MAGIC
}; };

View file

@ -638,32 +638,10 @@ static const struct op_print objc_op_print_tab[] =
{NULL, OP_NULL, PREC_NULL, 0} {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 = { const struct language_defn objc_language_defn = {
"objective-c", /* Language name */ "objective-c", /* Language name */
language_objc, language_objc,
objc_builtin_types, NULL,
range_check_off, range_check_off,
type_check_off, type_check_off,
case_sensitive_on, case_sensitive_on,
@ -688,9 +666,9 @@ const struct language_defn objc_language_defn = {
objc_op_print_tab, /* Expression operators for printing */ objc_op_print_tab, /* Expression operators for printing */
1, /* C-style arrays */ 1, /* C-style arrays */
0, /* String lower bound */ 0, /* String lower bound */
&builtin_type_char, /* Type of string elements */ NULL,
default_word_break_characters, default_word_break_characters,
NULL, /* FIXME: la_language_arch_info. */ c_language_arch_info,
default_print_array_index, default_print_array_index,
LANG_MAGIC LANG_MAGIC
}; };

View file

@ -428,33 +428,77 @@ const struct op_print pascal_op_print_tab[] =
{NULL, 0, 0, 0} {NULL, 0, 0, 0}
}; };
struct type **const (pascal_builtin_types[]) = enum pascal_primitive_types {
{ pascal_primitive_type_int,
&builtin_type_int, pascal_primitive_type_long,
&builtin_type_long, pascal_primitive_type_short,
&builtin_type_short, pascal_primitive_type_char,
&builtin_type_char, pascal_primitive_type_float,
&builtin_type_float, pascal_primitive_type_double,
&builtin_type_double, pascal_primitive_type_void,
&builtin_type_void, pascal_primitive_type_long_long,
&builtin_type_long_long, pascal_primitive_type_signed_char,
&builtin_type_signed_char, pascal_primitive_type_unsigned_char,
&builtin_type_unsigned_char, pascal_primitive_type_unsigned_short,
&builtin_type_unsigned_short, pascal_primitive_type_unsigned_int,
&builtin_type_unsigned_int, pascal_primitive_type_unsigned_long,
&builtin_type_unsigned_long, pascal_primitive_type_unsigned_long_long,
&builtin_type_unsigned_long_long, pascal_primitive_type_long_double,
&builtin_type_long_double, pascal_primitive_type_complex,
&builtin_type_complex, pascal_primitive_type_double_complex,
&builtin_type_double_complex, nr_pascal_primitive_types
0
}; };
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 = const struct language_defn pascal_language_defn =
{ {
"pascal", /* Language name */ "pascal", /* Language name */
language_pascal, language_pascal,
pascal_builtin_types, NULL,
range_check_on, range_check_on,
type_check_on, type_check_on,
case_sensitive_on, case_sensitive_on,
@ -479,9 +523,9 @@ const struct language_defn pascal_language_defn =
pascal_op_print_tab, /* expression operators for printing */ pascal_op_print_tab, /* expression operators for printing */
1, /* c-style arrays */ 1, /* c-style arrays */
0, /* String lower bound */ 0, /* String lower bound */
&builtin_type_char, /* Type of string elements */ NULL,
default_word_break_characters, default_word_break_characters,
NULL, /* FIXME: la_language_arch_info. */ pascal_language_arch_info,
default_print_array_index, default_print_array_index,
LANG_MAGIC LANG_MAGIC
}; };