aboutsummaryrefslogtreecommitdiff
path: root/gdb/values.c
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2004-07-28 02:46:24 +0000
committerAndrew Cagney <cagney@redhat.com>2004-07-28 02:46:24 +0000
commitf290d38e06f4f311d4fe339e50afa3fd57fc1b4b (patch)
tree3d25891ebde1dcd7d1ea5416a678c25f6b30eb04 /gdb/values.c
parent000177f0ad8107eeacc1fceaec5ca72ad9725099 (diff)
downloadgdb-f290d38e06f4f311d4fe339e50afa3fd57fc1b4b.zip
gdb-f290d38e06f4f311d4fe339e50afa3fd57fc1b4b.tar.gz
gdb-f290d38e06f4f311d4fe339e50afa3fd57fc1b4b.tar.bz2
2004-07-27 Andrew Cagney <cagney@gnu.org>
* defs.h (enum language): Add nr_languages. * language.h (struct language_arch_info): Define. (struct language_defn): Add la_language_arch_info. (language_lookup_primative_type_by_name): Declare. (language_string_char_type): Declare. * language.c (_initialize_language, language_gdbarch_post_init) (struct language_gdbarch, language_gdbarch_data): Implement per-architecture language information. (unknown_language_arch_info, language_string_char_type) (language_lookup_primative_type_by_name): New functions. (unknown_language_defn, auto_language_defn) (local_language_defn): Set la_language_arch_info to unknown_language_arch_info. (unknown_builtin_types): Delete. * gdbtypes.c (lookup_primitive_typename): Use language_lookup_primative_type_by_name. (create_string_type): Use language_string_char_type. * values.c (value_from_string): Use language_string_char_type. * scm-lang.c (scm_language_defn): Add NULL la_language_arch_info. * p-lang.c (pascal_language_defn): Ditto. * m2-lang.c (m2_language_defn): Ditto. * jv-lang.c (java_language_defn): Ditto. * objc-lang.c (objc_language_defn): Ditto. * f-lang.c (f_language_defn): Ditto. * c-lang.c (c_language_defn, cplus_language_defn) (asm_language_defn, minimal_language_defn): Ditto.
Diffstat (limited to 'gdb/values.c')
-rw-r--r--gdb/values.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/gdb/values.c b/gdb/values.c
index a42e53a..eaf3765 100644
--- a/gdb/values.c
+++ b/gdb/values.c
@@ -1170,15 +1170,18 @@ value_from_string (char *ptr)
struct value *val;
int len = strlen (ptr);
int lowbound = current_language->string_lower_bound;
- struct type *rangetype =
- create_range_type ((struct type *) NULL,
- builtin_type_int,
- lowbound, len + lowbound - 1);
- struct type *stringtype =
- create_array_type ((struct type *) NULL,
- *current_language->string_char_type,
- rangetype);
-
+ struct type *string_char_type;
+ struct type *rangetype;
+ struct type *stringtype;
+
+ rangetype = create_range_type ((struct type *) NULL,
+ builtin_type_int,
+ lowbound, len + lowbound - 1);
+ string_char_type = language_string_char_type (current_language,
+ current_gdbarch);
+ stringtype = create_array_type ((struct type *) NULL,
+ string_char_type,
+ rangetype);
val = allocate_value (stringtype);
memcpy (VALUE_CONTENTS_RAW (val), ptr, len);
return val;