darling-gdb/gdb/jv-lang.c

1249 lines
36 KiB
C
Raw Normal View History

/* Java language support routines for GDB, the GNU debugger.
Copyright (C) 1997-2013 Free Software Foundation, Inc.
1999-07-07 20:19:36 +00:00
This file is part of GDB.
1999-07-07 20:19:36 +00:00
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
1999-07-07 20:19:36 +00:00
(at your option) any later version.
1999-07-07 20:19:36 +00:00
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
1999-07-07 20:19:36 +00:00
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "defs.h"
#include "symtab.h"
#include "gdbtypes.h"
#include "expression.h"
#include "parser-defs.h"
#include "language.h"
#include "gdbtypes.h"
#include "symtab.h"
#include "symfile.h"
#include "objfiles.h"
#include "gdb_string.h"
#include "value.h"
#include "c-lang.h"
#include "jv-lang.h"
#include "gdbcore.h"
2003-02-19 David Carlton <carlton@math.stanford.edu> * Makefile.in (SFILES): Add block.c. (block_h): New. (COMMON_OBS): Add block.o. (block.o): New. (x86-64-tdep.o): Add $(block_h). (values.o, valops.o, tracepoint.o, symtab.o, symmisc.o, symfile.o) (stack.o, printcmd.o, p-exp.tab.o, parse.o, objfiles.o) (objc-exp.tab.o, objc-lang.o, nlmread.o, mips-tdep.o, mdebugread.o) (m2-exp.tab.o, linespec.o, jv-lang.o, jv-exp.tab.o, infcmd.o) (f-valprint.o, findvar.o, f-exp.tab.o, expprint.o, coffread.o) (c-exp.tab.o, buildsym.o, breakpoint.o, blockframe.o, ax-gdb.o) (alpha-tdep.o, ada-lang.o, ada-exp.tab.o, mi-cmd-stack.o): Ditto. * value.h: Add opaque declaration for struct block. * parser-defs.h, objc-lang.h, buildsym.h, breakpoint.h: Ditto. * ada-lang.h: Ditto. * x86-64-tdep.c: #include "block.h" * values.c, valops.c, tracepoint.c, symtab.c, symmisc.c: Ditto. * symfile.c, stack.c, printcmd.c, p-exp.y, parse.c: Ditto. * objfiles.c, objc-exp.y, objc-lang.c, nlmread.c: Ditto. * mips-tdep.c, mdebugread.c, m2-exp.y, linespec.c: Ditto. * jv-lang.c, jv-exp.y, infcmd.c, f-valprint.c: Ditto. * findvar.c, f-exp.y, expprint.c, coffread.c, c-exp.y: Ditto. * buildsym.c, breakpoint.c, blockframe.c, ax-gdb.c: Ditto. * alpha-tdep.c, ada-lang.c, ada-exp.y: Ditto. * blockframe.c (blockvector_for_pc_sect): Move to "block.c". (blockvector_for_pc, block_for_pc_sect, block_for_pc): Ditto. * symtab.c (block_function): Ditto. (contained_in): Ditto. * frame.h: Move block_for_pc and block_for_pc_sect declarations to block.h. Add opaque declaration for struct block. * symtab.h: Move block_function and contained_in declarations to block.h. Add opaque declarations for struct block, struct blockvector. (struct block): Move to block.h. (struct blockvector): Ditto. (BLOCK_START, BLOCK_END, BLOCK_FUNCTION, BLOCK_SUPERBLOCK) (BLOCK_GCC_COMPILED, BLOCK_HASHTABLE, BLOCK_NSYMS, BLOCK_SYM) (BLOCK_BUCKETS, BLOCK_BUCKET, BLOCK_HASHTABLE_SIZE) (ALL_BLOCK_SYMBOLS, BLOCK_SHOULD_SORT, BLOCKVECTOR_NBLOCKS) (BLOCKVECTOR_BLOCK, GLOBAL_BLOCK, STATIC_BLOCK, FIRST_LOCAL_BLOCK): Ditto. * block.c: New file. * block.h: New file. 2003-02-19 David Carlton <carlton@math.stanford.edu> * mi-cmd-stack.c: #include "block.h"
2003-02-20 00:01:07 +00:00
#include "block.h"
#include "demangle.h"
2003-06-11 David Carlton <carlton@bactrian.org> * dictionary.h: New. * dictionary.c: New. * block.h: Add opaque declaration for struct dictionary. (struct block): Add 'dict' member; delete 'hashtable', 'nsyms', 'sym' members. (BLOCK_DICT): New macro. Delete macros BLOCK_HASHTABLE, BLOCK_NSYMS, BLOCK_SYM, BLOCK_BUCKETS, BLOCK_BUCKET, BLOCK_HASHTABLE_SIZE, BLOCK_SHOULD_SORT. (ALL_BLOCK_SYMBOLS): Update definition. * Makefile.in (SFILES): Add dictionary.c. (dictionary_h): New. (COMMON_OBS): Add dictionary.o. (dictionary.o): New. (ada-lang.o): Depend on dictionary_h. (buildsym.o, coffread.o, jv-lang.o, mdebugread.o, objfiles.o) (stack.o, symmisc.o, symtab.o, tracepoint.o, valops.o) (mi-cmd-stack.o): Ditto. (gdbtk-cmds.o): Update dependencies. (gdbtk-stack.o): Ditto. * ada-lang.c: Include dictionary.h. (symtab_for_sym): Update uses of ALL_BLOCK_SYMBOLS. (fill_in_ada_prototype, debug_print_block): Ditto. (ada_add_block_symbols): Update uses of ALL_BLOCK_SYMBOLS; replace explicit iteration by use of ALL_BLOCK_SYMBOLS. Delete variable 'is_sorted'. * mdebugread.c: Include dictionary.h. (struct parse_stack): Delete 'maxsyms' member. (parse_symbol): Update calls to new_block. Delete calls to shrink_block. Use dictionary methods. (psymtab_to_symtab_1): Delete calls to sort_symtab_syms. Update calls to new_symtab. Don't maintain maxsyms data. (mylookup_symbol): Update use of ALL_BLOCK_SYMBOLS. (add_symbol): Just call dict_add_symbol. (new_symtab): Delete 'maxsyms' argument. (new_symtab): Update calls to new_block. (new_block): Delete 'maxsyms' argument; add 'function' argument. (shrink_block): Delete function. (fixup_sigtramp): Update call to new_block. Add symbol via dict_add_symbol. * jv-lang.c: Include dictionary.h. (get_java_class_symtab): Set the BLOCK_DICT of the blocks appropriately. Set class_symtab->free_func. Make sure the blockvector is big enough to hold two blocks. (add_class_symtab_symbol): Use dictionary methods. (free_class_block): New function. (type_from_class): Replace explicit iteration by ALL_BLOCK_SYMBOLS. * symtab.h (struct symtab): Replace 'free_ptr' method by 'free_func'. * dwarf2read.c (psymtab_to_symtab_1): Delete call to sort_symtab_syms. * dwarfread.c (psymtab_to_symtab_1): Delete call to sort_symtab_syms. * coffread.c (coff_symfile_read): Delete call to sort_symtab_syms. Include dictionary.h. (patch_opaque_types): Update use of ALL_BLOCK_SYMBOLS. * dbxread.c (dbx_psymtab_to_symtab_1): Delete call to sort_symtab_syms. * objfiles.c: Include dictionary.h. (objfile_relocate): Update use of ALL_BLOCK_SYMBOLS. * buildsym.c: Include dictionary.h. (finish_block): Use dictionary methods. (end_symtab): Set free_func to NULL, not free_ptr. * tracepoint.c: Include dictionary.h. (add_local_symbols): Update use of ALL_BLOCK_SYMBOLS. (scope_info): Ditto. * stack.c: Include dictionary.h. (print_block_frame_locals): Update use of ALL_BLOCK_SYMBOLS. (print_block_frame_labels, print_frame_arg_vars) (print_frame_args): Ditto. * symmisc.c (free_symtab_block): Use dictionary methods. (dump_symtab): Ditto. (free_symtab): Replace use of 'free_ptr' by 'free_func'. Include dictionary.h. * symfile.h: Delete declarations of sort_block_syms, sort_symtab_syms. * symfile.c (sort_block_syms): Delete. (sort_symtab_syms): Delete. * symtab.c: Include dictionary.h. (lookup_block_symbol): Use dictionary iterators. (find_pc_sect_symtab): Update use of ALL_BLOCK_SYMBOLS. (search_symbols, make_symbol_completion_list): Ditto. (make_symbol_overload_list): Ditto. * valops.c (value_of_local): Use dict_empty. Include dictionary.h. 2003-06-11 David Carlton <carlton@bactrian.org> * generic/gdbtk-stack.c: Include dictionary.h. (gdb_block_vars): Update use of ALL_BLOCK_SYMBOLS. (gdb_get_blocks, gdb_get_vars_command): Ditto. * generic/gdbtk-cmds.c: Include dictionary.h. (gdb_listfuncs): Update use of ALL_BLOCK_SYMBOLS. 2003-06-11 David Carlton <carlton@bactrian.org> * mi-cmd-stack.c: Include dictionary.h. (list_args_or_locals): Update use of ALL_BLOCK_SYMBOLS.
2003-06-11 23:29:49 +00:00
#include "dictionary.h"
#include <ctype.h>
#include "gdb_assert.h"
#include "charset.h"
#include "valprint.h"
1999-05-25 18:09:09 +00:00
/* Local functions */
2000-05-28 01:12:42 +00:00
extern void _initialize_java_language (void);
1999-05-25 18:09:09 +00:00
* gdbtypes.h (struct main_type): Change type of name,tag_name, and fields.name members from char * to const char *. All uses updated. (struct cplus_struct_type): Change type of fn_fieldlists.name member from char * to const char *. All uses updated. (type_name_no_tag): Update. (lookup_unsigned_typename, lookup_signed_typename): Update. * gdbtypes.c (type_name_no_tag): Change result type from char * to const char *. All callers updated. (lookup_unsigned_typename, lookup_signed_typename): Change type of name parameter from char * to const char *. * symtab.h (struct cplus_specific): Change type of demangled_name member from char * to const char *. All uses updated. (struct general_symbol_info): Change type of name and mangled_lang.demangled_name members from char * to const char *. All uses updated. (symbol_get_demangled_name, symbol_natural_name): Update. (symbol_demangled_name, symbol_search_name): Update. * symtab.c (symbol_get_demangled_name): Change result type from char * to const char *. All callers updated. (symbol_natural_name, symbol_demangled_name): Ditto. (symbol_search_name): Ditto. (completion_list_add_name): Change type of symname,sym_text, text,word parameters from char * to const char *. (completion_list_objc_symbol): Change type of sym_text, text,word parameters from char * to const char *. * ada-lang.c (find_struct_field): Change type of name parameter from char * to const char *. (encoded_ordered_before): Similarly for N0,N1 parameters. (old_renaming_is_invisible): Similarly for function_name parameter. (ada_type_name): Change result type from char * to const char *. All callers updated. * ada-lang.h (ada_type_name): Update. * buildsym.c (hashname): Change type of name parameter from char * to const char *. * buildsym.h (hashname): Update. * dbxread.c (end_psymtab): Change type of include_list parameter from char ** to const char **. * dwarf2read.c (determine_prefix): Change result type from char * to const char *. All callers updated. * f-lang.c (find_common_for_function): Change type of name, funcname parameters from char * to const char *. * f-lang.c (find_common_for_function): Update. * f-valprint.c (list_all_visible_commons): Change type of funcname parameters from char * to const char *. * gdbarch.sh (static_transform_name): Change type of name parameter and result from char * to const char *. * gdbarch.c: Regenerate. * gdbarch.h: Regenerate. * i386-sol2-tdep.c (i386_sol2_static_transform_name): Change type of name parameter from char * to const char *. * jv-lang.c (java_primitive_type_from_name): Ditto. (java_demangled_signature_length): Similarly for signature parameter. (java_demangled_signature_copy): Ditto. (java_demangle_type_signature): Ditto. * jv-lang.h (java_primitive_type_from_name): Update. (java_demangle_type_signature): Update. * objc-lang.c (specialcmp): Change type of a,b parameters from char * to const char *. * p-lang.c (is_pascal_string_type): Change type of arrayname parameter from char * to const char *. All callers updated. * p-lang.h (is_pascal_string_type): Update. * solib-frv.c (find_canonical_descriptor_in_load_object): Change type of name parameter from char * to const char *. * sparc-sol2-tdep.c (sparc_sol2_static_transform_name): Ditto. * utils.c (fprintf_symbol_filtered): Ditto. * defs.h (fprintf_symbol_filtered): Update. * sparc-tdep.h (sparc_sol2_static_transform_name): Update. * stabsread.h (end_psymtab): Update. * stack.c (find_frame_funname): Change type of funname parameter from char ** to const char **. * stack.h (find_frame_funname): Update. * typeprint.c (type_print): Change type of varstring parameter from char * to const char *. * value.h (type_print): Update. * xcoffread.c (xcoff_start_psymtab): Change type of filename parameter from char * to const char *. All callers updated. (xcoff_end_psymtab): Change type of include_list parameter from char ** to const char **. All callers updated. (swap_sym): Similarly for name parameter. All callers updated. * coffread.c (patch_type): Add (char*) cast to xfree parameter. Use xstrdup. (process_coff_symbol): Use xstrdup. * stabsread.c (stabs_method_name_from_physname): Renamed from update_method_name_from_physname. Change result type from void to char *. All callers updated. (read_member_functions): In has_destructor case, store name in objfile obstack instead of malloc space. In !has_stub case, fix mem leak.
2012-02-07 04:48:23 +00:00
static int java_demangled_signature_length (const char *);
static void java_demangled_signature_copy (char *, const char *);
static struct symtab *get_java_class_symtab (struct gdbarch *gdbarch);
2001-10-21 01:57:42 +00:00
static char *get_java_utf8_name (struct obstack *obstack, struct value *name);
static int java_class_is_primitive (struct value *clas);
static struct value *java_value_string (char *ptr, int len);
1999-05-25 18:09:09 +00:00
gdb: 2009-03-19 Tom Tromey <tromey@redhat.com> Julian Brown <julian@codesourcery.com> PR i18n/7220, PR i18n/7821, PR exp/8815, PR exp/9103, PR i18n/9401, PR exp/9613: * NEWS: Update * value.h (value_typed_string): Declare. (val_print_string): Update. * valprint.h (print_char_chars): Update. * valprint.c (print_char_chars): Add type argument. Update. (val_print_string): Likewise. * valops.c (value_typed_string): New function. * utils.c (host_char_to_target): New function. (parse_escape): Use host_char_to_target, host_hex_value. Update. Remove '^' case. (no_control_char_error): Remove. * typeprint.c (print_type_scalar): Update. * scm-valprint.c (scm_scmval_print): Update. * scm-lang.h (scm_printchar, scm_printstr): Update. * scm-lang.c (scm_printchar): Add type argument. (scm_printstr): Likewise. * printcmd.c (print_formatted): Update. (print_scalar_formatted): Update. (printf_command) <wide_string_arg, wide_char_arg>: New constants. Handle '%lc' and '%ls'. * parser-defs.h (struct typed_stoken): New type. (struct stoken_vector): Likewise. (write_exp_string_vector): Declare. * parse.c (write_exp_string_vector): New function. * p-valprint.c (pascal_val_print): Update. * p-lang.h (is_pascal_string_type, pascal_printchar, pascal_printstr): Update. * p-lang.c (is_pascal_string_type): Remove 'char_size' argument. Add 'char_type' argument. (pascal_emit_char): Add type argument. (pascal_printchar): Likewise. (pascal_printstr): Likewise. * objc-lang.c (objc_emit_char): Add type argument. (objc_printchar): Likewise. (objc_printstr): Likewise. * macroexp.c (get_character_constant): Handle unicode characters. Use c_parse_escape. (get_string_literal): Handle unicode strings. Use c_parse_escape. * m2-valprint.c (print_unpacked_pointer): Update. (m2_print_array_contents): Update. (m2_val_print): Update. * m2-lang.c (m2_emit_char): Add type argument. (m2_printchar): Likewise. (m2_printstr): Likewise. * language.h (struct language_defn) <la_printchar>: Add type argument. <la_printstr, la_emitchar>: Likewise. (LA_PRINT_CHAR): Likewise. (LA_PRINT_STRING): Likewise. (LA_EMIT_CHAR): Likewise. * language.c (unk_lang_emit_char): Add type argument. (unk_lang_printchar): Likewise. (unk_lang_printstr): Likewise. * jv-valprint.c (java_val_print): Update. * jv-lang.c (java_emit_char): Add type argument. * f-valprint.c (f_val_print): Update. * f-lang.c (f_emit_char): Add type argument. (f_printchar): Likewise. (f_printstr): Likewise. * expprint.c (print_subexp_standard): Update. * charset.h (target_wide_charset): Declare. (c_target_char_has_backslash_escape, c_parse_backslash, host_char_print_literally, host_char_to_target, target_char_to_host, target_char_to_control_char): Remove. (enum transliterations): New type. (convert_between_encodings): Declare. (HOST_ESCAPE_CHAR): New define. (host_letter_to_control_character, host_hex_value): Declare. (enum wchar_iterate_result): New enum. (struct wchar_iterator): Declare. (make_wchar_iterator, make_cleanup_wchar_iterator, wchar_iterator, wchar_push_back): Declare. * charset-list.h: New file. * c-valprint.c (textual_name): New function. (textual_element_type): Handle wide character types. (c_val_print): Pass original type to textual_element_type. Handle wide character types. (c_value_print): Use textual_element_type. Pass original type of value to val_print. * c-lang.h (enum c_string_type): New type. (c_printchar, c_printstr): Update. * c-lang.c (classify_type): New function. (print_wchar): Likewise. (c_emit_char): Add type argument. Handle wide characters. (c_printchar): Likewise. (c_printstr): Add type argument. Handle wide and multibyte character sets. (convert_ucn): New function. (emit_numeric_character): Likewise. (convert_octal): Likewise. (convert_hex): Likewise. (ADVANCE): New macro. (convert_escape): New function. (parse_one_string): Likewise. (evaluate_subexp_c): Likewise. (exp_descriptor_c): New global. (c_language_defn): Use exp_descriptor_c. (cplus_language_defn): Likewise. (asm_language_defn): Likewise. (minimal_language_defn): Likewise. (charset_for_string_type): New function. * c-exp.y (%union): Add 'svec' and 'tsval'. (CHAR): New token. (exp): Add CHAR production. (string_exp): Rewrite. (exp) <string_exp>: Rewrite. (tempbuf): Now global. (tempbuf_init): New global. (parse_string_or_char): New function. (yylex) <tempbuf>: Now global. <tokptr, tempbufindex, tempbufsize, token_string, class_prefix>: Remove. Handle 'u', 'U', and 'L' prefixes. Call parse_string_or_char. (c_parse_escape): New function. * auxv.c (fprint_target_auxv): Update. * ada-valprint.c (ada_emit_char): Add type argument. (ada_printchar): Likewise. (ada_print_scalar): Update. (printstr): Add type argument. Update calls to ada_emit_char. (ada_printstr): Add type argument. (ada_val_print_array): Update. (ada_val_print_1): Likewise. * ada-lang.c (emit_char): Add type argument. * ada-lang.h (ada_emit_char, ada_printchar, ada_printstr): Add type arguments. * gdb_locale.h: Include langinfo.h. * charset.c (_initialize_charset): Set default host charset from the locale. Don't register charsets. Add target-wide-charset commands. Call find_charset_names. (struct charset, struct translation): Remove. (GDB_DEFAULT_HOST_CHARSET): Remove. (GDB_DEFAULT_TARGET_WIDE_CHARSET): New define. (target_wide_charset_name): New global. (show_host_charset_name): Handle "auto". (show_target_wide_charset_name): New function. (host_charset_enum, target_charset_enum): Remove. (charset_enum): New global. (all_charsets, register_charset, lookup_charset, all_translations, register_translation, lookup_translation): Remove. (simple_charset, ascii_print_literally, ascii_to_control): Remove. (iso_8859_print_literally, iso_8859_to_control, iso_8859_family_charset): Remove. (ebcdic_print_literally, ebcdic_to_control, ebcdic_family_charset): Remove. (struct cached_iconv, check_iconv_cache, cached_iconv_convert, register_iconv_charsets): Remove. (target_wide_charset_be_name, target_wide_charset_le_name): New globals. (identity_either_char_to_other): Remove. (set_be_le_names, validate): New functions. (backslashable, backslashed, represented): Remove. (default_c_target_char_has_backslash_escape): Remove. (default_c_parse_backslash, iconv_convert): Remove. (ascii_to_iso_8859_1_table, ascii_to_ebcdic_us_table, ascii_to_ibm1047_table, iso_8859_1_to_ascii_table, iso_8859_1_to_ebcdic_us_table, iso_8859_1_to_ibm1047_table, ebcdic_us_to_ascii_table, ebcdic_us_to_iso_8859_1_table, ebcdic_us_to_ibm1047_table, ibm1047_to_ascii_table, ibm1047_to_iso_8859_1_table, ibm1047_to_ebcdic_us_table): Remove. (table_convert_char, table_translation, simple_table_translation): Remove. (current_host_charset, current_target_charset, c_target_char_has_backslash_escape_func, c_target_char_has_backslash_escape_baton): Remove. (c_parse_backslash_func, c_parse_backslash_baton): Remove. (host_char_to_target_func, host_char_to_target_baton): Remove. (target_char_to_host_func, target_char_to_host_baton): Remove. (cached_iconv_host_to_target, cached_iconv_target_to_host): Remove. (lookup_charset_or_error, check_valid_host_charset): Remove. (set_host_and_target_charsets): Remove. (set_host_charset, set_target_charset): Remove. (set_host_charset_sfunc, set_target_charset_sfunc): Rewrite. (set_target_wide_charset_sfunc): New function. (show_charset): Print target wide character set. (host_charset, target_charset): Rewrite. (target_wide_charset): New function. (c_target_char_has_backslash_escape): Remove. (c_parse_backslash): Remove. (host_letter_to_control_character): New function. (host_char_print_literally): Remove. (host_hex_value): New function. (target_char_to_control_char): Remove. (cleanup_iconv): New function. (convert_between_encodings): New function. (target_char_to_host): Remove. (struct wchar_iterator): Define. (make_wchar_iterator, make_cleanup_wchar_iterator, wchar_iterator, wchar_push_back): New functions. (do_cleanup_iterator): New function. (char_ptr): New typedef. (charsets): New global. (add_one, find_charset_names): New functions. (default_charset_names): New global. (auto_host_charset_name): Likewise. * aclocal.m4, config.in, configure: Rebuild. * configure.ac: Call AM_LANGINFO_CODESET. (GDB_DEFAULT_HOST_CHARSET): Default to UTF-8. (AM_ICONV): Invoke earlier. * acinclude.m4: Include codeset.m4. Subst LIBICONV_INCLUDE and LIBICONV_LIBDIR. Check for libiconv in build tree. * Makefile.in (LIBICONV_LIBDIR, LIBICONV_INCLUDE): New macros. (INTERNAL_CFLAGS_BASE): Add LIBICONV_INCLUDE. (INTERNAL_LDFLAGS): Add LIBICONV_LIBDIR. * gdb_obstack.h (obstack_grow_wstr): New define. * gdb_wchar.h: New file. * defs.h: Include it. gdb/testsuite: * gdb.base/store.exp: Update for change to escape output. * gdb.base/callfuncs.exp (fetch_all_registers): Update for change to escape output. * gdb.base/pointers.exp: Update for change to escape output. * gdb.base/long_long.exp (gdb_test_long_long): Update for change to escape output. * gdb.base/constvars.exp (do_constvar_tests): Update for change to escape output. * gdb.base/call-rt-st.exp (print_struct_call): Update for change to escape output. * gdb.cp/ref-types.exp (gdb_start_again): Update for change to escape output. * gdb.base/setvar.exp: Update for change to escape output. * lib/gdb.exp (default_gdb_start): Set LC_CTYPE to C. * gdb.base/printcmds.exp (test_print_all_chars): Update for change to escape output. (test_print_string_constants): Likewise. * gdb.base/charset.exp (valid_host_charset): Check size of wchar_t. Handle UCS-2 and UCS-4. Add tests for wide and unicode cases. Handle "auto"-related output. * gdb.base/charset.c (char16_t, char32_t): New typedefs. (uvar, Uvar): New globals. gdb/doc: * gdb.texinfo (Character Sets): Remove obsolete text. Document set target-wide-charset. (Requirements): Mention iconv.
2009-03-20 23:04:40 +00:00
static void java_emit_char (int c, struct type *type,
struct ui_file * stream, int quoter);
static char *java_class_name_from_physname (const char *physname);
static const struct objfile_data *jv_dynamics_objfile_data_key;
/* The dynamic objfile is kept per-program-space. This key lets us
associate the objfile with the program space. */
static const struct program_space_data *jv_dynamics_progspace_key;
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
static struct type *java_link_class_type (struct gdbarch *,
struct type *, struct value *);
/* An instance of this structure is used to store some data that must
be freed. */
struct jv_per_objfile_data
{
/* The expandable dictionary we use. */
struct dictionary *dict;
};
/* A function called when the dynamics_objfile is freed. We use this
to clean up some internal state. */
static void
jv_per_objfile_free (struct objfile *objfile, void *data)
{
struct jv_per_objfile_data *jv_data = data;
struct objfile *dynamics_objfile;
dynamics_objfile = program_space_data (current_program_space,
jv_dynamics_progspace_key);
gdb_assert (objfile == dynamics_objfile);
if (jv_data->dict)
dict_free (jv_data->dict);
xfree (jv_data);
set_program_space_data (current_program_space,
jv_dynamics_progspace_key,
NULL);
}
/* FIXME: carlton/2003-02-04: This is the main or only caller of
allocate_objfile with first argument NULL; as a result, this code
breaks every so often. Somebody should write a test case that
exercises GDB in various ways (e.g. something involving loading a
dynamic library) after this code has been called. */
static struct objfile *
get_dynamics_objfile (struct gdbarch *gdbarch)
{
struct objfile *dynamics_objfile;
dynamics_objfile = program_space_data (current_program_space,
jv_dynamics_progspace_key);
if (dynamics_objfile == NULL)
{
struct jv_per_objfile_data *data;
/* Mark it as shared so that it is cleared when the inferior is
re-run. */
dynamics_objfile = allocate_objfile (NULL, OBJF_SHARED);
dynamics_objfile->gdbarch = gdbarch;
data = XCNEW (struct jv_per_objfile_data);
set_objfile_data (dynamics_objfile, jv_dynamics_objfile_data_key, data);
set_program_space_data (current_program_space,
jv_dynamics_progspace_key,
dynamics_objfile);
}
return dynamics_objfile;
}
1999-05-25 18:09:09 +00:00
static struct symtab *
get_java_class_symtab (struct gdbarch *gdbarch)
{
struct objfile *objfile = get_dynamics_objfile (gdbarch);
struct symtab *class_symtab = objfile->symtabs;
if (class_symtab == NULL)
{
struct blockvector *bv;
struct block *bl;
struct jv_per_objfile_data *jv_data;
class_symtab = allocate_symtab ("<java-classes>", objfile);
class_symtab->language = language_java;
bv = (struct blockvector *)
2004-02-07 Elena Zannoni <ezannoni@redhat.com> * buildsym.c (free_pending_blocks, finish_block) (record_pending_block, make_blockvector, end_symtab): Replace symbol_obstack with objfile_obstack. * coffread.c (process_coff_symbol, coff_read_struct_type) (coff_read_enum_type): Ditto. * cp-namespace.c (initialize_namespace_symtab) (check_one_possible_namespace_symbol): Ditto. * dwarf2read.c (new_symbol, dwarf2_const_value, macro_start_file) (dwarf2_symbol_mark_computed): Ditto. * dwarfread.c (enum_type, new_symbol, synthesize_typedef): Ditto. * elfread.c (elf_symtab_read): Ditto. * hpread.c (hpread_symfile_init, hpread_symfile_init) (hpread_read_enum_type, hpread_read_function_type) (hpread_read_doc_function_type, hpread_process_one_debug_symbol): Ditto. * jv-lang.c (get_java_class_symtab, add_class_symbol) (java_link_class_type): Ditto. * mdebugread.c (parse_symbol, psymtab_to_symtab_1, new_symtab) (new_symbol): Ditto. * minsyms.c (install_minimal_symbols): Ditto. * objfiles.c (allocate_objfile): Remove init of symbol_obstack. (terminate_minimal_symbol_table): Replace symbol_obstack with objfile_obstack. (free_objfile): Remove freeing of symbol_obstack. * objfiles.h: Remove symbol_obstack field. * pa64solib.c (add_to_solist): Replace symbol_obstack with objfile_obstack. * solib-sunos.c (allocate_rt_common_objfile): Remove init of symbol_obstack. (solib_add_common_symbols): Replace symbol_obstack with objfile_obstack. * somsolib.c (som_solib_add): Ditto. * stabsread.c (patch_block_stabs, define_symbol, read_enum_type) (common_block_start, common_block_end): Ditto. * symfile.c (reread_symbols): Remove freeing and init of symbol_obstack. (allocate_symtab): Rename symbol_obstack to objfile_obstack. * symfile.h: Update comment. * symmisc.c (print_objfile_statistics): Remove symbol_obstack stats printing. * symtab.c (symbol_set_names): Replace symbol_obstack with objfile_obstack. * symtab.h (struct general_symbol_info, struct minimal_symbol): Update comments. * xcoffread.c (read_xcoff_symtab, SYMBOL_DUP, SYMNAME_ALLOC) (init_stringtab, xcoff_initial_scan): Replace symbol_obstack with objfile_obstack.
2004-02-07 23:13:47 +00:00
obstack_alloc (&objfile->objfile_obstack,
2003-06-11 David Carlton <carlton@bactrian.org> * dictionary.h: New. * dictionary.c: New. * block.h: Add opaque declaration for struct dictionary. (struct block): Add 'dict' member; delete 'hashtable', 'nsyms', 'sym' members. (BLOCK_DICT): New macro. Delete macros BLOCK_HASHTABLE, BLOCK_NSYMS, BLOCK_SYM, BLOCK_BUCKETS, BLOCK_BUCKET, BLOCK_HASHTABLE_SIZE, BLOCK_SHOULD_SORT. (ALL_BLOCK_SYMBOLS): Update definition. * Makefile.in (SFILES): Add dictionary.c. (dictionary_h): New. (COMMON_OBS): Add dictionary.o. (dictionary.o): New. (ada-lang.o): Depend on dictionary_h. (buildsym.o, coffread.o, jv-lang.o, mdebugread.o, objfiles.o) (stack.o, symmisc.o, symtab.o, tracepoint.o, valops.o) (mi-cmd-stack.o): Ditto. (gdbtk-cmds.o): Update dependencies. (gdbtk-stack.o): Ditto. * ada-lang.c: Include dictionary.h. (symtab_for_sym): Update uses of ALL_BLOCK_SYMBOLS. (fill_in_ada_prototype, debug_print_block): Ditto. (ada_add_block_symbols): Update uses of ALL_BLOCK_SYMBOLS; replace explicit iteration by use of ALL_BLOCK_SYMBOLS. Delete variable 'is_sorted'. * mdebugread.c: Include dictionary.h. (struct parse_stack): Delete 'maxsyms' member. (parse_symbol): Update calls to new_block. Delete calls to shrink_block. Use dictionary methods. (psymtab_to_symtab_1): Delete calls to sort_symtab_syms. Update calls to new_symtab. Don't maintain maxsyms data. (mylookup_symbol): Update use of ALL_BLOCK_SYMBOLS. (add_symbol): Just call dict_add_symbol. (new_symtab): Delete 'maxsyms' argument. (new_symtab): Update calls to new_block. (new_block): Delete 'maxsyms' argument; add 'function' argument. (shrink_block): Delete function. (fixup_sigtramp): Update call to new_block. Add symbol via dict_add_symbol. * jv-lang.c: Include dictionary.h. (get_java_class_symtab): Set the BLOCK_DICT of the blocks appropriately. Set class_symtab->free_func. Make sure the blockvector is big enough to hold two blocks. (add_class_symtab_symbol): Use dictionary methods. (free_class_block): New function. (type_from_class): Replace explicit iteration by ALL_BLOCK_SYMBOLS. * symtab.h (struct symtab): Replace 'free_ptr' method by 'free_func'. * dwarf2read.c (psymtab_to_symtab_1): Delete call to sort_symtab_syms. * dwarfread.c (psymtab_to_symtab_1): Delete call to sort_symtab_syms. * coffread.c (coff_symfile_read): Delete call to sort_symtab_syms. Include dictionary.h. (patch_opaque_types): Update use of ALL_BLOCK_SYMBOLS. * dbxread.c (dbx_psymtab_to_symtab_1): Delete call to sort_symtab_syms. * objfiles.c: Include dictionary.h. (objfile_relocate): Update use of ALL_BLOCK_SYMBOLS. * buildsym.c: Include dictionary.h. (finish_block): Use dictionary methods. (end_symtab): Set free_func to NULL, not free_ptr. * tracepoint.c: Include dictionary.h. (add_local_symbols): Update use of ALL_BLOCK_SYMBOLS. (scope_info): Ditto. * stack.c: Include dictionary.h. (print_block_frame_locals): Update use of ALL_BLOCK_SYMBOLS. (print_block_frame_labels, print_frame_arg_vars) (print_frame_args): Ditto. * symmisc.c (free_symtab_block): Use dictionary methods. (dump_symtab): Ditto. (free_symtab): Replace use of 'free_ptr' by 'free_func'. Include dictionary.h. * symfile.h: Delete declarations of sort_block_syms, sort_symtab_syms. * symfile.c (sort_block_syms): Delete. (sort_symtab_syms): Delete. * symtab.c: Include dictionary.h. (lookup_block_symbol): Use dictionary iterators. (find_pc_sect_symtab): Update use of ALL_BLOCK_SYMBOLS. (search_symbols, make_symbol_completion_list): Ditto. (make_symbol_overload_list): Ditto. * valops.c (value_of_local): Use dict_empty. Include dictionary.h. 2003-06-11 David Carlton <carlton@bactrian.org> * generic/gdbtk-stack.c: Include dictionary.h. (gdb_block_vars): Update use of ALL_BLOCK_SYMBOLS. (gdb_get_blocks, gdb_get_vars_command): Ditto. * generic/gdbtk-cmds.c: Include dictionary.h. (gdb_listfuncs): Update use of ALL_BLOCK_SYMBOLS. 2003-06-11 David Carlton <carlton@bactrian.org> * mi-cmd-stack.c: Include dictionary.h. (list_args_or_locals): Update use of ALL_BLOCK_SYMBOLS.
2003-06-11 23:29:49 +00:00
sizeof (struct blockvector) + sizeof (struct block *));
BLOCKVECTOR_NBLOCKS (bv) = 1;
BLOCKVECTOR (class_symtab) = bv;
/* Allocate dummy STATIC_BLOCK. */
2004-02-07 Elena Zannoni <ezannoni@redhat.com> * buildsym.c (free_pending_blocks, finish_block) (record_pending_block, make_blockvector, end_symtab): Replace symbol_obstack with objfile_obstack. * coffread.c (process_coff_symbol, coff_read_struct_type) (coff_read_enum_type): Ditto. * cp-namespace.c (initialize_namespace_symtab) (check_one_possible_namespace_symbol): Ditto. * dwarf2read.c (new_symbol, dwarf2_const_value, macro_start_file) (dwarf2_symbol_mark_computed): Ditto. * dwarfread.c (enum_type, new_symbol, synthesize_typedef): Ditto. * elfread.c (elf_symtab_read): Ditto. * hpread.c (hpread_symfile_init, hpread_symfile_init) (hpread_read_enum_type, hpread_read_function_type) (hpread_read_doc_function_type, hpread_process_one_debug_symbol): Ditto. * jv-lang.c (get_java_class_symtab, add_class_symbol) (java_link_class_type): Ditto. * mdebugread.c (parse_symbol, psymtab_to_symtab_1, new_symtab) (new_symbol): Ditto. * minsyms.c (install_minimal_symbols): Ditto. * objfiles.c (allocate_objfile): Remove init of symbol_obstack. (terminate_minimal_symbol_table): Replace symbol_obstack with objfile_obstack. (free_objfile): Remove freeing of symbol_obstack. * objfiles.h: Remove symbol_obstack field. * pa64solib.c (add_to_solist): Replace symbol_obstack with objfile_obstack. * solib-sunos.c (allocate_rt_common_objfile): Remove init of symbol_obstack. (solib_add_common_symbols): Replace symbol_obstack with objfile_obstack. * somsolib.c (som_solib_add): Ditto. * stabsread.c (patch_block_stabs, define_symbol, read_enum_type) (common_block_start, common_block_end): Ditto. * symfile.c (reread_symbols): Remove freeing and init of symbol_obstack. (allocate_symtab): Rename symbol_obstack to objfile_obstack. * symfile.h: Update comment. * symmisc.c (print_objfile_statistics): Remove symbol_obstack stats printing. * symtab.c (symbol_set_names): Replace symbol_obstack with objfile_obstack. * symtab.h (struct general_symbol_info, struct minimal_symbol): Update comments. * xcoffread.c (read_xcoff_symtab, SYMBOL_DUP, SYMNAME_ALLOC) (init_stringtab, xcoff_initial_scan): Replace symbol_obstack with objfile_obstack.
2004-02-07 23:13:47 +00:00
bl = allocate_block (&objfile->objfile_obstack);
BLOCK_DICT (bl) = dict_create_linear (&objfile->objfile_obstack,
2003-06-11 David Carlton <carlton@bactrian.org> * dictionary.h: New. * dictionary.c: New. * block.h: Add opaque declaration for struct dictionary. (struct block): Add 'dict' member; delete 'hashtable', 'nsyms', 'sym' members. (BLOCK_DICT): New macro. Delete macros BLOCK_HASHTABLE, BLOCK_NSYMS, BLOCK_SYM, BLOCK_BUCKETS, BLOCK_BUCKET, BLOCK_HASHTABLE_SIZE, BLOCK_SHOULD_SORT. (ALL_BLOCK_SYMBOLS): Update definition. * Makefile.in (SFILES): Add dictionary.c. (dictionary_h): New. (COMMON_OBS): Add dictionary.o. (dictionary.o): New. (ada-lang.o): Depend on dictionary_h. (buildsym.o, coffread.o, jv-lang.o, mdebugread.o, objfiles.o) (stack.o, symmisc.o, symtab.o, tracepoint.o, valops.o) (mi-cmd-stack.o): Ditto. (gdbtk-cmds.o): Update dependencies. (gdbtk-stack.o): Ditto. * ada-lang.c: Include dictionary.h. (symtab_for_sym): Update uses of ALL_BLOCK_SYMBOLS. (fill_in_ada_prototype, debug_print_block): Ditto. (ada_add_block_symbols): Update uses of ALL_BLOCK_SYMBOLS; replace explicit iteration by use of ALL_BLOCK_SYMBOLS. Delete variable 'is_sorted'. * mdebugread.c: Include dictionary.h. (struct parse_stack): Delete 'maxsyms' member. (parse_symbol): Update calls to new_block. Delete calls to shrink_block. Use dictionary methods. (psymtab_to_symtab_1): Delete calls to sort_symtab_syms. Update calls to new_symtab. Don't maintain maxsyms data. (mylookup_symbol): Update use of ALL_BLOCK_SYMBOLS. (add_symbol): Just call dict_add_symbol. (new_symtab): Delete 'maxsyms' argument. (new_symtab): Update calls to new_block. (new_block): Delete 'maxsyms' argument; add 'function' argument. (shrink_block): Delete function. (fixup_sigtramp): Update call to new_block. Add symbol via dict_add_symbol. * jv-lang.c: Include dictionary.h. (get_java_class_symtab): Set the BLOCK_DICT of the blocks appropriately. Set class_symtab->free_func. Make sure the blockvector is big enough to hold two blocks. (add_class_symtab_symbol): Use dictionary methods. (free_class_block): New function. (type_from_class): Replace explicit iteration by ALL_BLOCK_SYMBOLS. * symtab.h (struct symtab): Replace 'free_ptr' method by 'free_func'. * dwarf2read.c (psymtab_to_symtab_1): Delete call to sort_symtab_syms. * dwarfread.c (psymtab_to_symtab_1): Delete call to sort_symtab_syms. * coffread.c (coff_symfile_read): Delete call to sort_symtab_syms. Include dictionary.h. (patch_opaque_types): Update use of ALL_BLOCK_SYMBOLS. * dbxread.c (dbx_psymtab_to_symtab_1): Delete call to sort_symtab_syms. * objfiles.c: Include dictionary.h. (objfile_relocate): Update use of ALL_BLOCK_SYMBOLS. * buildsym.c: Include dictionary.h. (finish_block): Use dictionary methods. (end_symtab): Set free_func to NULL, not free_ptr. * tracepoint.c: Include dictionary.h. (add_local_symbols): Update use of ALL_BLOCK_SYMBOLS. (scope_info): Ditto. * stack.c: Include dictionary.h. (print_block_frame_locals): Update use of ALL_BLOCK_SYMBOLS. (print_block_frame_labels, print_frame_arg_vars) (print_frame_args): Ditto. * symmisc.c (free_symtab_block): Use dictionary methods. (dump_symtab): Ditto. (free_symtab): Replace use of 'free_ptr' by 'free_func'. Include dictionary.h. * symfile.h: Delete declarations of sort_block_syms, sort_symtab_syms. * symfile.c (sort_block_syms): Delete. (sort_symtab_syms): Delete. * symtab.c: Include dictionary.h. (lookup_block_symbol): Use dictionary iterators. (find_pc_sect_symtab): Update use of ALL_BLOCK_SYMBOLS. (search_symbols, make_symbol_completion_list): Ditto. (make_symbol_overload_list): Ditto. * valops.c (value_of_local): Use dict_empty. Include dictionary.h. 2003-06-11 David Carlton <carlton@bactrian.org> * generic/gdbtk-stack.c: Include dictionary.h. (gdb_block_vars): Update use of ALL_BLOCK_SYMBOLS. (gdb_get_blocks, gdb_get_vars_command): Ditto. * generic/gdbtk-cmds.c: Include dictionary.h. (gdb_listfuncs): Update use of ALL_BLOCK_SYMBOLS. 2003-06-11 David Carlton <carlton@bactrian.org> * mi-cmd-stack.c: Include dictionary.h. (list_args_or_locals): Update use of ALL_BLOCK_SYMBOLS.
2003-06-11 23:29:49 +00:00
NULL);
BLOCKVECTOR_BLOCK (bv, STATIC_BLOCK) = bl;
2003-09-11 David Carlton <carlton@kealia.com> * gdbtypes.h: Add TYPE_CODE_NAMESPACE. * gdbtypes.c (init_type): Handle TYPE_CODE_NAMESPACE. (recursive_dump_type): Ditto. * printcmd.c (print_formatted): Ditto. * typeprint.c (print_type_scalar): Ditto. * c-typeprint.c (c_type_print_varspec_prefix): Ditto. (c_type_print_varspec_suffix, c_type_print_base): Ditto. * cp-support.h: Declare cp_check_possible_namespace_symbols, maint_cplus_cmd_list. * cp-support.c: Make maint_cplus_cmd_list extern. * cp-namespace.c: Include objfiles.h, gdbtypes.h, dictionary.h, command.h. (lookup_symbol_file): Look in possible namespace blocks when appropriate. (initialize_namespace_symtab): New. (get_possible_namespace_block, free_namespace_block) (check_possible_namespace_symbols) (check_possible_namespace_symbols_loop) (check_one_possible_namespace_symbol) (lookup_possible_namespace_symbol, maintenance_cplus_namespace) (_initialize_cp_namespace): Ditto. * block.h: Declare allocate_block. * block.c (allocate_block): New. * jv-lang.c (get_java_class_symtab): Allocate blocks via allocate_block. * symfile.h: Update declaration of add_psymbol_to_list. * symfile.c (add_psymbol_to_list): Return the partial symbol in question. * dwarf2read.c (dwarf2_build_psymtabs_hard): Add argument to scan_partial_symbols_call. (scan_partial_symbols): Add NAMESPACE argument; update calls to helper functions. (add_partial_symbol): If necessary, scan mangled names for names of namespaces. (add_partial_namespace): Add NAMESPACE argument; generate partial symbols associated to namespaces. (add_partial_enumeration): Add NAMESPACE argument. (new_symbol): Allow namespace syms. (read_namespace): Generate namespace syms. * objfiles.h: Add opaque declaration of struct symtab. (struct objfile): Add cp_namespace_symtab member. * objfiles.c (allocate_objfile): Set objfile->cp_namespace_symtab. * Makefile.in (cp-namespace.o): Depend on objfiles_h, gdbtypes_h, dictionary_h, command_h. 2003-09-11 David Carlton <carlton@kealia.com> * gdb.c++/namespace.exp: Add tests for namespace types. * gdb.c++/maint.exp (test_help): Test 'help maint cp namespace'. (test_namespace): New.
2003-09-11 19:49:20 +00:00
/* Allocate GLOBAL_BLOCK. */
bl = allocate_global_block (&objfile->objfile_obstack);
2003-06-11 David Carlton <carlton@bactrian.org> * dictionary.h: New. * dictionary.c: New. * block.h: Add opaque declaration for struct dictionary. (struct block): Add 'dict' member; delete 'hashtable', 'nsyms', 'sym' members. (BLOCK_DICT): New macro. Delete macros BLOCK_HASHTABLE, BLOCK_NSYMS, BLOCK_SYM, BLOCK_BUCKETS, BLOCK_BUCKET, BLOCK_HASHTABLE_SIZE, BLOCK_SHOULD_SORT. (ALL_BLOCK_SYMBOLS): Update definition. * Makefile.in (SFILES): Add dictionary.c. (dictionary_h): New. (COMMON_OBS): Add dictionary.o. (dictionary.o): New. (ada-lang.o): Depend on dictionary_h. (buildsym.o, coffread.o, jv-lang.o, mdebugread.o, objfiles.o) (stack.o, symmisc.o, symtab.o, tracepoint.o, valops.o) (mi-cmd-stack.o): Ditto. (gdbtk-cmds.o): Update dependencies. (gdbtk-stack.o): Ditto. * ada-lang.c: Include dictionary.h. (symtab_for_sym): Update uses of ALL_BLOCK_SYMBOLS. (fill_in_ada_prototype, debug_print_block): Ditto. (ada_add_block_symbols): Update uses of ALL_BLOCK_SYMBOLS; replace explicit iteration by use of ALL_BLOCK_SYMBOLS. Delete variable 'is_sorted'. * mdebugread.c: Include dictionary.h. (struct parse_stack): Delete 'maxsyms' member. (parse_symbol): Update calls to new_block. Delete calls to shrink_block. Use dictionary methods. (psymtab_to_symtab_1): Delete calls to sort_symtab_syms. Update calls to new_symtab. Don't maintain maxsyms data. (mylookup_symbol): Update use of ALL_BLOCK_SYMBOLS. (add_symbol): Just call dict_add_symbol. (new_symtab): Delete 'maxsyms' argument. (new_symtab): Update calls to new_block. (new_block): Delete 'maxsyms' argument; add 'function' argument. (shrink_block): Delete function. (fixup_sigtramp): Update call to new_block. Add symbol via dict_add_symbol. * jv-lang.c: Include dictionary.h. (get_java_class_symtab): Set the BLOCK_DICT of the blocks appropriately. Set class_symtab->free_func. Make sure the blockvector is big enough to hold two blocks. (add_class_symtab_symbol): Use dictionary methods. (free_class_block): New function. (type_from_class): Replace explicit iteration by ALL_BLOCK_SYMBOLS. * symtab.h (struct symtab): Replace 'free_ptr' method by 'free_func'. * dwarf2read.c (psymtab_to_symtab_1): Delete call to sort_symtab_syms. * dwarfread.c (psymtab_to_symtab_1): Delete call to sort_symtab_syms. * coffread.c (coff_symfile_read): Delete call to sort_symtab_syms. Include dictionary.h. (patch_opaque_types): Update use of ALL_BLOCK_SYMBOLS. * dbxread.c (dbx_psymtab_to_symtab_1): Delete call to sort_symtab_syms. * objfiles.c: Include dictionary.h. (objfile_relocate): Update use of ALL_BLOCK_SYMBOLS. * buildsym.c: Include dictionary.h. (finish_block): Use dictionary methods. (end_symtab): Set free_func to NULL, not free_ptr. * tracepoint.c: Include dictionary.h. (add_local_symbols): Update use of ALL_BLOCK_SYMBOLS. (scope_info): Ditto. * stack.c: Include dictionary.h. (print_block_frame_locals): Update use of ALL_BLOCK_SYMBOLS. (print_block_frame_labels, print_frame_arg_vars) (print_frame_args): Ditto. * symmisc.c (free_symtab_block): Use dictionary methods. (dump_symtab): Ditto. (free_symtab): Replace use of 'free_ptr' by 'free_func'. Include dictionary.h. * symfile.h: Delete declarations of sort_block_syms, sort_symtab_syms. * symfile.c (sort_block_syms): Delete. (sort_symtab_syms): Delete. * symtab.c: Include dictionary.h. (lookup_block_symbol): Use dictionary iterators. (find_pc_sect_symtab): Update use of ALL_BLOCK_SYMBOLS. (search_symbols, make_symbol_completion_list): Ditto. (make_symbol_overload_list): Ditto. * valops.c (value_of_local): Use dict_empty. Include dictionary.h. 2003-06-11 David Carlton <carlton@bactrian.org> * generic/gdbtk-stack.c: Include dictionary.h. (gdb_block_vars): Update use of ALL_BLOCK_SYMBOLS. (gdb_get_blocks, gdb_get_vars_command): Ditto. * generic/gdbtk-cmds.c: Include dictionary.h. (gdb_listfuncs): Update use of ALL_BLOCK_SYMBOLS. 2003-06-11 David Carlton <carlton@bactrian.org> * mi-cmd-stack.c: Include dictionary.h. (list_args_or_locals): Update use of ALL_BLOCK_SYMBOLS.
2003-06-11 23:29:49 +00:00
BLOCK_DICT (bl) = dict_create_hashed_expandable ();
set_block_symtab (bl, class_symtab);
BLOCKVECTOR_BLOCK (bv, GLOBAL_BLOCK) = bl;
/* Arrange to free the dict. */
jv_data = objfile_data (objfile, jv_dynamics_objfile_data_key);
jv_data->dict = BLOCK_DICT (bl);
}
return class_symtab;
}
static void
2000-07-30 01:48:28 +00:00
add_class_symtab_symbol (struct symbol *sym)
{
struct symtab *symtab
= get_java_class_symtab (get_objfile_arch (SYMBOL_SYMTAB (sym)->objfile));
struct blockvector *bv = BLOCKVECTOR (symtab);
2003-06-11 David Carlton <carlton@bactrian.org> * dictionary.h: New. * dictionary.c: New. * block.h: Add opaque declaration for struct dictionary. (struct block): Add 'dict' member; delete 'hashtable', 'nsyms', 'sym' members. (BLOCK_DICT): New macro. Delete macros BLOCK_HASHTABLE, BLOCK_NSYMS, BLOCK_SYM, BLOCK_BUCKETS, BLOCK_BUCKET, BLOCK_HASHTABLE_SIZE, BLOCK_SHOULD_SORT. (ALL_BLOCK_SYMBOLS): Update definition. * Makefile.in (SFILES): Add dictionary.c. (dictionary_h): New. (COMMON_OBS): Add dictionary.o. (dictionary.o): New. (ada-lang.o): Depend on dictionary_h. (buildsym.o, coffread.o, jv-lang.o, mdebugread.o, objfiles.o) (stack.o, symmisc.o, symtab.o, tracepoint.o, valops.o) (mi-cmd-stack.o): Ditto. (gdbtk-cmds.o): Update dependencies. (gdbtk-stack.o): Ditto. * ada-lang.c: Include dictionary.h. (symtab_for_sym): Update uses of ALL_BLOCK_SYMBOLS. (fill_in_ada_prototype, debug_print_block): Ditto. (ada_add_block_symbols): Update uses of ALL_BLOCK_SYMBOLS; replace explicit iteration by use of ALL_BLOCK_SYMBOLS. Delete variable 'is_sorted'. * mdebugread.c: Include dictionary.h. (struct parse_stack): Delete 'maxsyms' member. (parse_symbol): Update calls to new_block. Delete calls to shrink_block. Use dictionary methods. (psymtab_to_symtab_1): Delete calls to sort_symtab_syms. Update calls to new_symtab. Don't maintain maxsyms data. (mylookup_symbol): Update use of ALL_BLOCK_SYMBOLS. (add_symbol): Just call dict_add_symbol. (new_symtab): Delete 'maxsyms' argument. (new_symtab): Update calls to new_block. (new_block): Delete 'maxsyms' argument; add 'function' argument. (shrink_block): Delete function. (fixup_sigtramp): Update call to new_block. Add symbol via dict_add_symbol. * jv-lang.c: Include dictionary.h. (get_java_class_symtab): Set the BLOCK_DICT of the blocks appropriately. Set class_symtab->free_func. Make sure the blockvector is big enough to hold two blocks. (add_class_symtab_symbol): Use dictionary methods. (free_class_block): New function. (type_from_class): Replace explicit iteration by ALL_BLOCK_SYMBOLS. * symtab.h (struct symtab): Replace 'free_ptr' method by 'free_func'. * dwarf2read.c (psymtab_to_symtab_1): Delete call to sort_symtab_syms. * dwarfread.c (psymtab_to_symtab_1): Delete call to sort_symtab_syms. * coffread.c (coff_symfile_read): Delete call to sort_symtab_syms. Include dictionary.h. (patch_opaque_types): Update use of ALL_BLOCK_SYMBOLS. * dbxread.c (dbx_psymtab_to_symtab_1): Delete call to sort_symtab_syms. * objfiles.c: Include dictionary.h. (objfile_relocate): Update use of ALL_BLOCK_SYMBOLS. * buildsym.c: Include dictionary.h. (finish_block): Use dictionary methods. (end_symtab): Set free_func to NULL, not free_ptr. * tracepoint.c: Include dictionary.h. (add_local_symbols): Update use of ALL_BLOCK_SYMBOLS. (scope_info): Ditto. * stack.c: Include dictionary.h. (print_block_frame_locals): Update use of ALL_BLOCK_SYMBOLS. (print_block_frame_labels, print_frame_arg_vars) (print_frame_args): Ditto. * symmisc.c (free_symtab_block): Use dictionary methods. (dump_symtab): Ditto. (free_symtab): Replace use of 'free_ptr' by 'free_func'. Include dictionary.h. * symfile.h: Delete declarations of sort_block_syms, sort_symtab_syms. * symfile.c (sort_block_syms): Delete. (sort_symtab_syms): Delete. * symtab.c: Include dictionary.h. (lookup_block_symbol): Use dictionary iterators. (find_pc_sect_symtab): Update use of ALL_BLOCK_SYMBOLS. (search_symbols, make_symbol_completion_list): Ditto. (make_symbol_overload_list): Ditto. * valops.c (value_of_local): Use dict_empty. Include dictionary.h. 2003-06-11 David Carlton <carlton@bactrian.org> * generic/gdbtk-stack.c: Include dictionary.h. (gdb_block_vars): Update use of ALL_BLOCK_SYMBOLS. (gdb_get_blocks, gdb_get_vars_command): Ditto. * generic/gdbtk-cmds.c: Include dictionary.h. (gdb_listfuncs): Update use of ALL_BLOCK_SYMBOLS. 2003-06-11 David Carlton <carlton@bactrian.org> * mi-cmd-stack.c: Include dictionary.h. (list_args_or_locals): Update use of ALL_BLOCK_SYMBOLS.
2003-06-11 23:29:49 +00:00
dict_add_symbol (BLOCK_DICT (BLOCKVECTOR_BLOCK (bv, GLOBAL_BLOCK)), sym);
}
static struct symbol *
2000-07-30 01:48:28 +00:00
add_class_symbol (struct type *type, CORE_ADDR addr)
{
struct symbol *sym;
struct objfile *objfile = get_dynamics_objfile (get_type_arch (type));
sym = (struct symbol *)
obstack_alloc (&objfile->objfile_obstack, sizeof (struct symbol));
memset (sym, 0, sizeof (struct symbol));
SYMBOL_SET_LANGUAGE (sym, language_java);
* ax-gdb.c (gen_var_ref): Use SYMBOL_LINKAGE_NAME. * blockframe.c (find_pc_partial_function): Likewise. * buildsym.c (find_symbol_in_list): Likewise. * c-valprint.c (c_val_print): Likewise. * coffread.c (patch_opaque_types, process_coff_symbol): Likewise. (coff_read_enum_type): Likewise. Use SYMBOL_SET_LINKAGE_NAME. * cp-support.c (cp_remove_params): Renamed from remove_params and made global. (overload_list_add_symbol): Update call to remove_params. * cp-support.h (cp_remove_params): Declare. * dwarf2read.c (process_enumeration_scope): Use SYMBOL_LINKAGE_NAME. (dwarf2_const_value): Use SYMBOL_PRINT_NAME. * expprint.c (dump_subexp_body_standard): Likewise. * f-valprint.c (info_common_command, there_is_a_visible_common_named): Use SYMBOL_LINKAGE_NAME to find symbols and SYMBOL_PRINT_NAME for messages. * findvar.c (read_var_value): Use SYMBOL_LINKAGE_NAME. * gnu-v2-abi.c (gnuv2_value_rtti_type): Likewise. * hppa-hpux-tdep.c (hppa32_hpux_in_solib_call_trampoline) (hppa_hpux_skip_trampoline_code): Use SYMBOL_LINKAGE_NAME to find symbols and SYMBOL_PRINT_NAME for messages. * jv-lang.c (add_class_symbol): Use SYMBOL_SET_LINKAGE_NAME. * linespec.c (decode_line_2): Use SYMBOL_LINKAGE_NAME. * mdebugread.c (parse_symbol): Use SYMBOL_LINKAGE_NAME and SYMBOL_SET_LINKAGE_NAME. (mylookup_symbol): Use SYMBOL_LINKAGE_NAME. * minsyms.c (add_minsym_to_demangled_hash_table): Use SYMBOL_SEARCH_NAME. (lookup_minimal_symbol): Use SYMBOL_LINKAGE_NAME or SYMBOL_MATCHES_SEARCH_NAME, depending on the pass. * objfiles.h (ALL_OBJFILE_MSYMBOLS): Use SYMBOL_LINKAGE_NAME. * printcmd.c (build_address_symbolic): Use SYMBOL_LINKAGE_NAME. (address_info): Use SYMBOL_PRINT_NAME for messages and SYMBOL_LINKAGE_NAME for lookups. * sol-thread.c (info_cb): Use SYMBOL_PRINT_NAME for messages. * stabsread.c (patch_block_stabs, define_symbol) (read_type, read_enum_type, common_block_end) (cleanup_undefined_types_1, scan_file_globals): Use SYMBOL_LINKAGE_NAME, SYMBOL_SET_LINKAGE_NAME, ALL_OBJFILE_MSYMBOLS, and SYMBOL_PRINT_NAME. * stack.c (print_frame_args): Use SYMBOL_LINKAGE_NAME. (print_frame, frame_info): Use SYMBOL_PRINT_NAME for output. Use cp_remove_params instead of cplus_demangle. (print_block_frame_labels, print_frame_arg_vars): Use SYMBOL_LINKAGE_NAME. * symmisc.c (dump_msymbols): Use ALL_OBJFILE_MSYMBOLS and SYMBOL_LINKAGE_NAME. (dump_symtab_1, print_symbol, print_partial_symbols) (maintenance_check_symtabs): Use SYMBOL_LINKAGE_NAME. * symtab.h (DEPRECATED_SYMBOL_NAME): Delete. (SYMBOL_SET_LINKAGE_NAME): New. (SYMBOL_SET_NAMES): Add a comment. * tracepoint.c (set_traceframe_context, validate_actionline) (collect_symbol, scope_info): Use SYMBOL_LINKAGE_NAME for lookups and SYMBOL_PRINT_NAME for output. * typeprint.c (typedef_print): Use SYMBOL_LINKAGE_NAME. * xcoffread.c (process_xcoff_symbol): Use SYMBOL_SET_LINKAGE_NAME.
2008-08-21 18:14:39 +00:00
SYMBOL_SET_LINKAGE_NAME (sym, TYPE_TAG_NAME (type));
2013-03-20 Jan Kratochvil <jan.kratochvil@redhat.com> Tom Tromey <tromey@redhat.com> PR symtab/8421: * coffread.c (coff_register_index): New global. (process_coff_symbol, coff_read_enum_type): Set SYMBOL_ACLASS_INDEX. (_initialize_coffread): Initialize new global. * dwarf2loc.c (locexpr_find_frame_base_location) (dwarf2_block_frame_base_locexpr_funcs) (loclist_find_frame_base_location) (dwarf2_block_frame_base_loclist_funcs): New. (dwarf_expr_frame_base_1): Call SYMBOL_BLOCK_OPS, remove internal_error. (dwarf2_locexpr_funcs, dwarf2_loclist_funcs): Add location_has_loclist. * dwarf2loc.h (dwarf2_block_frame_base_locexpr_funcs) (dwarf2_block_frame_base_loclist_funcs): New. * dwarf2read.c (dwarf2_locexpr_index, dwarf2_loclist_index) (dwarf2_locexpr_block_index, dwarf2_loclist_block_index): New globals. (read_func_scope): Update. (fixup_go_packaging, mark_common_block_symbol_computed) (var_decode_location, new_symbol_full, dwarf2_const_value): Set SYMBOL_ACLASS_INDEX. (dwarf2_symbol_mark_computed): Likewise. Add 'is_block' argument. (_initialize_dwarf2_read): Initialize new globals. * jit.c (finalize_symtab): Set SYMBOL_ACLASS_INDEX. * jv-lang.c (add_class_symbol): Set SYMBOL_ACLASS_INDEX. * mdebugread.c (mdebug_register_index, mdebug_regparm_index): New globals. (parse_symbol, psymtab_to_symtab_1): Set SYMBOL_ACLASS_INDEX. (_initialize_mdebugread): Initialize new globals. * psympriv.h (struct partial_symbol) <aclass>: Update comment. * stabsread.c (patch_block_stabs): Set SYMBOL_ACLASS_INDEX. (stab_register_index, stab_regparm_index): New globals. (define_symbol, read_enum_type, common_block_end): Set SYMBOL_ACLASS_INDEX. (_initialize_stabsread): Initialize new globals. * symtab.c (next_aclass_value, symbol_impl, symbol_impls): New globals. (MAX_SYMBOL_IMPLS): New define. (register_symbol_computed_impl, register_symbol_block_impl) (register_symbol_register_impl) (initialize_ordinary_address_classes): New functions. (_initialize_symtab): Call initialize_ordinary_address_classes. * symtab.h (enum address_class) <LOC_FINAL_VALUE>: New constant. (struct symbol_impl): New. (SYMBOL_ACLASS_BITS): New define. (struct symbol) <aclass, ops>: Remove fields. <aclass_index>: New field. (symbol_impls): Declare. (SYMBOL_CLASS, SYMBOL_COMPUTED_OPS, SYMBOL_REGISTER_OPS): Redefine. (SYMBOL_IMPL, SYMBOL_ACLASS_INDEX): New defines. (register_symbol_computed_impl, register_symbol_block_impl) (register_symbol_register_impl): Declare. (struct symbol_computed_ops): Add location_has_loclist. (struct symbol_block_ops): New. (SYMBOL_BLOCK_OPS): New. * xcoffread.c (process_xcoff_symbol): Set SYMBOL_ACLASS_INDEX.
2013-03-20 18:33:05 +00:00
SYMBOL_ACLASS_INDEX (sym) = LOC_TYPEDEF;
1999-07-07 20:19:36 +00:00
/* SYMBOL_VALUE (sym) = valu; */
SYMBOL_TYPE (sym) = type;
SYMBOL_DOMAIN (sym) = STRUCT_DOMAIN;
SYMBOL_VALUE_ADDRESS (sym) = addr;
return sym;
}
2003-06-11 David Carlton <carlton@bactrian.org> * dictionary.h: New. * dictionary.c: New. * block.h: Add opaque declaration for struct dictionary. (struct block): Add 'dict' member; delete 'hashtable', 'nsyms', 'sym' members. (BLOCK_DICT): New macro. Delete macros BLOCK_HASHTABLE, BLOCK_NSYMS, BLOCK_SYM, BLOCK_BUCKETS, BLOCK_BUCKET, BLOCK_HASHTABLE_SIZE, BLOCK_SHOULD_SORT. (ALL_BLOCK_SYMBOLS): Update definition. * Makefile.in (SFILES): Add dictionary.c. (dictionary_h): New. (COMMON_OBS): Add dictionary.o. (dictionary.o): New. (ada-lang.o): Depend on dictionary_h. (buildsym.o, coffread.o, jv-lang.o, mdebugread.o, objfiles.o) (stack.o, symmisc.o, symtab.o, tracepoint.o, valops.o) (mi-cmd-stack.o): Ditto. (gdbtk-cmds.o): Update dependencies. (gdbtk-stack.o): Ditto. * ada-lang.c: Include dictionary.h. (symtab_for_sym): Update uses of ALL_BLOCK_SYMBOLS. (fill_in_ada_prototype, debug_print_block): Ditto. (ada_add_block_symbols): Update uses of ALL_BLOCK_SYMBOLS; replace explicit iteration by use of ALL_BLOCK_SYMBOLS. Delete variable 'is_sorted'. * mdebugread.c: Include dictionary.h. (struct parse_stack): Delete 'maxsyms' member. (parse_symbol): Update calls to new_block. Delete calls to shrink_block. Use dictionary methods. (psymtab_to_symtab_1): Delete calls to sort_symtab_syms. Update calls to new_symtab. Don't maintain maxsyms data. (mylookup_symbol): Update use of ALL_BLOCK_SYMBOLS. (add_symbol): Just call dict_add_symbol. (new_symtab): Delete 'maxsyms' argument. (new_symtab): Update calls to new_block. (new_block): Delete 'maxsyms' argument; add 'function' argument. (shrink_block): Delete function. (fixup_sigtramp): Update call to new_block. Add symbol via dict_add_symbol. * jv-lang.c: Include dictionary.h. (get_java_class_symtab): Set the BLOCK_DICT of the blocks appropriately. Set class_symtab->free_func. Make sure the blockvector is big enough to hold two blocks. (add_class_symtab_symbol): Use dictionary methods. (free_class_block): New function. (type_from_class): Replace explicit iteration by ALL_BLOCK_SYMBOLS. * symtab.h (struct symtab): Replace 'free_ptr' method by 'free_func'. * dwarf2read.c (psymtab_to_symtab_1): Delete call to sort_symtab_syms. * dwarfread.c (psymtab_to_symtab_1): Delete call to sort_symtab_syms. * coffread.c (coff_symfile_read): Delete call to sort_symtab_syms. Include dictionary.h. (patch_opaque_types): Update use of ALL_BLOCK_SYMBOLS. * dbxread.c (dbx_psymtab_to_symtab_1): Delete call to sort_symtab_syms. * objfiles.c: Include dictionary.h. (objfile_relocate): Update use of ALL_BLOCK_SYMBOLS. * buildsym.c: Include dictionary.h. (finish_block): Use dictionary methods. (end_symtab): Set free_func to NULL, not free_ptr. * tracepoint.c: Include dictionary.h. (add_local_symbols): Update use of ALL_BLOCK_SYMBOLS. (scope_info): Ditto. * stack.c: Include dictionary.h. (print_block_frame_locals): Update use of ALL_BLOCK_SYMBOLS. (print_block_frame_labels, print_frame_arg_vars) (print_frame_args): Ditto. * symmisc.c (free_symtab_block): Use dictionary methods. (dump_symtab): Ditto. (free_symtab): Replace use of 'free_ptr' by 'free_func'. Include dictionary.h. * symfile.h: Delete declarations of sort_block_syms, sort_symtab_syms. * symfile.c (sort_block_syms): Delete. (sort_symtab_syms): Delete. * symtab.c: Include dictionary.h. (lookup_block_symbol): Use dictionary iterators. (find_pc_sect_symtab): Update use of ALL_BLOCK_SYMBOLS. (search_symbols, make_symbol_completion_list): Ditto. (make_symbol_overload_list): Ditto. * valops.c (value_of_local): Use dict_empty. Include dictionary.h. 2003-06-11 David Carlton <carlton@bactrian.org> * generic/gdbtk-stack.c: Include dictionary.h. (gdb_block_vars): Update use of ALL_BLOCK_SYMBOLS. (gdb_get_blocks, gdb_get_vars_command): Ditto. * generic/gdbtk-cmds.c: Include dictionary.h. (gdb_listfuncs): Update use of ALL_BLOCK_SYMBOLS. 2003-06-11 David Carlton <carlton@bactrian.org> * mi-cmd-stack.c: Include dictionary.h. (list_args_or_locals): Update use of ALL_BLOCK_SYMBOLS.
2003-06-11 23:29:49 +00:00
struct type *
2000-07-30 01:48:28 +00:00
java_lookup_class (char *name)
{
struct symbol *sym;
* symtab.h (lookup_symbol_in_language): Remove SYMTAB parameter. (lookup_symbol): Likewise. * symtab.c (lookup_symbol_in_language): Remove SYMTAB parameter. (lookup_symbol): Likewise. (search_symbols): Update. * linespec.c (find_methods, collect_methods): Update. (add_matching_methods, add_constructors): Update. (decode_compound, decode_dollar, decode_variable): Update. (lookup_prefix_sym): Update. (symbol_found): Remove SYM_SYMTAB parameter. Use SYMBOL_SYMTAB (sym) instead. * gdbtypes.c (lookup_typename): Update. (lookup_struct, lookup_union, lookup_enum): Update. (lookup_template_type): Update. (check_typedef): Update. * language.c (lang_bool_type): Update. * mdebugread.c (parse_procedure): Update. * mi/mi-cmd-stack.c (list_args_or_locals): Update. * parse.c (write_dollar_variable): Update. * printcmd.c (address_info): Update. * source.c (select_source_symtab): Update. * stack.c (print_frame_args, print_frame_arg_vars): Update. * valops.c (find_function_in_inferior): Update. (value_struct_elt_for_reference): Update. * value.c (value_static_field, value_fn_field): Update. * alpha-mdebug-tdep.c (find_proc_desc): Update. * arm-tdep.c (arm_skip_prologue): Update. * mt-tdep.c (mt_skip_prologue): Update. * xstormy16-tdep.c (xstormy16_skip_prologue): Update. * ada-lang.h (struct ada_symbol_info): Remove SYMTAB member. * ada-lang.c (ada_add_block_symbols): Remove SYMTAB parameter. (add_defn_to_vec): Likewise. (ada_add_block_symbols): Likewise. (lookup_cached_symbol, cache_symbol): Likewise. (standard_lookup): Update. (ada_lookup_symbol_list): Update. * c-valprint.c (c_val_print): Update. * cp-support.c (cp_lookup_rtti_type): Update. * jv-lang.c (java_lookup_class, get_java_object_type): Update. * objc-lang.c (lookup_struct_typedef, find_imps): Update. * p-valprint.c (pascal_val_print): Update. * scm-lang.c (scm_lookup_name): Update. * c-exp.y: Update. * f-exp.y: Update. * jv-exp.y: Update. * m2-exp.y: Update. * objc-exp.y: Update. * p-exp.y: Update.
2008-05-19 15:50:10 +00:00
sym = lookup_symbol (name, expression_context_block, STRUCT_DOMAIN, NULL);
if (sym != NULL)
return SYMBOL_TYPE (sym);
/* FIXME - should search inferior's symbol table. */
return NULL;
}
/* Return a nul-terminated string (allocated on OBSTACK) for
a name given by NAME (which has type Utf8Const*). */
char *
2001-10-21 01:57:42 +00:00
get_java_utf8_name (struct obstack *obstack, struct value *name)
{
char *chrs;
2001-10-21 01:57:42 +00:00
struct value *temp = name;
int name_length;
CORE_ADDR data_addr;
temp = value_struct_elt (&temp, NULL, "length", NULL, "structure");
name_length = (int) value_as_long (temp);
2009-05-27 Tom Tromey <tromey@redhat.com> Paul Pluzhnikov <ppluzhnikov@google.com> * mi/mi-main.c (mi_cmd_data_evaluate_expression): Use value_address. * cli/cli-dump.c (dump_value_to_file): Use value_address. * valprint.c (common_val_print): Likewise. * v850-tdep.c (v850_push_dummy_call): Use value_address. * tracepoint.c (encode_actions): Use value_address. * printcmd.c (print_formatted): Use value_address. (x_command): Likewise. * p-valprint.c (pascal_object_print_static_field): Use value_address. * mn10300-tdep.c (mn10300_push_dummy_call): Use value_address. * mips-tdep.c (mips_eabi_push_dummy_call): Use value_address. * m32r-tdep.c (m32r_push_dummy_call): Use value_address. * jv-valprint.c (java_value_print): Use value_address. * infcall.c (find_function_addr): Use value_address. * gnu-v3-abi.c (gnuv3_rtti_type): Use value_address. * gnu-v2-abi.c (gnuv2_value_rtti_type): Use value_address. * frv-tdep.c (frv_push_dummy_call): Use value_address. * frame.c (frame_register_unwind): Use value_address. (frame_unwind_register_value): Likewise. * darwin-nat-info.c (info_mach_region_command): Use value_address. * cp-valprint.c (cp_print_static_field): Use value_address. * c-valprint.c (c_value_print): Use value_address. * breakpoint.c (update_watchpoint): Use value_address. (can_use_hardware_watchpoint): Likewise. * ada-valprint.c (ada_val_print_1): Use value_address. (ada_value_print): Likewise. * ada-tasks.c (read_fat_string_value): Use value_address. * jv-lang.c (java_link_class_type): Use set_value_address. (java_link_class_type): Likewise. (get_java_utf8_name): Use value_address. (type_from_class): Likewise. (java_link_class_type): Likewise. * findvar.c (value_of_register): Use set_value_address. (read_var_value): Likewise. (read_var_value): Likewise. * eval.c (evaluate_subexp_standard): Use set_value_address. (evaluate_subexp_standard): Use value_address. * dwarf2loc.c (dwarf2_evaluate_loc_desc): Use set_value_address. * ada-lang.c (coerce_unspec_val_to_type): Use set_value_address. (ada_value_primitive_packed_val): Likewise. (ensure_lval): Likewise. (thin_data_pntr): Use value_address. (desc_bounds): Likewise. (ada_value_primitive_packed_val): Likewise. (value_assign_to_component): Likewise. (ensure_lval): Likewise. (make_array_descriptor): Likewise. (ada_to_fixed_value): Likewise. (unwrap_value): Likewise. * value.c (deprecated_value_address_hack): Remove. (value_address): New function. (value_raw_address): Likewise. (set_value_address): Likewise. (value_fn_field): Use set_value_address. (value_from_contents_and_address): Likewise. (value_fn_field): Likewise. (allocate_value_lazy): Don't use VALUE_ADDRESS. (value_as_address): Use value_address. (value_static_field): Likewise. * valops.c (search_struct_field): Use set_value_address. (value_at): Likewise. (value_at_lazy): Likewise. (value_repeat): Likewise. (value_cast_structs): Use value_address. (value_cast): Likewise. (value_fetch_lazy): Likewise. (value_assign): Likewise. (value_repeat): Likewise. (address_of_variable): Likewise. (value_coerce_array): Likewise. (value_coerce_function): Likewise. (value_addr): Likewise. (search_struct_field): Likewise. (search_struct_method): Likewise. (find_method_list): Likewise. (value_struct_elt_for_reference): Likewise. (value_full_object): Likewise. * jv-valprint.c (java_value_print): Use set_value_address. * value.h (deprecated_value_address_hack): Remove. (VALUE_ADDRESS): Remove. (value_address): Declare. (value_raw_address): Declare. (set_value_address): Declare.
2009-05-28 00:53:52 +00:00
data_addr = value_address (temp) + TYPE_LENGTH (value_type (temp));
1999-07-07 20:19:36 +00:00
chrs = obstack_alloc (obstack, name_length + 1);
chrs[name_length] = '\0';
read_memory (data_addr, (gdb_byte *) chrs, name_length);
return chrs;
}
2001-10-21 01:57:42 +00:00
struct value *
java_class_from_object (struct value *obj_val)
{
/* This is all rather inefficient, since the offsets of vtable and
class are fixed. FIXME */
2001-10-21 01:57:42 +00:00
struct value *vtable_val;
if (TYPE_CODE (value_type (obj_val)) == TYPE_CODE_PTR
&& TYPE_LENGTH (TYPE_TARGET_TYPE (value_type (obj_val))) == 0)
obj_val = value_at (get_java_object_type (),
value_as_address (obj_val));
vtable_val = value_struct_elt (&obj_val, NULL, "vtable", NULL, "structure");
return value_struct_elt (&vtable_val, NULL, "class", NULL, "structure");
}
/* Check if CLASS_IS_PRIMITIVE(value of clas): */
1999-05-25 18:09:09 +00:00
static int
2001-10-21 01:57:42 +00:00
java_class_is_primitive (struct value *clas)
{
struct value *vtable = value_struct_elt (&clas, NULL, "vtable",
NULL, "struct");
CORE_ADDR i = value_as_address (vtable);
return (int) (i & 0x7fffffff) == (int) 0x7fffffff;
}
/* Read a GCJ Class object, and generated a gdb (TYPE_CODE_STRUCT) type. */
struct type *
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
type_from_class (struct gdbarch *gdbarch, struct value *clas)
{
struct type *type;
char *name;
2001-10-21 01:57:42 +00:00
struct value *temp;
struct objfile *objfile;
2001-10-21 01:57:42 +00:00
struct value *utf8_name;
char *nptr;
CORE_ADDR addr;
type = check_typedef (value_type (clas));
if (TYPE_CODE (type) == TYPE_CODE_PTR)
{
if (value_logical_not (clas))
return NULL;
clas = value_ind (clas);
}
2009-05-27 Tom Tromey <tromey@redhat.com> Paul Pluzhnikov <ppluzhnikov@google.com> * mi/mi-main.c (mi_cmd_data_evaluate_expression): Use value_address. * cli/cli-dump.c (dump_value_to_file): Use value_address. * valprint.c (common_val_print): Likewise. * v850-tdep.c (v850_push_dummy_call): Use value_address. * tracepoint.c (encode_actions): Use value_address. * printcmd.c (print_formatted): Use value_address. (x_command): Likewise. * p-valprint.c (pascal_object_print_static_field): Use value_address. * mn10300-tdep.c (mn10300_push_dummy_call): Use value_address. * mips-tdep.c (mips_eabi_push_dummy_call): Use value_address. * m32r-tdep.c (m32r_push_dummy_call): Use value_address. * jv-valprint.c (java_value_print): Use value_address. * infcall.c (find_function_addr): Use value_address. * gnu-v3-abi.c (gnuv3_rtti_type): Use value_address. * gnu-v2-abi.c (gnuv2_value_rtti_type): Use value_address. * frv-tdep.c (frv_push_dummy_call): Use value_address. * frame.c (frame_register_unwind): Use value_address. (frame_unwind_register_value): Likewise. * darwin-nat-info.c (info_mach_region_command): Use value_address. * cp-valprint.c (cp_print_static_field): Use value_address. * c-valprint.c (c_value_print): Use value_address. * breakpoint.c (update_watchpoint): Use value_address. (can_use_hardware_watchpoint): Likewise. * ada-valprint.c (ada_val_print_1): Use value_address. (ada_value_print): Likewise. * ada-tasks.c (read_fat_string_value): Use value_address. * jv-lang.c (java_link_class_type): Use set_value_address. (java_link_class_type): Likewise. (get_java_utf8_name): Use value_address. (type_from_class): Likewise. (java_link_class_type): Likewise. * findvar.c (value_of_register): Use set_value_address. (read_var_value): Likewise. (read_var_value): Likewise. * eval.c (evaluate_subexp_standard): Use set_value_address. (evaluate_subexp_standard): Use value_address. * dwarf2loc.c (dwarf2_evaluate_loc_desc): Use set_value_address. * ada-lang.c (coerce_unspec_val_to_type): Use set_value_address. (ada_value_primitive_packed_val): Likewise. (ensure_lval): Likewise. (thin_data_pntr): Use value_address. (desc_bounds): Likewise. (ada_value_primitive_packed_val): Likewise. (value_assign_to_component): Likewise. (ensure_lval): Likewise. (make_array_descriptor): Likewise. (ada_to_fixed_value): Likewise. (unwrap_value): Likewise. * value.c (deprecated_value_address_hack): Remove. (value_address): New function. (value_raw_address): Likewise. (set_value_address): Likewise. (value_fn_field): Use set_value_address. (value_from_contents_and_address): Likewise. (value_fn_field): Likewise. (allocate_value_lazy): Don't use VALUE_ADDRESS. (value_as_address): Use value_address. (value_static_field): Likewise. * valops.c (search_struct_field): Use set_value_address. (value_at): Likewise. (value_at_lazy): Likewise. (value_repeat): Likewise. (value_cast_structs): Use value_address. (value_cast): Likewise. (value_fetch_lazy): Likewise. (value_assign): Likewise. (value_repeat): Likewise. (address_of_variable): Likewise. (value_coerce_array): Likewise. (value_coerce_function): Likewise. (value_addr): Likewise. (search_struct_field): Likewise. (search_struct_method): Likewise. (find_method_list): Likewise. (value_struct_elt_for_reference): Likewise. (value_full_object): Likewise. * jv-valprint.c (java_value_print): Use set_value_address. * value.h (deprecated_value_address_hack): Remove. (VALUE_ADDRESS): Remove. (value_address): Declare. (value_raw_address): Declare. (set_value_address): Declare.
2009-05-28 00:53:52 +00:00
addr = value_address (clas);
objfile = get_dynamics_objfile (gdbarch);
if (java_class_is_primitive (clas))
{
2001-10-21 01:57:42 +00:00
struct value *sig;
temp = clas;
sig = value_struct_elt (&temp, NULL, "method_count", NULL, "structure");
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return java_primitive_type (gdbarch, value_as_long (sig));
}
/* Get Class name. */
/* If clasloader non-null, prepend loader address. FIXME */
temp = clas;
utf8_name = value_struct_elt (&temp, NULL, "name", NULL, "structure");
name = get_java_utf8_name (&objfile->objfile_obstack, utf8_name);
1999-07-07 20:19:36 +00:00
for (nptr = name; *nptr != 0; nptr++)
{
if (*nptr == '/')
*nptr = '.';
}
type = java_lookup_class (name);
if (type != NULL)
return type;
type = alloc_type (objfile);
TYPE_CODE (type) = TYPE_CODE_STRUCT;
INIT_CPLUS_SPECIFIC (type);
if (name[0] == '[')
{
char *signature = name;
int namelen = java_demangled_signature_length (signature);
if (namelen > strlen (name))
name = obstack_alloc (&objfile->objfile_obstack, namelen + 1);
java_demangled_signature_copy (name, signature);
name[namelen] = '\0';
temp = clas;
/* Set array element type. */
temp = value_struct_elt (&temp, NULL, "methods", NULL, "structure");
deprecated_set_value_type (temp,
lookup_pointer_type (value_type (clas)));
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
TYPE_TARGET_TYPE (type) = type_from_class (gdbarch, temp);
}
ALLOCATE_CPLUS_STRUCT_TYPE (type);
TYPE_TAG_NAME (type) = name;
add_class_symtab_symbol (add_class_symbol (type, addr));
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return java_link_class_type (gdbarch, type, clas);
}
/* Fill in class TYPE with data from the CLAS value. */
static struct type *
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
java_link_class_type (struct gdbarch *gdbarch,
struct type *type, struct value *clas)
{
2001-10-21 01:57:42 +00:00
struct value *temp;
* gdbtypes.h (struct main_type): Change type of name,tag_name, and fields.name members from char * to const char *. All uses updated. (struct cplus_struct_type): Change type of fn_fieldlists.name member from char * to const char *. All uses updated. (type_name_no_tag): Update. (lookup_unsigned_typename, lookup_signed_typename): Update. * gdbtypes.c (type_name_no_tag): Change result type from char * to const char *. All callers updated. (lookup_unsigned_typename, lookup_signed_typename): Change type of name parameter from char * to const char *. * symtab.h (struct cplus_specific): Change type of demangled_name member from char * to const char *. All uses updated. (struct general_symbol_info): Change type of name and mangled_lang.demangled_name members from char * to const char *. All uses updated. (symbol_get_demangled_name, symbol_natural_name): Update. (symbol_demangled_name, symbol_search_name): Update. * symtab.c (symbol_get_demangled_name): Change result type from char * to const char *. All callers updated. (symbol_natural_name, symbol_demangled_name): Ditto. (symbol_search_name): Ditto. (completion_list_add_name): Change type of symname,sym_text, text,word parameters from char * to const char *. (completion_list_objc_symbol): Change type of sym_text, text,word parameters from char * to const char *. * ada-lang.c (find_struct_field): Change type of name parameter from char * to const char *. (encoded_ordered_before): Similarly for N0,N1 parameters. (old_renaming_is_invisible): Similarly for function_name parameter. (ada_type_name): Change result type from char * to const char *. All callers updated. * ada-lang.h (ada_type_name): Update. * buildsym.c (hashname): Change type of name parameter from char * to const char *. * buildsym.h (hashname): Update. * dbxread.c (end_psymtab): Change type of include_list parameter from char ** to const char **. * dwarf2read.c (determine_prefix): Change result type from char * to const char *. All callers updated. * f-lang.c (find_common_for_function): Change type of name, funcname parameters from char * to const char *. * f-lang.c (find_common_for_function): Update. * f-valprint.c (list_all_visible_commons): Change type of funcname parameters from char * to const char *. * gdbarch.sh (static_transform_name): Change type of name parameter and result from char * to const char *. * gdbarch.c: Regenerate. * gdbarch.h: Regenerate. * i386-sol2-tdep.c (i386_sol2_static_transform_name): Change type of name parameter from char * to const char *. * jv-lang.c (java_primitive_type_from_name): Ditto. (java_demangled_signature_length): Similarly for signature parameter. (java_demangled_signature_copy): Ditto. (java_demangle_type_signature): Ditto. * jv-lang.h (java_primitive_type_from_name): Update. (java_demangle_type_signature): Update. * objc-lang.c (specialcmp): Change type of a,b parameters from char * to const char *. * p-lang.c (is_pascal_string_type): Change type of arrayname parameter from char * to const char *. All callers updated. * p-lang.h (is_pascal_string_type): Update. * solib-frv.c (find_canonical_descriptor_in_load_object): Change type of name parameter from char * to const char *. * sparc-sol2-tdep.c (sparc_sol2_static_transform_name): Ditto. * utils.c (fprintf_symbol_filtered): Ditto. * defs.h (fprintf_symbol_filtered): Update. * sparc-tdep.h (sparc_sol2_static_transform_name): Update. * stabsread.h (end_psymtab): Update. * stack.c (find_frame_funname): Change type of funname parameter from char ** to const char **. * stack.h (find_frame_funname): Update. * typeprint.c (type_print): Change type of varstring parameter from char * to const char *. * value.h (type_print): Update. * xcoffread.c (xcoff_start_psymtab): Change type of filename parameter from char * to const char *. All callers updated. (xcoff_end_psymtab): Change type of include_list parameter from char ** to const char **. All callers updated. (swap_sym): Similarly for name parameter. All callers updated. * coffread.c (patch_type): Add (char*) cast to xfree parameter. Use xstrdup. (process_coff_symbol): Use xstrdup. * stabsread.c (stabs_method_name_from_physname): Renamed from update_method_name_from_physname. Change result type from void to char *. All callers updated. (read_member_functions): In has_destructor case, store name in objfile obstack instead of malloc space. In !has_stub case, fix mem leak.
2012-02-07 04:48:23 +00:00
const char *unqualified_name;
const char *name = TYPE_TAG_NAME (type);
int ninterfaces, nfields, nmethods;
int type_is_object = 0;
struct fn_field *fn_fields;
struct fn_fieldlist *fn_fieldlists;
2001-10-21 01:57:42 +00:00
struct value *fields;
struct value *methods;
2001-03-23 22:48:44 +00:00
struct value *method = NULL;
struct value *field = NULL;
int i, j;
struct objfile *objfile = get_dynamics_objfile (gdbarch);
struct type *tsuper;
gdb_assert (name != NULL);
unqualified_name = strrchr (name, '.');
if (unqualified_name == NULL)
unqualified_name = name;
temp = clas;
temp = value_struct_elt (&temp, NULL, "superclass", NULL, "structure");
if (strcmp (name, "java.lang.Object") == 0)
{
tsuper = get_java_object_type ();
if (tsuper && TYPE_CODE (tsuper) == TYPE_CODE_PTR)
tsuper = TYPE_TARGET_TYPE (tsuper);
type_is_object = 1;
}
else
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
tsuper = type_from_class (gdbarch, temp);
#if 1
ninterfaces = 0;
#else
temp = clas;
ninterfaces = value_as_long (value_struct_elt (&temp, NULL, "interface_len",
NULL, "structure"));
#endif
TYPE_N_BASECLASSES (type) = (tsuper == NULL ? 0 : 1) + ninterfaces;
temp = clas;
nfields = value_as_long (value_struct_elt (&temp, NULL, "field_count",
NULL, "structure"));
nfields += TYPE_N_BASECLASSES (type);
nfields++; /* Add one for dummy "class" field. */
TYPE_NFIELDS (type) = nfields;
TYPE_FIELDS (type) = (struct field *)
TYPE_ALLOC (type, sizeof (struct field) * nfields);
memset (TYPE_FIELDS (type), 0, sizeof (struct field) * nfields);
TYPE_FIELD_PRIVATE_BITS (type) =
(B_TYPE *) TYPE_ALLOC (type, B_BYTES (nfields));
B_CLRALL (TYPE_FIELD_PRIVATE_BITS (type), nfields);
TYPE_FIELD_PROTECTED_BITS (type) =
(B_TYPE *) TYPE_ALLOC (type, B_BYTES (nfields));
B_CLRALL (TYPE_FIELD_PROTECTED_BITS (type), nfields);
TYPE_FIELD_IGNORE_BITS (type) =
(B_TYPE *) TYPE_ALLOC (type, B_BYTES (nfields));
B_CLRALL (TYPE_FIELD_IGNORE_BITS (type), nfields);
TYPE_FIELD_VIRTUAL_BITS (type) = (B_TYPE *)
TYPE_ALLOC (type, B_BYTES (TYPE_N_BASECLASSES (type)));
B_CLRALL (TYPE_FIELD_VIRTUAL_BITS (type), TYPE_N_BASECLASSES (type));
if (tsuper != NULL)
{
TYPE_BASECLASS (type, 0) = tsuper;
if (type_is_object)
SET_TYPE_FIELD_PRIVATE (type, 0);
}
i = strlen (name);
1999-07-07 20:19:36 +00:00
if (i > 2 && name[i - 1] == ']' && tsuper != NULL)
{
/* FIXME */
TYPE_LENGTH (type) = TYPE_LENGTH (tsuper) + 4; /* size with "length" */
}
else
{
temp = clas;
temp = value_struct_elt (&temp, NULL, "size_in_bytes",
NULL, "structure");
TYPE_LENGTH (type) = value_as_long (temp);
}
fields = NULL;
nfields--; /* First set up dummy "class" field. */
2009-05-27 Tom Tromey <tromey@redhat.com> Paul Pluzhnikov <ppluzhnikov@google.com> * mi/mi-main.c (mi_cmd_data_evaluate_expression): Use value_address. * cli/cli-dump.c (dump_value_to_file): Use value_address. * valprint.c (common_val_print): Likewise. * v850-tdep.c (v850_push_dummy_call): Use value_address. * tracepoint.c (encode_actions): Use value_address. * printcmd.c (print_formatted): Use value_address. (x_command): Likewise. * p-valprint.c (pascal_object_print_static_field): Use value_address. * mn10300-tdep.c (mn10300_push_dummy_call): Use value_address. * mips-tdep.c (mips_eabi_push_dummy_call): Use value_address. * m32r-tdep.c (m32r_push_dummy_call): Use value_address. * jv-valprint.c (java_value_print): Use value_address. * infcall.c (find_function_addr): Use value_address. * gnu-v3-abi.c (gnuv3_rtti_type): Use value_address. * gnu-v2-abi.c (gnuv2_value_rtti_type): Use value_address. * frv-tdep.c (frv_push_dummy_call): Use value_address. * frame.c (frame_register_unwind): Use value_address. (frame_unwind_register_value): Likewise. * darwin-nat-info.c (info_mach_region_command): Use value_address. * cp-valprint.c (cp_print_static_field): Use value_address. * c-valprint.c (c_value_print): Use value_address. * breakpoint.c (update_watchpoint): Use value_address. (can_use_hardware_watchpoint): Likewise. * ada-valprint.c (ada_val_print_1): Use value_address. (ada_value_print): Likewise. * ada-tasks.c (read_fat_string_value): Use value_address. * jv-lang.c (java_link_class_type): Use set_value_address. (java_link_class_type): Likewise. (get_java_utf8_name): Use value_address. (type_from_class): Likewise. (java_link_class_type): Likewise. * findvar.c (value_of_register): Use set_value_address. (read_var_value): Likewise. (read_var_value): Likewise. * eval.c (evaluate_subexp_standard): Use set_value_address. (evaluate_subexp_standard): Use value_address. * dwarf2loc.c (dwarf2_evaluate_loc_desc): Use set_value_address. * ada-lang.c (coerce_unspec_val_to_type): Use set_value_address. (ada_value_primitive_packed_val): Likewise. (ensure_lval): Likewise. (thin_data_pntr): Use value_address. (desc_bounds): Likewise. (ada_value_primitive_packed_val): Likewise. (value_assign_to_component): Likewise. (ensure_lval): Likewise. (make_array_descriptor): Likewise. (ada_to_fixed_value): Likewise. (unwrap_value): Likewise. * value.c (deprecated_value_address_hack): Remove. (value_address): New function. (value_raw_address): Likewise. (set_value_address): Likewise. (value_fn_field): Use set_value_address. (value_from_contents_and_address): Likewise. (value_fn_field): Likewise. (allocate_value_lazy): Don't use VALUE_ADDRESS. (value_as_address): Use value_address. (value_static_field): Likewise. * valops.c (search_struct_field): Use set_value_address. (value_at): Likewise. (value_at_lazy): Likewise. (value_repeat): Likewise. (value_cast_structs): Use value_address. (value_cast): Likewise. (value_fetch_lazy): Likewise. (value_assign): Likewise. (value_repeat): Likewise. (address_of_variable): Likewise. (value_coerce_array): Likewise. (value_coerce_function): Likewise. (value_addr): Likewise. (search_struct_field): Likewise. (search_struct_method): Likewise. (find_method_list): Likewise. (value_struct_elt_for_reference): Likewise. (value_full_object): Likewise. * jv-valprint.c (java_value_print): Use set_value_address. * value.h (deprecated_value_address_hack): Remove. (VALUE_ADDRESS): Remove. (value_address): Declare. (value_raw_address): Declare. (set_value_address): Declare.
2009-05-28 00:53:52 +00:00
SET_FIELD_PHYSADDR (TYPE_FIELD (type, nfields), value_address (clas));
TYPE_FIELD_NAME (type, nfields) = "class";
TYPE_FIELD_TYPE (type, nfields) = value_type (clas);
SET_TYPE_FIELD_PRIVATE (type, nfields);
1999-07-07 20:19:36 +00:00
for (i = TYPE_N_BASECLASSES (type); i < nfields; i++)
{
int accflags;
int boffset;
if (fields == NULL)
{
temp = clas;
fields = value_struct_elt (&temp, NULL, "fields", NULL, "structure");
field = value_ind (fields);
}
else
{ /* Re-use field value for next field. */
2009-05-27 Tom Tromey <tromey@redhat.com> Paul Pluzhnikov <ppluzhnikov@google.com> * mi/mi-main.c (mi_cmd_data_evaluate_expression): Use value_address. * cli/cli-dump.c (dump_value_to_file): Use value_address. * valprint.c (common_val_print): Likewise. * v850-tdep.c (v850_push_dummy_call): Use value_address. * tracepoint.c (encode_actions): Use value_address. * printcmd.c (print_formatted): Use value_address. (x_command): Likewise. * p-valprint.c (pascal_object_print_static_field): Use value_address. * mn10300-tdep.c (mn10300_push_dummy_call): Use value_address. * mips-tdep.c (mips_eabi_push_dummy_call): Use value_address. * m32r-tdep.c (m32r_push_dummy_call): Use value_address. * jv-valprint.c (java_value_print): Use value_address. * infcall.c (find_function_addr): Use value_address. * gnu-v3-abi.c (gnuv3_rtti_type): Use value_address. * gnu-v2-abi.c (gnuv2_value_rtti_type): Use value_address. * frv-tdep.c (frv_push_dummy_call): Use value_address. * frame.c (frame_register_unwind): Use value_address. (frame_unwind_register_value): Likewise. * darwin-nat-info.c (info_mach_region_command): Use value_address. * cp-valprint.c (cp_print_static_field): Use value_address. * c-valprint.c (c_value_print): Use value_address. * breakpoint.c (update_watchpoint): Use value_address. (can_use_hardware_watchpoint): Likewise. * ada-valprint.c (ada_val_print_1): Use value_address. (ada_value_print): Likewise. * ada-tasks.c (read_fat_string_value): Use value_address. * jv-lang.c (java_link_class_type): Use set_value_address. (java_link_class_type): Likewise. (get_java_utf8_name): Use value_address. (type_from_class): Likewise. (java_link_class_type): Likewise. * findvar.c (value_of_register): Use set_value_address. (read_var_value): Likewise. (read_var_value): Likewise. * eval.c (evaluate_subexp_standard): Use set_value_address. (evaluate_subexp_standard): Use value_address. * dwarf2loc.c (dwarf2_evaluate_loc_desc): Use set_value_address. * ada-lang.c (coerce_unspec_val_to_type): Use set_value_address. (ada_value_primitive_packed_val): Likewise. (ensure_lval): Likewise. (thin_data_pntr): Use value_address. (desc_bounds): Likewise. (ada_value_primitive_packed_val): Likewise. (value_assign_to_component): Likewise. (ensure_lval): Likewise. (make_array_descriptor): Likewise. (ada_to_fixed_value): Likewise. (unwrap_value): Likewise. * value.c (deprecated_value_address_hack): Remove. (value_address): New function. (value_raw_address): Likewise. (set_value_address): Likewise. (value_fn_field): Use set_value_address. (value_from_contents_and_address): Likewise. (value_fn_field): Likewise. (allocate_value_lazy): Don't use VALUE_ADDRESS. (value_as_address): Use value_address. (value_static_field): Likewise. * valops.c (search_struct_field): Use set_value_address. (value_at): Likewise. (value_at_lazy): Likewise. (value_repeat): Likewise. (value_cast_structs): Use value_address. (value_cast): Likewise. (value_fetch_lazy): Likewise. (value_assign): Likewise. (value_repeat): Likewise. (address_of_variable): Likewise. (value_coerce_array): Likewise. (value_coerce_function): Likewise. (value_addr): Likewise. (search_struct_field): Likewise. (search_struct_method): Likewise. (find_method_list): Likewise. (value_struct_elt_for_reference): Likewise. (value_full_object): Likewise. * jv-valprint.c (java_value_print): Use set_value_address. * value.h (deprecated_value_address_hack): Remove. (VALUE_ADDRESS): Remove. (value_address): Declare. (value_raw_address): Declare. (set_value_address): Declare.
2009-05-28 00:53:52 +00:00
CORE_ADDR addr
= value_address (field) + TYPE_LENGTH (value_type (field));
2009-05-27 Tom Tromey <tromey@redhat.com> Paul Pluzhnikov <ppluzhnikov@google.com> * mi/mi-main.c (mi_cmd_data_evaluate_expression): Use value_address. * cli/cli-dump.c (dump_value_to_file): Use value_address. * valprint.c (common_val_print): Likewise. * v850-tdep.c (v850_push_dummy_call): Use value_address. * tracepoint.c (encode_actions): Use value_address. * printcmd.c (print_formatted): Use value_address. (x_command): Likewise. * p-valprint.c (pascal_object_print_static_field): Use value_address. * mn10300-tdep.c (mn10300_push_dummy_call): Use value_address. * mips-tdep.c (mips_eabi_push_dummy_call): Use value_address. * m32r-tdep.c (m32r_push_dummy_call): Use value_address. * jv-valprint.c (java_value_print): Use value_address. * infcall.c (find_function_addr): Use value_address. * gnu-v3-abi.c (gnuv3_rtti_type): Use value_address. * gnu-v2-abi.c (gnuv2_value_rtti_type): Use value_address. * frv-tdep.c (frv_push_dummy_call): Use value_address. * frame.c (frame_register_unwind): Use value_address. (frame_unwind_register_value): Likewise. * darwin-nat-info.c (info_mach_region_command): Use value_address. * cp-valprint.c (cp_print_static_field): Use value_address. * c-valprint.c (c_value_print): Use value_address. * breakpoint.c (update_watchpoint): Use value_address. (can_use_hardware_watchpoint): Likewise. * ada-valprint.c (ada_val_print_1): Use value_address. (ada_value_print): Likewise. * ada-tasks.c (read_fat_string_value): Use value_address. * jv-lang.c (java_link_class_type): Use set_value_address. (java_link_class_type): Likewise. (get_java_utf8_name): Use value_address. (type_from_class): Likewise. (java_link_class_type): Likewise. * findvar.c (value_of_register): Use set_value_address. (read_var_value): Likewise. (read_var_value): Likewise. * eval.c (evaluate_subexp_standard): Use set_value_address. (evaluate_subexp_standard): Use value_address. * dwarf2loc.c (dwarf2_evaluate_loc_desc): Use set_value_address. * ada-lang.c (coerce_unspec_val_to_type): Use set_value_address. (ada_value_primitive_packed_val): Likewise. (ensure_lval): Likewise. (thin_data_pntr): Use value_address. (desc_bounds): Likewise. (ada_value_primitive_packed_val): Likewise. (value_assign_to_component): Likewise. (ensure_lval): Likewise. (make_array_descriptor): Likewise. (ada_to_fixed_value): Likewise. (unwrap_value): Likewise. * value.c (deprecated_value_address_hack): Remove. (value_address): New function. (value_raw_address): Likewise. (set_value_address): Likewise. (value_fn_field): Use set_value_address. (value_from_contents_and_address): Likewise. (value_fn_field): Likewise. (allocate_value_lazy): Don't use VALUE_ADDRESS. (value_as_address): Use value_address. (value_static_field): Likewise. * valops.c (search_struct_field): Use set_value_address. (value_at): Likewise. (value_at_lazy): Likewise. (value_repeat): Likewise. (value_cast_structs): Use value_address. (value_cast): Likewise. (value_fetch_lazy): Likewise. (value_assign): Likewise. (value_repeat): Likewise. (address_of_variable): Likewise. (value_coerce_array): Likewise. (value_coerce_function): Likewise. (value_addr): Likewise. (search_struct_field): Likewise. (search_struct_method): Likewise. (find_method_list): Likewise. (value_struct_elt_for_reference): Likewise. (value_full_object): Likewise. * jv-valprint.c (java_value_print): Use set_value_address. * value.h (deprecated_value_address_hack): Remove. (VALUE_ADDRESS): Remove. (value_address): Declare. (value_raw_address): Declare. (set_value_address): Declare.
2009-05-28 00:53:52 +00:00
set_value_address (field, addr);
set_value_lazy (field, 1);
}
temp = field;
temp = value_struct_elt (&temp, NULL, "name", NULL, "structure");
TYPE_FIELD_NAME (type, i) =
get_java_utf8_name (&objfile->objfile_obstack, temp);
temp = field;
accflags = value_as_long (value_struct_elt (&temp, NULL, "accflags",
NULL, "structure"));
temp = field;
temp = value_struct_elt (&temp, NULL, "info", NULL, "structure");
boffset = value_as_long (value_struct_elt (&temp, NULL, "boffset",
1999-07-07 20:19:36 +00:00
NULL, "structure"));
if (accflags & 0x0001) /* public access */
{
/* ??? */
}
1999-07-07 20:19:36 +00:00
if (accflags & 0x0002) /* private access */
{
SET_TYPE_FIELD_PRIVATE (type, i);
}
1999-07-07 20:19:36 +00:00
if (accflags & 0x0004) /* protected access */
{
SET_TYPE_FIELD_PROTECTED (type, i);
}
1999-07-07 20:19:36 +00:00
if (accflags & 0x0008) /* ACC_STATIC */
SET_FIELD_PHYSADDR (TYPE_FIELD (type, i), boffset);
else
SET_FIELD_BITPOS (TYPE_FIELD (type, i), 8 * boffset);
1999-07-07 20:19:36 +00:00
if (accflags & 0x8000) /* FIELD_UNRESOLVED_FLAG */
{
1999-07-07 20:19:36 +00:00
TYPE_FIELD_TYPE (type, i) = get_java_object_type (); /* FIXME */
}
else
{
struct type *ftype;
temp = field;
temp = value_struct_elt (&temp, NULL, "type", NULL, "structure");
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
ftype = type_from_class (gdbarch, temp);
if (TYPE_CODE (ftype) == TYPE_CODE_STRUCT)
ftype = lookup_pointer_type (ftype);
TYPE_FIELD_TYPE (type, i) = ftype;
}
}
temp = clas;
nmethods = value_as_long (value_struct_elt (&temp, NULL, "method_count",
NULL, "structure"));
j = nmethods * sizeof (struct fn_field);
1999-07-07 20:19:36 +00:00
fn_fields = (struct fn_field *)
obstack_alloc (&objfile->objfile_obstack, j);
memset (fn_fields, 0, j);
1999-07-07 20:19:36 +00:00
fn_fieldlists = (struct fn_fieldlist *)
alloca (nmethods * sizeof (struct fn_fieldlist));
methods = NULL;
1999-07-07 20:19:36 +00:00
for (i = 0; i < nmethods; i++)
{
* gdbtypes.h (struct main_type): Change type of name,tag_name, and fields.name members from char * to const char *. All uses updated. (struct cplus_struct_type): Change type of fn_fieldlists.name member from char * to const char *. All uses updated. (type_name_no_tag): Update. (lookup_unsigned_typename, lookup_signed_typename): Update. * gdbtypes.c (type_name_no_tag): Change result type from char * to const char *. All callers updated. (lookup_unsigned_typename, lookup_signed_typename): Change type of name parameter from char * to const char *. * symtab.h (struct cplus_specific): Change type of demangled_name member from char * to const char *. All uses updated. (struct general_symbol_info): Change type of name and mangled_lang.demangled_name members from char * to const char *. All uses updated. (symbol_get_demangled_name, symbol_natural_name): Update. (symbol_demangled_name, symbol_search_name): Update. * symtab.c (symbol_get_demangled_name): Change result type from char * to const char *. All callers updated. (symbol_natural_name, symbol_demangled_name): Ditto. (symbol_search_name): Ditto. (completion_list_add_name): Change type of symname,sym_text, text,word parameters from char * to const char *. (completion_list_objc_symbol): Change type of sym_text, text,word parameters from char * to const char *. * ada-lang.c (find_struct_field): Change type of name parameter from char * to const char *. (encoded_ordered_before): Similarly for N0,N1 parameters. (old_renaming_is_invisible): Similarly for function_name parameter. (ada_type_name): Change result type from char * to const char *. All callers updated. * ada-lang.h (ada_type_name): Update. * buildsym.c (hashname): Change type of name parameter from char * to const char *. * buildsym.h (hashname): Update. * dbxread.c (end_psymtab): Change type of include_list parameter from char ** to const char **. * dwarf2read.c (determine_prefix): Change result type from char * to const char *. All callers updated. * f-lang.c (find_common_for_function): Change type of name, funcname parameters from char * to const char *. * f-lang.c (find_common_for_function): Update. * f-valprint.c (list_all_visible_commons): Change type of funcname parameters from char * to const char *. * gdbarch.sh (static_transform_name): Change type of name parameter and result from char * to const char *. * gdbarch.c: Regenerate. * gdbarch.h: Regenerate. * i386-sol2-tdep.c (i386_sol2_static_transform_name): Change type of name parameter from char * to const char *. * jv-lang.c (java_primitive_type_from_name): Ditto. (java_demangled_signature_length): Similarly for signature parameter. (java_demangled_signature_copy): Ditto. (java_demangle_type_signature): Ditto. * jv-lang.h (java_primitive_type_from_name): Update. (java_demangle_type_signature): Update. * objc-lang.c (specialcmp): Change type of a,b parameters from char * to const char *. * p-lang.c (is_pascal_string_type): Change type of arrayname parameter from char * to const char *. All callers updated. * p-lang.h (is_pascal_string_type): Update. * solib-frv.c (find_canonical_descriptor_in_load_object): Change type of name parameter from char * to const char *. * sparc-sol2-tdep.c (sparc_sol2_static_transform_name): Ditto. * utils.c (fprintf_symbol_filtered): Ditto. * defs.h (fprintf_symbol_filtered): Update. * sparc-tdep.h (sparc_sol2_static_transform_name): Update. * stabsread.h (end_psymtab): Update. * stack.c (find_frame_funname): Change type of funname parameter from char ** to const char **. * stack.h (find_frame_funname): Update. * typeprint.c (type_print): Change type of varstring parameter from char * to const char *. * value.h (type_print): Update. * xcoffread.c (xcoff_start_psymtab): Change type of filename parameter from char * to const char *. All callers updated. (xcoff_end_psymtab): Change type of include_list parameter from char ** to const char **. All callers updated. (swap_sym): Similarly for name parameter. All callers updated. * coffread.c (patch_type): Add (char*) cast to xfree parameter. Use xstrdup. (process_coff_symbol): Use xstrdup. * stabsread.c (stabs_method_name_from_physname): Renamed from update_method_name_from_physname. Change result type from void to char *. All callers updated. (read_member_functions): In has_destructor case, store name in objfile obstack instead of malloc space. In !has_stub case, fix mem leak.
2012-02-07 04:48:23 +00:00
const char *mname;
int k;
if (methods == NULL)
{
temp = clas;
methods = value_struct_elt (&temp, NULL, "methods",
NULL, "structure");
method = value_ind (methods);
}
else
{ /* Re-use method value for next method. */
2009-05-27 Tom Tromey <tromey@redhat.com> Paul Pluzhnikov <ppluzhnikov@google.com> * mi/mi-main.c (mi_cmd_data_evaluate_expression): Use value_address. * cli/cli-dump.c (dump_value_to_file): Use value_address. * valprint.c (common_val_print): Likewise. * v850-tdep.c (v850_push_dummy_call): Use value_address. * tracepoint.c (encode_actions): Use value_address. * printcmd.c (print_formatted): Use value_address. (x_command): Likewise. * p-valprint.c (pascal_object_print_static_field): Use value_address. * mn10300-tdep.c (mn10300_push_dummy_call): Use value_address. * mips-tdep.c (mips_eabi_push_dummy_call): Use value_address. * m32r-tdep.c (m32r_push_dummy_call): Use value_address. * jv-valprint.c (java_value_print): Use value_address. * infcall.c (find_function_addr): Use value_address. * gnu-v3-abi.c (gnuv3_rtti_type): Use value_address. * gnu-v2-abi.c (gnuv2_value_rtti_type): Use value_address. * frv-tdep.c (frv_push_dummy_call): Use value_address. * frame.c (frame_register_unwind): Use value_address. (frame_unwind_register_value): Likewise. * darwin-nat-info.c (info_mach_region_command): Use value_address. * cp-valprint.c (cp_print_static_field): Use value_address. * c-valprint.c (c_value_print): Use value_address. * breakpoint.c (update_watchpoint): Use value_address. (can_use_hardware_watchpoint): Likewise. * ada-valprint.c (ada_val_print_1): Use value_address. (ada_value_print): Likewise. * ada-tasks.c (read_fat_string_value): Use value_address. * jv-lang.c (java_link_class_type): Use set_value_address. (java_link_class_type): Likewise. (get_java_utf8_name): Use value_address. (type_from_class): Likewise. (java_link_class_type): Likewise. * findvar.c (value_of_register): Use set_value_address. (read_var_value): Likewise. (read_var_value): Likewise. * eval.c (evaluate_subexp_standard): Use set_value_address. (evaluate_subexp_standard): Use value_address. * dwarf2loc.c (dwarf2_evaluate_loc_desc): Use set_value_address. * ada-lang.c (coerce_unspec_val_to_type): Use set_value_address. (ada_value_primitive_packed_val): Likewise. (ensure_lval): Likewise. (thin_data_pntr): Use value_address. (desc_bounds): Likewise. (ada_value_primitive_packed_val): Likewise. (value_assign_to_component): Likewise. (ensure_lval): Likewise. (make_array_descriptor): Likewise. (ada_to_fixed_value): Likewise. (unwrap_value): Likewise. * value.c (deprecated_value_address_hack): Remove. (value_address): New function. (value_raw_address): Likewise. (set_value_address): Likewise. (value_fn_field): Use set_value_address. (value_from_contents_and_address): Likewise. (value_fn_field): Likewise. (allocate_value_lazy): Don't use VALUE_ADDRESS. (value_as_address): Use value_address. (value_static_field): Likewise. * valops.c (search_struct_field): Use set_value_address. (value_at): Likewise. (value_at_lazy): Likewise. (value_repeat): Likewise. (value_cast_structs): Use value_address. (value_cast): Likewise. (value_fetch_lazy): Likewise. (value_assign): Likewise. (value_repeat): Likewise. (address_of_variable): Likewise. (value_coerce_array): Likewise. (value_coerce_function): Likewise. (value_addr): Likewise. (search_struct_field): Likewise. (search_struct_method): Likewise. (find_method_list): Likewise. (value_struct_elt_for_reference): Likewise. (value_full_object): Likewise. * jv-valprint.c (java_value_print): Use set_value_address. * value.h (deprecated_value_address_hack): Remove. (VALUE_ADDRESS): Remove. (value_address): Declare. (value_raw_address): Declare. (set_value_address): Declare.
2009-05-28 00:53:52 +00:00
CORE_ADDR addr
= value_address (method) + TYPE_LENGTH (value_type (method));
2009-05-27 Tom Tromey <tromey@redhat.com> Paul Pluzhnikov <ppluzhnikov@google.com> * mi/mi-main.c (mi_cmd_data_evaluate_expression): Use value_address. * cli/cli-dump.c (dump_value_to_file): Use value_address. * valprint.c (common_val_print): Likewise. * v850-tdep.c (v850_push_dummy_call): Use value_address. * tracepoint.c (encode_actions): Use value_address. * printcmd.c (print_formatted): Use value_address. (x_command): Likewise. * p-valprint.c (pascal_object_print_static_field): Use value_address. * mn10300-tdep.c (mn10300_push_dummy_call): Use value_address. * mips-tdep.c (mips_eabi_push_dummy_call): Use value_address. * m32r-tdep.c (m32r_push_dummy_call): Use value_address. * jv-valprint.c (java_value_print): Use value_address. * infcall.c (find_function_addr): Use value_address. * gnu-v3-abi.c (gnuv3_rtti_type): Use value_address. * gnu-v2-abi.c (gnuv2_value_rtti_type): Use value_address. * frv-tdep.c (frv_push_dummy_call): Use value_address. * frame.c (frame_register_unwind): Use value_address. (frame_unwind_register_value): Likewise. * darwin-nat-info.c (info_mach_region_command): Use value_address. * cp-valprint.c (cp_print_static_field): Use value_address. * c-valprint.c (c_value_print): Use value_address. * breakpoint.c (update_watchpoint): Use value_address. (can_use_hardware_watchpoint): Likewise. * ada-valprint.c (ada_val_print_1): Use value_address. (ada_value_print): Likewise. * ada-tasks.c (read_fat_string_value): Use value_address. * jv-lang.c (java_link_class_type): Use set_value_address. (java_link_class_type): Likewise. (get_java_utf8_name): Use value_address. (type_from_class): Likewise. (java_link_class_type): Likewise. * findvar.c (value_of_register): Use set_value_address. (read_var_value): Likewise. (read_var_value): Likewise. * eval.c (evaluate_subexp_standard): Use set_value_address. (evaluate_subexp_standard): Use value_address. * dwarf2loc.c (dwarf2_evaluate_loc_desc): Use set_value_address. * ada-lang.c (coerce_unspec_val_to_type): Use set_value_address. (ada_value_primitive_packed_val): Likewise. (ensure_lval): Likewise. (thin_data_pntr): Use value_address. (desc_bounds): Likewise. (ada_value_primitive_packed_val): Likewise. (value_assign_to_component): Likewise. (ensure_lval): Likewise. (make_array_descriptor): Likewise. (ada_to_fixed_value): Likewise. (unwrap_value): Likewise. * value.c (deprecated_value_address_hack): Remove. (value_address): New function. (value_raw_address): Likewise. (set_value_address): Likewise. (value_fn_field): Use set_value_address. (value_from_contents_and_address): Likewise. (value_fn_field): Likewise. (allocate_value_lazy): Don't use VALUE_ADDRESS. (value_as_address): Use value_address. (value_static_field): Likewise. * valops.c (search_struct_field): Use set_value_address. (value_at): Likewise. (value_at_lazy): Likewise. (value_repeat): Likewise. (value_cast_structs): Use value_address. (value_cast): Likewise. (value_fetch_lazy): Likewise. (value_assign): Likewise. (value_repeat): Likewise. (address_of_variable): Likewise. (value_coerce_array): Likewise. (value_coerce_function): Likewise. (value_addr): Likewise. (search_struct_field): Likewise. (search_struct_method): Likewise. (find_method_list): Likewise. (value_struct_elt_for_reference): Likewise. (value_full_object): Likewise. * jv-valprint.c (java_value_print): Use set_value_address. * value.h (deprecated_value_address_hack): Remove. (VALUE_ADDRESS): Remove. (value_address): Declare. (value_raw_address): Declare. (set_value_address): Declare.
2009-05-28 00:53:52 +00:00
set_value_address (method, addr);
set_value_lazy (method, 1);
}
/* Get method name. */
temp = method;
temp = value_struct_elt (&temp, NULL, "name", NULL, "structure");
mname = get_java_utf8_name (&objfile->objfile_obstack, temp);
if (strcmp (mname, "<init>") == 0)
mname = unqualified_name;
/* Check for an existing method with the same name.
* This makes building the fn_fieldslists an O(nmethods**2)
* operation. That could be using hashing, but I doubt it
* is worth it. Note that we do maintain the order of methods
* in the inferior's Method table (as long as that is grouped
* by method name), which I think is desirable. --PB */
1999-07-07 20:19:36 +00:00
for (k = 0, j = TYPE_NFN_FIELDS (type);;)
{
if (--j < 0)
{ /* No match - new method name. */
1999-07-07 20:19:36 +00:00
j = TYPE_NFN_FIELDS (type)++;
fn_fieldlists[j].name = mname;
fn_fieldlists[j].length = 1;
fn_fieldlists[j].fn_fields = &fn_fields[i];
k = i;
break;
}
if (strcmp (mname, fn_fieldlists[j].name) == 0)
{ /* Found an existing method with the same name. */
int l;
if (mname != unqualified_name)
obstack_free (&objfile->objfile_obstack, mname);
mname = fn_fieldlists[j].name;
fn_fieldlists[j].length++;
k = i - k; /* Index of new slot. */
/* Shift intervening fn_fields (between k and i) down. */
1999-07-07 20:19:36 +00:00
for (l = i; l > k; l--)
fn_fields[l] = fn_fields[l - 1];
for (l = TYPE_NFN_FIELDS (type); --l > j;)
fn_fieldlists[l].fn_fields++;
break;
}
k += fn_fieldlists[j].length;
}
fn_fields[k].physname = "";
fn_fields[k].is_stub = 1;
/* FIXME */
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
fn_fields[k].type = lookup_function_type
(builtin_java_type (gdbarch)->builtin_void);
TYPE_CODE (fn_fields[k].type) = TYPE_CODE_METHOD;
}
1999-07-07 20:19:36 +00:00
j = TYPE_NFN_FIELDS (type) * sizeof (struct fn_fieldlist);
TYPE_FN_FIELDLISTS (type) = (struct fn_fieldlist *)
obstack_alloc (&objfile->objfile_obstack, j);
memcpy (TYPE_FN_FIELDLISTS (type), fn_fieldlists, j);
1999-07-07 20:19:36 +00:00
return type;
}
struct type *
2000-07-30 01:48:28 +00:00
get_java_object_type (void)
{
struct symbol *sym;
sym = lookup_symbol ("java.lang.Object", NULL, STRUCT_DOMAIN, NULL);
if (sym == NULL)
error (_("cannot find java.lang.Object"));
return SYMBOL_TYPE (sym);
}
int
get_java_object_header_size (struct gdbarch *gdbarch)
{
struct type *objtype = get_java_object_type ();
if (objtype == NULL)
return (2 * gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT);
else
return TYPE_LENGTH (objtype);
}
int
2000-07-30 01:48:28 +00:00
is_object_type (struct type *type)
{
CHECK_TYPEDEF (type);
if (TYPE_CODE (type) == TYPE_CODE_PTR)
{
struct type *ttype = check_typedef (TYPE_TARGET_TYPE (type));
* gdbtypes.h (struct main_type): Change type of name,tag_name, and fields.name members from char * to const char *. All uses updated. (struct cplus_struct_type): Change type of fn_fieldlists.name member from char * to const char *. All uses updated. (type_name_no_tag): Update. (lookup_unsigned_typename, lookup_signed_typename): Update. * gdbtypes.c (type_name_no_tag): Change result type from char * to const char *. All callers updated. (lookup_unsigned_typename, lookup_signed_typename): Change type of name parameter from char * to const char *. * symtab.h (struct cplus_specific): Change type of demangled_name member from char * to const char *. All uses updated. (struct general_symbol_info): Change type of name and mangled_lang.demangled_name members from char * to const char *. All uses updated. (symbol_get_demangled_name, symbol_natural_name): Update. (symbol_demangled_name, symbol_search_name): Update. * symtab.c (symbol_get_demangled_name): Change result type from char * to const char *. All callers updated. (symbol_natural_name, symbol_demangled_name): Ditto. (symbol_search_name): Ditto. (completion_list_add_name): Change type of symname,sym_text, text,word parameters from char * to const char *. (completion_list_objc_symbol): Change type of sym_text, text,word parameters from char * to const char *. * ada-lang.c (find_struct_field): Change type of name parameter from char * to const char *. (encoded_ordered_before): Similarly for N0,N1 parameters. (old_renaming_is_invisible): Similarly for function_name parameter. (ada_type_name): Change result type from char * to const char *. All callers updated. * ada-lang.h (ada_type_name): Update. * buildsym.c (hashname): Change type of name parameter from char * to const char *. * buildsym.h (hashname): Update. * dbxread.c (end_psymtab): Change type of include_list parameter from char ** to const char **. * dwarf2read.c (determine_prefix): Change result type from char * to const char *. All callers updated. * f-lang.c (find_common_for_function): Change type of name, funcname parameters from char * to const char *. * f-lang.c (find_common_for_function): Update. * f-valprint.c (list_all_visible_commons): Change type of funcname parameters from char * to const char *. * gdbarch.sh (static_transform_name): Change type of name parameter and result from char * to const char *. * gdbarch.c: Regenerate. * gdbarch.h: Regenerate. * i386-sol2-tdep.c (i386_sol2_static_transform_name): Change type of name parameter from char * to const char *. * jv-lang.c (java_primitive_type_from_name): Ditto. (java_demangled_signature_length): Similarly for signature parameter. (java_demangled_signature_copy): Ditto. (java_demangle_type_signature): Ditto. * jv-lang.h (java_primitive_type_from_name): Update. (java_demangle_type_signature): Update. * objc-lang.c (specialcmp): Change type of a,b parameters from char * to const char *. * p-lang.c (is_pascal_string_type): Change type of arrayname parameter from char * to const char *. All callers updated. * p-lang.h (is_pascal_string_type): Update. * solib-frv.c (find_canonical_descriptor_in_load_object): Change type of name parameter from char * to const char *. * sparc-sol2-tdep.c (sparc_sol2_static_transform_name): Ditto. * utils.c (fprintf_symbol_filtered): Ditto. * defs.h (fprintf_symbol_filtered): Update. * sparc-tdep.h (sparc_sol2_static_transform_name): Update. * stabsread.h (end_psymtab): Update. * stack.c (find_frame_funname): Change type of funname parameter from char ** to const char **. * stack.h (find_frame_funname): Update. * typeprint.c (type_print): Change type of varstring parameter from char * to const char *. * value.h (type_print): Update. * xcoffread.c (xcoff_start_psymtab): Change type of filename parameter from char * to const char *. All callers updated. (xcoff_end_psymtab): Change type of include_list parameter from char ** to const char **. All callers updated. (swap_sym): Similarly for name parameter. All callers updated. * coffread.c (patch_type): Add (char*) cast to xfree parameter. Use xstrdup. (process_coff_symbol): Use xstrdup. * stabsread.c (stabs_method_name_from_physname): Renamed from update_method_name_from_physname. Change result type from void to char *. All callers updated. (read_member_functions): In has_destructor case, store name in objfile obstack instead of malloc space. In !has_stub case, fix mem leak.
2012-02-07 04:48:23 +00:00
const char *name;
if (TYPE_CODE (ttype) != TYPE_CODE_STRUCT)
return 0;
while (TYPE_N_BASECLASSES (ttype) > 0)
ttype = TYPE_BASECLASS (ttype, 0);
name = TYPE_TAG_NAME (ttype);
if (name != NULL && strcmp (name, "java.lang.Object") == 0)
return 1;
name
= TYPE_NFIELDS (ttype) > 0 ? TYPE_FIELD_NAME (ttype, 0) : (char *) 0;
if (name != NULL && strcmp (name, "vtable") == 0)
return 1;
}
return 0;
}
struct type *
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
java_primitive_type (struct gdbarch *gdbarch, int signature)
{
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
const struct builtin_java_type *builtin = builtin_java_type (gdbarch);
switch (signature)
{
1999-07-07 20:19:36 +00:00
case 'B':
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return builtin->builtin_byte;
1999-07-07 20:19:36 +00:00
case 'S':
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return builtin->builtin_short;
1999-07-07 20:19:36 +00:00
case 'I':
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return builtin->builtin_int;
1999-07-07 20:19:36 +00:00
case 'J':
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return builtin->builtin_long;
1999-07-07 20:19:36 +00:00
case 'Z':
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return builtin->builtin_boolean;
1999-07-07 20:19:36 +00:00
case 'C':
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return builtin->builtin_char;
1999-07-07 20:19:36 +00:00
case 'F':
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return builtin->builtin_float;
1999-07-07 20:19:36 +00:00
case 'D':
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return builtin->builtin_double;
1999-07-07 20:19:36 +00:00
case 'V':
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return builtin->builtin_void;
}
2005-02-10 Andrew Cagney <cagney@gnu.org> Mark up all error and warning messages. * ada-lang.c, amd64-tdep.c, arch-utils.c, breakpoint.c: Update. * bsd-kvm.c, bsd-uthread.c, coff-solib.h, coffread.c: Update. * core-aout.c, core-regset.c, corefile.c, corelow.c: Update. * cp-abi.c, cp-support.c, cp-valprint.c, cris-tdep.c: Update. * dbxread.c, demangle.c, doublest.c, dsrec.c: Update. * dve3900-rom.c, dwarf2expr.c, dwarf2loc.c: Update. * dwarf2read.c, dwarfread.c, elfread.c, eval.c: Update. * event-top.c, exec.c, expprint.c, f-lang.c: Update. * f-typeprint.c, f-valprint.c, fbsd-nat.c, findvar.c: Update. * frame.c, frv-linux-tdep.c, gcore.c, gdbtypes.c: Update. * gnu-nat.c, gnu-v2-abi.c, gnu-v3-abi.c, go32-nat.c: Update. * hpacc-abi.c, hppa-hpux-nat.c, hppa-hpux-tdep.c: Update. * hppa-linux-nat.c, hppa-linux-tdep.c, hppa-tdep.c: Update. * hpread.c, hpux-thread.c, i386-linux-nat.c: Update. * i386-linux-tdep.c, i386-tdep.c, i386bsd-nat.c: Update. * i386gnu-nat.c, i387-tdep.c, ia64-linux-nat.c: Update. * ia64-tdep.c, inf-child.c, inf-ptrace.c, inf-ttrace.c: Update. * infcall.c, infcmd.c, inflow.c, infptrace.c, infrun.c: Update. * inftarg.c, interps.c, irix5-nat.c, jv-lang.c: Update. * kod-cisco.c, kod.c, language.c, libunwind-frame.c: Update. * linespec.c, linux-nat.c, linux-thread-db.c, m2-lang.c: Update. * m32r-rom.c, m68hc11-tdep.c, m68k-tdep.c: Update. * m68klinux-nat.c, macrocmd.c, macroexp.c, main.c: Update. * maint.c, mdebugread.c, mem-break.c, memattr.c: Update. * mips-linux-tdep.c, mips-tdep.c, mipsread.c, monitor.c: Update. * nlmread.c, nto-procfs.c, objc-lang.c, objfiles.c: Update. * observer.c, ocd.c, p-lang.c, p-typeprint.c: Update. * p-valprint.c, pa64solib.c, parse.c, ppc-linux-tdep.c: Update. * ppcnbsd-tdep.c, printcmd.c, procfs.c, remote-e7000.c: Update. * remote-fileio.c, remote-m32r-sdi.c, remote-rdi.c: Update. * remote-rdp.c, remote-sim.c, remote-st.c: Update. * remote-utils.c, remote-utils.h, remote.c: Update. * rom68k-rom.c, rs6000-nat.c, s390-tdep.c, scm-lang.c: Update. * ser-e7kpc.c, ser-tcp.c, ser-unix.c, sh-tdep.c: Update. * sh3-rom.c, shnbsd-tdep.c, sol-thread.c, solib-aix5.c: Update. * solib-frv.c, solib-irix.c, solib-osf.c, solib-pa64.c: Update. * solib-som.c, solib-sunos.c, solib-svr4.c, solib.c: Update. * somread.c, somsolib.c, source.c, stabsread.c: Update. * stack.c, std-regs.c, symfile-mem.c, symfile.c: Update. * symmisc.c, symtab.c, target.c, thread.c, top.c: Update. * tracepoint.c, trad-frame.c, typeprint.c, utils.c: Update. * uw-thread.c, valarith.c, valops.c, valprint.c: Update. * value.c, varobj.c, version.in, win32-nat.c, wince.c: Update. * xcoffread.c, xcoffsolib.c, cli/cli-cmds.c: Update. * cli/cli-decode.c, cli/cli-dump.c, cli/cli-logging.c: Update. * cli/cli-script.c, cli/cli-setshow.c, mi/mi-cmd-break.c: Update. * mi/mi-cmd-disas.c, mi/mi-cmd-env.c, mi/mi-cmd-file.c: Update. * mi/mi-cmd-stack.c, mi/mi-cmd-var.c, mi/mi-getopt.c: Update. * mi/mi-symbol-cmds.c, tui/tui-layout.c, tui/tui-stack.c: Update. * tui/tui-win.c: Update.
2005-02-11 04:06:14 +00:00
error (_("unknown signature '%c' for primitive type"), (char) signature);
}
/* If name[0 .. namelen-1] is the name of a primitive Java type,
return that type. Otherwise, return NULL. */
struct type *
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
java_primitive_type_from_name (struct gdbarch *gdbarch,
* gdbtypes.h (struct main_type): Change type of name,tag_name, and fields.name members from char * to const char *. All uses updated. (struct cplus_struct_type): Change type of fn_fieldlists.name member from char * to const char *. All uses updated. (type_name_no_tag): Update. (lookup_unsigned_typename, lookup_signed_typename): Update. * gdbtypes.c (type_name_no_tag): Change result type from char * to const char *. All callers updated. (lookup_unsigned_typename, lookup_signed_typename): Change type of name parameter from char * to const char *. * symtab.h (struct cplus_specific): Change type of demangled_name member from char * to const char *. All uses updated. (struct general_symbol_info): Change type of name and mangled_lang.demangled_name members from char * to const char *. All uses updated. (symbol_get_demangled_name, symbol_natural_name): Update. (symbol_demangled_name, symbol_search_name): Update. * symtab.c (symbol_get_demangled_name): Change result type from char * to const char *. All callers updated. (symbol_natural_name, symbol_demangled_name): Ditto. (symbol_search_name): Ditto. (completion_list_add_name): Change type of symname,sym_text, text,word parameters from char * to const char *. (completion_list_objc_symbol): Change type of sym_text, text,word parameters from char * to const char *. * ada-lang.c (find_struct_field): Change type of name parameter from char * to const char *. (encoded_ordered_before): Similarly for N0,N1 parameters. (old_renaming_is_invisible): Similarly for function_name parameter. (ada_type_name): Change result type from char * to const char *. All callers updated. * ada-lang.h (ada_type_name): Update. * buildsym.c (hashname): Change type of name parameter from char * to const char *. * buildsym.h (hashname): Update. * dbxread.c (end_psymtab): Change type of include_list parameter from char ** to const char **. * dwarf2read.c (determine_prefix): Change result type from char * to const char *. All callers updated. * f-lang.c (find_common_for_function): Change type of name, funcname parameters from char * to const char *. * f-lang.c (find_common_for_function): Update. * f-valprint.c (list_all_visible_commons): Change type of funcname parameters from char * to const char *. * gdbarch.sh (static_transform_name): Change type of name parameter and result from char * to const char *. * gdbarch.c: Regenerate. * gdbarch.h: Regenerate. * i386-sol2-tdep.c (i386_sol2_static_transform_name): Change type of name parameter from char * to const char *. * jv-lang.c (java_primitive_type_from_name): Ditto. (java_demangled_signature_length): Similarly for signature parameter. (java_demangled_signature_copy): Ditto. (java_demangle_type_signature): Ditto. * jv-lang.h (java_primitive_type_from_name): Update. (java_demangle_type_signature): Update. * objc-lang.c (specialcmp): Change type of a,b parameters from char * to const char *. * p-lang.c (is_pascal_string_type): Change type of arrayname parameter from char * to const char *. All callers updated. * p-lang.h (is_pascal_string_type): Update. * solib-frv.c (find_canonical_descriptor_in_load_object): Change type of name parameter from char * to const char *. * sparc-sol2-tdep.c (sparc_sol2_static_transform_name): Ditto. * utils.c (fprintf_symbol_filtered): Ditto. * defs.h (fprintf_symbol_filtered): Update. * sparc-tdep.h (sparc_sol2_static_transform_name): Update. * stabsread.h (end_psymtab): Update. * stack.c (find_frame_funname): Change type of funname parameter from char ** to const char **. * stack.h (find_frame_funname): Update. * typeprint.c (type_print): Change type of varstring parameter from char * to const char *. * value.h (type_print): Update. * xcoffread.c (xcoff_start_psymtab): Change type of filename parameter from char * to const char *. All callers updated. (xcoff_end_psymtab): Change type of include_list parameter from char ** to const char **. All callers updated. (swap_sym): Similarly for name parameter. All callers updated. * coffread.c (patch_type): Add (char*) cast to xfree parameter. Use xstrdup. (process_coff_symbol): Use xstrdup. * stabsread.c (stabs_method_name_from_physname): Renamed from update_method_name_from_physname. Change result type from void to char *. All callers updated. (read_member_functions): In has_destructor case, store name in objfile obstack instead of malloc space. In !has_stub case, fix mem leak.
2012-02-07 04:48:23 +00:00
const char *name, int namelen)
{
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
const struct builtin_java_type *builtin = builtin_java_type (gdbarch);
switch (name[0])
{
case 'b':
if (namelen == 4 && memcmp (name, "byte", 4) == 0)
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return builtin->builtin_byte;
if (namelen == 7 && memcmp (name, "boolean", 7) == 0)
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return builtin->builtin_boolean;
break;
case 'c':
if (namelen == 4 && memcmp (name, "char", 4) == 0)
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return builtin->builtin_char;
break;
case 'd':
if (namelen == 6 && memcmp (name, "double", 6) == 0)
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return builtin->builtin_double;
break;
case 'f':
if (namelen == 5 && memcmp (name, "float", 5) == 0)
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return builtin->builtin_float;
break;
case 'i':
if (namelen == 3 && memcmp (name, "int", 3) == 0)
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return builtin->builtin_int;
break;
case 'l':
if (namelen == 4 && memcmp (name, "long", 4) == 0)
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return builtin->builtin_long;
break;
case 's':
if (namelen == 5 && memcmp (name, "short", 5) == 0)
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return builtin->builtin_short;
break;
case 'v':
if (namelen == 4 && memcmp (name, "void", 4) == 0)
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return builtin->builtin_void;
break;
}
return NULL;
}
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
static char *
java_primitive_type_name (int signature)
{
switch (signature)
{
case 'B':
return "byte";
case 'S':
return "short";
case 'I':
return "int";
case 'J':
return "long";
case 'Z':
return "boolean";
case 'C':
return "char";
case 'F':
return "float";
case 'D':
return "double";
case 'V':
return "void";
}
error (_("unknown signature '%c' for primitive type"), (char) signature);
}
/* Return the length (in bytes) of demangled name of the Java type
signature string SIGNATURE. */
static int
* gdbtypes.h (struct main_type): Change type of name,tag_name, and fields.name members from char * to const char *. All uses updated. (struct cplus_struct_type): Change type of fn_fieldlists.name member from char * to const char *. All uses updated. (type_name_no_tag): Update. (lookup_unsigned_typename, lookup_signed_typename): Update. * gdbtypes.c (type_name_no_tag): Change result type from char * to const char *. All callers updated. (lookup_unsigned_typename, lookup_signed_typename): Change type of name parameter from char * to const char *. * symtab.h (struct cplus_specific): Change type of demangled_name member from char * to const char *. All uses updated. (struct general_symbol_info): Change type of name and mangled_lang.demangled_name members from char * to const char *. All uses updated. (symbol_get_demangled_name, symbol_natural_name): Update. (symbol_demangled_name, symbol_search_name): Update. * symtab.c (symbol_get_demangled_name): Change result type from char * to const char *. All callers updated. (symbol_natural_name, symbol_demangled_name): Ditto. (symbol_search_name): Ditto. (completion_list_add_name): Change type of symname,sym_text, text,word parameters from char * to const char *. (completion_list_objc_symbol): Change type of sym_text, text,word parameters from char * to const char *. * ada-lang.c (find_struct_field): Change type of name parameter from char * to const char *. (encoded_ordered_before): Similarly for N0,N1 parameters. (old_renaming_is_invisible): Similarly for function_name parameter. (ada_type_name): Change result type from char * to const char *. All callers updated. * ada-lang.h (ada_type_name): Update. * buildsym.c (hashname): Change type of name parameter from char * to const char *. * buildsym.h (hashname): Update. * dbxread.c (end_psymtab): Change type of include_list parameter from char ** to const char **. * dwarf2read.c (determine_prefix): Change result type from char * to const char *. All callers updated. * f-lang.c (find_common_for_function): Change type of name, funcname parameters from char * to const char *. * f-lang.c (find_common_for_function): Update. * f-valprint.c (list_all_visible_commons): Change type of funcname parameters from char * to const char *. * gdbarch.sh (static_transform_name): Change type of name parameter and result from char * to const char *. * gdbarch.c: Regenerate. * gdbarch.h: Regenerate. * i386-sol2-tdep.c (i386_sol2_static_transform_name): Change type of name parameter from char * to const char *. * jv-lang.c (java_primitive_type_from_name): Ditto. (java_demangled_signature_length): Similarly for signature parameter. (java_demangled_signature_copy): Ditto. (java_demangle_type_signature): Ditto. * jv-lang.h (java_primitive_type_from_name): Update. (java_demangle_type_signature): Update. * objc-lang.c (specialcmp): Change type of a,b parameters from char * to const char *. * p-lang.c (is_pascal_string_type): Change type of arrayname parameter from char * to const char *. All callers updated. * p-lang.h (is_pascal_string_type): Update. * solib-frv.c (find_canonical_descriptor_in_load_object): Change type of name parameter from char * to const char *. * sparc-sol2-tdep.c (sparc_sol2_static_transform_name): Ditto. * utils.c (fprintf_symbol_filtered): Ditto. * defs.h (fprintf_symbol_filtered): Update. * sparc-tdep.h (sparc_sol2_static_transform_name): Update. * stabsread.h (end_psymtab): Update. * stack.c (find_frame_funname): Change type of funname parameter from char ** to const char **. * stack.h (find_frame_funname): Update. * typeprint.c (type_print): Change type of varstring parameter from char * to const char *. * value.h (type_print): Update. * xcoffread.c (xcoff_start_psymtab): Change type of filename parameter from char * to const char *. All callers updated. (xcoff_end_psymtab): Change type of include_list parameter from char ** to const char **. All callers updated. (swap_sym): Similarly for name parameter. All callers updated. * coffread.c (patch_type): Add (char*) cast to xfree parameter. Use xstrdup. (process_coff_symbol): Use xstrdup. * stabsread.c (stabs_method_name_from_physname): Renamed from update_method_name_from_physname. Change result type from void to char *. All callers updated. (read_member_functions): In has_destructor case, store name in objfile obstack instead of malloc space. In !has_stub case, fix mem leak.
2012-02-07 04:48:23 +00:00
java_demangled_signature_length (const char *signature)
{
int array = 0;
1999-07-07 20:19:36 +00:00
for (; *signature == '['; signature++)
array += 2; /* Two chars for "[]". */
switch (signature[0])
{
case 'L':
/* Subtract 2 for 'L' and ';'. */
return strlen (signature) - 2 + array;
default:
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return strlen (java_primitive_type_name (signature[0])) + array;
}
}
/* Demangle the Java type signature SIGNATURE, leaving the result in
RESULT. */
static void
* gdbtypes.h (struct main_type): Change type of name,tag_name, and fields.name members from char * to const char *. All uses updated. (struct cplus_struct_type): Change type of fn_fieldlists.name member from char * to const char *. All uses updated. (type_name_no_tag): Update. (lookup_unsigned_typename, lookup_signed_typename): Update. * gdbtypes.c (type_name_no_tag): Change result type from char * to const char *. All callers updated. (lookup_unsigned_typename, lookup_signed_typename): Change type of name parameter from char * to const char *. * symtab.h (struct cplus_specific): Change type of demangled_name member from char * to const char *. All uses updated. (struct general_symbol_info): Change type of name and mangled_lang.demangled_name members from char * to const char *. All uses updated. (symbol_get_demangled_name, symbol_natural_name): Update. (symbol_demangled_name, symbol_search_name): Update. * symtab.c (symbol_get_demangled_name): Change result type from char * to const char *. All callers updated. (symbol_natural_name, symbol_demangled_name): Ditto. (symbol_search_name): Ditto. (completion_list_add_name): Change type of symname,sym_text, text,word parameters from char * to const char *. (completion_list_objc_symbol): Change type of sym_text, text,word parameters from char * to const char *. * ada-lang.c (find_struct_field): Change type of name parameter from char * to const char *. (encoded_ordered_before): Similarly for N0,N1 parameters. (old_renaming_is_invisible): Similarly for function_name parameter. (ada_type_name): Change result type from char * to const char *. All callers updated. * ada-lang.h (ada_type_name): Update. * buildsym.c (hashname): Change type of name parameter from char * to const char *. * buildsym.h (hashname): Update. * dbxread.c (end_psymtab): Change type of include_list parameter from char ** to const char **. * dwarf2read.c (determine_prefix): Change result type from char * to const char *. All callers updated. * f-lang.c (find_common_for_function): Change type of name, funcname parameters from char * to const char *. * f-lang.c (find_common_for_function): Update. * f-valprint.c (list_all_visible_commons): Change type of funcname parameters from char * to const char *. * gdbarch.sh (static_transform_name): Change type of name parameter and result from char * to const char *. * gdbarch.c: Regenerate. * gdbarch.h: Regenerate. * i386-sol2-tdep.c (i386_sol2_static_transform_name): Change type of name parameter from char * to const char *. * jv-lang.c (java_primitive_type_from_name): Ditto. (java_demangled_signature_length): Similarly for signature parameter. (java_demangled_signature_copy): Ditto. (java_demangle_type_signature): Ditto. * jv-lang.h (java_primitive_type_from_name): Update. (java_demangle_type_signature): Update. * objc-lang.c (specialcmp): Change type of a,b parameters from char * to const char *. * p-lang.c (is_pascal_string_type): Change type of arrayname parameter from char * to const char *. All callers updated. * p-lang.h (is_pascal_string_type): Update. * solib-frv.c (find_canonical_descriptor_in_load_object): Change type of name parameter from char * to const char *. * sparc-sol2-tdep.c (sparc_sol2_static_transform_name): Ditto. * utils.c (fprintf_symbol_filtered): Ditto. * defs.h (fprintf_symbol_filtered): Update. * sparc-tdep.h (sparc_sol2_static_transform_name): Update. * stabsread.h (end_psymtab): Update. * stack.c (find_frame_funname): Change type of funname parameter from char ** to const char **. * stack.h (find_frame_funname): Update. * typeprint.c (type_print): Change type of varstring parameter from char * to const char *. * value.h (type_print): Update. * xcoffread.c (xcoff_start_psymtab): Change type of filename parameter from char * to const char *. All callers updated. (xcoff_end_psymtab): Change type of include_list parameter from char ** to const char **. All callers updated. (swap_sym): Similarly for name parameter. All callers updated. * coffread.c (patch_type): Add (char*) cast to xfree parameter. Use xstrdup. (process_coff_symbol): Use xstrdup. * stabsread.c (stabs_method_name_from_physname): Renamed from update_method_name_from_physname. Change result type from void to char *. All callers updated. (read_member_functions): In has_destructor case, store name in objfile obstack instead of malloc space. In !has_stub case, fix mem leak.
2012-02-07 04:48:23 +00:00
java_demangled_signature_copy (char *result, const char *signature)
{
int array = 0;
char *ptr;
int i;
while (*signature == '[')
{
array++;
signature++;
}
switch (signature[0])
{
case 'L':
/* Subtract 2 for 'L' and ';', but add 1 for final nul. */
signature++;
ptr = result;
1999-07-07 20:19:36 +00:00
for (; *signature != ';' && *signature != '\0'; signature++)
{
if (*signature == '/')
*ptr++ = '.';
else
*ptr++ = *signature;
}
break;
default:
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
ptr = java_primitive_type_name (signature[0]);
i = strlen (ptr);
strcpy (result, ptr);
ptr = result + i;
break;
}
while (--array >= 0)
{
*ptr++ = '[';
*ptr++ = ']';
}
}
/* Return the demangled name of the Java type signature string SIGNATURE,
as a freshly allocated copy. */
char *
* gdbtypes.h (struct main_type): Change type of name,tag_name, and fields.name members from char * to const char *. All uses updated. (struct cplus_struct_type): Change type of fn_fieldlists.name member from char * to const char *. All uses updated. (type_name_no_tag): Update. (lookup_unsigned_typename, lookup_signed_typename): Update. * gdbtypes.c (type_name_no_tag): Change result type from char * to const char *. All callers updated. (lookup_unsigned_typename, lookup_signed_typename): Change type of name parameter from char * to const char *. * symtab.h (struct cplus_specific): Change type of demangled_name member from char * to const char *. All uses updated. (struct general_symbol_info): Change type of name and mangled_lang.demangled_name members from char * to const char *. All uses updated. (symbol_get_demangled_name, symbol_natural_name): Update. (symbol_demangled_name, symbol_search_name): Update. * symtab.c (symbol_get_demangled_name): Change result type from char * to const char *. All callers updated. (symbol_natural_name, symbol_demangled_name): Ditto. (symbol_search_name): Ditto. (completion_list_add_name): Change type of symname,sym_text, text,word parameters from char * to const char *. (completion_list_objc_symbol): Change type of sym_text, text,word parameters from char * to const char *. * ada-lang.c (find_struct_field): Change type of name parameter from char * to const char *. (encoded_ordered_before): Similarly for N0,N1 parameters. (old_renaming_is_invisible): Similarly for function_name parameter. (ada_type_name): Change result type from char * to const char *. All callers updated. * ada-lang.h (ada_type_name): Update. * buildsym.c (hashname): Change type of name parameter from char * to const char *. * buildsym.h (hashname): Update. * dbxread.c (end_psymtab): Change type of include_list parameter from char ** to const char **. * dwarf2read.c (determine_prefix): Change result type from char * to const char *. All callers updated. * f-lang.c (find_common_for_function): Change type of name, funcname parameters from char * to const char *. * f-lang.c (find_common_for_function): Update. * f-valprint.c (list_all_visible_commons): Change type of funcname parameters from char * to const char *. * gdbarch.sh (static_transform_name): Change type of name parameter and result from char * to const char *. * gdbarch.c: Regenerate. * gdbarch.h: Regenerate. * i386-sol2-tdep.c (i386_sol2_static_transform_name): Change type of name parameter from char * to const char *. * jv-lang.c (java_primitive_type_from_name): Ditto. (java_demangled_signature_length): Similarly for signature parameter. (java_demangled_signature_copy): Ditto. (java_demangle_type_signature): Ditto. * jv-lang.h (java_primitive_type_from_name): Update. (java_demangle_type_signature): Update. * objc-lang.c (specialcmp): Change type of a,b parameters from char * to const char *. * p-lang.c (is_pascal_string_type): Change type of arrayname parameter from char * to const char *. All callers updated. * p-lang.h (is_pascal_string_type): Update. * solib-frv.c (find_canonical_descriptor_in_load_object): Change type of name parameter from char * to const char *. * sparc-sol2-tdep.c (sparc_sol2_static_transform_name): Ditto. * utils.c (fprintf_symbol_filtered): Ditto. * defs.h (fprintf_symbol_filtered): Update. * sparc-tdep.h (sparc_sol2_static_transform_name): Update. * stabsread.h (end_psymtab): Update. * stack.c (find_frame_funname): Change type of funname parameter from char ** to const char **. * stack.h (find_frame_funname): Update. * typeprint.c (type_print): Change type of varstring parameter from char * to const char *. * value.h (type_print): Update. * xcoffread.c (xcoff_start_psymtab): Change type of filename parameter from char * to const char *. All callers updated. (xcoff_end_psymtab): Change type of include_list parameter from char ** to const char **. All callers updated. (swap_sym): Similarly for name parameter. All callers updated. * coffread.c (patch_type): Add (char*) cast to xfree parameter. Use xstrdup. (process_coff_symbol): Use xstrdup. * stabsread.c (stabs_method_name_from_physname): Renamed from update_method_name_from_physname. Change result type from void to char *. All callers updated. (read_member_functions): In has_destructor case, store name in objfile obstack instead of malloc space. In !has_stub case, fix mem leak.
2012-02-07 04:48:23 +00:00
java_demangle_type_signature (const char *signature)
{
int length = java_demangled_signature_length (signature);
char *result = xmalloc (length + 1);
java_demangled_signature_copy (result, signature);
result[length] = '\0';
return result;
}
/* Return the type of TYPE followed by DIMS pairs of [ ].
If DIMS == 0, TYPE is returned. */
struct type *
2000-07-30 01:48:28 +00:00
java_array_type (struct type *type, int dims)
{
while (dims-- > 0)
{
/* FIXME This is bogus! Java arrays are not gdb arrays! */
type = lookup_array_range_type (type, 0, 0);
}
return type;
}
/* Create a Java string in the inferior from a (Utf8) literal. */
2001-10-21 01:57:42 +00:00
static struct value *
2000-07-30 01:48:28 +00:00
java_value_string (char *ptr, int len)
{
2005-02-10 Andrew Cagney <cagney@gnu.org> Mark up all error and warning messages. * ada-lang.c, amd64-tdep.c, arch-utils.c, breakpoint.c: Update. * bsd-kvm.c, bsd-uthread.c, coff-solib.h, coffread.c: Update. * core-aout.c, core-regset.c, corefile.c, corelow.c: Update. * cp-abi.c, cp-support.c, cp-valprint.c, cris-tdep.c: Update. * dbxread.c, demangle.c, doublest.c, dsrec.c: Update. * dve3900-rom.c, dwarf2expr.c, dwarf2loc.c: Update. * dwarf2read.c, dwarfread.c, elfread.c, eval.c: Update. * event-top.c, exec.c, expprint.c, f-lang.c: Update. * f-typeprint.c, f-valprint.c, fbsd-nat.c, findvar.c: Update. * frame.c, frv-linux-tdep.c, gcore.c, gdbtypes.c: Update. * gnu-nat.c, gnu-v2-abi.c, gnu-v3-abi.c, go32-nat.c: Update. * hpacc-abi.c, hppa-hpux-nat.c, hppa-hpux-tdep.c: Update. * hppa-linux-nat.c, hppa-linux-tdep.c, hppa-tdep.c: Update. * hpread.c, hpux-thread.c, i386-linux-nat.c: Update. * i386-linux-tdep.c, i386-tdep.c, i386bsd-nat.c: Update. * i386gnu-nat.c, i387-tdep.c, ia64-linux-nat.c: Update. * ia64-tdep.c, inf-child.c, inf-ptrace.c, inf-ttrace.c: Update. * infcall.c, infcmd.c, inflow.c, infptrace.c, infrun.c: Update. * inftarg.c, interps.c, irix5-nat.c, jv-lang.c: Update. * kod-cisco.c, kod.c, language.c, libunwind-frame.c: Update. * linespec.c, linux-nat.c, linux-thread-db.c, m2-lang.c: Update. * m32r-rom.c, m68hc11-tdep.c, m68k-tdep.c: Update. * m68klinux-nat.c, macrocmd.c, macroexp.c, main.c: Update. * maint.c, mdebugread.c, mem-break.c, memattr.c: Update. * mips-linux-tdep.c, mips-tdep.c, mipsread.c, monitor.c: Update. * nlmread.c, nto-procfs.c, objc-lang.c, objfiles.c: Update. * observer.c, ocd.c, p-lang.c, p-typeprint.c: Update. * p-valprint.c, pa64solib.c, parse.c, ppc-linux-tdep.c: Update. * ppcnbsd-tdep.c, printcmd.c, procfs.c, remote-e7000.c: Update. * remote-fileio.c, remote-m32r-sdi.c, remote-rdi.c: Update. * remote-rdp.c, remote-sim.c, remote-st.c: Update. * remote-utils.c, remote-utils.h, remote.c: Update. * rom68k-rom.c, rs6000-nat.c, s390-tdep.c, scm-lang.c: Update. * ser-e7kpc.c, ser-tcp.c, ser-unix.c, sh-tdep.c: Update. * sh3-rom.c, shnbsd-tdep.c, sol-thread.c, solib-aix5.c: Update. * solib-frv.c, solib-irix.c, solib-osf.c, solib-pa64.c: Update. * solib-som.c, solib-sunos.c, solib-svr4.c, solib.c: Update. * somread.c, somsolib.c, source.c, stabsread.c: Update. * stack.c, std-regs.c, symfile-mem.c, symfile.c: Update. * symmisc.c, symtab.c, target.c, thread.c, top.c: Update. * tracepoint.c, trad-frame.c, typeprint.c, utils.c: Update. * uw-thread.c, valarith.c, valops.c, valprint.c: Update. * value.c, varobj.c, version.in, win32-nat.c, wince.c: Update. * xcoffread.c, xcoffsolib.c, cli/cli-cmds.c: Update. * cli/cli-decode.c, cli/cli-dump.c, cli/cli-logging.c: Update. * cli/cli-script.c, cli/cli-setshow.c, mi/mi-cmd-break.c: Update. * mi/mi-cmd-disas.c, mi/mi-cmd-env.c, mi/mi-cmd-file.c: Update. * mi/mi-cmd-stack.c, mi/mi-cmd-var.c, mi/mi-getopt.c: Update. * mi/mi-symbol-cmds.c, tui/tui-layout.c, tui/tui-stack.c: Update. * tui/tui-win.c: Update.
2005-02-11 04:06:14 +00:00
error (_("not implemented - java_value_string")); /* FIXME */
}
/* Return the encoding that should be used for the character type
TYPE. */
static const char *
java_get_encoding (struct type *type)
{
struct gdbarch *arch = get_type_arch (type);
const char *encoding;
if (type == builtin_java_type (arch)->builtin_char)
{
if (gdbarch_byte_order (arch) == BFD_ENDIAN_BIG)
encoding = "UTF-16BE";
else
encoding = "UTF-16LE";
}
else
encoding = target_charset (arch);
return encoding;
}
/* Print the character C on STREAM as part of the contents of a literal
string whose delimiter is QUOTER. Note that that format for printing
characters and strings is language specific. */
static void
gdb: 2009-03-19 Tom Tromey <tromey@redhat.com> Julian Brown <julian@codesourcery.com> PR i18n/7220, PR i18n/7821, PR exp/8815, PR exp/9103, PR i18n/9401, PR exp/9613: * NEWS: Update * value.h (value_typed_string): Declare. (val_print_string): Update. * valprint.h (print_char_chars): Update. * valprint.c (print_char_chars): Add type argument. Update. (val_print_string): Likewise. * valops.c (value_typed_string): New function. * utils.c (host_char_to_target): New function. (parse_escape): Use host_char_to_target, host_hex_value. Update. Remove '^' case. (no_control_char_error): Remove. * typeprint.c (print_type_scalar): Update. * scm-valprint.c (scm_scmval_print): Update. * scm-lang.h (scm_printchar, scm_printstr): Update. * scm-lang.c (scm_printchar): Add type argument. (scm_printstr): Likewise. * printcmd.c (print_formatted): Update. (print_scalar_formatted): Update. (printf_command) <wide_string_arg, wide_char_arg>: New constants. Handle '%lc' and '%ls'. * parser-defs.h (struct typed_stoken): New type. (struct stoken_vector): Likewise. (write_exp_string_vector): Declare. * parse.c (write_exp_string_vector): New function. * p-valprint.c (pascal_val_print): Update. * p-lang.h (is_pascal_string_type, pascal_printchar, pascal_printstr): Update. * p-lang.c (is_pascal_string_type): Remove 'char_size' argument. Add 'char_type' argument. (pascal_emit_char): Add type argument. (pascal_printchar): Likewise. (pascal_printstr): Likewise. * objc-lang.c (objc_emit_char): Add type argument. (objc_printchar): Likewise. (objc_printstr): Likewise. * macroexp.c (get_character_constant): Handle unicode characters. Use c_parse_escape. (get_string_literal): Handle unicode strings. Use c_parse_escape. * m2-valprint.c (print_unpacked_pointer): Update. (m2_print_array_contents): Update. (m2_val_print): Update. * m2-lang.c (m2_emit_char): Add type argument. (m2_printchar): Likewise. (m2_printstr): Likewise. * language.h (struct language_defn) <la_printchar>: Add type argument. <la_printstr, la_emitchar>: Likewise. (LA_PRINT_CHAR): Likewise. (LA_PRINT_STRING): Likewise. (LA_EMIT_CHAR): Likewise. * language.c (unk_lang_emit_char): Add type argument. (unk_lang_printchar): Likewise. (unk_lang_printstr): Likewise. * jv-valprint.c (java_val_print): Update. * jv-lang.c (java_emit_char): Add type argument. * f-valprint.c (f_val_print): Update. * f-lang.c (f_emit_char): Add type argument. (f_printchar): Likewise. (f_printstr): Likewise. * expprint.c (print_subexp_standard): Update. * charset.h (target_wide_charset): Declare. (c_target_char_has_backslash_escape, c_parse_backslash, host_char_print_literally, host_char_to_target, target_char_to_host, target_char_to_control_char): Remove. (enum transliterations): New type. (convert_between_encodings): Declare. (HOST_ESCAPE_CHAR): New define. (host_letter_to_control_character, host_hex_value): Declare. (enum wchar_iterate_result): New enum. (struct wchar_iterator): Declare. (make_wchar_iterator, make_cleanup_wchar_iterator, wchar_iterator, wchar_push_back): Declare. * charset-list.h: New file. * c-valprint.c (textual_name): New function. (textual_element_type): Handle wide character types. (c_val_print): Pass original type to textual_element_type. Handle wide character types. (c_value_print): Use textual_element_type. Pass original type of value to val_print. * c-lang.h (enum c_string_type): New type. (c_printchar, c_printstr): Update. * c-lang.c (classify_type): New function. (print_wchar): Likewise. (c_emit_char): Add type argument. Handle wide characters. (c_printchar): Likewise. (c_printstr): Add type argument. Handle wide and multibyte character sets. (convert_ucn): New function. (emit_numeric_character): Likewise. (convert_octal): Likewise. (convert_hex): Likewise. (ADVANCE): New macro. (convert_escape): New function. (parse_one_string): Likewise. (evaluate_subexp_c): Likewise. (exp_descriptor_c): New global. (c_language_defn): Use exp_descriptor_c. (cplus_language_defn): Likewise. (asm_language_defn): Likewise. (minimal_language_defn): Likewise. (charset_for_string_type): New function. * c-exp.y (%union): Add 'svec' and 'tsval'. (CHAR): New token. (exp): Add CHAR production. (string_exp): Rewrite. (exp) <string_exp>: Rewrite. (tempbuf): Now global. (tempbuf_init): New global. (parse_string_or_char): New function. (yylex) <tempbuf>: Now global. <tokptr, tempbufindex, tempbufsize, token_string, class_prefix>: Remove. Handle 'u', 'U', and 'L' prefixes. Call parse_string_or_char. (c_parse_escape): New function. * auxv.c (fprint_target_auxv): Update. * ada-valprint.c (ada_emit_char): Add type argument. (ada_printchar): Likewise. (ada_print_scalar): Update. (printstr): Add type argument. Update calls to ada_emit_char. (ada_printstr): Add type argument. (ada_val_print_array): Update. (ada_val_print_1): Likewise. * ada-lang.c (emit_char): Add type argument. * ada-lang.h (ada_emit_char, ada_printchar, ada_printstr): Add type arguments. * gdb_locale.h: Include langinfo.h. * charset.c (_initialize_charset): Set default host charset from the locale. Don't register charsets. Add target-wide-charset commands. Call find_charset_names. (struct charset, struct translation): Remove. (GDB_DEFAULT_HOST_CHARSET): Remove. (GDB_DEFAULT_TARGET_WIDE_CHARSET): New define. (target_wide_charset_name): New global. (show_host_charset_name): Handle "auto". (show_target_wide_charset_name): New function. (host_charset_enum, target_charset_enum): Remove. (charset_enum): New global. (all_charsets, register_charset, lookup_charset, all_translations, register_translation, lookup_translation): Remove. (simple_charset, ascii_print_literally, ascii_to_control): Remove. (iso_8859_print_literally, iso_8859_to_control, iso_8859_family_charset): Remove. (ebcdic_print_literally, ebcdic_to_control, ebcdic_family_charset): Remove. (struct cached_iconv, check_iconv_cache, cached_iconv_convert, register_iconv_charsets): Remove. (target_wide_charset_be_name, target_wide_charset_le_name): New globals. (identity_either_char_to_other): Remove. (set_be_le_names, validate): New functions. (backslashable, backslashed, represented): Remove. (default_c_target_char_has_backslash_escape): Remove. (default_c_parse_backslash, iconv_convert): Remove. (ascii_to_iso_8859_1_table, ascii_to_ebcdic_us_table, ascii_to_ibm1047_table, iso_8859_1_to_ascii_table, iso_8859_1_to_ebcdic_us_table, iso_8859_1_to_ibm1047_table, ebcdic_us_to_ascii_table, ebcdic_us_to_iso_8859_1_table, ebcdic_us_to_ibm1047_table, ibm1047_to_ascii_table, ibm1047_to_iso_8859_1_table, ibm1047_to_ebcdic_us_table): Remove. (table_convert_char, table_translation, simple_table_translation): Remove. (current_host_charset, current_target_charset, c_target_char_has_backslash_escape_func, c_target_char_has_backslash_escape_baton): Remove. (c_parse_backslash_func, c_parse_backslash_baton): Remove. (host_char_to_target_func, host_char_to_target_baton): Remove. (target_char_to_host_func, target_char_to_host_baton): Remove. (cached_iconv_host_to_target, cached_iconv_target_to_host): Remove. (lookup_charset_or_error, check_valid_host_charset): Remove. (set_host_and_target_charsets): Remove. (set_host_charset, set_target_charset): Remove. (set_host_charset_sfunc, set_target_charset_sfunc): Rewrite. (set_target_wide_charset_sfunc): New function. (show_charset): Print target wide character set. (host_charset, target_charset): Rewrite. (target_wide_charset): New function. (c_target_char_has_backslash_escape): Remove. (c_parse_backslash): Remove. (host_letter_to_control_character): New function. (host_char_print_literally): Remove. (host_hex_value): New function. (target_char_to_control_char): Remove. (cleanup_iconv): New function. (convert_between_encodings): New function. (target_char_to_host): Remove. (struct wchar_iterator): Define. (make_wchar_iterator, make_cleanup_wchar_iterator, wchar_iterator, wchar_push_back): New functions. (do_cleanup_iterator): New function. (char_ptr): New typedef. (charsets): New global. (add_one, find_charset_names): New functions. (default_charset_names): New global. (auto_host_charset_name): Likewise. * aclocal.m4, config.in, configure: Rebuild. * configure.ac: Call AM_LANGINFO_CODESET. (GDB_DEFAULT_HOST_CHARSET): Default to UTF-8. (AM_ICONV): Invoke earlier. * acinclude.m4: Include codeset.m4. Subst LIBICONV_INCLUDE and LIBICONV_LIBDIR. Check for libiconv in build tree. * Makefile.in (LIBICONV_LIBDIR, LIBICONV_INCLUDE): New macros. (INTERNAL_CFLAGS_BASE): Add LIBICONV_INCLUDE. (INTERNAL_LDFLAGS): Add LIBICONV_LIBDIR. * gdb_obstack.h (obstack_grow_wstr): New define. * gdb_wchar.h: New file. * defs.h: Include it. gdb/testsuite: * gdb.base/store.exp: Update for change to escape output. * gdb.base/callfuncs.exp (fetch_all_registers): Update for change to escape output. * gdb.base/pointers.exp: Update for change to escape output. * gdb.base/long_long.exp (gdb_test_long_long): Update for change to escape output. * gdb.base/constvars.exp (do_constvar_tests): Update for change to escape output. * gdb.base/call-rt-st.exp (print_struct_call): Update for change to escape output. * gdb.cp/ref-types.exp (gdb_start_again): Update for change to escape output. * gdb.base/setvar.exp: Update for change to escape output. * lib/gdb.exp (default_gdb_start): Set LC_CTYPE to C. * gdb.base/printcmds.exp (test_print_all_chars): Update for change to escape output. (test_print_string_constants): Likewise. * gdb.base/charset.exp (valid_host_charset): Check size of wchar_t. Handle UCS-2 and UCS-4. Add tests for wide and unicode cases. Handle "auto"-related output. * gdb.base/charset.c (char16_t, char32_t): New typedefs. (uvar, Uvar): New globals. gdb/doc: * gdb.texinfo (Character Sets): Remove obsolete text. Document set target-wide-charset. (Requirements): Mention iconv.
2009-03-20 23:04:40 +00:00
java_emit_char (int c, struct type *type, struct ui_file *stream, int quoter)
{
const char *encoding = java_get_encoding (type);
generic_emit_char (c, type, stream, quoter, encoding);
}
/* Implementation of la_printchar method. */
static void
java_printchar (int c, struct type *type, struct ui_file *stream)
{
fputs_filtered ("'", stream);
LA_EMIT_CHAR (c, type, stream, '\'');
fputs_filtered ("'", stream);
}
/* Implementation of la_printstr method. */
static void
java_printstr (struct ui_file *stream, struct type *type,
const gdb_byte *string,
unsigned int length, const char *encoding, int force_ellipses,
const struct value_print_options *options)
{
const char *type_encoding = java_get_encoding (type);
if (!encoding || !*encoding)
encoding = type_encoding;
generic_printstr (stream, type, string, length, encoding,
force_ellipses, '"', 0, options);
}
2001-10-21 01:57:42 +00:00
static struct value *
evaluate_subexp_java (struct type *expect_type, struct expression *exp,
int *pos, enum noside noside)
{
int pc = *pos;
int i;
* gdbtypes.h (struct main_type): Change type of name,tag_name, and fields.name members from char * to const char *. All uses updated. (struct cplus_struct_type): Change type of fn_fieldlists.name member from char * to const char *. All uses updated. (type_name_no_tag): Update. (lookup_unsigned_typename, lookup_signed_typename): Update. * gdbtypes.c (type_name_no_tag): Change result type from char * to const char *. All callers updated. (lookup_unsigned_typename, lookup_signed_typename): Change type of name parameter from char * to const char *. * symtab.h (struct cplus_specific): Change type of demangled_name member from char * to const char *. All uses updated. (struct general_symbol_info): Change type of name and mangled_lang.demangled_name members from char * to const char *. All uses updated. (symbol_get_demangled_name, symbol_natural_name): Update. (symbol_demangled_name, symbol_search_name): Update. * symtab.c (symbol_get_demangled_name): Change result type from char * to const char *. All callers updated. (symbol_natural_name, symbol_demangled_name): Ditto. (symbol_search_name): Ditto. (completion_list_add_name): Change type of symname,sym_text, text,word parameters from char * to const char *. (completion_list_objc_symbol): Change type of sym_text, text,word parameters from char * to const char *. * ada-lang.c (find_struct_field): Change type of name parameter from char * to const char *. (encoded_ordered_before): Similarly for N0,N1 parameters. (old_renaming_is_invisible): Similarly for function_name parameter. (ada_type_name): Change result type from char * to const char *. All callers updated. * ada-lang.h (ada_type_name): Update. * buildsym.c (hashname): Change type of name parameter from char * to const char *. * buildsym.h (hashname): Update. * dbxread.c (end_psymtab): Change type of include_list parameter from char ** to const char **. * dwarf2read.c (determine_prefix): Change result type from char * to const char *. All callers updated. * f-lang.c (find_common_for_function): Change type of name, funcname parameters from char * to const char *. * f-lang.c (find_common_for_function): Update. * f-valprint.c (list_all_visible_commons): Change type of funcname parameters from char * to const char *. * gdbarch.sh (static_transform_name): Change type of name parameter and result from char * to const char *. * gdbarch.c: Regenerate. * gdbarch.h: Regenerate. * i386-sol2-tdep.c (i386_sol2_static_transform_name): Change type of name parameter from char * to const char *. * jv-lang.c (java_primitive_type_from_name): Ditto. (java_demangled_signature_length): Similarly for signature parameter. (java_demangled_signature_copy): Ditto. (java_demangle_type_signature): Ditto. * jv-lang.h (java_primitive_type_from_name): Update. (java_demangle_type_signature): Update. * objc-lang.c (specialcmp): Change type of a,b parameters from char * to const char *. * p-lang.c (is_pascal_string_type): Change type of arrayname parameter from char * to const char *. All callers updated. * p-lang.h (is_pascal_string_type): Update. * solib-frv.c (find_canonical_descriptor_in_load_object): Change type of name parameter from char * to const char *. * sparc-sol2-tdep.c (sparc_sol2_static_transform_name): Ditto. * utils.c (fprintf_symbol_filtered): Ditto. * defs.h (fprintf_symbol_filtered): Update. * sparc-tdep.h (sparc_sol2_static_transform_name): Update. * stabsread.h (end_psymtab): Update. * stack.c (find_frame_funname): Change type of funname parameter from char ** to const char **. * stack.h (find_frame_funname): Update. * typeprint.c (type_print): Change type of varstring parameter from char * to const char *. * value.h (type_print): Update. * xcoffread.c (xcoff_start_psymtab): Change type of filename parameter from char * to const char *. All callers updated. (xcoff_end_psymtab): Change type of include_list parameter from char ** to const char **. All callers updated. (swap_sym): Similarly for name parameter. All callers updated. * coffread.c (patch_type): Add (char*) cast to xfree parameter. Use xstrdup. (process_coff_symbol): Use xstrdup. * stabsread.c (stabs_method_name_from_physname): Renamed from update_method_name_from_physname. Change result type from void to char *. All callers updated. (read_member_functions): In has_destructor case, store name in objfile obstack instead of malloc space. In !has_stub case, fix mem leak.
2012-02-07 04:48:23 +00:00
const char *name;
enum exp_opcode op = exp->elts[*pos].opcode;
2001-10-21 01:57:42 +00:00
struct value *arg1;
struct value *arg2;
struct type *type;
switch (op)
{
case UNOP_IND:
if (noside == EVAL_SKIP)
goto standard;
(*pos)++;
arg1 = evaluate_subexp_java (NULL_TYPE, exp, pos, EVAL_NORMAL);
if (is_object_type (value_type (arg1)))
{
struct type *type;
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
type = type_from_class (exp->gdbarch, java_class_from_object (arg1));
arg1 = value_cast (lookup_pointer_type (type), arg1);
}
return value_ind (arg1);
case BINOP_SUBSCRIPT:
(*pos)++;
arg1 = evaluate_subexp_with_coercion (exp, pos, noside);
arg2 = evaluate_subexp_with_coercion (exp, pos, noside);
if (noside == EVAL_SKIP)
goto nosideret;
/* If the user attempts to subscript something that is not an
1999-07-07 20:19:36 +00:00
array or pointer type (like a plain int variable for example),
then report this as an error. */
1999-07-07 20:19:36 +00:00
arg1 = coerce_ref (arg1);
type = check_typedef (value_type (arg1));
if (TYPE_CODE (type) == TYPE_CODE_PTR)
type = check_typedef (TYPE_TARGET_TYPE (type));
name = TYPE_NAME (type);
if (name == NULL)
name = TYPE_TAG_NAME (type);
i = name == NULL ? 0 : strlen (name);
if (TYPE_CODE (type) == TYPE_CODE_STRUCT
1999-07-07 20:19:36 +00:00
&& i > 2 && name[i - 1] == ']')
{
* defs.h (extract_signed_integer, extract_unsigned_integer, extract_long_unsigned_integer, store_signed_integer, store_unsigned_integer): Add BYTE_ORDER parameter. * findvar.c (extract_signed_integer, extract_unsigned_integer, extract_long_unsigned_integer, store_signed_integer, store_unsigned_integer): Add BYTE_ORDER parameter. Use it instead of current_gdbarch. * gdbcore.h (read_memory_integer, safe_read_memory_integer, read_memory_unsigned_integer, write_memory_signed_integer, write_memory_unsigned_integer): Add BYTE_ORDER parameter. * corefile.c (struct captured_read_memory_integer_arguments): Add BYTE_ORDER member. (safe_read_memory_integer): Add BYTE_ORDER parameter. Store it into struct captured_read_memory_integer_arguments. (do_captured_read_memory_integer): Pass it to read_memory_integer. (read_memory_integer): Add BYTE_ORDER parameter. Pass it to extract_signed_integer. (read_memory_unsigned_integer): Add BYTE_ORDER parameter. Pass it to extract_unsigned_integer. (write_memory_signed_integer): Add BYTE_ORDER parameter. Pass it to store_signed_integer. (write_memory_unsigned_integer): Add BYTE_ORDER parameter. Pass it to store_unsigned_integer. * target.h (get_target_memory_unsigned): Add BYTE_ORDER parameter. * target.c (get_target_memory_unsigned): Add BYTE_ORDER parameter. Pass it to extract_unsigned_integer. Update calls to extract_signed_integer, extract_unsigned_integer, extract_long_unsigned_integer, store_signed_integer, store_unsigned_integer, read_memory_integer, read_memory_unsigned_integer, safe_read_memory_integer, write_memory_signed_integer, write_memory_unsigned_integer, and get_target_memory_unsigned to pass byte order: * ada-lang.c (ada_value_binop): Update. * ada-valprint.c (char_at): Update. * alpha-osf1-tdep.c (alpha_osf1_sigcontext_addr): Update. * alpha-tdep.c (alpha_lds, alpha_sts, alpha_push_dummy_call, alpha_extract_return_value, alpha_read_insn, alpha_get_longjmp_target): Update. * amd64-linux-tdep.c (amd64_linux_sigcontext_addr): Update. * amd64obsd-tdep.c (amd64obsd_supply_uthread, amd64obsd_collect_uthread, amd64obsd_trapframe_cache): Update. * amd64-tdep.c (amd64_push_dummy_call, amd64_analyze_prologue, amd64_frame_cache, amd64_sigtramp_frame_cache, fixup_riprel, amd64_displaced_step_fixup): Update. * arm-linux-tdep.c (arm_linux_sigreturn_init, arm_linux_rt_sigreturn_init, arm_linux_supply_gregset): Update. * arm-tdep.c (thumb_analyze_prologue, arm_skip_prologue, arm_scan_prologue, arm_push_dummy_call, thumb_get_next_pc, arm_get_next_pc, arm_extract_return_value, arm_store_return_value, arm_return_value): Update. * arm-wince-tdep.c (arm_pe_skip_trampoline_code): Update. * auxv.c (default_auxv_parse): Update. * avr-tdep.c (avr_address_to_pointer, avr_pointer_to_address, avr_scan_prologue, avr_extract_return_value, avr_frame_prev_register, avr_push_dummy_call): Update. * bsd-uthread.c (bsd_uthread_check_magic, bsd_uthread_lookup_offset, bsd_uthread_wait, bsd_uthread_thread_alive, bsd_uthread_extra_thread_info): Update. * c-lang.c (c_printstr, print_wchar): Update. * cp-valprint.c (cp_print_class_member): Update. * cris-tdep.c (cris_sigcontext_addr, cris_sigtramp_frame_unwind_cache, cris_push_dummy_call, cris_scan_prologue, cris_store_return_value, cris_extract_return_value, find_step_target, dip_prefix, sixteen_bit_offset_branch_op, none_reg_mode_jump_op, move_mem_to_reg_movem_op, get_data_from_address): Update. * dwarf2expr.c (dwarf2_read_address, execute_stack_op): Update. * dwarf2-frame.c (execute_cfa_program): Update. * dwarf2loc.c (find_location_expression): Update. * dwarf2read.c (dwarf2_const_value): Update. * expprint.c (print_subexp_standard): Update. * findvar.c (unsigned_pointer_to_address, signed_pointer_to_address, unsigned_address_to_pointer, address_to_signed_pointer, read_var_value): Update. * frame.c (frame_unwind_register_signed, frame_unwind_register_unsigned, get_frame_memory_signed, get_frame_memory_unsigned): Update. * frame-unwind.c (frame_unwind_got_constant): Update. * frv-linux-tdep.c (frv_linux_pc_in_sigtramp, frv_linux_sigcontext_reg_addr, frv_linux_sigtramp_frame_cache): Update. * frv-tdep.c (frv_analyze_prologue, frv_skip_main_prologue, frv_extract_return_value, find_func_descr, frv_convert_from_func_ptr_addr, frv_push_dummy_call): Update. * f-valprint.c (f_val_print): Update. * gnu-v3-abi.c (gnuv3_decode_method_ptr, gnuv3_make_method_ptr): Update. * h8300-tdep.c (h8300_is_argument_spill, h8300_analyze_prologue, h8300_push_dummy_call, h8300_extract_return_value, h8300h_extract_return_value, h8300_store_return_value, h8300h_store_return_value): Update. * hppabsd-tdep.c (hppabsd_find_global_pointer): Update. * hppa-hpux-nat.c (hppa_hpux_fetch_register, hppa_hpux_store_register): Update. * hppa-hpux-tdep.c (hppa32_hpux_in_solib_call_trampoline, hppa64_hpux_in_solib_call_trampoline, hppa_hpux_in_solib_return_trampoline, hppa_hpux_skip_trampoline_code, hppa_hpux_sigtramp_frame_unwind_cache, hppa_hpux_sigtramp_unwind_sniffer, hppa32_hpux_find_global_pointer, hppa64_hpux_find_global_pointer, hppa_hpux_search_pattern, hppa32_hpux_search_dummy_call_sequence, hppa64_hpux_search_dummy_call_sequence, hppa_hpux_supply_save_state, hppa_hpux_unwind_adjust_stub): Update. * hppa-linux-tdep.c (insns_match_pattern, hppa_linux_find_global_pointer): Update. * hppa-tdep.c (hppa_in_function_epilogue_p, hppa32_push_dummy_call, hppa64_convert_code_addr_to_fptr, hppa64_push_dummy_call, skip_prologue_hard_way, hppa_frame_cache, hppa_fallback_frame_cache, hppa_pseudo_register_read, hppa_frame_prev_register_helper, hppa_match_insns): Update. * hpux-thread.c (hpux_thread_fetch_registers): Update. * i386-tdep.c (i386bsd_sigcontext_addr): Update. * i386-cygwin-tdep.c (core_process_module_section): Update. * i386-darwin-nat.c (i386_darwin_sstep_at_sigreturn, amd64_darwin_sstep_at_sigreturn): Update. * i386-darwin-tdep.c (i386_darwin_sigcontext_addr, amd64_darwin_sigcontext_addr): Likewise. * i386-linux-nat.c (i386_linux_sigcontext_addr): Update. * i386nbsd-tdep.c (i386nbsd_sigtramp_cache_init): Update. * i386-nto-tdep.c (i386nto_sigcontext_addr): Update. * i386obsd-nat.c (i386obsd_supply_pcb): Update. * i386obsd-tdep.c (i386obsd_supply_uthread, i386obsd_collect_uthread, i386obsd_trapframe_cache): Update. * i386-tdep.c (i386_displaced_step_fixup, i386_follow_jump, i386_analyze_frame_setup, i386_analyze_prologue, i386_skip_main_prologue, i386_frame_cache, i386_sigtramp_frame_cache, i386_get_longjmp_target, i386_push_dummy_call, i386_pe_skip_trampoline_code, i386_svr4_sigcontext_addr, i386_fetch_pointer_argument): Update. * i387-tdep.c (i387_supply_fsave): Update. * ia64-linux-tdep.c (ia64_linux_sigcontext_register_address): Update. * ia64-tdep.c (ia64_pseudo_register_read, ia64_pseudo_register_write, examine_prologue, ia64_frame_cache, ia64_frame_prev_register, ia64_sigtramp_frame_cache, ia64_sigtramp_frame_prev_register, ia64_access_reg, ia64_access_rse_reg, ia64_libunwind_frame_this_id, ia64_libunwind_frame_prev_register, ia64_libunwind_sigtramp_frame_this_id, ia64_libunwind_sigtramp_frame_prev_register, ia64_find_global_pointer, find_extant_func_descr, find_func_descr, ia64_convert_from_func_ptr_addr, ia64_push_dummy_call, ia64_dummy_id, ia64_unwind_pc): Update. * iq2000-tdep.c (iq2000_pointer_to_address, iq2000_address_to_pointer, iq2000_scan_prologue, iq2000_extract_return_value, iq2000_push_dummy_call): Update. * irix5nat.c (fill_gregset): Update. * jv-lang.c (evaluate_subexp_java): Update. * jv-valprint.c (java_value_print): Update. * lm32-tdep.c (lm32_analyze_prologue, lm32_push_dummy_call, lm32_extract_return_value, lm32_store_return_value): Update. * m32c-tdep.c (m32c_push_dummy_call, m32c_return_value, m32c_skip_trampoline_code, m32c_m16c_address_to_pointer, m32c_m16c_pointer_to_address): Update. * m32r-tdep.c (m32r_store_return_value, decode_prologue, m32r_skip_prologue, m32r_push_dummy_call, m32r_extract_return_value): Update. * m68hc11-tdep.c (m68hc11_pseudo_register_read, m68hc11_pseudo_register_write, m68hc11_analyze_instruction, m68hc11_push_dummy_call): Update. * m68linux-tdep.c (m68k_linux_pc_in_sigtramp, m68k_linux_get_sigtramp_info, m68k_linux_sigtramp_frame_cache): Update. * m68k-tdep.c (m68k_push_dummy_call, m68k_analyze_frame_setup, m68k_analyze_register_saves, m68k_analyze_prologue, m68k_frame_cache, m68k_get_longjmp_target): Update. * m88k-tdep.c (m88k_fetch_instruction): Update. * mep-tdep.c (mep_pseudo_cr32_read, mep_pseudo_csr_write, mep_pseudo_cr32_write, mep_get_insn, mep_push_dummy_call): Update. * mi/mi-main.c (mi_cmd_data_write_memory): Update. * mips-linux-tdep.c (mips_linux_get_longjmp_target, supply_32bit_reg, mips64_linux_get_longjmp_target, mips64_fill_gregset, mips64_fill_fpregset, mips_linux_in_dynsym_stub): Update. * mipsnbdsd-tdep.c (mipsnbsd_get_longjmp_target): Update. * mips-tdep.c (mips_fetch_instruction, fetch_mips_16, mips_eabi_push_dummy_call, mips_n32n64_push_dummy_call, mips_o32_push_dummy_call, mips_o64_push_dummy_call, mips_single_step_through_delay, mips_skip_pic_trampoline_code, mips_integer_to_address): Update. * mn10300-tdep.c (mn10300_analyze_prologue, mn10300_push_dummy_call): Update. * monitor.c (monitor_supply_register, monitor_write_memory, monitor_read_memory_single): Update. * moxie-tdep.c (moxie_store_return_value, moxie_extract_return_value, moxie_analyze_prologue): Update. * mt-tdep.c (mt_return_value, mt_skip_prologue, mt_select_coprocessor, mt_pseudo_register_read, mt_pseudo_register_write, mt_registers_info, mt_push_dummy_call): Update. * objc-lang.c (read_objc_method, read_objc_methlist_nmethods, read_objc_methlist_method, read_objc_object, read_objc_super, read_objc_class, find_implementation_from_class): Update. * ppc64-linux-tdep.c (ppc64_desc_entry_point, ppc64_linux_convert_from_func_ptr_addr, ppc_linux_sigtramp_cache): Update. * ppcobsd-tdep.c (ppcobsd_sigtramp_frame_sniffer, ppcobsd_sigtramp_frame_cache): Update. * ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call, do_ppc_sysv_return_value, ppc64_sysv_abi_push_dummy_call, ppc64_sysv_abi_return_value): Update. * ppc-linux-nat.c (ppc_linux_auxv_parse): Update. * procfs.c (procfs_auxv_parse): Update. * p-valprint.c (pascal_val_print): Update. * regcache.c (regcache_raw_read_signed, regcache_raw_read_unsigned, regcache_raw_write_signed, regcache_raw_write_unsigned, regcache_cooked_read_signed, regcache_cooked_read_unsigned, regcache_cooked_write_signed, regcache_cooked_write_unsigned): Update. * remote-m32r-sdi.c (m32r_fetch_register): Update. * remote-mips.c (mips_wait, mips_fetch_registers, mips_xfer_memory): Update. * rs6000-aix-tdep.c (rs6000_push_dummy_call, rs6000_return_value, rs6000_convert_from_func_ptr_addr, branch_dest, rs6000_software_single_step): Update. * rs6000-tdep.c (rs6000_in_function_epilogue_p, ppc_displaced_step_fixup, ppc_deal_with_atomic_sequence, bl_to_blrl_insn_p, rs6000_fetch_instruction, skip_prologue, rs6000_skip_main_prologue, rs6000_skip_trampoline_code, rs6000_frame_cache): Update. * s390-tdep.c (s390_pseudo_register_read, s390_pseudo_register_write, s390x_pseudo_register_read, s390x_pseudo_register_write, s390_load, s390_backchain_frame_unwind_cache, s390_sigtramp_frame_unwind_cache, extend_simple_arg, s390_push_dummy_call, s390_return_value): Update. * scm-exp.c (scm_lreadr): Update. * scm-lang.c (scm_get_field, scm_unpack): Update. * scm-valprint.c (scm_val_print): Update. * score-tdep.c (score_breakpoint_from_pc, score_push_dummy_call, score_fetch_inst): Update. * sh64-tdep.c (look_for_args_moves, sh64_skip_prologue_hard_way, sh64_analyze_prologue, sh64_push_dummy_call, sh64_extract_return_value, sh64_pseudo_register_read, sh64_pseudo_register_write, sh64_frame_prev_register): Update: * sh-tdep.c (sh_analyze_prologue, sh_push_dummy_call_fpu, sh_push_dummy_call_nofpu, sh_extract_return_value_nofpu, sh_store_return_value_nofpu, sh_in_function_epilogue_p): Update. * solib-darwin.c (darwin_load_image_infos): Update. * solib-frv.c (fetch_loadmap, lm_base, frv_current_sos, enable_break2, find_canonical_descriptor_in_load_object): Update. * solib-irix.c (extract_mips_address, fetch_lm_info, irix_current_sos, irix_open_symbol_file_object): Update. * solib-som.c (som_solib_create_inferior_hook, link_map_start, som_current_sos, som_open_symbol_file_object): Update. * solib-sunos.c (SOLIB_EXTRACT_ADDRESS, LM_ADDR, LM_NEXT, LM_NAME): Update. * solib-svr4.c (read_program_header, scan_dyntag_auxv, solib_svr4_r_ldsomap): Update. * sparc64-linux-tdep.c (sparc64_linux_step_trap): Update. * sparc64obsd-tdep.c (sparc64obsd_supply_uthread, sparc64obsd_collect_uthread): Update. * sparc64-tdep.c (sparc64_pseudo_register_read, sparc64_pseudo_register_write, sparc64_supply_gregset, sparc64_collect_gregset): Update. * sparc-linux-tdep.c (sparc32_linux_step_trap): Update. * sparcobsd-tdep.c (sparc32obsd_supply_uthread, sparc32obsd_collect_uthread): Update. * sparc-tdep.c (sparc_fetch_wcookie, sparc32_push_dummy_code, sparc32_store_arguments, sparc32_return_value, sparc_supply_rwindow, sparc_collect_rwindow): Update. * spu-linux-nat.c (parse_spufs_run): Update. * spu-tdep.c (spu_pseudo_register_read_spu, spu_pseudo_register_write_spu, spu_pointer_to_address, spu_analyze_prologue, spu_in_function_epilogue_p, spu_frame_unwind_cache, spu_push_dummy_call, spu_software_single_step, spu_get_longjmp_target, spu_get_overlay_table, spu_overlay_update_osect, info_spu_signal_command, info_spu_mailbox_list, info_spu_dma_cmdlist, info_spu_dma_command, info_spu_proxydma_command): Update. * stack.c (print_frame_nameless_args, frame_info): Update. * symfile.c (read_target_long_array, simple_read_overlay_table, simple_read_overlay_region_table): Update. * target.c (debug_print_register): Update. * tramp-frame.c (tramp_frame_start): Update. * v850-tdep.c (v850_analyze_prologue, v850_push_dummy_call, v850_extract_return_value, v850_store_return_value, * valarith.c (value_binop, value_bit_index): Update. * valops.c (value_cast): Update. * valprint.c (val_print_type_code_int, val_print_string, read_string): Update. * value.c (unpack_long, unpack_double, unpack_field_as_long, modify_field, pack_long): Update. * vax-tdep.c (vax_store_arguments, vax_push_dummy_call, vax_skip_prologue): Update. * xstormy16-tdep.c (xstormy16_push_dummy_call, xstormy16_analyze_prologue, xstormy16_in_function_epilogue_p, xstormy16_resolve_jmp_table_entry, xstormy16_find_jmp_table_entry, xstormy16_pointer_to_address, xstormy16_address_to_pointer): Update. * xtensa-tdep.c (extract_call_winsize, xtensa_pseudo_register_read, xtensa_pseudo_register_write, xtensa_frame_cache, xtensa_push_dummy_call, call0_track_op, call0_frame_cache): Update. * dfp.h (decimal_to_string, decimal_from_string, decimal_from_integral, decimal_from_floating, decimal_to_doublest, decimal_is_zero): Add BYTE_ORDER parameter. (decimal_binop): Add BYTE_ORDER_X, BYTE_ORDER_Y, and BYTE_ORDER_RESULT parameters. (decimal_compare): Add BYTE_ORDER_X and BYTE_ORDER_Y parameters. (decimal_convert): Add BYTE_ORDER_FROM and BYTE_ORDER_TO parameters. * dfp.c (match_endianness): Add BYTE_ORDER parameter. Use it instead of current_gdbarch. (decimal_to_string, decimal_from_integral, decimal_from_floating, decimal_to_doublest, decimal_is_zero): Add BYTE_ORDER parameter. Pass it to match_endianness. (decimal_binop): Add BYTE_ORDER_X, BYTE_ORDER_Y, and BYTE_ORDER_RESULT parameters. Pass them to match_endianness. (decimal_compare): Add BYTE_ORDER_X and BYTE_ORDER_Y parameters. Pass them to match_endianness. (decimal_convert): Add BYTE_ORDER_FROM and BYTE_ORDER_TO parameters. Pass them to match_endianness. * valarith.c (value_args_as_decimal): Add BYTE_ORDER_X and BYTE_ORDER_Y output parameters. (value_binop): Update call to value_args_as_decimal. Update calls to decimal_to_string, decimal_from_string, decimal_from_integral, decimal_from_floating, decimal_to_doublest, decimal_is_zero, decimal_binop, decimal_compare and decimal_convert to pass/receive byte order: * c-exp.y (parse_number): Update. * printcmd.c (printf_command): Update. * valarith.c (value_args_as_decimal, value_binop, value_logical_not, value_equal, value_less): Update. * valops.c (value_cast, value_one): Update. * valprint.c (print_decimal_floating): Update. * value.c (unpack_long, unpack_double): Update. * python/python-value.c (valpy_nonzero): Update. * ada-valprint.c (char_at): Add BYTE_ORDER parameter. (printstr): Update calls to char_at. (ada_val_print_array): Likewise. * valprint.c (read_string): Add BYTE_ORDER parameter. (val_print_string): Update call to read_string. * c-lang.c (c_get_string): Likewise. * charset.h (target_wide_charset): Add BYTE_ORDER parameter. * charset.c (target_wide_charset): Add BYTE_ORDER parameter. Use it instead of current_gdbarch. * printcmd.c (printf_command): Update calls to target_wide_charset. * c-lang.c (charset_for_string_type): Add BYTE_ORDER parameter. Pass to target_wide_charset. Use it instead of current_gdbarch. (classify_type): Add BYTE_ORDER parameter. Pass to charset_for_string_type. Allow NULL encoding pointer. (print_wchar): Add BYTE_ORDER parameter. (c_emit_char): Update calls to classify_type and print_wchar. (c_printchar, c_printstr): Likewise. * gdbarch.sh (in_solib_return_trampoline): Convert to type "m". * gdbarch.c, gdbarch.h: Regenerate. * arch-utils.h (generic_in_solib_return_trampoline): Add GDBARCH parameter. * arch-utils.c (generic_in_solib_return_trampoline): Likewise. * hppa-hpux-tdep.c (hppa_hpux_in_solib_return_trampoline): Likewise. * rs6000-tdep.c (rs6000_in_solib_return_trampoline): Likewise. (rs6000_skip_trampoline_code): Update call. * alpha-tdep.h (struct gdbarch_tdep): Add GDBARCH parameter to dynamic_sigtramp_offset and pc_in_sigtramp callbacks. (alpha_read_insn): Add GDBARCH parameter. * alpha-tdep.c (alpha_lds, alpha_sts): Add GDBARCH parameter. (alpha_register_to_value): Pass architecture to alpha_sts. (alpha_extract_return_value): Likewise. (alpha_value_to_register): Pass architecture to alpha_lds. (alpha_store_return_value): Likewise. (alpha_read_insn): Add GDBARCH parameter. (alpha_skip_prologue): Pass architecture to alpha_read_insn. (alpha_heuristic_proc_start): Likewise. (alpha_heuristic_frame_unwind_cache): Likewise. (alpha_next_pc): Likewise. (alpha_sigtramp_frame_this_id): Pass architecture to tdep->dynamic_sigtramp_offset callback. (alpha_sigtramp_frame_sniffer): Pass architecture to tdep->pc_in_sigtramp callback. * alphafbsd-tdep.c (alphafbsd_pc_in_sigtramp): Add GDBARCH parameter. (alphafbsd_sigtramp_offset): Likewise. * alpha-linux-tdep.c (alpha_linux_sigtramp_offset_1): Add GDBARCH parameter. Pass to alpha_read_insn. (alpha_linux_sigtramp_offset): Add GDBARCH parameter. Pass to alpha_linux_sigtramp_offset_1. (alpha_linux_pc_in_sigtramp): Add GDBARCH parameter. Pass to alpha_linux_sigtramp_offset. (alpha_linux_sigcontext_addr): Pass architecture to alpha_read_insn and alpha_linux_sigtramp_offset. * alphanbsd-tdep.c (alphanbsd_sigtramp_offset): Add GDBARCH parameter. (alphanbsd_pc_in_sigtramp): Add GDBARCH parameter. Pass to alphanbsd_sigtramp_offset. * alphaobsd-tdep.c (alphaobsd_sigtramp_offset): Add GDBARCH parameter. (alphaobsd_pc_in_sigtramp): Add GDBARCH parameter. Pass to alpha_read_insn. (alphaobsd_sigcontext_addr): Pass architecture to alphaobsd_sigtramp_offset. * alpha-osf1-tdep.c (alpha_osf1_pc_in_sigtramp): Add GDBARCH parameter. * amd64-tdep.c (amd64_analyze_prologue): Add GDBARCH parameter. (amd64_skip_prologue): Pass architecture to amd64_analyze_prologue. (amd64_frame_cache): Likewise. * arm-tdep.c (SWAP_SHORT, SWAP_INT): Remove. (thumb_analyze_prologue, arm_skip_prologue, arm_scan_prologue, thumb_get_next_pc, arm_get_next_pc): Do not use SWAP_ macros. * arm-wince-tdep.c: Include "frame.h". * avr-tdep.c (EXTRACT_INSN): Remove. (avr_scan_prologue): Add GDBARCH argument, inline EXTRACT_INSN. (avr_skip_prologue): Pass architecture to avr_scan_prologue. (avr_frame_unwind_cache): Likewise. * cris-tdep.c (struct instruction_environment): Add BYTE_ORDER member. (find_step_target): Initialize it. (get_data_from_address): Add BYTE_ORDER parameter. (bdap_prefix): Pass byte order to get_data_from_address. (handle_prefix_assign_mode_for_aritm_op): Likewise. (three_operand_add_sub_cmp_and_or_op): Likewise. (handle_inc_and_index_mode_for_aritm_op): Likewise. * frv-linux-tdep.c (frv_linux_pc_in_sigtramp): Add GDBARCH parameter. (frv_linux_sigcontext_reg_addr): Pass architecture to frv_linux_pc_in_sigtramp. (frv_linux_sigtramp_frame_sniffer): Likewise. * h8300-tdep.c (h8300_is_argument_spill): Add GDBARCH parameter. (h8300_analyze_prologue): Add GDBARCH parameter. Pass to h8300_is_argument_spill. (h8300_frame_cache, h8300_skip_prologue): Pass architecture to h8300_analyze_prologue. * hppa-tdep.h (struct gdbarch_tdep): Add GDBARCH parameter to in_solib_call_trampoline callback. (hppa_in_solib_call_trampoline): Add GDBARCH parameter. * hppa-tdep.c (hppa64_convert_code_addr_to_fptr): Add GDBARCH parameter. (hppa64_push_dummy_call): Pass architecture to hppa64_convert_code_addr_to_fptr. (hppa_match_insns): Add GDBARCH parameter. (hppa_match_insns_relaxed): Add GDBARCH parameter. Pass to hppa_match_insns. (hppa_skip_trampoline_code): Pass architecture to hppa_match_insns. (hppa_in_solib_call_trampoline): Add GDBARCH parameter. Pass to hppa_match_insns_relaxed. (hppa_stub_unwind_sniffer): Pass architecture to tdep->in_solib_call_trampoline callback. * hppa-hpux-tdep.c (hppa_hpux_search_pattern): Add GDBARCH parameter. (hppa32_hpux_search_dummy_call_sequence): Pass architecture to hppa_hpux_search_pattern. * hppa-linux-tdep.c (insns_match_pattern): Add GDBARCH parameter. (hppa_linux_sigtramp_find_sigcontext): Add GDBARCH parameter. Pass to insns_match_pattern. (hppa_linux_sigtramp_frame_unwind_cache): Pass architecture to hppa_linux_sigtramp_find_sigcontext. (hppa_linux_sigtramp_frame_sniffer): Likewise. (hppa32_hpux_in_solib_call_trampoline): Add GDBARCH parameter. (hppa64_hpux_in_solib_call_trampoline): Likewise. * i386-tdep.c (i386_follow_jump): Add GDBARCH parameter. (i386_analyze_frame_setup): Add GDBARCH parameter. (i386_analyze_prologue): Add GDBARCH parameter. Pass to i386_follow_jump and i386_analyze_frame_setup. (i386_skip_prologue): Pass architecture to i386_analyze_prologue and i386_follow_jump. (i386_frame_cache): Pass architecture to i386_analyze_prologue. (i386_pe_skip_trampoline_code): Add FRAME parameter. * i386-tdep.h (i386_pe_skip_trampoline_code): Add FRAME parameter. * i386-cygwin-tdep.c (i386_cygwin_skip_trampoline_code): Pass frame to i386_pe_skip_trampoline_code. * ia64-tdep.h (struct gdbarch_tdep): Add GDBARCH parameter to sigcontext_register_address callback. * ia64-tdep.c (ia64_find_global_pointer): Add GDBARCH parameter. (ia64_find_unwind_table): Pass architecture to ia64_find_global_pointer. (find_extant_func_descr): Add GDBARCH parameter. (find_func_descr): Pass architecture to find_extant_func_descr and ia64_find_global_pointer. (ia64_sigtramp_frame_init_saved_regs): Pass architecture to tdep->sigcontext_register_address callback. * ia64-linux-tdep.c (ia64_linux_sigcontext_register_address): Add GDBARCH parameter. * iq2000-tdep.c (iq2000_scan_prologue): Add GDBARCH parameter. (iq2000_frame_cache): Pass architecture to iq2000_scan_prologue. * lm32-tdep.c (lm32_analyze_prologue): Add GDBARCH parameter. (lm32_skip_prologue, lm32_frame_cache): Pass architecture to lm32_analyze_prologue. * m32r-tdep.c (decode_prologue): Add GDBARCH parameter. (m32r_skip_prologue): Pass architecture to decode_prologue. * m68hc11-tdep.c (m68hc11_analyze_instruction): Add GDBARCH parameter. (m68hc11_scan_prologue): Pass architecture to m68hc11_analyze_instruction. * m68k-tdep.c (m68k_analyze_frame_setup): Add GDBARCH parameter. (m68k_analyze_prologue): Pass architecture to m68k_analyze_frame_setup. * m88k-tdep.c (m88k_fetch_instruction): Add BYTE_ORDER parameter. (m88k_analyze_prologue): Add GDBARCH parameter. Pass byte order to m88k_fetch_instruction. (m88k_skip_prologue): Pass architecture to m88k_analyze_prologue. (m88k_frame_cache): Likewise. * mep-tdep.c (mep_get_insn): Add GDBARCH parameter. (mep_analyze_prologue): Pass architecture to mep_get_insn. * mips-tdep.c (mips_fetch_instruction): Add GDBARCH parameter. (mips32_next_pc): Pass architecture to mips_fetch_instruction. (deal_with_atomic_sequence): Likewise. (unpack_mips16): Add GDBARCH parameter, pass to mips_fetch_instruction. (mips16_scan_prologue): Likewise. (mips32_scan_prologue): Likewise. (mips16_in_function_epilogue_p): Likewise. (mips32_in_function_epilogue_p): Likewise. (mips_about_to_return): Likewise. (mips_insn16_frame_cache): Pass architecture to mips16_scan_prologue. (mips_insn32_frame_cache): Pass architecture to mips32_scan_prologue. (mips_skip_prologue): Pass architecture to mips16_scan_prologue and mips32_scan_prologue. (mips_in_function_epilogue_p): Pass architecture to mips16_in_function_epilogue_p and mips32_in_function_epilogue_p. (heuristic_proc_start): Pass architecture to mips_fetch_instruction and mips_about_to_return. (mips_skip_mips16_trampoline_code): Pass architecture to mips_fetch_instruction. (fetch_mips_16): Add GDBARCH parameter. (mips16_next_pc): Pass architecture to fetch_mips_16. (extended_mips16_next_pc): Pass architecture to unpack_mips16 and fetch_mips_16. * objc-lang.c (read_objc_method, read_objc_methlist_nmethods, read_objc_methlist_method, read_objc_object, read_objc_super, read_objc_class): Add GDBARCH parameter. (find_implementation_from_class): Add GDBARCH parameter, pass to read_objc_class, read_objc_methlist_nmethods, and read_objc_methlist_method. (find_implementation): Add GDBARCH parameter, pass to read_objc_object and find_implementation_from_class. (resolve_msgsend, resolve_msgsend_stret): Pass architecture to find_implementation. (resolve_msgsend_super, resolve_msgsend_super_stret): Pass architecture to read_objc_super and find_implementation_from_class. * ppc64-linux-tdep.c (ppc64_desc_entry_point): Add GDBARCH parameter. (ppc64_standard_linkage1_target, ppc64_standard_linkage2_target, ppc64_standard_linkage3_target): Pass architecture to ppc64_desc_entry_point. * rs6000-tdep.c (bl_to_blrl_insn_p): Add BYTE_ORDER parameter. (skip_prologue): Pass byte order to bl_to_blrl_insn_p. (rs6000_fetch_instruction): Add GDBARCH parameter. (rs6000_skip_stack_check): Add GDBARCH parameter, pass to rs6000_fetch_instruction. (skip_prologue): Pass architecture to rs6000_fetch_instruction. * remote-mips.c (mips_store_word): Return old_contents as host integer value instead of target bytes. * s390-tdep.c (struct s390_prologue_data): Add BYTE_ORDER member. (s390_analyze_prologue): Initialize it. (extend_simple_arg): Add GDBARCH parameter. (s390_push_dummy_call): Pass architecture to extend_simple_arg. * scm-lang.c (scm_get_field): Add BYTE_ORDER parameter. * scm-lang.h (scm_get_field): Add BYTE_ORDER parameter. (SCM_CAR, SCM_CDR): Pass SCM_BYTE_ORDER to scm_get_field. * scm-valprint.c (scm_scmval_print): Likewise. (scm_scmlist_print, scm_ipruk, scm_scmval_print): Define SCM_BYTE_ORDER. * sh64-tdep.c (look_for_args_moves): Add GDBARCH parameter. (sh64_skip_prologue_hard_way): Add GDBARCH parameter, pass to look_for_args_moves. (sh64_skip_prologue): Pass architecture to sh64_skip_prologue_hard_way. * sh-tdep.c (sh_analyze_prologue): Add GDBARCH parameter. (sh_skip_prologue): Pass architecture to sh_analyze_prologue. (sh_frame_cache): Likewise. * solib-irix.c (extract_mips_address): Add GDBARCH parameter. (fetch_lm_info, irix_current_sos, irix_open_symbol_file_object): Pass architecture to extract_mips_address. * sparc-tdep.h (sparc_fetch_wcookie): Add GDBARCH parameter. * sparc-tdep.c (sparc_fetch_wcookie): Add GDBARCH parameter. (sparc_supply_rwindow, sparc_collect_rwindow): Pass architecture to sparc_fetch_wcookie. (sparc32_frame_prev_register): Likewise. * sparc64-tdep.c (sparc64_frame_prev_register): Likewise. * sparc32nbsd-tdep.c (sparc32nbsd_sigcontext_saved_regs): Likewise. * sparc64nbsd-tdep.c (sparc64nbsd_sigcontext_saved_regs): Likewise. * spu-tdep.c (spu_analyze_prologue): Add GDBARCH parameter. (spu_skip_prologue): Pass architecture to spu_analyze_prologue. (spu_virtual_frame_pointer): Likewise. (spu_frame_unwind_cache): Likewise. (info_spu_mailbox_list): Add BYTE_ORER parameter. (info_spu_mailbox_command): Pass byte order to info_spu_mailbox_list. (info_spu_dma_cmdlist): Add BYTE_ORER parameter. (info_spu_dma_command, info_spu_proxydma_command): Pass byte order to info_spu_dma_cmdlist. * symfile.c (read_target_long_array): Add GDBARCH parameter. (simple_read_overlay_table, simple_read_overlay_region_table, simple_overlay_update_1): Pass architecture to read_target_long_array. * v850-tdep.c (v850_analyze_prologue): Add GDBARCH parameter. (v850_frame_cache): Pass architecture to v850_analyze_prologue. * xstormy16-tdep.c (xstormy16_analyze_prologue): Add GDBARCH parameter. (xstormy16_skip_prologue, xstormy16_frame_cache): Pass architecture to xstormy16_analyze_prologue. (xstormy16_resolve_jmp_table_entry): Add GDBARCH parameter. (xstormy16_find_jmp_table_entry): Likewise. (xstormy16_skip_trampoline_code): Pass architecture to xstormy16_resolve_jmp_table_entry. (xstormy16_pointer_to_address): Likewise. (xstormy16_address_to_pointer): Pass architecture to xstormy16_find_jmp_table_entry. * xtensa-tdep.c (call0_track_op): Add GDBARCH parameter. (call0_analyze_prologue): Add GDBARCH parameter, pass to call0_track_op. (call0_frame_cache): Pass architecture to call0_analyze_prologue. (xtensa_skip_prologue): Likewise.
2009-07-02 17:25:59 +00:00
enum bfd_endian byte_order = gdbarch_byte_order (exp->gdbarch);
CORE_ADDR address;
long length, index;
struct type *el_type;
gdb_byte buf4[4];
2001-10-21 01:57:42 +00:00
struct value *clas = java_class_from_object (arg1);
struct value *temp = clas;
/* Get CLASS_ELEMENT_TYPE of the array type. */
temp = value_struct_elt (&temp, NULL, "methods",
1999-07-07 20:19:36 +00:00
NULL, "structure");
deprecated_set_value_type (temp, value_type (clas));
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
el_type = type_from_class (exp->gdbarch, temp);
if (TYPE_CODE (el_type) == TYPE_CODE_STRUCT)
el_type = lookup_pointer_type (el_type);
if (noside == EVAL_AVOID_SIDE_EFFECTS)
return value_zero (el_type, VALUE_LVAL (arg1));
address = value_as_address (arg1);
address += get_java_object_header_size (exp->gdbarch);
read_memory (address, buf4, 4);
* defs.h (extract_signed_integer, extract_unsigned_integer, extract_long_unsigned_integer, store_signed_integer, store_unsigned_integer): Add BYTE_ORDER parameter. * findvar.c (extract_signed_integer, extract_unsigned_integer, extract_long_unsigned_integer, store_signed_integer, store_unsigned_integer): Add BYTE_ORDER parameter. Use it instead of current_gdbarch. * gdbcore.h (read_memory_integer, safe_read_memory_integer, read_memory_unsigned_integer, write_memory_signed_integer, write_memory_unsigned_integer): Add BYTE_ORDER parameter. * corefile.c (struct captured_read_memory_integer_arguments): Add BYTE_ORDER member. (safe_read_memory_integer): Add BYTE_ORDER parameter. Store it into struct captured_read_memory_integer_arguments. (do_captured_read_memory_integer): Pass it to read_memory_integer. (read_memory_integer): Add BYTE_ORDER parameter. Pass it to extract_signed_integer. (read_memory_unsigned_integer): Add BYTE_ORDER parameter. Pass it to extract_unsigned_integer. (write_memory_signed_integer): Add BYTE_ORDER parameter. Pass it to store_signed_integer. (write_memory_unsigned_integer): Add BYTE_ORDER parameter. Pass it to store_unsigned_integer. * target.h (get_target_memory_unsigned): Add BYTE_ORDER parameter. * target.c (get_target_memory_unsigned): Add BYTE_ORDER parameter. Pass it to extract_unsigned_integer. Update calls to extract_signed_integer, extract_unsigned_integer, extract_long_unsigned_integer, store_signed_integer, store_unsigned_integer, read_memory_integer, read_memory_unsigned_integer, safe_read_memory_integer, write_memory_signed_integer, write_memory_unsigned_integer, and get_target_memory_unsigned to pass byte order: * ada-lang.c (ada_value_binop): Update. * ada-valprint.c (char_at): Update. * alpha-osf1-tdep.c (alpha_osf1_sigcontext_addr): Update. * alpha-tdep.c (alpha_lds, alpha_sts, alpha_push_dummy_call, alpha_extract_return_value, alpha_read_insn, alpha_get_longjmp_target): Update. * amd64-linux-tdep.c (amd64_linux_sigcontext_addr): Update. * amd64obsd-tdep.c (amd64obsd_supply_uthread, amd64obsd_collect_uthread, amd64obsd_trapframe_cache): Update. * amd64-tdep.c (amd64_push_dummy_call, amd64_analyze_prologue, amd64_frame_cache, amd64_sigtramp_frame_cache, fixup_riprel, amd64_displaced_step_fixup): Update. * arm-linux-tdep.c (arm_linux_sigreturn_init, arm_linux_rt_sigreturn_init, arm_linux_supply_gregset): Update. * arm-tdep.c (thumb_analyze_prologue, arm_skip_prologue, arm_scan_prologue, arm_push_dummy_call, thumb_get_next_pc, arm_get_next_pc, arm_extract_return_value, arm_store_return_value, arm_return_value): Update. * arm-wince-tdep.c (arm_pe_skip_trampoline_code): Update. * auxv.c (default_auxv_parse): Update. * avr-tdep.c (avr_address_to_pointer, avr_pointer_to_address, avr_scan_prologue, avr_extract_return_value, avr_frame_prev_register, avr_push_dummy_call): Update. * bsd-uthread.c (bsd_uthread_check_magic, bsd_uthread_lookup_offset, bsd_uthread_wait, bsd_uthread_thread_alive, bsd_uthread_extra_thread_info): Update. * c-lang.c (c_printstr, print_wchar): Update. * cp-valprint.c (cp_print_class_member): Update. * cris-tdep.c (cris_sigcontext_addr, cris_sigtramp_frame_unwind_cache, cris_push_dummy_call, cris_scan_prologue, cris_store_return_value, cris_extract_return_value, find_step_target, dip_prefix, sixteen_bit_offset_branch_op, none_reg_mode_jump_op, move_mem_to_reg_movem_op, get_data_from_address): Update. * dwarf2expr.c (dwarf2_read_address, execute_stack_op): Update. * dwarf2-frame.c (execute_cfa_program): Update. * dwarf2loc.c (find_location_expression): Update. * dwarf2read.c (dwarf2_const_value): Update. * expprint.c (print_subexp_standard): Update. * findvar.c (unsigned_pointer_to_address, signed_pointer_to_address, unsigned_address_to_pointer, address_to_signed_pointer, read_var_value): Update. * frame.c (frame_unwind_register_signed, frame_unwind_register_unsigned, get_frame_memory_signed, get_frame_memory_unsigned): Update. * frame-unwind.c (frame_unwind_got_constant): Update. * frv-linux-tdep.c (frv_linux_pc_in_sigtramp, frv_linux_sigcontext_reg_addr, frv_linux_sigtramp_frame_cache): Update. * frv-tdep.c (frv_analyze_prologue, frv_skip_main_prologue, frv_extract_return_value, find_func_descr, frv_convert_from_func_ptr_addr, frv_push_dummy_call): Update. * f-valprint.c (f_val_print): Update. * gnu-v3-abi.c (gnuv3_decode_method_ptr, gnuv3_make_method_ptr): Update. * h8300-tdep.c (h8300_is_argument_spill, h8300_analyze_prologue, h8300_push_dummy_call, h8300_extract_return_value, h8300h_extract_return_value, h8300_store_return_value, h8300h_store_return_value): Update. * hppabsd-tdep.c (hppabsd_find_global_pointer): Update. * hppa-hpux-nat.c (hppa_hpux_fetch_register, hppa_hpux_store_register): Update. * hppa-hpux-tdep.c (hppa32_hpux_in_solib_call_trampoline, hppa64_hpux_in_solib_call_trampoline, hppa_hpux_in_solib_return_trampoline, hppa_hpux_skip_trampoline_code, hppa_hpux_sigtramp_frame_unwind_cache, hppa_hpux_sigtramp_unwind_sniffer, hppa32_hpux_find_global_pointer, hppa64_hpux_find_global_pointer, hppa_hpux_search_pattern, hppa32_hpux_search_dummy_call_sequence, hppa64_hpux_search_dummy_call_sequence, hppa_hpux_supply_save_state, hppa_hpux_unwind_adjust_stub): Update. * hppa-linux-tdep.c (insns_match_pattern, hppa_linux_find_global_pointer): Update. * hppa-tdep.c (hppa_in_function_epilogue_p, hppa32_push_dummy_call, hppa64_convert_code_addr_to_fptr, hppa64_push_dummy_call, skip_prologue_hard_way, hppa_frame_cache, hppa_fallback_frame_cache, hppa_pseudo_register_read, hppa_frame_prev_register_helper, hppa_match_insns): Update. * hpux-thread.c (hpux_thread_fetch_registers): Update. * i386-tdep.c (i386bsd_sigcontext_addr): Update. * i386-cygwin-tdep.c (core_process_module_section): Update. * i386-darwin-nat.c (i386_darwin_sstep_at_sigreturn, amd64_darwin_sstep_at_sigreturn): Update. * i386-darwin-tdep.c (i386_darwin_sigcontext_addr, amd64_darwin_sigcontext_addr): Likewise. * i386-linux-nat.c (i386_linux_sigcontext_addr): Update. * i386nbsd-tdep.c (i386nbsd_sigtramp_cache_init): Update. * i386-nto-tdep.c (i386nto_sigcontext_addr): Update. * i386obsd-nat.c (i386obsd_supply_pcb): Update. * i386obsd-tdep.c (i386obsd_supply_uthread, i386obsd_collect_uthread, i386obsd_trapframe_cache): Update. * i386-tdep.c (i386_displaced_step_fixup, i386_follow_jump, i386_analyze_frame_setup, i386_analyze_prologue, i386_skip_main_prologue, i386_frame_cache, i386_sigtramp_frame_cache, i386_get_longjmp_target, i386_push_dummy_call, i386_pe_skip_trampoline_code, i386_svr4_sigcontext_addr, i386_fetch_pointer_argument): Update. * i387-tdep.c (i387_supply_fsave): Update. * ia64-linux-tdep.c (ia64_linux_sigcontext_register_address): Update. * ia64-tdep.c (ia64_pseudo_register_read, ia64_pseudo_register_write, examine_prologue, ia64_frame_cache, ia64_frame_prev_register, ia64_sigtramp_frame_cache, ia64_sigtramp_frame_prev_register, ia64_access_reg, ia64_access_rse_reg, ia64_libunwind_frame_this_id, ia64_libunwind_frame_prev_register, ia64_libunwind_sigtramp_frame_this_id, ia64_libunwind_sigtramp_frame_prev_register, ia64_find_global_pointer, find_extant_func_descr, find_func_descr, ia64_convert_from_func_ptr_addr, ia64_push_dummy_call, ia64_dummy_id, ia64_unwind_pc): Update. * iq2000-tdep.c (iq2000_pointer_to_address, iq2000_address_to_pointer, iq2000_scan_prologue, iq2000_extract_return_value, iq2000_push_dummy_call): Update. * irix5nat.c (fill_gregset): Update. * jv-lang.c (evaluate_subexp_java): Update. * jv-valprint.c (java_value_print): Update. * lm32-tdep.c (lm32_analyze_prologue, lm32_push_dummy_call, lm32_extract_return_value, lm32_store_return_value): Update. * m32c-tdep.c (m32c_push_dummy_call, m32c_return_value, m32c_skip_trampoline_code, m32c_m16c_address_to_pointer, m32c_m16c_pointer_to_address): Update. * m32r-tdep.c (m32r_store_return_value, decode_prologue, m32r_skip_prologue, m32r_push_dummy_call, m32r_extract_return_value): Update. * m68hc11-tdep.c (m68hc11_pseudo_register_read, m68hc11_pseudo_register_write, m68hc11_analyze_instruction, m68hc11_push_dummy_call): Update. * m68linux-tdep.c (m68k_linux_pc_in_sigtramp, m68k_linux_get_sigtramp_info, m68k_linux_sigtramp_frame_cache): Update. * m68k-tdep.c (m68k_push_dummy_call, m68k_analyze_frame_setup, m68k_analyze_register_saves, m68k_analyze_prologue, m68k_frame_cache, m68k_get_longjmp_target): Update. * m88k-tdep.c (m88k_fetch_instruction): Update. * mep-tdep.c (mep_pseudo_cr32_read, mep_pseudo_csr_write, mep_pseudo_cr32_write, mep_get_insn, mep_push_dummy_call): Update. * mi/mi-main.c (mi_cmd_data_write_memory): Update. * mips-linux-tdep.c (mips_linux_get_longjmp_target, supply_32bit_reg, mips64_linux_get_longjmp_target, mips64_fill_gregset, mips64_fill_fpregset, mips_linux_in_dynsym_stub): Update. * mipsnbdsd-tdep.c (mipsnbsd_get_longjmp_target): Update. * mips-tdep.c (mips_fetch_instruction, fetch_mips_16, mips_eabi_push_dummy_call, mips_n32n64_push_dummy_call, mips_o32_push_dummy_call, mips_o64_push_dummy_call, mips_single_step_through_delay, mips_skip_pic_trampoline_code, mips_integer_to_address): Update. * mn10300-tdep.c (mn10300_analyze_prologue, mn10300_push_dummy_call): Update. * monitor.c (monitor_supply_register, monitor_write_memory, monitor_read_memory_single): Update. * moxie-tdep.c (moxie_store_return_value, moxie_extract_return_value, moxie_analyze_prologue): Update. * mt-tdep.c (mt_return_value, mt_skip_prologue, mt_select_coprocessor, mt_pseudo_register_read, mt_pseudo_register_write, mt_registers_info, mt_push_dummy_call): Update. * objc-lang.c (read_objc_method, read_objc_methlist_nmethods, read_objc_methlist_method, read_objc_object, read_objc_super, read_objc_class, find_implementation_from_class): Update. * ppc64-linux-tdep.c (ppc64_desc_entry_point, ppc64_linux_convert_from_func_ptr_addr, ppc_linux_sigtramp_cache): Update. * ppcobsd-tdep.c (ppcobsd_sigtramp_frame_sniffer, ppcobsd_sigtramp_frame_cache): Update. * ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call, do_ppc_sysv_return_value, ppc64_sysv_abi_push_dummy_call, ppc64_sysv_abi_return_value): Update. * ppc-linux-nat.c (ppc_linux_auxv_parse): Update. * procfs.c (procfs_auxv_parse): Update. * p-valprint.c (pascal_val_print): Update. * regcache.c (regcache_raw_read_signed, regcache_raw_read_unsigned, regcache_raw_write_signed, regcache_raw_write_unsigned, regcache_cooked_read_signed, regcache_cooked_read_unsigned, regcache_cooked_write_signed, regcache_cooked_write_unsigned): Update. * remote-m32r-sdi.c (m32r_fetch_register): Update. * remote-mips.c (mips_wait, mips_fetch_registers, mips_xfer_memory): Update. * rs6000-aix-tdep.c (rs6000_push_dummy_call, rs6000_return_value, rs6000_convert_from_func_ptr_addr, branch_dest, rs6000_software_single_step): Update. * rs6000-tdep.c (rs6000_in_function_epilogue_p, ppc_displaced_step_fixup, ppc_deal_with_atomic_sequence, bl_to_blrl_insn_p, rs6000_fetch_instruction, skip_prologue, rs6000_skip_main_prologue, rs6000_skip_trampoline_code, rs6000_frame_cache): Update. * s390-tdep.c (s390_pseudo_register_read, s390_pseudo_register_write, s390x_pseudo_register_read, s390x_pseudo_register_write, s390_load, s390_backchain_frame_unwind_cache, s390_sigtramp_frame_unwind_cache, extend_simple_arg, s390_push_dummy_call, s390_return_value): Update. * scm-exp.c (scm_lreadr): Update. * scm-lang.c (scm_get_field, scm_unpack): Update. * scm-valprint.c (scm_val_print): Update. * score-tdep.c (score_breakpoint_from_pc, score_push_dummy_call, score_fetch_inst): Update. * sh64-tdep.c (look_for_args_moves, sh64_skip_prologue_hard_way, sh64_analyze_prologue, sh64_push_dummy_call, sh64_extract_return_value, sh64_pseudo_register_read, sh64_pseudo_register_write, sh64_frame_prev_register): Update: * sh-tdep.c (sh_analyze_prologue, sh_push_dummy_call_fpu, sh_push_dummy_call_nofpu, sh_extract_return_value_nofpu, sh_store_return_value_nofpu, sh_in_function_epilogue_p): Update. * solib-darwin.c (darwin_load_image_infos): Update. * solib-frv.c (fetch_loadmap, lm_base, frv_current_sos, enable_break2, find_canonical_descriptor_in_load_object): Update. * solib-irix.c (extract_mips_address, fetch_lm_info, irix_current_sos, irix_open_symbol_file_object): Update. * solib-som.c (som_solib_create_inferior_hook, link_map_start, som_current_sos, som_open_symbol_file_object): Update. * solib-sunos.c (SOLIB_EXTRACT_ADDRESS, LM_ADDR, LM_NEXT, LM_NAME): Update. * solib-svr4.c (read_program_header, scan_dyntag_auxv, solib_svr4_r_ldsomap): Update. * sparc64-linux-tdep.c (sparc64_linux_step_trap): Update. * sparc64obsd-tdep.c (sparc64obsd_supply_uthread, sparc64obsd_collect_uthread): Update. * sparc64-tdep.c (sparc64_pseudo_register_read, sparc64_pseudo_register_write, sparc64_supply_gregset, sparc64_collect_gregset): Update. * sparc-linux-tdep.c (sparc32_linux_step_trap): Update. * sparcobsd-tdep.c (sparc32obsd_supply_uthread, sparc32obsd_collect_uthread): Update. * sparc-tdep.c (sparc_fetch_wcookie, sparc32_push_dummy_code, sparc32_store_arguments, sparc32_return_value, sparc_supply_rwindow, sparc_collect_rwindow): Update. * spu-linux-nat.c (parse_spufs_run): Update. * spu-tdep.c (spu_pseudo_register_read_spu, spu_pseudo_register_write_spu, spu_pointer_to_address, spu_analyze_prologue, spu_in_function_epilogue_p, spu_frame_unwind_cache, spu_push_dummy_call, spu_software_single_step, spu_get_longjmp_target, spu_get_overlay_table, spu_overlay_update_osect, info_spu_signal_command, info_spu_mailbox_list, info_spu_dma_cmdlist, info_spu_dma_command, info_spu_proxydma_command): Update. * stack.c (print_frame_nameless_args, frame_info): Update. * symfile.c (read_target_long_array, simple_read_overlay_table, simple_read_overlay_region_table): Update. * target.c (debug_print_register): Update. * tramp-frame.c (tramp_frame_start): Update. * v850-tdep.c (v850_analyze_prologue, v850_push_dummy_call, v850_extract_return_value, v850_store_return_value, * valarith.c (value_binop, value_bit_index): Update. * valops.c (value_cast): Update. * valprint.c (val_print_type_code_int, val_print_string, read_string): Update. * value.c (unpack_long, unpack_double, unpack_field_as_long, modify_field, pack_long): Update. * vax-tdep.c (vax_store_arguments, vax_push_dummy_call, vax_skip_prologue): Update. * xstormy16-tdep.c (xstormy16_push_dummy_call, xstormy16_analyze_prologue, xstormy16_in_function_epilogue_p, xstormy16_resolve_jmp_table_entry, xstormy16_find_jmp_table_entry, xstormy16_pointer_to_address, xstormy16_address_to_pointer): Update. * xtensa-tdep.c (extract_call_winsize, xtensa_pseudo_register_read, xtensa_pseudo_register_write, xtensa_frame_cache, xtensa_push_dummy_call, call0_track_op, call0_frame_cache): Update. * dfp.h (decimal_to_string, decimal_from_string, decimal_from_integral, decimal_from_floating, decimal_to_doublest, decimal_is_zero): Add BYTE_ORDER parameter. (decimal_binop): Add BYTE_ORDER_X, BYTE_ORDER_Y, and BYTE_ORDER_RESULT parameters. (decimal_compare): Add BYTE_ORDER_X and BYTE_ORDER_Y parameters. (decimal_convert): Add BYTE_ORDER_FROM and BYTE_ORDER_TO parameters. * dfp.c (match_endianness): Add BYTE_ORDER parameter. Use it instead of current_gdbarch. (decimal_to_string, decimal_from_integral, decimal_from_floating, decimal_to_doublest, decimal_is_zero): Add BYTE_ORDER parameter. Pass it to match_endianness. (decimal_binop): Add BYTE_ORDER_X, BYTE_ORDER_Y, and BYTE_ORDER_RESULT parameters. Pass them to match_endianness. (decimal_compare): Add BYTE_ORDER_X and BYTE_ORDER_Y parameters. Pass them to match_endianness. (decimal_convert): Add BYTE_ORDER_FROM and BYTE_ORDER_TO parameters. Pass them to match_endianness. * valarith.c (value_args_as_decimal): Add BYTE_ORDER_X and BYTE_ORDER_Y output parameters. (value_binop): Update call to value_args_as_decimal. Update calls to decimal_to_string, decimal_from_string, decimal_from_integral, decimal_from_floating, decimal_to_doublest, decimal_is_zero, decimal_binop, decimal_compare and decimal_convert to pass/receive byte order: * c-exp.y (parse_number): Update. * printcmd.c (printf_command): Update. * valarith.c (value_args_as_decimal, value_binop, value_logical_not, value_equal, value_less): Update. * valops.c (value_cast, value_one): Update. * valprint.c (print_decimal_floating): Update. * value.c (unpack_long, unpack_double): Update. * python/python-value.c (valpy_nonzero): Update. * ada-valprint.c (char_at): Add BYTE_ORDER parameter. (printstr): Update calls to char_at. (ada_val_print_array): Likewise. * valprint.c (read_string): Add BYTE_ORDER parameter. (val_print_string): Update call to read_string. * c-lang.c (c_get_string): Likewise. * charset.h (target_wide_charset): Add BYTE_ORDER parameter. * charset.c (target_wide_charset): Add BYTE_ORDER parameter. Use it instead of current_gdbarch. * printcmd.c (printf_command): Update calls to target_wide_charset. * c-lang.c (charset_for_string_type): Add BYTE_ORDER parameter. Pass to target_wide_charset. Use it instead of current_gdbarch. (classify_type): Add BYTE_ORDER parameter. Pass to charset_for_string_type. Allow NULL encoding pointer. (print_wchar): Add BYTE_ORDER parameter. (c_emit_char): Update calls to classify_type and print_wchar. (c_printchar, c_printstr): Likewise. * gdbarch.sh (in_solib_return_trampoline): Convert to type "m". * gdbarch.c, gdbarch.h: Regenerate. * arch-utils.h (generic_in_solib_return_trampoline): Add GDBARCH parameter. * arch-utils.c (generic_in_solib_return_trampoline): Likewise. * hppa-hpux-tdep.c (hppa_hpux_in_solib_return_trampoline): Likewise. * rs6000-tdep.c (rs6000_in_solib_return_trampoline): Likewise. (rs6000_skip_trampoline_code): Update call. * alpha-tdep.h (struct gdbarch_tdep): Add GDBARCH parameter to dynamic_sigtramp_offset and pc_in_sigtramp callbacks. (alpha_read_insn): Add GDBARCH parameter. * alpha-tdep.c (alpha_lds, alpha_sts): Add GDBARCH parameter. (alpha_register_to_value): Pass architecture to alpha_sts. (alpha_extract_return_value): Likewise. (alpha_value_to_register): Pass architecture to alpha_lds. (alpha_store_return_value): Likewise. (alpha_read_insn): Add GDBARCH parameter. (alpha_skip_prologue): Pass architecture to alpha_read_insn. (alpha_heuristic_proc_start): Likewise. (alpha_heuristic_frame_unwind_cache): Likewise. (alpha_next_pc): Likewise. (alpha_sigtramp_frame_this_id): Pass architecture to tdep->dynamic_sigtramp_offset callback. (alpha_sigtramp_frame_sniffer): Pass architecture to tdep->pc_in_sigtramp callback. * alphafbsd-tdep.c (alphafbsd_pc_in_sigtramp): Add GDBARCH parameter. (alphafbsd_sigtramp_offset): Likewise. * alpha-linux-tdep.c (alpha_linux_sigtramp_offset_1): Add GDBARCH parameter. Pass to alpha_read_insn. (alpha_linux_sigtramp_offset): Add GDBARCH parameter. Pass to alpha_linux_sigtramp_offset_1. (alpha_linux_pc_in_sigtramp): Add GDBARCH parameter. Pass to alpha_linux_sigtramp_offset. (alpha_linux_sigcontext_addr): Pass architecture to alpha_read_insn and alpha_linux_sigtramp_offset. * alphanbsd-tdep.c (alphanbsd_sigtramp_offset): Add GDBARCH parameter. (alphanbsd_pc_in_sigtramp): Add GDBARCH parameter. Pass to alphanbsd_sigtramp_offset. * alphaobsd-tdep.c (alphaobsd_sigtramp_offset): Add GDBARCH parameter. (alphaobsd_pc_in_sigtramp): Add GDBARCH parameter. Pass to alpha_read_insn. (alphaobsd_sigcontext_addr): Pass architecture to alphaobsd_sigtramp_offset. * alpha-osf1-tdep.c (alpha_osf1_pc_in_sigtramp): Add GDBARCH parameter. * amd64-tdep.c (amd64_analyze_prologue): Add GDBARCH parameter. (amd64_skip_prologue): Pass architecture to amd64_analyze_prologue. (amd64_frame_cache): Likewise. * arm-tdep.c (SWAP_SHORT, SWAP_INT): Remove. (thumb_analyze_prologue, arm_skip_prologue, arm_scan_prologue, thumb_get_next_pc, arm_get_next_pc): Do not use SWAP_ macros. * arm-wince-tdep.c: Include "frame.h". * avr-tdep.c (EXTRACT_INSN): Remove. (avr_scan_prologue): Add GDBARCH argument, inline EXTRACT_INSN. (avr_skip_prologue): Pass architecture to avr_scan_prologue. (avr_frame_unwind_cache): Likewise. * cris-tdep.c (struct instruction_environment): Add BYTE_ORDER member. (find_step_target): Initialize it. (get_data_from_address): Add BYTE_ORDER parameter. (bdap_prefix): Pass byte order to get_data_from_address. (handle_prefix_assign_mode_for_aritm_op): Likewise. (three_operand_add_sub_cmp_and_or_op): Likewise. (handle_inc_and_index_mode_for_aritm_op): Likewise. * frv-linux-tdep.c (frv_linux_pc_in_sigtramp): Add GDBARCH parameter. (frv_linux_sigcontext_reg_addr): Pass architecture to frv_linux_pc_in_sigtramp. (frv_linux_sigtramp_frame_sniffer): Likewise. * h8300-tdep.c (h8300_is_argument_spill): Add GDBARCH parameter. (h8300_analyze_prologue): Add GDBARCH parameter. Pass to h8300_is_argument_spill. (h8300_frame_cache, h8300_skip_prologue): Pass architecture to h8300_analyze_prologue. * hppa-tdep.h (struct gdbarch_tdep): Add GDBARCH parameter to in_solib_call_trampoline callback. (hppa_in_solib_call_trampoline): Add GDBARCH parameter. * hppa-tdep.c (hppa64_convert_code_addr_to_fptr): Add GDBARCH parameter. (hppa64_push_dummy_call): Pass architecture to hppa64_convert_code_addr_to_fptr. (hppa_match_insns): Add GDBARCH parameter. (hppa_match_insns_relaxed): Add GDBARCH parameter. Pass to hppa_match_insns. (hppa_skip_trampoline_code): Pass architecture to hppa_match_insns. (hppa_in_solib_call_trampoline): Add GDBARCH parameter. Pass to hppa_match_insns_relaxed. (hppa_stub_unwind_sniffer): Pass architecture to tdep->in_solib_call_trampoline callback. * hppa-hpux-tdep.c (hppa_hpux_search_pattern): Add GDBARCH parameter. (hppa32_hpux_search_dummy_call_sequence): Pass architecture to hppa_hpux_search_pattern. * hppa-linux-tdep.c (insns_match_pattern): Add GDBARCH parameter. (hppa_linux_sigtramp_find_sigcontext): Add GDBARCH parameter. Pass to insns_match_pattern. (hppa_linux_sigtramp_frame_unwind_cache): Pass architecture to hppa_linux_sigtramp_find_sigcontext. (hppa_linux_sigtramp_frame_sniffer): Likewise. (hppa32_hpux_in_solib_call_trampoline): Add GDBARCH parameter. (hppa64_hpux_in_solib_call_trampoline): Likewise. * i386-tdep.c (i386_follow_jump): Add GDBARCH parameter. (i386_analyze_frame_setup): Add GDBARCH parameter. (i386_analyze_prologue): Add GDBARCH parameter. Pass to i386_follow_jump and i386_analyze_frame_setup. (i386_skip_prologue): Pass architecture to i386_analyze_prologue and i386_follow_jump. (i386_frame_cache): Pass architecture to i386_analyze_prologue. (i386_pe_skip_trampoline_code): Add FRAME parameter. * i386-tdep.h (i386_pe_skip_trampoline_code): Add FRAME parameter. * i386-cygwin-tdep.c (i386_cygwin_skip_trampoline_code): Pass frame to i386_pe_skip_trampoline_code. * ia64-tdep.h (struct gdbarch_tdep): Add GDBARCH parameter to sigcontext_register_address callback. * ia64-tdep.c (ia64_find_global_pointer): Add GDBARCH parameter. (ia64_find_unwind_table): Pass architecture to ia64_find_global_pointer. (find_extant_func_descr): Add GDBARCH parameter. (find_func_descr): Pass architecture to find_extant_func_descr and ia64_find_global_pointer. (ia64_sigtramp_frame_init_saved_regs): Pass architecture to tdep->sigcontext_register_address callback. * ia64-linux-tdep.c (ia64_linux_sigcontext_register_address): Add GDBARCH parameter. * iq2000-tdep.c (iq2000_scan_prologue): Add GDBARCH parameter. (iq2000_frame_cache): Pass architecture to iq2000_scan_prologue. * lm32-tdep.c (lm32_analyze_prologue): Add GDBARCH parameter. (lm32_skip_prologue, lm32_frame_cache): Pass architecture to lm32_analyze_prologue. * m32r-tdep.c (decode_prologue): Add GDBARCH parameter. (m32r_skip_prologue): Pass architecture to decode_prologue. * m68hc11-tdep.c (m68hc11_analyze_instruction): Add GDBARCH parameter. (m68hc11_scan_prologue): Pass architecture to m68hc11_analyze_instruction. * m68k-tdep.c (m68k_analyze_frame_setup): Add GDBARCH parameter. (m68k_analyze_prologue): Pass architecture to m68k_analyze_frame_setup. * m88k-tdep.c (m88k_fetch_instruction): Add BYTE_ORDER parameter. (m88k_analyze_prologue): Add GDBARCH parameter. Pass byte order to m88k_fetch_instruction. (m88k_skip_prologue): Pass architecture to m88k_analyze_prologue. (m88k_frame_cache): Likewise. * mep-tdep.c (mep_get_insn): Add GDBARCH parameter. (mep_analyze_prologue): Pass architecture to mep_get_insn. * mips-tdep.c (mips_fetch_instruction): Add GDBARCH parameter. (mips32_next_pc): Pass architecture to mips_fetch_instruction. (deal_with_atomic_sequence): Likewise. (unpack_mips16): Add GDBARCH parameter, pass to mips_fetch_instruction. (mips16_scan_prologue): Likewise. (mips32_scan_prologue): Likewise. (mips16_in_function_epilogue_p): Likewise. (mips32_in_function_epilogue_p): Likewise. (mips_about_to_return): Likewise. (mips_insn16_frame_cache): Pass architecture to mips16_scan_prologue. (mips_insn32_frame_cache): Pass architecture to mips32_scan_prologue. (mips_skip_prologue): Pass architecture to mips16_scan_prologue and mips32_scan_prologue. (mips_in_function_epilogue_p): Pass architecture to mips16_in_function_epilogue_p and mips32_in_function_epilogue_p. (heuristic_proc_start): Pass architecture to mips_fetch_instruction and mips_about_to_return. (mips_skip_mips16_trampoline_code): Pass architecture to mips_fetch_instruction. (fetch_mips_16): Add GDBARCH parameter. (mips16_next_pc): Pass architecture to fetch_mips_16. (extended_mips16_next_pc): Pass architecture to unpack_mips16 and fetch_mips_16. * objc-lang.c (read_objc_method, read_objc_methlist_nmethods, read_objc_methlist_method, read_objc_object, read_objc_super, read_objc_class): Add GDBARCH parameter. (find_implementation_from_class): Add GDBARCH parameter, pass to read_objc_class, read_objc_methlist_nmethods, and read_objc_methlist_method. (find_implementation): Add GDBARCH parameter, pass to read_objc_object and find_implementation_from_class. (resolve_msgsend, resolve_msgsend_stret): Pass architecture to find_implementation. (resolve_msgsend_super, resolve_msgsend_super_stret): Pass architecture to read_objc_super and find_implementation_from_class. * ppc64-linux-tdep.c (ppc64_desc_entry_point): Add GDBARCH parameter. (ppc64_standard_linkage1_target, ppc64_standard_linkage2_target, ppc64_standard_linkage3_target): Pass architecture to ppc64_desc_entry_point. * rs6000-tdep.c (bl_to_blrl_insn_p): Add BYTE_ORDER parameter. (skip_prologue): Pass byte order to bl_to_blrl_insn_p. (rs6000_fetch_instruction): Add GDBARCH parameter. (rs6000_skip_stack_check): Add GDBARCH parameter, pass to rs6000_fetch_instruction. (skip_prologue): Pass architecture to rs6000_fetch_instruction. * remote-mips.c (mips_store_word): Return old_contents as host integer value instead of target bytes. * s390-tdep.c (struct s390_prologue_data): Add BYTE_ORDER member. (s390_analyze_prologue): Initialize it. (extend_simple_arg): Add GDBARCH parameter. (s390_push_dummy_call): Pass architecture to extend_simple_arg. * scm-lang.c (scm_get_field): Add BYTE_ORDER parameter. * scm-lang.h (scm_get_field): Add BYTE_ORDER parameter. (SCM_CAR, SCM_CDR): Pass SCM_BYTE_ORDER to scm_get_field. * scm-valprint.c (scm_scmval_print): Likewise. (scm_scmlist_print, scm_ipruk, scm_scmval_print): Define SCM_BYTE_ORDER. * sh64-tdep.c (look_for_args_moves): Add GDBARCH parameter. (sh64_skip_prologue_hard_way): Add GDBARCH parameter, pass to look_for_args_moves. (sh64_skip_prologue): Pass architecture to sh64_skip_prologue_hard_way. * sh-tdep.c (sh_analyze_prologue): Add GDBARCH parameter. (sh_skip_prologue): Pass architecture to sh_analyze_prologue. (sh_frame_cache): Likewise. * solib-irix.c (extract_mips_address): Add GDBARCH parameter. (fetch_lm_info, irix_current_sos, irix_open_symbol_file_object): Pass architecture to extract_mips_address. * sparc-tdep.h (sparc_fetch_wcookie): Add GDBARCH parameter. * sparc-tdep.c (sparc_fetch_wcookie): Add GDBARCH parameter. (sparc_supply_rwindow, sparc_collect_rwindow): Pass architecture to sparc_fetch_wcookie. (sparc32_frame_prev_register): Likewise. * sparc64-tdep.c (sparc64_frame_prev_register): Likewise. * sparc32nbsd-tdep.c (sparc32nbsd_sigcontext_saved_regs): Likewise. * sparc64nbsd-tdep.c (sparc64nbsd_sigcontext_saved_regs): Likewise. * spu-tdep.c (spu_analyze_prologue): Add GDBARCH parameter. (spu_skip_prologue): Pass architecture to spu_analyze_prologue. (spu_virtual_frame_pointer): Likewise. (spu_frame_unwind_cache): Likewise. (info_spu_mailbox_list): Add BYTE_ORER parameter. (info_spu_mailbox_command): Pass byte order to info_spu_mailbox_list. (info_spu_dma_cmdlist): Add BYTE_ORER parameter. (info_spu_dma_command, info_spu_proxydma_command): Pass byte order to info_spu_dma_cmdlist. * symfile.c (read_target_long_array): Add GDBARCH parameter. (simple_read_overlay_table, simple_read_overlay_region_table, simple_overlay_update_1): Pass architecture to read_target_long_array. * v850-tdep.c (v850_analyze_prologue): Add GDBARCH parameter. (v850_frame_cache): Pass architecture to v850_analyze_prologue. * xstormy16-tdep.c (xstormy16_analyze_prologue): Add GDBARCH parameter. (xstormy16_skip_prologue, xstormy16_frame_cache): Pass architecture to xstormy16_analyze_prologue. (xstormy16_resolve_jmp_table_entry): Add GDBARCH parameter. (xstormy16_find_jmp_table_entry): Likewise. (xstormy16_skip_trampoline_code): Pass architecture to xstormy16_resolve_jmp_table_entry. (xstormy16_pointer_to_address): Likewise. (xstormy16_address_to_pointer): Pass architecture to xstormy16_find_jmp_table_entry. * xtensa-tdep.c (call0_track_op): Add GDBARCH parameter. (call0_analyze_prologue): Add GDBARCH parameter, pass to call0_track_op. (call0_frame_cache): Pass architecture to call0_analyze_prologue. (xtensa_skip_prologue): Likewise.
2009-07-02 17:25:59 +00:00
length = (long) extract_signed_integer (buf4, 4, byte_order);
index = (long) value_as_long (arg2);
if (index >= length || index < 0)
2005-02-10 Andrew Cagney <cagney@gnu.org> Mark up all error and warning messages. * ada-lang.c, amd64-tdep.c, arch-utils.c, breakpoint.c: Update. * bsd-kvm.c, bsd-uthread.c, coff-solib.h, coffread.c: Update. * core-aout.c, core-regset.c, corefile.c, corelow.c: Update. * cp-abi.c, cp-support.c, cp-valprint.c, cris-tdep.c: Update. * dbxread.c, demangle.c, doublest.c, dsrec.c: Update. * dve3900-rom.c, dwarf2expr.c, dwarf2loc.c: Update. * dwarf2read.c, dwarfread.c, elfread.c, eval.c: Update. * event-top.c, exec.c, expprint.c, f-lang.c: Update. * f-typeprint.c, f-valprint.c, fbsd-nat.c, findvar.c: Update. * frame.c, frv-linux-tdep.c, gcore.c, gdbtypes.c: Update. * gnu-nat.c, gnu-v2-abi.c, gnu-v3-abi.c, go32-nat.c: Update. * hpacc-abi.c, hppa-hpux-nat.c, hppa-hpux-tdep.c: Update. * hppa-linux-nat.c, hppa-linux-tdep.c, hppa-tdep.c: Update. * hpread.c, hpux-thread.c, i386-linux-nat.c: Update. * i386-linux-tdep.c, i386-tdep.c, i386bsd-nat.c: Update. * i386gnu-nat.c, i387-tdep.c, ia64-linux-nat.c: Update. * ia64-tdep.c, inf-child.c, inf-ptrace.c, inf-ttrace.c: Update. * infcall.c, infcmd.c, inflow.c, infptrace.c, infrun.c: Update. * inftarg.c, interps.c, irix5-nat.c, jv-lang.c: Update. * kod-cisco.c, kod.c, language.c, libunwind-frame.c: Update. * linespec.c, linux-nat.c, linux-thread-db.c, m2-lang.c: Update. * m32r-rom.c, m68hc11-tdep.c, m68k-tdep.c: Update. * m68klinux-nat.c, macrocmd.c, macroexp.c, main.c: Update. * maint.c, mdebugread.c, mem-break.c, memattr.c: Update. * mips-linux-tdep.c, mips-tdep.c, mipsread.c, monitor.c: Update. * nlmread.c, nto-procfs.c, objc-lang.c, objfiles.c: Update. * observer.c, ocd.c, p-lang.c, p-typeprint.c: Update. * p-valprint.c, pa64solib.c, parse.c, ppc-linux-tdep.c: Update. * ppcnbsd-tdep.c, printcmd.c, procfs.c, remote-e7000.c: Update. * remote-fileio.c, remote-m32r-sdi.c, remote-rdi.c: Update. * remote-rdp.c, remote-sim.c, remote-st.c: Update. * remote-utils.c, remote-utils.h, remote.c: Update. * rom68k-rom.c, rs6000-nat.c, s390-tdep.c, scm-lang.c: Update. * ser-e7kpc.c, ser-tcp.c, ser-unix.c, sh-tdep.c: Update. * sh3-rom.c, shnbsd-tdep.c, sol-thread.c, solib-aix5.c: Update. * solib-frv.c, solib-irix.c, solib-osf.c, solib-pa64.c: Update. * solib-som.c, solib-sunos.c, solib-svr4.c, solib.c: Update. * somread.c, somsolib.c, source.c, stabsread.c: Update. * stack.c, std-regs.c, symfile-mem.c, symfile.c: Update. * symmisc.c, symtab.c, target.c, thread.c, top.c: Update. * tracepoint.c, trad-frame.c, typeprint.c, utils.c: Update. * uw-thread.c, valarith.c, valops.c, valprint.c: Update. * value.c, varobj.c, version.in, win32-nat.c, wince.c: Update. * xcoffread.c, xcoffsolib.c, cli/cli-cmds.c: Update. * cli/cli-decode.c, cli/cli-dump.c, cli/cli-logging.c: Update. * cli/cli-script.c, cli/cli-setshow.c, mi/mi-cmd-break.c: Update. * mi/mi-cmd-disas.c, mi/mi-cmd-env.c, mi/mi-cmd-file.c: Update. * mi/mi-cmd-stack.c, mi/mi-cmd-var.c, mi/mi-getopt.c: Update. * mi/mi-symbol-cmds.c, tui/tui-layout.c, tui/tui-stack.c: Update. * tui/tui-win.c: Update.
2005-02-11 04:06:14 +00:00
error (_("array index (%ld) out of bounds (length: %ld)"),
index, length);
address = (address + 4) + index * TYPE_LENGTH (el_type);
return value_at (el_type, address);
}
else if (TYPE_CODE (type) == TYPE_CODE_ARRAY)
{
if (noside == EVAL_AVOID_SIDE_EFFECTS)
return value_zero (TYPE_TARGET_TYPE (type), VALUE_LVAL (arg1));
else
return value_subscript (arg1, value_as_long (arg2));
}
if (name)
2005-02-10 Andrew Cagney <cagney@gnu.org> Mark up all error and warning messages. * ada-lang.c, amd64-tdep.c, arch-utils.c, breakpoint.c: Update. * bsd-kvm.c, bsd-uthread.c, coff-solib.h, coffread.c: Update. * core-aout.c, core-regset.c, corefile.c, corelow.c: Update. * cp-abi.c, cp-support.c, cp-valprint.c, cris-tdep.c: Update. * dbxread.c, demangle.c, doublest.c, dsrec.c: Update. * dve3900-rom.c, dwarf2expr.c, dwarf2loc.c: Update. * dwarf2read.c, dwarfread.c, elfread.c, eval.c: Update. * event-top.c, exec.c, expprint.c, f-lang.c: Update. * f-typeprint.c, f-valprint.c, fbsd-nat.c, findvar.c: Update. * frame.c, frv-linux-tdep.c, gcore.c, gdbtypes.c: Update. * gnu-nat.c, gnu-v2-abi.c, gnu-v3-abi.c, go32-nat.c: Update. * hpacc-abi.c, hppa-hpux-nat.c, hppa-hpux-tdep.c: Update. * hppa-linux-nat.c, hppa-linux-tdep.c, hppa-tdep.c: Update. * hpread.c, hpux-thread.c, i386-linux-nat.c: Update. * i386-linux-tdep.c, i386-tdep.c, i386bsd-nat.c: Update. * i386gnu-nat.c, i387-tdep.c, ia64-linux-nat.c: Update. * ia64-tdep.c, inf-child.c, inf-ptrace.c, inf-ttrace.c: Update. * infcall.c, infcmd.c, inflow.c, infptrace.c, infrun.c: Update. * inftarg.c, interps.c, irix5-nat.c, jv-lang.c: Update. * kod-cisco.c, kod.c, language.c, libunwind-frame.c: Update. * linespec.c, linux-nat.c, linux-thread-db.c, m2-lang.c: Update. * m32r-rom.c, m68hc11-tdep.c, m68k-tdep.c: Update. * m68klinux-nat.c, macrocmd.c, macroexp.c, main.c: Update. * maint.c, mdebugread.c, mem-break.c, memattr.c: Update. * mips-linux-tdep.c, mips-tdep.c, mipsread.c, monitor.c: Update. * nlmread.c, nto-procfs.c, objc-lang.c, objfiles.c: Update. * observer.c, ocd.c, p-lang.c, p-typeprint.c: Update. * p-valprint.c, pa64solib.c, parse.c, ppc-linux-tdep.c: Update. * ppcnbsd-tdep.c, printcmd.c, procfs.c, remote-e7000.c: Update. * remote-fileio.c, remote-m32r-sdi.c, remote-rdi.c: Update. * remote-rdp.c, remote-sim.c, remote-st.c: Update. * remote-utils.c, remote-utils.h, remote.c: Update. * rom68k-rom.c, rs6000-nat.c, s390-tdep.c, scm-lang.c: Update. * ser-e7kpc.c, ser-tcp.c, ser-unix.c, sh-tdep.c: Update. * sh3-rom.c, shnbsd-tdep.c, sol-thread.c, solib-aix5.c: Update. * solib-frv.c, solib-irix.c, solib-osf.c, solib-pa64.c: Update. * solib-som.c, solib-sunos.c, solib-svr4.c, solib.c: Update. * somread.c, somsolib.c, source.c, stabsread.c: Update. * stack.c, std-regs.c, symfile-mem.c, symfile.c: Update. * symmisc.c, symtab.c, target.c, thread.c, top.c: Update. * tracepoint.c, trad-frame.c, typeprint.c, utils.c: Update. * uw-thread.c, valarith.c, valops.c, valprint.c: Update. * value.c, varobj.c, version.in, win32-nat.c, wince.c: Update. * xcoffread.c, xcoffsolib.c, cli/cli-cmds.c: Update. * cli/cli-decode.c, cli/cli-dump.c, cli/cli-logging.c: Update. * cli/cli-script.c, cli/cli-setshow.c, mi/mi-cmd-break.c: Update. * mi/mi-cmd-disas.c, mi/mi-cmd-env.c, mi/mi-cmd-file.c: Update. * mi/mi-cmd-stack.c, mi/mi-cmd-var.c, mi/mi-getopt.c: Update. * mi/mi-symbol-cmds.c, tui/tui-layout.c, tui/tui-stack.c: Update. * tui/tui-win.c: Update.
2005-02-11 04:06:14 +00:00
error (_("cannot subscript something of type `%s'"), name);
else
2005-02-10 Andrew Cagney <cagney@gnu.org> Mark up all error and warning messages. * ada-lang.c, amd64-tdep.c, arch-utils.c, breakpoint.c: Update. * bsd-kvm.c, bsd-uthread.c, coff-solib.h, coffread.c: Update. * core-aout.c, core-regset.c, corefile.c, corelow.c: Update. * cp-abi.c, cp-support.c, cp-valprint.c, cris-tdep.c: Update. * dbxread.c, demangle.c, doublest.c, dsrec.c: Update. * dve3900-rom.c, dwarf2expr.c, dwarf2loc.c: Update. * dwarf2read.c, dwarfread.c, elfread.c, eval.c: Update. * event-top.c, exec.c, expprint.c, f-lang.c: Update. * f-typeprint.c, f-valprint.c, fbsd-nat.c, findvar.c: Update. * frame.c, frv-linux-tdep.c, gcore.c, gdbtypes.c: Update. * gnu-nat.c, gnu-v2-abi.c, gnu-v3-abi.c, go32-nat.c: Update. * hpacc-abi.c, hppa-hpux-nat.c, hppa-hpux-tdep.c: Update. * hppa-linux-nat.c, hppa-linux-tdep.c, hppa-tdep.c: Update. * hpread.c, hpux-thread.c, i386-linux-nat.c: Update. * i386-linux-tdep.c, i386-tdep.c, i386bsd-nat.c: Update. * i386gnu-nat.c, i387-tdep.c, ia64-linux-nat.c: Update. * ia64-tdep.c, inf-child.c, inf-ptrace.c, inf-ttrace.c: Update. * infcall.c, infcmd.c, inflow.c, infptrace.c, infrun.c: Update. * inftarg.c, interps.c, irix5-nat.c, jv-lang.c: Update. * kod-cisco.c, kod.c, language.c, libunwind-frame.c: Update. * linespec.c, linux-nat.c, linux-thread-db.c, m2-lang.c: Update. * m32r-rom.c, m68hc11-tdep.c, m68k-tdep.c: Update. * m68klinux-nat.c, macrocmd.c, macroexp.c, main.c: Update. * maint.c, mdebugread.c, mem-break.c, memattr.c: Update. * mips-linux-tdep.c, mips-tdep.c, mipsread.c, monitor.c: Update. * nlmread.c, nto-procfs.c, objc-lang.c, objfiles.c: Update. * observer.c, ocd.c, p-lang.c, p-typeprint.c: Update. * p-valprint.c, pa64solib.c, parse.c, ppc-linux-tdep.c: Update. * ppcnbsd-tdep.c, printcmd.c, procfs.c, remote-e7000.c: Update. * remote-fileio.c, remote-m32r-sdi.c, remote-rdi.c: Update. * remote-rdp.c, remote-sim.c, remote-st.c: Update. * remote-utils.c, remote-utils.h, remote.c: Update. * rom68k-rom.c, rs6000-nat.c, s390-tdep.c, scm-lang.c: Update. * ser-e7kpc.c, ser-tcp.c, ser-unix.c, sh-tdep.c: Update. * sh3-rom.c, shnbsd-tdep.c, sol-thread.c, solib-aix5.c: Update. * solib-frv.c, solib-irix.c, solib-osf.c, solib-pa64.c: Update. * solib-som.c, solib-sunos.c, solib-svr4.c, solib.c: Update. * somread.c, somsolib.c, source.c, stabsread.c: Update. * stack.c, std-regs.c, symfile-mem.c, symfile.c: Update. * symmisc.c, symtab.c, target.c, thread.c, top.c: Update. * tracepoint.c, trad-frame.c, typeprint.c, utils.c: Update. * uw-thread.c, valarith.c, valops.c, valprint.c: Update. * value.c, varobj.c, version.in, win32-nat.c, wince.c: Update. * xcoffread.c, xcoffsolib.c, cli/cli-cmds.c: Update. * cli/cli-decode.c, cli/cli-dump.c, cli/cli-logging.c: Update. * cli/cli-script.c, cli/cli-setshow.c, mi/mi-cmd-break.c: Update. * mi/mi-cmd-disas.c, mi/mi-cmd-env.c, mi/mi-cmd-file.c: Update. * mi/mi-cmd-stack.c, mi/mi-cmd-var.c, mi/mi-getopt.c: Update. * mi/mi-symbol-cmds.c, tui/tui-layout.c, tui/tui-stack.c: Update. * tui/tui-win.c: Update.
2005-02-11 04:06:14 +00:00
error (_("cannot subscript requested type"));
case OP_STRING:
(*pos)++;
i = longest_to_int (exp->elts[pc + 1].longconst);
(*pos) += 3 + BYTES_TO_EXP_ELEM (i + 1);
if (noside == EVAL_SKIP)
goto nosideret;
return java_value_string (&exp->elts[pc + 2].string, i);
case STRUCTOP_PTR:
arg1 = evaluate_subexp_standard (expect_type, exp, pos, noside);
/* Convert object field (such as TYPE.class) to reference. */
if (TYPE_CODE (value_type (arg1)) == TYPE_CODE_STRUCT)
arg1 = value_addr (arg1);
return arg1;
default:
break;
}
standard:
return evaluate_subexp_standard (expect_type, exp, pos, noside);
1999-07-07 20:19:36 +00:00
nosideret:
return value_from_longest (builtin_type (exp->gdbarch)->builtin_int, 1);
}
static char *java_demangle (const char *mangled, int options)
{
return cplus_demangle (mangled, options | DMGL_JAVA);
}
/* Find the member function name of the demangled name NAME. NAME
must be a method name including arguments, in order to correctly
locate the last component.
This function return a pointer to the first dot before the
member function name, or NULL if the name was not of the
expected form. */
static const char *
java_find_last_component (const char *name)
{
const char *p;
/* Find argument list. */
p = strchr (name, '(');
if (p == NULL)
return NULL;
/* Back up and find first dot prior to argument list. */
while (p > name && *p != '.')
p--;
if (p == name)
return NULL;
return p;
}
/* Return the name of the class containing method PHYSNAME. */
static char *
java_class_name_from_physname (const char *physname)
{
char *ret = NULL;
const char *end;
char *demangled_name = java_demangle (physname, DMGL_PARAMS | DMGL_ANSI);
if (demangled_name == NULL)
return NULL;
end = java_find_last_component (demangled_name);
if (end != NULL)
{
ret = xmalloc (end - demangled_name + 1);
memcpy (ret, demangled_name, end - demangled_name);
ret[end - demangled_name] = '\0';
}
xfree (demangled_name);
return ret;
}
/* Table mapping opcodes into strings for printing operators
and precedences of the operators. */
const struct op_print java_op_print_tab[] =
1999-07-07 20:19:36 +00:00
{
{",", BINOP_COMMA, PREC_COMMA, 0},
{"=", BINOP_ASSIGN, PREC_ASSIGN, 1},
{"||", BINOP_LOGICAL_OR, PREC_LOGICAL_OR, 0},
{"&&", BINOP_LOGICAL_AND, PREC_LOGICAL_AND, 0},
{"|", BINOP_BITWISE_IOR, PREC_BITWISE_IOR, 0},
{"^", BINOP_BITWISE_XOR, PREC_BITWISE_XOR, 0},
{"&", BINOP_BITWISE_AND, PREC_BITWISE_AND, 0},
{"==", BINOP_EQUAL, PREC_EQUAL, 0},
{"!=", BINOP_NOTEQUAL, PREC_EQUAL, 0},
{"<=", BINOP_LEQ, PREC_ORDER, 0},
{">=", BINOP_GEQ, PREC_ORDER, 0},
{">", BINOP_GTR, PREC_ORDER, 0},
{"<", BINOP_LESS, PREC_ORDER, 0},
{">>", BINOP_RSH, PREC_SHIFT, 0},
{"<<", BINOP_LSH, PREC_SHIFT, 0},
{"+", BINOP_ADD, PREC_ADD, 0},
{"-", BINOP_SUB, PREC_ADD, 0},
{"*", BINOP_MUL, PREC_MUL, 0},
{"/", BINOP_DIV, PREC_MUL, 0},
{"%", BINOP_REM, PREC_MUL, 0},
{"-", UNOP_NEG, PREC_PREFIX, 0},
{"!", UNOP_LOGICAL_NOT, PREC_PREFIX, 0},
{"~", UNOP_COMPLEMENT, PREC_PREFIX, 0},
{"*", UNOP_IND, PREC_PREFIX, 0},
{"++", UNOP_PREINCREMENT, PREC_PREFIX, 0},
{"--", UNOP_PREDECREMENT, PREC_PREFIX, 0},
{NULL, 0, 0, 0}
};
enum java_primitive_types
{
java_primitive_type_int,
java_primitive_type_short,
java_primitive_type_long,
java_primitive_type_byte,
java_primitive_type_boolean,
java_primitive_type_char,
java_primitive_type_float,
java_primitive_type_double,
java_primitive_type_void,
nr_java_primitive_types
};
2008-02-21 Pedro Alves <pedro@codesorcery.com> Silence a few -Wmissing-prototypes warnings. PR build/9877: * amd64-nat.c: Include "amd64-nat.h". * fork-child.c (_initialize_fork_child): Ditto. * gcore.c (_initialize_gcore): Ditto. * inf-ptrace.c: Include "inf-ptrace.h". (inf_ptrace_store_registers): Make it static. * linux-nat.c (linux_nat_terminal_ours): Make it static. (_initialize_linux_nat): Declare before definition. * linux-tdep.c: Include "linux-tdep.h". * linux-thread-db.c (_initialize_thread_db): Declare before definition. * proc-service.c (_initialize_proc_service): Ditto. * remote.c (remote_send_printf): Make it static. * solib.c: Include "solib.h". * symfile-mem.c (_initialize_symfile_mem): Declare before definition. * ada-lang.c (ada_la_decode, ada_match_name) (ada_suppress_symbol_printing, ada_is_array_type) (ada_value_ptr_subscript, ada_array_length) (ada_to_static_fixed_value): Make them static. (_initialize_ada_language): Declare before definition. * ada-tasks.c (ada_get_task_number, ada_get_environment_task) (ada_task_list_changed, ada_new_objfile_observer): Make them static. (_initialize_tasks): Declare before definition. * addrmap.c (_initialize_addrmap): Declare before definition. * auxv.c (default_auxv_parse): Make it static. * bfd-target.c (target_bfd_xfer_partial, target_bfd_xclose): Make them static. * breakpoint.c (remove_sal): Add line break. (expand_line_sal_maybe): Make it static. * cp-name-parser.y: Include "cp-support.h". * cp-valprint.c (cp_find_class_member): Make it static. * eval.c (value_f90_subarray): Ditto. * exceptions.c (print_any_exception): Ditto. * findcmd.c (_initialize_mem_search): Declare before definition. * frame.c (frame_observer_target_changed): Make it static. * gnu-v3-abi.c (gnuv3_find_method_in): Make it static. * inf-child.c: Include "inf-child.h". * inferior.h (valid_inferior_id): Rename to ... (valid_gdb_inferior_id): ... this. * infrun.c (infrun_thread_stop_requested, siginfo_make_value): Make them static. * jv-lang.c (java_language_arch_info): Make it static. * m2-typeprint.c (m2_get_discrete_bounds): Ditto. * osdata.c (info_osdata_command): Make it static. * regcache.c (regcache_observer_target_changed): Make it static. * reverse.c (_initialize_reverse): Declare before definition. * stabsread.c (cleanup_undefined_types_noname) (cleanup_undefined_types_1): Make them static. * symfile.c (place_section): Make it static. * symtab.c (find_pc_sect_psymtab_closer): Make it static. * target-descriptions.c (_initialize_target_descriptions): Declare before definition. * target.c (default_get_ada_task_ptid, find_default_can_async_p) (find_default_is_async_p, find_default_supports_non_stop): Make them static. (target_supports_non_stop): Add prototype. (dummy_pid_to_str): Make it static. * utils.c (_initialize_utils): Declare before definition. * ada-exp.y (_initialize_ada_exp): Declare before definition. * solib-svr4.c (HAS_LM_DYNAMIC_FROM_LINK_MAP): Add a prototype. * target.h (struct target_ops): Add a prototype to the to_can_execute_reverse callback. * macroscope.c (_initialize_macroscope): Declare before definition. * cp-namespace.c (_initialize_cp_namespace): Declare before definition. * python/python.c (_initialize_python): Declare before definition. * tui/tui-command.c: Include "tui/tui-command.h". * tui/tui-data.c (init_content_element, init_win_info): Make them static. * tui/tui-disasm.c: Include "tui/tui-disasm.h". * tui/tui-interp.c (_initialize_tui_interp): Declare before definition. * tui/tui-layout.c: Include "tui/tui-layout.h". (_initialize_tui_layout): Declare before definition. * tui/tui-regs.c: Include "tui/tui-regs.h". (tui_display_reg_element_at_line): Make it static. (_initialize_tui_regs): Declare before definition. * tui/tui-stack.c (_initialize_tui_stack): Declare before definition. * tui/tui-win.c: Include "tui/tui-win.h". (_initialize_tui_win): Declare before definition. (tui_sigwinch_handler): Make it static. Wrap in ifdef SIGWINCH. * tui/tui-win.h (tui_sigwinch_handler): Delete declaration. (tui_get_cmd_list): Add a prototype. * tui/tui-windata.c: Include tui-windata.h. * tui/tui-wingeneral.c (box_win): Make it static. * cli/cli-logging.c (show_logging_command): Make it static. (_initialize_cli_logging): Declare before definition. * mi/mi-common.c (_initialize_gdb_mi_common): Declare before definition.
2009-02-21 16:14:50 +00:00
static void
java_language_arch_info (struct gdbarch *gdbarch,
struct language_arch_info *lai)
{
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
const struct builtin_java_type *builtin = builtin_java_type (gdbarch);
lai->string_char_type = builtin->builtin_char;
lai->primitive_type_vector
= GDBARCH_OBSTACK_CALLOC (gdbarch, nr_java_primitive_types + 1,
struct type *);
lai->primitive_type_vector [java_primitive_type_int]
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
= builtin->builtin_int;
lai->primitive_type_vector [java_primitive_type_short]
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
= builtin->builtin_short;
lai->primitive_type_vector [java_primitive_type_long]
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
= builtin->builtin_long;
lai->primitive_type_vector [java_primitive_type_byte]
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
= builtin->builtin_byte;
lai->primitive_type_vector [java_primitive_type_boolean]
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
= builtin->builtin_boolean;
lai->primitive_type_vector [java_primitive_type_char]
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
= builtin->builtin_char;
lai->primitive_type_vector [java_primitive_type_float]
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
= builtin->builtin_float;
lai->primitive_type_vector [java_primitive_type_double]
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
= builtin->builtin_double;
lai->primitive_type_vector [java_primitive_type_void]
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
= builtin->builtin_void;
* language.h (struct language_arch_info): New members bool_type_default and bool_type_symbol. (lang_bool_type): Remove prototype. (LA_BOOL_TYPE): Remove macro. (language_bool_type): Add prototype. * language.c (lang_bool_type): Remove. (language_bool_type): New function. * value.h (value_in): Change return value to int. * value.c (value_in): Return int instead of struct value *. * eval.c (evaluate_subexp_standard): Call language_bool_type instead of using LA_BOOL_TYPE. Update call to value_in. * ada-lang.c (ada_evaluate_subexp): Call language_bool_type instead of using LA_BOOL_TYPE or builtin_type_int for boolean values. * language.c (unknown_language_arch_info): Set bool_type_default member of struct language_arch_info. * ada-lang.c (ada_language_arch_info): Set bool_type_symbol and bool_type_default members of struct language_arch_info. * c-lang.c (c_language_arch_info): Set bool_type_default member of struct language_arch_info. (cplus_language_arch_info): Set bool_type_symbol and bool_type_default members of struct language_arch_info. * f-lang.c (f_language_arch_info): Set bool_type_symbol and bool_type_default members of struct language_arch_info. * jv-lang.c (java_language_arch_info): Set bool_type_symbol and bool_type_default members of struct language_arch_info. * m2-lang.c (m2_language_arch_info): Set bool_type_symbol and bool_type_default members of struct language_arch_info. * p-lang.c (p_language_arch_info): Set bool_type_symbol and bool_type_default members of struct language_arch_info.
2008-09-11 14:11:40 +00:00
lai->bool_type_symbol = "boolean";
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
lai->bool_type_default = builtin->builtin_boolean;
}
* parser-defs.h (struct exp_descriptor): New definition, containing language-specific info for printing, prefixifying, dumping, and evaluating expressions. (exp_descriptor_standard): Declare new variable. (print_subexp): Make global and declare here (from expprint.c). (dump_subexp): Ditto. (dump_subexp_body_standard): Declare. (operator_length_standard): Declare. (op_name_standard): Declare. (print_subexp): Declare. (print_subexp_standard): Declare. * language.h (struct language_defn): Add la_exp_desc field to hold pointer to table for language-specific operators. Remove evaluate_exp field, which is now in struct exp_descriptor. * parse.c (operator_length): Move most code to new operator_length_standard function. Use language-specific information. (operator_length_standard): New function taking most code from operator_length. (exp_descriptor_standard): New constant. * expression.h (enum exp_opcode): Add definitions of OP_EXTENDED0 and OP_EXTENDED_LAST. * expprint.c (print_subexp): Use language-specific print_subexp. Make global; remove static declaration. Move most code to print_subexp_standard. (print_subexp_standard): New function, containing code formerly in print_subexp. (op_name): Add expression to argument signature. Use langauge-specific op_name. Move most code to op_name_standard. (op_name_standard): New function, containing code formerly in op_name. (dump_subexp): Use new version of op_name function. Use language-specific dump_subexp_body, and move most existing code to dump_subexp_body_standard. (dump_raw_expression): Use new op_name interface. (dump_subexp_body): Move most code to dump_subexp_body_standard. (dump_subexp_body_standard): New function, containing code formerly in dump_subexp_body. * language.c (unknown_language): Add default la_exp_desc field and remove evaluate_exp field. (auto_language): Ditto. (local_language): Ditto. * f-lang.c (f_language_defn): Ditto. * c-lang.c (c_language_defn): Ditto. (cplus_language_defn): Ditto. (asm_language_defn): Ditto. (minimal_language_defn): Ditto. * p-lang.c (pascal_language_defn): Ditto. * m2-lang.c (m2_language_defn): Ditto. * objc-lang.c (objc_language_defn): Ditto. * jv-lang.c (exp_descriptor_java): New variable, containing Java-specific expression evaluator. (java_language_defn): Add la_exp_desc field and remove evaluate_exp field. * scm-lang.c (exp_descriptor_scm): New variable, containing Scheme-specific expression evaluator. (scm_language_defn): Add la_exp_desc field and remove evaluate_exp field. * objc-lang.c (print_object_command): Take evaluate_exp from the la_exp_desc field. * Makefile.in (eval.o): Add dependency on parser-defs.h. * eval.c: Include parser-defs.h for the full declaration of la_exp_desc's type. (evaluate_subexp): Get evaluate_exp out of la_exp_desc field.
2003-09-25 08:40:45 +00:00
const struct exp_descriptor exp_descriptor_java =
{
print_subexp_standard,
operator_length_standard,
gdb/ Fix crashes on dangling display expressions. * ada-lang.c (ada_operator_check): New function. (ada_exp_descriptor): Fill-in the field operator_check. * c-lang.c (exp_descriptor_c): Fill-in the field operator_check. * jv-lang.c (exp_descriptor_java): Likewise. * m2-lang.c (exp_descriptor_modula2): Likewise. * scm-lang.c (exp_descriptor_scm): Likewise. * parse.c (exp_descriptor_standard): Likewise. (operator_check_standard): New function. (exp_iterate, exp_uses_objfile_iter, exp_uses_objfile): New functions. * parser-defs.h (struct exp_descriptor): New field operator_check. (operator_check_standard, exp_uses_objfile): New declarations. * printcmd.c: Remove the inclusion of solib.h. (display_uses_solib_p): Remove the function. (clear_dangling_display_expressions): Call lookup_objfile_from_block and exp_uses_objfile instead of display_uses_solib_p. * solist.h (struct so_list) <objfile>: New comment. * symtab.c (lookup_objfile_from_block): Remove the static qualifier. * symtab.h (lookup_objfile_from_block): New declaration. (struct general_symbol_info) <obj_section>: Extend the comment. gdb/testsuite/ Fix crashes on dangling display expressions. * gdb.base/solib-display.exp: Call gdb_gnu_strip_debug if LIBSEPDEBUG is SEP. (lib_flags): Remove the "debug" keyword. (libsepdebug): New variable for iterating new loop. (save_pf_prefix): New variable wrapping the loop. (sep_lib_flags): New variable derived from LIB_FLAGS. Use it. * lib/gdb.exp (gdb_gnu_strip_debug): Document the return code.
2010-04-22 23:15:43 +00:00
operator_check_standard,
* parser-defs.h (struct exp_descriptor): New definition, containing language-specific info for printing, prefixifying, dumping, and evaluating expressions. (exp_descriptor_standard): Declare new variable. (print_subexp): Make global and declare here (from expprint.c). (dump_subexp): Ditto. (dump_subexp_body_standard): Declare. (operator_length_standard): Declare. (op_name_standard): Declare. (print_subexp): Declare. (print_subexp_standard): Declare. * language.h (struct language_defn): Add la_exp_desc field to hold pointer to table for language-specific operators. Remove evaluate_exp field, which is now in struct exp_descriptor. * parse.c (operator_length): Move most code to new operator_length_standard function. Use language-specific information. (operator_length_standard): New function taking most code from operator_length. (exp_descriptor_standard): New constant. * expression.h (enum exp_opcode): Add definitions of OP_EXTENDED0 and OP_EXTENDED_LAST. * expprint.c (print_subexp): Use language-specific print_subexp. Make global; remove static declaration. Move most code to print_subexp_standard. (print_subexp_standard): New function, containing code formerly in print_subexp. (op_name): Add expression to argument signature. Use langauge-specific op_name. Move most code to op_name_standard. (op_name_standard): New function, containing code formerly in op_name. (dump_subexp): Use new version of op_name function. Use language-specific dump_subexp_body, and move most existing code to dump_subexp_body_standard. (dump_raw_expression): Use new op_name interface. (dump_subexp_body): Move most code to dump_subexp_body_standard. (dump_subexp_body_standard): New function, containing code formerly in dump_subexp_body. * language.c (unknown_language): Add default la_exp_desc field and remove evaluate_exp field. (auto_language): Ditto. (local_language): Ditto. * f-lang.c (f_language_defn): Ditto. * c-lang.c (c_language_defn): Ditto. (cplus_language_defn): Ditto. (asm_language_defn): Ditto. (minimal_language_defn): Ditto. * p-lang.c (pascal_language_defn): Ditto. * m2-lang.c (m2_language_defn): Ditto. * objc-lang.c (objc_language_defn): Ditto. * jv-lang.c (exp_descriptor_java): New variable, containing Java-specific expression evaluator. (java_language_defn): Add la_exp_desc field and remove evaluate_exp field. * scm-lang.c (exp_descriptor_scm): New variable, containing Scheme-specific expression evaluator. (scm_language_defn): Add la_exp_desc field and remove evaluate_exp field. * objc-lang.c (print_object_command): Take evaluate_exp from the la_exp_desc field. * Makefile.in (eval.o): Add dependency on parser-defs.h. * eval.c: Include parser-defs.h for the full declaration of la_exp_desc's type. (evaluate_subexp): Get evaluate_exp out of la_exp_desc field.
2003-09-25 08:40:45 +00:00
op_name_standard,
dump_subexp_body_standard,
evaluate_subexp_java
};
1999-07-07 20:19:36 +00:00
const struct language_defn java_language_defn =
{
"java", /* Language name */
language_java,
range_check_off,
case_sensitive_on,
array_row_major,
macro_expansion_no,
* parser-defs.h (struct exp_descriptor): New definition, containing language-specific info for printing, prefixifying, dumping, and evaluating expressions. (exp_descriptor_standard): Declare new variable. (print_subexp): Make global and declare here (from expprint.c). (dump_subexp): Ditto. (dump_subexp_body_standard): Declare. (operator_length_standard): Declare. (op_name_standard): Declare. (print_subexp): Declare. (print_subexp_standard): Declare. * language.h (struct language_defn): Add la_exp_desc field to hold pointer to table for language-specific operators. Remove evaluate_exp field, which is now in struct exp_descriptor. * parse.c (operator_length): Move most code to new operator_length_standard function. Use language-specific information. (operator_length_standard): New function taking most code from operator_length. (exp_descriptor_standard): New constant. * expression.h (enum exp_opcode): Add definitions of OP_EXTENDED0 and OP_EXTENDED_LAST. * expprint.c (print_subexp): Use language-specific print_subexp. Make global; remove static declaration. Move most code to print_subexp_standard. (print_subexp_standard): New function, containing code formerly in print_subexp. (op_name): Add expression to argument signature. Use langauge-specific op_name. Move most code to op_name_standard. (op_name_standard): New function, containing code formerly in op_name. (dump_subexp): Use new version of op_name function. Use language-specific dump_subexp_body, and move most existing code to dump_subexp_body_standard. (dump_raw_expression): Use new op_name interface. (dump_subexp_body): Move most code to dump_subexp_body_standard. (dump_subexp_body_standard): New function, containing code formerly in dump_subexp_body. * language.c (unknown_language): Add default la_exp_desc field and remove evaluate_exp field. (auto_language): Ditto. (local_language): Ditto. * f-lang.c (f_language_defn): Ditto. * c-lang.c (c_language_defn): Ditto. (cplus_language_defn): Ditto. (asm_language_defn): Ditto. (minimal_language_defn): Ditto. * p-lang.c (pascal_language_defn): Ditto. * m2-lang.c (m2_language_defn): Ditto. * objc-lang.c (objc_language_defn): Ditto. * jv-lang.c (exp_descriptor_java): New variable, containing Java-specific expression evaluator. (java_language_defn): Add la_exp_desc field and remove evaluate_exp field. * scm-lang.c (exp_descriptor_scm): New variable, containing Scheme-specific expression evaluator. (scm_language_defn): Add la_exp_desc field and remove evaluate_exp field. * objc-lang.c (print_object_command): Take evaluate_exp from the la_exp_desc field. * Makefile.in (eval.o): Add dependency on parser-defs.h. * eval.c: Include parser-defs.h for the full declaration of la_exp_desc's type. (evaluate_subexp): Get evaluate_exp out of la_exp_desc field.
2003-09-25 08:40:45 +00:00
&exp_descriptor_java,
java_parse,
java_error,
null_post_parser,
java_printchar, /* Print a character constant */
java_printstr, /* Function to print string constant */
java_emit_char, /* Function to print a single character */
java_print_type, /* Print a type using appropriate syntax */
default_print_typedef, /* Print a typedef using appropriate syntax */
java_val_print, /* Print a value using appropriate syntax */
java_value_print, /* Print a top-level value */
language-specific read_var_value for Ada renamings The purpose of this patch is to better support renamings in the "info locals" command. Consider ... procedure Foo is GV : Integer renames Pck.Global_Variable; begin Increment (GV); -- STOP end Foo; ... Pck.Global_Variable is just an integer. After having stopped at the "STOP" line, "info locals" yields: (gdb) info locals gv = <error reading variable gv (Cannot access memory at address 0xffffffffffffffff)> In reality, two things are happening: (1) Variable "GV" does not exist, which is normal, since there is "GV" the renaming of another variable; (2) But to allow the user access to that renaming the same way the code has, the compiler produces an artificial variable whose name encodes the renaming: gv___XR_pck__global_variable___XE For practical reasons, the artificial variable itself is given irrelevant types and addresses. But the "info locals" command does not act as if it was a short-cut of "foreach VAR in locals, print VAR". Instead it gets the value of each VAR directly, which does not work in this case, since the variable is artificial and needs to be decoded first. This patch makes the "read_var_value" routine language-specific. The old implementation of "read_var_value" gets renamed to "default_read_var_value" and all languages now use it (unchanged behavior), except for Ada. In Ada, the new function ada_read_var_value checks if we have a renaming, and if so, evaluates its value, or else defers to default_read_var_value. gdb/ChangeLog: * language.h (struct language_defn): New "method" la_read_var_value. * findvar.c: #include "language.h". (default_read_var_value): Renames read_var_value. Rewrite function description. (read_var_value): New function. * value.h (default_read_var_value): Add prototype. * ada-lang.c (ada_read_renaming_var_value, ada_read_var_value): New functions. (ada_language_defn): Add entry for la_read_var_value. * c-lang.c, d-lang.c, f-lang.c, jv-lang.c, language.c, * m2-lang.c, objc-lang.c, opencl-lang.c, p-lang.c: Update language_defn structures to add entry for new la_read_var_value field.
2012-03-02 19:29:01 +00:00
default_read_var_value, /* la_read_var_value */
NULL, /* Language specific skip_trampoline */
"this", /* name_of_this */
basic_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */
2004-01-23 David Carlton <carlton@kealia.com> Partial workaround for PR c++/1511: * cp-namespace.c: Include frame.h. (cp_lookup_transparent_type): New (cp_lookup_transparent_type_loop): New. * cp-support.h: Declare cp_lookup_transparent_type. * symtab.c (basic_lookup_transparent_type): Renamed from lookup_transparent_type. (lookup_transparent_type): Replace old body by a call to current_language->la_lookup_transparent_type. * symtab.h: Update copyright. Declare basic_lookup_transparent_type. * language.h: Update copyright. (struct language_defn): Add la_lookup_transparent_type. * language.c: Update copyright. (unknown_language_defn): Add basic_lookup_transparent_type. (auto_language_defn): Add basic_lookup_transparent_type. (local_language_defn): Add basic_lookup_transparent_type. * ada-lang.c: Update copyright. (ada_language_defn): Add basic_lookup_transparent_type. * c-lang.c: Update copyright. (c_language_defn): Add basic_lookup_transparent_type. (cplus_language_defn): Add basic_lookup_transparent_type. (asm_language_defn): Add basic_lookup_transparent_type. (minimal_language_defn): Add basic_lookup_transparent_type. * f-lang.c: Update copyright. (f_language_defn): Add basic_lookup_transparent_type. * jv-lang.c: Update copyright. (java_language_defn): Add basic_lookup_transparent_type. * m2-lang.c: Update copyright. (m2_language_defn): Add basic_lookup_transparent_type. * objc-lang.c: Update copyright. (objc_language_defn): Add basic_lookup_transparent_type. * p-lang.c: Update copyright. (p_language_defn): Add basic_lookup_transparent_type. * scm-lang.c: Update copyright. (scm_language_defn): Add basic_lookup_transparent_type. * Makefile.in (cp-namespace.o): Depend on frame.h. 2004-01-23 David Carlton <carlton@kealia.com> * gdb.cp/rtti.exp: Don't include full path in ${srcfile}. Add test for cp_lookup_transparent_type. * gdb.cp/rtti1.cc: Update copyright. Add n2::func and refer_to; call them.
2004-01-23 23:03:31 +00:00
basic_lookup_transparent_type,/* lookup_transparent_type */
java_demangle, /* Language specific symbol demangler */
java_class_name_from_physname,/* Language specific class name */
java_op_print_tab, /* expression operators for printing */
0, /* not c-style arrays */
0, /* String lower bound */
default_word_break_characters,
default_make_symbol_completion_list,
java_language_arch_info,
2005-10-03 Joel Brobecker <brobecker@adacore.com> * language.h (language_defn): New field la_print_array_index. (LA_PRINT_ARRAY_INDEX): New macro. (default_print_array_index): Add declaration. * language.c (default_print_array_index): new function. (unknown_language): Add value for new field. (auto_language): Likewise. (local_language): Likewise. * ada-lang.c (ada_print_array_index): New function. (ada_language_defn): Add value for new field. * c-lang.c (c_language_defn): Likewise. (cpluc_language_defn): Likewise. (asm_language_defn): Likewise. (minimal_language_defn): Likewise. * f-lang.c (f_language_defn): Likewise. * jv-lang.c (java_language_defn): Likewise. * m2-lang.c (m2_language_defn): Likewise. * objc-lang.c (objc_language_defn): Likewise. * p-lang.c (pascal_language_defn): Likewise. * scm-lang.c (scm_language_defn): Likewise. * valprint.h (print_array_indexes_p): Add declaration. (get_array_low_bound): Add declaration. (maybe_print_array_index): Add declaration. * valprint.c (print_array_indexes): New static variable. (show_print_array_indexes): New function. (print_array_indexes_p): New function. (get_array_low_bound): New function. (maybe_print_array_index): New function. (val_print_array_elements): Print the index of each element if requested by the user. (_initialize_valprint): Add new array-indexes "set/show print" command. * ada-valprint.c (print_optional_low_bound): Replace extracted code by call to ada_get_array_low_bound_and_type(). Stop printing the low bound if indexes will be printed for all elements of the array. (val_print_packed_array_elements): Print the index of each element of the array if necessary.
2005-10-03 21:21:20 +00:00
default_print_array_index,
default_pass_by_reference,
default_get_string,
NULL, /* la_get_symbol_name_cmp */
the "ambiguous linespec" series gdb 2011-12-06 Joel Brobecker <brobecker@acacore.com> * language.h (struct language_defn): Add new component la_symbol_name_compare. * symfile.h (struct quick_symbol_functions): Update the profile of parameter "name_matcher" for the expand_symtabs_matching method. Update the documentation accordingly. * ada-lang.h (ada_name_for_lookup): Add declaration. * ada-lang.c (ada_name_for_lookup): New function, extracted out from ada_iterate_over_symbols. (ada_iterate_over_symbols): Do not encode symbol name anymore. (ada_expand_partial_symbol_name): Adjust profile. (ada_language_defn): Add value for la_symbol_name_compare field. * linespec.c: #include "ada-lang.h". (iterate_name_matcher): Add language parameter. Replace call to strcmp_iw by call to language->la_symbol_name_compare. (decode_variable): Encode COPY if current language is Ada. * dwarf2read.c (dw2_expand_symtabs_matching): Adjust profile of name_matcher parameter. Adjust call to name_matcher. * psymtab.c (expand_symtabs_matching_via_partial): Likewise. (expand_partial_symbol_names): Update profile of parameter "fun". * psymtab.h (expand_partial_symbol_names): Update profile of parameter "fun". * symtab.c (demangle_for_lookup): Update function documentation. (search_symbols_name_matches): Add language parameter. (expand_partial_symbol_name): Likewise. * c-lang.c (c_language_defn, cplus_language_defn) (asm_language_defn, minimal_language_defn): Add value for la_symbol_name_compare field. * d-lang.c (d_language_defn): Likewise. * f-lang.c (f_language_defn): Ditto. * jv-lang.c (java_language_defn): Ditto. * m2-lang.c (m2_language_defn): Ditto. * objc-lang.c (objc_language_defn): Ditto. * opencl-lang.c (opencl_language_defn): Ditto. * p-lang.c (pascal_language_defn): Ditto. * language.c (unknown_language_defn, auto_language_defn) (local_language_defn): Ditto. 2011-12-06 Tom Tromey <tromey@redhat.com> * linespec.c (iterate_over_all_matching_symtabs): Use LA_ITERATE_OVER_SYMBOLS. (lookup_prefix_sym, add_matching_symbols_to_info): Likewise. (find_function_symbols, decode_variable): Remove Ada special case. * language.h (struct language_defn) <la_iterate_over_symbols>: New field. (LA_ITERATE_OVER_SYMBOLS): New macro. * language.c (unknown_language_defn, auto_language_defn) (local_language_defn): Update. * c-lang.c (c_language_defn, cplus_language_defn) (asm_language_defn, minimal_language_defn): Update. * d-lang.c (d_language_defn): Update. * f-lang.c (f_language_defn): Update. * jv-lang.c (java_language_defn): Update. * m2-lang.c (m2_language_defn): Update. * objc-lang.c (objc_language_defn): Update. * opencl-lang.c (opencl_language_defn): Update. * p-lang.c (pascal_language_defn): Update. * ada-lang.c (ada_iterate_over_symbols): New function. (ada_language_defn): Update. 2011-12-06 Tom Tromey <tromey@redhat.com> Joel Brobecker <brobecker@acacore.com> PR breakpoints/13105, PR objc/8341, PR objc/8343, PR objc/8366, PR objc/8535, PR breakpoints/11657, PR breakpoints/11970, PR breakpoints/12023, PR breakpoints/12334, PR breakpoints/12856, PR shlibs/8929, PR shlibs/7393: * python/py-type.c (compare_maybe_null_strings): Rename from compare_strings. (check_types_equal): Update. * utils.c (compare_strings): New function. * tui/tui-winsource.c (tui_update_breakpoint_info): Update for location changes. * tracepoint.c (scope_info): Update. (trace_find_line_command): Use DECODE_LINE_FUNFIRSTLINE. * symtab.h (iterate_over_minimal_symbols) (iterate_over_some_symtabs, iterate_over_symtabs) (find_pcs_for_symtab_line, iterate_over_symbols) (demangle_for_lookup): Declare. (expand_line_sal): Remove. * symtab.c (iterate_over_some_symtabs, iterate_over_symtabs) (lookup_symtab_callback): New functions. (lookup_symtab): Rewrite. (demangle_for_lookup): New function, extract from lookup_symbol_in_language. (lookup_symbol_in_language): Use it. (iterate_over_symbols): New function. (find_line_symtab): Update. (find_pcs_for_symtab_line): New functions. (find_line_common): Add 'start' argument. (decode_line_spec): Update. Change argument to 'flags', change interpretation. (append_expanded_sal): Remove. (append_exact_match_to_sals): Remove. (expand_line_sal): Remove. * symfile.h (struct quick_symbol_functions) <lookup_symtab>: Remove. <map_symtabs_matching_filename>: New field. * stack.c (func_command): Only look in the current program space. Use DECODE_LINE_FUNFIRSTLINE. * source.c (line_info): Set pspace on sal. Check program space in the loop. Use DECODE_LINE_LIST_MODE. (select_source_symtab): Use DECODE_LINE_FUNFIRSTLINE. * solib-target.c: Remove DEF_VEC_I(CORE_ADDR). * python/python.c (gdbpy_decode_line): Update. * psymtab.c (partial_map_expand_apply): New function. (partial_map_symtabs_matching_filename): Rename from lookup_partial_symbol. Update arguments. (lookup_symtab_via_partial_symtab): Remove. (psym_functions): Update. * objc-lang.h (parse_selector, parse_method): Don't declare. (find_imps): Update. * objc-lang.c (parse_selector, parse_method): Now static. (find_methods): Change arguments. Fill in a vector of symbol names. (uniquify_strings): New function. (find_imps): Change arguments. * minsyms.c (iterate_over_minimal_symbols): New function. * linespec.h (enum decode_line_flags): New. (struct linespec_sals): New. (struct linespec_result) <canonical>: Remove. <pre_expanded, addr_string, sals>: New fields. (destroy_linespec_result, make_cleanup_destroy_linespec_result) (decode_line_full): Declare. (decode_line_1): Update. * linespec.c (struct address_entry, struct linespec_state, struct collect_info): New types. (add_sal_to_sals_basic, add_sal_to_sals, hash_address_entry) (eq_address_entry, maybe_add_address): New functions. (total_number_of_methods): Remove. (iterate_name_matcher, iterate_over_all_matching_symtabs): New functions. (find_methods): Change arguments. Don't canonicalize input. Simplify logic. (add_matching_methods, add_constructors) (build_canonical_line_spec): Remove. (filter_results, convert_results_to_lsals): New functions. (decode_line_2): Change arguments. Rewrite for new data structures. (decode_line_internal): Rename from decode_line_1. Change arguments. Add cleanups. Update for new data structures. (linespec_state_constructor, linespec_state_destructor) (decode_line_full, decode_line_1): New functions. (decode_indirect): Change arguments. Update. (locate_first_half): Use skip_spaces. (decode_objc): Change arguments. Update for new data structures. Simplify logic. (decode_compound): Change arguments. Add cleanups. Remove fallback code, replace with error. (struct decode_compound_collector): New type. (collect_one_symbol): New function. (lookup_prefix_sym): Change arguments. Update. (compare_symbol_name, add_all_symbol_names_from_pspace) (find_superclass_methods ): New functions. (find_method): Rewrite. (struct symtab_collector): New type. (add_symtabs_to_list, collect_symtabs_from_filename): New functions. (symtabs_from_filename): Change API. Rename from symtab_from_filename. (collect_function_symbols): New function. (find_function_symbols): Change API. Rename from find_function_symbol. Rewrite. (decode_all_digits): Change arguments. Rewrite. (decode_dollar): Change arguments. Use decode_variable. (decode_label): Change arguments. Rewrite. (collect_symbols): New function. (minsym_found): Change arguments. Rewrite. (check_minsym, search_minsyms_for_name) (add_matching_symbols_to_info): New function. (decode_variable): Change arguments. Iterate over all symbols. (symbol_found): Remove. (symbol_to_sal): New function. (init_linespec_result, destroy_linespec_result) (cleanup_linespec_result, make_cleanup_destroy_linespec_result): New functions. (decode_digits_list_mode, decode_digits_ordinary): New functions. * dwarf2read.c (dw2_map_expand_apply): New function. (dw2_map_symtabs_matching_filename): Rename from dw2_lookup_symtab. Change arguments. (dwarf2_gdb_index_functions): Update. * dwarf2loc.c: Remove DEF_VEC_I(CORE_ADDR). * defs.h (compare_strings): Declare. * cli/cli-cmds.c (compare_strings): Move to utils.c. (edit_command, list_command): Use DECODE_LINE_LIST_MODE. Call filter_sals. (compare_symtabs, filter_sals): New functions. * breakpoint.h (struct bp_location) <line_number, source_file>: New fields. (struct breakpoint) <line_number, source_file>: Remove. <filter>: New field. * breakpoint.c (print_breakpoint_location, init_raw_breakpoint) (momentary_breakpoint_from_master, add_location_to_breakpoint): Update for changes to locations. (init_breakpoint_sal): Add 'filter' argument. Set 'filter' on breakpoint. (create_breakpoint_sal): Add 'filter' argument. (remove_sal, expand_line_sal_maybe): Remove. (create_breakpoints_sal): Remove 'sals' argument. Handle pre-expanded sals and the filter. (parse_breakpoint_sals): Use decode_line_full. (check_fast_tracepoint_sals): Use get_sal_arch. (create_breakpoint): Create a linespec_sals. Update. (break_range_command): Use decode_line_full. Update. (until_break_command): Update. (clear_command): Update match conditions for linespec.c changes. Use DECODE_LINE_LIST_MODE. (say_where): Update for changes to locations. (bp_location_dtor): Free 'source_file'. (base_breakpoint_dtor): Free 'filter'. Don't free 'source_file'. (update_static_tracepoint): Update for changes to locations. (update_breakpoint_locations): Disable ranged breakpoint if too many locations match. Update. (addr_string_to_sals): Use decode_line_full. Resolve all sal PCs. (breakpoint_re_set_default): Don't call expand_line_sal_maybe. (decode_line_spec_1): Update. Change argument name to 'flags', change interpretation. * block.h (block_containing_function): Declare. * block.c (block_containing_function): New function. * skip.c (skip_function_command): Update. (skip_re_set): Update. * infcmd.c (jump_command): Use DECODE_LINE_FUNFIRSTLINE. * mi/mi-main.c (mi_cmd_trace_find): Use DECODE_LINE_FUNFIRSTLINE. * NEWS: Add entry. 2011-12-06 Tom Tromey <tromey@redhat.com> * elfread.c (elf_gnu_ifunc_resolver_return_stop): Allow breakpoint's pspace to be NULL. * breakpoint.h (struct breakpoint) <pspace>: Update comment. * breakpoint.c (init_raw_breakpoint): Conditionally set breakpoint's pspace. (init_breakpoint_sal): Don't set breakpoint's pspace. (prepare_re_set_context): Conditionally switch program space. (addr_string_to_sals): Check executing_startup on location's program space. 2011-12-06 Tom Tromey <tromey@redhat.com> * breakpoint.h (enum enable_state) <bp_startup_disabled>: Remove. * breakpoint.c (should_be_inserted): Explicitly check if program space is executing startup. (describe_other_breakpoints): Update. (disable_breakpoints_before_startup): Change executing_startup earlier. Remove loop. (enable_breakpoints_after_startup): Likewise. (init_breakpoint_sal): Don't use bp_startup_disabled. (create_breakpoint): Don't use bp_startup_disabled. (update_global_location_list): Use should_be_inserted. (bkpt_re_set): Update. gdb/testsuite 2011-12-06 Joel Brobecker <brobecker@acacore.com> * gdb.ada/fullname_bp.exp: Add tests for other valid linespecs involving a fully qualified function name. 2011-12-06 Tom Tromey <tromey@redhat.com> * gdb.ada/homonym.exp: Add three breakpoint tests. 2011-12-06 Tom Tromey <tromey@redhat.com> * gdb.base/solib-weak.exp (do_test): Remove kfail. * gdb.trace/tracecmd.exp: Disable pending breakpoints earlier. * gdb.objc/objcdecode.exp: Update for output changes. * gdb.linespec/linespec.exp: New file. * gdb.linespec/lspec.cc: New file. * gdb.linespec/lspec.h: New file. * gdb.linespec/body.h: New file. * gdb.linespec/base/two/thefile.cc: New file. * gdb.linespec/base/one/thefile.cc: New file. * gdb.linespec/Makefile.in: New file. * gdb.cp/templates.exp (test_template_breakpoints): Update for output changes. * gdb.cp/re-set-overloaded.exp: Remove kfail. * gdb.cp/ovldbreak.exp: Update for output changes. "all" test now makes one breakpoint. * gdb.cp/method2.exp (test_break): Update for output changes. * gdb.cp/mb-templates.exp: Update for output changes. * gdb.cp/mb-inline.exp: Update for output changes. * gdb.cp/mb-ctor.exp: Update for output changes. * gdb.cp/ovsrch.exp: Use fully-qualified names. * gdb.base/solib-symbol.exp: Run to main later. Breakpoint now has multiple matches. * gdb.base/sepdebug.exp: Disable pending breakpoints. Update for error message change. * gdb.base/list.exp (test_list_filename_and_number): Update for error message change. * gdb.base/break.exp: Disable pending breakpoints. Update for output changes. * configure.ac: Add gdb.linespec. * configure: Rebuild. * Makefile.in (ALL_SUBDIRS): Add gdb.linespec. gdb/doc 2011-12-06 Tom Tromey <tromey@redhat.com> * gdb.texinfo (Set Breaks): Update for new behavior.
2011-12-06 18:54:43 +00:00
iterate_over_symbols,
LANG_MAGIC
};
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
static void *
build_java_types (struct gdbarch *gdbarch)
{
struct builtin_java_type *builtin_java_type
= GDBARCH_OBSTACK_ZALLOC (gdbarch, struct builtin_java_type);
builtin_java_type->builtin_int
* gdbtypes.h (TYPE_OBJFILE_OWNED, TYPE_OWNER): New macros. (TYPE_OBJFILE, TYPE_ALLOC, TYPE_ZALLOC): Reimplement. (alloc_type_arch): Add prototype. (alloc_type_copy): Likewise. (get_type_arch): Likewise. (arch_type): Likewise. (arch_integer_type): Likewise. (arch_character_type): Likewise. (arch_boolean_type): Likewise. (init_float_type): Remove, replace by ... (arch_float_type): ... this. (init_complex_type): Remove, replace by ... (arch_complex_type): ... this. (init_flags_type): Remove, replace by ... (arch_flags_type): ... this. (init_composite_type): Remove, replace by ... (arch_composite_type): ... this. * gdbtypes.c (alloc_type): No longer support NULL objfile. (init_type): Likewise. (alloc_type_arch): New function. (alloc_type_copy): New function. (get_type_arch): New function. (smash_type): Preserve type ownership information. (make_pointer_type, make_reference_type, make_function_type, smash_to_memberptr_type, smash_to_method_type): No longer preserve OBJFILE across smash_type calls. (make_pointer_type, make_reference_type, make_function_type, lookup_memberptr_type, lookup_methodptr_type, allocate_stub_method, create_range_type, create_array_type, create_set_type, copy_type): Use alloc_type_copy when allocating types. (check_typedef): Use alloc_type_arch. (copy_type_recursive): Likewise. Preserve type ownership data after copying type. (recursive_dump_type): Dump type ownership data. (alloc_type_instance): Update type ownership check. (copy_type, copy_type_recursive): Likewise. (arch_type): New function. (arch_integer_type): Likewise. (arch_character_type): Likewise. (arch_boolean_type): Likewise. (init_float_type): Remove, replace by ... (arch_float_type): ... this. (init_complex_type): Remove, replace by ... (arch_complex_type): ... this. (init_flags_type): Remove, replace by ... (arch_flags_type): ... this. (append_flags_type_flag): Move down. (init_composite_type): Remove, replace by ... (arch_composite_type): ... this. (append_composite_type_field_aligned, append_composite_type_field): Move down. * gdbarch.c (gdbtypes_post_init): Allocate all types using per-architecture routines. * ada-lang.c (ada_language_arch_info): Likewise. * f-lang.c (build_fortran_types): Likewise. * jv-lang.c (build_java_types): Likewise. * m2-lang.c (build_m2_types): Likewise. * scm-lang.c (build_scm_types): Likewise. * ada-lang.c (ada_type_of_array): Use alloc_type_copy. (packed_array_type): Likewise. (ada_template_to_fixed_record_type_1): Likewise. (template_to_static_fixed_type): Likewise. (to_record_with_fixed_variant_part): Likewise. (to_fixed_variant_branch_type): Likewise. (to_fixed_array_type): Likewise. (to_fixed_range_type): Likewise. (empty_record): Use type instead of objfile argument. Use alloc_type_copy. (to_fixed_variant_branch_type): Update call to empty_record. * jv-lang.c (type_from_class): Use alloc_type_arch. * arm-tdep.c (arm_ext_type): Allocate per-architecture type. * i386-tdep.c (i386_eflags_type, i386_mxcsr_type, i387_ext_type, i386_mmx_type, i386_sse_type): Likewise. * ia64-tdep.c (ia64_ext_type): Likewise. * m32c-tdep.c (make_types): Likewise. * m68k-tdep.c (m68k_ps_type, m68881_ext_type): Likewise. * rs6000-tdep.c (rs6000_builtin_type_vec64, rs6000_builtin_type_vec128): Likewise. * sparc-tdep.c (sparc_psr_type, sparc_fsr_type): Likewise. * sparc64-tdep.c (sparc64_pstate_type, sparc64_fsr_type, sparc64_fprs_type): Likewise. * spu-tdep.c (spu_builtin_type_vec128): Likewise. * xtensa-tdep.c (xtensa_register_type): Likewise. * linux-tdep.c (linux_get_siginfo_type): Likewise. * target-descriptions.c (tdesc_gdb_type): Likewise. * gnu-v3-abi.c (build_gdb_vtable_type): Likewise.
2009-07-02 12:55:30 +00:00
= arch_integer_type (gdbarch, 32, 0, "int");
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
builtin_java_type->builtin_short
* gdbtypes.h (TYPE_OBJFILE_OWNED, TYPE_OWNER): New macros. (TYPE_OBJFILE, TYPE_ALLOC, TYPE_ZALLOC): Reimplement. (alloc_type_arch): Add prototype. (alloc_type_copy): Likewise. (get_type_arch): Likewise. (arch_type): Likewise. (arch_integer_type): Likewise. (arch_character_type): Likewise. (arch_boolean_type): Likewise. (init_float_type): Remove, replace by ... (arch_float_type): ... this. (init_complex_type): Remove, replace by ... (arch_complex_type): ... this. (init_flags_type): Remove, replace by ... (arch_flags_type): ... this. (init_composite_type): Remove, replace by ... (arch_composite_type): ... this. * gdbtypes.c (alloc_type): No longer support NULL objfile. (init_type): Likewise. (alloc_type_arch): New function. (alloc_type_copy): New function. (get_type_arch): New function. (smash_type): Preserve type ownership information. (make_pointer_type, make_reference_type, make_function_type, smash_to_memberptr_type, smash_to_method_type): No longer preserve OBJFILE across smash_type calls. (make_pointer_type, make_reference_type, make_function_type, lookup_memberptr_type, lookup_methodptr_type, allocate_stub_method, create_range_type, create_array_type, create_set_type, copy_type): Use alloc_type_copy when allocating types. (check_typedef): Use alloc_type_arch. (copy_type_recursive): Likewise. Preserve type ownership data after copying type. (recursive_dump_type): Dump type ownership data. (alloc_type_instance): Update type ownership check. (copy_type, copy_type_recursive): Likewise. (arch_type): New function. (arch_integer_type): Likewise. (arch_character_type): Likewise. (arch_boolean_type): Likewise. (init_float_type): Remove, replace by ... (arch_float_type): ... this. (init_complex_type): Remove, replace by ... (arch_complex_type): ... this. (init_flags_type): Remove, replace by ... (arch_flags_type): ... this. (append_flags_type_flag): Move down. (init_composite_type): Remove, replace by ... (arch_composite_type): ... this. (append_composite_type_field_aligned, append_composite_type_field): Move down. * gdbarch.c (gdbtypes_post_init): Allocate all types using per-architecture routines. * ada-lang.c (ada_language_arch_info): Likewise. * f-lang.c (build_fortran_types): Likewise. * jv-lang.c (build_java_types): Likewise. * m2-lang.c (build_m2_types): Likewise. * scm-lang.c (build_scm_types): Likewise. * ada-lang.c (ada_type_of_array): Use alloc_type_copy. (packed_array_type): Likewise. (ada_template_to_fixed_record_type_1): Likewise. (template_to_static_fixed_type): Likewise. (to_record_with_fixed_variant_part): Likewise. (to_fixed_variant_branch_type): Likewise. (to_fixed_array_type): Likewise. (to_fixed_range_type): Likewise. (empty_record): Use type instead of objfile argument. Use alloc_type_copy. (to_fixed_variant_branch_type): Update call to empty_record. * jv-lang.c (type_from_class): Use alloc_type_arch. * arm-tdep.c (arm_ext_type): Allocate per-architecture type. * i386-tdep.c (i386_eflags_type, i386_mxcsr_type, i387_ext_type, i386_mmx_type, i386_sse_type): Likewise. * ia64-tdep.c (ia64_ext_type): Likewise. * m32c-tdep.c (make_types): Likewise. * m68k-tdep.c (m68k_ps_type, m68881_ext_type): Likewise. * rs6000-tdep.c (rs6000_builtin_type_vec64, rs6000_builtin_type_vec128): Likewise. * sparc-tdep.c (sparc_psr_type, sparc_fsr_type): Likewise. * sparc64-tdep.c (sparc64_pstate_type, sparc64_fsr_type, sparc64_fprs_type): Likewise. * spu-tdep.c (spu_builtin_type_vec128): Likewise. * xtensa-tdep.c (xtensa_register_type): Likewise. * linux-tdep.c (linux_get_siginfo_type): Likewise. * target-descriptions.c (tdesc_gdb_type): Likewise. * gnu-v3-abi.c (build_gdb_vtable_type): Likewise.
2009-07-02 12:55:30 +00:00
= arch_integer_type (gdbarch, 16, 0, "short");
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
builtin_java_type->builtin_long
* gdbtypes.h (TYPE_OBJFILE_OWNED, TYPE_OWNER): New macros. (TYPE_OBJFILE, TYPE_ALLOC, TYPE_ZALLOC): Reimplement. (alloc_type_arch): Add prototype. (alloc_type_copy): Likewise. (get_type_arch): Likewise. (arch_type): Likewise. (arch_integer_type): Likewise. (arch_character_type): Likewise. (arch_boolean_type): Likewise. (init_float_type): Remove, replace by ... (arch_float_type): ... this. (init_complex_type): Remove, replace by ... (arch_complex_type): ... this. (init_flags_type): Remove, replace by ... (arch_flags_type): ... this. (init_composite_type): Remove, replace by ... (arch_composite_type): ... this. * gdbtypes.c (alloc_type): No longer support NULL objfile. (init_type): Likewise. (alloc_type_arch): New function. (alloc_type_copy): New function. (get_type_arch): New function. (smash_type): Preserve type ownership information. (make_pointer_type, make_reference_type, make_function_type, smash_to_memberptr_type, smash_to_method_type): No longer preserve OBJFILE across smash_type calls. (make_pointer_type, make_reference_type, make_function_type, lookup_memberptr_type, lookup_methodptr_type, allocate_stub_method, create_range_type, create_array_type, create_set_type, copy_type): Use alloc_type_copy when allocating types. (check_typedef): Use alloc_type_arch. (copy_type_recursive): Likewise. Preserve type ownership data after copying type. (recursive_dump_type): Dump type ownership data. (alloc_type_instance): Update type ownership check. (copy_type, copy_type_recursive): Likewise. (arch_type): New function. (arch_integer_type): Likewise. (arch_character_type): Likewise. (arch_boolean_type): Likewise. (init_float_type): Remove, replace by ... (arch_float_type): ... this. (init_complex_type): Remove, replace by ... (arch_complex_type): ... this. (init_flags_type): Remove, replace by ... (arch_flags_type): ... this. (append_flags_type_flag): Move down. (init_composite_type): Remove, replace by ... (arch_composite_type): ... this. (append_composite_type_field_aligned, append_composite_type_field): Move down. * gdbarch.c (gdbtypes_post_init): Allocate all types using per-architecture routines. * ada-lang.c (ada_language_arch_info): Likewise. * f-lang.c (build_fortran_types): Likewise. * jv-lang.c (build_java_types): Likewise. * m2-lang.c (build_m2_types): Likewise. * scm-lang.c (build_scm_types): Likewise. * ada-lang.c (ada_type_of_array): Use alloc_type_copy. (packed_array_type): Likewise. (ada_template_to_fixed_record_type_1): Likewise. (template_to_static_fixed_type): Likewise. (to_record_with_fixed_variant_part): Likewise. (to_fixed_variant_branch_type): Likewise. (to_fixed_array_type): Likewise. (to_fixed_range_type): Likewise. (empty_record): Use type instead of objfile argument. Use alloc_type_copy. (to_fixed_variant_branch_type): Update call to empty_record. * jv-lang.c (type_from_class): Use alloc_type_arch. * arm-tdep.c (arm_ext_type): Allocate per-architecture type. * i386-tdep.c (i386_eflags_type, i386_mxcsr_type, i387_ext_type, i386_mmx_type, i386_sse_type): Likewise. * ia64-tdep.c (ia64_ext_type): Likewise. * m32c-tdep.c (make_types): Likewise. * m68k-tdep.c (m68k_ps_type, m68881_ext_type): Likewise. * rs6000-tdep.c (rs6000_builtin_type_vec64, rs6000_builtin_type_vec128): Likewise. * sparc-tdep.c (sparc_psr_type, sparc_fsr_type): Likewise. * sparc64-tdep.c (sparc64_pstate_type, sparc64_fsr_type, sparc64_fprs_type): Likewise. * spu-tdep.c (spu_builtin_type_vec128): Likewise. * xtensa-tdep.c (xtensa_register_type): Likewise. * linux-tdep.c (linux_get_siginfo_type): Likewise. * target-descriptions.c (tdesc_gdb_type): Likewise. * gnu-v3-abi.c (build_gdb_vtable_type): Likewise.
2009-07-02 12:55:30 +00:00
= arch_integer_type (gdbarch, 64, 0, "long");
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
builtin_java_type->builtin_byte
* gdbtypes.h (TYPE_OBJFILE_OWNED, TYPE_OWNER): New macros. (TYPE_OBJFILE, TYPE_ALLOC, TYPE_ZALLOC): Reimplement. (alloc_type_arch): Add prototype. (alloc_type_copy): Likewise. (get_type_arch): Likewise. (arch_type): Likewise. (arch_integer_type): Likewise. (arch_character_type): Likewise. (arch_boolean_type): Likewise. (init_float_type): Remove, replace by ... (arch_float_type): ... this. (init_complex_type): Remove, replace by ... (arch_complex_type): ... this. (init_flags_type): Remove, replace by ... (arch_flags_type): ... this. (init_composite_type): Remove, replace by ... (arch_composite_type): ... this. * gdbtypes.c (alloc_type): No longer support NULL objfile. (init_type): Likewise. (alloc_type_arch): New function. (alloc_type_copy): New function. (get_type_arch): New function. (smash_type): Preserve type ownership information. (make_pointer_type, make_reference_type, make_function_type, smash_to_memberptr_type, smash_to_method_type): No longer preserve OBJFILE across smash_type calls. (make_pointer_type, make_reference_type, make_function_type, lookup_memberptr_type, lookup_methodptr_type, allocate_stub_method, create_range_type, create_array_type, create_set_type, copy_type): Use alloc_type_copy when allocating types. (check_typedef): Use alloc_type_arch. (copy_type_recursive): Likewise. Preserve type ownership data after copying type. (recursive_dump_type): Dump type ownership data. (alloc_type_instance): Update type ownership check. (copy_type, copy_type_recursive): Likewise. (arch_type): New function. (arch_integer_type): Likewise. (arch_character_type): Likewise. (arch_boolean_type): Likewise. (init_float_type): Remove, replace by ... (arch_float_type): ... this. (init_complex_type): Remove, replace by ... (arch_complex_type): ... this. (init_flags_type): Remove, replace by ... (arch_flags_type): ... this. (append_flags_type_flag): Move down. (init_composite_type): Remove, replace by ... (arch_composite_type): ... this. (append_composite_type_field_aligned, append_composite_type_field): Move down. * gdbarch.c (gdbtypes_post_init): Allocate all types using per-architecture routines. * ada-lang.c (ada_language_arch_info): Likewise. * f-lang.c (build_fortran_types): Likewise. * jv-lang.c (build_java_types): Likewise. * m2-lang.c (build_m2_types): Likewise. * scm-lang.c (build_scm_types): Likewise. * ada-lang.c (ada_type_of_array): Use alloc_type_copy. (packed_array_type): Likewise. (ada_template_to_fixed_record_type_1): Likewise. (template_to_static_fixed_type): Likewise. (to_record_with_fixed_variant_part): Likewise. (to_fixed_variant_branch_type): Likewise. (to_fixed_array_type): Likewise. (to_fixed_range_type): Likewise. (empty_record): Use type instead of objfile argument. Use alloc_type_copy. (to_fixed_variant_branch_type): Update call to empty_record. * jv-lang.c (type_from_class): Use alloc_type_arch. * arm-tdep.c (arm_ext_type): Allocate per-architecture type. * i386-tdep.c (i386_eflags_type, i386_mxcsr_type, i387_ext_type, i386_mmx_type, i386_sse_type): Likewise. * ia64-tdep.c (ia64_ext_type): Likewise. * m32c-tdep.c (make_types): Likewise. * m68k-tdep.c (m68k_ps_type, m68881_ext_type): Likewise. * rs6000-tdep.c (rs6000_builtin_type_vec64, rs6000_builtin_type_vec128): Likewise. * sparc-tdep.c (sparc_psr_type, sparc_fsr_type): Likewise. * sparc64-tdep.c (sparc64_pstate_type, sparc64_fsr_type, sparc64_fprs_type): Likewise. * spu-tdep.c (spu_builtin_type_vec128): Likewise. * xtensa-tdep.c (xtensa_register_type): Likewise. * linux-tdep.c (linux_get_siginfo_type): Likewise. * target-descriptions.c (tdesc_gdb_type): Likewise. * gnu-v3-abi.c (build_gdb_vtable_type): Likewise.
2009-07-02 12:55:30 +00:00
= arch_integer_type (gdbarch, 8, 0, "byte");
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
builtin_java_type->builtin_boolean
* gdbtypes.h (TYPE_OBJFILE_OWNED, TYPE_OWNER): New macros. (TYPE_OBJFILE, TYPE_ALLOC, TYPE_ZALLOC): Reimplement. (alloc_type_arch): Add prototype. (alloc_type_copy): Likewise. (get_type_arch): Likewise. (arch_type): Likewise. (arch_integer_type): Likewise. (arch_character_type): Likewise. (arch_boolean_type): Likewise. (init_float_type): Remove, replace by ... (arch_float_type): ... this. (init_complex_type): Remove, replace by ... (arch_complex_type): ... this. (init_flags_type): Remove, replace by ... (arch_flags_type): ... this. (init_composite_type): Remove, replace by ... (arch_composite_type): ... this. * gdbtypes.c (alloc_type): No longer support NULL objfile. (init_type): Likewise. (alloc_type_arch): New function. (alloc_type_copy): New function. (get_type_arch): New function. (smash_type): Preserve type ownership information. (make_pointer_type, make_reference_type, make_function_type, smash_to_memberptr_type, smash_to_method_type): No longer preserve OBJFILE across smash_type calls. (make_pointer_type, make_reference_type, make_function_type, lookup_memberptr_type, lookup_methodptr_type, allocate_stub_method, create_range_type, create_array_type, create_set_type, copy_type): Use alloc_type_copy when allocating types. (check_typedef): Use alloc_type_arch. (copy_type_recursive): Likewise. Preserve type ownership data after copying type. (recursive_dump_type): Dump type ownership data. (alloc_type_instance): Update type ownership check. (copy_type, copy_type_recursive): Likewise. (arch_type): New function. (arch_integer_type): Likewise. (arch_character_type): Likewise. (arch_boolean_type): Likewise. (init_float_type): Remove, replace by ... (arch_float_type): ... this. (init_complex_type): Remove, replace by ... (arch_complex_type): ... this. (init_flags_type): Remove, replace by ... (arch_flags_type): ... this. (append_flags_type_flag): Move down. (init_composite_type): Remove, replace by ... (arch_composite_type): ... this. (append_composite_type_field_aligned, append_composite_type_field): Move down. * gdbarch.c (gdbtypes_post_init): Allocate all types using per-architecture routines. * ada-lang.c (ada_language_arch_info): Likewise. * f-lang.c (build_fortran_types): Likewise. * jv-lang.c (build_java_types): Likewise. * m2-lang.c (build_m2_types): Likewise. * scm-lang.c (build_scm_types): Likewise. * ada-lang.c (ada_type_of_array): Use alloc_type_copy. (packed_array_type): Likewise. (ada_template_to_fixed_record_type_1): Likewise. (template_to_static_fixed_type): Likewise. (to_record_with_fixed_variant_part): Likewise. (to_fixed_variant_branch_type): Likewise. (to_fixed_array_type): Likewise. (to_fixed_range_type): Likewise. (empty_record): Use type instead of objfile argument. Use alloc_type_copy. (to_fixed_variant_branch_type): Update call to empty_record. * jv-lang.c (type_from_class): Use alloc_type_arch. * arm-tdep.c (arm_ext_type): Allocate per-architecture type. * i386-tdep.c (i386_eflags_type, i386_mxcsr_type, i387_ext_type, i386_mmx_type, i386_sse_type): Likewise. * ia64-tdep.c (ia64_ext_type): Likewise. * m32c-tdep.c (make_types): Likewise. * m68k-tdep.c (m68k_ps_type, m68881_ext_type): Likewise. * rs6000-tdep.c (rs6000_builtin_type_vec64, rs6000_builtin_type_vec128): Likewise. * sparc-tdep.c (sparc_psr_type, sparc_fsr_type): Likewise. * sparc64-tdep.c (sparc64_pstate_type, sparc64_fsr_type, sparc64_fprs_type): Likewise. * spu-tdep.c (spu_builtin_type_vec128): Likewise. * xtensa-tdep.c (xtensa_register_type): Likewise. * linux-tdep.c (linux_get_siginfo_type): Likewise. * target-descriptions.c (tdesc_gdb_type): Likewise. * gnu-v3-abi.c (build_gdb_vtable_type): Likewise.
2009-07-02 12:55:30 +00:00
= arch_boolean_type (gdbarch, 8, 0, "boolean");
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
builtin_java_type->builtin_char
* gdbtypes.h (TYPE_OBJFILE_OWNED, TYPE_OWNER): New macros. (TYPE_OBJFILE, TYPE_ALLOC, TYPE_ZALLOC): Reimplement. (alloc_type_arch): Add prototype. (alloc_type_copy): Likewise. (get_type_arch): Likewise. (arch_type): Likewise. (arch_integer_type): Likewise. (arch_character_type): Likewise. (arch_boolean_type): Likewise. (init_float_type): Remove, replace by ... (arch_float_type): ... this. (init_complex_type): Remove, replace by ... (arch_complex_type): ... this. (init_flags_type): Remove, replace by ... (arch_flags_type): ... this. (init_composite_type): Remove, replace by ... (arch_composite_type): ... this. * gdbtypes.c (alloc_type): No longer support NULL objfile. (init_type): Likewise. (alloc_type_arch): New function. (alloc_type_copy): New function. (get_type_arch): New function. (smash_type): Preserve type ownership information. (make_pointer_type, make_reference_type, make_function_type, smash_to_memberptr_type, smash_to_method_type): No longer preserve OBJFILE across smash_type calls. (make_pointer_type, make_reference_type, make_function_type, lookup_memberptr_type, lookup_methodptr_type, allocate_stub_method, create_range_type, create_array_type, create_set_type, copy_type): Use alloc_type_copy when allocating types. (check_typedef): Use alloc_type_arch. (copy_type_recursive): Likewise. Preserve type ownership data after copying type. (recursive_dump_type): Dump type ownership data. (alloc_type_instance): Update type ownership check. (copy_type, copy_type_recursive): Likewise. (arch_type): New function. (arch_integer_type): Likewise. (arch_character_type): Likewise. (arch_boolean_type): Likewise. (init_float_type): Remove, replace by ... (arch_float_type): ... this. (init_complex_type): Remove, replace by ... (arch_complex_type): ... this. (init_flags_type): Remove, replace by ... (arch_flags_type): ... this. (append_flags_type_flag): Move down. (init_composite_type): Remove, replace by ... (arch_composite_type): ... this. (append_composite_type_field_aligned, append_composite_type_field): Move down. * gdbarch.c (gdbtypes_post_init): Allocate all types using per-architecture routines. * ada-lang.c (ada_language_arch_info): Likewise. * f-lang.c (build_fortran_types): Likewise. * jv-lang.c (build_java_types): Likewise. * m2-lang.c (build_m2_types): Likewise. * scm-lang.c (build_scm_types): Likewise. * ada-lang.c (ada_type_of_array): Use alloc_type_copy. (packed_array_type): Likewise. (ada_template_to_fixed_record_type_1): Likewise. (template_to_static_fixed_type): Likewise. (to_record_with_fixed_variant_part): Likewise. (to_fixed_variant_branch_type): Likewise. (to_fixed_array_type): Likewise. (to_fixed_range_type): Likewise. (empty_record): Use type instead of objfile argument. Use alloc_type_copy. (to_fixed_variant_branch_type): Update call to empty_record. * jv-lang.c (type_from_class): Use alloc_type_arch. * arm-tdep.c (arm_ext_type): Allocate per-architecture type. * i386-tdep.c (i386_eflags_type, i386_mxcsr_type, i387_ext_type, i386_mmx_type, i386_sse_type): Likewise. * ia64-tdep.c (ia64_ext_type): Likewise. * m32c-tdep.c (make_types): Likewise. * m68k-tdep.c (m68k_ps_type, m68881_ext_type): Likewise. * rs6000-tdep.c (rs6000_builtin_type_vec64, rs6000_builtin_type_vec128): Likewise. * sparc-tdep.c (sparc_psr_type, sparc_fsr_type): Likewise. * sparc64-tdep.c (sparc64_pstate_type, sparc64_fsr_type, sparc64_fprs_type): Likewise. * spu-tdep.c (spu_builtin_type_vec128): Likewise. * xtensa-tdep.c (xtensa_register_type): Likewise. * linux-tdep.c (linux_get_siginfo_type): Likewise. * target-descriptions.c (tdesc_gdb_type): Likewise. * gnu-v3-abi.c (build_gdb_vtable_type): Likewise.
2009-07-02 12:55:30 +00:00
= arch_character_type (gdbarch, 16, 1, "char");
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
builtin_java_type->builtin_float
* gdbtypes.h (TYPE_OBJFILE_OWNED, TYPE_OWNER): New macros. (TYPE_OBJFILE, TYPE_ALLOC, TYPE_ZALLOC): Reimplement. (alloc_type_arch): Add prototype. (alloc_type_copy): Likewise. (get_type_arch): Likewise. (arch_type): Likewise. (arch_integer_type): Likewise. (arch_character_type): Likewise. (arch_boolean_type): Likewise. (init_float_type): Remove, replace by ... (arch_float_type): ... this. (init_complex_type): Remove, replace by ... (arch_complex_type): ... this. (init_flags_type): Remove, replace by ... (arch_flags_type): ... this. (init_composite_type): Remove, replace by ... (arch_composite_type): ... this. * gdbtypes.c (alloc_type): No longer support NULL objfile. (init_type): Likewise. (alloc_type_arch): New function. (alloc_type_copy): New function. (get_type_arch): New function. (smash_type): Preserve type ownership information. (make_pointer_type, make_reference_type, make_function_type, smash_to_memberptr_type, smash_to_method_type): No longer preserve OBJFILE across smash_type calls. (make_pointer_type, make_reference_type, make_function_type, lookup_memberptr_type, lookup_methodptr_type, allocate_stub_method, create_range_type, create_array_type, create_set_type, copy_type): Use alloc_type_copy when allocating types. (check_typedef): Use alloc_type_arch. (copy_type_recursive): Likewise. Preserve type ownership data after copying type. (recursive_dump_type): Dump type ownership data. (alloc_type_instance): Update type ownership check. (copy_type, copy_type_recursive): Likewise. (arch_type): New function. (arch_integer_type): Likewise. (arch_character_type): Likewise. (arch_boolean_type): Likewise. (init_float_type): Remove, replace by ... (arch_float_type): ... this. (init_complex_type): Remove, replace by ... (arch_complex_type): ... this. (init_flags_type): Remove, replace by ... (arch_flags_type): ... this. (append_flags_type_flag): Move down. (init_composite_type): Remove, replace by ... (arch_composite_type): ... this. (append_composite_type_field_aligned, append_composite_type_field): Move down. * gdbarch.c (gdbtypes_post_init): Allocate all types using per-architecture routines. * ada-lang.c (ada_language_arch_info): Likewise. * f-lang.c (build_fortran_types): Likewise. * jv-lang.c (build_java_types): Likewise. * m2-lang.c (build_m2_types): Likewise. * scm-lang.c (build_scm_types): Likewise. * ada-lang.c (ada_type_of_array): Use alloc_type_copy. (packed_array_type): Likewise. (ada_template_to_fixed_record_type_1): Likewise. (template_to_static_fixed_type): Likewise. (to_record_with_fixed_variant_part): Likewise. (to_fixed_variant_branch_type): Likewise. (to_fixed_array_type): Likewise. (to_fixed_range_type): Likewise. (empty_record): Use type instead of objfile argument. Use alloc_type_copy. (to_fixed_variant_branch_type): Update call to empty_record. * jv-lang.c (type_from_class): Use alloc_type_arch. * arm-tdep.c (arm_ext_type): Allocate per-architecture type. * i386-tdep.c (i386_eflags_type, i386_mxcsr_type, i387_ext_type, i386_mmx_type, i386_sse_type): Likewise. * ia64-tdep.c (ia64_ext_type): Likewise. * m32c-tdep.c (make_types): Likewise. * m68k-tdep.c (m68k_ps_type, m68881_ext_type): Likewise. * rs6000-tdep.c (rs6000_builtin_type_vec64, rs6000_builtin_type_vec128): Likewise. * sparc-tdep.c (sparc_psr_type, sparc_fsr_type): Likewise. * sparc64-tdep.c (sparc64_pstate_type, sparc64_fsr_type, sparc64_fprs_type): Likewise. * spu-tdep.c (spu_builtin_type_vec128): Likewise. * xtensa-tdep.c (xtensa_register_type): Likewise. * linux-tdep.c (linux_get_siginfo_type): Likewise. * target-descriptions.c (tdesc_gdb_type): Likewise. * gnu-v3-abi.c (build_gdb_vtable_type): Likewise.
2009-07-02 12:55:30 +00:00
= arch_float_type (gdbarch, 32, "float", NULL);
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
builtin_java_type->builtin_double
* gdbtypes.h (TYPE_OBJFILE_OWNED, TYPE_OWNER): New macros. (TYPE_OBJFILE, TYPE_ALLOC, TYPE_ZALLOC): Reimplement. (alloc_type_arch): Add prototype. (alloc_type_copy): Likewise. (get_type_arch): Likewise. (arch_type): Likewise. (arch_integer_type): Likewise. (arch_character_type): Likewise. (arch_boolean_type): Likewise. (init_float_type): Remove, replace by ... (arch_float_type): ... this. (init_complex_type): Remove, replace by ... (arch_complex_type): ... this. (init_flags_type): Remove, replace by ... (arch_flags_type): ... this. (init_composite_type): Remove, replace by ... (arch_composite_type): ... this. * gdbtypes.c (alloc_type): No longer support NULL objfile. (init_type): Likewise. (alloc_type_arch): New function. (alloc_type_copy): New function. (get_type_arch): New function. (smash_type): Preserve type ownership information. (make_pointer_type, make_reference_type, make_function_type, smash_to_memberptr_type, smash_to_method_type): No longer preserve OBJFILE across smash_type calls. (make_pointer_type, make_reference_type, make_function_type, lookup_memberptr_type, lookup_methodptr_type, allocate_stub_method, create_range_type, create_array_type, create_set_type, copy_type): Use alloc_type_copy when allocating types. (check_typedef): Use alloc_type_arch. (copy_type_recursive): Likewise. Preserve type ownership data after copying type. (recursive_dump_type): Dump type ownership data. (alloc_type_instance): Update type ownership check. (copy_type, copy_type_recursive): Likewise. (arch_type): New function. (arch_integer_type): Likewise. (arch_character_type): Likewise. (arch_boolean_type): Likewise. (init_float_type): Remove, replace by ... (arch_float_type): ... this. (init_complex_type): Remove, replace by ... (arch_complex_type): ... this. (init_flags_type): Remove, replace by ... (arch_flags_type): ... this. (append_flags_type_flag): Move down. (init_composite_type): Remove, replace by ... (arch_composite_type): ... this. (append_composite_type_field_aligned, append_composite_type_field): Move down. * gdbarch.c (gdbtypes_post_init): Allocate all types using per-architecture routines. * ada-lang.c (ada_language_arch_info): Likewise. * f-lang.c (build_fortran_types): Likewise. * jv-lang.c (build_java_types): Likewise. * m2-lang.c (build_m2_types): Likewise. * scm-lang.c (build_scm_types): Likewise. * ada-lang.c (ada_type_of_array): Use alloc_type_copy. (packed_array_type): Likewise. (ada_template_to_fixed_record_type_1): Likewise. (template_to_static_fixed_type): Likewise. (to_record_with_fixed_variant_part): Likewise. (to_fixed_variant_branch_type): Likewise. (to_fixed_array_type): Likewise. (to_fixed_range_type): Likewise. (empty_record): Use type instead of objfile argument. Use alloc_type_copy. (to_fixed_variant_branch_type): Update call to empty_record. * jv-lang.c (type_from_class): Use alloc_type_arch. * arm-tdep.c (arm_ext_type): Allocate per-architecture type. * i386-tdep.c (i386_eflags_type, i386_mxcsr_type, i387_ext_type, i386_mmx_type, i386_sse_type): Likewise. * ia64-tdep.c (ia64_ext_type): Likewise. * m32c-tdep.c (make_types): Likewise. * m68k-tdep.c (m68k_ps_type, m68881_ext_type): Likewise. * rs6000-tdep.c (rs6000_builtin_type_vec64, rs6000_builtin_type_vec128): Likewise. * sparc-tdep.c (sparc_psr_type, sparc_fsr_type): Likewise. * sparc64-tdep.c (sparc64_pstate_type, sparc64_fsr_type, sparc64_fprs_type): Likewise. * spu-tdep.c (spu_builtin_type_vec128): Likewise. * xtensa-tdep.c (xtensa_register_type): Likewise. * linux-tdep.c (linux_get_siginfo_type): Likewise. * target-descriptions.c (tdesc_gdb_type): Likewise. * gnu-v3-abi.c (build_gdb_vtable_type): Likewise.
2009-07-02 12:55:30 +00:00
= arch_float_type (gdbarch, 64, "double", NULL);
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
builtin_java_type->builtin_void
* gdbtypes.h (TYPE_OBJFILE_OWNED, TYPE_OWNER): New macros. (TYPE_OBJFILE, TYPE_ALLOC, TYPE_ZALLOC): Reimplement. (alloc_type_arch): Add prototype. (alloc_type_copy): Likewise. (get_type_arch): Likewise. (arch_type): Likewise. (arch_integer_type): Likewise. (arch_character_type): Likewise. (arch_boolean_type): Likewise. (init_float_type): Remove, replace by ... (arch_float_type): ... this. (init_complex_type): Remove, replace by ... (arch_complex_type): ... this. (init_flags_type): Remove, replace by ... (arch_flags_type): ... this. (init_composite_type): Remove, replace by ... (arch_composite_type): ... this. * gdbtypes.c (alloc_type): No longer support NULL objfile. (init_type): Likewise. (alloc_type_arch): New function. (alloc_type_copy): New function. (get_type_arch): New function. (smash_type): Preserve type ownership information. (make_pointer_type, make_reference_type, make_function_type, smash_to_memberptr_type, smash_to_method_type): No longer preserve OBJFILE across smash_type calls. (make_pointer_type, make_reference_type, make_function_type, lookup_memberptr_type, lookup_methodptr_type, allocate_stub_method, create_range_type, create_array_type, create_set_type, copy_type): Use alloc_type_copy when allocating types. (check_typedef): Use alloc_type_arch. (copy_type_recursive): Likewise. Preserve type ownership data after copying type. (recursive_dump_type): Dump type ownership data. (alloc_type_instance): Update type ownership check. (copy_type, copy_type_recursive): Likewise. (arch_type): New function. (arch_integer_type): Likewise. (arch_character_type): Likewise. (arch_boolean_type): Likewise. (init_float_type): Remove, replace by ... (arch_float_type): ... this. (init_complex_type): Remove, replace by ... (arch_complex_type): ... this. (init_flags_type): Remove, replace by ... (arch_flags_type): ... this. (append_flags_type_flag): Move down. (init_composite_type): Remove, replace by ... (arch_composite_type): ... this. (append_composite_type_field_aligned, append_composite_type_field): Move down. * gdbarch.c (gdbtypes_post_init): Allocate all types using per-architecture routines. * ada-lang.c (ada_language_arch_info): Likewise. * f-lang.c (build_fortran_types): Likewise. * jv-lang.c (build_java_types): Likewise. * m2-lang.c (build_m2_types): Likewise. * scm-lang.c (build_scm_types): Likewise. * ada-lang.c (ada_type_of_array): Use alloc_type_copy. (packed_array_type): Likewise. (ada_template_to_fixed_record_type_1): Likewise. (template_to_static_fixed_type): Likewise. (to_record_with_fixed_variant_part): Likewise. (to_fixed_variant_branch_type): Likewise. (to_fixed_array_type): Likewise. (to_fixed_range_type): Likewise. (empty_record): Use type instead of objfile argument. Use alloc_type_copy. (to_fixed_variant_branch_type): Update call to empty_record. * jv-lang.c (type_from_class): Use alloc_type_arch. * arm-tdep.c (arm_ext_type): Allocate per-architecture type. * i386-tdep.c (i386_eflags_type, i386_mxcsr_type, i387_ext_type, i386_mmx_type, i386_sse_type): Likewise. * ia64-tdep.c (ia64_ext_type): Likewise. * m32c-tdep.c (make_types): Likewise. * m68k-tdep.c (m68k_ps_type, m68881_ext_type): Likewise. * rs6000-tdep.c (rs6000_builtin_type_vec64, rs6000_builtin_type_vec128): Likewise. * sparc-tdep.c (sparc_psr_type, sparc_fsr_type): Likewise. * sparc64-tdep.c (sparc64_pstate_type, sparc64_fsr_type, sparc64_fprs_type): Likewise. * spu-tdep.c (spu_builtin_type_vec128): Likewise. * xtensa-tdep.c (xtensa_register_type): Likewise. * linux-tdep.c (linux_get_siginfo_type): Likewise. * target-descriptions.c (tdesc_gdb_type): Likewise. * gnu-v3-abi.c (build_gdb_vtable_type): Likewise.
2009-07-02 12:55:30 +00:00
= arch_type (gdbarch, TYPE_CODE_VOID, 1, "void");
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
return builtin_java_type;
}
static struct gdbarch_data *java_type_data;
const struct builtin_java_type *
builtin_java_type (struct gdbarch *gdbarch)
{
return gdbarch_data (gdbarch, java_type_data);
}
void
2000-07-30 01:48:28 +00:00
_initialize_java_language (void)
{
jv_dynamics_objfile_data_key
= register_objfile_data_with_cleanup (NULL, jv_per_objfile_free);
jv_dynamics_progspace_key = register_program_space_data ();
* jv-lang.h (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (struct builtin_java_type): New data type. (builtin_java_type): Add prototype. (java_primitive_type): Add GDBARCH argument. (java_primitive_type_from_name): Likewise. (type_from_class): Likewise. * jv-lang.c (java_int_type, java_byte_type, java_short_type, java_long_type, java_boolean_type, java_char_type, java_float_type, java_double_type, java_void_type): Remove. (build_java_types, builtin_java_type): New functions. (java_type_data): New static variable. (_initialize_java_language): Initialize it. No longer initialize global types. (java_language_arch_info): Use per-architecture types. (java_primitive_type): Add GDBARCH argument. Return per-architecture type instead of refering to global variable. (java_primitive_type_from_name): Add GDBARCH argument. (java_primitive_type_name): New function. (java_demangled_signature_length): Use it instead of java_primitive_type_from_name. (java_demangled_signature_copy): Likewise. (type_from_class): Add GDBARCH argument. Pass to java_link_class_type, java_primitive_type, and recursive type_from_class call. (java_link_class_type): Add GDBARCH argument. Pass to type_from_class calls. Use per-architecture types instead of global types. * jv-exp.y (parse_java_type): New define. Use per-architecture types instead of global types througout. * jv-valprint.c (java_value_print): Pass architecture to type_from_class and java_primitive_type_from_name. Use per- architecture types instead of global types.
2009-07-02 12:09:27 +00:00
java_type_data = gdbarch_data_register_post_init (build_java_types);
add_language (&java_language_defn);
}