11-Jul-1994 RicoM
    debutil.c
	Bug #14596.  Fixed SetDPtr so that it doesn't fault if it can't find
	the type that it is looking for in the module that it's supposed
	to be in.  This now "masks" a more serious problem that
	forward reference type need to be looked up using the context that
	is in the evaluation node (when HMOD != NULL) instead of the global
	context (which may be totally inappropriate for that node).
	Also, a fake node and context should be created when formatting pointers
	to functions instead of just faking the HMOD.

19-May-1994 Geogiop
    debexpr.h
    debsym.c
    debwalk.c
        The context list returned by EEGetCXTLFromTM contained a starting
        context from which the corresponding symbol was visible, not the
        exact context where the symbol was found. The kernel needs to know
        the exact context for each symbol in order to set breakpoints
        properly. I extended eval_t to accomodate full context information,
        so that SearchSym can store the context where a symbol was found.

14-May-1994 Georgiop
    debbind.c
    debeval.c
    debfmt.c
    debsrch.c
    debtyper.c
    debutil.c
        Provided support for T_(U)INT1 types (FORTRAN uses them)
        [Dolphin #12021]

06-May-1994 Georgiop
    debexpr.h
    debparse.c
    debapi.c
    debsup.c
        Allow transformation of template names to a 'canonical' form only
        when EEParse is called. In other cases (e.g., when ParseBind is
        called) the expression should have been generated by the EE and
        should be in canonical form already. This optimization makes the
        EE more tolerant to debug info idiosyncracies as we avoid
        transforming template names that have been generated by the
        compiler (even if these are not really 'canonical' as far as the
        EE is concerned).   [Dolphin #11696]

04-May-1994 Georgiop
    debbind.c
    debeval.c
    debexpr.h
    debfmt.c
    deblex.c
    debparse.c
    debsrch.c
    debsym.c
    debtyper.c
    debutil.c
        Enhanced support for __int64: common binary and unary opearations
        can now accept int64 operands, and int64 string conversions have
        been enabled. Floating point <-> int64 conversions are not supported
        yet in order to avoid build problems due to potential unsupported
        operations by the compiler. Code involving pointer segments and
        offsets does not treat int64 in a special manner.

25-Apr-1994 v-LeoL
    shfunc.h debsup.c
        Support for locals inside nested procedures. C++EH Catch blocks
        and SEH finally blocks and SEH filters are implemented via
        nested procedures on MIPS

22-Apr-1994 Georgiop
    debsym.c
        AddVBType was not updating "*ppList" and "pList->MaxIndex"
        following a reallocation of "*phList". This could eventually
        cause a heap corruption and a GPF. [Dolphin #10293]

21-Apr-1994 Georgiop
    debbind.c
        Disabled overloaded operator functionality for "&". The EE uses the
        non-overloaded "&" operator internally for constructing child
        expressions. When rebinding nested child expressions the EE would
        waste a lot of time looking for potential overloads of "&". As a
        result the watch window would become extremely slugish and the
        IDE would appear to be hung. [Dolphin #10293]

20-Apr-1994 Georgiop
    debbind.c
        BindSymbol prefers binding to a non-UDT symbol in case both a UDT and
        a non-UDT have the same name and appear in the same scope. (Most of
        the time, the user really wants the variable, not the type)
        [Dolphin #10794]

18-Apr-1994 v-LeoL
    debeval.c debbind.c
        Change error for Mips func eval from ERR_CALLSEQ to
        ERR_NOFUNCEVAL

15-Apr-1994 v-LeoL
    debeval.c
        Fix warning
    debtyper.c
        Another place to call ResolveAddr

15-Apr-1994 Georgiop
    debeval.c
    debexpr.h
    debfmt.c
    debsrch.c
    debtyper.c
    debutil.c
    fmtstr.h
        Provided minimal support for __int64, as the EE would hang or
        misbehave while handling this type. Most operations on __int64
        are not supported yet, but __int64 variables can be evaluated
        and displayed in hex.  [Dolphin 10611]

11-Apr-1994 Georgiop
    debfmt.c
    debutil.c
        [Dolphin 10456]

        FormatExpand now handles a SetNodeType failure that could set
        the underlying type of an array to T_NOTYPE and cause a divide
        by 0 exception.

        SetNodeType resolves fwd references to underlying array types
        while setting the node of an array type. This is done in order to
        avoid having to resolve the type at a later time, when the
        appropriate context for the symbol search may be unavailable.


07-Apr-1994 Georgiop
    debtree.c
        AddLeaf and AddNode were not checking for stack space in the
        syntax tree before adding a new node. This could cause a memory
        corruption and a GPF, since the the tree stack size is fixed
        (although the rest of the tree may grow). [Dolphin #10293]

05-Apr-1994 v-LeoL
    debbind.c debeval.c debtyper.c
        Fix uninitialized local (Dolphin 7755) and enable some MAC/PPC
        ifdefs for MIPS too.

04-Apr-1994 v-LeoL
    debsym.c
        If we find something in the publics don't save uninitialized
        CXT [fix is MIPS only for now]

01-Apr-1994 Georgiop
    debsup.c
        Changed GetNameFromHSYM to skip the numeric leaf before accessing
        the symbol name. The "value" field of CONSTSYM has fixed length
        at compile time, and is followed by the "name" field. In fact
        CONSTSYM is a numeric leaf that may have variable length, and
        we ended up treating the last bytes of the numeric leaf as part
        of the symbol name. [Dolphin #9323]

    debtyper.c
        CastNode now sets the ADDR_IS_FLAT flag. (EvalMem was emitting
        a segmented address after calling CastNode.) [Dolphin #9941]

    debfmt.c
        Do not allow garbage following a format specifier; allow only
        trailing white space. [Dolphin #9902, #9903]

    debexpr.h
    debbind.c
    debutil.c
    debeval.c
        Added routine for checking if pointer subtraction is allowed, as
        the existing check for type equality was too restrictive.
        [Dolphin #8914]


01-Apr-1994 MarkBro
    debfmt.c:
        Changed size of buffer in EvalMem (bigger) and now handle
        buffer (in) is smaller than local copy of buffer (DOLPHIN:9942)

31-Mar-1994 v-LeoL
    debutil.c
        Protect against unaligned numeric leafs
        Also avoid Float10 when updating REAL32 and REAL64

30-Mar-1994 v-LeoL
    debsup.c
        Handle REGREL in InfoFromTM (use ResolveAddr to get BASE+off
        rather than just off)
        Also fix ResolveAddr to handle S8 correctly when at Top of Stack
        OSDEBUG4 does not return correct adrBase when alloca frame is
        topmost.

30-Mar-1994 Georgiop
    debwalk.c:
        OP_uscope now contains an eval_t node. BindBScope uses the eval_t
        node of its left child (which can be a unary scope operator) to
        set the CLASS_GLOBALTYPE flag. Since OP_uscope contained no eval_t
        node this was resulting to a memory corruption. [Dolphin 9185]

    debtree.c
        GetExpr was not skipping over embedded hSym values properly and
        returned garbage, preventing editing of child TMs in the locals
        window. [Dolphin 9842]

25-Mar-1994 Georgiop
    debsym.c
    debeval.c
        MatchArgs and EvalFunction were not handling fwd references to enum
        types. [Dolphin 3659]

24-Mar-1994 Georgiop
    debfmt.c
        Fixed formatting of const/volatile type qualifiers. (A type like
        "const Foo const *" was being displayed as "const const Foo *")
        [dolphin 5043]

23-Mar-1994 v-LeoL
    debeval.c
        As the EE knows nothing about how to make a MIPSCALL function
        call use ERR_CALLSEQ

16-Mar-1994 Georgiop
    debexpr.h
    debsym.c
    debutil.c
        Worked around the following bug:
        While self debugging, bp at LTIsExpandableTM and watch
            "{,,een0cxxd.dll}(pexstate_t*){*}phtm"
        The resulting expression is not expandable, because
        while in EEIsExpandable, we call SetNodeType and try to
        resolve a forward reference by performing a symbol search
        in the default context instead of {,,een0cxxd.dll}

        Since we cannot always update pCxt before calling SetNodeType,
        resolve potential forward references in undelrying types
        when they are first introduced int the evaluation node.

04-Mar-1994 Georgiop
    debbind.c
    debeval.c
    debexpr.h
        Dolphin #5503: We GP-faulted while binding an expression like
        Foo::m_array[Foo::m_staticCount], because we needed to fake
        up a stack entry even if ST was not NULL.
        Now we always push a faked entry unless there is a preceding
        bnOp (".", "->", etc); in that case a class stack entry has
        already been pushed onto the stack.

    debsup.c
        Dolphin #8336: When dereferencing a "reference to pointer" we
        should dereference the underlying pointer (this is what
        EEIsExpandable implies when it returns EEPOINTER)

    debparse.c
        pExState->strIndexSav should not be set by XFormExpr, since at that
        time the actual parsing has not started and the value of strIndex is
        unknown.

01-Mar-1994 v-LeoL
    debsup.c
        Dolphin #7908. Intel avoid printing 'this' param by checking
        for negative offset. Centaur has 0 offset for this (or even positive)
        so special case it.

    debutil.c
        Dolphin #7945

    debeval.c
        Dolphin #7945. OSDSaveRegister currently broken on MIPS so
        avoid calling in EvalFunction if doing EvalProto
        (EvalProto returns anyway without restoring)

24-Feb-1994 Georgiop
    debexpr.h
        CLEAR_EVAL_FLAGS was only clearing out part of the flags structure.
        (the "bits" struct in vbits_t had grown beyond 32bits in size,
        and the clr field was too small for clearing all bits.)

    debbind.c
        Restricted the symbol search to class names only, when binding the
        left operand of "::". The EE would erroneously bind the class name
        at the left of "::" to the corresponding constructor and rewrite
        the expression by inserting the "this" pointer. (This in turn
        prevented binding static members like Foo::m_static when the
        "this" pointer was not in scope).


23-Feb-1994 Georgiop
    debdef.h
    deberr.c
    debexpr.h
    debfmt.c
    eent.mak
    eemc.mak
    errors.h
    resource.h (new file)
    debmsb.rc (new file)
    dllmain.c (new file)
        Moved error messages to string resources so that they can be localized.

21-Feb-1994 RicoM
    debsym.c
        We no longer check the type index in the globals for and exact
        match with the type index in the class for static data members.
        This is because sometimes it doesn't match (e.g. unspecified
        length arrays)

20-Feb-1994 Georgiop
    debapi.c
    debbind.c
    deberr.c
    debfmt.c
    deblex.c
    debparse.c
    debsrch.c
    debsup.c
    debsym.c
    debutil.c
    debwalk.c
    debexpr.h
        Changes to use tchar.h - DBCS enabling

16-Feb-1994 RicoM
    debsym.c
        If nested type forward ref cannot be converted into a real type
        then pretend we didn't find the symbol we were looking for in
        the nested type and proceed with the search instead of returning
        an OMF error and abandoning the search

15-Feb-1994 DaveS
    errors.h
    debeval.c
        Fix function eval for mac68k.  We still don't eval funcs, but
        now we will eval BPs and prototypes.  Also, I've added a new
        error message for attempting function eval.

10-Feb-1994 Georgiop
    debbind.c
    debeval.c
        Fixed expansion of function calls that return references to derived
        classes. Such function calls are now treated as lvalues (as per the
        C++ spec), and it is possible to bind child expressions (such as
        base classes) that need the address of the referenced object.

02-Feb-1994 Georgiop
    debexpr.h
    deblex.c
    debeval.c
        Dolphin #5663: Work around for a compiler optimization bug: replaced
        instaces of "(float)DoubleFromFloat10" with new inlined function
        "FloatFromFloat10".

    debutil.c
        Dolphin #5783: RemoveIndir should clear the EVAL_IS_LABEL flag.

04-Feb-1994 Georgiop [by RicoM]
    debeval.c
        Dolphin 5530: Handle subtraction of void* pointers (fail gracefully).
        Misc: Fixed bug in Store32 -- ADDR packet uninitialized
    debsym.c
        Dolphin 5465:
        Fail symbol searches on member functions that are not
        instantiated in the current .exe/.dll (i.e. if a class
        imports member function you must be in the scope of the
        function to set a breakpoint -- the kernel does this search
        automatically)

29-Jan-1994 Georgiop
    debapi.c
    debeval.c
    debexpr.h
    debsup.c
    debutil.c
    expr2.z
        Implemented evaluation caching mechanism: child TMs can now
        be evaluated incrementally by reusing the evaluated result
        of a parent TM.

27-Jan-1994 MarkBro
    debfmt.c:
        Restored _MBCS enabled code from previous whoops

    debparse.c:
        Change _MBCS #ifdef's to #ifNdef's _SBCS

26-Jan-1994 BillJoy
    debsym.c
        pulled MHOmfUnLock (hCFlag) inside the #if !defined(TARGMAC68K)


23-Jan-1994 RicoM
    debutil.c
    debsym.c
        Fixed calls to GetUdtDefnTIndex() so that the type index
        corresponds to the module that the type is being looked
        up in.  Fixes Dolf#5544

23-Jan-1994 RicoM
    debapi.c
    shfunc.h
        Added stub implementation of EEInvalidateCache per GeorgioP

21-Jan-1994 MikeMo
    makefile
        Added -WX: no warnings allowed.

12-Jan-1994 Georgiop
    debsup.c
    debbind.c
        Special handling of context operators when generating synthesized
        expressions. Unified context handling scheme.
        Minor bug fixes and misc. cleanup for can vs cxx builds.
    debexpr.h
    debsrch.c
    debsup.c
    debsym.c
    debwalk.c
        Misc. cleanup for can vs cxx builds.

22-Dec-1993 MikeMo
    debsym.c
        Dolphin #4678: realloc was the wrong size.

06-Dec-1993 Georgiop
    debutil.c
        SetNodeType was not restoring PTR_REG_IREG and PTR_REG_HIBYTE
        of an enregistered pointer.

04-Dec-1993 Georgiop
    debeval.c
    debbind.c
        Modified EvalFunction in order to fixe dolphin 1170: When a
        simple variable is passed by ref we need to pass a pointer
        to the variable (i.e., treat it in the same way we currently
        treat passing classes by ref).
        Modified Push?Args functions in debbind.c in order to restore
        the PTR_UTYPE macros (when handling args that are passed by
        ref) that had somehow disappeared.

    debsym.c:
        Updated comment header for SearchSym in an attempt to document
        some of its side-effects. Didn't change any code.

    debparse.c
        Changed the condition on which a special path is taken when
        parsing consecutive closing ')' of nested function calls in
        order to fix dolphin #3404.

        Changed FParseExpr to treat 'by', 'wo', 'dw' as identifiers if
        they follow a '.' or a '->' (in that case they are probably
        struct memebers, not commands). (dolphin #977)

    debutil.c
    debfmt.c
        TypeDefSize and Format now use the f32bit flag ti decide on
        whether a based pointer is 16-bit or 32-bit wide (there is
        no distinction between these in codeview information).
        (dolphin #979)

30-Nov-1993 MarkBro
    debsym.c:
        Corrected initialization of localeval in SearchRoot for
        nested symbols.  Was asserting since the previous initialization
        of localeval of *pvF didn't have an associated module

05-Nov-1993 RicoM
    debsup.c
        Corrected off by one error allocating space for derived most
        class cast

01-Nov-1993 RicoM
    debsup.c
        EECChildren now returns 1 for # children of a pointer to a
        primitive type

26-Oct-1993 Stevesm
    debapi.c
        We had to initialize some of the global variables in
        EEFormatCXTFromPCXT for NB10 restart with breakpoints.  Resolving
        forward reference UDTs caused us to invoke SearchSym.  We needed to
        initialize pCxt, pExState and various Eval Stack variables

30-Oct-1993 Georgiop
    The EE was displaying bogus values for missing static class members.
    Now if a static data member is missing the corresponding expression
    binds properly and its evaluation or expansion is prevented. Affected
    files:
    debsym.c:
        SearchQualName sets the HSYM of the eval node to 0 in order to
        indicate a missing static data member. It also sets a global
        flag in the TM to prevent expansion.
    debeval.c:
        StructEval returns an error in case an evaluation of a missing
        static data member or function is attempted.
    errors.h:
        added ERR_STMEMBERNP ("static member not present") error
    debexpr.h:
        added fNotPresent flag in the state field of TMs
    debapi.c:
        EEIsExpandable: do not expand expressions that contain missing
        static data members.

29-Oct-1993 Georgiop
    debbind.c:
        BindDot allows binding of expressions like {main,,}foo.bar where
        foo is not yet in context and bar is a (non-virtual) member
        function. This allows setting certain break points when restarting
        a debugging session [dolphin #2433]. This fix addresses part of
        a more general issue, i.e., what happens if part of an expression
        cannot be bound, but the expression itself is bindable (i.e., does
        not need all the information of the part that cannot be bound). In
        general the EE does not allow binding of such expressions -- this
        fix overrides this behavior.

20-Oct-1993 Georgiop
    debexpr.h:
    debeval.c:
    debbind.c:
    debapi.c:
        Backed out the change made on 10-15-93 (fPreventEval flag). Now
        EEDereferenceTM verifies that the downcast node is bindable. This
        involves an extra call to EEGetChildTM, but results in better UI.
        BindCast does not allow illegal casts that pertain to the class
        hierarchy (e.g., casting a vitr. base ptr to a derived class ptr).
        [dolphin #2751]


15-Oct-1993 Georgiop
    debexpr.h:
    debeval.c:
    debbind.c:
        Introduced fPreventEval in the TM state in order to prevent
        evaluation of certain expressions. This is used together with
        the auto class cast feature as follows: Neither DereferenceTM
        or cChildrenTM check the validity of the cast required to build
        the derived class node (it would be too costly to do so). If
        BindCast discovers an illegal cast it lets the expression bind
        properly (so that the kernel can query the expression name) but
        prevents the evaluation of the node (which would produce meaningless
        results)


15-Oct-1993 Georgiop
    debeval.c:
        Minor changes in VFuncAddr2 and StructEval in order to support
        evaluation of virtual functino addresses. These should fix
        dolphin bug #2223

14-Oct-1993 Georgiop
    Dolphin bugs 299, 2312, 2223
    debsup.c:
        UpdateMem was not resetting properly the EVAL_IS_BPREL flag.
        (dolphin 299)
    debeval.c:
        StructEval now produces an ERR_NOTEVALUATABLE instead of
        ERR_INTERNAL if VFuncAddress2 fails. VFuncAddress2 may fail if the
        object does not have a valid vfptr -- dolphin 2223.
        (The problem of computing the right address of a virtual
        function still exists)
        EvalAddrOf() was not handling references properly. RemoveIndir()
        was not handling CV_PTR_NEAR32 types.

13-Oct-1993 Georgiop
    debfmt.c:
        FormatCXT has been changed to append an argument type list
        to function names in context strings, so that the kernel can
        disambiguate overloaded functions.
    debbind.c:
        ContextToken() now accepts tokens that contain a parenthesized
        substring. This allows parsing of contexts generated by
        FormatCXT. The parenthesized part is ignored, since BindContext
        cannot deal with overloaded functions
    debbind.c:
        Bug fix in BindContext: Typing "{foo,,}bar" in the watch window
        before starting a debugging session would cause an assertion
        in sapi, as BindContext was attempting to call SHGetNextMod
        passing a NULL hExe. This call has been removed.

12-Oct-1993 Georgiop
    Bug fix for Dolphin #2109: attempt to cast a register to a UDT
    during evaluation of an assignment failed due to the NULL hmod
    in the evaluation node of the register.
    debeval.c:
        Check if ST has a null hmod before calling CastNode() in
        Assign().In that case use the hmod found in STP

08-Oct-1993 Georgiop
    Further enhancements to auto class casting: nested class support,
    pointer adjustment when casting from "pointer to base" to
    "pointer to derived"
    debapi.c:
    debexpr.h:
    shfunc.h:
        New API EEEnableAutoClassCast
    debparse.c:
    debbind.c:
        Modified ParseTypeName and ParseType to allow contexts in
        type strings. Added CastBaseToDeriv().
    debsup.c:
        GetDerivClassName generates a context together with the
        type name. Minor changes in the way the magic node is
        formatted

05-Oct-1993 RicoM
    Minor bug fixes
    debsup.c
    debapi.c
        Skip LF_MODIFIER nodes during auto class cast so that
        auto class cast works even on const or volatile pointers
        Don't ever use BIND_fSupBase as it prevents expansion
        of members found in base classes in

01-Oct-1993 Georgiop
    Implemented automatic detection of the type of a class
    object pointed by a ptr, in case the ptr points to an
    enclosed base class object which has a vtable.
    debexpr.h:
        Added hDClassName in pexstate_t to hold the
        derived class name.
    debsup.c
        Added GetDerivClassName, modified DereverenceTM to
        set hDClassName, and cChildren, GettChildTM to
        use hDClassName.
    debapi.h
        Minor changes due to hDClassName addition in the TM

29-Sep-1993 SanjayS
    debeval.c
        Don't force operand of ++ and -- to be treated as an lvalue in
        EvalPostIncDec and EvalPreIncDec.

28-Sep-1993 SanjayS
    debbind.c
        Free the correct memory handles in BinaryOperator, even if a
        realloc happens.

27-Sep-1993 MarkBro
    debfmt.c:
        Added fix for ensuring that the types table checked for a type
        matches the hmod of the symbol.

24-Sep-1993 Georgiop
    debfmt.c
        Use the mod for the type we back from SHModFromCxt when
        formatting a pointer to function value.
24-Sep-1993 Georgiop
    debfmt.c
        Dolphin #1389: Changed Format() to set the proper hmod in the
        evaluation node.

25-Aug-1993 Georgiop
    debapi.c
    dogfood.mak
    eent.mak
    makefile.mak
        Replaced LANG and LANGID macros with EELANG and EELANGID respectively

20-Aug-1992 SanjayS
    debsup.c
    debwalk.c
    debexpr.h
        Checked in changes made by Georgiop to fix problem where any TM
        created using EEGetTMFromHSYM would return a bogus string when

        EEGetExprFromTM was called on it.  See log made by Georgios below...
        N.B. Georgios was in Greece so his changes.txt was checked in later...

19-Aug-1993 Georgiop
    debsup.c
    debwalk.c
    debexpr.h
        Changed GetExpr to replace HSYMs found in the expression string
        with the corresponding symbol names.
    dogfood.mak
        Added /MD /W3 to the compiler command line

12-Aug-1993 MikeMo
    debtyper.c
        Fix a bug I introduced way back in February: when casting int to
        FOO*, where FOO* is not a primitive type, CastNode() was treating
        FOO* as a primitive type (e.g. doing CV_MODE on it and stuff).

10-Aug-1993 MikeMo
    debbind.c
    debparse.c
    debsup.c
    debsym.c
        Fix bugs in the use of MHMemReAlloc.  Some calls were assuming that
        the handle value could change, and others were assuming that it
        could not.  The former is correct: the handle value CAN change.

09-Aug-1993 GeorgioP
    debutil.c
        Modified erroneous (but harmless) code in GetUdtDefnTindex
        that generated compiler warning.

09-Aug-1993 GeorgioP
    Implemented "quick binding" for child TM's that represent member functions.
    Bind info are stored in the TM during the child TM creation and the bind
    phase is bypassed. Currently such TMs are not evaluatable. Affected files:
    debapi.c:
        Modified GetChildTM, added GetParmTM
    debeval.c:
        DoEval now fails gracefully if the TM has no eval stack.
    debexpr.h:
        Modified/added prototypes for GetChildTM, GetParmTM, ParseBind
    debsup.c:
        Modified GetChildTM, replaced SetClassiName with GetClassiChild

15-Jul-1993 GeorgioP
    debbind.c
    debeval.c
    debfmt.c
    debtyper.c
    debutil.c
        Fixes to avoid some compiler warnings

15-Jul-1993 GeorgioP
    debbind.c:
        One-line fix (Replaced '==' with '!=' on line 3023): AddrOf
        should not set EVAL_STATE(ST) to rvalue in case ST is a type
        (dolphin #1169)

15-Jul-1993 GeorgioP
    debparse.c:
        Added XFormExpr and GetToken for template support.
    debbind.c:
        GetId looks for matching <>'s in order to treat template class
        names as identifiers.
    debexpr.h:
        Added hExStrSav, strIndexSav, ExLenSav in exstate_t. These hold
        info about the original string in case it has been modified by
        XFormExpr.
    debwalk.c:
        GetExpr now uses the saved string if it exists.
    debsup.c:
        DupTM duplicates the saved string
    debapi.c:
        EEFreeTM frees the saved string

07-Jul-1993 DanS
    debfmt.c
        cuda:5647, display T_NOTYPE and default cases with 4 bytes
        for 32-bit addresses, 2 bytes for 16-bit.

02-Jul-1993 MikeMo
    debapi.c
        cuda#5595: EEGetTMFromHSYM now returns EENOMEMORY instead of
        EECATASTROPHIC if a memory allocation fails.  This allows the
        callstack to come up with an empty stack instead of crashing.

01-Jul-1993 DanS
    debfmt.c
    debbind.c
        cuda:5546, transfer all addr bits from ptr to sym in ref case.
        initialize type in AddrOf case for &(int &bar) case.

29-Jun-1993 DanS
    debutil.c
        cuda:5515, if type packing leaves dupes, we can end up with
        sym recs to have type indices that don't point into the correct
        type index "tree". the trick is to find a fix that won't break
        searching for ambiguous methods.  what we settled on was in fnCmp
        to a) if name matched exactly (case sensitive), b) the type that
        we were carrying around for the method was not the same as the one
        on the symbol record, then c) we would say they are equivalent if
        there were no overloads (overloadCount == 1).

22-Jun-1993 DanS
    debsym.c
        cuda:5345, don't let registers/line #'s be evaluated in an
        explicit class/struct scope.

\-------------------End Conflict-------------------/
16-Jun-1993 DanS
    debbind.c
        cuda:5171 (and more!) propagate an explicit context from the
        left bind tree to the right during BindDot and BindPointsTo.
        this handles the case where we have {,,foo.dll}fooStruct and
        we want to expand it.  trouble is that the expansion results
        in an expr like this: ({,,foo.dll}fooStruct).fooMember.  the
        context is bound to the right side and not applied to the
        right hand side for the type lookups.

        an alternative fix would be to always carry a context around
        on every symbol node or to elevate the context precedence so
        that we end up with {,,foo.dll}(fooStruct).fooMember instead.

14-Jun-1993 DanS
    debbind.c
    debeval.c
        cuda:5124, vtshape tables not dumped correctly.
        debeval.c wasn't passing on all of the address from ptr to sym
        in VFuncAddress.
        debbind.c had some unused code removed.

28-May-1993 DanS
    debsym.c
        cuda:4886, add case S_LTHREAD32 to SymToNode so that we can
        look at static (local and module) TLS variables.

25-May-1993 DanS
    debsrch.c
        cuda:4798, use all 4 bytes of 32-bit regs when loading symval
    debutil.c
        cuda:4799, xfer all data pertaining to register values from pv
        to nv in SetNodeType for any case that is a register.

25-May-1993 MikeMo
    debfmt.c
        cuda#4793: EVAL_IS_NPTR32 and EVAL_IS_FPTR32 return FALSE for
        arrays, which was causing trouble for code which assumed they
        would return TRUE for arrays as well as pointers.

06-May-1993 RicoM
    debsym.c
        CUDA #4305: SetValue() now also avoids referencing "this" when
        accessing a BASE class name that was found in the context of
        a member function.  It used to turn FOO::bar into this->FOO::bar
        if you were in a member function of a class derived from FOO.

06-May-1993 RicoM
    debsym.c
        CUDA #4030: SetValue() now avoids referencing "this" when accessing
        static data members from a class that was implicitly in scope.
        This lets us refer to a static data member from within a static
        member function without having to qualify with the class name.
        The old way we'd be told that we could find "this" even though
        we didn't really need it.

05-May-1993 RicoM
    debutil.c
        CUDA #4067: SetNodeType() needs to preserve the EVAL_IS_LABEL
        bit or else labels get treated as data and can't be fixed up
        correctly

04-May-1993 DanS
    ldouble.c
    ldouble.h
    debfmt.c
    deblex.c
    eent.mak
        cuda:2119, low budget float10 support using CRT internals.

    debfmt.c
    deblex.c
    debeval.c
    debsrch.c
    debsup.c
    debsym.c
    debtyper.c
    debutil.c
    debwalk.c
        change near to NEAR all over the place because new compiler removed
        near do nothing keyword

03-May-1993 RicoM
    debfmt.c
        CUDA #4028: FormatLong() renamed to ExtendToLong() which more
        accurately reflects what it does.  Bug #4028 says that
        (unsigned char)255,d formats as '-1'.  The problem here is
        that in the ,d case ExtendToLong() always did a sign-extend even
        when converting from an unsigned type.  There is now a check
        to see if we are converting from a unsigned type, or if we need
        an unsigned result.  In either of these two cases no-sign extension
        is performed.

30-Apr-1993 RicoM
    debeval.c
        CUDA #4044: VerifyFormat needed to check the return code of
        its CastNode() calls to prevent trying to format a float as
        memory for instance (i.e. float f; ?f,m)

30-Apr-1993 RicoM
    debeval.c
        CUDA #4020: EvalFunction stack handling changed so that
        any temporary objects that were pushed on the stack (e.g.
        string literals are not removed until the whole expression
        has been evaluated.  This handles nested/multiple functions

29-Apr-1993 RicoM
    debsrch.c
        CUDA #2962: LoadAddress wasn't always using pExState->frame.DS
        for the segment value (sometimes it used just 0)

29-Apr-1993 MikeMo
    debfmt.c
        cuda#4043: The IDE displays chars with null value as '\x00',
        but CV displays them as ''.

29-Apr-1993 RicoM
    debeval.c
        EvalFunction and VFuncAddress2 both preserve the EMI and MODE
        parts of the address when they copy the results of EvalUtil()
        into the address part of the expression.  This allows us to
        correctly fixup/unfixup vtable addresses...  EvalFunction
        was also modified to correctly compute the logical address
        of a near virtual function without consulting CS (which doesn't
        work anyway)  CUDA #3949 is now completely fixed

28-Apr-1993 RicoM
    debeval.c
        EvalFunction doesn't try to restore the registers if it fails
        before they've been saved anymore...  This makes CUDA #3949
        not fault anymore, but we still can't call the function...

27-Apr-1993 MikeMo
    debsup.c
        Revision of the change mentioned below on 21-Apr: this change
        is in Cuda after all.  EEInfoFromTM won't automatically
        dereference pointers.

26-Apr-1993 RicoM
    debbind.c
    debeval.c
        CUDA #3743, use 32 bit types in bind/eval of 'by', 'wo', and 'dw' ops

23-Apr-1993 RicoM
    debeval.c
        Push function addresses on the stack in EvalFunction in the prototype
        case.  CUDA #3673

21-Apr-1993 MikeMo
    debsup.c
        Under Dolphin, EEInfoFromTM won't automatically dereference
        pointers.

09-Apr-1993 SanjayS
    deblex.c
        Added additional overflow check in ParseIntConst.

08-Apr-1993 SanjayS
    debeval.c
    debbind.c
        EvalSegOp and BindSegOp were disallowing T_INT4's. Fixed this
        as integral constants are always typed INT in 32-bits. Added
        check in EvalSegOp to make sure that the value of the segment
        portion is in range.

08-Apr-1993 MikeMo
    debexpr.h
    debbind.c
    debeval.c
    debfmt.c
    deblex.c
    debparse.c
    debsrch.c
    debtyper.c
        * exstate_t.state now contains an 'f32bit' flag, which indicates
          whether this expression has 32-bit ints and pointer offsets.  This
          should usually be used instead of the 'fWin32' global (now removed)
          or the 'CVTargetInfo' function.

        * Various expressions that used to return type T_SHORT or T_USHORT for
          C boolean operations like "a != b" and "!x", have been changed to
          return T_INT2 or T_INT4 as appropriate.

        * T_RCHAR is now treated as a signed char as it should, rather than
          unsigned.  (There is still one case we don't handle correctly, which
          is too hard to fix: if someone compiles a C++ program with -J, we'll
          still be treating chars as signed.  But this is a rare case.)

        * In hex display, chars are always displayed with two hex bytes even
          if variable's value is negative; shorts always with four hex bytes.

        * Fixed value display of things like "sc,d" and "sc,u" where sc is a
          signed char.

        * When lexing a constant for 32-bit, return T_LONG or T_ULONG if user
          explicitly appended 'u' and/or 'l'.

        * Fixed rules for "integral promotion."

        * Fixed rules for the "usual arithmetic conversions."

06-Apr-1993 MikeMo
    debtyper.c
        Cuda#2616: "eip == label" did not work, because the code was
        attempting to cast the label from a 32-bit address to a 16-bit
        address.

30-Mar-1993 Brucejo
    debutil.c
    debsup.c
        Fix 16 <--> 32 bit ptr casting problem.  This caused the array
        expansion to fail.  The macro N_EVAL_PTRTYPE was checking more
        than just the type, the tests were changed to check just the type.
        Also, examine return from SetNodeType and assert on false for the
        array element counting.  This should help catch this kind of bug
        easier.

04-Mar-1993 MikeMo
    fmtstr.h
    debfmt.c
        Clean up code which maps a primitive type to a string.  In
        the process, fix cuda#2558 (vars of type "int *" not displaying
        their type correctly).

29-Feb-1993 DavidGra
    debsup.c
    debsym.c
    debutil.c
        Added S_[L|G]Thread cases where appropriate in order to support
        thread local storage.


08-Feb-1993 MikeMo
    debbind.c
    debeval.c
    debfmt.c
    debtyper.c
    debutil.c
    fmtstr.h
        Fixes for 32-bit pointers.  Main fix was in CastNode() in
        debtyper.c: we now correctly cast between 32-bit pointers to
        different types.  Other small fixes.

01-Feb-1993 MikeMo
    makefile
        Added -Zp4 to NT builds.  We haven't tracked down why this is
        needed, but it is.

30-Jan-1993 MikeMo
    debfmt.c
    debsup.c
    shfunc.h
    makefile
        Added support for the debugger to pass a flag which indicates
        whether it wants hex constants to be in upper case or lower
        case.  (Flag is in eeapi.h.)  This option is ON by default
        when building the NT DLL, OFF for all others.

        Also cleaned up some M68K code that had far more ifdefs than
        it needed to.

09-Jan-1993 Georgiop
    debbind.c:
    debeval.c:
    Modified BindContext and EvalContext to treat bp-relative l-values
    without converting them to r-values if the explicit context is the
    same as the current context (workaround for caviar #6902).

07-Jan-1993 Georgiop
    debfmt.c:
    Extended EvalMem functionality to handle word, dword and ascii
    display (i.e., now the following specifiers are accepted:
    m, mb, mw, md, ma. The default (m) is byte display.

05-Jan-1993 Georgiop
    debexpr.h
    Made SearchBasePtrBase global

    debutil.c
    Now SetNodeType calls SearchBasePtrBase in order to
    find the base symbol of a based pointer.

    debsym.c
    Disabled calling of SearchBasePtrBase from Searchsym.

05-Jan-1993 Georgiop
    debfmt.c
    Implemented 'm' format specifier for memory dumps. "addr,m" displays
    16 bytes in hex and their ascii equivalents if printable.

29-Dec-1992 Georgiop
    debsrch.c
    Changed LoadSymVal to load additional bytes if a bitfield crosses
    a byte boundary (caviar #6610). Also fixed an off-by-one error
    in the index used for accessing BitsToBytes[]. (Related bugs: 3120,
    3107)

    debeval.c
    SBitField was polluting neighboring bits during a bitfield assignment.
    Now LoadSymVal is called after the type of the node has been set to
    the underlying type of the bitfield.

23-Dec-1992 Georgiop
    debapi.c
    Defined two new functions FpMask and FpRestore in order to mask
    and restore floating point exceptions under WINDOWS3. This is
    now used by EEParse, EEvaluateTM and EEGetValueFromTM. (affects
    caviar #6765 and #6372)

22-Dec-1992 Georgiop
    debutil.c
    Restored old behavior of SetNodeType regarding based pointers
    and added an extra symbol search. If the symbol on which the
    pointer is based is bp-relative we get the base information from the
    copy of symbol record in the type section, otherwise we call SearchSym
    and do a module/global search. This fix should permit dereferencing
    based pointers that are members of a struct, or double dereferencing
    of a pointer to a based pointer. (caviar #6413)

18-Dec-1992 Georgiop
    debapi.c:
    Mask fp exceptions before calling DoEval --cav. #6372

17-Dec-1992 Georgiop
    debexpr.c:
    Fixed return value in GetChildTM prototype (EESTATUS instead of bool_t).

    debsup.c:
    GetChildTM now returns EEGENERAL if the parent TM is not expandable.
    This should fix caviar #6381

14-Dec-1992 Georgiop
    debexpr.h:
    Temporary change: added CVFTargetInfo() until it is implemented by
    the kernel.

    debbind.c:
    Modified ParseType to handle 32-bit ptrs (cuda #960)

    deblex.c:
    Modified ParseString for 32bit support (cuda #908)

    debtyper.c:
    Modified CvtPtr, CastNode, CvtSizeDown, NormalizeBase for 32bit support
    (cuda #857)

    debsym.c:
    SetAmbiant now supports NEAR32  (cuda #960)

05-Dec-1992 Georgiop
    debapi.c:
    EEGetChildTM now initializes pExState puts any error messages
    to the parent TM. If it fails it frees the child TM. Caviar 5387

    debfmt.c:
    Removed "NYI" message. FormatClass now prints "{...}" in all cases.

    debsym.c:
    MatchArgs: If the argument is a type, require an exact match (i.e.,
    identical type indices). In general when matching args we
    ignore certain modifiers (e.g., const). In this case we want to
    be very strict, since we are probably dumping a class and we want
    to let all overloaded methods bind properly. Otherwise a "symbol
    is ambiguous" message may appear instead of a function name when
    dumping a class.


03-Dec-1992 MikeMo
    deblexer.asm
        Fixed 32-bit version to have the correct size for the
        elements of the LexTable: 6 bytes per element rather
        than 4.  Now lexing works.
    deblex.c
    deblexer.asm
        Changed ParseOp from pascal to stdcall.  (Actually in deblex.c
        it's defined PASCAL, which is stdcall.)

01-Dec-1992 Georgiop
    errors.h:
    Added ERR_NOSTACKFRAME: "variable needs stack frame"
    debsym.c:
    Changed SearchSym to stop the search for a symbol that has
    been found and has been rejected because of the fact that we
    are in the prolog of a function. Instead of searching the
    parent scope we now set an error message and return HR_error.
    this fix should also handle the case ?{foo}i where foo is
    a function that has not been invoked yet and i is a local
    variable in the scope of foo. In that case BindContext will
    create a context based on the address of foo, and things
    will go on as if we were in the prolog of foo. --caviar #5898

25-Nov-1992 Georgiop
    Caviar #5563: error gracefully when a FORTRAN complex type is
    encountered. Affected files:
    errors.h:
    Added new message "type not supported"
    debutil.c:
    Error detection in UpdateMem, TypeSizePrim
    debtyper.c:
    Error detection in IntegralPromote, CheckType, CastNode
    Also changed CastNode to allow casting of an enum to an int.
    debsrch.c:
    Error detection in LoadSymVal
    debbind.c:
    Error detection in BindByteOps, Function


21-Nov-1992 Georgiop
    debeval.c:
    Added code in PlusMinus to compute the address of a huge array
    element. --caviar 2120

    Disabled function evaluation for functions that return large
    classes or structs (this is because of differences in calling
    conventions that do not appear in codeview information.)

    Changed EvalDot to call EvalStruct instead of EvalElem if the
    Right child is a reference. This should correct the problem
    of miscalculating the return value when evaluating a function
    that returns a reference to a class. (Changes related to caviar
    #5425.)

18-Nov-1992 Georgiop
    debparse.c:
    Added a special case in FParseExpr in order to parse nested
    function calls of the form "fun1(arg1,fun2(arg2))" --cav. #3678

    debsym.c:
    The test in SearchSym that restricts the function search if an
    explicit context is given was moved one level up (from SYM_EXE
    to SYM_GLOBAL) because of the changes in the symbol handler.
    In addition this test has been enhanced in order to terminate
    the search only if a symbol has already been found. This should
    fix the problem described in caviar #5321 (empty error message).

    CheckDupAmb uses function addresses again in order to determine
    if a function is already on the list. A new ADDR field has been
    added to search_t struct for this reason. --caviar #5564

    Merged change from .420 tree: added explicit casts to (char far *)
    for the args of _fstrncmp(). This should not affect the generated
    code, since we compile large model anyway. --#5575

    debexpr.h:
    Added ADDR field in search_t. Removed the old address_t field, as
    it was not being used.

    debfmt.c:
    Added missing quote (') in _fmt_char_zr --caviar #5513

12-Nov-1992 Georgiop
    debsym.c:
    Changed MatchArgs to tolerate duplicate functions. pName->best is not
    updated if the current function is the same as the best one so far.
    Changed CheckDupAmb to compare function names and types instead of
    addresses. (It was broken because it was accessing a volatile
    evaluation node) -- Caviar #4791

11-Nov-1992 Georgiop
    debsym.c:
    DebLoadConst does not change the type of an enum to the underlying
    type any more. This helps proper argument matching. (caviar
    #3716, 3718).
    debfmt.c:
    Format(): In order to display an enum constant as an int, cast it
    to the underlying type before displaying it.

05-Nov-1992 Georgiop
    debeval.c:
    EvalAddrOf now sets an error message instead of asserting
    if it sees anything but an l-value (caviar #5191)

    debsym.c:
    Fixed coding error: '==' was being used instead of '=' in some
    assignements related to pExState->err_num. (caviar #4517)

28-Oct-1992 MikeMo
    deblexer.asm
        For NT, changed from C to PASCAL.
    deblex.c
        Under NT Beta 1, PASCAL is defined to __stdcall, but we want
        to declare ParseOp (which is defined in deblexer.asm) as actually
        being pascal, so I changed the prototype from using PASCAL to
        using _pascal.
    shfunc.h
    debapi.c
        Use EXPCALL calling convention for exported functions.
    eent.mak
        No longer need to invoke CVTOMF.

27-Oct-1992 Georgiop
    debsym.c:
    Changed SearchSym to handle failures of PushStack. This should
    prevent a GP fault in low memory conditions (caviar 4075)
    debutil.c:
    Added check in GrowStack to avoid unlimited growth of stack.
    Removed corresponding check from PushStack. (caviar 4075)
    debfmt.c:
    Increased the size of tempbuf in VerifyFormat so that FLT_MAX
    can be printed using %f format. Doubles and Long Doubles that
    are too large to be printed in %f format, are now printed in %e
    format. (caviar #4049, also related to #933).

20-Oct-1992 MarkBro
    debapi.c:
        Changed order of checking in EEGetExtendedInfo.  It was checking
        for ETIPOINTER before ETIARRAY.  The problem was that arrays
        are always pointers, but pointers aren't necessisarily arrays.  So
        now, check to see if the htm is an array before a pointer.

16-Oct-1992 Georgiop
    debeval.c:
        Added VFuncAddress2 function in order to compute the address of
        a virtual function if the offset in the vtable is given
        (VFuncAddress does a similar thing, but uses the function index,
        not the offset). This should solve caviar #4094. (Also inlined
        these functions as they were called only once.)

    debsym.c
        Modified MatchArgs in order to allow matching a far pointer with
        an array that has the same underlying type. Based pointer matching
        is not supported. (caviar #3713)
        Also changed definitions of vtabind (UOFFSET instead of ushort) and
        made the EE skip 4 bytes instead of 2 when accessing the vtab offset
        in an LF_MLIST record. (caviar #4342)


16-Oct-1992 MikeMo
    cvinfo.h
    cvtypes.h
    eeapi.h
    shapi.h
    types.h
        Deleted, moved to the CVINC.420 project.

    makefile
    *.mak
        Modified to support the new CVINC.420 project.

15-Oct-1992 Georgiop
    debsym.c:
        Modified MatchArgs to handle actual arguments that are references.
        This should fix the third function call mentioned in caviar #4182.
        Also changed two error messages to ERR_AMBIGUOUS instead of
        ERR_ARGLIST.

14-Oct-1992 Georgiop
    debbind.c:
        Changed the way VerifyFormat treated floating point format
        specifiers: Now g,e,f can be used with any floating point
        type. All prefixes except h are accepted, but are actually
        ignored: the EE uses the right prefix based on the size of
        the corresponding size. (caviar #933, #4058)

13-Oct-1992 GlennN
    debsym.c:
         bug 4380. SearchRoot() changed to ignore returns
         of NOTYPE when it encounters a nested unnamed ENUM
         type. By doing this searches of classes with
         unnamed enums will not abort prematurely. After
         review from SteveSm We put a check around the
         break, we only do this if we are binding a
         breakpoint so that we minimize the potential
         impact.

11-Oct-1992 MikeMo
    debapi.c
    debbind.c
    deberr.c
    debsup.c
    debsym.c
    debexpr.h
    errors.h:
        Added hErrStr to the exstate_t structure to save additional info
        about an error, so that if a "symbol not found" error occurs we
        can tell the user what symbol wasn't found.
    makefile:
        Changed NT build to use -Z7 instead of -Zi, and to not use -f
        since cl3232 doesn't recognize it.

10-Oct-1992 MikeMo
    *.mak makefile:
        Cleaned up some of the make stuff, to reduce needless repetition.
    types.h:
        SEGBASED(x) maps to _based(x) for 16-bit, nothing for 32-bit
        INLINE      maps to __inline (the EE uses this)
        _fstrcmp    maps to strcmp on NT
    debapi.c:
        Removed eedllinit(); link sets entry point to _CRT_INIT directly.
    debbind.c deberr.c debfmt.c debeval.c deblex.c debparse.c debsym.c:
        Use SEGBASED instead of _based.
    deberr.c debfmt.c:
        Fix lots of bogus based/unbased warnings.
    *.*
        Lots of fixes to get it working under NT.

07-Oct-1992 Georgiop
    debbind.c:
        BindBScope now reorganizes the tree if its left child foo has
        been rewritten as "this->foo". Reorganizing is necessary to
        restore operator priority (the bscope operator has higher priority
        than '->'). This should fix caviar #932, 2571.

06-Oct-1992 Georgiop
    debparse.c:
        Added a static table with the primitive type names. This table
        is scanned when an expression like "(token) op ..." is parsed,
        where op is an operator that has a binary and a unary form (e.g,
        +, -, *, &). If "token" is a primitive type name we know that
        the expression is a type cast and the operator is unary
        (caviar #3836)


05-Oct-1992 Georgiop
   debeval.c
       Added a new function (IsStringLiteral) that gets called by
       EvalFunction before the invokation of PushString.
       PushString is not called unless there is actually a quoted
       string in the expression that needs to be pushed on the
       user's stack. (this should solve caviar #4152)


05-Oct-1992 v-natjm
   makefile:    Modified these two files to handle the new Visual
   eew0cxx.mak: C++ DLL names

04-Oct-1992 Georgiop
    debsup.c
    'format' pointer in GetChildTM was incorrectly typed as static.

04-Oct-1992 Georgiop
    debeval.c
    Fix for caviar #932,4092,4099: EvalFunction fakes a stack entry
    before evaluating Lchild (if the Lchild node is OP_bscope).

04-Oct-1992 MikeMo
    debapi.c
        Fixed EEGetAccessFromTM: (1) it failed to handle a number of
        error cases; (2) it was allocating a much bigger buffer than
        it needed.  Also commented the little bugger.

        Changed two uses of "C_only" to "C_ONLY".

02-Oct-1992 JimSa
    debbind.c
        Need to fail for _segment in BuildType() when debugging 32 bit .exe.
        (Cuda #962)
    debsym.c
        Needed to set addr.flat32 bit for S_*32 symbols in SymToNode().
        This was only bein done for M68K but needed to be done for all
        32 bit expression evaluation. (Cuda #1030)

01-Oct-1992 Georgiop
    debsup.c:
    GetChildTM uses radix of parent TM for generating array indices (caviar
    #3910, see also #872)

30-Sep-1992 GlennN
    debapi.c
    eeapi.h
    shfunc.h
        added parameter fForceBind to pass to EEBind from this call.

30-Sep-1992 Georgiop
    debeval.c:
    Changed Relational() and Arith() for special handling of near null
    pointer comparison (caviar #3699, #3654)
    DoEval() now allocates EStack space if hEStack is Null (caviar #3804)
    EvalFunction() was not handling correctly references to integers
    constants (caviar #3712)

    debbind.c:
    PushCArgs, PushPArgs, PushFargs: if the argument is a reference use
    SetNodeType for the underlying type in order to remove modifiers.
    (caviar #3712)

    errors.h:
    Changed "implicit conversion required" message to "argument type not
    supported" (caviar #3843)

29-Sep-1992 v-natjm
   eew0cxx.mak:
      Added /NOE to link command line to avoid the linker error on multiple
      symbols for WEP (Build with C800)

21-Sep-1992 Georgiop
    debsym.c:
    SkipModifiers now handles primitive types

18-Sep-1992 DanS
    eentcxx.mak
    remove ntmain.obj, -base switch, use libcmt.lib
    debapi.c
    add call to _CRT_INIT from eedllinit
    coffbase.txt
    ntmain.c

    removed from project
17-Sep-1992 Georgiop
    debexpr.h
    Added overloadCount field in search_t.
    debsym.c:
    Changed MatchArgs, MatchFunction and MatchMethod to require exact
    type matches for overloaded function calls.
    debbind.c:
    Disabled error checking for string literals.
    BindCast now propagates type info to the OP_CAST node. This is necessary
    for calling functions with cast string literals as arguments.
    debeval.c:
    Changed the conditions under which PushString is called by EvalFunction
    debutil.c:
    SetNodeType now sets PTR_UTYPE for primitive pointer types
    (changes related to caviar #919)

10-Sep-1992 Georgiop
    debsym.c:
    Changed SetBPValue to save the offset of a class member (caviar #1756)

10-Sep-1992 DanS
    debeval.c:
    far -> FAR (portability)
    deblexer.asm:
    rewrote ParseOp for 32-bit i386, used HOST32 macro to key 32-bit code.
    debsym.c:
    far -> FAR (portability)
    debutil.c:
    far -> FAR (portability)
    makefile:
    added eentcxx
    opprec.c:
    bug on using pointer from strpbrk w/o checking for NULL
    eentcxx.mak:
    added for NT build of EE
    coffbase.txt:
    HACK! copied from NT for basing DLLs in NT.

4-Sept-1992 Rossg
    cvinfo.h
    Update to cvinfo with LF_VARSTRING numeric leaf

03-Sep-1992 Georgiop
    debutil.c:
    TypeDefSize now handles T_CHAR, T_UCHAR, T_INT2, T_UINT2
    T_INT4, T_UINT4 when dealing with bitfields.

01-Sep-1992 Georgiop
    debbind.c:
    debeval.c:
    Changed T_PCHAR to T_PRCHAR so that string literals can be
    passed as arguments to functions. (Caviar #3127 -- this was
    a regression caused by the changes on 16-Jul-92)

28-Aug-1992 Georgiop
    debbind.c:
    Bug fix in ParseType: restore original start and length of type
    string.
    debtyper.d:
    Do not allow casting of an object to a pointer.

28-Aug-1992 Georgiop
    debapi.c:
    Do not print "public " when displaying access type info.

25-Aug-1992 Georgiop
    eeapi.h:
    debapi.h:
    Added extra argument in EEGetAccessFromTM, so that one can choose
    between the full text and the abbreviated version

24-Aug-1992 Georgiop
    debeval.c:
    Changed EvalFunction to call EvalUtil in case the formal argument
    type is a reference to a class. (caviar #914)
    debsym.c:
    MatchArgs now allows references. Both changes are for caviar #914

20-Aug-1992 Georgiop
    debsym.c:
    Removed a line from MatchFunction that accessed pSymClass. This
    line had been added (incorrectly) in order to support
    propagation of access type info, and could produce a GPfault.

19-Aug-1992 MarkBro
    debapi.c:
        Added missing entries in the EXF struct in EEInitializeExpr.

18-Aug-1992 MarkBro
    dosdll.asm:
        Added missing entries in the dosx exe header.

16-Aug-1992 Georgiop
    debapi.c:
    Comment out DASSERT in EEGetAccessFromTM (conversion functions
    did not bind ok, so EEGetAccessFromTM was hitting the assersion)
    debeval.c:
    restore access flags after evaluation
    debsym.c:
    support propagation of access type information

11-Aug-1992 Georgiop
    debapi.c:
    ParseBind now uses the radix stored in the TM. This is a
    fix for Caviar #872

23-Jul-1992 Georgiop
    debeval.c:
    EvalBScope faked up a stack entry if CLASS_GLOBALTYPE(pv) was
    true, and the stack was empty. However, in cases like ?C::foo(5)
    CLASS_GLOBALTYPE may be true, and the stack is not empty (i.e., it
    contains the argument to the function), yet a separate entry is
    required on the stack. The change was to enable faking up a stack
    entry in this case.

23-Jul-1992 Georgiop
    debsym.c:
    Disabled the code in SearchQualName that tried a symbol even if
    there was not exact type match when binding breakpoints.
    According to RossG this was a hack for an incomplete pack
    problem that should have been fixed by now. Disabling this
    code resolves Caviar #1081.

23-Jul-1992 Georgiop
    debapi.c:
    accessstr = {"   ", "private ", "protected ", "public "}
    (Changed uppercase 'P' to lowercase after a request from
    Sequoia people)

21-Jul-1992 Georgiop
    debbind.c:
    Fixed ParseType to retain type information if the type is an alias
    to a primitive type. [Caviar # 2271]

17-Jul-1992 Georgiop
    debfmt.c:
    Fixed bug in FormatProc, in order to print the function return type
    if select is 0. This takes care of bugs 1142 and 2343. The kernel
    should also be modified to call EEGetTypeFromTM using a handle to
    a Name. That way EEGetTypeFromTM will insert the name in the proper
    place and a function name will be displayed as "void foo(void)",
    not "void (void) foo".

16-Jul-1992 Georgiop
    deblex.c:
    ParseString now sets type to T_RCHAR instead of T_CHAR. This
    takes care of bug 917, although the real problem (EE does not
    distinguish between explicit and implicit casts) remains.

16-Jul-1992 Georgiop
    errors.h:
    Added ERR_NOMODIFIABLELV (l-value is not modifiable)

    debbind.c:
    BindAssign now checks for non-modifiable l-values (arrays,
    functions, or constants) -- CAVIAR bug 952

09-Jul-1992 Georgiop
    debapi.c:
    eeapi.c:
    Added a new enumarator as a return value for EEIsExpandableTM:
    ETYPEPTR denotes that the TM is a type that is expandable as a
    pointer to a type. (The underlying type may or may not be
    expandable). This solves CAVIAR bug 927.
