aboutsummaryrefslogtreecommitdiff
path: root/gdb/value.h
AgeCommit message (Collapse)AuthorFilesLines
2002-07-03* infcmd.c (print_return_value): Remove compatibility code callingAndrew Cagney1-1/+4
deprecated_grub_regcache_for_registers. * values.c: Include "regcache.h". (value_being_returned): Update. Use deprecated_grub_regcache_for_registers to extract the register buffer address. * value.h (value_being_returned): Change ``retbuf'' parameter to a ``struct regcache''. * Makefile.in (values.o): Add dependency on $(regcache_h). * inferior.h (run_stack_dummy): Change type of second parameter to a ``struct regcache''. * valops.c (hand_function_call): Change type of retbuf to ``struct regcache''. Allocate using regcache_xmalloc, clean using make_cleanup_regcache_xfree. * infcmd.c (run_stack_dummy): Update. Use regcache_cpu_no_passthrough instead of memcpy to copy the buffer. * regcache.c (do_regcache_xfree): New function. (make_cleanup_regcache_xfree): New function. * regcache.h (make_cleanup_regcache_xfree): Declare.
2002-05-122005-05-11 Daniel Jacobowitz <drow@mvista.com>Daniel Jacobowitz1-1/+1
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-112002-05-11 Daniel Jacobowitz <drow@mvista.com>Daniel Jacobowitz1-3/+0
* TODO: Remove value_headof/value_from_vtable_info comment. * printcmd.c (print_command_1): Don't call value_from_vtable_info. * values.c (value_headof, value_from_vtable_info): Delete. * value.h (value_from_vtable_info): Delete prototype.
2002-03-17fix tipoAndrew Cagney1-1/+1
2002-03-17* value.h (struct value): Delete field ``substring_addr''. ChangeAndrew Cagney1-11/+4
aligner fields to force_doublest_align, force_longest_align, force_core_addr_align and force_pointer_align.
2002-03-16* eval.c (evaluate_subexp_standard): Pass ``selected_frame'' toAndrew Cagney1-1/+2
value_of_register. * findvar.c (value_of_register): Add ``frame'' parameter. Pass to get_saved_register. * value.h (value_of_register): Update.
2002-01-04Move value_ptr typedef to gdbtk-wrapper from value.h.Andrew Cagney1-2/+0
2002-01-042002-01-04 Daniel Jacobowitz <drow@mvista.com>Daniel Jacobowitz1-2/+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-042002-01-04 Daniel Jacobowitz <drow@mvista.com>Daniel Jacobowitz1-1/+1
* 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-115/+122
2001-10-16* value.h (value_as_address): Rename value_as_pointer.Andrew Cagney1-1/+1
* 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-08-01* defs.h (HOST_FLOAT_FORMAT, HOST_DOUBLE_FORMAT)Andrew Cagney1-0/+2
(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-05-21* value.h (struct value): Doc fix, and rearrange members to placeJim Blandy1-21/+45
them near their explanations.
2001-05-192001-05-07 Daniel Berlin <dan@cgsoftware.com>Daniel Berlin1-0/+2
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-5/+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-06Update/correct copyright notices.Kevin Buettner1-1/+2
2001-03-01Create new file regcache.h. Update all uses.Andrew Cagney1-34/+0
2001-02-22Move get_saved_register to frame.h.Andrew Cagney1-5/+0
2001-02-02Changed free() to xfree() where appropriate. Also changed Copyright toJohn R. Moore1-2/+3
include 2001.
2001-01-09 * regcache.c (set_register_cached, register_buffer,Nicholas Duffek1-0/+4
real_register, pseudo_register fetch_register, store_register): New functions. (register_changed, read_relative_register_raw_bytes_for_frame, registers_changed, registers_fetched, read_register_bytes, read_register_gen, write_register_gen, read_register, read_signed_register, write_register, supply_register): Replace register_valid[] with register_cached() and set_register_cached(). (read_register_bytes, read_register_gen, write_register_gen, read_register, read_signed_register, write_register, supply_register): Replace registers[] with register_buffer(). (read_register_bytes, read_register_gen, read_register, read_signed_register): Call fetch_register(). (write_register_gen, write_register): Call real_register() and store_register(). (write_register_bytes): Call store_register(). * value.h (set_register_cached, register_buffer): Prototype. * remote.c (remote_fetch_registers): Allocate regs[] with a run-time size. Replace register_valid[] with set_register_cached(). (store_register_using_P, remote_store_registers): Replace registers[] with register_buffer().
2001-01-09 * regcache.c: Change "write-back" comment to "write-through".Nicholas Duffek1-10/+10
Change "regno" to "regnum". (read_register, read_signed_register): Remove "raw" from return value description. (supply_register): Spelling fix. * value.h: Change "regno" to "regnum".
2000-10-30 * eval.c (parse_and_eval_long): New function.David Taylor1-0/+2
* 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-09-042000-09-04 Pierre Muller <muller@ics.u-strasbg.fr>Pierre Muller1-1/+1
* c-typeprint.c (c_typedef_print): remove (replaced by typedef_print in typeprint.c). * typeprint.c (typedef_print): new function. (old c_typedef_print function with pascal language support added). * value.h (c_printdef_print): removed. (typedef_print): declare. * symtab.c (print_symbol_info): call to c_typedef_print replaced by call to typedef_print.
2000-08-25Fri Aug 25 16:57:05 2000 David Taylor <taylor@texas.cygnus.com>David Taylor1-0/+2
* regcache.c (register_changed): New function. * value.h: Declare it.
2000-08-16 * value.h (struct value) <lazy>: Add a comment about its use forEli Zaretskii1-1/+12
watchpoints.
2000-07-11Add read_signed_register{,_pid}(). Change return type ofAndrew Cagney1-2/+8
read_register{,_pid}() to ULONGEST.
2000-07-102000-07-07 Michael Snyder <msnyder@cleaver.cygnus.com>Michael Snyder1-0/+2
* findvar.c (_initialize_findvar, build_findvar, write_fp, read_fp, generic_target_write_fp, generic_target_read_fp, write_sp, read_sp, generic_target_write_sp, generic_target_read_sp, write_pc, read_pc, generic_target_write_pc, generic_target_read_pc, write_pc_pid, read_pc_pid, supply_register, write_register_pid, write_register, read_register_pid, read_register, write_register_bytes, read_register_bytes, write_register_gen, read_register_gen, registers_fetched, registers_changed, find_saved_register, read_relative_register_raw_bytes, default_get_saved_register, read_relative_register_raw_bytes_for_frame, get_saved_register): Move from this file into new file regcache.c. (register_valid, registers_pid, registers): Ditto. * regcache.c: New file to hold the register cache. (register_cached): New function to read register_valid array. * value.h (register_cached): Declare. * defs.h (default_get_saved_register): Delete decl of static function. * Makefile.in: Add regcache module.
2000-05-28PARAMS removal.Kevin Buettner1-169/+154
2000-04-272000-04-27 Michael Snyder <msnyder@seadog.cygnus.com>Michael Snyder1-0/+3
* jv-valprint.c (java_val_print): Add arg declaration, fix compiler warning. * corelow.c (core_open): Call set_gdbarch_from_file so that gdbarch becomes aware of the architecture encoded in the corefile. * findvar.c (write_register_gen): Export this useful interface. * value.h (write_register_gen): Declare.
2000-04-14* gdbarch.sh (POINTER_TO_ADDRESS, ADDRESS_TO_POINTER): Two newJim Blandy1-2/+4
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-02-22Bring COERCE_FLOAT_TO_DOUBLE under gdbarch's control.Jim Blandy1-0/+4
* valops.c (COERCE_FLOAT_TO_DOUBLE): Rework definition to be more function-like. (default_coerce_float_to_double, standard_coerce_float_to_double): New functions. (value_arg_coerce): Adjust for new definition. * value.h (default_coerce_float_to_double, standard_coerce_float_to_double): New declarations for the above. * gdbarch.sh (coerce_float_to_double): New entry, replacing macro. * gdbarch.c, gdbarch.h: Regenerated. * tm-alpha.h, tm-fr30.h, tm-m32r.h, tm-mips.h, tm-hppa.h, tm-rs6000.h, tm-sh.h, tm-sparc.h (COERCE_FLOAT_TO_DOUBLE): Change definitions. * mips-tdep.c (mips_coerce_float_to_double): Supply our own custom function here. (mips_gdbarch_init): Install that as our coerce_float_to_double function.
2000-02-02import gdb-2000-02-01 snapshotJason Molenda1-28/+25
1999-12-07import gdb-1999-12-06 snapshotJason Molenda1-3/+7
1999-08-31import gdb-1999-08-30 snapshotJason Molenda1-2/+0
1999-08-23import gdb-1999-08-23 snapshotJason Molenda1-17/+0
1999-07-07import gdb-1999-07-07 post reformatJason Molenda1-119/+126
1999-06-14import gdb-1999-06-14 snapshotJason Molenda1-0/+2
1999-06-01import gdb-1999-06-01 snapshotJason Molenda1-1/+1
1999-05-25import gdb-1999-05-25 snapshotJason Molenda1-0/+5
1999-04-26import gdb-19990422 snapshotStan Shebs1-7/+8
1999-04-16Initial creation of sourceware repositorygdb-4_18-branchpointStan Shebs1-0/+568
1999-04-16Initial creation of sourceware repositoryStan Shebs1-568/+0
1998-12-28hp merge changes -- too numerous to mention here; see ChangeLog andDavid Taylor1-7/+62
ChangeLog-gdbtk for details.
1998-10-141998-10-13 Jason Molenda (jsm@bugshack.cygnus.com)Jason Molenda1-11/+24
* blockframe.c (find_pc_sect_partial_function): Add braces to avoid possible nested-if confusion. * breakpoint.c (breakpoint_here_p): Ditto. (breakpoint_inserted_here_p): Ditto. (breakpoint_thread_match): Ditto. * gnu-regex.c: Define _REGEX_RE_COMP only if it isn't already defined. * gnu-regex.h: Define _REGEX_RE_COMP to pick up old compatability prototypes. * symtab.h: Add prototype for _initialize_source. * value.h: Add prototype for _initialize_value. * defs.h: Include sys/types.h or stddef.h to get size_t. (make_cleanup): Add make_cleanup_func typedef and switch to using a prototype for this function. (mfree): Add prototypes for mmalloc, mrealloc, mfree if we aren't using mmalloc. * ax-gdb.c breakpoint.c coffread.c corelow.c dbxread.c dwarf2read.c dwarfread.c elfread.c eval.c exec.c gdbtk-cmds.c gdbtk.c infcmd.c infrun.c mipsread.c nlmread.c os9kread.c parse.c printcmd.c symfile.c symmisc.c symtab.c thread.c top.c tracepoint.c typeprint.c valops.c: Cast parameters passed to make_cleanup to use the new make_cleanup_func typedef. More warning cleanups. There are still a bunch of places where the first argument to make_cleanup is not cast to (make_cleanup_func); these are either due to the function fitting the make_cleanup_func specification already (e.g. free()) or they are in files that weren't compiled when I did my make on a Linux native system. Bwahahaha. You can see them like this: grep make_cleanup\ * | grep -v make_cleanup_func I'll surely go back and clean up the remaining suspicious calls in GDB one of these days. :-)
1996-09-04 * ch-exp.c (parse_tuple_element): Allow (*): for array tuplesWilfried Moser1-29/+35
if we have a type. * eval.c (evaluate_subexp_standard): In case of OP_ARRAY: check number of args against bounds of array to avoid memory corruption. * value.h (COERCE_REF): Do a CHECK_TYPEDEF in case we get a TYPE_CODE_TYPEDEF.
1995-02-12 * valops.c (value_arg_coerce): Now takes param_type argument.Per Bothner1-30/+1
(call_function_by_hand): Convert arguments with value_arg_coerce early, and overwrite original args with converted args. No longer need multiple calls to value_arg_coerce. (value_arg_push): Removed. * hppa-tdep.c (hppa_push_arguments): No longer call value_arg_coerce. * mips-tdep.c (mips_push_arguments): Likewise. * alpha-tdep.c (alpha_push_arguments): Likewise. * rs6000-tdep.c (push_arguments, ran_out_of_registers_for_arguments): Likewise. * value.h (value_arg_coerce): Remove declaration. (It's now static.) * valops.c (value_cast): Do COERCE_VARYING_ARRAY after COERCE_REF.
1995-02-01 * ch-exp.y (value_string_element, string_primitive_value,Per Bothner1-2/+10
start_element, left_element, right_element, slice_size, lower_element, upper_element, first_element): Removed. (value_string_slice, value_array_slice): Replaced by ... (slice): New non-terminal, with working slice support. (primitive_value_lparen, rparen): New non-terminals. (maybe_tuple_elements): New non-terminal, to allow empty tuples. (idtokentab): Added "up". * value.h (COERCE_VARYING_ARRAY): New macro. * valarith.c (value_subscript): Use it. * valops.c (value_cast): Likewise. Also, do nothing if already correct type, and allow converting from/to range to/from scalar. * valops.c, value.h (varying_to_slice, value_slice): New functions. * eval.c (OP_ARRAY): Add cast for array element. * expression.h (TERNOP_SLICE, TERNOP_SLICE_COUNT): New exp_opcodes. * valops.c (chill_varying_type): Moved function frp, here ... * gdbtypes.c (chill_varying_type), gdbtypes.h: ... to here. * parse.c (length_of_subexp, prefixify_subexp): Add support for TERNOP_SLICE, TERNOP_SLICE_COUNT. * expprint.c (print_subexp, dump_expression): Likewise. * eval.c (evaluate_subexp): Likewise. * eval.c (evaluate_subexp case MULTI_SUBSCRIPT): Don't call value_x_binop on a Chill varying string.
1995-01-23 Add support for Chill bitstring literals (e.h. H'FF00').Per Bothner1-2/+3
* ch-exp.y (match_bitstring_literal): Fix for proper endianness. * expprint.c (print_subexp): Don't call error on OP_BITSTRING, just print B'<unimlemented>'. * gdbtypes.c (create_set_type): Fix bug in length calculation. * valops.c, value.h (value_bitstring): New function. * eval.c (evaluate_subexp): Implement support for OP_BITSTRING. * ch-typeprint.c (chill_type_print_base): For TYPE_CODE_FUNC, check that return type is non-void, and print in proper Chill syntax.
1994-12-20 * value.h: Remove obsolete comments about FRAME vs structJim Kingdon1-11/+15
frame_info *.
1994-08-19 Initial Fortran language support, adapted from work by Farooq ButtStan Shebs1-0/+32
(fmbutt@engage.sps.mot.com). * Makefile.in: Add Fortran-related files and dependencies. * defs.h (language_fortran): New language enum. * language.h (_LANG_fortran): Define. (MAX_FORTRAN_DIMS): Define. * expression.h: Reformat to standard. (MULTI_F77_SUBSCRIPT, OP_F77_UNDETERMINED_ARGLIST, OP_F77_LITERAL_COMPLEX, OP_F77_SUBSTR): New expression opcodes. * gdbtypes.h (TYPE_CODE_COMPLEX, TYPE_CODE_LITERAL_COMPLEX, TYPE_CODE_LITERAL_STRING): New type codes. (type): New fields upper_bound_type and lower_bound_type. (TYPE_ARRAY_UPPER_BOUND_TYPE, TYPE_ARRAY_LOWER_BOUND_TYPE, TYPE_ARRAY_UPPER_BOUND_VALUE, TYPE_ARRAY_LOWER_BOUND_VALUE): New macros. (builtin_type_f_character, etc): Declare. * value.h (VALUE_LITERAL_DATA, VALUE_SUBSTRING_START): Define. * f-exp.y: New file, Fortran expression grammar. * f-lang.c: New file, Fortran language support functions. * f-lang.h: New file, Fortran language support declarations. * f-typeprint.c: New file, Fortran type printing. * f-valprint.c: New file, Fortran value printing. * eval.c (evaluate_subexp): Add code for new expression opcodes, fix wording of error message. * gdbtypes.c (f77_create_literal_complex_type, f77_create_literal_string_type): New functions. * language.c (set_language_command): Add Fortran info. (calc_f77_array_dims): New function. * parse.c (length_of_subexp, prefixify_subexp): Add cases for new expression opcodes. * symfile.c (deduce_language_from_filename): Recognize .f and .F as Fortran source files. * valops.c (f77_value_literal_string, f77_value_substring, f77_value_literal_complex): New functions.