* ieee.c (struct ieee_var): Remove variable field. Add kind
[platform/upstream/binutils.git] / binutils / ChangeLog
index f175405..6050888 100644 (file)
@@ -1,5 +1,115 @@
+Wed Jan 24 12:06:05 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * ieee.c (struct ieee_var): Remove variable field.  Add kind
+       field, and define some enum constants for it.
+       (parse_ieee_ty): Set kind field of variable for 'x' and 'X' types.
+       (parse_ieee_atn): Make an indirect slot for an external variable,
+       although we otherwise don't record it.  Set kind field rather than
+       variable field of pvar.
+       (ieee_read_cxx_class): Try to get the type of a static member.
+       (ieee_read_reference): Check kind field rather than variable
+       field.
+
+Tue Jan 23 15:54:18 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * ieee.c: Various changes to handle reading C++ reference type
+       information.
+
+       * debug.h (enum debug_var_kind): Add DEBUG_VAR_ILLEGAL.
+       (enum debug_parm_kind): Add DEBUG_PARM_ILLEGAL.
+       * debug.c (debug_get_parameter_types): Handle DEBUG_KIND_FUNCTION.
+
+       * ieee.c: Various changes to write out definitions of C++ classes.
+
+       * debug.c (debug_append_filename): Remove.
+       * debug.h (debug_append_filename): Don't declare.
+
+       * stabs.c (struct stab_handle): Remove last_type field.  Add
+       so_string and so_value fields.
+       (finish_stab): Call stab_emit_pending_vars before calling
+       debug_end_function.  Don't warn about pending variables.
+       (parse_stab): Accumulate N_SO strings until a non N_SO symbol is
+       seen, rather than calling debug_append_filename.  Call
+       stab_emit_pending_vars before calling debug_end_function.  Don't
+       set info->last_type.
+
+Tue Jan 23 09:53:54 1996  Doug Evans  <dje@charmed.cygnus.com>
+
+       * objdump.c (disassemble_data): Handle unknown endianness.
+       Pass fprintf to INIT_DISASSEMBLE_INFO.
+
+Mon Jan 22 16:46:43 1996  Doug Evans  <dje@charmed.cygnus.com>
+
+       Add new option --show-raw-insn.
+       * objdump.c (show_raw_insn): New global.
+       (usage): Update.
+       (long_options): Update.
+       (disassemble_data): Set disasm_info.flags if --show-raw-insn.
+
+       * objdump.c (disassemble_data): Set new arch,mach,endian fields in
+       disasm_info.
+
+Mon Jan 22 19:29:36 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * ieee.c: Extensive changes to pass a single info argument around
+       in the reading routines, rather than several arguments.  Add code
+       to read C++ debugging records.
+
+       * debug.h (debug_get_type_size): Declare.
+       (debug_get_field_name): Declare.
+       (debug_get_field_bitpos): Declare.
+       (debug_get_field_bitsize): Declare.
+       (debug_get_field_visibility): Declare.
+       (debug_get_field_physname): Declare.
+       * debug.c (debug_get_real_type): Handle DEBUG_KIND_TAGGED.
+       (debug_get_type_size): New function.
+       (debug_get_field_name): New function.
+       (debug_get_field_bitpos): New function.
+       (debug_get_field_bitsize): New function.
+       (debug_get_field_visibility): New function.
+       (debug_get_field_physname): New function.
+       (debug_write_type): Make sure we pass the real kind, not INDIRECT,
+       to tag_type.  Pass the name recursively for INDIRECT.
+
 Fri Jan 19 12:31:57 1996  Ian Lance Taylor  <ian@cygnus.com>
 
+       * debug.h (struct debug_write_fns): Remove ellipsis_type.  Add int
+       and boolean parameters to function_type.  Add boolean parameter to
+       method_type.
+       (debug_make_ellipsis_type): Don't declare.
+       (debug_make_function_type): Add debug_type * and boolean
+       parameters.  Change all callers.
+       (debug_make_method_type): Add boolean parameter.  Change all
+       callers.
+       (debug_get_parameter_types): Add boolean * parameter.  Change all
+       callers.
+       (debug_get_target_type): Declare.
+       * debug.c (struct debug_function_type): Add fields arg_types and
+       varargs.
+       (struct debug_method_type): Add field varargs.
+       (debug_ellipsis_type, ELLIPSIS_P): Remove.
+       (debug_make_ellipsis_type): Remove.
+       (debug_make_function_type): Add arg_types and varargs parameters.
+       (debug_make_method_type): Add varargs parameter.
+       (debug_get_parameter_types): Add pvarargs parameter.
+       (debug_get_target_type): New function.
+       (debug_write_type): In case DEBUG_KIND_FUNCTION, push argument
+       types and pass count to function_type.  In DEBUG_KIND_METHOD, use
+       a signed int for the count, don't call ellipsis_type, and pass
+       varargs to method_type.
+       * stabs.c (struct stab_demangle_info): Add varargs field.
+       (stab_demangle_argtypes): Add pvarargs parameter.  Change all
+       callers.
+       (stab_demangle_args): Likewise.
+       (stab_demangle_type): In case 'F', pick up argument types.
+       * prdbg.c (pr_ellipsis_type): Remove.
+       (pr_function_type): Add argcount and varargs parameters.
+       (pr_method_type): Add varargs parameter.
+       * ieee.c (ieee_ellipsis_type): Remove.
+       (ieee_function_type): Add argcount and varargs parameters.
+       (ieee_method_type): Add varargs parameter.  Remove most of
+       function body, and just call ieee_function_type.
+
        * stabs.c: Include "demangle.h".  Added several new static
        functions not listed below to demangle argument types; they are
        all called via stab_demangle_argtypes.