aboutsummaryrefslogtreecommitdiff
path: root/gdb/values.c
AgeCommit message (Collapse)AuthorFilesLines
2002-01-29* config/vax/tm-vax.h (INVALID_FLOAT): Move macro from here...Andrew Cagney1-7/+16
* vax-tdep.c (INVALID_FLOAT): To here. Document why it is broken. * rs6000-tdep.c (rs6000_do_registers_info): Delete code wrapped in #ifdef INVALID_FLOAT. * infcmd.c (do_registers_info): Ditto. * values.c (unpack_double): Ditto. Add comment. * config/ns32k/tm-umax.h (INVALID_FLOAT): Delete macro that was already commented out.
2002-01-042002-01-04 Daniel Jacobowitz <drow@mvista.com>Daniel Jacobowitz1-95/+0
* cp-abi.c: Fix whitespace. (baseclass_offset): New wrapper function. * cp-abi.h (baseclass_offset): Add prototype. (struct cp_abi_ops): Add baseclass_offset pointer. * valops.c (vb_match): Move to... * gnu-v2-abi.c (vb_match): here. * valops.c (baseclass_offset): Move to... * gnu-v2-abi.c (gnuv2_baseclass_offset): here, and rename. * gnu-v3-abi.c (gnuv3_baseclass_offset): New function. * gnu-v2-abi.c (init_gnuv2_ops): Initialize baseclass_offset. * gnu-v3-abi.c (init_gnuv3_ops): Likewise. * hpacc-abi.c (init_hpacc_ops): Likewise.
2002-01-04s/value_ptr/struct value */Andrew Cagney1-66/+70
2001-12-11Rearange code to supress -Wuninitialized error.Andrew Cagney1-4/+9
2001-12-10Approved by Jim Blandy:Fred Fish1-9/+21
2001-12-10 Fred Fish <fnf@redhat.com> * values.c (value_fn_field): Add physname variable. Use a minimal symbol if we don't find a full symbol. Remove setting of the new value's type since that was already done by allocate_value(). Remove obsolete commented out error call since callees need to handle a NULL return, which is possible result not an error. * eval.c (evaluate_subexp_standard): Move check for inlined functions to precede attempt to dereference a NULL argvec[0].
2001-11-30 * values.c (value_primitive_field): Add embedded_offset to theDaniel Jacobowitz1-1/+2
address of structure members. * gnu-v3-abi.c (gnuv3_rtti_type): Cast to base type before attempting to access vtable pointer. Set using_enc_p if we cast. (gnuv3_virtual_fn_field): Call value_cast with structure rather than structure pointer. Cast to base type before attempting to access vtable pointer.
2001-11-29* values.c (value_being_returned): Make error message a properJim Blandy1-1/+1
sentence.
2001-11-09* values.c (value_as_address): If VAL is a function or method,Jim Blandy1-0/+42
just return its address; don't let COERCE_ARRAY convert its address to a pointer, and then have unpack_long convert it back to an address.
2001-11-07gdbarch.sh provides default for USE_STRUCT_CONVENTION.Andrew Cagney1-5/+0
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-10-15Add INTEGER_TO_ADDRESS to hadle nasty harvard architectures that doAndrew Cagney1-29/+43
funnies to integer to address conversions.
2001-09-24* doublest.h (store_floating, extract_floating): Add commentAndrew Cagney1-3/+3
indicating these functions are deprecated. (extract_typed_floating, store_typed_floating): Declare. * doublest.c: Include "gdbtypes.h". (extract_typed_floating, store_typed_floating): Define. * stabsread.c (define_symbol): Use store_typed_floating. * valarith.c (value_binop): Ditto. * values.c (unpack_long): Use extract_typed_floating. (unpack_double): Ditto.
2001-08-01* defs.h (HOST_FLOAT_FORMAT, HOST_DOUBLE_FORMAT)Andrew Cagney1-0/+1
(HOST_FLOAT_FORMAT, HOST_DOUBLE_FORMAT) (HOST_LONG_DOUBLE_FORMAT, DOUBLEST) (floatformat_to_doublest, floatformat_from_doublest) (floatformat_is_negative, floatformat_is_nan) (floatformat_mantissa, store_floating) (extract_floating): Move declaration from here. * doublest.h: To here. New file. * utils.c (get_field, floatformat_to_doublest, put_field) (ldfrexp, floatformat_from_doublest, floatformat_is_negative) (floatformat_is_nan, floatformat_mantissa) (FLOATFORMAT_CHAR_BIT): Move from here. * doublest.c: To here. New file. * findvar.c (store_floating, extract_floating): Move from here. * doublest.c: To here. * Makefile.in (SFILES): Add doublest.c. (COMMON_OBS): Add doublest.o. (doublest.o): Specify dependencies. (doublest_h): Define. * config/m88k/tm-m88k.h: Include "doublest.h". * config/i960/tm-i960.h: Ditto. * config/i386/tm-symmetry.h: Ditto. * rs6000-tdep.c, valarith.c: Ditto. * valprint.c, stabsread.c, sh-tdep.c: Ditto. * ia64-tdep.c, i387-tdep.c, i386-tdep.c: Ditto. * values.c, arm-tdep.c, arm-linux-tdep.c: Ditto. * alpha-tdep.c, ax.h, expression.h: Ditto. * sh-tdep.c, parse.c, top.c, value.h: Ditto. * Makefile.in (arm-tdep.o): Add $(doublest_h). (i386-tdep.o, i387-tdep.o, ia64-tdep.o): Ditto. (rs6000-tdep.o, stabsread.o, valarith.o): Ditto. (values.o, valprint.o, arm-linux-tdep.o): Ditto. (alpha-tdep.o, ax_h, parse.o, top.o, value_h): Ditto. (parser_defs_h): Ditto. (expression_h): Add $(doublest_h) and $(symtab_h).
2001-07-10Clean up the D10V port so that GDB and the target program noJim Blandy1-3/+0
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-08* gdbtypes.h (builtin_type_void_data_ptr): RenameAndrew Cagney1-2/+3
builtin_type_ptr. * gdbtypes.c (builtin_type_void_data_ptr): Update. (build_gdbtypes): Update. (_initialize_gdbtypes): Update. * values.c (value_as_pointer): Update. * utils.c (host_pointer_to_address): Update. (address_to_host_pointer): Update.
2001-06-15* gdbarch.sh (EXTRACT_STRUCT_VALUE_ADDRESS_P): Delete definition.Andrew Cagney1-1/+1
(EXTRACT_STRUCT_VALUE_ADDRESS): Change to a function with predicate. * gdbarch.h, gdbarch.c: Regenerate. * values.c (value_being_returned): Change the reference to EXTRACT_STRUCT_VALUE_ADDRESS_P to a function call.
2001-06-10* gnu-regex.c: Eliminate obsolete check for _MSC_VER.Christopher Faylor1-5/+0
* utils.c (notice_quit): Remove dummy function only used for _MSC_VER. * values.c (unpack_double): Remove obsolete check for _MSC_VER. * defs.h: Ditto. * m32r-rom.c: Ditto. * p-exp.y: Ditto. * ser-e7kpc.c: Ditto. Define WIN32_LEAN_AND_MEAN under _WIN32, for faster compilation. (get_ds_base): Remove _MSC_VER version of this function. * nindy-share/ttyflush.c: Ditto. X * rdi-share/host.h: Ditto. X * ser-go32.c (dos_readchar): Remove call to obsolete function. * remote-sim.c (gdb_os_poll_quit): Ditto. * remote-e7000.c (expect): Remove obsolete #if 0'ed code. * main.c (captured_main): Eliminate special Cygwin checks. * ser-tcp.c: Remove unneeded __CYGWIN__ guard against system include.
2001-05-21* values.c (value_primitive_field): If we're extracting a baseJim Blandy1-1/+1
class, then the type of the result should be the base class being extracted, not the type of which it is a base class.
2001-05-192001-05-07 Daniel Berlin <dan@cgsoftware.com>Daniel Berlin1-3/+54
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-192/+0
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-27* arch-utils.c (#include "gdbthread.h"): Removed.J.T. Conklin1-1/+0
(#include "symfile.h"): Removed. (XMALLOC): Removed unused macro. * breakpoint.c (tbreak_command): Removed local declaration. (awatch_command, do_enable_breakpoint, set_breakpoint_count): Remove duplicate declarations. (bpstat_should_step, bpstat_have_active_hw_watchpoints) (remove_solib_event_breakpoints): Fix indentation botch. * c-typeprint.c (#include "command.h"): Removed. (#include "gdbcmd.h"): Removed. * ch-exp.c (ch_terminal_match_float_literal, parse_expr) (parse_primval, parse_untyped_expr, parse_opt_untyped_expr): Removed duplicate declarations. * ch-typeprint.c (#include "command.h"): Removed. (#include "gdbcmd.h"): Removed. * corefile.c (#include "frame.h"): Removed (#include "symfile.h"): Removed. (#include "language.h"): Removed. * dbxread.c (#include "command.h"): Removed. * environ.c (#include "gdbcore.h"): Removed. * event-loop.c (#include "top.h"): Removed. * f-typeprint.c (#include "command.h"): Removed. (#include "gdbcmd.h"): Removed. (#include "language.h"): Removed. (#include "typeprint.h"): Removed. (#include "frame.h"): Removed. * gdbtypes.h (print_type_scalar): Removed declaration. * infcmd.c (#include "completer.h"): Removed. * language.c (#include "frame.h"): Removed. * m2-typeprint.c (#include "command.h"): Removed. (#include "gdbcmd.h"): Removed. (#include "language.h"): Removed. * m2-valprint.c (#include "valprint.h"): Removed. * p-typeprint.c (#include "command.h"): Removed. (#include "gdbcmd.h"): Removed. * p-valprint.c (#include "typeprint.h"): Removed. * parse.c (#include "linespec.h"): Removed. * regcache.c (#include "frame.h"): Removed. * remote.c (#include "frame.h"): Removed. (getpkt_sane): Make static. * source.c (#include "completer.h"): Removed. * stack.c (#include "symfile.h"): Removed. (#include "objfiles.h"): Removed. * symfile.c (#include "completer.h"): Removed. * tracepoint.c (#include "completer.h"): Removed. * values.c (#include "frame.h"): Removed. * varobj.c (#include "valprint.h"): Removed. * wrapper.c (#include "frame.h"): Removed. * memattr.c (create_mem_region): Removed unused variable. * remote-nrom.c: Removed spurious semicolon after init_nrom_ops. -------------------------------------------------------------------
2001-03-06Update/correct copyright notices.Kevin Buettner1-1/+2
2000-12-15Replace free() with xfree().Kevin Buettner1-6/+6
2000-11-10Protoization.Kevin Buettner1-11/+5
2000-10-30 * eval.c (parse_and_eval_long): New function.David Taylor1-1/+1
* value.h: Declare it. * breakpoint.c (breakpoints_info, maintenance_info_breakpoints): Call parse_and_eval_long, not parse_and_eval_address. * command.c (do_setshow_command): Ditto. * infcmd.c (step_1, signal_command, continue_command): Ditto. * infrun.c (signals_info): Ditto. * stack.c (set_backtrace_limit_command, backtrace_command_1, up_silently_base, down_silently_base): Ditto. * tracepoints.c (tracepoints_info, trace_find_command, trace_find_tracepoint_command): Ditto. * valprint.c (set_radix): Ditto. * values.c (show_values): Ditto.
2000-07-30Protoization.Kevin Buettner1-116/+47
2000-07-17Cast integers into pointers before converting them into canonicalAndrew Cagney1-1/+30
addresses.
2000-06-092000-06-08 Fernando Nasser <fnasser@cygnus.com>Fernando Nasser1-0/+1
* values.c (value_primitive_field): Copy VALUE_REGNO as well. With typed registers we may have the location information in this field, in addition to VALUE_ADDRESS (which was already being copied).
2000-05-28PARAMS removal.Kevin Buettner1-6/+5
2000-04-19Bring RETURN_VALUE_ON_STACK under gdbarch's control.Jim Blandy1-7/+0
* gdbarch.sh (RETURN_VALUE_ON_STACK): New entry. * gdbarch.c, gdbarch.h: Regenerated. * arch-utils.c (default_return_value_on_stack): New function. * arch-utils.h (default_return_value_on_stack): New declaration. * values.c (RETURN_VALUE_ON_STACK): Delete default definition.
2000-04-14* gdbarch.sh (POINTER_TO_ADDRESS, ADDRESS_TO_POINTER): Two newJim Blandy1-6/+18
functions which architectures can redefine, defaulting to generic_pointer_to_address and generic_address_to_pointer. * findvar.c (extract_typed_address, store_typed_address, generic_pointer_to_address, generic_address_to_pointer): New functions. (POINTER_TO_ADDRESS, ADDRESS_TO_POINTER): Provide default definitions. (extract_address, store_address): Doc fixes. * values.c (value_as_pointer): Doc fix. (value_from_pointer): New function. * defs.h (extract_typed_address, store_typed_address): New declarations. * inferior.h (generic_address_to_pointer, generic_pointer_to_address): New declarations. * value.h (value_from_pointer): New declaration. * ax-gdb.c (const_var_ref): Use value_from_pointer, not value_from_longest. * blockframe.c (generic_push_dummy_frame): Use read_pc and read_sp, not read_register. * c-valprint.c (c_val_print): Use extract_typed_address instead of extract_address to extract vtable entries and references. * cp-valprint.c (cp_print_value_fields): Use value_from_pointer instead of value_from_longest to extract the vtable's address. * eval.c (evaluate_subexp_standard): Use value_from_pointer instead of value_from_longest to compute `this', and for doing pointer-to-member dereferencing. * findvar.c (read_register): Use extract_unsigned_integer, not extract_address. (read_var_value): Use store_typed_address instead of store_address for building label values. (locate_var_value): Use value_from_pointer instead of value_from_longest. * hppa-tdep.c (find_stub_with_shl_get): Use value_from_pointer, instead of value_from_longest, to build arguments to __d_shl_get. * printcmd.c (set_next_address): Use value_from_pointer, not value_from_longest. (x_command): Use value_from_pointer, not value_from_longest. * tracepoint.c (set_traceframe_context): Use value_from_pointer, not value_from_longest. * valarith.c (value_add, value_sub): Use value_from_pointer, not value_from_longest. * valops.c (find_function_in_inferior, value_coerce_array, value_coerce_function, value_addr, hand_function_call): Same. * value.h (COERCE_REF): Use unpack_pointer, not unpack_long. * values.c (unpack_long): Use extract_typed_address to produce addresses from pointers and references, not extract_address. (value_from_longest): Use store_typed_address instead of store_address to produce pointer and reference values.
2000-04-04C++ changes for 5.0, finally committed.Daniel Berlin1-68/+42
2000-03-212000-03-20 Eli Zaretskii <eliz@is.elta.co.il>Michael Snyder1-0/+2
* breakpoint.c (insert_breakpoints, remove_breakpoint) (bpstat_stop_status, can_use_hardware_watchpoint): Don't insert, remove, or check status of hardware watchpoints for entire structs and arrays unless the user explicitly asked to watch that struct or array. (insert_breakpoints): Try to insert watchpoints for all the values on the value chain, even if some of them fail to insert. * values.c (value_primitive_field): Set the offset in struct value we return when the field is a packed bitfield.
1999-09-09import gdb-1999-09-08 snapshotStan Shebs1-1/+0
1999-07-07import gdb-1999-07-07 post reformatJason Molenda1-184/+186
1999-06-14import gdb-1999-06-14 snapshotJason Molenda1-0/+26
1999-06-01import gdb-1999-06-01 snapshotJason Molenda1-8/+8
1999-04-26import gdb-19990422 snapshotStan Shebs1-5/+4
1999-04-16Initial creation of sourceware repositorygdb-4_18-branchpointStan Shebs1-0/+1623
1999-04-16Initial creation of sourceware repositoryStan Shebs1-1623/+0
1999-01-18 * values.c (value_virtual_fn_field): Clear the pointed-toMark Alexander1-1/+3
offset when casting to the base class.
1998-12-31 * value.c (value_virtual_fn_field): Handle the situation whereMark Alexander1-9/+25
vtbl is a pointer to a structure instead of a pointer to an array.
1998-12-28hp merge changes -- too numerous to mention here; see ChangeLog andDavid Taylor1-73/+204
ChangeLog-gdbtk for details.
1998-12-28revert change 1.104 --> 1.105. sigh. this reversal breaks 18470. doubleDavid Taylor1-25/+9
sigh. this is to 'fix' a conflict with hp merge changes that are about to go in.
1998-12-21Fix for PR 18470:Mark Alexander1-9/+25
* value.c (value_virtual_fn_field): Handle the situation where vtbl is a pointer to a structure instead of a pointer to an array.
1998-11-23CARP: Convert macro definitions of USE_STRUCT_CONVENTION into targetAndrew Cagney1-8/+15
specific functions.
1998-10-141998-10-14 Jason Molenda (jsm@bugshack.cygnus.com)Jason Molenda1-2/+6
* defs.h: Move _initialize_printcmd, _initialize_stack, _initialize_blockframe out of here and in to their respective .c files. * blockframe.c: Move _initialize_blockframe prototype to here. * printcmd.c: Move _initialize_printcmd prototype to here. * stack.c: Move _initialize_stack prototype to here. * source.c, symtab.h: Move _initialize_source prototype to the .c file. * values.c, value.h: Move _initialize_values prototype to the .c file. * gdbthread.h, thread.c: Move _initialize_thread prototype to the .c file. * breakpoint.c, breakpoint.h: Move _initialize_breakpoint prototype to the .c file. * abug-rom.c alpha-nat.c alpha-tdep.c annotate.c ax-gdb.c bcache.c: Standardize comments for the prototype section of these files. * configure.in: Look in libc for wctype before looking for it in libc. The last one is to fix the GNU ld (~2.9.1) + Solaris 2.6 interaction problem where an empty stub library (libw) causes a core dump when we call vasprintf (e.g. `info br') in the final linked gdb.
1998-10-02 * target.c (target_xfer_memory): Handle requests with zeroPeter Schauer1-3/+6
transfer length right away. * values.c (unpack_double): Set up code, length and signedness of type _after_ checking for typedef.
1998-06-16* PR 15693 fix.Frank Ch. Eigler1-1/+4
Wed Jun 10 18:04:35 1998 Frank Ch. Eigler <fche@cygnus.com> * gdbtypes.c (get_discrete_bounds): Assign unsigned type flag for all-positive enum. (create_set_type): Ditto for all-positive set values. * values.c (unpack_field_as_long): Check for typedef in struct field unpacking.
1998-04-20Mon Apr 20 15:35:03 1998 Philippe De Muyter <phdm@macqel.be>Jason Molenda1-1/+1
* coffread.c (decode_base_type): Treat a long field with size greater than TARGET_LONG_BIT as long long. * values.c (value_from_longest): Print code value in error message.