Andrew Beers' changes for Modula-2 support.
authorJohn Gilmore <gnu@cygnus>
Thu, 19 Sep 1991 11:48:49 +0000 (11:48 +0000)
committerJohn Gilmore <gnu@cygnus>
Thu, 19 Sep 1991 11:48:49 +0000 (11:48 +0000)
gdb/ChangeLog

index 72fd87622d3d708d9c95d26908f508074dbd6154..f25125c60c3520f919bd96c7a6076781f66dc7a4 100644 (file)
@@ -1,3 +1,656 @@
+Wed Sep 18 15:55:51 1991  John Gilmore  (gnu at cygnus.com)
+
+       Merge multiple-language support, and partial Modula-2 support,
+       from Andrew Beers <beers@cs.buffalo.edu>.
+
+       * i387-tdep.c:  New file, consolidates most 80387 support,
+       and eliminates host dependency on double<->extended conversions.
+       * i386-xdep.c, symm-xdep.c:  Remove most 387 support.
+       * xconfig/i386{sco,v,v-g,v32,v32-g}:  Now need i387-tdep.o.
+
+       * symfile.c (allocate_symtab):  New fn, consolidates the work
+       of allocating and initializing a new struct symtab.  Set the
+       language of the symtab based on its filename extension.
+       * symfile.h:  Declare it.
+       * mipsread.c (new_symtab):  Use it.  Minor formatting changes.
+       * dbxread.c (end_symtab):  Use it.
+
+       * mipsread.c (parse_symbol, case stParam and stProc):  Add #if 0'd
+       code for saving types of parameters with each function definition.
+       * dbxread.c (define_symbol, function and parameter cases):  Ditto.
+       (read_dbx_symtab, case N_DEFD):  Ignore.
+       (read_enum_type):  Recognize FALSE/TRUE enum as Modula-2 BOOLEAN.
+       (read_range_type):  Rename MAX_OF_TYPE to MAX_OF_C_TYPE, etc.
+       #if 0 out its uses, though, since they set a dead value.
+       * coffread.c (end_symtab):  Use allocate_symtab.
+       (process_coff_symbol):  #if 0'd for functions and params as above.
+       (read_enum_type):  Recognize Modula-2 BOOLEAN.
+       * symtab.c (add_param_to_type):  #if 0'd function to add a
+       parameter type to a function type's field list.
+
+       * defs.h (local_hex_format, local_hex_string, *_custom):  Add.
+       * i386-xdep.c, pyr-tdep.c, pyr-xdep.c, remote-vx.c, solib.c,
+       source.c, symfile.c, dbxread.c, breakpoint.c, core.c, exec.c,
+       i387-tdep.c, infcmd.c, mips-tdep.c, stack.c, printcmd.c:  Output
+       hex with local_hex_string for Modula-2 support.
+
+       * breakpoint.c (breakpoint_cond_eval):  Use new value_true to test
+       breakpoint condition language-independently.
+
+       * parse.c:  New file with the common code remains of expread.y.
+       * parser-defs.h:  New file with common declarations from expread.y.
+       * c-exp.y:  New file with the C parser from expread.y, and other
+       language-specific information.
+       * m2-exp.y:  New file with the Modula-2 parser and etc.
+       * expread.y, expread.tab.c:  Remove.
+       * breakpoint.c, eval.c, printcmd.c, expression.h:  Use
+       parse_expression and parse_exp_1 rather than parse_c_expression
+       and parse_c_1.
+
+       * symtab.h (enum languages):  Move to defs.h.
+       (enum type_code):  Add TYPE_CODE_CHAR and TYPE_CODE_BOOL.
+       Declare Modula-2 builtin types.
+       Add MAX_OF_TYPE and MIN_OF_TYPE macros.
+
+       * symtab.c (_initialize_symtab):  Remove builtin type
+       definition and initialization to *-exp.y.  
+       (lookup_primitive_typename):  Use language-dependent vector.
+       (lookup_typename):  Fix bug, make it work if primitive typename.
+       (lookup_unsigned_typename):  Call above.
+       (create_array_type):  Set up range type for array index.
+       (list_symbols):  Call typedef_print to print typedefs.
+          (Currently #ifndef FIXME'd out awaiting integration.)
+
+       * values.c (unpack_long, value_from_longest):  Handle
+       TYPE_CODE_BOOL and TYPE_CODE_CHAR.
+
+       * expression.h (enum exp_opcode):  Add Modula-2 specific opcodes.
+       * expprint.c:  Look up expression opcodes in language-specific
+       table, based on expression's language.  Handle some Modula-2
+       specific opcodes.
+
+       * stack.c (frame_info):  Print language of stack frame.
+       (select_frame):  Also select language, if in auto-mode.
+       (get_frame_language):  New subroutine.
+       * main.c (execute_command):  Warn as language changes automatically.
+
+       * printcmd.c (ptype_command):  Parse types using the language
+       parser, both for language-independence, and so that scopes can
+       be specified.
+
+       * language.h, language.c:  New files for language-specific macros,
+       declarations, and definitions.
+
+       Misc fixes:
+
+       * main.c (main):  If error() is called during early
+       initialization, print its message and then exit(1) from GDB.
+
+       * valprint.c (type_print_base):  Avoid printing garbage for ints
+       of unusual sizes.
+       (_initialize_valprint):  Warn about host/target size assumption;
+       improve long long support slightly.     
+       
+       * convex-tdep.c (comm_registers_info):  Avoid parsing decimal and
+       hex -- let parse_and_eval_address do it.
+
+       * doc/gdbint.texinfo (Languages):  Doc how to add a language.
+
+       * Makefile.in:  Cope with new files and removed files.
+
+Tue Sep 17 08:37:41 1991  John Gilmore  (gnu at cygint.cygnus.com)
+
+       Add Andrew Beers' changes for Modula-2 support.  His ChangeLog
+       entries are enclosed herein:
+
+Mon Jun  3 17:05:45 EDT 1991
+
+     m2-exp.y       Created.  Tested outside of GDB for a few days.  Proper
+                    operators were added, C specific operators and tokens
+                    removed.  yylex() revamped to some extent.  Still things
+                    missing from the grammar, such as sets.
+                    Tested for two weeks in GDB v3.5.
+
+Tue Jun 11 17:23:48 EDT 1991
+
+     m2-exp.y       Added boolean constants TRUE and FALSE to the grammar
+                    so they are built-in.  Sort of a hack.
+
+Fri Jun 14 12:53:51 EDT 1991
+
+     m2-exp.y       Added range checking for numeric constants.  Any numeric
+                    constant is assumed to be of builtin type INTEGER unless:
+                    (1) it is octal or hexadecimal, in which case it is a
+                    CARDINAL; (2) it is too big to fit into an INTEGER, in
+                    which case it is a CARDINAL.
+     eval.c         Added simple range checking for +, -, and * on integers.
+                    Doesn't work very well for *, since 6 * 1,000,000,000 =
+                    1,705,032,704, which fails the simple test of result >=
+                    first_operand, no matter in what order the operands are.
+
+Tue Jun 18 14:11:30 EDT 1991
+
+     Broke the parser into parts, one containing the C grammar and the other
+     containing code to be shared by all of the grammars.
+
+     The following files no longer exist:
+
+          expread.y
+          expread.tab.c
+
+     The following files were added:
+
+          c-exp.y        (The C grammar)
+          m2-exp.y       (The Modula-2 grammar)
+          parser-code.c  (Code that is shared by the above grammar)
+          parser-code.h
+          parser-defs.h
+
+     Makefile.dist  Changed to reflect the above dependencies.  NOTE:  It is
+                    now necessary to use the Bison compiler compiler, since it
+                    will generate function/variable prefixes other than yy.
+
+Tue Jun 18 16:47:49 EDT 1991
+
+     symtab.[ch]    Added the external variable working_lang, than holds the
+                    value of the current working language.
+                    Added the ennumerated type language_mode, with the values
+                    language_auto and language_manual, the former meaning that
+                    GDB sets working_lang as needed, and the latter meaning
+                    that the value of working_lang is totally under user
+                    control.
+     symtab.[ch]    Added the Modula-2 pervasive types INTEGER, CARDINAL,
+                    REAL, BOOLEAN and CHAR.  Also added the type codes
+                    TYPE_CODE_BOOL and TYPE_CODE_CHAR.
+     utils.c        Added set_language_command and show_language_command to
+                    implement the GDB support commands "set language" and
+                    "show language".
+     expression.h   A number of identifiers were added to the type exp_opcode
+                    to facilitate Modula-2 builtin functions, integer
+                    division, and array indexing.
+
+Wed Jun 19 13:25:58 EDT 1991
+
+     language.h     Added the macro STRICT_TYPE, which evaluates to non-zero
+                    if the language specified by working_lang requires the use
+                    of strict typing of expressions.  Eventually, even this
+                    will be able to be changed by the user.
+                    Added the macro RANGE_CHECK, which evaluates to non-zero
+                    if the language specified by working_lang requires the
+                    checking of a value against the domain of its type.
+                    Eventually, even this will be able to be changed by the
+                    user.
+     language.[ch]  Predicates involving types (simple_type, ordered_type,
+                    same_type, integral_type, numeric_type, character_type,
+                    boolean_type, float_type) are added.  These predicates are
+                    based on the current value of working_lang, and are handy
+                    in type-checking.
+
+Wed Jun 19 15:39:34 EDT 1991
+
+     eval.c         Added the function type_array_rank which computes the rank
+                    of an array type.
+     valarith.c     Added the funtion value_bool, which when given a integer
+     value.h        value (ie. struct value *) as an argument, it returns a
+                    boolean value (ie.  struct value *) true if that integer
+                    is non-zero, and a boolean value false otherwise.
+     valprint.c     Added cases for TYPE_CODE_BOOL, so Modula-2 BOOLEAN values
+                    will print out properly.
+
+Wed Jun 19 16:36:34 EDT 1991
+
+     valops.c       Added the function value_capitalize, which returns it
+     value.h        argument capitalized if its argument is a lowercase
+                    letter, or the argument unchanged if its argument is not a
+                    letter.
+     valarith.c     Added the function range_check_p, which returns non-zero
+     value.h        if its value argument is between the integral bounds upper
+                    and lower.
+                    Added the function range_check_enum_p, which makes sure
+                    that its value argument is a valid member of the domain of
+                    its type argument.
+                    Added the function range_check_range_p, which makes sure
+                    its value argument lies between the upper and lower bounds
+                    of its type argument, which must be a ranged type.
+                    Added the function check_array_index, which range and type
+                    checks an index of an array.
+                    Added the function value_multi_subscript, which computes
+                    array[idx1,idx2...idxN], given a value array and an array
+                    of values representing indicies.
+     values.c       Changed value_from_long to work with TYPE_CODE_CHAR and
+                    unpack_long to work with TYPE_CODE_BOOL and
+                    TYPE_CODE_CHAR.
+
+Wed Jun 19 18:04:08 EDT 1991
+
+     symtab.c       Stored pervasive types in a structure and make
+                    lookup_pervasive_type() a lookup function that was based
+                    on working_lang.  If lookup_pervasive_type() returned
+                    non-zero, then that value was returned (a fix, since
+                    before it simply wouldn't return the pervasive type.)
+     language.h     Added the macro CAST_IS_CONVERSION, which evaluates to
+                    non-zero if the language specified by working_lang means
+                    "conversion" when it says "cast".
+     valops.c       Added the function value_real_cast(), which performs a
+     value.h        *cast*, not a *conversion*, which is what value_cast()
+                    does when it can.  In particular,
+                    value_cast(<float_type>,4) = 4.0, while
+                    value_real_cast(<float_type>,4) = some mess.
+     eval.c         Modula-2 builtin functions implemented:  ABS, CAP, CHR,
+     parser-code.c  FLOAT, HIGH, MAX, MIN, ODD, ORD, TRUNC, and VAL.  
+     expression.h   Added macros MAX_OF_TYPE and MIN_OF_TYPE to work with MAX
+                    and MIN on integral types.  *NOTE*: These are currently
+                    hardcoded to work only if there are 8 bits per storage
+                    unit.  FIXME.
+     eval.c         Made logical functions call value_bool to return a
+                    properly typed boolean value, based on working_lang.
+
+Thu Jun 20 11:55:27 EDT 1991
+
+     valprint.c     Types now print out in a Modula-2 fashion.  This works for
+                    the cases when the type is printed out step-by-step, that
+                    is, it doesn't work when the name of a structured type
+                    (which includes the keyword "struct", etc.)  is simply
+                    displayed.
+                    FIXME:  Perhaps this is bad.  Parts of it seem to kludgey,
+                    since type specifications in C and Modula-2 are very
+                    different.  The C printing of a type is very recursive,
+                    whereas in Modula-2 it is generally very simple.  C has
+                    type prefixes and suffixes, which have no real analogue in
+                    Modula-2.  Maybe type_print() should call a language
+                    specific type printer.  This is also advantageous if we
+                    compile GDB to exclude some of the languages.  We'll just
+                    leave those functions out.
+
+Thu Jun 20 16:57:10 EDT 1991
+
+     dbxread.c      When reading the complete symbol table in (via
+                    psymtab_to_symtab()), the number and types of function
+                    arguments are added to a function type.  define_symbol()
+                    calls add_param_to_type() to accomplish this.
+                    Assumption:  when we come across a function definition
+                    (N_FUN symbol with an 'f' or 'F' in the name), its
+                    arguments will appear before another function definition.
+                    When a function is found, a pointer to its type is placed
+                    in the global in_function_type.  Changes that
+                    add_param_to_type() makes are to this global.
+     valprint.c     The type of a function now includes (for Modula-2) the
+                    types of its parameters.
+     eval.c         Type checking and a check for the proper number of
+                    arguments is now done for function calls.  Not sure of the
+                    impact this has on C++ member function yet.
+
+Thu Jun 20 19:58:48 EDT 1991
+
+     valprint.c     Rewrote the type printer.  Broke it into two language
+                    specific parts, adding the functions type_print_m2() and
+                    type_print_m2_1().
+                    An unfortunate consequence is this:  if you debugging a C
+                    program in Modula-2 mode (why?), info types does not work
+                    well with regular expressions, since the types are printed
+                    out in Modula-2 terminology, but stored in C terminology.
+     language.[ch]  Added the functions new_type_last(), type_keyword(), and
+                    type_sep() to aid in the printing of typedefs.
+     symtab.c       Made the printing of typedefs as language independent as
+                    possible through calls to new_type_last(), type_keyword(),
+                    and type_sep().
+
+Fri Jun 21 11:50:26 EDT 1991
+
+     dbxread.c      Check all incoming ennumerated types.  If it looks like
+                    Modula-2's BOOLEAN type, then change the type_code of the
+                    type to TYPE_CODE_BOOL so we can process it as a boolean
+                    variable.
+     valprint.c     Replaced some of the 0x%x with calls to sprintf and
+                    hexformat() in val_print().
+     language.[ch]  Added the function hex_to_string(), which converts its
+                    integral argument to a hexadecimal number (format is
+                    language based) and returns the result as a string.
+
+Mon Jun 24 12:25:07 EDT 1991
+
+     valprint.c     Some functions call type_print_1() directly, instead of
+     value.h        using type_print(), so they can specify where (column) to
+                    print things.  Since type_print() takes care of language
+                    dependence, that needs to be called first.  Added a
+                    parameter depth to type_print() (so it is now like
+                    type_print_1).  Changed type_print to type_print_at, and
+                    made type_print a macro that passes a depth argument of
+                    zero.
+     symmisc.c      Changed all calls to type_print_1 to calls to
+                    type_print_at.
+     Makefile.dist  Made it possible to build GDB for a specific set of
+     depend         languages.  Do this by passing a definition for the macro
+                    LANGS to make.  LANGS should be a string containing a
+                    space-separated list of language names (ie. LANGS="c m2").
+                    The default is to build all languages.  Note that grammar
+                    files must follow the naming convention of <lang>-exp.y.
+     gdb.lang       This holds the current value of the LANGS macro.  It is
+                    examined every time make is called, and is updated if
+                    necessary.
+     eval.c         Added #ifdef _LANG_<lang> to these files.
+     expread.c      Still need to add them to dbxread.c and coffread.c.
+     main.c
+     source.c
+     symtab.c
+     utils.c
+     valarith.c
+     valprint.c
+
+Mon Jun 24 16:33:11 EDT 1991
+
+     language.[ch]  Added the functions hexformat_pre() and
+                    hex_to_string_pre(), which take a prefix argument to
+                    include in the format string.  Thus, hexformat_pre("08") will
+                    return "0x08x" (if the working language is language_c). 
+                    Made hexformat() and hex_to_string() calls to the above
+                    with "" as the prefix argument.
+
+     am29k-pinsn.c, arm-pinsn.c, breakpoint.c, convex-tdep.c, exec.c, core.c,
+     dbxread.c, i386-pinsn.c, i386-stub.c, i386-xdep.c, i960-pinsn.c,
+     infcmd.c, inflow.c, m68k-pinsn.c, m68k-stub.c, m88k-pinsn.c,
+     mips-pinsn.c, mips-tdep.c, ns32k-pinsn.c, printcmd.c, pyr-pinsn.c,
+     pyr-tdep.c, pyr-xdep.c, remote-vx.c, remote.c, solib.c, source.c,
+     stack.c, sun386-xdep.c, symfile.c, symm-xdep.c, symmisc.c, tahoe-pinsn.c,
+     valprint.c, vax-pinsn.c
+
+          Changed all occurences of 0x%[0-9]*l*x in printf format strings to
+          calls to hexformat() and hex_to_string().  Format strings without
+          the leading "0x" were ignored.
+
+     depend         Updated to take the above into account.
+
+
+Tue Jun 25 15:27:18 EDT 1991
+
+     symtab.h       Added the types range_mode_t, range_check_t, type_mode_t,
+                    and type_check_t to keep track of the current state of
+                    range and type checking.
+     main.c         Added the variables range_mode, range_check, type_mode,
+                    and type_check to record the current state of range and
+                    type checking.  Added initialization code to main().
+     language.h     Changed the macros STRICT_TYPE and RANGE_CHECK to examine
+                    the above variables.
+
+
+Tue Jun 25 17:57:08 EDT 1991
+
+     dbxread.c      process_one_symbol() updates the variable (enum language)
+                    source_lang based on the extension of the filename
+                    contained in the N_SO sybmol that started this symtab.
+                    When end_symtab() is called, the value of source_lang is
+                    put into the language field.
+     stack.c        select_frame() sets working_lang (and possibly type_check
+                    and range_check) to the language field of the symtab
+                    associated with the frame that is selected if working_mode
+                    is language_auto.  If working_mode is language_manual, a
+                    warning is printed and working_lang is not set.
+     language.c     Added the function set_type_range(), which sets the value of
+                    type_check and range_check (if their modes call for
+                    automatic setting) based on the current value of
+                    working_lang.  A non-zero argument will cause the current
+                    settings to be output.
+
+
+Wed Jun 26 14:51:40 EDT 1991
+
+     eval.c         Added range checks on assignment.
+     m2-exp.y       Added the grammar for sets to the language.  Currently,
+                    these do not do anything except print an error message.
+
+Wed Jun 26 17:01:04 EDT 1991
+
+     m2-exp.y       Added the ability for parse_number() to parse negative
+                    numbers.  A global flag is set upon encountering a unary
+                    minus.  This was done to make, for example, 1 parse as a
+                    CARDINAL, and not as an integer, per Wirth's examples in
+                    Programming in Modula-2 ed.4.
+     valprint.c     Added support for "set radix 2" by then setting
+                    output_format to 't'.
+     eval.c         Implemented range checking on subrange types.  Added calls
+                    to range_check_range_p for BINOP_ASSIGN and BINOP_VAL.
+                    Implemented MIN and MAX for ennumerated types.  The
+                    minimum value of an ennumerated type is defined by Wirth
+                    as the first identifier, and the maximum as the last.
+     m2-exp.y       Made octal numbers ending with "B" be characters and those
+                    ending with "C" be numbers, per Wirth's book. (p. 34)
+          
+Thu Jun 27 14:11:52 EDT 1991
+
+     stack.c        select_frame() now only sets working_lang, it does not
+                    notify the user.  If working_mode is language_manual, then
+                    a warning is issued once.
+     main.c         At the end of each call to execute_command(), working_lang
+                    is checked against the local static (enum language)
+                    current.  If they differ and working_mode is
+                    language_auto, the new settings of language, type and
+                    range checking are printed out.
+     stack.c        Modified frame_info() to include the language of the
+                    current frame in the output of "info frame".
+     language.[ch]  Added the function language_str() which returns the name
+                    of the current language.
+
+Fri Jun 28 15:33:14 EDT 1991
+
+     m2-exp.y       Added the built-in procedures INC, INCL, DEC, and DECL to
+                    the language.  INCL and DECL currently cause an error,
+                    since sets are not implemented yet.  INC and DEC are
+                    implemented as PREINCREMENT/PREDECREMENT with one
+                    argument, and as ASSIGN_MODIFY with two arguments.
+     eval.c         Added type checking to the above cases.
+     value.h        Added not_lval_constant to the lval_type ennumerated type.
+                    not_lval_constant means that the value is a constant
+                    value; that is 3 or 'a' or TRUE, not as in a constant
+                    identifier.  This is used to help coerce numbers such as 3
+                    to either signed or unsigned numbers.
+     valops.c       Added the function value_coerce_constants() which coerces
+                    constant integers as following:  if one is a constant and
+                    the other is not, the constant's type is set to the type
+                    of the other argument.  If both are constants and one is
+                    signed, the other is converted to a signed constant.
+
+Sat Jun 29 17:26:29 EDT 1991
+
+     valarith.c     Added a better range checker.  It now checks range
+                    (successfully) on integral operations [+-] (signed and
+                    unsigned) for any C sized type.  Still does not work well
+                    for multiplication.)
+                    int_in_size() returns an integer that is coerced to fit into
+                    specified number of bytes.
+
+Mon Jul  1 13:04:14 EDT 1991
+
+     language.[ch]  Added the function binop_result_type(), which returns the
+                    builtin (struct type *) type that would be the result of a
+                    binop on the two values V1 and V2.
+
+Wed Jul  3 19:22:53 EDT 1991
+
+     source.c       Extended source_info() to include the source language in
+                    the output from "info source".
+     
+Fri Jul  5 13:48:52 EDT 1991
+
+     utils.c        Moved the support functions for the GDB set/show commands
+                    dealing with language into language.c.
+     language.c     Added the function language_info(), which displays info
+                    about the current working language, type and range check
+                    settings.  Called via the GDB command "info language".
+                    Added an initialization routine _initialize_language(),
+                    that sets defaults for the language, type and range
+                    variables and sets up the new GDB commands.
+     main.c         Language setup moved to language.c.
+     depend         Rebuilt.
+
+Mon Jul  8 10:10:22 EDT 1991
+
+     valarith.c     Debugged the range checker for arithmetic.  Still does not
+                    work for multiplication very well.
+
+Mon Jul  8 12:40:37 EDT 1991
+
+     language.[ch]  Added the function value_true() which returns non-zero if
+                    its argument represents a boolean true value.
+     breakpoint.c   Changed breakpoint_cond_eval() to call value_true() to
+                    check the truth of an expression.
+
+Thu Jul 11 12:51:34 EDT 1991
+
+     language.[ch]  Added the predicate structured_type(), which returns
+                    non-zero if the argument is a structured type.
+                    Added the predicate pointer_type(), which returns non-zero
+                    if the argument is a pointer type.
+     eval.c         Added the ability to do addition and substraction on
+                    pointers and integers.   This case simply bypasses the
+                    type checker.
+
+Thu Jul 11 14:41:42 EDT 1991
+
+     include/stab.def
+                    Added the symbol N_DEFD (0x4a) which is a definition
+                    module dependency that is used by the GNU Modula-2
+                    compiler and the linker.  It is not important to GDB,
+                    except that [dbx|coff|mips]read.c should ignore these
+                    symbols.
+
+Fri Jul 12 16:07:00 EDT 1991
+
+     valprint.c     Changed the TYPE_LENGTH(type) >= 0 to TYPE_LENGTH(type) >
+                    0 in val_print().  Also added statements to the else part
+                    to coerce type (argument to val_print) to a pointer type
+                    if it is an "array of unspecified length".
+     valops.c       Added the function value_m2_string(), which returns a
+                    (value) value which is a constant string, whose type is
+                    (ARRAY [0..n] OF CHAR).  The length field of the type
+                    structure is set to zero, so it will be interpreted as an
+                    "array of unspecified length".
+     stack.c        Moved the language/frame mismatch check to
+                    main.c:execute_command().
+     main.c         The working language is recorded each time
+                    execute_command() is executed.  If working lang has
+                    changed during its execution, then the new
+                    language/type/range info is printed out for the user.  If
+                    the working language does not match the language of the
+                    frame, a warning is issued.
+
+Sat Jul 13 16:16:39 EDT 1991
+
+     eval.c         Moved all the type-checking stuff for operators to
+     language.[ch]  language.c.  This is so we can keep language-specific
+                    stuff (like for what type operators are defined) in
+                    language.c.
+     language.[ch]  Added the function binop_type_check(), which checks to see
+                    if its two (value) arguments are type-compatible with its
+                    opcode argument.  The opcode should represent an operation
+                    involving an operator.  Also added the macro function
+                    unop_type_check, which calls binop_type_check with a
+                    NULL second argument.
+     expprint.c     Added Modula-2 operators to the op_print_tab, so info
+     expression.h   break works correctly.  Also added "op_string", which
+                    returns the string corresponding to the (enum exp_opcode)
+                    opcode that is its argument.
+
+
+Sat Jul 13 18:26:18 EDT 1991
+
+     coffread.c     Added code to record the type of function arguments with
+                    each paricular function.  Code is very similar to that
+                    added to dbxread.c.  
+     dbxread.c      Moved add_param_to_type() to symtab.c
+     symtab.[ch]    Added function add_param_to_type() from dbxread.c
+
+     *** NOTE:  The above additions have not been tested.
+
+Mon Jul 15 12:50:47 EDT 1991
+
+     langauge.[ch]  Added the functions type_error and range_error, which work
+                    like error() except if the type/range mode is set to
+                    *_mode_warn, then they do not do a return_to_top_level(),
+                    but merely print a warning.
+                    Also changed [set|show]_[type|range]_command() to support
+                    the new "warn" feature.
+
+Thu Jul 18 17:50:54 EDT 1991
+
+     mipsread.c     Added code to record the type of function arguments with
+                    each particular function.  Code is very similar to that
+                    added to dbxread.c.  
+
+     *** NOTE:  The above additions have not been tested.
+
+Fri Jul 19 11:19:10 EDT 1991
+
+     defs.h         Added macros MAX_OF_SIZE, MIN_OF_SIZE, UMAX_OF_SIZE, and
+                    UMIN_OF_SIZE, which when given a size of a numeric type,
+                    return the maximum and minimum value it can hold.  UMAX...
+                    and UMIN... return the result for unsigned types.
+     symtab.h       Added the macros MAX_OF_TYPE and MIN_OF_TYPE to operate on
+                    struct types.  They call above macros.
+     dbxread.c      Renamed the MAX and MIN_OF_TYPE macros to ..._OF_CTYPE to
+                    avoid a name conlict with the above.
+     c-exp.y        Added range checking on numeric constants in
+                    parse_number() for completeness.
+     valarith.c     Made binop_user_defined_p() and unop_user_defined_p()
+                    return 0 if working_lang is not language_c.
+
+Thu Aug  8 14:17:22 EDT 1991
+
+       main.c
+       printcmd.c
+       breakpoint.c    Documentation strings of some commands changed to
+                               eliminate the references to the C language where
+                               appropriate.
+
+Tue Aug 13 15:48:03 EDT 1991
+
+       m2-exp.y                Added qualified identifiers to the grammar.  The semantics
+                               are slightly different from those of the GDB operator ::
+       c-exp.y
+       m2-exp.y                Added a rule to each grammar of the form:  start ::= exp |
+                               type_exp, where type_exp is any valid type expression.
+       expression.h    
+       eval.c          Added the opcode OP_TYPE, and an error case in eval.c.
+       printcmd.c      Modified ptype_command() so it actually parses the input
+                               (necessary for type expressions with scope qualifiers).
+                               Added the function ptype_eval() which expects an
+                               expression composed of one OP_TYPE element.
+       *.[ch]          Replaced all occurences of parse_c_expression with
+                               parse_expression
+       *.[ch]          Replaced all occurences of parse_c_1 with parse_exp_1
+
+[End of ChangeLog entries from Andrew Beers for Modula-2 support.]
+
+Mon Sep 16 17:19:46 1991  John Gilmore  (gnu at cygnus.com)
+
+       Small fixes from Peter Schauer:
+
+       * infrun.c (child_attach):  Lint.
+       * solib.c (find_solib):  Handle shared libs version 2.
+
+       Small fixes from David Wood:
+
+       * xm-ultra3.h (SYS_SIGLIST_MISSING):  Typo.
+
+       Small fixes:
+
+       * remote-vx.c:  Move <stdio.h> to top, for FILE.  Fix from
+       John S <basrai%kanga.dnet@c3po.sm-alc.af.mil>.
+
+       * utils.c (wrap_here):  Avoid wrap action of fputs_filtered if
+       chars_per_line is at maximum (user typed `set width 0').  Fix
+       from Andreas Schwab <schwab@ls5.informatik.uni-dortmund.de>.
+
+Tue Sep 17 17:31:04 1991  Stu Grossman  (grossman at cygnus.com)
+
+       * coredep.c:  include ptrace.h where necessary.
+       * mipsread.c(parse_lines):  fix unsigned char problem that was
+       messing up line numbers on SGI's and possibly other MIPS based
+       platforms.
+       * infrun.c (child_create_inferior):  use better test to check
+       return val from setpgrp().
+       * tm-irix3.h, xm-irix3.h, tconfig/irix3, xconfig/irix3:  add these
+       for sgi/irix support.
+
 Wed Sep 18 04:33:31 1991  Per Bothner  (bothner at cygnus.com)
 
        * mipsread.c (parse_symbol):  Put non-static procedures