aboutsummaryrefslogtreecommitdiff
path: root/gdb/valops.c
AgeCommit message (Collapse)AuthorFilesLines
2002-05-132002-05-13 Daniel Jacobowitz <drow@mvista.com>Daniel Jacobowitz1-1/+1
* ax-gdb.c (gen_sign_extend, gen_fetch, gen_usual_unary) (gen_cast, gen_scale, gen_add, gen_sub, gen_binop, gen_deref) (gen_address_of, gen_struct_ref, gen_repeat): Use type access macros. * c-typeprint.c (cp_type_print_method_args): Likewise. (c_type_print_args): Likewise. * d10v-tdep.c (d10v_push_arguments): Likewise. (d10v_extract_return_value): Likewise. * expprint.c (print_subexp): Likewise. * gdbtypes.c (lookup_primitive_typename): Likewise. (lookup_template_type, add_mangled_type, print_arg_types): Likewise. * gdbtypes.h (TYPE_UNSIGNED, TYPE_NOSIGN, TYPE_STUB) (TYPE_TARGET_STUB, TYPE_STATIC, TYPE_CONST, TYPE_VOLATILE) (TYPE_PROTOTYPED, TYPE_INCOMPLETE, TYPE_CODE_SPACE, TYPE_VARARGS) (TYPE_VECTOR): Likewise. * hpread.c (hpread_read_struct_type) (fix_static_member_physnames, fixup_class_method_type) (hpread_type_lookup): Likewise. * mdebugread.c (parse_symbol, parse_type): Likewise. * p-lang.c (is_pascal_string_type): Likewise. * valops.c (hand_function_call): Likewise. * x86-64-tdep.c (classify_argument): Likewise. * hpread.c (hpread_read_function_type) (hpread_read_doc_function_type): Call replace_type. * dstread.c (create_new_type): Delete. (decode_dst_structure, process_dst_function): Call alloc_type. Use type access macros.
2002-05-12* arch-utils.h (legacy_register_to_value): Declare.Andrew Cagney1-3/+2
(legacy_value_to_register): Declare. (legacy_convert_register_p): Declare. * arch-utils.c (legacy_register_to_value): New function. (legacy_value_to_register): New function. (legacy_convert_register_p): New function. * gdbarch.sh (REGISTER_TO_VALUE): Define. (VALUE_TO_REGISTER): Define. (CONVERT_REGISTER_P): Define. * gdbarch.h, gdbarch.c: Regenerate. * valops.c (value_assign): Use CONVERT_REGISTER_P and VALUE_TO_REGISTER. * findvar.c (value_from_register): Use REGISTER_TO_VALUE and CONVERT_REGISTER_P. * gdbint.texinfo (Target Architecture Definition): Document REGISTER_TO_VALUE and VALUE_TO_REGISTER and CONVERT_REGISTER_P. (Target Architecture Definition): Revise section `Using Different Register and Memory Data Representations'. Add section `Raw and Virtual Register Representations'.
2002-05-122005-05-11 Daniel Jacobowitz <drow@mvista.com>Daniel Jacobowitz1-46/+49
Peter Schauer <pes@regent.e-technik.tu-muenchen.de> * Makefile.in: Update dependencies for valops.c. * valops.c: Include "gdb_assert.h". (typecmp): Skip THIS parameter to methods. (find_method_list): Remove static_memfuncp argument, update callers. Check for stub methods. (find_value_oload_method_list): Don't set *static_memfuncp. (find_overload_match): Don't check for stub methods. Assert that methods are not stubbed. Handle static methods. (value_find_oload_method_list): Remove static_memfuncp argument. * gdbtypes.c (check_stub_method): Do not add THIS pointer to the argument list for static stub methods. * value.h (value_find_oload_method_list): Update prototype.
2002-05-022002-05-02 Elena Zannoni <ezannoni@redhat.com>Elena Zannoni1-1/+5
* valops.c (value_arg_coerce): Don't coerce arrays to pointers if we are dealing with vectors.
2002-04-26* valops.c (hand_function_call): CallAndrew Cagney1-0/+11
generic_save_call_dummy_addr. * frame.h (generic_save_call_dummy_addr): Declare. * blockframe.c (struct dummy_frame): Add fields call_lo and call_hi. (generic_find_dummy_frame): Check for PC in range call_lo to call_hi instead of entry_point_address. (generic_pc_in_call_dummy): Search the dummy frames for a PC in the call_lo to call_hi range. Allow for DECR_PC_AFTER_BREAK. (generic_save_call_dummy_addr): New function.
2002-04-23* findvar.c (extract_signed_integer): Cast printf argumentJason Thorpe1-2/+2
to suppress format warning. (extract_unsigned_integer): Likewise. * infcmd.c (registers_info): Likewise. * top.c (get_prompt_1): Likewise. * valops.c (value_assign): Likewise. * valprint.c (print_decimal): Likewise.
2002-03-222002-03-22 Daniel Jacobowitz <drow@mvista.com>Daniel Jacobowitz1-1/+1
* symtab.h (lookup_block_symbol): Add mangled_name argument to prototype. * symmisc.c (maintenance_check_symtabs): Call lookup_block_symbol with new mangled_name argument. * linespec.c (decode_line_1): Likewise. * valops (value_of_this): Likewise. * symtab.c (lookup_transparent_type): Likewise. (lookup_symbol_aux): Likewise. Accept new mangled_name argument. (lookup_symbol): If we are given a mangled name, pass it down to lookup_symbol_aux. (lookup_block_symbol): If we are given a mangled name to check against, only return symbols which match it.
2002-02-162002-02-16 Daniel Jacobowitz <drow@mvista.com>Daniel Jacobowitz1-1/+2
* valarith.c (value_x_unop): Fix decrement; support post-decrement. 2002-02-16 Daniel Jacobowitz <drow@mvista.com> From Peter Schauer <Peter.Schauer@Regent.E-Technik.TU-Muenchen.DE>: * valops.c (value_arg_coerce): Don't take the address of a reference to convert an argument to a reference.
2002-02-10* valops.c (PUSH_ARGUMENTS): Delete definition.Andrew Cagney1-4/+0
* gdbarch.sh (PUSH_ARGUMENTS): Don't require when multi-arch partial. Default to default_push_arguments. * gdbarch.h, gdbarch.c: Regenerate.
2002-02-042002-02-03 Daniel Jacobowitz <drow@mvista.com>Daniel Jacobowitz1-13/+22
* c-valprint.c (c_val_print): Pass a proper valaddr to cp_print_class_method. * valops.c (search_struct_method): If there is only one method and args is NULL, return that method.
2002-01-082002-01-07 Michael Snyder <msnyder@redhat.com>Michael Snyder1-0/+1
* cp-valprint.c (cp_print_value): FIXME comment, alloca size. * p-valprint.c (pascal_object_print_value): Ditto. * somread.c (som_symtab_read): Ditto. * symfile.c (simple_free_overlay_region_table): Ditto. * valops.c (value_assign): Ditto.
2002-01-06* valops.c (value_arg_coerce): Fix formatting.Mark Kettenis1-2/+3
2002-01-05s/BIG_ENDIAN/BFD_ENDIAN_BIG/Andrew Cagney1-1/+1
2002-01-042002-01-04 Daniel Jacobowitz <drow@mvista.com>Daniel Jacobowitz1-1/+11
* valops.c (find_overload_match): Accept obj as a reference parameter. Update it before returning. * value.h (find_overload_match): Update prototype. * eval.c (evaluate_subexp_standard): Pass object to find_overload_match by reference.
2002-01-04s/value_ptr/struct value */Andrew Cagney1-114/+113
2001-12-12Approved by Jim Blandy:Fred Fish1-3/+1
2001-12-11 Fred Fish <fnf@redhat.com> * c-typeprint.c (c_type_print_base): Use type flags access macros to test bits. * ch-typeprint.c (chill_type_print_base): Ditto. * ch-valprint.c (chill_val_print): Ditto. * d10v-tdep.c (d10v_pointer_to_address): Ditto. * dwarf2read.c (dwarf2_add_member_fn): Ditto. * dwarfread.c (read_structure_scope): Ditto. * gdbtypes.c (create_range_type): Dittol (create_set_type): Ditto. (check_typedef): Ditto. * jv-typeprint.c (java_type_print_base): Ditto. * p-typeprint.c (pascal_type_print_base): Ditto * p-valprint.c (pascal_val_print): Ditto. * stabsread.c (read_cfront_member_functions): Ditto. (read_member_functions): Ditto. (cleanup_undefined_types): Ditto. * valprint.c (val_print): Ditto. * valops.c (hand_function_call): Remove is_prototyped variable and just use type flag test macro directly.
2001-12-07Undo accidental commit of a separate patch.Daniel Jacobowitz1-11/+1
2001-12-07 * valops.c (hand_function_call): Check for method arguments inDaniel Jacobowitz1-2/+33
TYPE_ARG_TYPES(), not in TYPE_FIELD ().
2001-11-13* valops.c (default_coerce_float_to_double,Jim Blandy1-14/+28
standard_coerce_float_to_double): Doc fixes.
2001-11-06Add predicate for PUSH_RETURN_ADDRESS.Andrew Cagney1-12/+12
2001-10-16* value.h (value_as_address): Rename value_as_pointer.Andrew Cagney1-3/+3
* eval.c, findvar.c, gnu-v2-abi.c, gnu-v3-abi.c, jv-lang.c, jv-valprint.c, printcmd.c, stack.c, top.c, valarith.c, valops.c, values.c: Update.
2001-07-10Clean up the D10V port so that GDB and the target program noJim Blandy1-47/+2
longer disagree on how big pointers are. * findvar.c (value_from_register): Remove special case code for D10V. * printcmd.c (print_frame_args): Same. * valops.c (value_at, value_fetch_lazy): Same. * values.c (unpack_long): Same. * gdbarch.sh: Changes to effect the following: * gdbarch.h (GDB_TARGET_IS_D10V, D10V_MAKE_DADDR, gdbarch_d10v_make_daddr_ftype, gdbarch_d10v_make_daddr, set_gdbarch_d10v_make_daddr, D10V_MAKE_IADDR, gdbarch_d10v_make_iaddr_ftype, gdbarch_d10v_make_iaddr, set_gdbarch_d10v_make_iaddr, D10V_DADDR_P, gdbarch_d10v_daddr_p_ftype, gdbarch_d10v_daddr_p, set_gdbarch_d10v_daddr_p, D10V_IADDR_P, gdbarch_d10v_iaddr_p_ftype, gdbarch_d10v_iaddr_p, set_gdbarch_d10v_iaddr_p, D10V_CONVERT_DADDR_TO_RAW, gdbarch_d10v_convert_daddr_to_raw_ftype, gdbarch_d10v_convert_daddr_to_raw, set_gdbarch_d10v_convert_daddr_to_raw, D10V_CONVERT_IADDR_TO_RAW, gdbarch_d10v_convert_iaddr_to_raw_ftype, gdbarch_d10v_convert_iaddr_to_raw, set_gdbarch_d10v_convert_iaddr_to_raw): Delete declarations. * gdbarch.c: Delete the corresponding definitions. (struct gdbarch): Delete members d10v_make_daddr, d10v_make_iaddr, d10v_daddr_p, d10v_iaddr_p, d10v_convert_daddr_to_raw, and d10v_convert_iaddr_to_raw. (startup_gdbarch): Remove initializers for the above. (verify_gdbarch, gdbarch_dump): Don't verify or dump them any more. * d10v-tdep.c (d10v_register_virtual_type): Rather that claiming the stack pointer and PC are 32 bits long (which they aren't), say that the stack pointer is an int16_t, and the program counter is a function pointer. This allows the rest of GDB to make the appropriate conversions between the code pointer format and real addresses. (d10v_register_convertible, d10v_register_convert_to_virtual, d10v_register_convert_to_raw): Delete function; no registers are convertible now, so we use generic_register_convertible_not instead. (d10v_address_to_pointer, d10v_pointer_to_address): New gdbarch methods. (d10v_push_arguments, d10v_extract_return_value): Remove special cases for code and data pointers. (d10v_gdbarch_init): Set gdbarch_ptr_bit to 16, so that GDB and the target agree on how large pointers are. Say that addresses are 32 bits long. Register the address_to_pointer and pointer_to_address conversion functions. Since no registers are convertible now, register generic_register_convertible_not as the gdbarch_register_convertible method instead of d10v_register_convertible. Remove registrations for d10v_register_convert_to_virtual, d10v_register_convert_to_raw, gdbarch_d10v_make_daddr, gdbarch_d10v_make_iaddr, gdbarch_d10v_daddr_p, gdbarch_d10v_iaddr_p, gdbarch_d10v_convert_daddr_to_raw, and gdbarch_d10v_convert_iaddr_to_raw.
2001-07-10* valops.c (value_cast): When casting a pointer to an integer,Jim Blandy1-1/+12
don't convert it to an address.
2001-05-192001-05-07 Daniel Berlin <dan@cgsoftware.com>Daniel Berlin1-6/+6
Changes by Jim Ingham: * values.c (value_change_enclosing_type): New function. If the new enclosing type is larger than the old one, we need to allocate more space. * value.h: Add value_change_enclosing_type prototype. * valops.c (value_cast): Use it. (value_assign): Use it. (value_addr): Use it. (value_ind): Use it. (value_full_object): Use it. 2001-05-07 Daniel Berlin <dan@cgsoftware.com> * values.c (value_static_field): Handle static fields that have a constant value.
2001-04-27(Changes from Daniel Berlin, with revisions by Jim Blandy.)Jim Blandy1-220/+1
Abstract out operations specific to particular C++ ABI's, and invoke them through a function table. This removes the C++ ABI dependencies scattered throughout the code, and allows us to cleanly add support for new C++ ABI's. * cp-abi.h, cp-abi.h, gnu-v2-abi.c, hpacc-abi.c: New files. * c-typeprint.c, c-valprint.c, dbxread.c, eval.c, gdbtypes.c, jv-typeprint.c, linespec.c, symtab.c, typeprint.c, valops.c: #include "cp-abi.h". These files all use functions now declared there. * symtab.h (OPNAME_PREFIX_P, VTBL_PREFIX_P, DESTRUCTOR_PREFIX_P): Deleted. These services are now provided by functions declared in cp-abi.h. * value.h (value_rtti_type, value_virtual_fn_field): Same. * values.c (value_virtual_fn_field): Same, for this definition. * valops.c (value_rtti_type): Same. * c-typeprint.c (c_type_print_base): Use the functions from "cp-abi.h", instead of the old macros, or hard-coded ABI-specific tests. * dbxread.c (record_minimal_symbol): Same. * gdbtypes.c (get_destructor_fn_field, virtual_base_index, virtual_base_index_skip_primaries): Same. * jv-typeprint.c (java_type_print_base): Same. * linespec.c (find_methods, decode_line_1): Same. * symtab.c (gdb_mangle_name): Same. * Makefile.in (SFILES): Add the new .c files mentioned above. (cp_abi_h): New variable. (COMMON_OBS): Add gnu-v2-abi.o, hpacc-abi.o, and cp-abi.o. (cp-abi.o, gnu-v2-abi.o, hpacc-abi.o): New targets. (c-typeprint.o, c-valprint.o, dbxread.o, eval.o, gdbtypes.o, jv-typeprint.o, symtab.o, linespec.o, typeprint.o, valops.o): Add dependency on $(cp_abi_h).
2001-03-19* valops.c (hand_function_call): Simplify computation of theAndrew Cagney1-12/+5
address of the pushed argument.
2001-03-06Update/correct copyright notices.Kevin Buettner1-2/+2
2001-03-01Create new file regcache.h. Update all uses.Andrew Cagney1-2/+3
2001-02-062001-02-06 Michael Snyder <msnyder@makita.cygnus.com>Michael Snyder1-3/+3
Submitted by Paul Hilfinger (hilfingr@gnat.com) and Andrei Petrov (and@genesyslab.com). * findvar.c: Buffers of size MAX_REGISTER_RAW_SIZE or REGISTER_BYTES must be allocated dynamically, since these are no longer constants. * infcmd.c: Ditto. * regcache.c: Ditto. * remote.c: Ditto. * sol-thread.c: Ditto. * valops.c: Ditto. * config/sparc/sun4sol2.mh (MH_CFLAGS): Add -I/usr/include/v9, as a work-around for a missing Sun header file in solaris for sparc64.
2001-02-06 * valops.c (value_cast): If casting a scalar to a pointer, do notDavid Taylor1-4/+15
issue a message about truncation unless it exceeds the length of an address, not the length of a pointer. This is because what the user gives us is an address, not a pointer, and we will ultimately convert it (via ADDRESS_TO_POINTER) to a pointer, not truncate it to a pointer. This allows things like "print *(int *)0x01000234" to work without generating a misleading message on a target having two byte pointers and four byte addresses.
2001-01-04 * valops.c (VALUE_SUBSTRING_START): Delete.Nicholas Duffek1-2/+0
2000-12-15Replace free() with xfree().Kevin Buettner1-2/+2
2000-11-08Protoization.Kevin Buettner1-4/+1
2000-10-26 * arch-utils.c, arch-utils.h (default_convert_from_func_ptr_addr):Peter Schauer1-5/+0
New function. * gdbarch.sh (CONVERT_FROM_FUNC_PTR_ADDR): Add. * gdbarch.c, gdbarch.h: Regenerate. * valops.c (find_function_addr): Use CONVERT_FROM_FUNC_PTR_ADDR unconditionally. * config/rs6000/tm-rs6000.h (CONVERT_FROM_FUNC_PTR_ADDR): Delete definition. * config/powerpc/tm-linux.h (CONVERT_FROM_FUNC_PTR_ADDR): Remove undef. * rs6000-tdep.c (rs6000_convert_from_func_ptr_addr): Fix comment. (rs6000_gdbarch_init): Register rs6000_convert_from_func_ptr_addr if not ELFOSABI_LINUX.
2000-08-302000-08-29 Michael Snyder <msnyder@seadog.cygnus.com>Michael Snyder1-2/+2
* valops.c (value_cast): Indentation fix-up. * acconfig.h (HAVE_PRGREGSET32_T, HAVE_PRFPREGSET32_T, HAVE_STRUCT_LINK_MAP32): New configure macros. * config.in: Ditto. * configure.in: Test for the above new macros. * breakpoint.c: Update copyright date. * core-sol2.c: Include v9/sys/privregs.h directly to work around a bug in Sun's Solaris 8 header files. (fetch_core_registers): Use the above new configure macros to handle cross-debugging of 32-bit core files on a 64-bit host. * sol-thread.c (ps_pdmodel) New function. (rw_common): For debugging of 32-bit apps on a 64-bit host, truncate addresses to 32 bits. * solib.c (solib_extract_address): Functionize. Make 32/64 aware. (LM_ADDR, LM_NEXT, LM_NAME): Ditto. (IGNORE_FIRST_LINK_MAP): Ditto. (first_link_map_member): Make 32/64 aware. (open_symbol_file_object): Ditto. (current_sos): Ditto.
2000-08-04Multi-arch EXTRA_STACK_ALIGNMENT_NEEDED (nee NO_EXTRA_ALIGNMENT_NEEDED).Andrew Cagney1-20/+20
2000-07-30Protoization.Kevin Buettner1-175/+61
2000-07-17modify error messageDaniel Berlin1-4/+4
2000-07-15Properly handle referencesDaniel Berlin1-12/+22
2000-07-12* valops.c (value_cast): Allow cast from INT, ENUM or RANGE toAndrew Cagney1-0/+14
POINTER.
2000-07-09 * gdbtypes.c (is_ancestor): Infer type equivalence from nameNicholas Duffek1-19/+15
equivalence. (rank_one_type): Use strcmp instead of == to compare type names. Don't swap parm with arg when checking TYPE_CODE_REF types. * valops.c (find_overload_match): Fix indentation. Compare parameter rankings to 0..9, 10..99, and 100+ instead of 0, 10, and 100.
2000-06-152000-06-15 Michael Snyder <msnyder@seadog.cygnus.com>Michael Snyder1-2/+4
* valops.c (value_cast): Break up long lines.
2000-06-122000-06-12 Fernando Nasser <fnasser@cygnus.com>Fernando Nasser1-1/+2
* valops.c (value_assign): Adjust the length to take into consideration that we are not starting from the beginning.
2000-05-28PARAMS removal.Kevin Buettner1-15/+20
2000-05-22Purge (almost) make_cleanup_func.Andrew Cagney1-2/+1
2000-05-20* target.h (target_memory_bfd_section): Removed declaration.J.T. Conklin1-3/+3
* target.c (target_memory_bfd_section): Removed. * exec.c (xfer_memory): Removed #if'ed-out code which referenced target_memory_bfd_section. * target.h (target_read_memory_section): Removed declaration. * target.c (target_read_memory_section): Removed. (target_xfer_memory): Update, removed bfd_section argument. (target_read_string, target_read_memory, target_write_memory): Update for above change. * gdbcore.h (read_memory_section): Removed declaration. * corefile.c (read_memory_section): Removed. * jv-lang.c (get_java_utf8_name): Changed calls to read_memory_section to read_memory. * printcmd.c (printf_command): Likewise. * valops.c (value_at, value_fetch_lazy): Likewise.
2000-05-15Convert SAVE_DUMMY_FRAME_TOS to multi-arch.Andrew Cagney1-3/+2
2000-04-22Convert REG_STRUCT_HAS_ADDR to multi-arch. Use REG_STRUCT_HAS_ADDR_PAndrew Cagney1-66/+66
in conversion.
2000-04-21* valops.c (hand_function_call): Replace #ifdef STACK_ALIGN withAndrew Cagney1-20/+15
run-time test for STACK_ALIGN_P. * gdbarch.sh: Add support for function and variable predicates. (STACK_ALIGN): Add. Implement with predicate - STACK_ALIGN_P. * gdbarch.h, gdbarch.c: Re-generate.
2000-04-17* remote.c (REMOTE_TRANSLATE_XFER_ADDRESS), mem-break.cAndrew Cagney1-12/+0
(MEMORY_INSERT_BREAKPOINT, MEMORY_REMOVE_BREAKPOINT), target.h (BREAKPOINT_FROM_PC), valops.c (COERCE_FLOAT_TO_DOUBLE), gdbarch.sh (D10V_MAKE_DADDR, D10V_MAKE_IADDR, FRAMELESS_FUNCTION_INVOCATION, REGISTER_CONVERTIBLE, REGISTER_CONVERT_TO_VIRTUAL, REGISTER_CONVERT_TO_RAW, REGISTER_NAME), findvar.c (POINTER_TO_ADDRESS, ADDRESS_TO_POINTER): Delete default definition. Handled by gdbarch. * gdbarch.sh: Make multi-arch defaults, defaults for non- multi-arch targets. (REGISTER_NAME, COERCE_FLOAT_TO_DOUBLE, REGISTER_CONVERTIBLE, REGISTER_CONVERT_TO_VIRTUAL, REGISTER_CONVERT_TO_RAW, D10V_MAKE_DADDR, D10V_MAKE_IADDR, BREAKPOINT_FROM_PC, MEMORY_INSERT_BREAKPOINT, MEMORY_REMOVE_BREAKPOINT, REMOTE_TRANSLATE_XFER_ADDRESS, FRAMELESS_FUNCTION_INVOCATION): Provide default/legacy implementation. (REGISTER_NAMES, CALL_DUMMY): Allow legacy definition. * gdbarch.h, gdbarch.c: Re-generate.