diff options
author | Andrew Cagney <cagney@redhat.com> | 2004-07-28 02:46:24 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2004-07-28 02:46:24 +0000 |
commit | f290d38e06f4f311d4fe339e50afa3fd57fc1b4b (patch) | |
tree | 3d25891ebde1dcd7d1ea5416a678c25f6b30eb04 /gdb/values.c | |
parent | 000177f0ad8107eeacc1fceaec5ca72ad9725099 (diff) | |
download | gdb-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.c | 21 |
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; |