summaryrefslogtreecommitdiff
path: root/gdb/p-lang.c
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
commitbff9fc57f774aa77b4adb1976931f32eecccac30 (patch)
tree0a321aa99eb93a9f57e9b93312ced1905ad4d555 /gdb/p-lang.c
parent954e927b912047942c40cfb32168ac48267fb464 (diff)
downloadgdb-bff9fc57f774aa77b4adb1976931f32eecccac30.tar.gz
* 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/p-lang.c')
-rw-r--r--gdb/p-lang.c90
1 files changed, 67 insertions, 23 deletions
diff --git a/gdb/p-lang.c b/gdb/p-lang.c
index aa5545e42e9..11df30967e7 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
};