aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2007-06-16 17:23:12 +0000
committerUlrich Weigand <uweigand@de.ibm.com>2007-06-16 17:23:12 +0000
commitcad351d11d6c3f6487cd696c229731e1a7fecdf0 (patch)
tree68bb345967261a25f2a0050f704e10b541184240
parent594f77850bb22a2cec4e8fc44c7ea735a6270eb2 (diff)
downloadgdb-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.
-rw-r--r--gdb/ChangeLog31
-rw-r--r--gdb/c-lang.c96
-rw-r--r--gdb/f-lang.c69
-rw-r--r--gdb/m2-lang.c42
-rw-r--r--gdb/objc-lang.c28
-rw-r--r--gdb/p-lang.c90
6 files changed, 251 insertions, 105 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8b086d7..922e0bb 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,36 @@
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>
+
* regcache.c (struct regcache): Add ptid_t member.
(regcache_xmalloc): Initialize it.
(regcache_cpy_no_passthrough): Do not refer to current_regcache.
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
};
diff --git a/gdb/f-lang.c b/gdb/f-lang.c
index e6b0d6f..9f6d0ec 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 11716b3..668106d 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 2567ed2..99d9fbb 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 aa5545e..11df309 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
};