Annotation of gcc/cp/ChangeLog, revision 1.1

1.1     ! root        1: Thu Nov 17 10:56:50 1994  Jason Merrill  <[email protected]>
        !             2: 
        !             3:         * typeck2.c (build_m_component_ref): Check the basetype of the
        !             4:         member pointer against the main variant of the object type.
        !             5: 
        !             6: Mon Nov 14 14:21:52 1994  Jason Merrill  <[email protected]>
        !             7: 
        !             8:         * cvt.c (convert_to_reference): Make sure that the original expr
        !             9:         gets its type back when converting a reference.
        !            10: 
        !            11:         * method.c (build_overload_name): Clear numeric_outputed_need_bar here.
        !            12:         (build_decl_overload): Instead of here.
        !            13: 
        !            14: Tue Nov  8 17:11:24 1994  Jason Merrill  <[email protected]>
        !            15: 
        !            16:         * cvt.c (cp_convert): Don't build a TARGET_EXPR if we're not in a
        !            17:         function.
        !            18: 
        !            19:         * typeck.c (convert_for_initialization): Handle initialization from
        !            20:         a TARGET_EXPR.
        !            21: 
        !            22: Sun Nov  6 01:34:24 1994  Jason Merrill  ([email protected])
        !            23: 
        !            24:         * pt.c (lookup_nested_type_by_name): Fix list-walking logic.
        !            25:         (tsubst): When replacing a TEMPLATE_TYPE_PARM, propagate
        !            26:         TYPE_READONLY and TYPE_VOLATILE from the argument.
        !            27:         (unify): When unifying with a TEMPLATE_TYPE_PARM, remove cv-quals
        !            28:         present in parm from arg.
        !            29:         (type_unification): Strip REFERENCE_TYPE from the argument type.
        !            30:         (unify): Don't strip REFERENCE_TYPE from the argument type.
        !            31: 
        !            32: Sat Nov  5 22:42:15 1994  Greg McGary  ([email protected])
        !            33: 
        !            34:         * pt.c (do_type_instantiation): Check to see if there's a
        !            35:         IDENTIFIER_TEMPLATE on a class before calling
        !            36:         instantiate_member_templates().
        !            37: 
        !            38: Thu Nov  3 18:48:19 1994  Paul Eggert  <[email protected]>
        !            39: 
        !            40:        * Makefile.in (spew.o, lex.o, pt.o):
        !            41:        Depend on $(srcdir)/parse.h, not parse.h.
        !            42: 
        !            43: Sat Oct 29 07:18:52 1994  Richard Kenner  ([email protected])
        !            44: 
        !            45:        * g++.c (main): Cast arg to bzero to avoid warning.
        !            46: 
        !            47: Tue Oct 25 13:37:41 1994  Jason Merrill  ([email protected])
        !            48: 
        !            49:         * call.c (convert_harshness): Check for TREE_UNSIGNED differences
        !            50:         after checking for integral conversions.
        !            51: 
        !            52: Sun Oct 23 13:19:55 1994  Jason Merrill  ([email protected])
        !            53: 
        !            54:         * decl2.c: Declare flag_access_control.
        !            55:         (struct lang_f_options): Add access-control.
        !            56:         * expr.c (cplus_expand_expr, NEW_EXPR): Unset flag_access_control
        !            57:         for the call to expand_aggr_init to copy the object out of the
        !            58:         pcc_struct_return slot.
        !            59:         * search.c (compute_access): if (!flag_access_control) return
        !            60:         access_public.
        !            61: 
        !            62: Fri Oct 21 00:32:54 1994  Jason Merrill  ([email protected])
        !            63: 
        !            64:         * decl.c (init_decl_processing): Use __pure_virtual for abort_fndecl
        !            65:         instead of abort, since the OSF/1 dynamic linker doesn't like to see
        !            66:         relocation entries for abort.
        !            67: 
        !            68:         * tree.c (array_type_nelts_total): Use sizetype, not
        !            69:         integer_type_node.
        !            70:         (array_type_nelts_top): Ditto.
        !            71: 
        !            72: Mon Oct 17 18:03:15 1994  Jason Merrill  ([email protected])
        !            73: 
        !            74:         * decl.c (init_decl_processing): Make alloca a builtin.
        !            75: 
        !            76: Mon Oct 17 15:56:11 1994  Mike Stump  <[email protected]>
        !            77: 
        !            78:        * except.c (expand_start_catch_block): Make sure the false label
        !            79:        gets onto the permanent obstack, as it is used for the exception
        !            80:        table.
        !            81: 
        !            82: Fri Oct 14 18:54:48 1994  Mike Stump  <[email protected]>
        !            83: 
        !            84:        * class.c (modify_one_vtable): Since the DECL_CONTEXT of fndecl can
        !            85:        be set just below, use current_fndecl instead.
        !            86: 
        !            87: Thu Oct 13 17:44:55 1994  Jason Merrill  ([email protected])
        !            88: 
        !            89:         * method.c (build_decl_overload): Set numeric_outputed_need_bar to 0.
        !            90: 
        !            91: Wed Oct 12 13:27:57 1994  Jason Merrill  ([email protected])
        !            92: 
        !            93:         * lex.c (real_yylex): Use HOST_BITS_PER_WIDE_INT to determine the
        !            94:         bitmask for lexing character constants.
        !            95: 
        !            96:         * call.c (build_method_call): Disable code that tries to do tricky
        !            97:         stuff with a default parameter that is a constructor call, but
        !            98:         actually does other tricky stuff that breaks things.
        !            99: 
        !           100: Wed Oct 12 16:14:01 1994  Benoit Belley  <[email protected]>
        !           101: 
        !           102:         * decl.c (finish_enum): Disable code which forces enums to be signed,
        !           103:         since this conflicts with their use as bitfields. type_promotes_to
        !           104:         handles promotion of enums of underlying unsigned types to signed
        !           105:         integer types.
        !           106: 
        !           107: Wed Oct 12 13:24:03 1994  Jason Merrill  ([email protected])
        !           108: 
        !           109:         * cvt.c (type_promotes_to): Also promote enums to long if
        !           110:         appropriate.
        !           111: 
        !           112:         * typeck.c (default_conversion): Don't expect type_promotes_to to
        !           113:         return a main variant.
        !           114: 
        !           115: Wed Oct 12 12:19:45 1994  Jason Merrill  ([email protected])
        !           116: 
        !           117:         * call.c (build_scoped_method_call): Don't lose side effects in the
        !           118:         object expression when calling a non-existent destructor.
        !           119: 
        !           120: Fri Sep  2 19:05:21 1994  Rohan Lenard  ([email protected])
        !           121: 
        !           122:         * call.c (build_scoped_method_call): Remove erroneous error message
        !           123:         when destructor call is written as a scoped call.
        !           124: 
        !           125: Tue Oct 11 23:48:31 1994  Jason Merrill  ([email protected])
        !           126:   
        !           127:         * various: Cast pointer arguments to bzero and bcopy to char *.
        !           128: 
        !           129: Tue Oct 11 19:34:32 1994  Mike Stump  <[email protected]>
        !           130: 
        !           131:        * class.c (get_derived_offset): Added a type parameter to limit how
        !           132:        far up the CLASSTYPE_VFIELD_PARENT chain we search.
        !           133:        * class.c (modify_one_vtable, fixup_vtable_deltas): When forming the
        !           134:        offset to put into the vtable for the this parameter, make sure we
        !           135:        don't offset from a parent of the DECL_CONTEXT of the function.
        !           136: 
        !           137: Mon Oct 10 00:56:53 1994  Jason Merrill  ([email protected])
        !           138: 
        !           139:         * lex.c (cons_up_default_function): Mark methods in a template class
        !           140:         as template instances.  Store the values of interface_unknown and
        !           141:         interface_only for do_pending_inlines.
        !           142:         (do_pending_inlines): Use them.
        !           143: 
        !           144: Sun Oct  9 02:42:29 1994  Jason Merrill  ([email protected])
        !           145: 
        !           146:         * method.c (do_build_copy_constructor): Handle anonymous unions.
        !           147:         (do_build_assign_ref): Ditto.
        !           148:         (largest_union_member): Move from lex.c.
        !           149: 
        !           150: Wed Oct  5 13:44:41 1994  Jason Merrill  ([email protected])
        !           151: 
        !           152:         * call.c (build_overload_call_real): Don't immediately do
        !           153:         array->pointer conversion.
        !           154: 
        !           155:         * pt.c (type_unification): If not passing to a reference, strip
        !           156:         cv-quals.  Also handle array->pointer conversion.
        !           157: 
        !           158: Tue Oct  4 17:45:37 1994  Jason Merrill  ([email protected])
        !           159: 
        !           160:         * decl.c (grokdeclarator): Don't warn about applying const to a
        !           161:         const typedef or template type parameter.
        !           162: 
        !           163: Mon Oct  3 15:02:41 1994  Jason Merrill  ([email protected])
        !           164: 
        !           165:         * decl.c (shadow_tag): Remove obsolete code for pushing tags and
        !           166:         dealing with exceptions.
        !           167: 
        !           168: Sat Oct  1 21:42:18 1994  Jason Merrill  ([email protected])
        !           169: 
        !           170:         * init.c (resolve_offset_ref): Fix types used in resolving .*
        !           171:         expressions.
        !           172: 
        !           173: Thu Sep 29 16:15:36 1994  Michael I Bushnell  <[email protected]>
        !           174: 
        !           175:        * g++.c: Rework last change so it's done like collect.c (and 
        !           176:        gcc.c).
        !           177: 
        !           178: Wed Sep 28 19:19:01 1994  Brendan Kehoe  ([email protected])
        !           179: 
        !           180:        * except.c (register_exception_table): Use Pmode, not PTRmode.
        !           181: 
        !           182: Wed Sep 14 10:17:27 1994  Michael I Bushnell  <[email protected]>
        !           183: 
        !           184:        * g++.c: Include <sys/errno.h> in case `errno' is a macro
        !           185:        as permitted by ANSI C.
        !           186: 
        !           187: Thu Sep 29 16:58:52 1994  Mike Stump  <[email protected]>
        !           188: 
        !           189:        * typeck.c (c_expand_return): Use magic so the backend can fixup the
        !           190:        assignment into the return register, so cleanups won't clobber it.
        !           191: 
        !           192: Thu Sep 29 13:08:50 1994  Jason Merrill  ([email protected])
        !           193: 
        !           194:        * method.c (hack_identifier): Don't call assemble_external for
        !           195:        template decls.
        !           196: 
        !           197:        * decl.c (finish_decl): Also end temporary allocation if the decl in
        !           198:        question has a type of error_mark_node.
        !           199: 
        !           200: Wed Sep 28 21:45:00 1994  Mike Stump  ([email protected])
        !           201: 
        !           202:        * typeck.c (build_modify_expr): When optimizing ?: on lhs, make sure
        !           203:        that if the ?: was a reference type, that the subparts will be also.
        !           204: 
        !           205: Wed Sep 28 16:14:04 1994  Brendan Kehoe  ([email protected])
        !           206: 
        !           207:        * except.c (register_exception_table): Use Pmode, not PTRmode.
        !           208: 
        !           209: Fri Sep 23 13:54:27 1994  Jason Merrill  ([email protected])
        !           210: 
        !           211:        * lex.c (do_pending_inlines): Do method synthesis after the
        !           212:        pending_inlines have been reversed.
        !           213: 
        !           214: Thu Sep 22 12:53:03 1994  Per Bothner  ([email protected])
        !           215: 
        !           216:        * decl2.c (finish_file):  Fix Brendan's fix:  Only call
        !           217:        register_exception_table if there is a non-empty exception table.
        !           218: 
        !           219: Thu Sep 22 12:03:46 1994  Brendan Kehoe  ([email protected])
        !           220: 
        !           221:        * decl2.c (finish_file): Only do register_exception_table if
        !           222:        -fhandle-exceptions is being used.
        !           223: 
        !           224: Wed Sep 21 19:01:51 1994  Per Bothner  ([email protected])
        !           225: 
        !           226:        * except.c (output_exception_table_entry):  Simplify
        !           227:        by using assemble_integer.
        !           228:        (build_exception_table):  Change to return a count.
        !           229:        Cleanup to use standard macros, instead of hard-wired
        !           230:        sparc asm format.  Don't make __EXCEPTION_TABLE__ global.
        !           231:        (register_exception_table):  New function.  Generate call to builtin.
        !           232:        * decl2.c (finish_file):  Call register_exception_table.
        !           233:        * cp-tree.h (build_exception_table):  Fix prototype.
        !           234: 
        !           235: Wed Sep 21 13:20:42 1994  Brendan Kehoe  ([email protected])
        !           236: 
        !           237:        * tree.c (break_out_calls): Don't try to duplicate the DECL_INITIAL.
        !           238: 
        !           239:        * decl2.c (delete_sanity): Give an error at trying to delete a
        !           240:        function.
        !           241: 
        !           242: Wed Sep 21 11:47:10 1994  Jason Merrill  ([email protected])
        !           243: 
        !           244:        * lex.c (cons_up_default_function): Mark synthesized destructors
        !           245:        inline.
        !           246: 
        !           247:        * decl.c (duplicate_decls): Ignore redeclarations of wchar_t as
        !           248:        something other than __wchar_t, complaining if -pedantic and not in
        !           249:        a system header.
        !           250: 
        !           251: Tue Sep 20 09:43:28 1994  Jason Merrill  ([email protected])
        !           252: 
        !           253:        * decl.c (xref_tag): Set up BINFO_INHERITANCE_CHAIN on base binfos
        !           254:        here.
        !           255: 
        !           256:        * typeck.c (build_modify_expr): Require complete type after checking
        !           257:        for error_mark_node.
        !           258: 
        !           259:        * call.c (build_method_call): Print parmtypes when complaining of
        !           260:        ambiguous call.
        !           261: 
        !           262:        * typeck.c (build_modify_expr): Handle assignment to array from
        !           263:        non-array.
        !           264: 
        !           265:        * decl.c (lookup_name_real): Deal with got_scope == error_mark_node.
        !           266: 
        !           267:        * call.c (build_method_call): Don't bother with the exact match.
        !           268: 
        !           269: Mon Sep 19 00:51:39 1994  Jason Merrill  ([email protected])
        !           270: 
        !           271:        * init.c (expand_aggr_init): If we munge the type of the variable,
        !           272:        also munge the type of the initializer.
        !           273: 
        !           274:        * decl.c (grokdeclarator): Use <= when comparing to RID_LAST_MODIFIER.
        !           275:        (init_decl_processing): Push artificial declaration of wchar_t so
        !           276:        people don't have to declare it before they can use it.
        !           277: 
        !           278:        * error.c (cp_line_of): return lineno in lieu of 0.
        !           279: 
        !           280:        * typeck.c (convert_for_assignment): Handle conversion of pmfs to
        !           281:        int and bool.
        !           282:        (build_component_ref): Fold the COMPONENT_REF in case it can be
        !           283:        reduced.
        !           284: 
        !           285:        * typeck2.c (store_init_value): Don't pedwarn about non-constant
        !           286:        bracketed initializers for automatic variables.
        !           287: 
        !           288: Sun Sep 18 10:12:12 1994  Jason Merrill  ([email protected])
        !           289: 
        !           290:        * error.c (dump_decl): Don't say `typedef enum foo foo'.
        !           291: 
        !           292:        * decl.c (start_decl): Don't set TREE_PUBLIC on template decls just
        !           293:        because they're affected by #pragma i/i.  We'll deal with that when
        !           294:        they get instantiated.
        !           295: 
        !           296:        * typeck.c (build_unary_op): Clean up cruft in ADDR_EXPR case.
        !           297: 
        !           298:        * class.c (instantiate_type): Set TREE_CONSTANT on instantiated
        !           299:        ADDR_EXPRs if appropriate.
        !           300: 
        !           301:        * decl.c (build_ptrmemfunc_type): Unset IS_AGGR_TYPE on pmf types.
        !           302: 
        !           303:        * typeck.c (build_ptrmemfunc): Handle &overloaded_method as an
        !           304:        initializer properly.
        !           305:        * typeck2.c (digest_init): Ditto.
        !           306: 
        !           307:        * tree.c (cp_build_type_variant): Like c_build_type_variant, except
        !           308:        it uses build_cplus_array_type.
        !           309:        * *.c: Use cp_build_type_variant instead of c_build_type_variant.
        !           310: 
        !           311:        * pt.c (do_type_instantiation): Don't try to instantiate nested
        !           312:         enums.
        !           313: 
        !           314: Tue Sep 13 10:56:58 1994  Jason Merrill  ([email protected])
        !           315: 
        !           316:        * cvt.c (build_up_reference): Handle preincrement and predecrement
        !           317:         properly.
        !           318: 
        !           319: Tue Sep 13 09:51:59 1994  Brendan Kehoe  ([email protected])
        !           320: 
        !           321:        * decl.c (finish_decl): Only lay out the rtl for DECL if it is, in
        !           322:        fact, static.
        !           323: 
        !           324: Mon Sep 12 14:40:30 1994  Brendan Kehoe  ([email protected])
        !           325: 
        !           326:        * decl.c (finish_decl): Lay out the rtl for DECL before doing
        !           327:        grok_reference_init, in case it's static.
        !           328: 
        !           329: Mon Sep 12 12:45:38 1994  Jason Merrill  ([email protected])
        !           330: 
        !           331:        * class.c (finish_struct): Don't synthesize constructors if the
        !           332:        class has a field with the same name as the class.  Don't die on
        !           333:        classes with no constructors or destructors.  Don't die if the head
        !           334:        and tail of the class are in different files.
        !           335: 
        !           336:        * decl.c (grokdeclarator): Don't treat a function pointer field
        !           337:        with the same name as the class as a constructor.
        !           338: 
        !           339: Fri Sep  9 13:17:00 1994  Jason Merrill  ([email protected])
        !           340: 
        !           341:        * typeck.c (build_c_cast): Pull constant values out of their
        !           342:        variables here.
        !           343: 
        !           344:        * decl.c (duplicate_decls): Only propagate DECL_CHAIN in
        !           345:        FUNCTION_DECLs and TEMPLATE_DECLs.
        !           346: 
        !           347: Thu Sep  8 10:07:48 1994  Jason Merrill  ([email protected])
        !           348: 
        !           349:        * decl.c (duplicate_decls): Propagate DECL_CHAIN in all DECLs that
        !           350:        have it.
        !           351: 
        !           352:        * pt.c (unify): REALs and INTEGERs only unify with their own genus.
        !           353:        (instantiate_member_templates): Don't muck with DECL_EXTERNAL and
        !           354:        TREE_PUBLIC unless -fexternal-templates.
        !           355: 
        !           356: Wed Sep  7 13:17:10 1994  Jason Merrill  ([email protected])
        !           357: 
        !           358:        * pt.c (do_type_instantiation): Call instantiate_member_templates.
        !           359:        Deal with specializations.
        !           360:        (tsubst): Don't stick the mangled name in DECL_NAME for function
        !           361:        instantiations.  Don't push them, either.
        !           362: 
        !           363:        * decl2.c (grokfield): Move code for generating the
        !           364:        DECL_ASSEMBLER_NAME for static members from here.
        !           365:        * method.c (build_static_name): To here.
        !           366:        * decl.c (grokvardecl): Call build_static_name.
        !           367:        (duplicate_decls): Keep old DECL_ASSEMBLER_NAME.
        !           368: 
        !           369: Mon Sep  5 12:49:18 1994  Jason Merrill  ([email protected])
        !           370: 
        !           371:        * call.c (build_method_call): if -Wsynth, warn when selecting
        !           372:        synthesized op= over user-supplied one cfront would select.
        !           373:        * decl2.c (lang_decode_option): Handle -Wsynth.
        !           374: 
        !           375: Fri Sep  2 15:11:59 1994  Jason Merrill  ([email protected])
        !           376: 
        !           377:        * decl.c (finish_enum): Overhaul to fix several bugs.
        !           378:        (start_enum): Disable useless code.
        !           379: 
        !           380: Thu Sep  1 16:04:54 1994  Jason Merrill  ([email protected])
        !           381: 
        !           382:        * typeck.c (c_expand_return): Warn about returning a reference to a
        !           383:        temporary.
        !           384:        (convert_arguments): Increment argument counter when using default
        !           385:        arguments, too.
        !           386: 
        !           387: Wed Aug 31 14:29:22 1994  Jason Merrill  ([email protected])
        !           388: 
        !           389:        * decl.c (finish_decl): If the type of decl is error_mark_node,
        !           390:        don't bother trying to do anything.
        !           391: 
        !           392:        * typeck.c (convert_for_initialization): If the rhs contains a
        !           393:        constructor call, pretend the lhs type needs to be constructed.
        !           394: 
        !           395:        * init.c (expand_default_init): If we stick the object inside the
        !           396:        initializer, mark the initializer used.
        !           397: 
        !           398: Tue Aug 30 13:50:18 1994  Jason Merrill  ([email protected])
        !           399: 
        !           400:        * method.c (build_assign_ref): return *this;
        !           401:        (build_assign_ref): Fix base assignment order.
        !           402:        (build_copy_constructor): Fix member init order.
        !           403: 
        !           404: Mon Aug 29 13:54:39 1994  Brendan Kehoe  ([email protected])
        !           405: 
        !           406:        * g++.c (main): Remember to clear out SAW_SPECLANG after we see
        !           407:        its argument.
        !           408: 
        !           409: Sat Aug 27 09:36:03 1994  Jason Merrill  ([email protected])
        !           410: 
        !           411:        * method.c (build_copy_constructor): Also copy virtual bases.
        !           412: 
        !           413: Fri Aug 26 17:05:15 1994  Jason Merrill  ([email protected])
        !           414: 
        !           415:        * lex.c (do_pending_inlines): Clear out pending_inlines before doing
        !           416:        any synthesis.  Also first set deja_vu on all pending_inlines.
        !           417: 
        !           418:        * method.c (build_assign_ref): Use build_member_call to invoke base
        !           419:        operator=, rather than build_modify_expr.  And use
        !           420:        build_reference_type instead of TYPE_REFERENCE_TO.
        !           421:        (build_copy_constructor): Use TYPE_NESTED_NAME to identify the
        !           422:        basetype.
        !           423: 
        !           424:        * decl2.c (grokfield): Don't complain about undefined local class
        !           425:        methods.
        !           426: 
        !           427:        * class.c (finish_struct): Don't try to synthesize methods here.
        !           428:        * lex.c (do_pending_inlines): Instead, synthesize them here.
        !           429:        (init_lex): Initialize synth_obstack.
        !           430:        (cons_up_default_function): Stick synthesis request on
        !           431:        pending_inlines.
        !           432: 
        !           433: Fri Aug 26 12:24:14 1994  Brendan Kehoe  ([email protected])
        !           434: 
        !           435:        * call.c (build_method_call) [PCC_STATIC_STRUCT_RETURN]: Also
        !           436:        accept an RTL_EXPR in what we're about to use for the instance,
        !           437:        since anything which would end up with pcc_struct_return set
        !           438:        inside cplus_expand_expr.
        !           439: 
        !           440:        * cp-tree.h (cons_up_default_function): Note change of prototype.
        !           441: 
        !           442: Thu Aug 25 23:05:30 1994  Gerald Baumgartner  ([email protected])
        !           443: 
        !           444:        * class.c (finish_struct): Undid change from Aug 21 testing
        !           445:        CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING.
        !           446:        * parse.y (left_curly): Ditto, undid change from Aug 21.
        !           447:        * decl.c (xref_tag): Undid change from Aug 21, set
        !           448:        CLASSTYPE_INTERFACE correctly, and added comments.
        !           449: 
        !           450: Thu Aug 25 00:36:31 1994  Jason Merrill  ([email protected])
        !           451: 
        !           452:        Rework approach to synthesized methods; don't go through the parser
        !           453:        anymore.
        !           454:        * class.c (finish_struct): Use new synthesis approach.
        !           455:        * lex.c (cons_up_default_function): Now just creates declaration,
        !           456:        not code.
        !           457:        (largest_union_member): #if 0 out.
        !           458:        (default_assign_ref_body): Ditto.
        !           459:        (default_copy_constructor_body): Ditto.
        !           460:        * method.c (build_default_constructor): New function to synthesize X().
        !           461:        (build_copy_constructor): Synthesize X(X&).
        !           462:        (build_assign_ref): Synthesize X::operator=(X&).
        !           463:        (build_dtor): Synthesize ~X().
        !           464: 
        !           465:        * error.c (cp_line_of): If we're dealing with an artificial
        !           466:        TYPE_DECL, look at the type instead.
        !           467: 
        !           468: Wed Aug 24 11:11:50 1994  Jason Merrill  ([email protected])
        !           469: 
        !           470:        * init.c (sort_member_init): Check warn_reorder.
        !           471:        * decl2.c (lang_decode_option): Handle -W{no-,}reorder.
        !           472: 
        !           473:        * cp-tree.h (CLASSTYPE_SOURCE_LINE): New macro.
        !           474:        * error.c (cp_line_of): Use CLASSTYPE_SOURCE_LINE for aggregates.
        !           475:        * class.c (finish_struct): Set CLASSTYPE_SOURCE_LINE.
        !           476: 
        !           477: Tue Aug 23 09:28:35 1994  Mike Stump  ([email protected])
        !           478: 
        !           479:        * error.c (dump_decl): Improve wording, so that error messages
        !           480:        dont't read template<, class foo>...
        !           481: 
        !           482: Mon Aug 22 15:30:51 1994  Brendan Kehoe  ([email protected])
        !           483: 
        !           484:        * parse.y (label_colon): Also match a TYPENAME as a label name,
        !           485:        since they may have declared a class by that name but have also
        !           486:        tried to have a local label under the same name.
        !           487: 
        !           488:        * pt.c (coerce_template_parms): Call cp_error, not cp_error_at,
        !           489:        for the message so they know at what point it was instantiated.
        !           490: 
        !           491: Sun Aug 21 23:07:35 1994  Gerald Baumgartner  ([email protected])
        !           492: 
        !           493:        * class.c (finish_struct): Move setting of CLASSTYPE_INTERFACE and
        !           494:        CLASSTYPE_VTABLE_NEEDS_WRITING for signatures up to left_curly time.
        !           495:        * decl.c (xref_tag): Move setting of CLASSTYPE_INTERFACE and
        !           496:         CLASSTYPE_VTABLE_NEEDS_WRITING for signatures down to left_curly time.
        !           497:        * parse.y (left_curly): New final resting place for setting
        !           498:        CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING for signatures.
        !           499: 
        !           500:        * class.c (finish_struct): Don't test for function/field name
        !           501:        conflicts in signatures, since all the fields are compiler-constructed.
        !           502: 
        !           503: Fri Aug 19 14:04:47 1994  Kung Hsu  ([email protected])
        !           504: 
        !           505:        * method.c (build_overload_nested_name): in qualified name
        !           506:        mangling, the template with value instantiation will have numeric
        !           507:        at end and may mixed with the name length of next nested level.
        !           508:        Add a '_' in between.
        !           509:        * method.c (build_overload_name): ditto.
        !           510:        * method.c (build_overload_identifier): ditto.
        !           511: 
        !           512: Thu Aug 18 16:24:43 1994  Mike Stump  ([email protected])
        !           513: 
        !           514:        * error.c (dump_decl): Handle NULL args.
        !           515: 
        !           516: Thu Aug 18 12:48:09 1994  Mike Stump  ([email protected])
        !           517: 
        !           518:        * class.c (finish_struct): Move setting of CLASSTYPE_INTERFACE and
        !           519:        CLASSTYPE_VTABLE_NEEDS_WRITING up to left_curly time.
        !           520:        * decl.c (xref_tag): Move setting of CLASSTYPE_INTERFACE and
        !           521:         CLASSTYPE_VTABLE_NEEDS_WRITING down to left_curly time.
        !           522:        * parse.y (left_curly): New final resting place for setting
        !           523:        CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING.
        !           524: 
        !           525: Thu Aug 11 11:32:42 1994  H.J. Lu  ([email protected])
        !           526: 
        !           527:        * g++.c (main): Only decrement "added" and set "library" to
        !           528:          NULL when "library" != NULL.
        !           529: 
        !           530: Sat Aug 13 00:14:52 1994  Jason Merrill  ([email protected])
        !           531: 
        !           532:        * decl.c (grokdeclarator): Don't set TREE_PUBLIC on a function decl
        !           533:        just because its class has a known interface.
        !           534:        (decls_match): Deal with new format of template parms.
        !           535: 
        !           536:        * lex.c (cons_up_default_function): Don't play with TREE_PUBLIC and
        !           537:        DECL_EXTERNAL here.
        !           538: 
        !           539: Fri Aug 12 01:55:15 1994  Jason Merrill  ([email protected])
        !           540: 
        !           541:        * decl.c (pushtag): SET_DECL_ARTIFICIAL on gratuitous typedefs.
        !           542:        (xref_defn_tag): Ditto.
        !           543:        (pushdecl): Only allow artificial typedefs to be shadowed.
        !           544: 
        !           545:        * init.c (emit_base_init): Pass the right binfos to
        !           546:        expand_aggr_init_1.
        !           547: 
        !           548:        * class.c (delete_duplicate_fields_1): Make it work right.
        !           549:        (finish_struct): Catch function/field name conflict.
        !           550: 
        !           551:        * decl2.c (check_classfn): Pass the function to cp_error, not just
        !           552:        the name.
        !           553: 
        !           554:        * init.c (sort_member_init): Warn when order of member initializers
        !           555:        does not match order of member declarations.
        !           556:        (emit_base_init): Call expand_aggr_init_1 with LOOKUP_PROTECT.
        !           557: 
        !           558:        * error.c (dump_expr): Handle lists of functions.
        !           559: 
        !           560:        * decl.c (start_function): #pragma interface only affects functions
        !           561:        that would otherwise be static.
        !           562:        (finish_decl): Don't warn about an unused variable if it has both
        !           563:        constructor and destructor, since the 'resource allocation is
        !           564:        initialization' idiom is relatively common.
        !           565: 
        !           566:        * typeck.c (comp_target_types): Don't handle TEMPLATE_TYPE_PARMs.
        !           567:        (comp_target_parms): Ditto.
        !           568:        (compparms): Never consider default parms.
        !           569:        (common_base_type): Don't choose a virtual baseclass if there is a
        !           570:        more derived class in common.
        !           571:        (build_conditional_expr): If pedantic, pedwarn about conversion to
        !           572:        common base in conditional expr.
        !           573: 
        !           574:        * class.c (instantiate_type): Handle template instantiation better.
        !           575: 
        !           576:        * typeck.c (convert_arguments): Don't try to get tricky and convert
        !           577:        to int directly when PROMOTE_PROTOTYPES is set, as it breaks
        !           578:        user-defined conversions.
        !           579: 
        !           580:        * lex.c (check_for_missing_semicolon): Also give error at end of
        !           581:        file.
        !           582: 
        !           583:        * call.c (build_method_call): Don't promote arrays to pointers here.
        !           584: 
        !           585:        * typeck.c (convert_arguments): Don't require the actual parameter
        !           586:        to be of a complete type if the formal parameter is a reference.
        !           587: 
        !           588: Thu Aug 11 15:21:40 1994  Jason Merrill  ([email protected])
        !           589: 
        !           590:        * decl.c (grokdeclarator): Soften 'static' on member function error
        !           591:        to pedwarn.
        !           592: 
        !           593:        * init.c (build_new): Don't automatically save rval.
        !           594:        (build_offset_ref): Do field lookup with proper basetype_path.
        !           595: 
        !           596: Thu Aug 11 12:46:54 1994  Brendan Kehoe  ([email protected])
        !           597: 
        !           598:        * errfn.c (cp_silent): Declare to mark when we should avoid
        !           599:        emitting warnings and errors.
        !           600:        (cp_error): Check it.
        !           601:        (cp_warning): Likewise.
        !           602:        (cp_pedwarn): Likewise.
        !           603:        (cp_compiler_error): Likewise.
        !           604:        (cp_error_at): Likewise.
        !           605:        (cp_warning_at): Likewise.
        !           606:        (cp_pedwarn_at): Likewise.
        !           607:        * call.c (compute_conversion_costs): Set CP_SILENT when we start
        !           608:        out, and make sure we turn it off before we leave.
        !           609: 
        !           610: Thu Aug 11 00:02:54 1994  Jason Merrill  ([email protected])
        !           611: 
        !           612:        * decl2.c (grok_array_decl): Try computing *(A+B) if neither
        !           613:        argument is obviously an array.
        !           614: 
        !           615: Wed Aug 10 15:32:04 1994  Jason Merrill  ([email protected])
        !           616: 
        !           617:        * typeck.c (c_expand_start_case): Do cleanups here.
        !           618: 
        !           619:        * parse.y (xcond): Do bool conversion here, too.
        !           620:        (simple_stmt, SWITCH case): Don't do cleanups here.
        !           621: 
        !           622:        * decl.c (duplicate_decls): Don't treat builtins that have been
        !           623:        explicitly declared specially.
        !           624: 
        !           625: Tue Aug  9 01:16:09 1994  Jason Merrill  ([email protected])
        !           626: 
        !           627:        * tree.c (make_deep_copy): Support copying pointer, reference,
        !           628:        function, array, offset and method types.
        !           629: 
        !           630:        * decl.c (init_decl_processing): Mark exit and abort as
        !           631:        BUILT_IN_NONANSI so that duplicate_decls is kinder about
        !           632:        redeclaration.
        !           633:        (duplicate_decls): Don't give two errors for redeclaring a C
        !           634:        function with the same parms but a different return type.
        !           635: 
        !           636:        * parse.y (paren_cond_or_null): Do cleanup and bool conversion here.
        !           637:        (condition): Instead of here.
        !           638:        (simple_stmt, SWITCH case): Also do cleanup here.
        !           639: 
        !           640:        * decl2.c (finish_anon_union): Only break out FIELD_DECLs.
        !           641: 
        !           642:        * call.c (build_method_call): Don't throw away the side effects of
        !           643:        the object in a call to a non-existent constructor.
        !           644:        * parse.y (primary): Ditto.
        !           645: 
        !           646:        * method.c (build_decl_overload): Oop.
        !           647: 
        !           648:        * decl2.c (lang_decode_option): Deal with flag_no_nonansi_builtin,
        !           649:        warn about uselessness of specifying -fansi-overloading.
        !           650: 
        !           651:        * method.c (build_decl_overload): Treat any non-member new with one
        !           652:        parameter as __builtin_new.
        !           653: 
        !           654:        * decl.c (init_decl_processing): Setup built-in meanings of exit,
        !           655:        _exit and abort.
        !           656: 
        !           657: Mon Aug  8 15:03:30 1994  Jason Merrill  ([email protected])
        !           658: 
        !           659:        * error.c (dump_readonly_or_volatile): Put a space between const and
        !           660:        volatile if both apply.
        !           661: 
        !           662:        * init.c (perform_member_init): Clean up after this initialization.
        !           663:        (emit_base_init): Clean up after each base init, not after all have
        !           664:        been done.
        !           665:        (expand_aggr_vbase_init_1): Clean up after this init.
        !           666: 
        !           667: Sun Aug  7 14:55:05 1994  Jason Merrill  ([email protected])
        !           668: 
        !           669:        * call.c (build_method_call): Deal with destroying references.
        !           670: 
        !           671:        * parse.y (condition): Do bool_truthvalue_conversion here.
        !           672:        (paren_expr_or_null): And here.
        !           673:        (simple_if): Not here.
        !           674:        (simple_stmt): Or here.
        !           675: 
        !           676: Sat Aug  6 22:29:45 1994  Jason Merrill  ([email protected])
        !           677: 
        !           678:        * parse.y (paren_expr_or_null): Wrap the expression in a
        !           679:        CLEANUP_POINT_EXPR.
        !           680:        (condition): Ditto.
        !           681: 
        !           682: Sat Aug  6 19:46:37 1994  Rohan Lenard  ([email protected])
        !           683: 
        !           684:        * call.c (build_scoped_method_call): Fix error message when
        !           685:        destructor call refers to a nonexistent type.
        !           686: 
        !           687: Sat Apr 16 22:43:30 1993  Gerald Baumgartner  ([email protected])
        !           688: 
        !           689:        * lex.h (rid): Deleted RID_RAISES, it's never used.
        !           690:        Moved RID_PUBLIC, RID_PRIVATE, RID_PROTECTED, RID_EXCEPTION,
        !           691:        RID_TEMPLATE and RID_SIGNATURE to the end of the enumeration,
        !           692:        they don't need to be touched in `grokdeclarator.'
        !           693:        (RID_LAST_MODIFIER): Defined macro to be RID_MUTABLE.
        !           694: 
        !           695:        * decl.c (grokdeclarator): Use RID_LAST_MODIFIER instead of
        !           696:        RID_MAX as loop limit for finding declaration specifiers.
        !           697: 
        !           698: Sat Apr  3 21:59:07 1993  Gerald Baumgartner  ([email protected])
        !           699: 
        !           700:        * lex.c (debug_yytranslate): Moved to parse.y since it needs to
        !           701:        access `yytname,' which is static in parse.c.
        !           702: 
        !           703: Fri Apr  2 23:36:57 1993  Gerald Baumgarnter  ([email protected])
        !           704: 
        !           705:        * cp-tree.h (GNU_xref_ref): Fixed typo in extern declaration, it
        !           706:        was `GNU_xref_def' instead of `GNU_xref_ref.'
        !           707: 
        !           708: Fri Aug  5 14:20:16 1994  Jason Merrill  ([email protected])
        !           709: 
        !           710:        * pt.c (do_function_instantiation): Don't set TREE_PUBLIC and
        !           711:        DECL_EXTERNAL on 'extern' instantiations; wait until EOF to do that.
        !           712:        (do_type_instantiation): Ditto.
        !           713: 
        !           714:        * decl2.c (import_export_inline): Decides at EOF what an inline's
        !           715:        linkage should be.
        !           716:        (finish_file): Call it.
        !           717: 
        !           718:        * decl.c (start_function): Don't rely on the settings of TREE_PUBLIC
        !           719:        and DECL_EXTERNAL from do_*_instantiation.  Only set
        !           720:        DECL_DEFER_OUTPUT on inlines whose linkage might actually change.
        !           721:        (finish_function): Use DECL_DEFER_OUTPUT to decide which inlines to
        !           722:        mark for later consideration, rather than DECL_FUNCTION_MEMBER_P.
        !           723: 
        !           724: Fri Aug  5 01:12:20 1994  Mike Stump  ([email protected])
        !           725: 
        !           726:        * class.c (get_class_offset_1, get_class_offset): New routine to
        !           727:        find the offset of the class where a virtual function is defined,
        !           728:        from the complete type.
        !           729:        * class.c (modify_one_vtable, fixup_vtable_deltas): Use
        !           730:        get_class_offset instead of virtual_offset as get_class_offset will
        !           731:        always provide the right answer.
        !           732:        * tree.c (virtual_offset): Remove.  It only ever worked some of the
        !           733:        time.
        !           734: 
        !           735: Tue Aug  2 12:44:21 1994  Jason Merrill  ([email protected])
        !           736: 
        !           737:        * call.c (build_method_call): Put back unary_complex_lvalue call
        !           738:        that I thought was redundant.
        !           739: 
        !           740:        * typeck.c (c_expand_return): Fix a case I missed before.
        !           741: 
        !           742: Sun Jul 31 17:54:02 1994  Jason Merrill  ([email protected])
        !           743: 
        !           744:        * pt.c (unify): Strip cv-quals from template type arguments (when
        !           745:        'const T*' is matched to 'const char*', that does not mean that T is
        !           746:        'const char').
        !           747: 
        !           748: Fri Jul 29 01:03:06 1994  Jason Merrill  ([email protected])
        !           749: 
        !           750:        * pt.c (do_type_instantiation): Instantiate nested TAGS, not
        !           751:        typedefs.  Third time's the charm?
        !           752: 
        !           753:        * parse.y (template_parm): Support default template parms.
        !           754:        * pt.c (process_template_parm): Ditto.
        !           755:        (end_template_parm_list): Ditto.
        !           756:        (coerce_template_parms): Ditto.
        !           757:        (mangle_class_name_for_template): Ditto.
        !           758:        (push_template_decls): Ditto.
        !           759:        (unify): Ditto.
        !           760:        * method.c (build_overload_identifier): Ditto.
        !           761:        * error.c (dump_decl): Ditto.
        !           762: 
        !           763: Wed Jul 27 17:47:00 1994  Jason Merrill  ([email protected])
        !           764: 
        !           765:        * pt.c (do_type_instantiation): Only instantiate nested *classes*.
        !           766: 
        !           767: Tue Jul 26 13:22:40 1994  Jason Merrill  ([email protected])
        !           768: 
        !           769:        * search.c (note_debug_info_needed): Also emit debugging information
        !           770:        for the types of fields.
        !           771: 
        !           772: Mon Jul 25 00:34:44 1994  Jason Merrill  ([email protected])
        !           773: 
        !           774:        * pt.c (lookup_template_class): Pass 'template' to
        !           775:        coerce_template_parms instead of 'in_decl', since it's a more
        !           776:        meaningful context.
        !           777: 
        !           778:        * typeck.c (c_expand_return): Make sure any cleanups for the return
        !           779:        expression get run.
        !           780:        (build_c_cast): Use CONVERT_EXPR for conversion to void.
        !           781: 
        !           782:        * pt.c (do_type_instantiation): Also instantiate nested types.
        !           783: 
        !           784:        * typeck.c (convert_for_assignment): Don't die when comparing
        !           785:        pointers with different levels of indirection.
        !           786: 
        !           787:        * decl.c (grokdeclarator): The sub-call to grokdeclarator for
        !           788:        class-local typedefs sets DECL_ARGUMENTS, so we need to clear it
        !           789:        out.
        !           790: 
        !           791:        * decl2.c (finish_anon_union): Don't die if the union has no
        !           792:        members.
        !           793: 
        !           794:        * decl.c (grokdeclarator): Undo changes to declspecs when we're done
        !           795:        so that 'typedef int foo, bar;' will work.
        !           796: 
        !           797:        * decl2.c (finish_file): Don't call expand_aggr_init for
        !           798:        non-aggregates.
        !           799: 
        !           800: Mon Jul 25 00:03:10 1994  Teemu Torma  ([email protected])
        !           801: 
        !           802:        * decl.c (finish_function): We can't inline constructors and
        !           803:        destructors under some conditions with -fpic, but don't unset
        !           804:        DECL_INLINE.
        !           805: 
        !           806: Mon Jul 25 00:03:10 1994  Jason Merrill  ([email protected])
        !           807: 
        !           808:        * typeck.c (build_object_ref): Make sure 'datum' is a valid object.
        !           809: 
        !           810: Sun Jul 24 14:19:31 1994  Jason Merrill  ([email protected])
        !           811: 
        !           812:        * class.c (finish_struct): Don't set DECL_FIELD_BITPOS on
        !           813:        non-fields.
        !           814:        (finish_struct_methods): Use copy_assignment_arg_p.
        !           815: 
        !           816:        * cvt.c (cp_convert): If expr is an OFFSET_REF, resolve it instead
        !           817:        of giving an error.
        !           818: 
        !           819:        * typeck.c (build_binary_op_nodefault): Don't set result_type if we
        !           820:        don't know how to compare the operands.
        !           821: 
        !           822:        * decl.c (grokdeclarator): Avoid seg fault when someone uses '__op'
        !           823:        as a declarator-id in their program.  Like the Linux headers do.
        !           824:        Arrgh.
        !           825: 
        !           826:        * tree.c (lvalue_p): Treat calls to functions returning objects by
        !           827:        value as lvalues again.
        !           828: 
        !           829:        * typeck.c (build_component_addr): Use convert_force to convert the
        !           830:        pointer in case the component type is also a private base class.
        !           831: 
        !           832:        * search.c (get_matching_virtual): Fix bogus warning of overloaded
        !           833:        virtual.
        !           834: 
        !           835:        * pt.c (overload_template_name): Set DECL_ARTIFICIAL on the created
        !           836:        TYPE_DECL to fix bogus shadowing warnings.
        !           837: 
        !           838: Fri Jul 22 01:15:32 1994  Jason Merrill  ([email protected])
        !           839: 
        !           840:        * init.c (expand_aggr_init_1): const and volatile mismatches do not
        !           841:        prevent a TARGET_EXPR from initializing an object directly.
        !           842: 
        !           843: Tue Jul 19 17:55:37 1994  Jason Merrill  ([email protected])
        !           844: 
        !           845:        * cvt.c (build_up_reference): Allow building up references to
        !           846:        `this', don't warn about making references to artificial variables
        !           847:        (like `this').
        !           848: 
        !           849:        * tree.c (lvalue_p): `this' is not an lvalue.
        !           850: 
        !           851:        * call.c (build_method_call): Accept using a typedef name (or
        !           852:        template type parameter) for explicit destructor calls.
        !           853: 
        !           854: Wed Jul 13 03:57:54 1994  Jason Merrill  ([email protected])
        !           855: 
        !           856:        * method.c (hack_identifier): Put back old code so lists of
        !           857:        non-functions will be handled properly.
        !           858: 
        !           859:        * cp-tree.h (TYPE_NEEDS_CONSTRUCTING): #if 0 out; this macro is now
        !           860:        defined in the language-independent tree.h.
        !           861: 
        !           862:        * tree.c (count_functions): Avoid bogus warning when compiling this
        !           863:        function.
        !           864: 
        !           865: Mon Jul 11 18:37:20 1994  Jason Merrill  ([email protected])
        !           866: 
        !           867:        * decl.c (grok_reference_init): Always save the initializer of a
        !           868:        reference.
        !           869: 
        !           870: Fri Jul  8 17:41:46 1994  Mike Stump  ([email protected])
        !           871: 
        !           872:        * decl.c (cplus_expand_expr_stmt): Wrap statement expressions inside
        !           873:        CLEANUP_POINT_EXPRs so that the stack slots can be reused.
        !           874:        (disabled for now)
        !           875: 
        !           876: Fri Jul  8 12:59:38 1994  Jason Merrill  ([email protected])
        !           877: 
        !           878:        * method.c (hack_identifier): Fix for new overloading.
        !           879: 
        !           880:        * typeck.c (build_binary_op_nodefault): Don't mess with division by
        !           881:         zero.
        !           882: 
        !           883: Fri Jul  8 13:20:28 1994  Gerald Baumgartner  ([email protected])
        !           884: 
        !           885:        * decl2.c (finish_file): Only call walk_sigtables, if
        !           886:        flag_handle_signatures is turned on, don't waste time otherwise.
        !           887: 
        !           888: Fri Jul  8 02:27:41 1994  Jason Merrill  ([email protected])
        !           889: 
        !           890:        * decl.c (push_overloaded_decl): Don't create overloads of one when
        !           891:        shadowing a class type.
        !           892:        * typeck.c (build_x_function_call): Complain about overloads of one.
        !           893: 
        !           894:        * decl.c (grokdeclarator): Don't try to treat a char* as a tree.
        !           895:        (grokdeclarator): Fix setting of TREE_STATIC.
        !           896:        (start_decl): Clear DECL_IN_AGGR_P after calling duplicate_decls.
        !           897: 
        !           898: Thu Jul  7 22:20:46 1994  Gerald Baumgartner  ([email protected])
        !           899: 
        !           900:        * cp-tree.h (walk_sigtables): Created extern declaration.
        !           901:        * decl2.c (walk_sigtables): Created function, patterned after
        !           902:        walk_vtables, even though we only need it to write out sigtables.
        !           903:        (finish_sigtable_vardecl): Created function.
        !           904:        (finish_vtable_vardecl): Changed 0 to NULL_PTR.
        !           905:        (finish_file): Call walk_sigtables.
        !           906: 
        !           907:        * sig.c (build_signature_table_constructor): Mark class member
        !           908:        function pointed to from signature table entry as addressable.
        !           909: 
        !           910: Thu Jul  7 13:39:37 1994  Jason Merrill  ([email protected])
        !           911: 
        !           912:        * decl.c (start_decl): Check new decl of static member variable
        !           913:        against the declaration in the class here.
        !           914:        (grokvardecl): Instead of here.
        !           915: 
        !           916:        * class.c (prepare_fresh_vtable): Call import_export_vtable if not
        !           917:        -fvtable-thunks.
        !           918:        (build_vtable): Ditto.
        !           919: 
        !           920:        * decl2.c (import_export_vtable): Move logic for deciding the
        !           921:        interface of a template class from here.
        !           922:        (import_export_template): To here.
        !           923:        (finish_vtable_vardecl): Call import_export_template before
        !           924:        import_export_vtable.
        !           925: 
        !           926: Wed Jul  6 20:25:48 1994  Mike Stump  ([email protected])
        !           927: 
        !           928:        * except.c (init_exception_processing): Setup interim_eh_hook to
        !           929:        call lang_interim_eh. 
        !           930:        * except.c (do_unwind): Propagate throw object value across
        !           931:        stack unwinding.
        !           932:        * except.c (saved_throw_value): Used to hold the value of the object
        !           933:        being thrown.  It is always a reference to the real value.
        !           934:        * except.c (expand_start_catch_block): Add handling for the
        !           935:        value of the exception object.
        !           936:        * except.c (expand_start_catch_block): Add handler for the handler,
        !           937:        so that throws inside the handler go to the outer block.
        !           938:        * except.c (expand_end_catch_block): Ditto.
        !           939:        * parse.y (handler_args): Use parm instead, as the other doesn't yet
        !           940:        handle references correctly.
        !           941: 
        !           942: Wed Jul  6 17:55:32 1994  Per Bothner  ([email protected])
        !           943: 
        !           944:        * decl2.c (mark_vtable_entries):  If -ftable-thunks, set the
        !           945:        vtable entry properly to abort.
        !           946: 
        !           947: Tue Jul  5 14:07:54 1994  Jason Merrill  ([email protected])
        !           948: 
        !           949:        * typeck.c (build_binary_op_nodefault): Downgrade division by zero
        !           950:        errors to warnings.
        !           951: 
        !           952:        * call.c (build_overload_call_real): Handle fnname being a list of
        !           953:        functions.
        !           954:        * typeck.c (build_x_function_call): Pass list of functions to
        !           955:        build_overload_call, not just the name.
        !           956:        * tree.c (count_functions): Complain when called for invalid
        !           957:        argument.
        !           958: 
        !           959:        * decl.c (grokdeclarator): Fix settings of TREE_STATIC, TREE_PUBLIC
        !           960:        and DECL_EXTERNAL on static members and initialized const members.
        !           961:        * decl2.c (grokfield): Reflect this change.
        !           962: 
        !           963: Fri Jul  1 09:35:51 1994  Jason Merrill  ([email protected])
        !           964: 
        !           965:        * parse.y (init): ANSI C++ does not forbid { }.
        !           966: 
        !           967: Thu Jun 30 00:35:22 1994  Jason Merrill  ([email protected])
        !           968: 
        !           969:        * decl2.c (lang_decode_option): Set warn_nonvdtor along with -Wall.
        !           970:        warn_nonvdtor defaults to off.
        !           971: 
        !           972:        * class.c (instantiate_type): Use comptypes rather than relying on 
        !           973:        types to satisfy ==.
        !           974: 
        !           975:        * decl.c (start_function): Set DECL_DEFER_OUTPUT on all inlines that
        !           976:        might be static.
        !           977: 
        !           978:        * tree.c (build_cplus_new): Never build WITH_CLEANUP_EXPRs.
        !           979: 
        !           980:        * decl.c (grok_reference_init): Deal with ADDR_EXPRs of TARGET_EXPRs.
        !           981: 
        !           982:        * cvt.c (cp_convert): Pass 0 to with_cleanup_p arg of
        !           983:        build_cplus_new.
        !           984: 
        !           985: Wed Jun 29 22:31:09 1994  Jason Merrill  ([email protected])
        !           986: 
        !           987:        * decl2.c (finish_file): Maybe consider static inlines multiple
        !           988:        times, in case they reference each other.
        !           989: 
        !           990: Tue Jun 28 11:58:38 1994  Gerald Baumgartner  ([email protected])
        !           991: 
        !           992:        * class.c (finish_struct): Don't `cons_up_default_function's
        !           993:        for signatures.
        !           994:        (finish_struct): Handle an empty method_vec correctly.
        !           995: 
        !           996:        * decl.c (grokdeclarator): Don't warn about a signature being
        !           997:        empty in a signature pointer declaration if we only saw a
        !           998:        forward declaration of the signature.  Changed `warning's into
        !           999:        `cp_warning's.
        !          1000: 
        !          1001:        * sig.c (build_sigtable): Don't die if a null signature table
        !          1002:        constructor is returned.
        !          1003:        (build_signature_pointer_constructor): If the signature table
        !          1004:        constructor is null, the _sptr field is set to a null pointer
        !          1005:        and cast to the appropriate type.  Make copies of all null
        !          1006:        pointers so that the type null_pointer_node doesn't get changed.
        !          1007:        (build_signature_table_constructor): Added comments.
        !          1008: 
        !          1009:        * sig.c (build_signature_pointer_constructor): Complain if we
        !          1010:        try to assign to/initialize a signature pointer/reference of
        !          1011:        an undefined signature.
        !          1012: 
        !          1013: Mon Jun 27 14:05:16 1994  Gerald Baumgartner  ([email protected])
        !          1014: 
        !          1015:        * typeck2.c (store_init_value): Don't be pedantic about
        !          1016:        non-constant initializers of signature tables/pointers/references.
        !          1017: 
        !          1018: Fri Jun 24 16:49:41 1994  Gerald Baumgartner  ([email protected])
        !          1019: 
        !          1020:        * decl.c (grokdeclarator): If we are grokking an opaque typedef
        !          1021:        in a signature, don't complain about it begin static.
        !          1022: 
        !          1023: Wed Jun 29 16:44:45 1994  Mike Stump  ([email protected])
        !          1024: 
        !          1025:        Fixes a problem of the this pointer being wrong in virtual calls to
        !          1026:        methods that are not overridden in more derived classes.
        !          1027: 
        !          1028:        * class.c (fixup_vtable_delta): New routine.  It will fixup the
        !          1029:        delta entries in vtables, wheever they need updating.
        !          1030:        * class.c (finish_struct): Call the new routine for all virtual
        !          1031:        bases, as they can have different offsets, than those used in base
        !          1032:        classes that we derive our vtable from.
        !          1033: 
        !          1034: Tue Jun 28 23:49:28 1994  Jason Merrill  ([email protected])
        !          1035: 
        !          1036:        * typeck.c (build_binary_op): Use the types before default
        !          1037:        conversions in the error message.
        !          1038: 
        !          1039:        * *.c: Use c_build_type_variant instead of build_type_variant where
        !          1040:        the type might be an array.
        !          1041: 
        !          1042:        * call.c (build_method_call): Call build_type_variant and
        !          1043:        build_reference_type in the right order.
        !          1044:        * decl.c (record_builtin_type): Ditto.
        !          1045: 
        !          1046: Wed Jun 29 16:58:53 1994  Jason Merrill  ([email protected])
        !          1047: 
        !          1048:        * call.c (build_method_call): Call build_type_variant and
        !          1049:        build_reference_type in the right order.
        !          1050:        * decl.c (record_builtin_type): Ditto.
        !          1051: 
        !          1052: Tue Jun 28 23:49:28 1994  Jason Merrill  ([email protected])
        !          1053: 
        !          1054:        * typeck.c (build_binary_op): Use the types before default
        !          1055:        conversions in the error message.
        !          1056: 
        !          1057:        * *.c: Use c_build_type_variant instead of build_type_variant where
        !          1058:        the type might be an array.
        !          1059: 
        !          1060: Sat Jun 25 11:50:54 1994  Jason Merrill  ([email protected])
        !          1061: 
        !          1062:        * cvt.c (convert_to_reference): Try UDC's before doing the
        !          1063:        reinterpret_cast thang, though.
        !          1064: 
        !          1065: Fri Jun 24 01:24:01 1994  Jason Merrill  ([email protected])
        !          1066: 
        !          1067:        * typeck.c (c_expand_return): Don't USE the return value location
        !          1068:        after we've expanded the jump.
        !          1069: 
        !          1070:        * decl2.c (finish_file): Make sure DECL_SAVED_INSNS is not 0 before
        !          1071:        trying to write out an inline.
        !          1072: 
        !          1073:        * cvt.c (build_up_reference): Also do address adjustment when the
        !          1074:        target type uses MI.
        !          1075:        (convert_to_reference): Try UDCs only after built-in conversions.
        !          1076:        (build_type_conversion_1): Don't play games with the argument to the
        !          1077:        method.
        !          1078:        (build_type_conversion): #if 0 out code for binding to reference.
        !          1079: 
        !          1080: Thu Jun 23 00:22:28 1994  Jason Merrill  ([email protected])
        !          1081: 
        !          1082:        * decl2.c (finish_file): Use TREE_SYMBOL_REFERENCED to decide
        !          1083:        whether to emit inlines.
        !          1084: 
        !          1085:        * decl.c (grokdeclarator): Set explicit_int for decls that just
        !          1086:        specify, say, 'long'.
        !          1087: 
        !          1088:        * init.c (do_friend): Do overload C functions (or call pushdecl,
        !          1089:        anyaway).
        !          1090: 
        !          1091: Wed Jun 22 13:40:49 1994  Jason Merrill  ([email protected])
        !          1092: 
        !          1093:        * cvt.c (build_up_reference): Don't call readonly_error.
        !          1094:        (convert_to_reference): Propagate const and volatile from expr to
        !          1095:        its type.
        !          1096: 
        !          1097:        * tree.c (lvalue_p): Random CALL_EXPRs are not lvalues.
        !          1098: 
        !          1099:        * cvt.c (build_up_reference): Break out WITH_CLEANUP_EXPR when
        !          1100:        creating a temporary.
        !          1101:        (convert_to_reference): Lose excessive and incorrect trickiness.
        !          1102:        (cp_convert): Call build_cplus_new with with_cleanup_p set.
        !          1103: 
        !          1104:        * typeck2.c (build_functional_cast): Ditto.
        !          1105: 
        !          1106: Tue Jun 21 17:38:38 1994  Jason Merrill  ([email protected])
        !          1107: 
        !          1108:        * decl.c (grokdeclarator): signed, unsigned, long and short all
        !          1109:        imply 'int'.
        !          1110: 
        !          1111:        * decl.c (grokdeclarator): Allow "this is a type" syntax.
        !          1112:        (grok_reference_init): Simplify and fix.
        !          1113: 
        !          1114: Sun Jun 19 17:08:48 1994  Jason Merrill  ([email protected])
        !          1115: 
        !          1116:        * decl.c (grokdeclarator): pedwarn about a typedef that specifies no
        !          1117:        type.
        !          1118: 
        !          1119: Sat Jun 18 04:16:50 1994  Jason Merrill  ([email protected])
        !          1120: 
        !          1121:        * decl.c (start_function): Move TREE_PUBLIC and DECL_EXTERNAL
        !          1122:        tinkering to after call to pushdecl.
        !          1123: 
        !          1124: Fri Jun 17 14:48:28 1994  Jason Merrill  ([email protected])
        !          1125: 
        !          1126:        * call.c (build_method_call): Handle destructors for non-aggregate
        !          1127:        types properly.
        !          1128: 
        !          1129: Thu Jun 16 16:48:05 1994  Jason Merrill  ([email protected])
        !          1130: 
        !          1131:        * call.c (build_method_call): Make sure that the name given for the
        !          1132:        destructor matches the constructor_name of the instance.
        !          1133: 
        !          1134:        * pt.c (do_function_instantiation): A non-extern instantiation
        !          1135:        overrides a later extern one.
        !          1136:        (do_type_instantiation): Ditto.
        !          1137: 
        !          1138: Wed Jun 15 19:34:54 1994  Jason Merrill  ([email protected])
        !          1139: 
        !          1140:        * init.c (expand_aggr_init): Use TYPE_MAIN_VARIANT to get the
        !          1141:        unqualified array type.
        !          1142: 
        !          1143:        * cp-tree.h (EMPTY_CONSTRUCTOR_P): Tests whether NODE is a
        !          1144:        CONSTRUCTOR with no elements.
        !          1145: 
        !          1146:        * decl.c (various): Lose empty_init_node.
        !          1147:        (finish_decl): Use EMPTY_CONSTRUCTOR_P, do the empty CONSTRUCTOR
        !          1148:        thing depending on the value of DECL_COMMON instead of
        !          1149:        flag_conserve_space, do the empty CONSTRUCTOR thing for types that
        !          1150:        don't have constructors, don't treat a real empty CONSTRUCTOR
        !          1151:        specially.
        !          1152: 
        !          1153:        * typeck2.c (process_init_constructor): Don't treat empty_init_node
        !          1154:        specially.
        !          1155: 
        !          1156: Wed Jun 15 19:05:25 1994  Mike Stump  ([email protected])
        !          1157: 
        !          1158:        * class.c (override_one_vtable): Don't forget to merge in an old
        !          1159:        overrider when we wanted to reuse a vtable, but couldn't.
        !          1160: 
        !          1161: Wed Jun 15 15:03:16 1994  Jason Merrill  ([email protected])
        !          1162: 
        !          1163:        * decl.c (start_decl): Put statics in common again.
        !          1164: 
        !          1165:        * decl.c (grokdeclarator): Return NULL_TREE for an error rather than
        !          1166:        setting the type to error_mark_node.
        !          1167: 
        !          1168:        * typeck.c (build_modify_expr): Build up a COMPOUND_EXPR for enum
        !          1169:        bitfield assignments.
        !          1170: 
        !          1171: Tue Jun 14 12:23:38 1994  Jason Merrill  ([email protected])
        !          1172: 
        !          1173:        * decl.c (grok_op_properties): Const objects can be passed by value.
        !          1174: 
        !          1175: Mon Jun 13 03:10:59 1994  Jason Merrill  ([email protected])
        !          1176: 
        !          1177:        * decl2.c (import_export_vtable): Force implicit instantiations to
        !          1178:        be interface_only when -fno-implicit-templates.
        !          1179: 
        !          1180:        * decl.c (duplicate_decls): Redeclaring a class template name is an
        !          1181:        error.
        !          1182: 
        !          1183:        * pt.c (end_template_decl): Call GNU_xref_decl for class templates.
        !          1184:        * xref.c (GNU_xref_decl): Support templates.
        !          1185: 
        !          1186: Sat Jun 11 17:09:05 1994  Jason Merrill  ([email protected])
        !          1187: 
        !          1188:        * decl.c (grok_op_properties): Split out checking for whether this
        !          1189:        function should suppress the default assignment operator.
        !          1190:        * decl2.c (grok_function_init): Ditto.
        !          1191:        (copy_assignment_arg_p): New function do do just that.
        !          1192:        Now considers virtual assignment operators that take a base as an
        !          1193:        argument to count as copy assignment operators.
        !          1194: 
        !          1195:        * search.c (dfs_debug_mark): Lose checks for DWARF_DEBUG and
        !          1196:        TREE_ASM_WRITTEN, as they are redundant.
        !          1197: 
        !          1198:        * pt.c (end_template_decl): Don't try to set DECL_CLASS_CONTEXT on a
        !          1199:        decl that has no LANG_SPECIFIC part.
        !          1200:        (do_type_instantiation): Force the debugging information for this
        !          1201:        type to be emitted.
        !          1202: 
        !          1203:        * decl.c (start_decl): Clear up uses of various types of templates
        !          1204:        (say sorry for static data members, rather than "invalid template"). 
        !          1205:        (expand_static_init): Fix initialization of static data members of
        !          1206:        template classes.
        !          1207: 
        !          1208: Fri Jun 10 00:41:19 1994  Jason Merrill  ([email protected])
        !          1209: 
        !          1210:        * decl.c (grokdeclarator): Set DECL_CONTEXT on static data members.
        !          1211: 
        !          1212:        * g++.c (main): Use -xc++-cpp-output for .i files.
        !          1213: 
        !          1214:        * pt.c (tsubst): Give meaningful error about declaring template for
        !          1215:        a copy constructor which was not declared in the class template.
        !          1216:        (do_type_instantiation): Explicit instantiation before the class
        !          1217:        template is an error.
        !          1218:        (instantiate_template): Don't die if tsubst returns error_mark_node.
        !          1219: 
        !          1220: Thu Jun  9 19:04:59 1994  Jason Merrill  ([email protected])
        !          1221: 
        !          1222:        Don't synthesize the copy assignment operator if the one in a base
        !          1223:        class is pure virtual.
        !          1224:        * cp-tree.h (TYPE_HAS_ABSTRACT_ASSIGN_REF): New macro to indicate
        !          1225:        whether the type has a pure virtual copy assignment operator.
        !          1226:        * class.c (finish_base_struct): Don't generate the copy assignment
        !          1227:        operator if a base class has a pure virtual one.
        !          1228:        * decl.c (grok_op_properties): Add disabled code to set
        !          1229:        TYPE_HAS_ABSTRACT_ASSIGN_REF with comment pointing to where it is
        !          1230:        actually set.
        !          1231:        * decl2.c (grok_function_init): Set TYPE_HAS_ABSTRACT_ASSIGN_REF.
        !          1232: 
        !          1233:        * decl2.c (import_export_vtable): Always treat template
        !          1234:        instantiations as if write_virtuals >= 2, and treat implicit
        !          1235:        instantiations as external if -fno-implicit-templates.
        !          1236:        (finish_file): Output all pending inlines if
        !          1237:        flag_keep_inline_functions.
        !          1238: 
        !          1239: Wed Jun  8 20:48:02 1994  Mike Stump  ([email protected])
        !          1240: 
        !          1241:        * tree.c (layout_vbasetypes): Align virtual base classes inside
        !          1242:        complete objects, so that we don't core dump on machines such as
        !          1243:        SPARCs when we access members that require larger than normal
        !          1244:        alignments, such as a double.  Also, we bump up the total alignment
        !          1245:        on the complete type, as necessary.
        !          1246: 
        !          1247: Wed Jun  8 16:18:14 1994  Jason Merrill  ([email protected])
        !          1248: 
        !          1249:        * gxxint.texi (Free Store): New section with code for examining
        !          1250:        cookie.
        !          1251:        (Limitations of g++): Remove operator delete entry, since it is no
        !          1252:        longer accurate.  Fix access control entry.
        !          1253: 
        !          1254:        * typeck.c (build_unary_op): Pedwarn about taking the address of or
        !          1255:        incrementing a cast to non-reference type.
        !          1256:        (build_modify_expr): Use convert instead of convert_force again.
        !          1257: 
        !          1258:        * search.c (get_base_distance): Use IS_AGGR_TYPE_CODE to check for
        !          1259:        class type, not == RECORD_TYPE.
        !          1260: 
        !          1261:        * decl.c (grokdeclarator): Cope with grokfndecl returning NULL_TREE.
        !          1262: 
        !          1263:        * typeck2.c (report_case_error): #if 0 out.
        !          1264:        * lex.c (real_yylex): Lose RANGE.
        !          1265:        * parse.y: Ditto.
        !          1266: 
        !          1267: Tue Jun  7 18:17:35 1994  Jason Merrill  ([email protected])
        !          1268: 
        !          1269:        * parse.y (simple_stmt, case ranges): Use ELLIPSIS instead of RANGE.
        !          1270: 
        !          1271: Mon Jun  6 19:39:57 1994  Jason Merrill  ([email protected])
        !          1272: 
        !          1273:        * typeck.c (build_c_cast): Don't shortcut conversions to the same
        !          1274:        type.  Don't replace consts with their values here, since that's now
        !          1275:        done in cp_convert.
        !          1276: 
        !          1277:        * cvt.c (cp_convert): When converting to bool, take
        !          1278:        integer_zero_node to false_node and all other INTEGER_CSTs to
        !          1279:        true_node.
        !          1280:        (build_type_conversion): Don't complain about multiple conversions
        !          1281:        to float if we're not really converting.
        !          1282: 
        !          1283: Fri Jun  3 02:10:56 1994  Jason Merrill  ([email protected])
        !          1284: 
        !          1285:        Implement 'extern template class A<int>;' syntax for suppressing
        !          1286:        specific implicit instantiations.
        !          1287:        * cp-tree.h: Update prototypes for do_*_instantiation.
        !          1288:        * pt.c (do_pending_expansions): Don't compile 'extern' explicit
        !          1289:        instantiations.
        !          1290:        (do_function_instantiation): Set DECL_EXTERNAL on 'extern' explicit
        !          1291:        instantiations.
        !          1292:        (do_type_instantiation): Ditto.
        !          1293:        * parse.y (explicit_instantiation): Support 'extern template class
        !          1294:        A<int>;' syntax.
        !          1295:        * decl.c (start_function): Don't modify the settings of TREE_PUBLIC
        !          1296:        and DECL_EXTERNAL on explicit instantiations.
        !          1297: 
        !          1298:        * cvt.c (cp_convert): Replace constants with their values before
        !          1299:        converting.
        !          1300:        (cp_convert): Consistently use 'e' instead of 'expr'.
        !          1301: 
        !          1302: Thu Jun  2 03:53:30 1994  Jason Merrill  ([email protected])
        !          1303: 
        !          1304:        * typeck2.c (build_x_arrow): Resolve OFFSET_REFs first.
        !          1305: 
        !          1306: Wed Jun  1 18:57:35 1994  Jason Merrill  ([email protected])
        !          1307: 
        !          1308:        * typeck2.c (digest_init): Handle initializing a pmf with an
        !          1309:        overloaded method.
        !          1310:        * typeck.c (build_ptrmemfunc): Handle overloaded methods.
        !          1311: 
        !          1312:        * decl.c (pushtag): Use build_decl to make TYPE_DECLs.
        !          1313:        (xref_defn_tag): Ditto.
        !          1314:        * pt.c (process_template_parm): Ditto.
        !          1315:        (lookup_template_class): Ditto.
        !          1316:        (push_template_decls): Ditto.
        !          1317:        (instantiate_class_template): Ditto.
        !          1318:        (create_nested_upt): Ditto.
        !          1319:        * class.c (finish_struct): Don't try to set DECL_CLASS_CONTEXT on
        !          1320:        TYPE_DECLs.
        !          1321: 
        !          1322:        * typeck.c (convert_arguments): Make sure type is not NULL before
        !          1323:        checking its TREE_CODE.
        !          1324: 
        !          1325: Wed Jun  1 17:40:39 1994  Mike Stump  ([email protected])
        !          1326: 
        !          1327:        * class.c (get_derived_offset): New routine.
        !          1328:        * class.c (finish_base_struct): Make sure we set BINFO_VTABLE and
        !          1329:        BINFO_VIRTUALS when we choose a new base class to inherit from.
        !          1330:        * class.c (modify_one_vtable): Use get_derived_offset to get the
        !          1331:        offset to the most base class subobject that we derived this binfo
        !          1332:        from.
        !          1333:        * class.c (finish_struct): Move code to calculate the
        !          1334:        DECL_FIELD_BITPOS of the vfield up, as we need might need it for
        !          1335:        new calls to get_derived_offset in modify_one_vtable.
        !          1336: 
        !          1337: Wed Jun  1 16:50:59 1994  Jason Merrill  ([email protected])
        !          1338: 
        !          1339:        * init.c (build_member_call): Use build_pointer_type instead of
        !          1340:        TYPE_POINTER_TO.
        !          1341: 
        !          1342: Wed Jun  1 11:11:15 1994  Brendan Kehoe  ([email protected])
        !          1343: 
        !          1344:        * decl.c (grokdeclarator): Make sure we have a DNAME set before we
        !          1345:        try to use it in an error.
        !          1346: 
        !          1347: Wed Jun  1 09:48:49 1994  Mike Stump  ([email protected])
        !          1348: 
        !          1349:        * typeck.c (convert_arguments, convert_for_initialization): Don't
        !          1350:        strip NOP_EXPRs, when we are converting to a reference.
        !          1351: 
        !          1352: Wed Jun  1 01:11:38 1994  Jason Merrill  ([email protected])
        !          1353: 
        !          1354:        * typeck.c (build_modify_expr): Don't dereference references when
        !          1355:        initializing them.
        !          1356: 
        !          1357:        * decl2.c (grokfield): Don't check for grokdeclarator returning
        !          1358:        error_mark_node any more.
        !          1359: 
        !          1360:        * decl.c (grokfndecl): Return NULL_TREE instead of error_mark_node.
        !          1361:        (start_method): Return void_type_node instead of error_mark_node.
        !          1362: 
        !          1363:        * typeck.c (build_modify_expr): Resolve offset refs earlier.
        !          1364: 
        !          1365: Tue May 31 16:06:58 1994  Jason Merrill  ([email protected])
        !          1366: 
        !          1367:        * call.c (build_method_call): Resolve OFFSET_REFs in the object.
        !          1368: 
        !          1369:        * typeck.c (build_modify_expr): Dereference references before trying
        !          1370:        to assign to them.
        !          1371: 
        !          1372:        * call.c (build_method_call): Don't confuse type conversion
        !          1373:        operators with constructors.
        !          1374:        * typeck2.c (build_functional_cast): Just call build_c_cast if there
        !          1375:        was only one parameter.
        !          1376:        * method.c (build_typename_overload): Don't set
        !          1377:        IDENTIFIER_GLOBAL_VALUE on these identifiers.
        !          1378:        * decl.c (grok_op_properties): Warn about defining a type conversion
        !          1379:        operator that converts to a base class (or reference to it).
        !          1380:        * cvt.c (cp_convert): Don't try to use a type conversion operator
        !          1381:        when converting to a base class.
        !          1382:        (build_type_conversion_1): Don't call constructor_name_full on an
        !          1383:        identifier.
        !          1384:        * cp-tree.h (DERIVED_FROM_P): Should be self-explanatory.
        !          1385: 
        !          1386:        * decl.c (start_decl): Don't complain that error_mark_node is an
        !          1387:        incomplete type.
        !          1388:        (finish_decl): Check for type == error_mark_node.
        !          1389: 
        !          1390: Mon May 30 23:38:55 1994  Jason Merrill  ([email protected])
        !          1391: 
        !          1392:        * decl.c (start_function): Set DECL_DEFER_OUTPUT on implicit
        !          1393:        instantiations and inline members.
        !          1394: 
        !          1395:        * spew.c (yylex): Set looking_for_template if the next token is a '<'.
        !          1396: 
        !          1397:        * lex.h: Declare looking_for_template.
        !          1398: 
        !          1399:        * decl.c (lookup_name_real): Use looking_for_template to arbitrate
        !          1400:        between type and template interpretations of an identifier.
        !          1401: 
        !          1402: Sat May 28 04:07:40 1994  Jason Merrill  ([email protected])
        !          1403: 
        !          1404:        * pt.c (instantiate_template): Zero out p if we found a
        !          1405:        specialization.
        !          1406: 
        !          1407:        * decl.c (grokdeclarator): Elucidate warning.
        !          1408:        (grokdeclarator): If pedantic AND -ansi, complain about long long.
        !          1409: 
        !          1410:        Make explicit instantiation work reasonably.  It is now appropriate
        !          1411:        to deprecate the use of -fexternal-templates.
        !          1412:        * pt.c (instantiate_template): Set DECL_TEMPLATE_SPECIALIZATION or
        !          1413:        DECL_IMPLICIT_INSTANTIATION on fndecl as appropriate.
        !          1414:        (end_template_instantiation): Reflect changes in USE_TEMPLATE
        !          1415:        semantics.
        !          1416:        (do_pending_expansions): if (!flag_implicit_templates) DECIDE(0);
        !          1417:        (do_function_instantiation): Don't set EXPLICIT_INST if
        !          1418:        flag_external_templates is set.  Do set TREE_PUBLIC and DECL_EXTERN
        !          1419:        appropriately otherwise.
        !          1420:        (do_type_instantiation): Set interface info for class.  Set
        !          1421:        TREE_PUBLIC and DECL_EXTERN for methods.  Do none of this if
        !          1422:        flag_external_templates is set.
        !          1423:        * parse.y: Reflect changes in USE_TEMPLATE semantics.
        !          1424:        * decl2.c: New flag flag_implicit_templates determines whether or
        !          1425:        not implicit instantiations get emitted.  This flag currently
        !          1426:        defaults to true, and must be true for -fexternal-templates to work.
        !          1427:        (finish_file): Consider flag_implement_inlines when
        !          1428:        setting DECL_EXTERNAL.  Consider flag_implicit_templates when
        !          1429:        deciding whether or not to emit a static copy.
        !          1430:        * decl.c (start_function): Set TREE_PUBLIC and DECL_EXTERNAL
        !          1431:        properly for template instantiations.
        !          1432:        (start_method): Set DECL_IMPLICIT_INSTANTIATION on methods of a
        !          1433:        template class.
        !          1434:        * cp-tree.h (CLASSTYPE_USE_TEMPLATE): Change semantics.
        !          1435:        (DECL_USE_TEMPLATE): Parallel macro for FUNCTION and VAR_DECLs.
        !          1436:        (various others): Accessor macros for the above.
        !          1437: 
        !          1438: Fri May 27 13:57:40 1994  Jason Merrill  ([email protected])
        !          1439: 
        !          1440:        * typeck.c (build_binary_op_nodefault): Division by constant zero is
        !          1441:        an error.
        !          1442: 
        !          1443: Fri May 27 13:50:15 1994  Mike Stump  ([email protected])
        !          1444: 
        !          1445:        * class.c (override_one_vtable): Don't modify things we don't own.
        !          1446: 
        !          1447: Fri May 27 01:42:58 1994  Jason Merrill  ([email protected])
        !          1448: 
        !          1449:        * decl.c (finish_decl): Don't postpone processing the initializer of
        !          1450:        a decl with DECL_EXTERNAL set, and do call rest_of_compilation for a
        !          1451:        PUBLIC const at toplevel.
        !          1452:        (grokdeclarator): pedwarn about initializing non-const or
        !          1453:        non-integral statics in the class body.
        !          1454: 
        !          1455:        * decl.c (pushtag): Don't try to set DECL_CLASS_CONTEXT on a
        !          1456:        TYPE_DECL.
        !          1457: 
        !          1458:        * call.c (convert_harshness): Dereference reference on rhs before
        !          1459:        proceeding, properly grok passing const things to non-const
        !          1460:        references.
        !          1461: 
        !          1462:        * typeck.c (build_unary_op): Soften error about taking the address
        !          1463:        of main() to a pedwarn.
        !          1464: 
        !          1465:        * lex.c (default_copy_constructor_body): Unambiguously specify base
        !          1466:        classes (i.e. A((const class ::A&)_ctor_arg) ).
        !          1467:        (default_assign_ref_body): Ditto.
        !          1468: 
        !          1469: Thu May 26 13:13:55 1994  Gerald Baumgartner  ([email protected])
        !          1470: 
        !          1471:        * decl2.c (grokfield): Don't complain about local signature
        !          1472:        method declaration without definition.
        !          1473: 
        !          1474:        * call.c (convert_harshness): If `type' is a signature pointer
        !          1475:        and `parmtype' is a pointer to a signature, just return 0.  We
        !          1476:        don't really convert in this case; it's a result of making the
        !          1477:        `this' parameter of a signature method a signature pointer.
        !          1478: 
        !          1479:        * call.c (build_method_call): Distinguish calling the default copy
        !          1480:        constructor of a signature pointer/reference from a signature
        !          1481:        member function call.
        !          1482: 
        !          1483: Thu May 26 12:56:25 1994  Jason Merrill  ([email protected])
        !          1484: 
        !          1485:        * decl2.c (grokfield): Don't set TREE_PUBLIC on member function
        !          1486:        declarations.
        !          1487: 
        !          1488:        * decl.c (duplicate_decls): A previous function declaration as
        !          1489:        static overrides a subsequent non-static definition.
        !          1490:        (grokdeclarator): Don't set TREE_PUBLIC on inline method
        !          1491:        declarations.
        !          1492: 
        !          1493: Wed May 25 14:36:38 1994  Jason Merrill  ([email protected])
        !          1494: 
        !          1495:        * decl.c (grokdeclarator): Handle initialization of static const
        !          1496:        members.
        !          1497:        (finish_decl): Ditto.
        !          1498: 
        !          1499:        * decl2.c (grokfield): Allow initialization of static const members
        !          1500:        even when pedantic.
        !          1501: 
        !          1502:        * decl2.c (grokfield): Deal with grokdeclarator returning
        !          1503:        error_mark_node.
        !          1504: 
        !          1505:        * decl.c (grok_ctor_properties): Return 0 for A(A) constructor.
        !          1506:        (grokfndecl): Check the return value of grok_ctor_properties.
        !          1507:        (start_method): Ditto.
        !          1508: 
        !          1509:        * parse.y (absdcl): Expand type_quals inline.
        !          1510: 
        !          1511: Tue May 24 19:10:32 1994  Jason Merrill  ([email protected])
        !          1512: 
        !          1513:        * decl.c (pushtag): Use IS_AGGR_TYPE rather than checking for a
        !          1514:        RECORD_TYPE.
        !          1515: 
        !          1516: Tue May 24 18:09:16 1994  Per Bothner  ([email protected])
        !          1517: 
        !          1518:        * cp-tree.h (VTABLE_NAME_FORMAT):  If flag_vtable_thunks,
        !          1519:        always use "__vt_%s".
        !          1520:        * decl2.c (finish_vtable_vardecl):  Don't consider abstract virtuals
        !          1521:        when looking for a "sentinal" method (to decide on emitting vtables).
        !          1522:        * decl2.c (finish_file):  Scan all decls for thunks that need
        !          1523:        to be emitted.
        !          1524:        * decl2.c (finish_vtable_vardecl):  Don't bother calling emit_thunk.
        !          1525:        * method.c (make_thunk):  Use a more meaningful label.  If there
        !          1526:        exists a matching top-level THUNK_DECL re-use it;  otherwise
        !          1527:        create a new THUNK_DECL (and declare it).
        !          1528:        * method.c (emit_thunk):  Make thunk external/public depending
        !          1529:        on the underlying method.
        !          1530: 
        !          1531: Tue May 24 00:22:04 1994  Jason Merrill  ([email protected])
        !          1532: 
        !          1533:        * pt.c (tsubst): Use lookup_name_nonclass to find guiding decls, not
        !          1534:        lookup_name.
        !          1535: 
        !          1536:        * call.c (build_overload_call_real): Don't immediately pick a
        !          1537:        function which matches perfectly.
        !          1538: 
        !          1539:        * decl.c (grokdeclarator): Use c_build_type_variant for arrays.
        !          1540:        (grokdeclarator): Warn about, and throw away, cv-quals attached to a
        !          1541:        reference (like 'int &const j').
        !          1542: 
        !          1543:        * typeck.c (convert_arguments): Don't mess with i for methods.
        !          1544:        * call.c (build_method_call): Pass the function decl to
        !          1545:        convert_arguments.
        !          1546: 
        !          1547:        * typeck.c (comp_ptr_ttypes_real): New function.  Implements the
        !          1548:        checking for which multi-level pointer conversions are allowed.
        !          1549:        (comp_target_types): Call it.
        !          1550:        (convert_for_assignment): Check const parity on the ultimate target
        !          1551:        type, too.  And make those warnings pedwarns.
        !          1552: 
        !          1553: Mon May 23 14:11:24 1994  Jason Merrill  ([email protected])
        !          1554: 
        !          1555:        * error.c (dump_char): Use TARGET_* for character constants.
        !          1556: 
        !          1557: Mon May 23 13:03:03 1994  Brendan Kehoe  ([email protected])
        !          1558: 
        !          1559:        * tree.c (debug_no_list_hash): Make static.
        !          1560: 
        !          1561:        * decl.c (decls_match): Say the types don't match if newdecl ends up
        !          1562:        with a null type, after we've checked if olddecl does.
        !          1563:        (pushdecl): Check if the decls themselves match before looking for
        !          1564:        an extern redeclared as static, to avoid inappropriate and incorrect
        !          1565:        warnings.
        !          1566: 
        !          1567: Fri May 20 14:04:34 1994  Jason Merrill  ([email protected])
        !          1568: 
        !          1569:        * decl.c (grokdeclarator): Make warning about duplicate short, etc.
        !          1570:        a pedwarn.
        !          1571: 
        !          1572:        * typeck.c (build_c_cast): Casting to function or method type is an
        !          1573:        error.
        !          1574: 
        !          1575:        * class.c (finish_struct): Make warning for anonymous class with no
        !          1576:        instances a pedwarn.
        !          1577: 
        !          1578:        * Makefile.in (stamp-parse): Expect a s/r conflict.
        !          1579: 
        !          1580:        * typeck.c (build_modify_expr): pedwarn about using a non-lvalue
        !          1581:        cast as an lvalue.
        !          1582: 
        !          1583: Thu May 19 12:08:48 1994  Jason Merrill  ([email protected])
        !          1584: 
        !          1585:        * cvt.c (type_promotes_to): Make sure bool promotes to int rather
        !          1586:        than unsigned on platforms where sizeof(char)==sizeof(int).
        !          1587: 
        !          1588: Wed May 18 14:27:06 1994  Jason Merrill  ([email protected])
        !          1589: 
        !          1590:        * typeck.c (build_c_cast): Tack on a NOP_EXPR when casting to
        !          1591:        another variant.
        !          1592:        (build_modify_expr): Don't strip NOP_EXPRs, and don't get tricky
        !          1593:        and treat them as lvalues.
        !          1594: 
        !          1595:        * decl.c (shadow_tag): Do complain about forward declarations of
        !          1596:        enums and empty declarations.
        !          1597:        * parse.y: Don't complain about forward declarations of enums and
        !          1598:        empty declarations.
        !          1599: 
        !          1600:        * typeck.c (convert_for_assignment): Complain about changing
        !          1601:        the signedness of a pointer's target type.
        !          1602: 
        !          1603:        * parse.y (stmt): Move duplicated code for checking case values from
        !          1604:        here.
        !          1605:        * decl2.c (check_cp_case_value): To here.  And add a call to
        !          1606:        constant_expression_warning.
        !          1607: 
        !          1608:        * typeck.c (convert_for_assignment): Don't complain about assigning
        !          1609:        a negative value to bool.
        !          1610: 
        !          1611:        * decl.c (init_decl_processing): Make bool unsigned.
        !          1612: 
        !          1613:        * class.c (finish_struct): Allow bool bitfields.
        !          1614: 
        !          1615: Wed May 18 12:35:27 1994  Ian Lance Taylor  ([email protected])
        !          1616: 
        !          1617:        * Make-lang.in (c++.install-man): Get g++.1 from $(srcdir)/cp.
        !          1618: 
        !          1619: Wed May 18 03:28:35 1994  Jason Merrill  ([email protected])
        !          1620: 
        !          1621:        * cvt.c (build_type_conversion): Lose special handling of
        !          1622:        truthvalues.
        !          1623: 
        !          1624:        * search.c (dfs_pushdecls): Improve shadowing warning.
        !          1625: 
        !          1626: Tue May 17 13:34:46 1994  Jason Merrill  ([email protected])
        !          1627: 
        !          1628:        * init.c (build_delete): Throw away const and volatile on `this'.
        !          1629: 
        !          1630:        * decl.c (finish_enum): Put the constants in TYPE_VALUES again,
        !          1631:        rather than the enumerators.
        !          1632:        (pushtag): s/cdecl/c_decl/g
        !          1633: 
        !          1634: Mon May 16 23:04:01 1994  Stephen R. van den Berg  ([email protected])
        !          1635: 
        !          1636:        * cp/typeck.c (common_type): Attribute merging.
        !          1637:        (comp_types): Utilise COMP_TYPE_ATTRIBUTES macro.
        !          1638: 
        !          1639:        * cp/parse.y: Revamp attribute parsing.
        !          1640: 
        !          1641: Mon May 16 01:40:34 1994  Jason Merrill  ([email protected])
        !          1642: 
        !          1643:        * decl.c (shadow_tag): Also check for inappropriate use of auto and
        !          1644:        register.
        !          1645: 
        !          1646:        * method.c (build_overload_name): Clarify that the illegal case is a
        !          1647:        pointer or reference to array of unknown bound.
        !          1648: 
        !          1649:        * error.c (dump_type_prefix): Print references to arrays properly.
        !          1650: 
        !          1651:        * typeck.c (various): Be more helpful in pointer
        !          1652:        comparison diagnostics.
        !          1653: 
        !          1654:        * tree.c (lvalue_p): MODIFY_EXPRs are lvalues again.  Isn't this
        !          1655:        fun?
        !          1656: 
        !          1657:        * parse.y: Also catch an error after valid stmts.
        !          1658: 
        !          1659:        * search.c (dfs_init_vbase_pointers): Don't abort because `this' is
        !          1660:        const.
        !          1661: 
        !          1662:        * typeck.c (convert_for_initialization): If call to
        !          1663:        convert_to_reference generated a diagnostic, print out the parm
        !          1664:        number and function decl if any.
        !          1665: 
        !          1666:        * errfn.c (cp_thing): Check atarg1 to determine whether or not we're
        !          1667:        specifying a line, not atarg.
        !          1668: 
        !          1669:        * tree.c (build_cplus_method_type): Always make `this' const.
        !          1670: 
        !          1671:        * decl2.c (grokclassfn): If -fthis-is-variable and this function is
        !          1672:        a constructor or destructor, make `this' non-const.
        !          1673: 
        !          1674:        * typeck.c (build_modify_expr): Don't warn specially about
        !          1675:        assignment to `this' here anymore, since it will be caught by the
        !          1676:        usual machinery.
        !          1677: 
        !          1678:        * various: Disallow specific GNU extensions (variable-size arrays,
        !          1679:        etc.) when flag_ansi is set, not necessarily when pedantic is set,
        !          1680:        so that people can compile with -pedantic-errors for tighter const
        !          1681:        checking and such without losing desirable extensions.
        !          1682: 
        !          1683:        * typeck2.c (build_functional_cast): Call build_method_call with
        !          1684:        LOOKUP_PROTECT.
        !          1685:        (process_init_constructor): Only process FIELD_DECLs.
        !          1686: 
        !          1687:        * decl.c (finish_decl): Also force static consts with no explicit
        !          1688:        initializer that need constructing into the data segment.
        !          1689: 
        !          1690:        * init.c (build_delete): Undo last patch, as it interferes with
        !          1691:        automatic cleanups.
        !          1692: 
        !          1693: Sat May 14 01:59:31 1994  Jason Merrill  ([email protected])
        !          1694: 
        !          1695:        * call.c, class.h, cp-tree.h, cvt.c, decl2.c: Lose old overloading
        !          1696:        code.
        !          1697: 
        !          1698:        * init.c (build_delete): pedwarn about using plain delete to delete
        !          1699:        an array.
        !          1700: 
        !          1701: Fri May 13 16:45:07 1994  Jason Merrill  ([email protected])
        !          1702: 
        !          1703:        * typeck.c (comp_target_types): Be more helpful in contravariance
        !          1704:        warnings, and make them pedwarns.
        !          1705: 
        !          1706:        * decl.c (grokdeclarator): Use decl_context to decide whether or not
        !          1707:        this is an access declaration.
        !          1708: 
        !          1709:        * class.c (finish_struct_bits): Set TYPE_HAS_INT_CONVERSION if it
        !          1710:        has a conversion to enum or bool, too.
        !          1711: 
        !          1712: Fri May 13 16:31:27 1994  Mike Stump  ([email protected])
        !          1713: 
        !          1714:        * method.c (emit_thunk):  Make declaration for
        !          1715:        current_call_is_indirect local (needed for hppa).
        !          1716: 
        !          1717: Fri May 13 16:16:37 1994  Jason Merrill  ([email protected])
        !          1718: 
        !          1719:        * pt.c (uses_template_parms): Grok BOOLEAN_TYPE.
        !          1720:        (tsubst): Ditto.
        !          1721: 
        !          1722: Fri May 13 16:23:32 1994  Mike Stump  ([email protected])
        !          1723: 
        !          1724:        * pt.c (tsubst): If there is already a function for this expansion,
        !          1725:        use it.
        !          1726:        * pt.c (instantiate_template): Ditto.
        !          1727: 
        !          1728: Fri May 13 10:30:42 1994  Brendan Kehoe  ([email protected])
        !          1729: 
        !          1730:        * parse.y (implicitly_scoped_stmt, simple_stmt case): Use
        !          1731:        kept_level_p for MARK_ENDS argument to expand_end_bindings, to avoid
        !          1732:        generating debug info for unemitted symbols on some systems.
        !          1733: 
        !          1734:        * cp-tree.h (build_static_cast, build_reinterpret_cast,
        !          1735:        build_const_cast): Add declarations.
        !          1736: 
        !          1737: Fri May 13 09:50:31 1994  Mike Stump  ([email protected])
        !          1738: 
        !          1739:        * search.c (expand_indirect_vtbls_init): Fix breakage from Apr 27
        !          1740:        fix.  We now try get_binfo, and if that doesn't find what we want,
        !          1741:        we go back to the old method, which still sometimes fails.
        !          1742: 
        !          1743: Fri May 13 01:43:18 1994  Jason Merrill  ([email protected])
        !          1744: 
        !          1745:        * parse.y (initdcl): Call cplus_decl_attributes on the right
        !          1746:        variable.
        !          1747:        * decl2.c (cplus_decl_attributes): Don't call decl_attributes for
        !          1748:        void_type_node.
        !          1749: 
        !          1750:        * typeck.c (build_binary_op_nodefault): Change result_type for
        !          1751:        comparison ops to bool.
        !          1752:        (build_binary_op): Convert args of && and || to bool.
        !          1753:        * cvt.c (build_default_binary_type_conversion): Convert args of &&
        !          1754:        and || to bool.
        !          1755:        (build_default_unary_type_conversion): Convert arg of ! to bool.
        !          1756:        (type_promotes_to): bool promotes to int.
        !          1757: 
        !          1758: Fri May 13 01:43:18 1994  Mike Stump  ([email protected])
        !          1759: 
        !          1760:        Implement the new builtin `bool' type.
        !          1761:        * typeck.c (build_binary_op_nodefault): Convert args of && and || to
        !          1762:        bool.
        !          1763:        (build_unary_op): Convert arg of ! to bool.
        !          1764:        * parse.y: Know true and false.  Use bool_truthvalue_conversion.
        !          1765:        * method.c (build_overload_value): Know bool.
        !          1766:        (build_overload_name): Ditto.
        !          1767:        * lex.c (init_lex): Set up RID_BOOL.
        !          1768:        * gxx.gperf: Add bool, true, false.
        !          1769:        * error.c (*): Know bool.
        !          1770:        * decl.c (init_decl_processing): Set up bool, true, false.
        !          1771:        * cvt.c (cp_convert): Handle conversion to bool.
        !          1772:        (build_type_conversion): Ditto.
        !          1773:        * *.c: Accept bool where integers and enums are accepted (use
        !          1774:        INTEGRAL_CODE_P macro).
        !          1775: 
        !          1776: Thu May 12 19:13:54 1994  Richard Earnshaw  ([email protected])
        !          1777: 
        !          1778:        * g++.c: Use #ifdef for __MSDOS__, not #if.
        !          1779: 
        !          1780: Thu May 12 18:05:18 1994  Mike Stump  ([email protected])
        !          1781: 
        !          1782:        * decl2.c (lang_f_options): Handle -fshort-temps.  -fshort-temps
        !          1783:        gives old behavior , and destroys temporaries earlier.  Default
        !          1784:        behavior now conforms to the ANSI working paper.
        !          1785: 
        !          1786: Thu May 12 14:45:35 1994  Jason Merrill  ([email protected])
        !          1787: 
        !          1788:        * typeck.c (build_modify_expr): Understand MODIFY_EXPR as an lvalue.
        !          1789:        Use convert_force to convert the result of a recursive call when we
        !          1790:        are dealing with a NOP_EXPR.  Don't automatically wrap MODIFY_EXPRs
        !          1791:        in COMPOUND_EXPRs any more.
        !          1792:        (various): Lose pedantic_lvalue_warning.
        !          1793:        (unary_complex_lvalue): Understand MODIFY_EXPR.
        !          1794: 
        !          1795:        * cvt.c (convert_to_reference): Allow DECL to be error_mark_node if
        !          1796:        we don't know what we're initializing.
        !          1797: 
        !          1798: Wed May 11 01:59:36 1994  Jason Merrill  ([email protected])
        !          1799: 
        !          1800:        * cvt.c (convert_to_reference): Modify to use convtype parameter.
        !          1801:        Only create temporaries when initializing a reference, not when
        !          1802:        casting.
        !          1803:        (cp_convert): New main function.
        !          1804:        (convert): Call cp_convert.
        !          1805:        * cvt.c, decl.c, typeck.c: Fix calls to convert_to_reference.
        !          1806:        * cp-tree.h (CONV_*): New constants used by conversion code for
        !          1807:        selecting conversions to perform.
        !          1808: 
        !          1809:        * tree.c (lvalue_p): MODIFY_EXPRs are no longer lvalues.
        !          1810: 
        !          1811:        * typeck.c (build_{static,reinterpret,const_cast): Stubs that just
        !          1812:        call build_c_cast.
        !          1813:        * parse.y: Add {static,reinterpret,const}_cast.
        !          1814:        * gxx.gperf: Ditto.
        !          1815: 
        !          1816:        * typeck.c (common_type): Allow methods with basetypes of different
        !          1817:        UPTs.
        !          1818:        (comptypes): Deal with UPTs.
        !          1819:        (build_modify_expr): Wrap all MODIFY_EXPRs in a COMPOUND_EXPR.
        !          1820: 
        !          1821:        * pt.c (end_template_decl): Check for multiple definitions of member
        !          1822:        templates.
        !          1823: 
        !          1824:        * call.c (build_method_call): Complain about calling an abstract
        !          1825:        virtual from a constructor.
        !          1826: 
        !          1827:        * typeck.c (pointer_int_sum): Check for the integer operand being 0
        !          1828:        after checking the validity of the pointer operand.
        !          1829: 
        !          1830:        * typeck2.c (digest_init): Pedwarn about string initializer being
        !          1831:        too long.
        !          1832: 
        !          1833: Tue May 10 12:10:28 1994  Jason Merrill  ([email protected])
        !          1834: 
        !          1835:        * decl.c (push_overloaded_decl): Only throw away a builtin if the
        !          1836:        decl in question is the artificial one.
        !          1837: 
        !          1838:        * parse.y (simple_stmt, switch): Use implicitly_scoped_stmt because
        !          1839:        expand_{start,end}_case cannot happen in the middle of a block.
        !          1840: 
        !          1841:        * cvt.c (build_type_conversion_1): Use convert again.
        !          1842: 
        !          1843: Tue May 10 11:52:04 1994  Brendan Kehoe  ([email protected])
        !          1844: 
        !          1845:        * typeck2.c (digest_init): Make sure we check for signed and
        !          1846:        unsigned chars as well when warning about string initializers.
        !          1847: 
        !          1848:        * init.c (emit_base_init): Check if there's a DECL_NAME on the
        !          1849:        member before trying to do an initialization for it.
        !          1850: 
        !          1851: Tue May 10 11:34:37 1994  Mike Stump  ([email protected])
        !          1852: 
        !          1853:        * except.c: Don't do anything useful when cross compiling.
        !          1854: 
        !          1855: Tue May 10 03:04:13 1994  Jason Merrill  ([email protected])
        !          1856: 
        !          1857:        * decl.c (duplicate_decls): Fix up handling of builtins yet again.
        !          1858:        (push_overloaded_decl): Ditto.
        !          1859: 
        !          1860:        * cvt.c (convert): Don't look for void type conversion.
        !          1861: 
        !          1862: Mon May  9 18:05:41 1994  Jason Merrill  ([email protected])
        !          1863: 
        !          1864:        * init.c (do_friend): Only do a pushdecl for friends, not
        !          1865:        pushdecl_top_level.
        !          1866: 
        !          1867: Mon May  9 13:36:34 1994  Jim Wilson  ([email protected])
        !          1868: 
        !          1869:        * decl.c (lookup_name_current_level): Put empty statement after
        !          1870:        the label OUT to make the code valid C.
        !          1871: 
        !          1872: Mon May  9 12:20:57 1994  Jason Merrill  ([email protected])
        !          1873: 
        !          1874:        * typeck.c (build_binary_op_nodefault): Only complain about
        !          1875:        comparing void * and a function pointer if void * is smaller.
        !          1876: 
        !          1877: Sun May  8 01:29:13 1994  Jason Merrill  ([email protected])
        !          1878: 
        !          1879:        * decl.c (lookup_name_current_level): Move through temporary binding
        !          1880:        levels.
        !          1881: 
        !          1882:        * parse.y (already_scoped_stmt): Revive.
        !          1883:        (simple_stmt): Use it again.
        !          1884: 
        !          1885:        * decl.c (poplevel): Always call poplevel recursively if we're
        !          1886:        dealing with a temporary binding level.
        !          1887: 
        !          1888: Sat May  7 10:52:28 1994  Mike Stump  ([email protected])
        !          1889: 
        !          1890:        * decl.c (finish_decl): Make sure we run cleanups for initial values
        !          1891:        of decls.  Cures memory leak.
        !          1892:        * decl.c (expand_static_init): Ditto for static variables.
        !          1893:        * decl2.c (finish_file): Ditto for globals.
        !          1894: 
        !          1895: Sat May  7 03:57:44 1994  Jason Merrill  ([email protected])
        !          1896: 
        !          1897:        * typeck.c (commonparms): Don't complain about redefining default
        !          1898:        args.
        !          1899: 
        !          1900:        * decl.c (duplicate_decls): Don't complain twice about conflicting
        !          1901:        function decls.
        !          1902:        (decls_match): Don't look at default args.
        !          1903:        (redeclaration_error_message): Complain about redefining default
        !          1904:        args.
        !          1905: 
        !          1906:        * call.c (build_overload_call_real): Also deal with guiding
        !          1907:        declarations coming BEFORE the template decl.
        !          1908: 
        !          1909:        * pt.c (unify): Allow different parms to have different
        !          1910:        cv-qualifiers.
        !          1911:        (unify): Allow trivial conversions on non-template parms.
        !          1912: 
        !          1913: Fri May  6 03:53:23 1994  Jason Merrill  ([email protected])
        !          1914: 
        !          1915:        * pt.c (tsubst): Support OFFSET_TYPEs.
        !          1916:        (unify): Ditto.
        !          1917: 
        !          1918:        * decl2.c (finish_decl_parsing): Call push_nested_class with a type.
        !          1919: 
        !          1920:        * init.c (build_offset_ref): Fix error message.
        !          1921:        * search.c (lookup_field): Ditto.
        !          1922: 
        !          1923:        * call.c (build_scoped_method_call): Pass binfo to
        !          1924:        build_method_call.
        !          1925:        * typeck.c (build_object_ref): Ditto.
        !          1926: 
        !          1927:        * typeck2.c (binfo_or_else): Don't return a _TYPE.
        !          1928: 
        !          1929:        * class.c (finish_struct): Don't complain about re-use of inherited
        !          1930:        names or shadowing of type decls.
        !          1931:        * decl.c (pushdecl_class_level): Ditto.
        !          1932: 
        !          1933:        * decl.c (finish_enum): Set the type of all the enums.
        !          1934: 
        !          1935:        * class.c (finish_struct): Don't get confused by access decls.
        !          1936: 
        !          1937:        * cp-tree.h (TYPE_MAIN_DECL): New macro to get the _DECL for a
        !          1938:        _TYPE.  You can stop using TYPE_NAME for that now.
        !          1939: 
        !          1940:        * parse.y: Lose doing_explicit (check $0 instead).
        !          1941:        * gxx.gperf: 'template' now has a RID.
        !          1942:        * lex.h (rid): Ditto.
        !          1943:        * lex.c (init_lex): Set up the RID for 'template'.
        !          1944: 
        !          1945:        * parse.y (type_specifier_seq): typed_typespecs or
        !          1946:        nonempty_type_quals.  Use it.
        !          1947:        (handler_args): Fix bogus syntax.
        !          1948:        (raise_identifier{,s}, optional_identifier): Lose.
        !          1949:        * except.c (expand_start_catch_block): Use grokdeclarator to parse
        !          1950:        the catch variable.
        !          1951:        (init_exception_processing): The second argument to
        !          1952:        __throw_type_match is ptr_type_node.
        !          1953: 
        !          1954:        Fri May  6 07:18:54 1994  Chip Salzenberg  (chip@fin)
        !          1955: 
        !          1956:        [ change propagated from c-decl.c of snapshot 940429 ]
        !          1957:        * cp/decl.c (finish_decl): Setting asmspec_tree should not
        !          1958:        zero out the old RTL.
        !          1959: 
        !          1960: Fri May  6 01:25:38 1994  Mike Stump  ([email protected])
        !          1961: 
        !          1962:        Add alpha exception handling support to the compiler.
        !          1963:        Quick and dirty backend in except.c.
        !          1964: 
        !          1965:        * cp/*:  Remove most remnants of old exception handling support.
        !          1966:        * decl.c (finish_function): Call expand_exception_blocks to put
        !          1967:        the exception hanlding blocks at the end of the function.
        !          1968:        * dec.c (hack_incomplete_structures): Make sure expand_decl_cleanup
        !          1969:        comes after expand_decl_init.
        !          1970:        * except.c: Reimplementation.
        !          1971:        * expr.c (cplus_expand_expr): Handle THROW_EXPRs.
        !          1972:        * lex.c (init_lex): Always have catch, try and throw be reserved
        !          1973:        words, so that we may always parse exception handling.
        !          1974:        * parse.y: Cleanup to support new interface into exception handling.
        !          1975:        * tree.def (THROW_EXPR): Add.
        !          1976: 
        !          1977: Thu May  5 17:35:37 1994  Jason Merrill  ([email protected])
        !          1978: 
        !          1979:        * parse.y (simple_stmt, for loops): Use implicitly_scoped_stmt.
        !          1980:        (various): Lose .kindof_pushlevel and partially_scoped_stmt.
        !          1981: 
        !          1982: Thu May  5 16:17:27 1994  Kung Hsu  ([email protected])
        !          1983: 
        !          1984:        * parse.y (already_scoped_stmt): move expand_end_binding() to
        !          1985:        fix the unmatched LBB/LBE in stabs.
        !          1986: 
        !          1987: Thu May  5 14:36:17 1994  Jason Merrill  ([email protected])
        !          1988: 
        !          1989:        * decl.c (set_nested_typename): Set TREE_MANGLED on the new
        !          1990:        identifiers.
        !          1991:        (pushdecl): Check TREE_MANGLED.
        !          1992:        (xref_tag): Ditto.
        !          1993:        * cp-tree.h (TREE_MANGLED): This identifier is a
        !          1994:        DECL_NESTED_TYPENAME (named to allow for future use to denote
        !          1995:        mangled function names as well).
        !          1996: 
        !          1997:        Implement inconsistency checking specified in [class.scope0].
        !          1998:        * decl.c (lookup_name_real): Don't set ICV here after all.
        !          1999:        (finish_enum): Also set the type of the enumerators themselves.
        !          2000:        (build_enumerator): Put the CONST_DECL in the list instead of its
        !          2001:        initial value.
        !          2002:        (pushdecl_class_level): Check inconsistent use of a name in the
        !          2003:        class body.
        !          2004:        * class.c (finish_struct): Check inconsistent use of a name in the
        !          2005:        class body.  Don't set DECL_CONTEXT on types here anymore.
        !          2006:        * parse.y (qualified_type_name): Note that the identifier has now
        !          2007:        been used (as a type) in the class body.
        !          2008:        * lex.c (do_identifier): Note that the identifier has now been used
        !          2009:        (as a constant) in the class body.
        !          2010:        * error.c (dump_decl): Print type and enum decls better.
        !          2011: 
        !          2012: Thu May  5 09:35:35 1994  Brendan Kehoe  ([email protected])
        !          2013: 
        !          2014:        * typeck.c (build_modify_expr): Warn about assignment to `this'.
        !          2015: 
        !          2016: Wed May  4 15:55:49 1994  Jason Merrill  ([email protected])
        !          2017: 
        !          2018:        * init.c (build_delete): Use the global operator delete when
        !          2019:        requested.
        !          2020: 
        !          2021:        * decl.c (lookup_name_real): If we find the type we're looking in a
        !          2022:        base class while defining a class, set IDENTIFIER_CLASS_VALUE for
        !          2023:        the type.
        !          2024: 
        !          2025:        * class.c (finish_struct): Remove a couple of dependencies on
        !          2026:        language linkage.
        !          2027: 
        !          2028:        * decl.c (pushtag): Classes do nest in extern "C" blocks.
        !          2029:        (pushdecl): Only set DECL_NESTED_TYPENAME on the canonical one for
        !          2030:        the type.
        !          2031:        (pushtag): Remove another dependency on the language linkage.
        !          2032: 
        !          2033:        * lex.c (cons_up_default_function): Don't set DECL_CLASS_CONTEXT to
        !          2034:        a const-qualified type.
        !          2035: 
        !          2036:        * decl.c (push_overloaded_decl): Throw away built-in decls here.
        !          2037:        (duplicate_decls): Instead of here.
        !          2038: 
        !          2039: Wed May  4 15:27:40 1994  Per Bothner  ([email protected])
        !          2040: 
        !          2041:        * typeck.c (get_member_function_from_ptrfunc):  Do The Right
        !          2042:        Thing (I hope) if we're using thunks.
        !          2043: 
        !          2044: Wed May  4 13:52:38 1994  Jason Merrill  ([email protected])
        !          2045: 
        !          2046:        * parse.y (specialization): aggr template_type_name ';'.
        !          2047:        (named_class_head_sans_basetype): Use it.
        !          2048:        (explicit_instantiation): Ditto.
        !          2049:        (tmpl.2): Revert.
        !          2050: 
        !          2051:        * cvt.c (build_type_conversion_1): Use convert_for_initialization,
        !          2052:        rather than convert, to do conversions after the UDC.
        !          2053: 
        !          2054:        * cp-tree.h (SHARED_MEMBER_P): This member is shared between all
        !          2055:        instances of the class.
        !          2056: 
        !          2057:        * search.c (lookup_field): If the entity found by two routes is the
        !          2058:        same, it's not ambiguous.
        !          2059: 
        !          2060: Wed May  4 12:10:00 1994  Per Bothner  ([email protected])
        !          2061: 
        !          2062:        * decl.c (lookup_name_real):  Check for a NULL TREE_VALUE,
        !          2063:        to prevent the compiler from crashing ...
        !          2064: 
        !          2065: Wed May  4 11:19:45 1994  Jason Merrill  ([email protected])
        !          2066: 
        !          2067:        * call.c (build_method_call): If we don't have an object, check
        !          2068:        basetype_path to figure out where to look up the function.
        !          2069: 
        !          2070:        * typeck.c (convert_for_initialization): Pass TYPE_BINFO (type) to
        !          2071:        build_method_call in case exp is NULL_TREE.
        !          2072: 
        !          2073: Tue May  3 16:02:53 1994  Per Bothner  ([email protected])
        !          2074: 
        !          2075:        Give a vtable entries a unique named type, for the sake of gdb.
        !          2076:        * class.c (build_vtable_entry):  The addres of a thunk now has
        !          2077:        type vtable_entry_type, not ptr_type_node.
        !          2078:        * method.c (make_thunk):  Fix type of THUNK_DECL.
        !          2079:        * class.c (add_virtual_function, override_one_vtable):  Use
        !          2080:        vfunc_ptr_type_node, instead of ptr_type_node.
        !          2081:        * cp-tree.h (vfunc_ptr_type_node):  New macro.
        !          2082:        * decl.c (init_decl_processing):  Make vtable_entry_type
        !          2083:        be a unique type of pointer to a unique function type.
        !          2084: 
        !          2085: Tue May  3 09:20:44 1994  Jason Merrill  ([email protected])
        !          2086: 
        !          2087:        * parse.y (do_explicit): Sets doing_explicit to 1.
        !          2088:        (explicit_instantiation): Use do_explicit rather than TEMPLATE
        !          2089:        directly, add "do_explicit error" rule.
        !          2090:        (datadef): Set doing_explicit to 0 after an explicit instantiation.
        !          2091:        (tmpl.2): Don't instantiate if we see a ';' unless we're doing an
        !          2092:        explicit instantiation.
        !          2093:        (named_class_head_sans_basetype): Remove aggr template_type_name
        !          2094:        ';' again.
        !          2095: 
        !          2096: Mon May  2 23:17:21 1994  Jason Merrill  ([email protected])
        !          2097: 
        !          2098:        * search.c (lookup_nested_tag): Lose.
        !          2099: 
        !          2100:        * decl2.c (grokfield): Set DECL_CONTEXT on TYPE_DECLs.
        !          2101:        (lookup_name_nonclass): Lose.
        !          2102: 
        !          2103:        * decl.c (poplevel_class): Add force parameter.
        !          2104:        (lookup_name_real): Fix handling of explicit scoping which specifies
        !          2105:        a class currently being defined.  Add 'nonclass' argument.
        !          2106:        (lookup_name, lookup_name_nonclass): Shells for lookup_name_real.
        !          2107: 
        !          2108:        * class.c (finish_struct): Don't unset IDENTIFIER_CLASS_VALUEs here.
        !          2109:        (popclass): Force clearing of IDENTIFIER_CLASS_VALUEs if we're being
        !          2110:        called from finish_struct.
        !          2111: 
        !          2112: Mon May  2 19:06:21 1994  Per Bothner  ([email protected])
        !          2113: 
        !          2114:        * decl.c (init_decl_processing), cp-tree.h:  Removed memptr_type.
        !          2115:        (It seeems redundant, given build_ptrmemfunc_type.)
        !          2116:        * typeck.c (get_member_function_from_ptrfunc), gc.c (build_headof,
        !          2117:        build_classof):  Use vtable_entry_type instead of memptr_type.
        !          2118:        * method.c (emit_thunk):  Call poplevel with functionbody==0
        !          2119:        to prevent DECL_INITIAL being set to a BLOCK.
        !          2120: 
        !          2121: Mon May  2 15:02:11 1994  Jason Merrill  ([email protected])
        !          2122: 
        !          2123:        * parse.y (named_class_head_sans_basetype): Add "aggr
        !          2124:        template_type_name ';'" rule for forward declaration of
        !          2125:        specializations.
        !          2126: 
        !          2127: Mon May  2 15:02:11 1994  Jason Merrill  ([email protected])
        !          2128: 
        !          2129:        * class.c (instantiate_type): Deal with pmf's.
        !          2130: 
        !          2131:        * Make-lang.in (cc1plus): Don't depend on OBJS or BC_OBJS, since
        !          2132:        stamp-objlist does.
        !          2133: 
        !          2134:        * Makefile.in (../cc1plus): Depend on OBJDEPS.
        !          2135:        (OBJDEPS): Dependency version of OBJS.
        !          2136: 
        !          2137: Mon May  2 12:51:31 1994  Kung Hsu  ([email protected])
        !          2138: 
        !          2139:        * search.c (dfs_debug_mark): unmark TYPE_DECL_SUPPRESS_DEBUG, not
        !          2140:        DECL_IGNORED_P.
        !          2141: 
        !          2142: Fri Apr 29 12:29:56 1994  Jason Merrill  ([email protected])
        !          2143: 
        !          2144:        * class.c (finish_struct): Clear out memory of local tags.  And
        !          2145:        typedefs.
        !          2146: 
        !          2147:        * decl2.c (grokclassfn): Don't set DECL_CONTEXT to a cv-qualified
        !          2148:        type.
        !          2149:        * search.c (get_matching_virtual): Be more helpful in error message.
        !          2150: 
        !          2151:        * *: Use DECL_ARTIFICIAL (renamed from DECL_SYNTHESIZED).
        !          2152: 
        !          2153:        * lex.c (default_assign_ref_body): Expect TYPE_NESTED_NAME to work.
        !          2154:        (default_copy_constructor_body): Ditto.
        !          2155: 
        !          2156:        * class.c (finish_struct): Don't gratuitously create multiple decls
        !          2157:        for nested classes.
        !          2158: 
        !          2159: Thu Apr 28 23:39:38 1994  Jason Merrill  ([email protected])
        !          2160: 
        !          2161:        Avoid clobbering the arg types of other functions when reverting
        !          2162:        static member functions.
        !          2163:        * decl.c (revert_static_member_fn): Rearrange arguments, don't
        !          2164:        require values for 'fn' and 'argtypes', add warning to comment
        !          2165:        above.
        !          2166:        (decls_match): Rearrange arguments in call to rsmf.
        !          2167:        (grok_op_properties): Don't pass values for fn and argtypes.
        !          2168:        * pt.c (instantiate_template): Don't pass values for fn and argtypes.
        !          2169: 
        !          2170: Thu Apr 28 16:29:11 1994  Doug Evans  ([email protected])
        !          2171: 
        !          2172:        * Make-lang.in (cc1plus): Depend on stamp-objlist.
        !          2173:        * Makefile.in (BC_OBJS): Delete.
        !          2174:        (OBJS): Cat ../stamp-objlist to get language independent files.
        !          2175:        Include ../c-common.o.
        !          2176:        (../cc1plus): Delete reference to BC_OBJS.
        !          2177: 
        !          2178: Thu Apr 28 02:12:08 1994  Jason Merrill  ([email protected])
        !          2179: 
        !          2180:        * search.c (compute_access): No really, deal with static members
        !          2181:        properly.  Would I lie to you?
        !          2182: 
        !          2183:        Implement lexical hiding of function declarations.
        !          2184:        * pt.c (tsubst): Use lookup_name to look for function decls to guide
        !          2185:        instantiation.
        !          2186:        * method.c (build_opfncall): Use lookup_name_nonclass to look for
        !          2187:        non-member functions.
        !          2188:        * init.c (do_friend): Use lookup_name_nonclass to look for
        !          2189:        functions.
        !          2190:        * error.c (ident_fndecl): Use lookup_name to look for functions.
        !          2191:        * decl2.c (lookup_name_nonclass): New function, skips over
        !          2192:        CLASS_VALUE.
        !          2193:        * decl.c (struct binding_level): Lose overloads_shadowed field.
        !          2194:        (poplevel): Don't deal with overloads_shadowed.
        !          2195:        (push_overloaded_decl): Do lexical hiding for functions.
        !          2196:        * class.c (instantiate_type): Don't check non-members if we have
        !          2197:        members with the same name.
        !          2198:        * call.c (build_method_call): Use lookup_name_nonclass instead of
        !          2199:        IDENTIFIER_GLOBAL_VALUE to check for non-member functions.
        !          2200:        (build_overload_call_real): Ditto.
        !          2201: 
        !          2202:        * decl.c (duplicate_decls): Check for ambiguous overloads here.
        !          2203:        (push_overloaded_decl): Instead of here.
        !          2204:        
        !          2205:        * decl.c (pushdecl): Back out Chip's last change.
        !          2206: 
        !          2207:        * decl.c (grok_op_properties): operators cannot be static members.
        !          2208: 
        !          2209:        * cp-tree.h (DECL_SYNTHESIZED): DECL_SOURCE_LINE == 0
        !          2210:        (SET_DECL_SYNTHESIZED): DECL_SOURCE_LINE = 0
        !          2211:        * lex.c (cons_up_default_function): Use SET_DECL_SYNTHESIZED.
        !          2212: 
        !          2213:        * method.c (do_inline_function_hair): Don't put friends of local
        !          2214:        classes into global scope, either.
        !          2215: 
        !          2216:        * typeck2.c (build_functional_cast): Don't look for a function call
        !          2217:        interpretation.
        !          2218: 
        !          2219: Thu Apr 28 15:19:46 1994  Mike Stump  ([email protected])
        !          2220: 
        !          2221:        * cp-tree.h: disable use of backend EH.
        !          2222: 
        !          2223: Wed Apr 27 21:01:24 1994  Doug Evans  ([email protected])
        !          2224: 
        !          2225:        * Make-lang.in (c++.distdir): mkdir tmp/cp first.
        !          2226:        * Makefile.in (INCLUDES): Move definition to same place as
        !          2227:        parent makefile.
        !          2228:        (ALLOCA): Define.
        !          2229:        (OLDAR_FLAGS): Delete.
        !          2230:        (OLDCC): Define.
        !          2231:        (DIR): Delete.
        !          2232:        (CLIB): Define.
        !          2233:        (####site): Delete.
        !          2234:        (SUBDIR_USE_ALLOCA): Don't use ALLOCA if compiling with gcc.
        !          2235: 
        !          2236: Wed Apr 27 19:10:04 1994  Kung Hsu  ([email protected])
        !          2237: 
        !          2238:        * decl.c (xref_tag): not to use strstr(), it's not available on
        !          2239:        all platforms.
        !          2240: 
        !          2241: Wed Apr 27 18:10:12 1994  Jason Merrill  ([email protected])
        !          2242: 
        !          2243:        * class.c (finish_struct): Resolve yet another class/pmf confusion.
        !          2244: 
        !          2245:        * call.c (build_overload_call_real): Don't take the single-function
        !          2246:        shortcut if we're dealing with an overloaded operator.
        !          2247: 
        !          2248: Wed Apr 27 17:35:37 1994  Mike Stump  ([email protected])
        !          2249: 
        !          2250:        * search.c (get_base_distance): Search the virtual base class
        !          2251:        binfos, incase someone wants to convert to a real virtual base
        !          2252:        class.
        !          2253:        * search.c (expand_indirect_vtbls_init): Use convert_pointer_to_real
        !          2254:        instead of convert_pointer_to, as it now will work.
        !          2255: 
        !          2256: Wed Apr 27 15:36:49 1994  Jason Merrill  ([email protected])
        !          2257: 
        !          2258:        * cvt.c (convert_to_reference): Don't complain about casting away
        !          2259:        const and volatile.
        !          2260: 
        !          2261:        * typeck.c (build_unary_op): References are too lvalues.
        !          2262: 
        !          2263: Wed Apr 27 13:58:05 1994  Mike Stump  ([email protected])
        !          2264: 
        !          2265:        * class.c (override_one_vtable): We have to prepare_fresh_vtable
        !          2266:        before we modify it, not after, also, we cannot reuse an old vtable,
        !          2267:        once we commit to a new vtable.  Implement ambiguous overrides in
        !          2268:        virtual bases as abstract.  Hack until we make the class
        !          2269:        ill-formed.
        !          2270: 
        !          2271: Wed Apr 27 01:17:08 1994  Jason Merrill  ([email protected])
        !          2272: 
        !          2273:        * parse.y (unary_expr): Expand new_placement[opt] and
        !          2274:        new_initializer[opt] inline.
        !          2275: 
        !          2276:        * search.c (lookup_fnfields): Don't throw away the inheritance
        !          2277:        information here, either.
        !          2278:        (compute_access): Handle static members properly.
        !          2279: 
        !          2280:        * init.c (build_member_call): Always set basetype_path, and pass it
        !          2281:        to lookup_fnfields.
        !          2282: 
        !          2283:        * search.c (lookup_field): Deal properly with the case where
        !          2284:        xbasetype is a chain of binfos; don't throw away the inheritance
        !          2285:        information.
        !          2286:        (compute_access): protected_ok always starts out at 0.
        !          2287: 
        !          2288:        * init.c (resolve_offset_ref): Don't cast `this' to the base type
        !          2289:        until we've got our basetype_path.
        !          2290: 
        !          2291:        * cp-tree.h (IS_OVERLOAD_TYPE): aggregate or enum.
        !          2292: 
        !          2293:        * cvt.c (build_up_reference): Use build_pointer_type rather than
        !          2294:        TYPE_POINTER_TO.
        !          2295: 
        !          2296:        * call.c (convert_harshness_ansi): Call type_promotes_to for reals
        !          2297:        as well.
        !          2298: 
        !          2299:        * cvt.c (type_promotes_to): Retain const and volatile, add
        !          2300:        float->double promotion.
        !          2301: 
        !          2302:        * decl.c (grokdeclarator): Don't bash references to arrays into
        !          2303:        references to pointers in function parms.  Use type_promotes_to.
        !          2304: 
        !          2305: Tue Apr 26 23:44:36 1994  Mike Stump  ([email protected])
        !          2306: 
        !          2307:        Finish off Apr 19th work.
        !          2308: 
        !          2309:        * class.c (finish_struct_bits): Rename has_abstract_virtuals to
        !          2310:        might_have_abstract_virtuals.
        !          2311:        * class.c (strictly_overrides, override_one_vtable,
        !          2312:        merge_overrides): New routines to handle virtual base overrides.
        !          2313:        * class.c (finish_struct): Call merge_overrides to handle overrides
        !          2314:        in virtual bases.
        !          2315: 
        !          2316: Tue Apr 26 12:45:53 1994  Jason Merrill  ([email protected])
        !          2317: 
        !          2318:        * typeck.c (build_function_call): Call build_function_call_real with
        !          2319:        LOOKUP_NORMAL.
        !          2320: 
        !          2321:        * *: Don't deal with TYPE_EXPRs.
        !          2322: 
        !          2323:        * tree.c (lvalue_p): If the type of the expression is a reference,
        !          2324:        it's an lvalue.
        !          2325: 
        !          2326:        * cvt.c (convert_to_reference): Complain about passing const
        !          2327:        lvalues to non-const references.
        !          2328:        (convert_from_reference): Don't arbitrarily throw away const and
        !          2329:        volatile on the target type.
        !          2330: 
        !          2331:        * parse.y: Simplify and fix rules for `new'.
        !          2332: 
        !          2333:        * decl.c (grok_op_properties): operator void is illegal.
        !          2334: 
        !          2335: Mon Apr 25 02:36:28 1994  Jason Merrill  ([email protected])
        !          2336: 
        !          2337:        * parse.y (components): Anonymous bitfields can still have declspecs.
        !          2338: 
        !          2339:        * decl.c (pushdecl): Postpone handling of function templates like we
        !          2340:        do C functions.
        !          2341: 
        !          2342:        * search.c (expand_indirect_vtbls_init): Fix infinite loop when
        !          2343:        convert_pointer_to fails.
        !          2344: 
        !          2345:        * call.c (compute_conversion_costs_ansi): A user-defined conversion
        !          2346:        by itself is better than that UDC followed by standard conversions.
        !          2347:        Don't treat integers and reals specially.
        !          2348: 
        !          2349:        * cp-tree.h: Declare flag_ansi.
        !          2350: 
        !          2351:        * typeck.c (c_expand_return): pedwarn on return in void function
        !          2352:        even if the expression is of type void.
        !          2353:        (build_c_cast): Don't do as much checking for casts to void.
        !          2354:        (build_modify_expr): pedwarn about array assignment if this code
        !          2355:        wasn't generated by the compiler.
        !          2356: 
        !          2357:        * tree.c (lvalue_p): A comma expression is an lvalue if its second
        !          2358:        operand is.
        !          2359: 
        !          2360:        * typeck.c (default_conversion): Move code for promoting enums and
        !          2361:        ints from here.
        !          2362:        * cvt.c (type_promotes_to): To here.
        !          2363:        * call.c (convert_harshness_ansi): Use type_promotes_to.  Also fix
        !          2364:        promotion semantics for reals.
        !          2365: 
        !          2366: Sun Apr 24 16:52:51 1994  Doug Evans  ([email protected])
        !          2367: 
        !          2368:        * Make-lang.in (c++.install-common): Check for g++-cross.
        !          2369:        * Makefile.in: Remove Cygnus cruft.
        !          2370:        (config.status): Delete.
        !          2371:        (RTL_H): Define.
        !          2372:        (TREE_H): Use complete pathname, some native makes have minimal
        !          2373:        VPATH support.
        !          2374:        (*.o): Use complete pathname to headers in parent dir.
        !          2375:        (doc, info, dvi): Delete.
        !          2376: 
        !          2377: Sun Apr 24 16:52:51 1994  Doug Evans  ([email protected])
        !          2378: 
        !          2379:        * Make-lang.in (c++.install-common): Check for g++-cross.
        !          2380:        * Makefile.in: Remove Cygnus cruft.
        !          2381:        (config.status): Delete.
        !          2382:        (RTL_H): Define.
        !          2383:        (TREE_H): Use complete pathname, some native makes have minimal
        !          2384:        VPATH support.
        !          2385:        (*.o): Use complete pathname to headers in parent dir.
        !          2386:        (doc, info, dvi): Delete.
        !          2387: 
        !          2388: Sun Apr 24 00:47:49 1994  Jason Merrill  ([email protected])
        !          2389: 
        !          2390:        * decl.c (pushdecl): Avoid redundant warning on redeclaring function
        !          2391:        with different return type.
        !          2392:        (decls_match): Compare return types strictly.
        !          2393: 
        !          2394: Fri Apr 22 12:55:42 1994  Jason Merrill  ([email protected])
        !          2395: 
        !          2396:        * cvt.c (build_type_conversion): Do try to convert through other
        !          2397:        pointers.  This will fail if the class defines multiple pointer
        !          2398:        conversions.
        !          2399: 
        !          2400:        * error.c (dump_type_prefix): Print out pointers to arrays properly.
        !          2401:        (dump_type_suffix): Ditto.  (was 'int *[]', now 'int (*)[]')
        !          2402: 
        !          2403:        * typeck.c (build_unary_op): Disallow ++/-- on pointers to
        !          2404:        incomplete type.
        !          2405: 
        !          2406:        * decl.c (duplicate_decls): Check mismatched TREE_CODES after
        !          2407:        checking for shadowing a builtin.  If we're redeclaring a builtin
        !          2408:        function, bash the old decl to avoid an ambiguous overload.
        !          2409: 
        !          2410:        * cvt.c (convert_to_reference): Don't force arrays to decay here.
        !          2411: 
        !          2412:        * tree.c (lvalue_p): A MODIFY_EXPR is an lvalue.
        !          2413: 
        !          2414:        * decl.c (duplicate_decls): Don't assume that the decls will have
        !          2415:        types.
        !          2416: 
        !          2417:        Mon Apr 18 11:35:32 1994  Chip Salzenberg  ([email protected])
        !          2418: 
        !          2419:        [ cp/* changes propagated from c-* changes in 940318 snapshot ]
        !          2420:        * c-decl.c (pushdecl): Warn if type mismatch with another external decl
        !          2421:        in a global scope.
        !          2422: 
        !          2423:        Fri Apr 22 06:38:56 1994  Chip Salzenberg  ([email protected])
        !          2424: 
        !          2425:        * cp/typeck2.c (signature_error): Use cp_error for "%T".
        !          2426: 
        !          2427:        Mon Apr 18 11:59:59 1994  Chip Salzenberg  ([email protected])
        !          2428: 
        !          2429:        [ cp/* changes propagated from c-* changes in 940415 snapshot ]
        !          2430:        * cp/decl.c (duplicate_decls, pushdecl, builtin_function):
        !          2431:        Use DECL_FUNCTION_CODE instead of DECL_SET_FUNCTION_CODE.
        !          2432: 
        !          2433:        Mon Apr 18 11:55:18 1994  Chip Salzenberg  ([email protected])
        !          2434: 
        !          2435:        [ cp/* changes propagated from c-* changes in 940409 snapshot ]
        !          2436:        * cp/decl.c (duplicate_decls): Put new type in same obstack as
        !          2437:        old ones, or permanent if old ones in different obstacks.
        !          2438: 
        !          2439:        Mon Apr 18 11:48:49 1994  Chip Salzenberg  ([email protected])
        !          2440: 
        !          2441:        [ cp/* changes propagated from c-* changes in 940401 snapshot ]
        !          2442:        * cp/parse.y (attrib): Handle string args as expressions,
        !          2443:        merging the two rules.  `mode' attribute now takes a string arg.
        !          2444:        Delete the rule for an identifier as arg.
        !          2445: 
        !          2446:        Mon Apr 18 11:24:00 1994  Chip Salzenberg  ([email protected])
        !          2447: 
        !          2448:        [ cp/* changes propagated from c-* changes in 940312 snapshot ]
        !          2449:        * cp/typeck.c (pointer_int_sum): Multiplication should be done signed.
        !          2450:        (pointer_diff): Likewise the division.
        !          2451: 
        !          2452:        Sun Mar  6 19:43:39 1994  Chip Salzenberg  ([email protected])
        !          2453: 
        !          2454:        [ cp/* changes propagated from c-* changes in 940304 snapshot ]
        !          2455:        * cp/decl.c (finish_decl): Issue warning for large objects,
        !          2456:        if requested.
        !          2457: 
        !          2458:        Sat Feb 19 22:20:32 1994  Chip Salzenberg  ([email protected])
        !          2459: 
        !          2460:        [ cp/* changes propagated from c-* changes in 940218 snapshot ]
        !          2461:        * cp/parse.y (attrib): Handle attribute ((section ("string"))).
        !          2462:        * cp/decl.c (duplicate_decls): Merge section name into new decl.
        !          2463: 
        !          2464:        Tue Feb  8 09:49:17 1994  Chip Salzenberg  ([email protected])
        !          2465: 
        !          2466:        [ cp/* changes propagated from c-* changes in 940206 snapshot ]
        !          2467:        * cp/typeck.c (signed_or_unsigned_type): Check for any
        !          2468:        INTEGRAL_TYPE_P not just INTEGER_TYPE.
        !          2469: 
        !          2470:        Mon Dec  6 13:35:31 1993  Norbert Kiesel  ([email protected])
        !          2471: 
        !          2472:        * cp/decl.c (finish_enum): Start from 0 when determining precision
        !          2473:        for short enums.
        !          2474: 
        !          2475:        Fri Dec  3 17:07:58 1993  Ralph Campbell  ([email protected])
        !          2476: 
        !          2477:        * cp/parse.y (unary_expr): Look at $1 for tree_code rather than
        !          2478:        casting $$.
        !          2479: 
        !          2480:        Wed Nov 17 19:22:09 1993  Chip Salzenberg  ([email protected])
        !          2481: 
        !          2482:        * cp/typeck.c (build_binary_op_nodefault): Propagate code
        !          2483:        from C front-end to optimize unsigned short division.
        !          2484:        (build_conditional_expr): Fix bug in "1 ? 42 : (void *) 8".
        !          2485: 
        !          2486:        Wed Nov 17 19:17:18 1993  Chip Salzenberg  ([email protected])
        !          2487: 
        !          2488:        * cp/call.c (convert_harshness_ansi): Given an (e.g.) char
        !          2489:        constant, prefer 'const char &' to 'int'.
        !          2490: 
        !          2491:        Wed Feb  3 13:11:48 1993  Chip Salzenberg  ([email protected])
        !          2492: 
        !          2493:        * cp/class.c (finish_struct_methods):  Handle multiple
        !          2494:        constructors in fn_fields list.
        !          2495: 
        !          2496: Fri Apr 22 12:48:10 1994  Kung Hsu  ([email protected])
        !          2497: 
        !          2498:        * class.c (finish_struct): use TYPE_DECL_SUPPRESS_DEBUG to flag
        !          2499:        types not to be dumped in stabs, like types in #pragma interface.
        !          2500:        * decl.c (init_decl_processing): use TYPE_DECL_SUPPRESS_DEBUG to
        !          2501:        mark unknown type.
        !          2502: 
        !          2503: Fri Apr 22 03:27:26 1994  Doug Evans  ([email protected])
        !          2504: 
        !          2505:        * Language directory reorganization.
        !          2506:        See parent makefile.
        !          2507: 
        !          2508: Fri Apr 22 03:27:26 1994  Doug Evans  ([email protected])
        !          2509: 
        !          2510:        * Language directory reorganization.
        !          2511:        See parent makefile.
        !          2512: 
        !          2513: Thu Apr 21 18:27:57 1994  Per Bothner  ([email protected])
        !          2514: 
        !          2515:        * cp-tree.h (THUNK_DELTA):  It is normally negative, so
        !          2516:        use signed .i variant of frame_size rather than unsigned .u.
        !          2517:        * cp-tree.h (VTABLE_NAME_FORMAT):  If flag_vtable_thunks,
        !          2518:        use "VT" rather than "vt" due to binary incompatibility.
        !          2519:        * class.c (get_vtable_name):  Use strlen of VTABLE_NAME_FORMAT,
        !          2520:        rather than sizeof, since it is now an expression.
        !          2521:        * class.c (modify_one_vtable):  Modify to skip initial element
        !          2522:        containing a count of the vtable.
        !          2523: 
        !          2524: Thu Apr 21 00:09:02 1994  Jason Merrill  ([email protected])
        !          2525: 
        !          2526:        * lex.c (check_newline): Force interface_unknown on main input file.
        !          2527: 
        !          2528:        * pt.c (do_pending_expansions): Always emit functions that have been
        !          2529:        explicitly instantiated.
        !          2530:        (do_function_instantiation): Set DECL_EXPLICITLY_INSTANTIATED.
        !          2531:        (do_type_instantiation): Set CLASSTYPE_VTABLE_NEEDS_WRITING and
        !          2532:        DECL_EXPLICITLY_INSTANTIATED on all my methods.
        !          2533:        * parse.y (explicit_instantiation): Call do_type_instantiation for
        !          2534:        types.
        !          2535:        * decl2.c (finish_vtable_vardecl): Call import_export_vtable.
        !          2536:        * decl.c (start_function): Don't set DECL_EXTERNAL on a function
        !          2537:        that has been explicitly instantiated.
        !          2538:        * cp-tree.h (DECL_EXPLICITLY_INSTANTIATED): Alias for
        !          2539:        DECL_LANG_FLAG_4.
        !          2540:        * class.c: Move import_export_vtable to decl2.c, and comment out all
        !          2541:        uses.
        !          2542: 
        !          2543: Wed Apr 20 16:51:06 1994  Jason Merrill  ([email protected])
        !          2544: 
        !          2545:        * lex.c (process_next_inline): Don't muck with DECL_INLINE.
        !          2546:        (do_pending_inlines): Ditto.
        !          2547: 
        !          2548: Tue Apr 19 22:25:41 1994  Mike Stump  ([email protected])
        !          2549: 
        !          2550:        Reimplement vtable building, and most vtable pointer setting.
        !          2551:        Allows for earier maintenance, easier understandability, and most
        !          2552:        importantly, correct semantics.
        !          2553: 
        !          2554:        * class.c (build_vtable): Removed unneeded
        !          2555:        SET_BINFO_VTABLE_PATH_MARKED.
        !          2556:        * class.c (prepare_fresh_vtable): Ditto.  Added argument.
        !          2557:        * class.c (modify_vtable_entry): General cleanup.
        !          2558:        * class.c (related_vslot, is_normal, modify_other_vtable_entries,
        !          2559:        modify_vtable_entries): Removed.
        !          2560:        * class.c (add_virtual_function): General cleanup.
        !          2561:        * class.c (finish_base_struct): Setup BINFO_VTABLE and
        !          2562:        BINFO_VIRTUALS as early as we can, so that modify_all_vtables can
        !          2563:        work.
        !          2564:        * class.c (finish_vtbls): New routine, mostly from
        !          2565:        unmark_finished_struct.
        !          2566:        * class.c (overrides): New routine.
        !          2567:        * class.c (modify_one_vtable): New routine, mostly from
        !          2568:        modify_other_vtable_entries and modify_vtable_entries.
        !          2569:        * class.c (modify_all_direct_vtables, modify_all_indirect_vtables,
        !          2570:        modify_all_vtables): New routines.
        !          2571:        * class.c (finish_struct): Added arguemnt to prepare_fresh_vtable
        !          2572:        call.  General cleanup on how pending_hard_virtuals are handled.
        !          2573:        General cleanup on modifying vtables.  Use finish_vtbls, instead of
        !          2574:        unmark_finished_struct.
        !          2575:        * cp-tree.h (init_vtbl_ptrs, expand_direct_vtbls_init,
        !          2576:        get_first_matching_virtual, get_matching_virtual,
        !          2577:        expand_vbase_vtables_init,  expand_indirect_vtbls_init): Update.
        !          2578:        * cvt.c (convert_pointer_to_real): cleanup error message.
        !          2579:        * decl.c (grokfndecl): General cleanup.
        !          2580:        * decl.c (finish_function): Change init_vtbl_ptrs call to
        !          2581:        expand_direct_vtbls_init.  Change expand_vbase_vtables_init call to
        !          2582:        expand_indirect_vtbls_init.
        !          2583:        * init.c (expand_virtual_init): Remove unneeded argument.
        !          2584:        * init.c (init_vtbl_ptrs): Rename to expand_direct_vtbls_init, added
        !          2585:        two arguments to make more general.  Made more general.  Now can be
        !          2586:        used for vtable pointer initialization from virtual bases.
        !          2587:        * init.c (emit_base_init): Change expand_vbase_vtables_init call to
        !          2588:        expand_indirect_vtbls_init.  Change init_vtbl_ptrs call to
        !          2589:        expand_direct_vtbls_init.
        !          2590:        * init.c (expand_virtual_init): General cleanup.
        !          2591:        * init.c (expand_default_init): Change expand_vbase_vtables_init
        !          2592:        call to expand_indirect_vtbls_init.
        !          2593:        * init.c (expand_recursive_init_1): Change expand_vbase_vtables_init
        !          2594:        call to expand_indirect_vtbls_init.
        !          2595:        * init.c (expand_recursive_init): Change expand_vbase_vtables_init
        !          2596:        call to expand_indirect_vtbls_init.
        !          2597:        * search.c (get_first_matching_virtual): Rename to
        !          2598:        get_matching_virtual.  General cleanup and remove setting of
        !          2599:        DECL_CONTEXT.  That is now done in a cleaner way in
        !          2600:        modify_vtable_entry and add_virtual_function.
        !          2601:        * search.c (expand_vbase_vtables_init): Rename to
        !          2602:        expand_indirect_vtbls_init.  General cleanup.  Use
        !          2603:        expand_direct_vtbls_init to do hard work.  Ensures that _all_ vtable
        !          2604:        pointers from virtual bases are set up.
        !          2605:        * search.c (bfs_unmark_finished_struct, unmark_finished_struct):
        !          2606:        Removed.
        !          2607: 
        !          2608:        * *.[chy]: Remove support for VTABLE_USES_MASK.
        !          2609: 
        !          2610: Tue Apr 19 12:51:59 1994  Jason Merrill  ([email protected])
        !          2611: 
        !          2612:        * cvt.c (convert_to_reference): Use NOP_EXPRs to switch between
        !          2613:        reference and pointer types instead of bashing the types directly.
        !          2614: 
        !          2615:        * call.c (build_overload_call_real): Use the TREE_CODE to determine
        !          2616:        whether the function is overloaded or not, rather than
        !          2617:        TREE_OVERLOADED.
        !          2618:        * *: Remove all uses of TREE_OVERLOADED.
        !          2619: 
        !          2620:        * decl.c (grokdeclarator): Only complain about initializing const
        !          2621:        fields when -ansi or -pedantic.
        !          2622: 
        !          2623: Tue Apr 19 12:42:42 1994  Doug Evans  ([email protected])
        !          2624: 
        !          2625:        * cp-tree.h (THUNK_DELTA): frame_size is now a union.
        !          2626: 
        !          2627: Mon Apr 18 00:17:13 1994  Jason Merrill  ([email protected])
        !          2628: 
        !          2629:        Do overloading on a block-by-block basis, not function-by-function.
        !          2630:        * decl.c: Lose overloads_to_forget.
        !          2631:        (struct binding_level): Add overloads_shadowed field.
        !          2632:        (poplevel): Restore overloads_shadowed.
        !          2633:        (push_overloaded_decl): Use overloads_shadowed instead of
        !          2634:        overloads_to_forget.
        !          2635:        (finish_function): Don't look at overloads_to_forget.
        !          2636: 
        !          2637:        Copy enum_overflow logic from c-decl.c.
        !          2638:        * decl.c (start_enum): Initialize enum_overflow.
        !          2639:        (build_enumerator): Use enum_overflow.  Also use current_scope().
        !          2640: 
        !          2641:        * search.c (current_scope): Move Brendan's comment from
        !          2642:        build_enumerator here.
        !          2643: 
        !          2644:        * typeck.c (convert_for_assignment): Change warnings to pedwarns for
        !          2645:        discarding const/volatile.
        !          2646: 
        !          2647: Sat Apr 16 01:18:21 1994  Jason Merrill  ([email protected])
        !          2648: 
        !          2649:        * typeck.c (comp_target_parms): Accept TEMPLATE_TYPE_PARMs on the rhs.
        !          2650:        (comp_target_types): Ditto.
        !          2651: 
        !          2652:        * decl.c (lookup_name): Don't unset got_scope here.
        !          2653: 
        !          2654:        * spew.c (yylex): Only replace yylval with the TYPE_NESTED_NAME if
        !          2655:        got_scope != NULL_TREE.
        !          2656: 
        !          2657: Fri Apr 15 16:36:33 1994  Jason Merrill  ([email protected])
        !          2658: 
        !          2659:        Horrible kludge to prevent templates from being instantiated by
        !          2660:        their base classes.
        !          2661:        * parse.y (template_instantiate_once): Unset TYPE_BEING_DEFINED
        !          2662:        before we get to left_curly.
        !          2663:        * pt.c (instantiate_class_template): Set TYPE_BEING_DEFINED.
        !          2664: 
        !          2665:        * error.c (dump_decl): If it's a typedef, print out the name of the
        !          2666:        decl, not just the underlying type.
        !          2667: 
        !          2668:        * decl.c (pushdecl): If the old duplicate decl was a TYPE_DECL,
        !          2669:        update the IDENTIFIER_TYPE_VALUE of its name.
        !          2670: 
        !          2671:        * decl2.c (finish_file): When processing the initializer for a
        !          2672:        static member, pretend that the dummy function is a member of the
        !          2673:        same class.
        !          2674: 
        !          2675: Fri Apr 15 15:56:35 1994  Kung Hsu  ([email protected])
        !          2676: 
        !          2677:        * class.c (build_vtable_entry): revert Apr 4 change.
        !          2678:        * decl2.c (mark_vtable_entries): replace pure virtual function
        !          2679:        decl with abort's.
        !          2680: 
        !          2681: Fri Apr 15 13:49:33 1994  Jason Merrill  ([email protected])
        !          2682: 
        !          2683:        * typeck.c (build_conditional_expr): Pedwarn on pointer/integer
        !          2684:        mismatch, and don't pedwarn on 0/function pointer mismatch.
        !          2685: 
        !          2686:        * typeck2.c (digest_init): Lose code for special handling of unions.
        !          2687:        (process_init_constructor): Since they're handled just fine here.
        !          2688:        Pedwarn on excess elements.
        !          2689: 
        !          2690:        * decl2.c (grokfield): Complain about local class method declaration
        !          2691:        without definition.
        !          2692: 
        !          2693: Fri Apr 15 13:19:40 1994  Per Bothner  ([email protected])
        !          2694: 
        !          2695:        * method.c (emit_thunk):  Add extern declaration for
        !          2696:        current_call_is_indirect (needed for hppa).
        !          2697: 
        !          2698: Thu Apr 14 16:12:31 1994  Jason Merrill  ([email protected])
        !          2699: 
        !          2700:        Improve local class support; allow classes in different blocks to
        !          2701:        have the same name.
        !          2702:        * decl.c (pushtag): Support local classes better.
        !          2703:        (pushdecl_nonclass_level): New function for pushing mangled decls of
        !          2704:        nested types into the appropriate scope.
        !          2705:        (xref_defn_tag): Use pushdecl_nonclass_level instead of
        !          2706:        pushdecl_top_level. 
        !          2707:        (grokfndecl): Don't mess with IDENTIFIER_GLOBAL_VALUE for local
        !          2708:        class methods.
        !          2709:        * method.c (do_inline_function_hair): Ditto.
        !          2710: 
        !          2711:        * class.c (finish_struct): It is legal for a class with no
        !          2712:        constructors to have nonstatic const and reference members.
        !          2713: 
        !          2714: Thu Apr 14 07:15:11 1994  Brendan Kehoe  ([email protected])
        !          2715: 
        !          2716:        * decl.c (push_overloaded_decl): Avoid giving errors about
        !          2717:        built-ins, since duplicate_decls will have given warnings/errors
        !          2718:        for them.
        !          2719: 
        !          2720: Thu Apr 14 03:45:12 1994  Jason Merrill  ([email protected])
        !          2721: 
        !          2722:        * cvt.c (convert_to_reference): Warn about casting pointer type to
        !          2723:        reference type when this is probably not what they wanted.
        !          2724: 
        !          2725: Wed Apr 13 13:12:35 1994  Per Bothner  ([email protected])
        !          2726: 
        !          2727:        * decl.c (finish_decl):  Don't mindlessly set TREE_USED for
        !          2728:        static consts any more (toplev.c has now been modified to
        !          2729:        not emit warnings if they are unused).
        !          2730: 
        !          2731: Wed Apr 13 00:22:35 1994  Jason Merrill  ([email protected])
        !          2732: 
        !          2733:        * decl.c (grok_op_properties): If op new/delete get here with
        !          2734:        METHOD_TYPEs, do a revert_static_member_fn.
        !          2735: 
        !          2736:        * cp-tree.h (IDENTIFIER_CLASS_TYPE_VALUE): Lose.
        !          2737:        * init.c (is_aggr_typedef): Don't look at
        !          2738:        IDENTIFIER_CLASS_TYPE_VALUE.
        !          2739:        (get_aggr_from_typedef): Ditto.
        !          2740:        (get_type_value): Ditto.
        !          2741:        * call.c (build_scoped_method_call): Don't rely on overloaded
        !          2742:        template names having IDENTIFIER_CLASS_VALUE set.
        !          2743: 
        !          2744:        * parse.y (component_decl_1, fn.def2): Revert rules for
        !          2745:        constructors.
        !          2746:        (component_decl_1, fn.def2): Use $1 instead of $$, since $$ is being
        !          2747:        clobbered.
        !          2748: 
        !          2749:        * decl.c (start_function): Only warn about `void main()' if pedantic
        !          2750:        || warn_return_type.
        !          2751: 
        !          2752: Tue Apr 12 02:14:17 1994  Jason Merrill  ([email protected])
        !          2753: 
        !          2754:        Clean up overloading of the template name.
        !          2755:        * class.c (pushclass): overload the template name whenever pushing
        !          2756:        into the scope of a template class, not just if it is
        !          2757:        uninstantiated.
        !          2758:        (popclass): Correspondingly.
        !          2759:        * search.c (push_class_decls): Don't overload_template_name.
        !          2760:        * pt.c (overload_template_name): Don't set IDENTIFIER_LOCAL_VALUE or
        !          2761:        DECL_CONTEXT on things.
        !          2762:        * parse.y (left_curly): Don't overload_template_name.
        !          2763:        * class.c (finish_struct): Don't undo_template_name_overload.
        !          2764: 
        !          2765:        * method.c (build_opfncall): Only pass one argument to global op
        !          2766:        delete.
        !          2767: 
        !          2768:        * call.c (build_method_call): Use TYPE_VEC_DELETE_TAKES_SIZE to
        !          2769:        decide how many arguments to use for vec delete.
        !          2770: 
        !          2771:        * decl.c (grok_op_properties): Be consistent in modifying
        !          2772:        current_class_type.
        !          2773:        (grokdeclarator): Only complain about function decls with no return
        !          2774:        type if we're being pedantic.
        !          2775: 
        !          2776: Mon Apr 11 00:10:53 1994  Jason Merrill  ([email protected])
        !          2777: 
        !          2778:        Add support for operator new [] and operator delete [].
        !          2779: 
        !          2780:        * tree.def: Add VEC_NEW_EXPR and VEC_DELETE_EXPR.
        !          2781:        * ptree.c (print_lang_type): Indicate vec new/delete.
        !          2782:        * parse.y: Support vec new/delete.
        !          2783:        * method.c (build_decl_overload): Deal with vec new/delete.
        !          2784:        (build_opfncall): Ditto.
        !          2785:        * lex.c (init_lex): Set up values of ansi_opname and opname_tab for
        !          2786:        vec new/delete.  vec new uses "__vn", and vec delete uses "__vd".
        !          2787:        * init.c (init_init_processing): Set up BIVN and BIVD.
        !          2788:        (do_friend): Don't clean up after mistaken setting of TREE_GETS_NEW,
        !          2789:        since it doesn't happen any more.
        !          2790:        (build_new): Support vec new.  Always call something.
        !          2791:        (build_x_delete): Support vec delete.
        !          2792:        (build_vec_delete): Lose dtor_dummy argument, add use_global_delete,
        !          2793:        and pass it to build_x_delete.
        !          2794:        * decl2.c (delete_sanity): Don't change behavior by whether or not
        !          2795:        the type has a destructor.  Pass use_global_delete to
        !          2796:        build_vec_delete.
        !          2797:        (coerce_delete_type): Make sure that the type returned has a first
        !          2798:        argument of ptr_type_node.
        !          2799:        * decl.c (init_decl_processing): Also declare the global vec
        !          2800:        new/delete.
        !          2801:        (grokdeclarator): Also force vec new/delete to be static.
        !          2802:        (grok_op_properties): Note presence of vec new/delete, and play with
        !          2803:        their args.  If vec delete takes the optional size_t argument, set
        !          2804:        TYPE_VEC_DELETE_TAKES_SIZE.
        !          2805:        * cp-tree.h (TYPE_GETS_{REG,VEC}_DELETE): New macros to simplify
        !          2806:        checking for one delete or the other.
        !          2807:        (lang_type): gets_new and gets_delete are now two bits long.  The
        !          2808:        low bit is for the non-array version.  Lose gets_placed_new.
        !          2809:        (TYPE_VEC_DELETE_TAKES_SIZE): New macro indicating that the vec
        !          2810:        delete defined by this class wants to know how much space it is
        !          2811:        deleting.
        !          2812:        (TYPE_VEC_NEW_USES_COOKIE): New macro to indicate when vec new must
        !          2813:        add a header containing the number of elements in the vector; i.e.
        !          2814:        when the elements need to be destroyed or vec delete wants to know
        !          2815:        the size.
        !          2816:        * class.c (finish_struct_methods): Also check for overloading vec
        !          2817:        delete.
        !          2818:        * call.c (build_method_call): Also delete second argument for vec
        !          2819:        delete.
        !          2820: 
        !          2821:        * decl.c (grokdeclarator): Correct complaints again.
        !          2822:        (grokdeclarator): Fix segfault on null declarator.
        !          2823:        (decls_match): Also accept redeclaration with no arguments if both
        !          2824:        declarations were in C context.  Bash TREE_TYPE (newdecl) here.
        !          2825:        (duplicate_decls): Instead of here.
        !          2826: 
        !          2827:        * parse.y (nested_name_specifier_1): Lose rules for dealing with
        !          2828:        syntax errors nicely, since they break parsing of 'const i;'.
        !          2829: 
        !          2830:        * decl.c (lookup_name): if (got_scope == current_class_type)
        !          2831:        val = IDENTIFIER_CLASS_VALUE (name).
        !          2832: 
        !          2833:        * search.c (lookup_nested_tag): Look in enclosing classes, too.
        !          2834: 
        !          2835:        * spew.c (yylex): Only look one character ahead when checking for a
        !          2836:        SCOPE.
        !          2837: 
        !          2838:        * lex.c (check_newline): Read first nonwhite char before
        !          2839:        incrementing lineno.
        !          2840: 
        !          2841:        * decl.c (grokdeclarator): Don't claim that typedefs are variables
        !          2842:        in warning.
        !          2843: 
        !          2844:        * parse.y: Divide up uses of unqualified_id into
        !          2845:        notype_unqualified_id and unqualified_id, so that TYPENAME can be
        !          2846:        used as an identifier after an object.
        !          2847: 
        !          2848:        * class.c (push_nested_class): Don't push into non-class scope.
        !          2849: 
        !          2850:        * decl.c (grokdeclarator): If an identifier could be a type
        !          2851:        conversion operator, but has no associated type, it's not a type
        !          2852:        conversion operator.
        !          2853: 
        !          2854:        * pt.c (unify): Check for equality of constants better.
        !          2855: 
        !          2856:        * decl.c (grokdeclarator): Don't complain about access decls.
        !          2857: 
        !          2858: Sun Apr 10 02:39:55 1994  Jason Merrill  ([email protected])
        !          2859: 
        !          2860:        * decl.c (grokdeclarator): pedwarn about data definitions without
        !          2861:        types here.
        !          2862: 
        !          2863:        * parse.y (datadef): Don't pedwarn about decls without types here,
        !          2864:        since that is valid for functions.
        !          2865:        (fn.def2, component_decl): Support constructors with declmods again.
        !          2866:        (nomods_initdecls): For decls without any mods, so that we don't try
        !          2867:        to get declspecs from some arbitrary $0.
        !          2868: 
        !          2869:        * search.c (lookup_field): Use cp_error.
        !          2870: 
        !          2871:        * parse.y (nested_name_specifier_1): Don't check aggr/non-aggr type
        !          2872:        here; it breaks destructors for non-aggr types.
        !          2873: 
        !          2874:        * decl.c (lookup_name): Only look for TYPE_DECLs in base classes of
        !          2875:        a type being defined, like the comment says.
        !          2876:        If got_scope is not an aggregate, just return NULL_TREE.
        !          2877: 
        !          2878:        * pt.c (create_nested_upt): Kung's code for creating types nested
        !          2879:        within uninstantiated templates now lives here (it used to live in
        !          2880:        hack_more_ids).  It needs to be expanded.
        !          2881: 
        !          2882:        * parse.y: Stop calling see_typename so much.
        !          2883: 
        !          2884:        * decl.c (lookup_name): Deal with TTPs and UPTs.
        !          2885: 
        !          2886:        * lex.c (real_yylex): Don't set looking_for_typename just because we
        !          2887:        saw a 'new'.
        !          2888:        (dont_see_typename): #if 0 out.
        !          2889: 
        !          2890:        * spew.c (yylex): Increment looking_for_typename if the next
        !          2891:        character is SCOPE, rather than setting it to 1; this way, the value
        !          2892:        from seeing an aggr specifier will not be lost.  This kinda relies
        !          2893:        on looking_for_typename never being < 0, which is now true.
        !          2894: 
        !          2895:        * parse.y (nested_name_specifier_1): Accept TEMPLATE_TYPE_PARMs,
        !          2896:        too.
        !          2897:        (named_class_head_sans_basetype): Accept template types, too.  Oops.
        !          2898: 
        !          2899: Fri Apr  8 16:39:35 1994  Jason Merrill  ([email protected])
        !          2900: 
        !          2901:        * decl2.c (reparse_decl_as_expr1): Handle SCOPE_REFs.
        !          2902: 
        !          2903:        * parse.y: Lose START_DECLARATOR.
        !          2904: 
        !          2905:        * search.c (lookup_nested_tag): New function to scan CLASSTYPE_TAGS
        !          2906:        for a class.
        !          2907: 
        !          2908:        * parse.y: Simplify fn.def2 and component_decl.  Support 'enum
        !          2909:        A::foo' syntax.  Catch invalid scopes better.
        !          2910: 
        !          2911:        * parse.y, lex.c: lose TYPENAME_COLON.
        !          2912: 
        !          2913:        * decl2.c (groktypefield): #if 0 out.
        !          2914: 
        !          2915:        * decl.c (lookup_name): If the type denoted by got_scope is
        !          2916:        currently being defined, look in CLASSTYPE_TAGS rather than FIELDS.
        !          2917: 
        !          2918:        * class.c (push_nested_class): Don't try to push into
        !          2919:        error_mark_node.
        !          2920: 
        !          2921: Fri Apr  8 07:26:36 1994  Brendan Kehoe  ([email protected])
        !          2922: 
        !          2923:        * Makefile.in (stamp-parse): Update count of conflicts to 33.
        !          2924: 
        !          2925: Thu Apr  7 17:47:53 1994  Jason Merrill  ([email protected])
        !          2926: 
        !          2927:        A saner implementation of nested types that treats template types
        !          2928:        no differently from non-template types.  There are still some
        !          2929:        shortcomings of our system; most notably, it is difficult to look
        !          2930:        for a nested type that is hidden by another name, because of the way
        !          2931:        we keep track of hidden types.  But this shouldn't be a problem for
        !          2932:        just about anyone.  Perhaps lookup_field should be fixed up a bit.
        !          2933: 
        !          2934:        * spew.c: Moved handling of nested types/scoping from the lexer
        !          2935:        into the parser.  Removed variable template_type_seen_before_scope.
        !          2936:        Removed functions frob_identifier, hack_more_ids, and various cruft
        !          2937:        that was #if 0'd out in the past, reducing the size of the file from
        !          2938:        1146 lines to 450 lines.  We can't quite do away with spew.c yet,
        !          2939:        though; we still need it for do_aggr () and checking for SCOPE after
        !          2940:        the current identifier.  And setting lastiddecl.
        !          2941: 
        !          2942:        * parse.y: Moved handling of nested types/scoping from the lexer
        !          2943:        into the parser, using a new global variable `got_scope'.  Reduced
        !          2944:        the number of states by 53.  Implemented all uses of explicit global
        !          2945:        scope.  Removed terminals SCOPED_TYPENAME and SCOPED_NAME.  Removed
        !          2946:        nonterminals tmpl.1, scoped_base_class, id_scope, typename_scope,
        !          2947:        scoped_typename.  Added nonterminals nested_type,
        !          2948:        qualified_type_name, complete_type_name, qualified_id, ptr_to_mem,
        !          2949:        nested_name_specifier, global_scope, overqualified_id, type_name.
        !          2950:        Changed many others.  Added 9 new reduce/reduce conflicts, which are
        !          2951:        nested type parallels of 9 that were already in the grammar for
        !          2952:        non-nested types.  Eight of the now 33 conflicts should be removed
        !          2953:        in the process of resolving the late binding between variable and
        !          2954:        function decls.
        !          2955: 
        !          2956:        * gxxint.texi (Parser): Update.
        !          2957: 
        !          2958:        * cp-tree.h (IS_AGGR_TYPE_CODE): Add UNINSTANTIATED_P_TYPE.
        !          2959: 
        !          2960:        * lex.h: Add decl for got_scope.
        !          2961: 
        !          2962:        * lex.c (see_typename): Claim to be the lexer when calling
        !          2963:        lookup_name.
        !          2964: 
        !          2965:        * decl.c (lookup_name): When called from the lexer, look at
        !          2966:        got_scope and looking_at_typename; otherwise don't.
        !          2967: 
        !          2968: Thu Apr  7 22:05:47 1994  Mike Stump  ([email protected])
        !          2969: 
        !          2970:        31th Cygnus<->FSF merge.
        !          2971: 
        !          2972: Thu Apr  7 17:47:53 1994  Jason Merrill  ([email protected])
        !          2973: 
        !          2974:        * decl2.c (mark_vtable_entries): Call this to mark all the
        !          2975:        entries in the vtable addressable.
        !          2976:        (finish_decl_parsing): Handle SCOPE_REFs.
        !          2977: 
        !          2978:        * decl.c (decls_match): Always call compparms with strict == 1.
        !          2979:        Handle the special case of C function redecl here.
        !          2980:        (duplicate_decls): Only keep the old type if the new decl takes no
        !          2981:        arguments.
        !          2982: 
        !          2983:        * typeck.c (compparms): Also allow t1 to be ... if strict == 0.
        !          2984: 
        !          2985: Thu Apr  7 16:17:50 1994  Mike Stump  ([email protected])
        !          2986: 
        !          2987:        * class.c (build_vtable_entry): Fix breakage introduced Apr 5
        !          2988:        17:48:41.
        !          2989: 
        !          2990: Wed Apr  6 16:05:10 1994  Per Bothner  ([email protected])
        !          2991: 
        !          2992:        * init.c (build_virtual_init), search.c (build_vbase_vtables_init),
        !          2993:        ch-tree.h:  Every place these functions were called, the result was
        !          2994:        immediately passed to expand_expr_stmt.  Reduce redundancy by
        !          2995:        calling expand_expr_init *inside* these functions.  These
        !          2996:        makes for a simpler interface, and we don't have to build
        !          2997:        compound expressions.  Hence, rename these function to:
        !          2998:        expand_virtual_init and expand_vbase_vtables_init respectively.
        !          2999:        * init.c, decl.c:  Change callers of these functions.
        !          3000:        * init.c, cp-tree.h (expand_virtual_init):  Make static.
        !          3001: 
        !          3002:        * decl2.c (finish_file): Check TREE_PUBLIC||TREE_ADDRESSABLE
        !          3003:        rather than DECL_SAVED_INSNS before emitting inlines.
        !          3004: 
        !          3005: Wed Apr  6 13:06:39 1994  Jason Merrill  ([email protected])
        !          3006: 
        !          3007:        * spew.c (init_spew): #if 0 out stuff used by arbitrate_lookup.
        !          3008: 
        !          3009:        * decl.c (duplicate_decls): If this is a new declaration of an
        !          3010:        extern "C" function, keep the type (for the argtypes).
        !          3011:        (redeclaration_error_message): Don't check DECL_LANGUAGE here.
        !          3012:        (decls_match): Call compparms with a value of strict dependent on
        !          3013:        the value of strict_prototypes for DECL_LANGUAGE (oldecl).
        !          3014: 
        !          3015:        * typeck.c (compparms): ... is only equivalent to non-promoting
        !          3016:        parms if we're not being strict.
        !          3017: 
        !          3018:        * parse.y (empty_parms): Don't check flag_ansi || pedantic here.
        !          3019: 
        !          3020:        * decl.c (init_decl_processing): if (flag_ansi || pedantic)
        !          3021:        strict_prototypes_lang_c = strict_prototypes_lang_cplusplus;
        !          3022: 
        !          3023:        * decl2.c (grok_function_init): Don't set DECL_INITIAL on pure
        !          3024:        virtuals.
        !          3025: 
        !          3026: Tue Apr  5 17:48:41 1994  Per Bothner  ([email protected])
        !          3027: 
        !          3028:        Support for implementing vtables with thunks.
        !          3029:        * tree.def (THUNK_DECL):  New TREE_CODE.
        !          3030:        * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY), tree.c
        !          3031:        (fnaddr_from_vtable_entry):  Handle flag_vtable_thunks case.
        !          3032:        * cp-tree.h (memptr_type):  New variable.
        !          3033:        * class.c (build_vtable_entry):  Build thunk if necessary.
        !          3034:        * class.c (build_vfn_ref):  If using thunks, don't need
        !          3035:        to add delta field from vtable (there is none!).
        !          3036:        * decl.c: Add memptr_type as well as vtable_entry_type.
        !          3037:        If using thunks, the latter is just ptr_type_node.
        !          3038:        * gc.c, typeck.c:  Use memptr_typeChange, not vtable_entry_type.
        !          3039:        * decl2.c (finish_vtable_vardecl):  Handle thunks.
        !          3040:        * expr.c (cplus_expand_expr):  Support THUNK_DECL.
        !          3041: 
        !          3042:        * decl.c (grokdeclarator):  Set DECL_THIS_EXTERN if "extern".
        !          3043:        * decl.c (start_function):  Set current_extern_inline based on
        !          3044:        DECL_THIS_EXTERN, not TREE_PUBLIC.
        !          3045:        * decl.c (finish_function):  Call mark_inline_for_output if needed,
        !          3046: 
        !          3047:        Improve intelligence about when to emit inlines.
        !          3048:        * cp-tree.h (lang_decl_flags):  New field saved_inline.
        !          3049:        * cp-tree.h (DECL_SAVED_INLINE):  New macro.
        !          3050:        * class.c (add_virtual_function):  Don't set TREE_ADDRESSABLE.
        !          3051:        * decl.h, decl.c (pending_addressable_inlines):  Removed.
        !          3052:        * decl2.c (pending_addressable_inlines):  Renamed to saved_inlines.
        !          3053:        * decl2.c (mark_inline_for_output):  Do nothing if
        !          3054:        DECL_SAVED_INLINE;  otherwise set it (and add to saved_inlines list).
        !          3055:        * decl2.c (finish_vtable_vardecl):  SET_CLASSTYPE_INTERFACE_KNOWN
        !          3056:        and set CLASSTYPE_INTERFACE_ONLY if there is a non-inline virtual.
        !          3057:        * decl2.c (finish_file):  Writing out inlines later, so we can
        !          3058:        also handle the ones needed for vtbales.
        !          3059:        * decl2.c (write_vtable_entries, finish_vtable_typedecl):  Removed.
        !          3060: 
        !          3061:        * cp-tree.h, class.c, decl2.c, search.c:  Remove -fvtable-hack
        !          3062:        and flag_vtable_hack.   Use -fvtable-thunks and flag_vtable_thunks
        !          3063:        instead.  (The rationale is that these optimizations both break binary
        !          3064:        compatibility, but should become the default in a future release.)
        !          3065: 
        !          3066: Wed Apr  6 10:53:56 1994  Mike Stump  ([email protected])
        !          3067: 
        !          3068:        * class.c (modify_vtable_entries): Never reset the DECL_CONTEXT
        !          3069:        of a fndecl, as we might not be from that vfield.
        !          3070: 
        !          3071: Tue Apr  5 17:43:35 1994  Kung Hsu  ([email protected])
        !          3072: 
        !          3073:        * class.c (add_virtual_function): fix bug for pure virtual, so
        !          3074:        that DECL_VINDEX of the dummy decl copied won't be error.
        !          3075:        (see also Apr 4 change)
        !          3076: 
        !          3077: Tue Apr  5 17:23:45 1994  Per Bothner  ([email protected])
        !          3078: 
        !          3079:        * typeck.c (c_expand_return):  Before checking that we're not
        !          3080:        returning the address of a local, make sure it's a VAR_DECL.
        !          3081:        (And don't worry about it being a TREE_LIST.)
        !          3082: 
        !          3083: Tue Apr  5 13:26:42 1994  Jason Merrill  ([email protected])
        !          3084: 
        !          3085:        * parse.y (YYDEBUG): Always define.
        !          3086:        * lex.c (YYDEBUG): Ditto.
        !          3087: 
        !          3088: Mon Apr  4 11:28:17 1994  Kung Hsu  ([email protected])
        !          3089: 
        !          3090:        * class.c (finish_struct): backup out the change below, put the
        !          3091:        new change for the same purpose. The change below breaks code.
        !          3092: 
        !          3093:        * class.c (finish_struct): if pure virtual, copy node and make
        !          3094:        RTL point to abort, then put in virtual table.
        !          3095:        * decl2.c (grok_function_iit): reinstate Mar 31 change.
        !          3096: 
        !          3097: Sat Apr  2 03:12:58 1994  Jason Merrill  ([email protected])
        !          3098: 
        !          3099:        * init.c (build_new): pedwarn about newing const and volatile
        !          3100:        types.
        !          3101: 
        !          3102:        * tree.c (get_identifier_list): Only do the special handling
        !          3103:        thing if we're dealing with the main variant of the record type.
        !          3104: 
        !          3105:        * cvt.c (convert_to_reference): When converting between
        !          3106:        compatible reference types, use the pointer conversion machinery.
        !          3107:        Don't just blindly overwrite the old type.
        !          3108: 
        !          3109: Fri Apr  1 17:14:42 1994  Jason Merrill  ([email protected])
        !          3110: 
        !          3111:        * call.c (build_method_call): When looking at global functions,
        !          3112:        be sure to use instance_ptr for the first argument, not some version
        !          3113:        of it that has been cast to a base class.  Also do this before
        !          3114:        comparing candidates.
        !          3115: 
        !          3116: Thu Mar 31 19:50:35 1994  Jason Merrill  ([email protected])
        !          3117: 
        !          3118:        * call.c (build_method_call): Constructors can be called for
        !          3119:        const objects.
        !          3120: 
        !          3121: Thu Mar 31 16:20:16 1994  Kung Hsu  ([email protected])
        !          3122: 
        !          3123:        * decl2.c (grok_func_init): do not abort as rtl for pur virtual
        !          3124:        fucntions. They can be defined somewhere else.
        !          3125: 
        !          3126: Sat Jan 23 23:23:26 1994  Stephen R. van den Berg  ([email protected])
        !          3127: 
        !          3128:        * decl.c (init_decl_processing): Declare __builtin_return_address
        !          3129:        and __builtin_frame_address for C++ as well.
        !          3130: 
        !          3131: Thu Mar 31 12:35:49 1994  Mike Stump  ([email protected])
        !          3132: 
        !          3133:        * typeck2.c (store_init_value): Integral constant variables are
        !          3134:        always constant, even when doing -fpic.
        !          3135: 
        !          3136: Sat Jan 23 23:23:26 1994  Stephen R. van den Berg  ([email protected])
        !          3137: 
        !          3138:        * decl.c (redeclaration_error_message): Pass the types to
        !          3139:        comptypes.
        !          3140: 
        !          3141: Wed Mar 30 21:29:25 1994  Mike Stump  ([email protected])
        !          3142: 
        !          3143:        Cures incorrect errors about pure virtuals in a class, when they
        !          3144:        have been overridden in a derived class.
        !          3145: 
        !          3146:        * search.c (get_abstract_virtuals): Reimplement.
        !          3147:        * search.c (get_abstract_virtuals_1): New routine.
        !          3148: 
        !          3149: Wed Mar 30 14:10:04 1994  Jason Merrill  ([email protected])
        !          3150: 
        !          3151:        * pt.c (push_template_decls): Make the pushed level pseudo
        !          3152:        global.
        !          3153: 
        !          3154:        * parse.y (extdefs): Don't pop everything if the current binding
        !          3155:        level is pseudo_global.
        !          3156: 
        !          3157:        * decl.c (pop_everything): Stop on reaching a pseudo-global
        !          3158:        binding level.
        !          3159: 
        !          3160:        * cp-tree.h (DECL_FUNCTION_MEMBER_P): Change to more reliable test.
        !          3161: 
        !          3162:        * decl.c (duplicate_decls): Only copy DECL_SOURCE_{FILE_LINE} if
        !          3163:        the old decl actually had an initializer.
        !          3164: 
        !          3165:        * {various}: Clean up gcc -W complaints.
        !          3166: 
        !          3167:        * cp-tree.h (DECL_FUNCTION_MEMBER_P): Currently defined to be
        !          3168:        (DECL_CONTEXT (NODE) != NULL_TREE).
        !          3169: 
        !          3170:        * parse.y (lang_extdef): Call pop_everything if necessary.
        !          3171: 
        !          3172:        * decl.c (pop_everything): New function for popping binding
        !          3173:        levels left over after a syntax error.
        !          3174:        (pushdecl): Use DECL_FUNCTION_MEMBER_P to decide whether or not
        !          3175:        a function is a member.
        !          3176: 
        !          3177: Wed Mar 30 14:20:50 1994  Mike Stump  ([email protected])
        !          3178: 
        !          3179:        Cures calling a more base base class function, when a more derived
        !          3180:        base class member should be called in some MI situations.
        !          3181: 
        !          3182:        * search.c (make_binfo): Use more the more specialized base
        !          3183:        binfos from the binfo given as the second argument to make_binfo,
        !          3184:        instead of the unspecialized ones from the TYPE_BINFO.
        !          3185:        * class.c (finish_base_struct): Ditto, update callers.
        !          3186:        * search.c (dfs_get_vbase_types): Ditto.
        !          3187:        * tree.c (propagate_binfo_offsets, layout_vbasetypes): Ditto.
        !          3188:        * decl.c (xref_tag): Use NULL_TREE instead of 0.
        !          3189:        * lex.c (make_lang_type): Ditto.
        !          3190: 
        !          3191: Wed Mar 30 14:10:04 1994  Jason Merrill  ([email protected])
        !          3192: 
        !          3193:        * decl.c (pushdecl): If pushing a C-linkage function, only do a
        !          3194:        push_overloaded_decl.
        !          3195:        (duplicate_decls): Standard overloading does not shadow built-ins.
        !          3196: 
        !          3197: Tue Mar 29 00:54:18 1994  Jason Merrill  ([email protected])
        !          3198: 
        !          3199:        * pt.c (end_template_decl): Don't call push_overloaded_decl.
        !          3200: 
        !          3201:        * init.c (do_friend): Don't call push_overloaded_decl.
        !          3202: 
        !          3203:        * decl.c (pushdecl): Call push_overloaded_decl for functions and
        !          3204:        function templates.
        !          3205:        (duplicate_decls): functions and function templates are not
        !          3206:        duplicates, but don't complain about calling this function to
        !          3207:        compare them.
        !          3208:        (push_overloaded_decl): Don't deal with linkage.  Call
        !          3209:        duplicate_decls.
        !          3210:        (redeclaration_error_message): Deal with linkage.
        !          3211: 
        !          3212:        * decl.c (start_function): If push_overloaded_decl returns an
        !          3213:        older version of the function, deal with it.
        !          3214: 
        !          3215:        * decl.c (start_function): Be sure only to push_overloaded_decl
        !          3216:        for non-members.
        !          3217: 
        !          3218:        * decl.c (grokfndecl): Put back clearing of DECL_CHAIN for
        !          3219:        methods.
        !          3220:        (start_function): Lose broken and redundant code for checking old
        !          3221:        decl.
        !          3222: 
        !          3223:        * init.c (add_friend): Give line numbers of both friend decls
        !          3224:        when warning about re-friending.
        !          3225: 
        !          3226:        * pt.c (tsubst): Use comptypes rather than == to compare the
        !          3227:        types of the method as declared and as defined, since default
        !          3228:        parameters may be different.
        !          3229: 
        !          3230:        * call.c (build_method_call): Use brendan's candidate printing
        !          3231:        routine.
        !          3232: 
        !          3233:        * decl.c (start_method): Methods defined in the class body are
        !          3234:        inline whether or not it's a template class.
        !          3235: 
        !          3236: Mon Mar 28 16:39:26 1994  Jason Merrill  ([email protected])
        !          3237: 
        !          3238:        * parse.y (initdcl0): Add "extern" to current_declspecs if
        !          3239:        have_extern_spec && ! used_extern_spcec.
        !          3240: 
        !          3241:        * tree.c (really_overloaded_fn): A fn with more than one
        !          3242:        overload.
        !          3243: 
        !          3244:        * pt.c (end_template_decl): Use really_overloaded_fn.
        !          3245: 
        !          3246:        * decl.c (duplicate_decls): When smashing a decl into a previous
        !          3247:        definition, keep the old file and line.
        !          3248:        Don't deal with overloaded functions.
        !          3249:        Lose old code for checking arg types of functions.
        !          3250:        Check for overloaded C functions.
        !          3251:        (pushdecl): Deal with overloaded functions.
        !          3252:        (start_decl): Expect pushdecl to return an appropriate function decl.
        !          3253:        (start_function): Ditto.
        !          3254:        (push_overloaded_decl): Don't check for overloaded C functions.
        !          3255: 
        !          3256:        * *.c: Stop using DECL_OVERLOADED, it being archaic.
        !          3257:        TREE_OVERLOADED should probably go, too.
        !          3258: 
        !          3259: Mon Mar 28 14:00:45 1994  Ron Guilmette  ([email protected])
        !          3260: 
        !          3261:        * typeck.c (comp_target_types): Call comp_target_parms with
        !          3262:        strict == 1.
        !          3263: 
        !          3264: Sun Mar 27 00:07:45 1994  Jason Merrill  ([email protected])
        !          3265: 
        !          3266:        * parse.y (empty_parms): Don't parse () as (...) in extern "C"
        !          3267:        sections if we're compiling with -ansi or -pedantic.
        !          3268: 
        !          3269:        * decl.c (decls_match): Don't treat (int) and (int&) as matching.
        !          3270: 
        !          3271:        * decl2.c (grokfield): Don't pedwarn twice about initializing
        !          3272:        field.
        !          3273: 
        !          3274:        * decl.c (push_overloaded_decl): Warn about shadowing
        !          3275:        constructor.
        !          3276:        (redeclaration_error_message): Don't allow 'int a; int a;'
        !          3277: 
        !          3278:        * cvt.c (build_up_reference): Only check for valid upcast if
        !          3279:        LOOKUP_PROTECT is set, not just any flag.
        !          3280: 
        !          3281: Fri Mar 25 01:22:31 1994  Jason Merrill  ([email protected])
        !          3282: 
        !          3283:        * lex.c (check_newline): When we see a #pragma implementation,
        !          3284:        also set it for the main input file.
        !          3285: 
        !          3286:        * init.c (build_new): Convert array size argument to size_t.
        !          3287: 
        !          3288:        * parse.y (primary): If we're doing a parenthesized type-id, call
        !          3289:        groktypename before passing it to build_new.
        !          3290: 
        !          3291:        * call.c (build_method_call): Deal properly with const and
        !          3292:        volatile for instances of reference type.
        !          3293: 
        !          3294:        * decl.c (store_return_init): Change 'if (pedantic) error' to 'if
        !          3295:        (pedantic) pedwarn'.
        !          3296: 
        !          3297:        * decl.c (grokdeclarator): Don't complain about putting `static'
        !          3298:        and `inline' on template function decls.
        !          3299: 
        !          3300: Thu Mar 24 23:18:19 1994  Jason Merrill  ([email protected])
        !          3301: 
        !          3302:        * call.c (build_method_call): Preserve const & volatile on
        !          3303:        `this'.
        !          3304: 
        !          3305: Thu Mar 24 16:21:52 1994  Mike Stump  ([email protected])
        !          3306: 
        !          3307:        * init.c (build_new, build_vec_delete): Use global new and delete
        !          3308:        for arrays. 
        !          3309:        * decl2.c (delete_sanity): Ditto.
        !          3310: 
        !          3311: Thu Mar 24 02:10:46 1994  Jason Merrill  ([email protected])
        !          3312: 
        !          3313:        * cvt.c (convert_to_reference): If i is an lvalue,
        !          3314:        (int &)i -> *(int*)&i, as per 5.2.8p9 of the latest WP.
        !          3315:        (convert_force): Call convert_to_reference with LOOKUP_COMPLAIN.
        !          3316: 
        !          3317: Wed Mar 23 17:45:37 1994  Jason Merrill  ([email protected])
        !          3318: 
        !          3319:        * decl.c (duplicate_decls): Also propagate DECL_TEMPLATE_MEMBERS
        !          3320:        and DECL_TEMPLATE_INSTANTIATIONS.
        !          3321: 
        !          3322:        * init.c (build_new): Handle array typedefs properly.
        !          3323: 
        !          3324: Wed Mar 23 18:23:33 1994  Mike Stump  ([email protected])
        !          3325: 
        !          3326:        30th Cygnus<->FSF merge.
        !          3327: 
        !          3328: Wed Mar 23 00:46:24 1994  Mike Stump  ([email protected])
        !          3329: 
        !          3330:        * class.c (modify_vtable_entries): Avoid running off the end of the
        !          3331:        virtuals list when processing a virtual destructor.
        !          3332:        * class.c (get_vtable_entry): Ditto.
        !          3333: 
        !          3334: Wed Mar 23 00:23:59 1994  Jason Merrill  ([email protected])
        !          3335: 
        !          3336:        * decl.c (duplicate_decls): If two template decls don't match,
        !          3337:        just return 0.
        !          3338: 
        !          3339: Tue Mar 22 23:49:41 1994  Jason Merrill  ([email protected])
        !          3340: 
        !          3341:        * typeck.c (convert_for_assignment): Don't pedwarn about
        !          3342:        converting function pointer to void *.
        !          3343: 
        !          3344: Tue Mar 22 22:23:19 1994  Mike Stump  ([email protected])
        !          3345: 
        !          3346:        Major revamp of pointer to member functions.  Cures major
        !          3347:        nonfunctionality when used in casts, and MI situations.
        !          3348: 
        !          3349:        * cvt.c (convert_force): Update call site of build_ptrmemfunc.
        !          3350:        * typeck.c (convert_for_assignment): Ditto.
        !          3351:        * typeck2.c (digest_init): Ditto.
        !          3352:        * typeck2.c (process_init_constructor): Simplify by moving code into
        !          3353:        digest_init.
        !          3354:        * typeck2.c (digest_init): Do default_conversions on init value, if
        !          3355:        we are processing pointer to member functions.
        !          3356:        * class.c (get_vfield_offset): Now non-static.  Convert bit offset
        !          3357:        into byte offset.
        !          3358:        * cp-tree.h (get_vfield_offset): Ditto.
        !          3359:        * typeck.c (get_member_function_from_ptrfunc): Convert down to right
        !          3360:        instance, before fetching vtable pointer.
        !          3361:        * typeck.c (get_delta_difference): New routine.
        !          3362:        * typeck.c (build_ptrmemfunc): Revamp to handle casting better, also
        !          3363:        get vtable pointer out of right subobject.
        !          3364: 
        !          3365: Tue Mar 22 17:56:48 1994  Mike Stump  ([email protected])
        !          3366: 
        !          3367:        * search.c (get_binfo): Return NULL instead of aborting, when
        !          3368:        passed a UNION_TYPE.
        !          3369: 
        !          3370: Tue Mar 22 12:44:54 1994  Jason Merrill  ([email protected])
        !          3371: 
        !          3372:        These patches implement handling of redefinition/redeclaration of
        !          3373:        templates.
        !          3374: 
        !          3375:        * typeck.c (comptypes): Simplify.  All TEMPLATE_TYPE_PARMs are
        !          3376:        considered compatible.
        !          3377: 
        !          3378:        * parse.y (template_def): Pass defn argument to end_template_decl.
        !          3379: 
        !          3380:        * pt.c (end_template_decl): Add defn argument.  Check for
        !          3381:        redefinition.  Simplify.
        !          3382: 
        !          3383:        * error.c (OB_UNPUT): New macro, to remove mistakes.
        !          3384:        (aggr_variety): Subroutine of dump_aggr_type.
        !          3385: 
        !          3386:        * decl.c (decls_match): Support templates.
        !          3387:        (duplicate_decls): No longer static.  Don't try to lay out template
        !          3388:        decls.
        !          3389:        (pushdecl): Simplify.
        !          3390: 
        !          3391:        * cp-tree.h (DECL_TEMPLATE_MEMBERS): Use DECL_SIZE instead of
        !          3392:        DECL_INITIAL.
        !          3393: 
        !          3394: Mon Mar 21 11:46:55 1994  Jason Merrill  ([email protected])
        !          3395: 
        !          3396:        * error.c (dump_decl): Support class template decls.
        !          3397:        (dump_type): Don't adorn template type parms.
        !          3398: 
        !          3399:        * decl.c (duplicate_decls): Save DECL_TEMPLATE_INFO from old decl
        !          3400:        if it was a definition.
        !          3401:        (redeclaration_error_message): Do the cp_error thang, and reject
        !          3402:        redefinition of templates.
        !          3403: 
        !          3404: Mon Mar 21 19:36:06 1994  Per Bothner  ([email protected])
        !          3405: 
        !          3406:        * decl.c (grokdeclarator):  Set TREE_PUBLIC for METHOD_TYPE
        !          3407:        in FIELD context, when appropriate.  Also,
        !          3408:        CLASSTYPE_INTERFACE_ONLY is irrelevant to setting TREE_PUBLIC.
        !          3409:        Also, simplify check for bogus return specifiers.
        !          3410: 
        !          3411: Mon Mar 21 11:46:55 1994  Jason Merrill  ([email protected])
        !          3412: 
        !          3413:        * parse.y (after_type_declarator1): Expand type_quals.
        !          3414:        (notype_declarator1): Ditto.
        !          3415:        (absdcl1): Ditto.
        !          3416: 
        !          3417: Sat Mar 19 01:05:17 1994  Jason Merrill  ([email protected])
        !          3418: 
        !          3419:        * decl.c (grokdeclarator): Treat class-local typedefs like static
        !          3420:        members; i.e. 'typedef int f();' means that f is a function type,
        !          3421:        not a method type.
        !          3422: 
        !          3423:        * parse.y (decl): Change direct_* back to *.
        !          3424:        (type_id): Change direct_abstract_declarator to absdcl.
        !          3425:        (direct_declarator, direct_initdecls, direct_initdcl0): Remove again.
        !          3426: 
        !          3427: Fri Mar 18 12:47:59 1994  Jason Merrill  ([email protected])
        !          3428: 
        !          3429:        These two patches fix crashes on instantiating a template inside a
        !          3430:        function with C linkage or containing labels.
        !          3431: 
        !          3432:        * class.c (current_lang_stacksize): No longer static.
        !          3433: 
        !          3434:        * decl.c (struct saved_scope): Add lang_base, lang_stack,
        !          3435:        lang_name, lang_stacksize, and named_labels.
        !          3436:        (push_to_top_level): Save them.
        !          3437:        (pop_from_top_level): Restore them.
        !          3438: 
        !          3439:        * gxxint.texi (Parser): Update.
        !          3440: 
        !          3441:        These two patches finish moving the task of expr/declarator
        !          3442:        ambiguity resolution from the lexer to the parser, and add one more
        !          3443:        r/r conflict.  START_DECLARATOR can now be nuked.
        !          3444: 
        !          3445:        * parse.y (decl): Add "direct_" in typespec X rules.
        !          3446:        (direct_declarator): New nonterminal for
        !          3447:        direct_after_type_declarator and direct_notype_declarator.
        !          3448:        (direct_initdecls): Like initdecls, but uses direct_initdcl0.
        !          3449:        (direct_initdcl0): Like initdcl0, but uses direct_declarator.
        !          3450:        (named_parm): Add typespec direct_declarator rule.
        !          3451: 
        !          3452:        * spew.c (yylex): #if 0 out START_DECLARATOR insertion.
        !          3453: 
        !          3454:        These two patches disable some excessive cleverness on the part of
        !          3455:        g++; a non-class declaration always hides a class declaration in the
        !          3456:        same scope, and g++ was trying to unhide it depending on the
        !          3457:        enclosing expression.
        !          3458: 
        !          3459:        * spew.c (arbitrate_lookup): #if 0 out.
        !          3460: 
        !          3461:        * decl.c (lookup_name): Never call arbitrate_lookup.
        !          3462: 
        !          3463:        * parse.y (complex_notype_declarator1): Add '*'
        !          3464:        complex_notype_declarator1 and '&' complex_notype_declarator1 rules.
        !          3465: 
        !          3466:        * parse.y (complex_direct_notype_declarator): Restore id_scope
        !          3467:        see_typename TYPENAME rule, remove all other rules beginning with
        !          3468:        those tokens.
        !          3469:        (notype_unqualified_id): Add '~' see_typename IDENTIFIER rule.
        !          3470: 
        !          3471: Thu Mar 17 17:30:01 1994  Jason Merrill  ([email protected])
        !          3472: 
        !          3473:        These changes fix the compiler's handling of the functional cast/
        !          3474:        object declaration ambiguities in section 6.8 of the ARM.  They also
        !          3475:        add 11 reduce/reduce conflicts.  Sigh.
        !          3476: 
        !          3477:        * parse.y: Add precedence decls for OPERATOR and '~'.
        !          3478:        (notype_unqualified_id): New nonterminal, encompasses all of the
        !          3479:        ANSI unqualified-id nonterminal except TYPENAMEs.
        !          3480:        (expr_or_declarator): New nonterminal to delay parsing of code like
        !          3481:        `int (*a)'.
        !          3482:        (primary): Use notype_unqualified_id.
        !          3483:        (decl): Add typespec initdecls ';' and typespec declarator ';'
        !          3484:        rules.
        !          3485:        (initdcl0): Deal with the above.
        !          3486:        (complex_notype_declarator1): A notype_declarator that is not also
        !          3487:        an expr_or_declarator.
        !          3488:        (complex_direct_notype_declarator): A direct_notype_declarator that
        !          3489:        doesn't conflict with expr_or_declarator.  Use
        !          3490:        notype_unqualified_id.  Remove id_scope see_typename TYPENAME rule.
        !          3491:        (functional_cast): New nonterminal, for the three functional cast
        !          3492:        rules.  So that they can be moved after
        !          3493:        complex_direct_notype_declarator.
        !          3494:        (see_typename): Don't accept type_quals any more.
        !          3495: 
        !          3496:        * decl2.c (reparse_decl_as_expr): New function to deal with parse
        !          3497:        nodes for code like `int (*a)++;'.      
        !          3498:        (reparse_decl_as_expr1): Recursive subroutine of the above.
        !          3499:        (finish_decl_parsing): New function to deal with parse nodes for
        !          3500:        code like `int (*a);'.  See the difference?
        !          3501: 
        !          3502: Thu Mar 17 12:16:10 1994  Mike Stump  ([email protected])
        !          3503: 
        !          3504:        These changes break binary compatibility in code with classes
        !          3505:        that use virtual bases.
        !          3506: 
        !          3507:        * search.c (dfs_get_vbase_types): Simplify and correct to make
        !          3508:        sure virtual bases are initialized in dfs ordering.
        !          3509:        * search.c (get_vbase_types): Simplify and make readable.
        !          3510: 
        !          3511: Thu Mar 17 12:01:10 1994  Jason Merrill  ([email protected])
        !          3512: 
        !          3513:        * parse.y: s/ typename / type_id /g
        !          3514: 
        !          3515: Wed Mar 16 17:42:52 1994  Kung Hsu  ([email protected])
        !          3516: 
        !          3517:        * parse.y (typespec): add SCOPE TYPENAME for global scoped 
        !          3518:        type. e.g. ::B x.
        !          3519: 
        !          3520:        * decl.c (complete_array_type): fix a bug that in -pendantic
        !          3521:        mode even there's no initializer, it will continue to build
        !          3522:        default index.
        !          3523: 
        !          3524: Wed Mar 16 17:43:07 1994  Jason Merrill  ([email protected])
        !          3525: 
        !          3526:        * parse.y (direct_notype_declarator): Add PTYPENAME rule, remove
        !          3527:        all of the scoped PTYPENAME rules.
        !          3528: 
        !          3529: Wed Mar 16 16:39:02 1994  Mike Stump  ([email protected])
        !          3530: 
        !          3531:        * init.c (build_offset_ref): The value of A::typedef_name is
        !          3532:        always the TYPE_DECL, and never an error.
        !          3533: 
        !          3534: Tue Mar 15 20:02:35 1994  Jason Merrill  ([email protected])
        !          3535: 
        !          3536:        * search.c (get_base_distance_recursive): Two binfos can only
        !          3537:        represent the same object if they are both via_virtual.
        !          3538: 
        !          3539:        * class.c (finish_base_struct): Check vbases for ambiguity, too.
        !          3540: 
        !          3541:        * search.c (get_vbase_types): Accept binfo argument, too.
        !          3542: 
        !          3543: Tue Mar 15 19:22:05 1994  Kung Hsu  ([email protected])
        !          3544: 
        !          3545:        * decl.c (complete_array_type): complete TYPE_DOMAIN of the 
        !          3546:        initializer also, because back-end requires it.
        !          3547: 
        !          3548: Tue Mar 15 15:33:31 1994  Jason Merrill  ([email protected])
        !          3549: 
        !          3550:        * error.c (dump_expr): Support member functions (which show up as
        !          3551:        OFFSET_REFs).
        !          3552: 
        !          3553: Mon Mar 14 16:24:36 1994  Mike Stump  ([email protected])
        !          3554: 
        !          3555:        * init.c (build_new): Set the return type of multidimensional
        !          3556:        news correctly.
        !          3557: 
        !          3558: Fri Mar 11 15:35:39 1994  Kung Hsu  ([email protected])
        !          3559: 
        !          3560:        * call.c (build_method_call): if basetype not equal to type
        !          3561:        of the instance, use the type of the instance in building
        !          3562:        destructor.
        !          3563: 
        !          3564: Thu Mar 10 17:07:10 1994  Kung Hsu  ([email protected])
        !          3565: 
        !          3566:        * parse.y (direct_notype_declarator): add push_nested_type for
        !          3567:        'template_type SCOPED_NAME' rule.
        !          3568: 
        !          3569: Tue Mar  8 00:19:58 1994  Jason Merrill  ([email protected])
        !          3570: 
        !          3571:        * parse.y (parm): Add typed_declspec1 {absdcl, epsilon} rules.
        !          3572: 
        !          3573: Sat Mar  5 04:47:48 1994  Jason Merrill  ([email protected])
        !          3574: 
        !          3575:        * parse.y (regcast_or_absdcl): New nonterminal to implement late
        !          3576:        reduction of constructs like `int ((int)(int)(int))'.
        !          3577:        (cast_expr): Use it.
        !          3578:        (sub_cast_expr): Everything that can come after a cast.
        !          3579:        (typed_declspecs1): typed_declspecs that are not typed_typespecs.
        !          3580:        (direct_after_type_declarator): Lose PAREN_STAR_PAREN rule.
        !          3581:        (direct_abstract_declarator): Replace '(' parmlist ')' rule with
        !          3582:        '(' complex_parmlist ')' and regcast_or_absdcl.
        !          3583:        (parmlist): Split
        !          3584:        (complex_parmlist): Parmlists that are not also typenames.
        !          3585:        (parms_comma): Enabler.
        !          3586:        (named_parm): A parm that is not also a typename.  Use declarator
        !          3587:        rather than dont_see_typename abs_or_notype_decl.  Expand
        !          3588:        typed_declspecs inline.
        !          3589:        (abs_or_notype_decl): Lose.
        !          3590:        (dont_see_typename): Comment out.
        !          3591:        (bad_parm): Break out abs_or_notype_decl into two rules.
        !          3592: 
        !          3593: Fri Mar  4 18:22:39 1994  Jason Merrill  ([email protected])
        !          3594: 
        !          3595:        * decl2.c (reparse_decl_as_casts): New function to change parse
        !          3596:        nodes for `(int)(int)(int)' from "function taking int and returning
        !          3597:        function taking int and returning function taking int" to "... cast
        !          3598:        to int, cast to int, cast to int".
        !          3599: 
        !          3600:        * decl2.c (reparse_decl_as_expr): Recursive function to change
        !          3601:        parse nodes for `A()()' from "function returning function returning
        !          3602:        A" to "A().operator()".
        !          3603: 
        !          3604:        * parse.y (primary): Replace `typespec LEFT_RIGHT' rule with
        !          3605:        `typespec fcast_or_absdcl' rule.
        !          3606:        (fcast_or_absdcl): New nonterminal to implement late reduction of
        !          3607:        constructs like `A()()()()'.
        !          3608:        (typename): Replace `typespec absdcl1' rule with
        !          3609:        `typespec direct_abstract_declarator' rule.
        !          3610:        (direct_abstract_declarator): Replace `LEFT_RIGHT type_quals' rule
        !          3611:        with `fcast_or_absdcl type_quals' rule.
        !          3612: 
        !          3613: Fri Mar  4 16:18:03 1994  Mike Stump  ([email protected])
        !          3614: 
        !          3615:        * tree.c (lvalue_p): Improve OFFSET_REF handling, so that it
        !          3616:        matches Section 5.5.
        !          3617: 
        !          3618: Fri Mar  4 14:01:59 1994  Jason Merrill  ([email protected])
        !          3619: 
        !          3620:        * error.c (dump_type_prefix): Don't print basetype twice for
        !          3621:        pmfs.
        !          3622: 
        !          3623: Fri Mar  4 13:24:33 1994  Mike Stump  ([email protected])
        !          3624: 
        !          3625:        * typeck.c (convert_arguments): Handle setHandler(A::handlerFn)
        !          3626:        so that it is like setHandler(&A::handlerFn).  Cures an `invalid
        !          3627:        lvalue in unary `&''.
        !          3628: 
        !          3629: Fri Mar  4 11:15:59 1994  Jason Merrill  ([email protected])
        !          3630: 
        !          3631:        * gxxint.texi (Copying Objects): New section discussing default
        !          3632:        op= problems with virtual inheritance.
        !          3633: 
        !          3634:        * decl2.c (grokoptypename): Just does grokdeclarator and
        !          3635:        build_typename_overload, since the parser can't call grokdeclarator
        !          3636:        directly.
        !          3637: 
        !          3638:        * method.c (build_typename_overload): Set IDENTIFIER_GLOBAL_VALUE
        !          3639:        and TREE_TYPE on generated identifiers.
        !          3640: 
        !          3641:        * decl.c (grokdeclarator): Don't deal with TYPE_EXPRs anymore.
        !          3642: 
        !          3643:        * parse.y (parm): Convert `const char *' to `__opPCc' here.
        !          3644: 
        !          3645:        * error.c (dump_decl): Say sorry rather than my_friendly_aborting
        !          3646:        if we can't figure out what to do.
        !          3647:        (dump_type*): Ditto.
        !          3648: 
        !          3649:        * typeck2.c (build_m_component_ref): 'component' is an expr, not
        !          3650:        a decl.  Also move the IS_AGGR_TYPE check after the stripping of
        !          3651:        REFERENCE_TYPE.
        !          3652: 
        !          3653: Fri Mar  4 04:46:05 1994  Mike Stump  ([email protected])
        !          3654: 
        !          3655:        * call.c (build_method_call): Handle b->setHandler(A::handlerFn)
        !          3656:        so that it is like b->setHandler(&A::handlerFn).  Cures an `invalid
        !          3657:        lvalue in unary `&''.
        !          3658: 
        !          3659: Thu Mar  3 12:38:15 1994  Jason Merrill  ([email protected])
        !          3660: 
        !          3661:        * parse.y: Add precedence specification for START_DECLARATOR.
        !          3662:        (type_quals): Move before primary.
        !          3663:        (typename): Move before typed_declspecs, add 'typespec absdcl1' rule.
        !          3664: 
        !          3665:        * decl2.c (grokoptypename): Lose.
        !          3666: 
        !          3667:        * decl.c (grokdeclarator): Parse TYPE_EXPRs in the initial scan,
        !          3668:        rather than waiting until later.
        !          3669: 
        !          3670: Wed Mar  2 14:12:23 1994  Jason Merrill  ([email protected])
        !          3671: 
        !          3672:        * parse.y (unary_expr): Use 'typename' in 'new' rules, rather
        !          3673:        than expanding it inline.
        !          3674:        (typename): Expand empty option of (former) absdcl inline.
        !          3675:        (abs_or_notype_decl): Ditto.
        !          3676:        (absdcl): Lose empty rule.
        !          3677:        (conversion_declarator): New nonterminal for 'typename' of 'operator
        !          3678:        typename'.
        !          3679:        (operator_name): Use it instead of absdcl.
        !          3680: 
        !          3681:        * parse.y: Add precedence declarations for SCOPED_TYPENAME,
        !          3682:        TYPEOF, and SIGOF.
        !          3683:        (typed_declspecs): Accept typed_typespecs, rather than typespec
        !          3684:        directly.  Add rules with reserved_typespecquals.
        !          3685:        (reserved_declspecs): Don't accept typespecqual_reserved at the
        !          3686:        beginning of the list.  The typed_declspecs rule will deal with this
        !          3687:        omission.
        !          3688:        (declmods): Accept nonempty_type_quals, rather than TYPE_QUAL
        !          3689:        directly.
        !          3690: 
        !          3691:        * parse.y (direct_notype_declarator,
        !          3692:        direct_after_type_declarator, direct_abstract_declarator): Split up
        !          3693:        the declarator1 nonterminals to match the draft standard and avoid
        !          3694:        ambiguities.
        !          3695:        (new_type_id, new_declarator, direct_new_declarator,
        !          3696:        new_member_declarator): New nonterminals to implement the subset of
        !          3697:        'typename' allowed in new expressions.
        !          3698:        (unary_expr): Use new_type_id instead of typename.
        !          3699:        (after_type_declarator1, absdcl1): Fix semantics of member pointers.
        !          3700:        (abs_member_declarator, after_type_member_declarator): Lose.
        !          3701: 
        !          3702:        * parse.y (absdcl1): Don't require parens around
        !          3703:        abs_member_declarator.
        !          3704:        (abs_member_declarator): Lose see_typename from rules.
        !          3705:        (after_type_member_declarator): Ditto.
        !          3706: 
        !          3707:        * tree.c (get_identifier_list): New function, containing code
        !          3708:        previously duplicated in get_decl_list and list_hash_lookup_or_cons.
        !          3709:        (get_decl_list): Use it.
        !          3710:        (list_hash_lookup_or_cons): Ditto.
        !          3711: 
        !          3712:        * parse.y (typed_declspecs, declmods): It's not necessary to hash
        !          3713:        the declspecs on class_obstack, so don't.  This way typed_typespecs
        !          3714:        can reduce to typed_declspecs.
        !          3715: 
        !          3716: Wed Mar  2 14:29:18 1994  Jason Merrill ([email protected])
        !          3717: 
        !          3718:        * cvt.c (build_up_reference): If we aren't checking visibility,
        !          3719:        also allow base->derived conversions.
        !          3720: 
        !          3721: Mon Feb 28 15:14:29 1994  Per Bothner  ([email protected])
        !          3722: 
        !          3723:        * typeck.c (build_c_cast): Remove bogus hack when converting
        !          3724:        to a reference type.
        !          3725: 
        !          3726:        * cp-tree.h (lang_decl::vbase_init_list, DECL_VBASE_INIT_LIST):
        !          3727:        Removed, not used.
        !          3728:        (lang_stype::methods, lang_decl::next_method): New fields.
        !          3729:        (CLASSTYPE_METHODS, DECL_NEXT_METHOD):  New macros.
        !          3730:        * decl.c (duplicate_decls):  Preserve DECL_NEXT_METHOD.
        !          3731: 
        !          3732:        * cp-tree.h, decl2.c (flag_vtable_hack):  New flag.
        !          3733:        * decl2.c (finish_vtable_vardecl):  If flag_vtable_hack,
        !          3734:        and  !CLASSTYPE_INTERFACE_KNOWN, try to use the presence of
        !          3735:        a non-inline virtual function to control emitting of vtables.
        !          3736:        * class.c (finish_struct):  Build CLASSTYPE_METHODS list.
        !          3737:        * search.c (build_vbase_vtables_init):  Don't assemble_external
        !          3738:        (yet) if flag_vtable_hack.
        !          3739:        * class.c (build_vfn_ref):  Ditto.
        !          3740: 
        !          3741: Mon Feb 28 14:54:13 1994  Jason Merrill  ([email protected])
        !          3742: 
        !          3743:        * parse.y (component_decl): Don't include "typed_declspecs
        !          3744:        declarator ';'" speedup, since it breaks enums.
        !          3745: 
        !          3746: Fri Feb 25 15:43:44 1994  Per Bothner  ([email protected])
        !          3747: 
        !          3748:        * class.c (finish_struct):  Minor optimization for building
        !          3749:        fn_fields list.
        !          3750: 
        !          3751: Fri Feb 25 15:23:42 1994  Jason Merrill  ([email protected])
        !          3752: 
        !          3753:        * decl.c (start_function): Fix detection of function overloading.
        !          3754: 
        !          3755: Thu Feb 24 22:26:19 1994  Mike Stump  ([email protected])
        !          3756: 
        !          3757:        * lex.c (check_newline): #pragma interface can take a string
        !          3758:        argument, just like #pragma implementation.  #pragma implementation
        !          3759:        checks for garbage on the line, line #pragma interface does.  Main
        !          3760:        input files do not auto implement like named files, #pragma
        !          3761:        implementation must be used explicitly.
        !          3762: 
        !          3763: Thu Feb 24 17:09:01 1994  Jason Merrill  ([email protected])
        !          3764: 
        !          3765:        * parse.y (components): Handle list of one again.
        !          3766:        (notype_components): Ditto.
        !          3767:        (after_type_declarator1): Take maybe_raises out again.
        !          3768: 
        !          3769:        * gxxint.texi (Parser): Document additional r/r conflict.
        !          3770: 
        !          3771: Wed Feb 23 14:42:55 1994  Jason Merrill  ([email protected])
        !          3772: 
        !          3773:        * gxxint.texi (Parser): Add node.
        !          3774: 
        !          3775:        * Makefile.in (stamp-parse): Update expected conflict count.
        !          3776: 
        !          3777:        * parse.y (various): Replace "declmods declarator" with "declmods
        !          3778:        notype_declarator".  The comment saying that "declmods declarator ';'"
        !          3779:        corresponds to "int i;" was wrong; it corresponds to "const i;".
        !          3780:        (component_decl): Add "typed_declspecs declarator ';'" rule; this
        !          3781:        *does* correspond to "int i;".  Change "declmods components" to
        !          3782:        "declmods notype_components".
        !          3783:        (components): Don't deal with a list of one anymore.
        !          3784:        (notype_components): New nonterminal, corresponds to notype_declarator.
        !          3785:        ({after_,no}type_component_decl{,0}): More new nonterminals.
        !          3786:        ({after_,no}type_declarator): Fold in START_DECLARATOR token.
        !          3787:        Eliminates four reduce/reduce conflicts.
        !          3788: 
        !          3789:        (expr): Depend on nontrivial_exprlist instead of nonnull_exprlist.
        !          3790:        (nontrivial_exprlist): New nonterminal: A list of at least two
        !          3791:        expr_no_commas's.
        !          3792:        (nonnull_exprlist): Depend on nontrival_exprlist.
        !          3793:        Eliminates four reduce/reduce conflicts.
        !          3794: 
        !          3795:        (named_class_head): Move intermediate code block into separate
        !          3796:        nonterminal so that we can stick %prec EMPTY on it.
        !          3797: 
        !          3798:        Add more %prec EMPTY's to eliminate remaining shift/reduce
        !          3799:        conflicts.
        !          3800: 
        !          3801:        (after_type_declarator): Add maybe_raises to fndecl rules.
        !          3802:        (after_type_declarator_no_typename): Remove.
        !          3803:        For correctness.
        !          3804: 
        !          3805:        Document remaining reduce/reduce conflicts.
        !          3806: 
        !          3807: Tue Feb 22 12:10:32 1994  Jason Merrill  ([email protected])
        !          3808: 
        !          3809:        * search.c (get_base_distance): Only bash BINFO_INHERITANCE_CHAIN
        !          3810:        (TYPE_BINFO (type)) if we care about the path.
        !          3811: 
        !          3812:        * tree.c (lvalue_p): A COND_EXPR is an lvalue if both of the
        !          3813:        options are.
        !          3814: 
        !          3815: Mon Feb 21 19:59:40 1994  Mike Stump  ([email protected])
        !          3816: 
        !          3817:        * Makefile.in (mostlyclean): lex.c is a source file, don't
        !          3818:        remove.
        !          3819: 
        !          3820: Sat Feb 19 01:27:14 1994  Jason Merrill  ([email protected])
        !          3821: 
        !          3822:        * parse.y: Eliminate 20 shift/reduce conflicts.
        !          3823: 
        !          3824: Fri Feb 18 11:49:42 1994  Jason Merrill  ([email protected])
        !          3825: 
        !          3826:        * pt.c (type_unification): Add subr argument; if set, it means
        !          3827:        that we are calling ourselves recursively, so a partial match is OK.
        !          3828:        (unify): Support pointers to methods and functions.
        !          3829:        (tsubst): Support method pointers.
        !          3830:        * decl.c (build_ptrmemfunc_type): No longer static, so that
        !          3831:        tsubst can get at it.
        !          3832: 
        !          3833:        * init.c (is_aggr_typedef): Pretend template type parms are
        !          3834:        aggregates.
        !          3835:        * decl2.c (build_push_scope): If cname refers to a template type
        !          3836:        parm, just grin and nod.        
        !          3837: 
        !          3838:        * call.c (build_overload_call_real): Pass subr argument to
        !          3839:        type_unification.
        !          3840:        * pt.c (do_function_instantiation): Ditto.
        !          3841:        * class.c (instantiate_type): Ditto.
        !          3842: 
        !          3843:        * search.c (get_base_distance): If BINFO is a binfo, use it and
        !          3844:        don't mess with its BINFO_INHERITANCE_CHAIN.
        !          3845: 
        !          3846:        * cvt.c (convert_to_reference): Fix temporary generation.
        !          3847:        If ambiguous, return error_mark_node.
        !          3848: 
        !          3849:        * init.c (build_new): Put back some necessary code.
        !          3850: 
        !          3851: Thu Feb 17 15:39:47 1994  Jason Merrill  ([email protected])
        !          3852: 
        !          3853:        * init.c (build_new): Deal with array types properly.
        !          3854: 
        !          3855:        * search.c (get_binfo): Become a shell for get_base_distance.
        !          3856:        (get_binfo_recursive): Lose.
        !          3857:        (get_base_distance_recursive): Find the path to the via_virtual base
        !          3858:        that provides the most access.
        !          3859:        (get_base_distance): Ditto.
        !          3860: 
        !          3861:        * parse.y (explicit_instantiation): Syntax is 'template class
        !          3862:        A<int>', not 'template A<int>'.
        !          3863: 
        !          3864:        * typeck.c (convert_for_initialization): Remove bogus warning.
        !          3865: 
        !          3866:        * parse.y (datadef): Revert patch of Oct 27.
        !          3867: 
        !          3868: Thu Feb 17 15:12:29 1994  Per Bothner  ([email protected])
        !          3869: 
        !          3870:        * class.c (build_vfn_ref):  Cast delta field to ptrdiff_type_node,
        !          3871:        rather than integer_type_node.  Does wonders for the Alpha.
        !          3872: 
        !          3873: Thu Feb 17 13:36:21 1994  Jason Merrill  ([email protected])
        !          3874: 
        !          3875:        * decl.c (build_ptrmemfunc_type): Make sure that the pmf type
        !          3876:        goes onto the same obstack as its target type.
        !          3877: 
        !          3878: Wed Feb 16 00:34:46 1994  Jason Merrill  ([email protected])
        !          3879: 
        !          3880:        * cvt.c (convert_to_reference): If converting via constructor
        !          3881:        on local level, go back to build_cplus_new approach.
        !          3882: 
        !          3883:        * tree.c (build_cplus_new): If with_cleanup_p, set cleanup slot
        !          3884:        to error_mark_node to prevent expand_expr from building a cleanup
        !          3885:        for this variable.
        !          3886: 
        !          3887:        * lex.c (default_assign_ref_body): Return *this from the memcpy
        !          3888:        version, too.
        !          3889: 
        !          3890:        * decl.c (grok_reference_init): Just return if called with
        !          3891:        error_mark_node, don't worry about initializing non-const reference
        !          3892:        with temporary.
        !          3893: 
        !          3894:        * cvt.c (convert_to_reference): Do the right thing for
        !          3895:        non-aggregate reference conversions, pedwarn when generating a
        !          3896:        non-const reference to a temporary.
        !          3897: 
        !          3898:        * class.c (finish_struct): TYPE_HAS_COMPLEX_{INIT,ASSIGN}_REF and
        !          3899:        TYPE_NEEDS_CONSTRUCTING all depend on TYPE_USES_VIRTUAL_BASECLASSES
        !          3900:        again.
        !          3901: 
        !          3902: Tue Feb 15 19:47:19 1994  Jason Merrill  ([email protected])
        !          3903: 
        !          3904:        * decl.c (grok_reference_init): Pawn off a lot of the work on
        !          3905:        convert_to_reference.  Generally do the right thing.
        !          3906: 
        !          3907:        * cvt.c (convert_to_reference): Conform to the initial comment;
        !          3908:        i.e. don't create temps if decl != error_mark_node.  Handle
        !          3909:        cleanups better for temps that do get created.  Don't pretend
        !          3910:        that we can use an 'A' to initialize a 'const double &' just by
        !          3911:        tacking on a NOP_EXPR.  Support LOOKUP_SPECULATIVELY.
        !          3912: 
        !          3913:        * call.c (build_method_call): Set TREE_HAS_CONSTRUCTOR on
        !          3914:        constructor calls.      
        !          3915: 
        !          3916: Mon Feb 14 14:50:17 1994  Jason Merrill  ([email protected])
        !          3917: 
        !          3918:        * decl.c (grok_reference_init): Make a temporary for initializing
        !          3919:        const reference from constant expression.
        !          3920: 
        !          3921: Mon Feb 14 11:31:31 1994  Per Bothner  ([email protected])
        !          3922: 
        !          3923:        * cp-tree.h, decl.c (set_identifier_local_value):  Deleted function.
        !          3924:        * decl.c (pushdecl):  Define decl in correct binding_level
        !          3925:        (which isn't always the inner_binding_level).
        !          3926: 
        !          3927:        * cvt.c (build_up_reference):  Don't ever call expand_aggr_init.
        !          3928:        It's ugly, and I don't think it's the right thing to do.
        !          3929: 
        !          3930:        * cp-tree.h, class.c, decl.c, decl2.c, sp/search.c: 
        !          3931:        Remove NEW_CLASS_SCOPING, assuming it is always 1.
        !          3932:        * decl.c (pop_decl_level):  Removed; manually inlined.
        !          3933: 
        !          3934: Sun Feb 13 19:04:56 1994  Jason Merrill  ([email protected])
        !          3935: 
        !          3936:        * class.h (candidate): Add basetypes field.
        !          3937: 
        !          3938:        * call.c (build_method_call): Do access checking after choosing a
        !          3939:        function, not before.
        !          3940: 
        !          3941:        * Makefile.in (cvt.o, call.o, method.o): Depend on class.h.
        !          3942:        (mostlyclean): Remove ../cc1plus.
        !          3943: 
        !          3944: Fri Feb 11 11:52:26 1994  Jason Merrill  ([email protected])
        !          3945: 
        !          3946:        * class.c (finish_struct): Don't allow adjusting access to a field
        !          3947:        of a base class if a local field has the same name.
        !          3948: 
        !          3949:        * error.c (dump_type_prefix): Output basetype for METHOD_TYPEs.
        !          3950: 
        !          3951: hu Jan 13 17:55:51 EST 1994 Gnanasekaran Swaminathan ([email protected])
        !          3952: 
        !          3953:            * cp-tree.h (DESTRUCTOR_NAME_P): do not confuse AUTO_TEMP names
        !          3954:            with destructor names when either NO_DOLLAR_IN_LABEL or
        !          3955:            NO_DOT_IN_LABEL are not defined.
        !          3956: 
        !          3957:            Now `template <class T, T f(T&), const T*> class A {...}' works.
        !          3958: 
        !          3959:            * pt.c (grok_template_type): substitute template parm types
        !          3960:            with actual types in complex type as well.
        !          3961:            (coerce_template_parms): update the grok_template_type ()
        !          3962:            function call.
        !          3963: 
        !          3964:        * pt.c (tsubst): Traverse method list using DECL_CHAIN.
        !          3965: 
        !          3966:        * decl.c (grok_op_properties): Allow operator++/-- to have
        !          3967:        default arguments.
        !          3968: 
        !          3969:        * typeck2.c (store_init_value): Don't abort when called to
        !          3970:        initialize a type that needs constructing with a CONSTRUCTOR.
        !          3971: 
        !          3972:        * init.c (expand_aggr_init_1, CONSTRUCTOR case): If
        !          3973:        store_init_value fails, build and expand an INIT_EXPR.  If
        !          3974:        store_init_value succeeds, call expand_decl_init.
        !          3975: 
        !          3976: Fri Feb 11 02:49:23 1994  Mike Stump  ([email protected])
        !          3977: 
        !          3978:        * class.c (build_vbase_path): Use complete_type_p instead of
        !          3979:        resolves_to_fixed_type_p to determine if the virtual bases are in
        !          3980:        their right place for the type of expr.  Cures problem of thinking a
        !          3981:        virtual base class is one place, when it is in fact someplace else.
        !          3982: 
        !          3983: Fri Feb 11 00:26:46 1994  Mike Stump  ([email protected])
        !          3984: 
        !          3985:        * init.c (resolve_offset_ref): Make sure we first convert to
        !          3986:        intermediate type, if given, when dealing with members off `this'.
        !          3987:        Solves an incorrrect `type `foo' is not a base type for type
        !          3988:        `multiple'' when it is infact, a base type.
        !          3989: 
        !          3990: Thu Feb 10 21:49:35 1994  Mike Stump  ([email protected])
        !          3991: 
        !          3992:        * class.c (modify_other_vtable_entries): Use get_binfo, instead
        !          3993:        of binfo_value.  Solves problem with compiler giving a `base class
        !          3994:        `B' ambiguous in binfo_value (compiler error)' on complex MI
        !          3995:        herarchies, when a virtual function is first defied in a virtual
        !          3996:        base class.
        !          3997: 
        !          3998: Thu Feb 10 17:19:32 1994  Mike Stump  ([email protected])
        !          3999: 
        !          4000:        * class.c (build_vbase_path): Don't complain about ambiguous
        !          4001:        intermediate conversion when converting down to a virtual base
        !          4002:        class, even if they might seem to be ambiguous.
        !          4003: 
        !          4004: Thu Feb 10 12:18:26 1994  Jason Merrill  ([email protected])
        !          4005: 
        !          4006:        * typeck2.c (build_functional_cast): #if 0 out constructor
        !          4007:        inheritance code, improve error messages.
        !          4008: 
        !          4009:        * class.c (finish_base_struct): Complain about base with only
        !          4010:        non-default constructors in derived class with no constructors.
        !          4011: 
        !          4012:        * decl.c (grokdeclarator): Fix detection of virtual new/delete.
        !          4013: 
        !          4014: Wed Feb  9 22:02:32 1994  Mike Stump  ([email protected])
        !          4015: 
        !          4016:        * search.c (build_mi_virtuals, add_mi_virtuals,
        !          4017:        report_ambiguous_mi_virtuals): Removed unneeded code.
        !          4018:        * class.c (finish_struct_bits): Ditto.
        !          4019: 
        !          4020: Wed Feb  9 11:27:17 1994  Jason Merrill  ([email protected])
        !          4021: 
        !          4022:        * pt.c (end_template_instantiation): Push decl before
        !          4023:        pop_from_top_level.
        !          4024: 
        !          4025:        * typeck2.c (build_m_component_ref): Make sure datum is of
        !          4026:        aggregate type.
        !          4027: 
        !          4028:        * init.c (get_type_value): New function, returns
        !          4029:        IDENTIFIER_TYPE_VALUE or IDENTIFIER_CLASS_TYPE_VALUE or NULL_TREE.
        !          4030: 
        !          4031:        * call.c (build_method_call): Don't die on call to destructor for
        !          4032:        non-type.
        !          4033: 
        !          4034:        * decl.c (grokdeclarator): Complain about virtual op new and op
        !          4035:        delete, make static virtuals unvirtual instead of unstatic.
        !          4036: 
        !          4037:        * typeck.c (build_c_cast): Also call default_conversion on
        !          4038:        methods.
        !          4039: 
        !          4040:        * decl.c (grokdeclarator): Don't complain about anonymous
        !          4041:        bitfields.
        !          4042: 
        !          4043:        * parse.y (simple_stmt, for loops): Move the continue point after
        !          4044:        the cleanups.
        !          4045: 
        !          4046:        * class.c (finish_struct): Fix setting of
        !          4047:        TYPE_HAS_COMPLEX_INIT_REF.
        !          4048: 
        !          4049: Tue Feb  8 13:21:40 1994  Jason Merrill  ([email protected])
        !          4050: 
        !          4051:        * init.c (build_new): Deal with `new double (1)'.
        !          4052: 
        !          4053:        * class.c (finish_struct): TYPE_HAS_COMPLEX_*_REF are supersets of
        !          4054:        TYPE_HAS_REAL_*_REF, but TYPE_HAS_COMPLEX_INIT_REF is independent of
        !          4055:        TYPE_NEEDS_CONSTRUCTING.
        !          4056: 
        !          4057:        * decl.c (duplicate_decls): Propagate access decls.
        !          4058: 
        !          4059:        * typeck2.c (process_init_constructor): Accept empty_init_node
        !          4060:        for initializing unions.
        !          4061: 
        !          4062:        * class.c, lex.c, cp-tree.h: Use
        !          4063:        TYPE_HAS_COMPLEX_ASSIGN_REF where TYPE_HAS_REAL_ASSIGN_REF was used
        !          4064:        before, use TYPE_HAS_COMPLEX_INIT_REF for TYPE_NEEDS_CONSTRUCTING in
        !          4065:        some places.
        !          4066: 
        !          4067:        * decl.c (finish_decl): Don't complain about uninitialized const
        !          4068:        if it was initialized before.
        !          4069: 
        !          4070: Mon Feb  7 18:12:34 1994  Jason Merrill  ([email protected])
        !          4071: 
        !          4072:        * lex.c (default_assign_ref_body): Don't deal with vbases for
        !          4073:        now.
        !          4074: 
        !          4075:        * decl.c (finish_decl): Fix reversed logic for objects and other
        !          4076:        things that need to be constructed but have no initializer.
        !          4077: 
        !          4078:        * class.c (finish_struct): Don't set TYPE_HAS_* flags that are
        !          4079:        set by grok_op_properties or finish_decl.
        !          4080: 
        !          4081:        * decl.c: Don't warn about extern redeclared inline unless
        !          4082:        -Wextern-inline is given.
        !          4083:        * decl2.c (lang_decode_option): Ditto.
        !          4084:        * cp-tree.h: Ditto.
        !          4085: 
        !          4086: Mon Feb  7 17:29:24 1994  Per Bothner  ([email protected])
        !          4087: 
        !          4088:        * decl.c (pushdecl_with_scope): Fix thinko.  Add forward
        !          4089:        declaration.
        !          4090: 
        !          4091:        * decl.c (pushdecl_with_scope):  New function.
        !          4092:        * decl.c (pushdecl_top_level):  Use new function.
        !          4093:        * decl.c (pushtag):  Initialize newdecl.
        !          4094:        * decl.c (pushtag):  Push new type decl into correct scope.
        !          4095: 
        !          4096: Mon Feb  7 14:42:03 1994  Jason Merrill  ([email protected])
        !          4097: 
        !          4098:        * call.c, cvt.c, init.c, search.c, cp-tree.h:
        !          4099:        Eradicate LOOKUP_PROTECTED_OK.
        !          4100: 
        !          4101: Mon Feb  7 13:57:19 1994  Per Bothner  ([email protected])
        !          4102: 
        !          4103:        * decl.c (pushtag, xref_tag), cp-tree.h:  Add extra parameter
        !          4104:         'globalize' to signify implicit declarations.
        !          4105:        * decl.c (globalize_nested_type, maybe_globalize_type):  Removed.
        !          4106:        * decl.c (set_identifier_type_value_with_scope):  New function.
        !          4107:        * decl.c (set_identifier_local_value):  Simplify.
        !          4108:        * spew.c (yylex, do_addr):  Modify to return a _DEFN if a
        !          4109:        forward declaration (followed by ';' and not preceded by 'friend').
        !          4110:        * class.c, decl.c, except.c, init.c, parse.y,
        !          4111:        pt.c, search.c: Add new argument to calls to xref_tag and
        !          4112:        pushtag.
        !          4113: 
        !          4114: Mon Feb  7 00:22:59 1994  Jason Merrill  ([email protected])
        !          4115: 
        !          4116:        * cp-tree.h (ACCESSIBLY_UNIQUELY_DERIVED_P): New macro, means what
        !          4117:        ACCESSIBLY_DERIVED_FROM_P meant before.
        !          4118:        (ACCESSIBLY_DERIVED_FROM_P): Now disregards ambiguity.
        !          4119: 
        !          4120:        * cvt.c (build_up_reference): Call get_binfo with PROTECT == 1.
        !          4121: 
        !          4122:        * search.c (get_base_distance_recursive): Members and friends of
        !          4123:        a class X can implicitly convert an X* to a pointer to a private or
        !          4124:        protected immediate base class of X.
        !          4125:        (get_binfo_recursive): Ditto.
        !          4126:        (get_base_distance): Ignore ambiguity if PROTECT < 0.
        !          4127:        (get_binfo): Lose multiple values of PROTECT.
        !          4128:        (compute_access): Protected is OK if the start of the
        !          4129:        search is an accessible base class of current_class_type.
        !          4130: 
        !          4131:        * method.c (build_opfncall): Do check access on operator new here.
        !          4132: 
        !          4133:        * decl.c (finish_function): Don't check access on operator new
        !          4134:        here.
        !          4135: 
        !          4136: Sun Feb  6 14:06:58 1994  Jason Merrill  ([email protected])
        !          4137: 
        !          4138:        * decl.c (xref_tag): The base of a derived struct is NOT always
        !          4139:        public.  Duh.
        !          4140: 
        !          4141:        * pt.c (do_explicit_instantiation): New function, called from
        !          4142:        parser to do explicit function instantiation.
        !          4143:        (type_unification): Allow the args list to be terminated with
        !          4144:        void_list_node.
        !          4145:        (do_pending_expansions): Look at i->interface for non-member
        !          4146:        templates.
        !          4147: 
        !          4148:        * parse.y (datadef): Move explicit_instantiation here.
        !          4149:        (structsp): From here.
        !          4150:        (datadef): Complain about `int;'.
        !          4151: 
        !          4152: Sun Feb  6 12:33:18 1994  Per Bothner  ([email protected])
        !          4153: 
        !          4154:        * pt.c (end_template_instantiation), cp-tree.h:  Remove unused
        !          4155:        second parameter, and simplify first from a TREE_LIST where
        !          4156:        we only care about its TREE_VALUE to just the value (an IDENTIFIER).
        !          4157:        * pt.c (instantiate_member_templates):  Simplify argument list
        !          4158:        from a TREE_LIST to just an IDENTIFIER.
        !          4159:        * lex.c (yyprint):  PRE_PARSED_CLASS_DECL is now just an IDENTIFIER.
        !          4160:        * parse.y (template_instantiate_once):  Simplify accordingly.
        !          4161:        * decl.c (inner_binding_level): New.  Use various places to
        !          4162:        simplify.
        !          4163: 
        !          4164: Sun Feb  6 02:49:37 1994  Jason Merrill  ([email protected])
        !          4165: 
        !          4166:        * typeck2.c (build_functional_cast): int() -> int(0).
        !          4167: 
        !          4168: Sat Feb  5 00:53:21 1994  Jason Merrill  ([email protected])
        !          4169: 
        !          4170:        * class.c (finish_struct): Don't do a bitwise copy for op= if the
        !          4171:        class has a virtual function table.
        !          4172: 
        !          4173:        * typeck.c (convert_for_initialization): Restore warnings about
        !          4174:        not using defined op=.  Should really be my_friendly_aborts, I
        !          4175:        s'pose.
        !          4176: 
        !          4177: Fri Feb  4 14:21:00 1994  Jason Merrill  ([email protected])
        !          4178: 
        !          4179:        * class.c (finish_struct): Tidy up conditions for doing bitwise
        !          4180:        copies of objects.
        !          4181: 
        !          4182:        * decl.c (build_default_constructor): #if 0 out.
        !          4183: 
        !          4184:        * *: Eradicate TYPE_GETS_{ASSIGNMENT,ASSIGN_REF,CONST_ASSIGN_REF,
        !          4185:        CONST_INIT_REF}, TYPE_HAS_REAL_CONSTRUCTOR.
        !          4186: 
        !          4187:        * decl.c (grokdeclarator): Don't return void_type_node for
        !          4188:        friends being defined here.
        !          4189: 
        !          4190:        * init.c (perform_member_init): Only do the init if it's useful.
        !          4191: 
        !          4192:        * lex.c (default_copy_constructor_body): If we don't need to do
        !          4193:        memberwise init, just call __builtin_memcpy.
        !          4194:        (default_assign_ref_body): Ditto.
        !          4195: 
        !          4196:        * decl.c (grokdeclarator): If friendp && virtualp, friendp = 0.
        !          4197: 
        !          4198: Fri Feb  4 13:02:56 1994  Mike Stump  ([email protected])
        !          4199: 
        !          4200:        * lex.c (reinit_parse_for_method, cons_up_default_function):
        !          4201:        Don't give warn_if_unknown_interface warning when it came from a
        !          4202:        system header file.
        !          4203:        * pt.c (end_template_decl, instantiate_template): Ditto.
        !          4204:        * decl.c (start_decl): Ditto.
        !          4205: 
        !          4206: Fri Feb  4 00:41:21 1994  Jason Merrill  ([email protected])
        !          4207: 
        !          4208:        * decl.c (grokdeclarator): Don't try to set TYPE_WAS_ANONYMOUS on
        !          4209:        enums.
        !          4210: 
        !          4211:        * decl2.c (constructor_name_full): Use IS_AGGR_TYPE_CODE instead of
        !          4212:        IS_AGGR_TYPE, since we don't know it's a type.
        !          4213: 
        !          4214: Thu Feb  3 11:36:46 1994  Jason Merrill  ([email protected])
        !          4215: 
        !          4216:        * decl.c (grokdeclarator): Don't complain about anonymous unions.
        !          4217: 
        !          4218:        * cp-tree.h (TYPE_WAS_ANONYMOUS): This struct was originally
        !          4219:        anonymous, but had a name given to it by a typedef.
        !          4220: 
        !          4221:        * decl.c (grokdeclarator): When renaming an anonymous struct, set
        !          4222:        TYPE_WAS_ANONYMOUS.
        !          4223: 
        !          4224:        * decl2.c (constructor_name_full): Use TYPE_WAS_ANONYMOUS.
        !          4225: 
        !          4226:        * cp-tree.h (DECL_UNDEFINED_FRIENDS): #if 0 out.
        !          4227: 
        !          4228:        * init.c (xref_friend): Don't set up DECL_UNDEFINED_FRIENDS.
        !          4229:        (embrace_waiting_friends): Don't use DECL_UNDEFINED_FRIENDS.
        !          4230:        
        !          4231:        * decl.c (grokdeclarator): Set TYPE_NESTED_NAME properly on nested
        !          4232:        anonymous structs that get typedef'd.
        !          4233: 
        !          4234:        * decl.c (grokdeclarator): Always return void_type_node for
        !          4235:        friends.
        !          4236: 
        !          4237:        * error.c (dump_function_decl): Don't use DECL_CLASS_CONTEXT for
        !          4238:        friends.
        !          4239:        (dump_function_decl): Don't print out default args for
        !          4240:        a function used in an expression.
        !          4241: 
        !          4242:        * decl.c (grokdeclarator): Give error on abstract declarator used
        !          4243:        in an invalid context (i.e. `void (*)();').
        !          4244: 
        !          4245:        * error.c (cp_line_of): Support _TYPE nodes.
        !          4246:        (cp_file_of): Ditto.
        !          4247: 
        !          4248:        * cvt.c (build_up_reference): Don't abort if passed a SAVE_EXPR;
        !          4249:        it can happen for the RHS of an assignment stmt where the LHS is
        !          4250:        a COND_EXPR.
        !          4251: 
        !          4252:        * init.c (expand_aggr_init_1): Deal with bracketed initializer
        !          4253:        lists properly.
        !          4254: 
        !          4255:        * class.c (finish_struct): Deal with enumerators and typedefs
        !          4256:        again.
        !          4257: 
        !          4258: Wed Feb  2 11:30:22 1994  Jason Merrill  ([email protected])
        !          4259: 
        !          4260:        * class.c (finish_struct): Tidy up loop over fields.
        !          4261: 
        !          4262:        * errfn.c (cp_thing): Don't advance twice after a format.
        !          4263: 
        !          4264:        * class.c (finish_struct): Complain about needing a constructor
        !          4265:        if a member has only non-default constructors, and don't try to
        !          4266:        generate a default constructor.
        !          4267: 
        !          4268:        * decl.c (finish_decl): Also do the constructor thing if
        !          4269:        TYPE_NEEDS_CONSTRUCTING is set (for arrays).
        !          4270: 
        !          4271:        * search.c (unuse_fields): New function: mark all fields in this
        !          4272:        type unused.
        !          4273:        (dfs_unuse_fields): Helper function.
        !          4274: 
        !          4275:        * class.c (pushclass): If the new class is the same as the old
        !          4276:        class, still unuse the fields.
        !          4277:        (unuse_fields): Move to search.c.
        !          4278: 
        !          4279:        * decl.c (grok_op_properties): Add friendp argument.
        !          4280:        (grokfndecl): Pass it.
        !          4281:        (start_method): Ditto.
        !          4282: 
        !          4283:        * decl2.c (delete_sanity): Add use_global_delete parameter to catch
        !          4284:        ::delete calls.
        !          4285: 
        !          4286:        * parse.y (unary_expr): Pass new parameter to delete_sanity.
        !          4287: 
        !          4288:        * lex.c (default_copy_constructor_body): Don't choke if the union
        !          4289:        has no fields.
        !          4290:        (default_assign_ref_body): Ditto.
        !          4291: 
        !          4292:        * call.c (compute_conversion_costs_ansi): Do the right thing for
        !          4293:        ellipsis matches.
        !          4294: 
        !          4295:        * decl.c (push_to_top_level): Optimize.
        !          4296: 
        !          4297:        * decl.c (start_function): Look for the lexical scope of a friend
        !          4298:        in DECL_CLASS_CONTEXT.
        !          4299: 
        !          4300:        * init.c (do_friend): Set DECL_CLASS_CONTEXT on global friends.
        !          4301: 
        !          4302: Tue Feb  1 15:59:24 1994  Jason Merrill  ([email protected])
        !          4303: 
        !          4304:        * cp-tree.h (TREE_GETS_PLACED_NEW): New macro.
        !          4305: 
        !          4306:        * init.c (init_init_processing): Don't assign BIN/BID to the
        !          4307:        IDENTIFIER_GLOBAL_VALUEs of their respective operators.
        !          4308:        (build_new): Check TREE_GETS_PLACED_NEW.
        !          4309: 
        !          4310:        * decl.c (grok_op_properties): Don't set TREE_GETS_NEW for a decl of
        !          4311:        op new with placement, set TREE_GETS_PLACED_NEW.
        !          4312: 
        !          4313:        * cp-tree.h (ANON_UNION_P): New macro.  Applies to decls.
        !          4314: 
        !          4315:        * class.c (finish_struct): Don't treat anonymous unions like
        !          4316:        other aggregate members.  Do synthesize methods for unions without
        !          4317:        a name, since they may or may not be "anonymous unions".
        !          4318: 
        !          4319:        * decl2.c (grok_x_components): Wipe out memory of synthesized methods
        !          4320:        in anonymous unions.
        !          4321: 
        !          4322:        * lex.c (default_copy_constructor_body): Support unions.
        !          4323:        (default_assign_ref_body): Ditto.
        !          4324: 
        !          4325: Mon Jan 31 12:07:30 1994  Jason Merrill  ([email protected])
        !          4326: 
        !          4327:        * cp-tree.h: Fix documentation of LOOKUP_GLOBAL, add prototypes.
        !          4328: 
        !          4329:        * error.c (args_as_string): New function (%A), like type_as_string
        !          4330:        except NULL_TREE -> "..."
        !          4331: 
        !          4332:        * call.c (build_overload_call_real): Fix for new overloading.
        !          4333: 
        !          4334:        * decl.c (grok_op_properties): Set all of the TYPE_OVERLOADS_* flags
        !          4335:        here.
        !          4336: 
        !          4337:        * parse.y (operator_name): Instead of here.
        !          4338: 
        !          4339:        * typeck2.c (build_functional_cast): Treat a TREE_LIST as a list
        !          4340:        of functions.
        !          4341: 
        !          4342:        * call.c (build_overload_call_real): Support LOOKUP_SPECULATIVELY.
        !          4343: 
        !          4344:        * method.c (build_opfncall): Don't need to massage return value
        !          4345:        any more, call build_overload_call with all flags.
        !          4346: 
        !          4347:        * typeck.c (build_x_binary_op): Put back speculative call to
        !          4348:        build_opfncall.
        !          4349:        (build_x_unary_op): Ditto.
        !          4350:        (build_x_conditional_expr): Ditto.
        !          4351: 
        !          4352: Mon Jan 31 10:00:30 1994  Mike Stump  ([email protected])
        !          4353: 
        !          4354:        * cvt.c (build_type_conversion_1): Change call to pedwarn into
        !          4355:        warning, and conditionalize upon warn_cast_qual.
        !          4356: 
        !          4357: Fri Jan 28 11:48:15 1994  Jason Merrill  ([email protected])
        !          4358: 
        !          4359:        * search.c (lookup_field): If xbasetype is a binfo, copy it to
        !          4360:        avoid clobbering its inheritance info.
        !          4361: 
        !          4362:        * call.c (build_method_call): Don't overwrite basetype_path with
        !          4363:        TYPE_BINFO (inst_ptr_basetype) if they have the same type.
        !          4364: 
        !          4365:        * search.c (compute_access): Fix handling of protected inheritance
        !          4366:        and friendship with the enclosing class.
        !          4367: 
        !          4368:        * typeck2.c (store_init_value): Allow passing of TREE_CHAIN for
        !          4369:        initialization of arbitrary variable.
        !          4370: 
        !          4371:        * typeck2.c (build_functional_cast): Only try calling a method if
        !          4372:        one exists.
        !          4373: 
        !          4374:        * decl.c (grokdeclarator): Move handling of constructor syntax
        !          4375:        initialization into first loop for generality.
        !          4376:        (parmlist_is_random): Lose.
        !          4377: 
        !          4378:        * lex.c (cons_up_default_function): Set TREE_PARMLIST on arguments
        !          4379:        to default function.
        !          4380: 
        !          4381: Thu Jan 27 19:26:51 1994  Jason Merrill  ([email protected])
        !          4382: 
        !          4383:        * decl.c (grokparms): Abort if we get called with something we don't
        !          4384:        expect.
        !          4385: 
        !          4386: Thu Jan 27 17:37:25 1994  Mike Stump  ([email protected])
        !          4387: 
        !          4388:        * call.c (build_overload_call_real): Change argument complain to
        !          4389:        flags to match style of rest of code.  Pass it down to
        !          4390:        build_function_call_real as necessary.
        !          4391:        * call.c (build_overload_call, build_overload_call_maybe): Change
        !          4392:        argument complain to flags to match style of rest of code.
        !          4393:        * cp-tree.h (build_function_call_real): Added fourth flags
        !          4394:        argument.
        !          4395:        * cvt.c (convert_to_reference): Only give warning messages, if
        !          4396:        LOOKUP_COMPLAIN is set.
        !          4397:        * typeck.c (build_x_function_call): Change simple complain
        !          4398:        argument to build_overload_call_maybe and build_overload_call, to
        !          4399:        LOOKUP_COMPLAIN to match style of rest of code.
        !          4400:        * typeck2.c (build_functional_cast): Ditto.
        !          4401:        * typeck.c (build_function_call_real): Add flags, so that we can
        !          4402:        not complain, if we don't want to complain.  Complain about
        !          4403:        arguments, if we are complaining, otherwise don't.
        !          4404:        * typeck.c (build_function_call, build_function_call_maybe):
        !          4405:        Stick in flags argument.
        !          4406:        * typeck.c (build_x_binary_op, build_x_unary_op,
        !          4407:        build_x_conditional_expr, build_x_compound_expr): Follow style of
        !          4408:        build_x_indirect_ref, as it is more correct and more common.
        !          4409: 
        !          4410: Thu Jan 27 14:36:20 1994  Jason Merrill  ([email protected])
        !          4411: 
        !          4412:        * call.c (build_method_call): Don't check for being called with
        !          4413:        a pointer.
        !          4414: 
        !          4415:        * decl2.c (finish_file): Don't play with DECL_CLASS_CONTEXT for the
        !          4416:        static initializer function.
        !          4417: 
        !          4418:        * init.c (build_member_call): Use convert_force here, too.
        !          4419: 
        !          4420:        * search.c (compute_access): Only treat static members specially
        !          4421:        if they are referenced directly.
        !          4422: 
        !          4423: Wed Jan 26 18:28:14 1994  Jason Merrill  ([email protected])
        !          4424: 
        !          4425:        * gxxint.texi (Access Control): New node.
        !          4426: 
        !          4427:        * search.c (current_scope): New function; returns whichever of
        !          4428:        current_class_type and current_function_decl is the most nested.
        !          4429:        (compute_access): Total overhaul to make it clearer and more
        !          4430:        correct.  Don't use the cache for now; in the only situation where
        !          4431:        it was used before, it gained nothing.  This frees up three of the
        !          4432:        DECL_LANG_FLAGs for possible other use!
        !          4433: 
        !          4434:        * cp-tree.h: #if 0 out DECL_PUBLIC & friends.
        !          4435: 
        !          4436:        * typeck.c (build_component_ref_1): Don't check DECL_PUBLIC.
        !          4437: 
        !          4438:        * call.c (build_method_call): Use convert_force to cast `this' --
        !          4439:        rely on the access checking for the method itself.
        !          4440: 
        !          4441:        * init.c (is_friend): Do the nesting thing, handle types.  I am
        !          4442:        my own friend.
        !          4443:        (is_friend_type): Become a shell for is_friend.
        !          4444:        (add_friend): Never stick in ctype.
        !          4445:        Why are the friendship functions in init.c, anyway?
        !          4446: 
        !          4447: Wed Jan 26 17:50:00 1994  Mike Stump  ([email protected])
        !          4448: 
        !          4449:        * cvt.c (build_type_conversion_1): Don't conditionalize call to
        !          4450:        pedwarn upon pedantic.
        !          4451: 
        !          4452: Wed Jan 26 17:20:46 1994  Mike Stump  ([email protected])
        !          4453: 
        !          4454:        * cvt.c (convert_to_reference): Add 8.4.3 checking so that one
        !          4455:        gets a warning if one tries to initialize a non-const & from a
        !          4456:        non-lvalue.
        !          4457:        * cvt.c (convert_to_reference): Use %P format for argument
        !          4458:        numbers in warnings.
        !          4459: 
        !          4460: Wed Jan 26 14:35:06 1994  Mike Stump  ([email protected])
        !          4461: 
        !          4462:        * init.c (build_delete): Follow style in call.c to construct the
        !          4463:        virtual call to the desctructor, as that code is right.  Fixes a
        !          4464:        problem of the compiler saying a pointer conversion is ambiguous.
        !          4465: 
        !          4466: Wed Jan 26 11:28:14 1994  Jason Merrill  ([email protected])
        !          4467: 
        !          4468:        * cp-tree.h (VTABLE_NAME_P): Change other occurrence of
        !          4469:        VTABLE_NAME_FORMAT to VTABLE_NAME.
        !          4470: 
        !          4471:        * *: s/visibility/access/g
        !          4472: 
        !          4473: Tue Jan 25 18:39:12 1994  Jason Merrill  ([email protected])
        !          4474: 
        !          4475:        * typeck.c (build_modify_expr): Don't smash references if INIT_EXPR.
        !          4476: 
        !          4477: Tue Jan 25 13:54:29 1994  Mike Stump  ([email protected])
        !          4478: 
        !          4479:        * init.c (build_delete): Back out Jan 17th & 18th pacthes, as
        !          4480:        they break libg++.
        !          4481: 
        !          4482: Tue Jan 25 13:11:45 1994  Jason Merrill  ([email protected])
        !          4483: 
        !          4484:        * decl.c (duplicate_decls): Fix pointer arithmetic.
        !          4485: 
        !          4486: Mon Jan 24 15:50:06 1994  Chip Salzenberg  ([email protected])
        !          4487: 
        !          4488:            [ cp-* changes propagated from c-* changes in 940114 snapshot ]
        !          4489:            * cp-parse.y (maybe_attribute): Allow multiple __attribute__
        !          4490:            clauses on a declaration.
        !          4491: 
        !          4492: Mon Jan 24 17:06:23 1994  Jason Merrill  ([email protected])
        !          4493: 
        !          4494:        * class.c (finish_struct): Do synthesize methods for anon
        !          4495:        structs, just not unions.
        !          4496: 
        !          4497: Mon Jan 24 13:50:13 1994  Kung Hsu  ([email protected])
        !          4498: 
        !          4499:        * decl.c (xref_tag): handle anonymous nested type.
        !          4500:        * decl.c (globalize_nested_type): add no globalize bit check.
        !          4501:        * spew.c (hack_more_ids) : templated nested decl not push top
        !          4502:        level.
        !          4503: 
        !          4504:        * parse.y : get rid of 'goto do_components'. It is much better
        !          4505:        for debugging.
        !          4506: 
        !          4507:        * decl.c (is_anon_name): get rid of the function and use the
        !          4508:        macro ANON_AGGRNAME_P.
        !          4509:        * pt.c : ditto.
        !          4510: 
        !          4511: Fri Jan 21 14:06:02 1994  Jason Merrill  ([email protected])
        !          4512: 
        !          4513:        * class.c (finish_struct): Don't synthesize any methods for
        !          4514:        anonymous structs/unions.
        !          4515: 
        !          4516:        * typeck.c (build_modify_expr): Don't treat pmf's as class objects.
        !          4517: 
        !          4518: Thu Jan 20 18:56:46 1994  Jason Merrill  ([email protected])
        !          4519: 
        !          4520:        * method.c (build_opfncall): Call build_indirect_ref on
        !          4521:        synthesized instance for operator delete.
        !          4522: 
        !          4523:        * pt.c (type_unification): Don't abort if called with a list of
        !          4524:        types in ARGS.
        !          4525: 
        !          4526:        * class.c (instantiate_type): Deal with function templates.
        !          4527: 
        !          4528: Thu Jan 20 16:55:35 1994  Jim Wilson  ([email protected])
        !          4529: 
        !          4530:        * Makefile.in (CC): Default to cc not gcc.
        !          4531: 
        !          4532: Thu Jan 20 13:47:54 1994  Jason Merrill  ([email protected])
        !          4533: 
        !          4534:        * typeck.c (build_modify_expr): Call constructor if appropriate.
        !          4535: 
        !          4536:        * decl.c (push_to_top_level): Clear out class-level bindings cache.
        !          4537: 
        !          4538: Wed Jan 19 13:51:22 1994  Jason Merrill  ([email protected])
        !          4539: 
        !          4540:        * call.c (resolve_scope_to_name): Work recursively (previously only
        !          4541:        looked down one level).
        !          4542: 
        !          4543:        * lex.c (do_pending_inlines): If we're still dealing with the last
        !          4544:        batch of inlines, don't start working on a new one.
        !          4545: 
        !          4546:        * Makefile.in (stamp-parse): Update conflict count.
        !          4547:        (TAGS): Fix.
        !          4548: 
        !          4549:        * parse.y (explicit_instantiation): New rule; implements
        !          4550:        'template A<int>' syntax (though not 'template foo(int)' yet).
        !          4551:        (structsp): Add explicit_instantiation.
        !          4552: 
        !          4553: Tue Jan 18 13:53:05 1994  Jason Merrill  ([email protected])
        !          4554: 
        !          4555:        * class.c (finish_struct, etc.): Simplify decision to synthesize
        !          4556:        a destructor.
        !          4557: 
        !          4558:        * call.c, class.c, cp-tree.h, decl.c, init.c,
        !          4559:        ptree.c, search.c, typeck.c, typeck2.c: Nuke
        !          4560:        TYPE_NEEDS_CONSTRUCTOR (change all calls to TYPE_NEEDS_CONSTRUCTING).
        !          4561:        * init.c (expand_aggr_init_1): Don't try non-constructor methods
        !          4562:        of initializing objects.
        !          4563:        (build_new): Don't try other methods if the constructor lookup fails.
        !          4564: 
        !          4565:        * class.c (finish_base_struct): Set cant_have_default_ctor and
        !          4566:        cant_synth_copy_ctor properly.
        !          4567:        (finish_struct): Ditto.
        !          4568: 
        !          4569: Mon Jan 17 13:58:18 1994  Jason Merrill  ([email protected])
        !          4570: 
        !          4571:        * typeck.c (build_modify_expr_1): #if 0 out again.
        !          4572:        (build_modify_expr): #if 0 out memberwise init code again.
        !          4573: 
        !          4574:        * lex.c (default_copy_constructor_body): Be const-correct.
        !          4575:        (default_assign_ref_body): Ditto.
        !          4576: 
        !          4577:        * init.c (perform_member_init): Use TYPE_HAS_CONSTRUCTOR to decide
        !          4578:        whether or not to use it, rather than TYPE_NEEDS_CONSTRUCTING.
        !          4579:        (expand_aggr_init): Disable silent conversion from initializer list
        !          4580:        to list of args for a constructor.
        !          4581: 
        !          4582:        * class.c (base_info): Lose needs_default_ctor.
        !          4583:        (finish_base_struct): Ditto.
        !          4584:        (finish_struct): Ditto.
        !          4585: 
        !          4586:        * decl.c (init_decl_processing): Don't turn off flag_default_inline
        !          4587:        just because flag_no_inline is on.
        !          4588:        (finish_decl): Use TYPE_HAS_CONSTRUCTOR to decide to use
        !          4589:        constructor.
        !          4590: 
        !          4591:        * class.c (finish_struct): Synthesize default ctor whenever
        !          4592:        allowed.
        !          4593: 
        !          4594:        * Makefile.in (TAGS): Don't try to run etags on cp-parse.y.
        !          4595: 
        !          4596: Sat Jan 15 18:34:33 1994  Mike Stump  ([email protected])
        !          4597: 
        !          4598:        * Makefile.in, configure: Handle the C++ front-end in a
        !          4599:        subdirectory.
        !          4600:        * cp-*: Move C++ front-end to cp/*.
        !          4601: 
        !          4602: Fri Jan 14 14:09:37 1994  Jason Merrill  ([email protected])
        !          4603: 
        !          4604:        * cp-typeck.c (build_function_call_real): Modify to match other
        !          4605:        instances of taking the address of the function.
        !          4606: 
        !          4607:        * cp-class.c (finish_struct): Set TYPE_HAS_REAL_CONSTRUCTOR to 1 if
        !          4608:        there are non-synthesized constructors.
        !          4609:        Only set TYPE_NEEDS_CONSTRUCTOR if TYPE_HAS_REAL_CONSTRUCTOR.
        !          4610:        Always generate copy constructor if possible.
        !          4611: 
        !          4612:        * cp-tree.h (lang_type): Add has_real_constructor bitfield.
        !          4613:        (TYPE_HAS_REAL_CONSTRUCTOR): Define.
        !          4614: 
        !          4615:        * cp-lex.c (default_copy_constructor_body): Use init syntax
        !          4616:        for all bases.
        !          4617: 
        !          4618:        * cp-type2.c (store_init_value): Only give error for initializer list
        !          4619:        if TYPE_HAS_REAL_CONSTRUCTOR.
        !          4620: 
        !          4621: Thu Jan 13 15:38:29 1994  Jason Merrill  ([email protected])
        !          4622: 
        !          4623:        * cp-tree.h (DECL_SYNTHESIZED): Add defn.
        !          4624:        (lang_decl): Add synthesized bitfield to decl_flags.
        !          4625: 
        !          4626:        * cp-lex.c (cons_up_default_function): Use DECL_SYNTHESIZED to mark
        !          4627:        artificial methods, rather than a line # of 0.
        !          4628: 
        !          4629: Fri Jan 14 18:25:29 1994  Kung Hsu  ([email protected])
        !          4630: 
        !          4631:        * cp-decl (xref_tag): fix a bug in conflict type.
        !          4632:        * cp-parse.y : add SCOPED_NAME for uninstantiated template nested
        !          4633:        type reference.
        !          4634:        * cp-spew.c (yylex) : generated SCOPED_NAME token.
        !          4635:        * cp-lex.c (yyprint): handle SCOPED_NAME.
        !          4636: 
        !          4637: Fri Jan 14 17:00:29 1994  Mike Stump  ([email protected])
        !          4638: 
        !          4639:        * cp-decl.c (pushdecl): Revert patch from Jan 11 19:33:03, as it is
        !          4640:        not right.
        !          4641: 
        !          4642: Thu Jan 13 14:00:35 1994  Kung Hsu  ([email protected])
        !          4643: 
        !          4644:        * cp-decl2.c (grok_x_components): fix a bug that enum type does not
        !          4645:        have type_flags.
        !          4646: 
        !          4647: Thu Jan 13 11:39:34 1994  Mike Stump  ([email protected])
        !          4648: 
        !          4649:        Ensure that all vtable pointers are initialized with all the right
        !          4650:        values.
        !          4651: 
        !          4652:        * cp-class.c (is_normal): Changed to reflect new meaning of
        !          4653:        CLASSTYPE_VFIELD_PARENT.
        !          4654:        * cp-class.c (maybe_fixup_vptrs): Use of
        !          4655:        CLASSTYPE_NEEDS_VIRTUAL_REINIT here is misguided.  Use
        !          4656:        BINFO_MODIFIED instead.
        !          4657:        * cp-class.c (finish_struct): Changed to reflect new meaning of
        !          4658:        CLASSTYPE_VFIELD_PARENT.
        !          4659:        * cp-decl.c (get_binfo_from_vfield): Removed, unneeded now.
        !          4660:        * cp-decl.c (finish_function): Use init_vtbl_ptrs, instead of open
        !          4661:        coding it here.
        !          4662:        * cp-init.c (init_vfields): Changed name to init_vtbl_ptrs, and
        !          4663:        re-implement.
        !          4664:        * cp-init.c (emit_base_init): Use new name init_vtbl_ptrs.
        !          4665:        * cp-tree.h (vfield_parent): Changed to integer.
        !          4666:        * cp-tree.h (CLASSTYPE_VFIELD_PARENT): Changed docs to reflect new
        !          4667:        meaning.
        !          4668:        * cp-tree.h (init_vtbl_ptrs): Added init_vtbl_ptrs.
        !          4669: 
        !          4670: Wed Jan 12 18:24:16 1994  Kung Hsu  ([email protected])
        !          4671: 
        !          4672:        * cp-decl.c (xref_tag): re-implement globalize nested type.
        !          4673:        * cp-decl2.c (grok_x_components): ditto.
        !          4674:        * cp-parse.y: ditto.
        !          4675:        * cp-tree.h (lang_type): add no_globalize bit in type_flags.
        !          4676: 
        !          4677: Wed Jan 12 14:08:09 1994  Jason Merrill  ([email protected])
        !          4678: 
        !          4679:        * cp-decl.c (grokdeclarator): Don't set TREE_PUBLIC on friend
        !          4680:        decls with a definition attached.
        !          4681: 
        !          4682:        * cp-typeck.c (build_modify_expr): Undo previous change in the case
        !          4683:        of INIT_EXPRs.
        !          4684: 
        !          4685: Tue Jan 11 19:33:03 1994  Jason Merrill  ([email protected])
        !          4686: 
        !          4687:        * cp-typeck.c (build_modify_expr): Replace code for generating
        !          4688:        assignment semantics for classes with an error.
        !          4689:        (build_modify_expr_1): #if 0 out.
        !          4690: 
        !          4691:        * cp-decl.c (pushdecl): Patch bogus design of pushdecl
        !          4692:        behavior for overloaded functions (it doesn't push anything).
        !          4693: 
        !          4694:        * cp-class.c (finish_struct): When generating default op=,
        !          4695:        set TYPE_HAS_ASSIGNMENT.
        !          4696: 
        !          4697: Mon Jan 10 18:48:06 1994  Mike Stump  ([email protected])
        !          4698: 
        !          4699:        * cp-cvt.c (convert): Make {double, clashing enum} -> enum
        !          4700:        invalid.
        !          4701:        * cp-typeck.c (convert_for_assignment): Simplify.
        !          4702:        * cp-decl2.c (warn_enum_clash): Removed.
        !          4703:        * invoke.texi (-Wenum-clash): Removed.
        !          4704:        * toplev.c (-Wenum-clash): Removed.
        !          4705: 
        !          4706: Mon Jan 10 17:48:37 1994  Kung Hsu  ([email protected])
        !          4707: 
        !          4708:        * cp-decl.c (finish_decl): fix incorrect popclass call.
        !          4709: 
        !          4710:        * cp-decl.c (is_anon_name): new function, check whether the name
        !          4711:        is anonymous name generated by compiler.
        !          4712:        * cp-decl.c (grokdeclarator): allow nested SCOPE_REF
        !          4713:        * cp-spew.c (hack_more_ids): handle nested type in template.
        !          4714:        * cp-parse.y : handle nested type reference in uninstantiated
        !          4715:        template.
        !          4716:        * cp-call.c (build_method_call): handle uninstantiated template
        !          4717:        case.
        !          4718:        * cp-pt.c (search_nested_type_in_tmpl): new function, search nested 
        !          4719:        type in template.
        !          4720:        * cp-pt.c (lookup_nested_type_by_name): new function, lookup nested 
        !          4721:        type by name.
        !          4722:        * cp-pt.c (tsubst): handle nested type search by name.
        !          4723: 
        !          4724: Mon Jan 10 14:32:18 1994  Jason Merrill  ([email protected])
        !          4725: 
        !          4726:        * cp-init.c (build_member_call): Propagate qualifiers to new type.
        !          4727: 
        !          4728:        * cp-call.c (build_method_call): Count functions the new way.
        !          4729: 
        !          4730: Fri Jan  7 19:03:26 1994  Jason Merrill  ([email protected])
        !          4731: 
        !          4732:        * cp-decl.c (pushtag): Set DECL_ASSEMBLER_NAME for nested classes,
        !          4733:        too.
        !          4734: 
        !          4735: Tue Jan  4 16:45:51 1994  Kung Hsu  ([email protected])
        !          4736: 
        !          4737:        * cp-parse.y: change to handle whether to globalize nested class.
        !          4738:        * cp-decl.c(xref_tag, maybe_globalize_type): Ditto.
        !          4739: 
        !          4740: Mon Jan  3 22:22:32 1994  Gerald Baumgartner  ([email protected])
        !          4741: 
        !          4742:        * Makefile.in cp-call.c cp-class.c cp-cvt.c cp-decl.c cp-decl2.c
        !          4743:        cp-error.c cp-init.c cp-lex.c cp-lex.h cp-method.c cp-parse.y
        !          4744:        cp-spew.c cp-tree.c cp-tree.h cp-type2.c cp-typeck.c cp-xref.c
        !          4745:        gplus.gperf toplev.c: Incorporated C++ signature extension.
        !          4746:        * cp-sig.c: New file, contains most of signature processing.
        !          4747:        * cp-hash.h: Regenerated from gplus.gperf.
        !          4748: 
        !          4749:        * gcc.1 g++.1: Added explanation for  the `-fhandle-signatures'
        !          4750:        and `-fno-handle-signatures' command line flags.
        !          4751: 
        !          4752:        * gcc.texi: Changed the last-modification date.
        !          4753:        * invoke.texi: Added `-fhandle-signatures' in the list of
        !          4754:        C++ language options.  Added explanation for this option.
        !          4755: 
        !          4756: Tue Dec 28 21:10:03 1993  Mike Stump  ([email protected])
        !          4757: 
        !          4758:        * cp-init.c (expand_vec_init): Remove comptypes test, as it is too
        !          4759:        harsh here.
        !          4760: 
        !          4761: Tue Dec 28 13:42:22 1993  Mike Stump  ([email protected])
        !          4762: 
        !          4763:        * cp-pt.c (do_pending_expansions): Decide to expand a template
        !          4764:        member function, based upon it's class type, not the class type of
        !          4765:        the first place it was declared.
        !          4766: 
        !          4767: Tue Dec 28 05:42:31 1993  Mike Stump  ([email protected])
        !          4768: 
        !          4769:        * cp-class.c (is_normal): New routine, use to determine when the
        !          4770:        given binfo is the normal one.  (The one that should have the simple
        !          4771:        vtable name.)
        !          4772:        * cp-class.c (modify_other_vtable_entries): Use DECL_ASSEMBLER_NAME
        !          4773:        to check if two fndecls are `the same'.  Sometimes this routine can
        !          4774:        modify the main vtable, and normal should be 1, in that case, so use
        !          4775:        is_normal() to determine if this is the main vtable for the class.
        !          4776:        Don't recurse down virtual bases, as they are shared, and we take
        !          4777:        care of them elsewhere.
        !          4778:        * cp-class.c (modify_vtable_entries): If we have already updated the
        !          4779:        vtable with the new virtual, don't do it again.
        !          4780:        * cp-class.c (finish_struct): Set CLASSTYPE_VFIELD_PARENT as
        !          4781:        appropriate.  Do virtual function overriding in virtual bases, after
        !          4782:        normal overriding, so that the base function list in DECL_VINDEX is
        !          4783:        not overridden, before we have a chance to run through the list.
        !          4784:        Use DECL_ASSEMBLER_NAME to check if two fndecls are `the same'.
        !          4785:        Make sure we pass the right address into modify_vtable_entries.
        !          4786:        * cp-tree.h (CLASSTYPE_VFIELD_PARENT): New field to indicate which
        !          4787:        binfo is the one that has the vtable that we based our vtable on.
        !          4788: 
        !          4789: Fri Dec 24 09:40:52 1993  Michael Tiemann  ([email protected])
        !          4790: 
        !          4791:        * cp-typeck.c (c_expand_start_case): Use default_conversion to
        !          4792:        convert expression from reference type if necessary.
        !          4793: 
        !          4794: Wed Dec 22 17:58:43 1993  Jason Merrill  ([email protected])
        !          4795: 
        !          4796:        * cp-typeck.c (build_unary_op): Make sure that it's a TREE_LIST before
        !          4797:        trying to read its TREE_VALUE.
        !          4798: 
        !          4799:        * cp-class.c (finish_struct_methods): Clear DECL_IN_AGGR_P here.
        !          4800:        (finish_struct): Instead of here.
        !          4801: 
        !          4802: Tue Dec 21 14:34:25 1993  Brendan Kehoe  ([email protected])
        !          4803: 
        !          4804:        * cp-tree.c (list_hash_lookup_or_cons): Make sure the type doesn't
        !          4805:        have TYPE_PTRMEMFUNC_P set before we try to build its
        !          4806:        CLASSTYPE_ID_AS_LIST.
        !          4807:        (get_decl_list): Likewise, when trying to read it.
        !          4808: 
        !          4809:        * cp-tree.h (VTABLE_NAME): No def with NO_{DOLLAR,DOT} defined.
        !          4810:        (VTABLE_NAME_P): Use it instead of VTABLE_NAME_FORMAT.
        !          4811: 
        !          4812: Mon Dec 20 13:35:03 1993  Brendan Kehoe  ([email protected])
        !          4813: 
        !          4814:        * cp-typeck.c (rationalize_conditional_expr): New function.
        !          4815:        (unary_complex_lvalue): Use it.
        !          4816:        (build_modify_expr): Use it, since trying to do an ADDR_EXPR of it
        !          4817:        with build_unary_op won't cut it.  Don't wrap the COND_EXPR with a
        !          4818:        SAVE_EXPR either.
        !          4819: 
        !          4820:        * cp-decl2.c (explicit_warn_return_type): Deleted variable.
        !          4821:        (lang_decode_option): Set warn_return_type, not explicit_*, for
        !          4822:        -Wreturn-type and -Wall.  This is what rest_of_compilation uses to
        !          4823:        decide if it should go into jump_optimize or not.
        !          4824:        * cp-tree.h (explicit_warn_return_type): Deleted.
        !          4825:        * cp-decl.c (grokdeclarator): Use warn_return_type, not explicit_*.
        !          4826:        (finish_function): Also complain about no return in a non-void fn if
        !          4827:        we're being pedantic (don't rely on use of -Wreturn-type).
        !          4828: 
        !          4829: Fri Dec 17 15:45:46 1993  Brendan Kehoe  ([email protected])
        !          4830: 
        !          4831:        * cp-decl.c (grokdeclarator): Forbid declaration of a function as
        !          4832:        static if it's being done inside another function.
        !          4833: 
        !          4834:        * cp-search.c (compute_visibility): Check for friendship both ways.
        !          4835: 
        !          4836: Fri Dec 17 14:28:25 1993  Jason Merrill  ([email protected])
        !          4837: 
        !          4838:        * cp-cvt.c (build_default_binary_type_conversion): Make error
        !          4839:        messages more helpful.
        !          4840: 
        !          4841:        * cp-error.c (op_as_string): New function, returns "operator =="
        !          4842:        given EQ_EXPR or suchlike.
        !          4843: 
        !          4844: Fri Dec 17 13:28:11 1993  Brendan Kehoe  ([email protected])
        !          4845: 
        !          4846:        * cp-call.c (print_n_candidates): New function.
        !          4847:        (build_overload_call_real): Use it when we complain about a call
        !          4848:        being ambiguous.
        !          4849: 
        !          4850: Fri Dec 17 12:41:17 1993  Jason Merrill  ([email protected])
        !          4851: 
        !          4852:        * cp-call.c (build_method_call): Fix checking for static call
        !          4853:        context.
        !          4854: 
        !          4855:        * cp-method.c (build_opfncall): Call build_indirect_ref on argument
        !          4856:        to operator new.
        !          4857: 
        !          4858:        * cp-init.c (build_new): Don't mess with rval when building
        !          4859:        indirect ref.
        !          4860: 
        !          4861: Thu Dec 16 16:48:05 1993  Kung Hsu  ([email protected])
        !          4862: 
        !          4863:        * cp-lex.c (default_assign_ref_body): add check when TYPE_NESTED_
        !          4864:        NAME(type) may not be exist. It's not a problem for old compiler.
        !          4865: 
        !          4866: Thu Dec 16 14:46:06 1993  Brendan Kehoe  ([email protected])
        !          4867: 
        !          4868:        * cp-tree.h (CLASSTYPE_ALTERS_VISIBILITIES_P): Delete macro, it's
        !          4869:        never used for anything.
        !          4870:        (struct lang_type, member type_flags): Delete field
        !          4871:        `alters_visibility', and up `dummy' by 1.
        !          4872:        * cp-class.c (finish_base_struct): Delete code that copies the
        !          4873:        setting of CLASSTYPE_ALTERS_VISIBILITIES_P.
        !          4874:        (finish_struct): Delete code that sets it.
        !          4875: 
        !          4876: Thu Dec 16 14:44:39 1993  Jason Merrill  ([email protected])
        !          4877: 
        !          4878:        * cp-decl.c, cp-init.c, cp-typeck.c: Fix arguments to
        !          4879:        build_method_call that I messed up before.
        !          4880: 
        !          4881:        * cp-search.c (get_base_distance): If protect > 1, allow immediate
        !          4882:        private base.
        !          4883: 
        !          4884:        * cp-class.c (finish_base_struct): Set cant_synth_* correctly.
        !          4885:        (finish_struct): Ditto.  Well, nigh-correctly; it won't deal
        !          4886:        properly with the case where a class contains an object of an
        !          4887:        ambiguous base class which has a protected op=.  Should be fixed
        !          4888:        when the access control code gets overhauled.
        !          4889:        (finish_struct_methods): Set TYPE_HAS_NONPUBLIC_* correctly.
        !          4890: 
        !          4891: Thu Dec 16 12:17:06 1993  Brendan Kehoe  ([email protected])
        !          4892: 
        !          4893:        * cp-lex.c (real_yylex): Turn the code back on that deals with
        !          4894:        __FUNCTION__ and __PRETTY_FUNCTION__.  Don't use lookup_name, to
        !          4895:        avoid the ambiguity problems that led to it being turned off in the
        !          4896:        first place.
        !          4897: 
        !          4898:        * cp-method.c (hack_identifier): Also check for a TYPE_PTRMEMFUNC_P
        !          4899:        to see if something is a method.
        !          4900: 
        !          4901: Wed Dec 15 18:35:58 1993  Mike Stump  ([email protected])
        !          4902: 
        !          4903:        * cp-typeck.c (build_modify_expr): Avoid error messages on small
        !          4904:        enum bit fields.
        !          4905:        * cp-typeck.c (convert_for_assignment): Add missing argument to
        !          4906:        cp_warning and cp_pedwarn calls.
        !          4907: 
        !          4908: Wed Dec 15 18:25:32 1993  Jason Merrill  ([email protected])
        !          4909: 
        !          4910:        * cp-parse.y (member_init): ANSI C++ doesn't forbid old-style base
        !          4911:        initializers; it's just anachronistic.
        !          4912: 
        !          4913:        * cp-decl.c (finish_decl): Don't require external-linkage arrays
        !          4914:        to have a complete type at declaration time when pedantic.
        !          4915: 
        !          4916: Tue Dec 14 11:37:23 1993  Jason Merrill  ([email protected])
        !          4917: 
        !          4918:        * cp-decl.c (pushdecl): Don't set DECL_CONTEXT if it's already set.
        !          4919: 
        !          4920:        * cp-call.c (build_method_call): Don't dereference pointer given
        !          4921:        as instance.
        !          4922: 
        !          4923:        * cp-decl.c (finish_function): Don't pass pointer to
        !          4924:        build_method_call.
        !          4925:        (finish_function): Ditto.
        !          4926: 
        !          4927:        * cp-typeck.c (build_x_function_call): Ditto.
        !          4928: 
        !          4929:        * cp-method.c (build_component_type_expr): Ditto.
        !          4930: 
        !          4931:        * cp-init.c (build_member_call): Ditto.
        !          4932:        (build_new): Ditto.
        !          4933: 
        !          4934: Mon Dec 13 18:04:33 1993  Kung Hsu  ([email protected])
        !          4935: 
        !          4936:        * cp-decl.c (xref_tag): fix regression created by changes made 
        !          4937:        in Dec. 7 1993.
        !          4938:        * cp-decl.c (xref_defn_tag): fix parallel nested class problem.
        !          4939: 
        !          4940: Fri Dec 10 12:40:25 1993  Brendan Kehoe  ([email protected])
        !          4941: 
        !          4942:        * cp-call.c (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print
        !          4943:        out the final evaluation of the function, so we can see if ELLIPSIS,
        !          4944:        USER, and EVIL were set at the end.
        !          4945: 
        !          4946:        * cp-call.c (convert_harshness_ansi): When the parm isn't an lvalue,
        !          4947:        only go for setting TRIVIAL_CODE if we are dealing with types that
        !          4948:        are compatible.
        !          4949: 
        !          4950: Thu Dec  9 18:27:22 1993  Mike Stump  ([email protected])
        !          4951: 
        !          4952:        * cp-decl.c (flag_huge_objects): New flag to allow large objects.
        !          4953:        * toplev.c (lang_options): Ditto.
        !          4954:        * cp-decl2.c (flag_huge_objects, lang_f_options): Ditto.
        !          4955:        * cp-decl.c (delta_type_node): New type for delta entries.
        !          4956:        * cp-tree.h (delta_type_node): Ditto.
        !          4957:        * cp-decl.c (init_decl_processing): Setup delta_type_node.
        !          4958:        * cp-decl.c (init_decl_processing, build_ptrmemfunc_type): Use
        !          4959:        delta_type_node instead of short_integer_type_node. 
        !          4960:        * cp-class.c (build_vtable_entry): Ditto.
        !          4961: 
        !          4962: Thu Dec  9 16:19:05 1993  Brendan Kehoe  ([email protected])
        !          4963: 
        !          4964:        * cp-tree.h (OPERATOR_TYPENAME_P): Define outside of
        !          4965:        NO_{DOLLAR,DOT} macro checks, so it always gets defined.
        !          4966:        (VTABLE_NAME_P): Define for NO_DOT && NO_DOLLAR_IN_LABEL.
        !          4967: 
        !          4968: Wed Dec  8 17:38:06 1993  Mike Stump  ([email protected])
        !          4969: 
        !          4970:        * cp-decl.c (finish_decl): Make sure things that can go into
        !          4971:        "common", do go into common, if -fcommon is given.
        !          4972: 
        !          4973: Wed Dec  8 13:01:54 1993  Brendan Kehoe  ([email protected])
        !          4974: 
        !          4975:        * cp-call.c (print_harshness) [DEBUG_MATCHING]: New function.
        !          4976:        (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print out
        !          4977:        argument matching diagnostics to make instantly clear what the
        !          4978:        compiler is doing.
        !          4979: 
        !          4980:        * cp-call.c (convert_harshness_ansi): If the parm isn't an lvalue,
        !          4981:        then check to see if the penalty was increased due to
        !          4982:        signed/unsigned mismatch, and use a TRIVIAL_CODE if it wasn't.
        !          4983: 
        !          4984: Tue Dec  7 18:29:14 1993  Kung Hsu  ([email protected])
        !          4985: 
        !          4986:        * cp-decl.c (xref_tag, pushtag): Fix nested class search/resolution
        !          4987:        problem.
        !          4988: 
        !          4989: Tue Dec  7 16:09:34 1993  Jason Merrill  ([email protected])
        !          4990: 
        !          4991:        * cp-class.c (finish_struct): Before synthesizing methods, if no
        !          4992:        methods have yet been declared then set nonprivate_method.  Don't
        !          4993:        set non_private method after synthesizing a method.
        !          4994: 
        !          4995:        * cp-lex.c (extract_interface_info): If flag_alt_external_templates
        !          4996:        is set, tie emitted code to the location of template instantiation,
        !          4997:        rather than definition.
        !          4998: 
        !          4999:        * cp-tree.h: Declare flag_alt_external_templates.
        !          5000: 
        !          5001:        * cp-decl2.c (lang_decode_option): Support -falt-external-templates.
        !          5002: 
        !          5003:        * toplev.c (lang_options): Ditto.
        !          5004: 
        !          5005:        Mon Oct  4 12:50:02 1993  Chip Salzenberg  ([email protected])
        !          5006: 
        !          5007:        [changes propagated from 930810 snapshot]
        !          5008:        * cp-decl.c (init_decl_processing): Make long long available for use
        !          5009:        as SIZE_TYPE and PTRDIFF_TYPE.
        !          5010:        (finish_decl): Allow file-scope static incomplete array.
        !          5011:        (grokdeclarator): Don't pass on const and volatile fron function
        !          5012:        value type to function type.
        !          5013:        Warn here for volatile fn returning non-void type.
        !          5014:        * cp-parse.y (attrib): Accept attributes `volatile' with alias
        !          5015:        `noreturn', and `const'.
        !          5016:        * cp-typeck.c (default_conversion): Don't lose const and volatile.
        !          5017:        (build_binary_op_nodefault): Generate pedantic warning for comparison
        !          5018:        of complete pointer type with incomplete pointer type.
        !          5019:        (build_c_cast): Be careful that null pointer constant be INTEGER_CST.
        !          5020: 
        !          5021: Tue Dec  7 10:46:48 1993  Jason Merrill  ([email protected])
        !          5022: 
        !          5023:        * cp-init.c (expand_vec_init): When creating a temporary for copying
        !          5024:        arrays, use the type of the source, not the target.
        !          5025: 
        !          5026:        * cp-cvt.c (convert): Pass an argument for errtype to
        !          5027:        convert_to_reference.
        !          5028: 
        !          5029:        * cp-error.c (dump_expr, COMPONENT_REF & CALL_EXPR): Deal with
        !          5030:        methods, -> and `this'.
        !          5031: 
        !          5032: Mon Dec  6 17:12:33 1993  Jason Merrill  ([email protected])
        !          5033: 
        !          5034:        * cp-error.c (parm_as_string): New function; returns `this' or arg
        !          5035:        number.  Corresponds to %P.
        !          5036:        (dump_expr): Deal with method calls.
        !          5037: 
        !          5038:        * cp-cvt.c (convert_to_reference): Stop using warn_for_assignment.
        !          5039:        * cp-typeck.c (convert_for_assignment): Ditto.
        !          5040:        (warn_for_assignment): Lose.
        !          5041: 
        !          5042: Mon Dec  6 11:33:35 1993  Brendan Kehoe  ([email protected])
        !          5043: 
        !          5044:        * cp-call.c (ideal_candidate_ansi): Delete code that was never
        !          5045:        doing anything useful.  Instead, sort once, and DO NOT wipe
        !          5046:        out any codes with EVIL_CODE, since that's what we use as a
        !          5047:        marker for the end of the list of candidates.
        !          5048: 
        !          5049:        * cp-cvt.c (convert_to_aggr): Make sure to always set H_LEN.
        !          5050: 
        !          5051: Mon Dec  6 12:49:17 1993  Jason Merrill  ([email protected])
        !          5052: 
        !          5053:        * cp-init.c (get_aggr_from_typedef): New function, like
        !          5054:        is_aggr_typedef but returns the _TYPE.
        !          5055: 
        !          5056:        * cp-call.c, cp-init.c, cp-method.c: Eradicate err_name.
        !          5057: 
        !          5058: Sun Dec  5 18:12:48 1993  Brendan Kehoe  ([email protected])
        !          5059: 
        !          5060:        * cp-lex.c (readescape): Pedwarn when a hex escape is out of range.
        !          5061: 
        !          5062: Thu Nov 25 23:50:19 1993  Chip Salzenberg  ([email protected])
        !          5063: 
        !          5064:        Delay language context change until beginning of next decl.
        !          5065: 
        !          5066:        * cp-lex.h (c_header_level): Removed.
        !          5067:        (pending_lang_change): Declared.
        !          5068:        * cp-lex.c (c_header_level): Renamed from in_c_header, made static.
        !          5069:        (pending_lang_change): Defined.
        !          5070:        (check_newline): Rework code that recognizes line number and
        !          5071:        filename changes.  Instead of pushing and popping lang context,
        !          5072:        increment and decrement pending_lang_change.
        !          5073:        (do_pending_lang_change):  Push and pop lang context according
        !          5074:        to value of pending_lang_change.
        !          5075:        * cp-parse.y (extdefs): Use lang_extdef instead of extdef.
        !          5076:        (extdef): Same as extdef, but call do_pending_lang_change() first.
        !          5077: 
        !          5078: Mon Nov 15 15:39:15 1993  Chip Salzenberg  ([email protected])
        !          5079: 
        !          5080:        * cp-typeck.c (build_binary_op_nodefault): Warn for ordered
        !          5081:        compare of ptr with 0 only if pedantic in both cases.
        !          5082: 
        !          5083: Thu Nov 25 13:31:37 1993  Chip Salzenberg  ([email protected])
        !          5084: 
        !          5085:        Reinstate the below patch, which got lost in the Cygnus merge:
        !          5086:        Tue Nov 23 13:59:24 1993  Hallvard B Furuseth  ([email protected])
        !          5087:        * cp-parse.y (maybe_type_qual): Don't fail to set $$.
        !          5088: 
        !          5089: Wed Nov 17 19:03:30 1993  Chip Salzenberg  ([email protected])
        !          5090: 
        !          5091:        * cp-parse.y (attrib): Allow "ident(ident)" like the C front end.
        !          5092: 
        !          5093: Fri Oct 22 20:43:37 1993  Paul Eggert  ([email protected])
        !          5094: 
        !          5095:        * cp-lex.c (real_yylex): Diagnose floating point constants
        !          5096:        that are too large.
        !          5097: 
        !          5098: Wed Nov 17 19:10:37 1993  Chip Salzenberg  ([email protected])
        !          5099: 
        !          5100:        * cp-type2.c (build_functional_cast): ARM page 16: When a class
        !          5101:        and an object, function or enumerator are declared in the same
        !          5102:        scope with the same name, the class name is hidden.
        !          5103: 
        !          5104: Wed Nov 17 19:07:18 1993  Chip Salzenberg  ([email protected])
        !          5105: 
        !          5106:        * cp-call.c (convert_harshness_ansi): Distinguish float, double,
        !          5107:        and long double from each other when overloading.
        !          5108:        (compute_conversion_costs_{ansi,old}, build_method_call,
        !          5109:        build_overlay_call_real, convert_to_aggr): Always set and
        !          5110:        always use H_LEN member of candidate structure.
        !          5111: 
        !          5112: Mon Oct 11 23:10:53 1993  Chip Salzenberg  ([email protected])
        !          5113: 
        !          5114:        * cp-decl.c (duplicate_decls): Note redeclarations of library
        !          5115:        functions, and generate distinct warnings for them.
        !          5116: 
        !          5117: Mon Oct  4 12:26:49 1993  Chip Salzenberg  ([email protected])
        !          5118: 
        !          5119:        Support format warnings in G++.
        !          5120: 
        !          5121:        * cp-tree.h: Protect against multiple inclusion.
        !          5122:        Declare all public functions in c-common.c (copy from c-tree.h).
        !          5123:        (STDIO_PROTO): Define.
        !          5124:        (warn_format): Declare.
        !          5125:        (record_format_info): Remove declaration.
        !          5126:        * cp-decl.c (init_decl_processing): Call init_function_format_info.
        !          5127:        * cp-decl2.c (lang_decode_option): Make "-Wall" include warn_format.
        !          5128:        * cp-typeck.c (build_function_call_real): Call check_function_format.
        !          5129:        (record_format_info): Remove -- obsolete stub.
        !          5130: 
        !          5131: Sat Jul 24 12:04:29 1993  Chip Salzenberg  ([email protected])
        !          5132: 
        !          5133:        * cp-decl.c (duplicate_decls): Don't warn for non-extern var decl
        !          5134:        following an extern one (for -Wredundant-decls).
        !          5135:        * cp-parse.y (primary): In statement expression case, if compstmt
        !          5136:        returns something other than a BLOCK, return it unchanged.
        !          5137: 
        !          5138: Thu Dec  2 20:44:58 1993  Chip Salzenberg  ([email protected])
        !          5139: 
        !          5140:        * cp-decl.c (warn_extern_redeclared_static): New function made
        !          5141:        from code extracted from pushdecl.
        !          5142:        (duplicate_decls, pushdecl): Call new function.
        !          5143:        (lookup_name_current_level): Allow for IDENTIFIER_GLOBAL_VALUE
        !          5144:        to be a TREE_LIST when function is declared in 'extern "C" {}'.
        !          5145: 
        !          5146: Fri Dec  3 16:01:10 1993  Jason Merrill  ([email protected])
        !          5147: 
        !          5148:        * cp-class.c (duplicate_tag_error): Use cp_error.
        !          5149:        (finish_base_struct): Check for ambiguity with direct base, and don't
        !          5150:        generate op= or copy ctor if it exists.
        !          5151: 
        !          5152: Fri Dec  3 15:32:34 1993  Kung Hsu  ([email protected])
        !          5153: 
        !          5154:        * cp-init.c (expand_member_init): when initializer name is null,
        !          5155:        don't try to build it now because emit_base_init will handle it.
        !          5156: 
        !          5157: Fri Dec  3 12:28:59 1993  Jason Merrill  ([email protected])
        !          5158: 
        !          5159:        * cp-lex.c (init_lex): Initialize input_filename to "<internal>" for
        !          5160:        code such as ExceptionHandler::operator=.
        !          5161: 
        !          5162: Fri Dec  3 10:32:08 1993  Jason Merrill  ([email protected])
        !          5163: 
        !          5164:        * cp-decl.c (grokdeclarator): Don't try to print out dname when
        !          5165:        complaining about arrays of references if decl_context==TYPENAME,
        !          5166:        since it will be null.
        !          5167: 
        !          5168:        * cp-decl2.c: Default to flag_ansi_overloading.
        !          5169: 
        !          5170: Thu Dec  2 18:05:56 1993  Kung Hsu  ([email protected])
        !          5171: 
        !          5172:        * cp-call.c (build_method_call): use binfo from instance if it's
        !          5173:        different from binfo (basetype_path) passed from above.
        !          5174: 
        !          5175: Thu Dec  2 12:48:36 1993  Brendan Kehoe  ([email protected])
        !          5176: 
        !          5177: Wed Nov 17 19:14:29 1993  Chip Salzenberg  ([email protected])
        !          5178: 
        !          5179:        cp-error.c (dump_expr): Use unsigned chars to output a
        !          5180:        TREE_REAL_CST in hex.
        !          5181: 
        !          5182: Thu Dec  2 11:05:48 1993  Jason Merrill  ([email protected])
        !          5183: 
        !          5184:        * cp-class.c (finish_struct): Fix typo in setting
        !          5185:        cant_synth_asn_ref.
        !          5186: 
        !          5187:        * cp-tree.h (TYPE_NESTED_NAME): New macro, does
        !          5188:        DECL_NESTED_TYPENAME (TYPE_NAME (NODE)).
        !          5189: 
        !          5190:        * cp-lex.c (default_copy_constructor_body): Change
        !          5191:        DECL_NAME (TYPE_NAME (btype)) to TYPE_NESTED_NAME (btype).
        !          5192:        (default_assign_ref_body): Ditto.
        !          5193:        (default_copy_constructor_body): Call operator= explicitly for
        !          5194:        base classes that have no constructor.
        !          5195: 
        !          5196: Thu Dec  2 10:47:15 1993  Michael Tiemann  ([email protected])
        !          5197: 
        !          5198:        * cp-call.c (build_method_call): If the instance variable is
        !          5199:        converted to error_mark_node when we're trying to convert it to the
        !          5200:        base type of a method we're looking up, return error_mark_node.
        !          5201: 
        !          5202: Thu Dec  2 10:41:16 1993  Torbjorn Granlund  ([email protected])
        !          5203: 
        !          5204:        * cp-typeck.c (build_binary_op_nodefault): In *_DIV_EXPR *_MOD_EXPR
        !          5205:        cases, tests for unsigned operands by peeking inside a NOP_EXPR.
        !          5206: 
        !          5207: Wed Dec  1 13:33:34 1993  Brendan Kehoe  ([email protected])
        !          5208: 
        !          5209:        * cp-call.c (compute_conversion_costs_ansi): Use the size of struct
        !          5210:        harshness_code, not the size of short, for clearing out the
        !          5211:        ansi_harshness.
        !          5212: 
        !          5213:        * cp-call.c (print_candidates): New function.
        !          5214:        (build_method_call): When we had some candidates, but didn't get a
        !          5215:        usable match, don't report that we got an error with the first
        !          5216:        candidate.  Instead, say there were no matches, and list the
        !          5217:        candidates with print_candidates.  In the second pass, make sure we
        !          5218:        clear out ever_seen, so we can accurately count the number of
        !          5219:        functions that qualified.
        !          5220: 
        !          5221: Wed Dec  1 09:53:59 1993  Torbjorn Granlund  ([email protected])
        !          5222: 
        !          5223:        * cp-typeck.c (build_binary_op_nodefault): Shorten for *_MOD_EXPR
        !          5224:        only if op1 is known to be != -1.
        !          5225:        (build_binary_op_nodefault): Handle *_DIV_EXPR likewise.
        !          5226: 
        !          5227: Tue Nov 30 14:07:26 1993  Brendan Kehoe  ([email protected])
        !          5228: 
        !          5229:        * cp-method.c (hack_identifier): If the field itself is private, and
        !          5230:        not from a private base class, say so.
        !          5231: 
        !          5232: Mon Nov 29 03:00:56 1993  Jason Merrill  ([email protected])
        !          5233: 
        !          5234:        * cp-decl.c (grokdeclarator): Always warn on initialization of
        !          5235:        const member.
        !          5236: 
        !          5237: Wed Nov 24 00:49:35 1993  Jason Merrill  ([email protected])
        !          5238: 
        !          5239:        * cp-class.c (finish_struct): Set TYPE_GETS_CONST_* properly.
        !          5240:        (finish_base_struct): Set cant_synth_asn_ref properly.
        !          5241: 
        !          5242:        * cp-lex.c (cons_up_default_function): Add section for operator=.
        !          5243:        (default_assign_ref_body): New function, mostly cribbed from
        !          5244:        default_copy_constructor_body.
        !          5245: 
        !          5246:        * cp-class.c (base_info): Add members cant_synth_copy_ctor,
        !          5247:        cant_synth_asn_ref, no_const_asn_ref.
        !          5248:        (finish_base_struct): Update no_const_asn_ref, note that you should
        !          5249:        update cant_synth_*, propagate TYPE_GETS_ASSIGN_REF.
        !          5250:        (finish_struct): Add decls for cant_synth_*, no_const_asn_ref, and
        !          5251:        initialize them properly.  Set no_const_asn_ref properly.  Set
        !          5252:        cant_synth_* in some of the situations where they should be set.
        !          5253:        Propagate TYPE_GETS_ASSIGN_REF.  Use cant_synth_copy_ctor.  Add call
        !          5254:        to cons_up_default_function for operator=.
        !          5255: 
        !          5256: Tue Nov 23 20:24:58 1993  Mike Stump  ([email protected])
        !          5257: 
        !          5258:        * cp-cvt.c (convert_force): Add code to perform casting of pointer
        !          5259:        to member function types.
        !          5260:        * cp-typeck.c (build_ptrmemfunc): Add FORCE parameter to indicate
        !          5261:        when the conversion should be done, regardless.
        !          5262:        * cp-tree.h (build_ptrmemfunc): Ditto.
        !          5263:        * cp-type2.c (digest_init): Ditto.
        !          5264:        * cp-typeck.c (convert_for_assignment): Ditto.
        !          5265: 
        !          5266: Tue Nov 23 18:06:58 1993  Jason Merrill  ([email protected])
        !          5267: 
        !          5268:        * cp-error.c (dump_expr): Do the right thing for variables of
        !          5269:        reference type.
        !          5270: 
        !          5271:        * cp-decl.c (grok_op_properties): Set TYPE_HAS_ASSIGN_REF
        !          5272:        and its kin properly.
        !          5273:        (xref_tag): Propagate TYPE_GETS_ASSIGN_REF.
        !          5274: 
        !          5275: Tue Nov 23 12:26:13 1993  Mike Stump  ([email protected])
        !          5276: 
        !          5277:        * cp-method.c (build_opfncall): Don't count pointer to member
        !          5278:        functions as aggregates here, as we don't want to look up methods in
        !          5279:        them.  The compiler would core dump if we did, as they don't have
        !          5280:        normal names.
        !          5281:        * cp-typeck.c (build_indirect_ref): Improve wording on error
        !          5282:        message.
        !          5283: 
        !          5284: Mon Nov 22 14:22:23 1993  Jason Merrill  ([email protected])
        !          5285: 
        !          5286:        * cp-decl.c (grok_op_properties): Allow operator?: with pedwarn
        !          5287:        (since it's supported in other compiler bits).
        !          5288: 
        !          5289:        * cp-method.c (report_type_mismatch): Use cp_error; ignore err_name
        !          5290:        argument.
        !          5291: 
        !          5292:        * cp-error.c (dump_function_decl): Don't print return type for
        !          5293:        constructors and destructors.
        !          5294: 
        !          5295:        * cp-cvt.c (cp_convert_to_pointer): Import code from
        !          5296:        convert_to_pointer so we can return error_mark_node in the case of an
        !          5297:        error, and to allow more meaningful error messages.
        !          5298:        (build_type_conversion): Don't go through void* when trying
        !          5299:        to convert to a pointer type.
        !          5300: 
        !          5301:        * cp-decl.c (grokfndecl): Move call to grok_op_properties back
        !          5302:        after grokclassfn so that it's dealing with the right decl.
        !          5303:        (grok_op_properties): Don't assert !methodp for op new and op delete.
        !          5304: 
        !          5305:        * cp-init.c (build_delete): Don't use TYPE_BUILT_IN (there are now
        !          5306:        no uses of it in the compiler).
        !          5307: 
        !          5308:        * cp-call.c (build_scoped_method_call): Fix for destructors of simple
        !          5309:        types.
        !          5310:        (build_method_call): Ditto.
        !          5311: 
        !          5312: Fri Nov 19 12:59:38 1993  Jason Merrill  ([email protected])
        !          5313: 
        !          5314:        * cp-tree.c (count_functions): Abstraction function.
        !          5315: 
        !          5316:        * cp-call.c (build_overload_call_real): Deal with new overloading
        !          5317:        properly, remove dead code.
        !          5318: 
        !          5319:        * gcc.c (default_compilers): Generate and use .ii files in the
        !          5320:        intermediate stage of compiling C++ source.
        !          5321: 
        !          5322: Fri Nov 19 11:26:09 1993  Jim Wilson  ([email protected])
        !          5323: 
        !          5324:        * cp-expr.c (cplus_expand_expr): Make call_target a valid memory
        !          5325:        address before using it, so it can be later safely compared.
        !          5326: 
        !          5327: Fri Nov 12 15:30:27 1993  Jason Merrill  ([email protected])
        !          5328: 
        !          5329:        * cp-pt.c (tsubst): Deal with new overloading.
        !          5330: 
        !          5331:        * cp-typeck.c (fntype_p): is the arg function type?
        !          5332:        (comp_target_parms): pedwarn on conversion from (anything) to (...).
        !          5333:        (build_x_function_call): Deal with new overloading.
        !          5334: 
        !          5335:        * cp-tree.c (decl_list_length): Deal with new overloading.
        !          5336:        (decl_value_member): Like value_member, but for DECL_CHAINs.
        !          5337: 
        !          5338:        * cp-decl.c (duplicate_decls): Deal with new overloading.
        !          5339:        (start_decl): Ditto.
        !          5340: 
        !          5341:        * cp-class.c (instantiate_type): Deal with new overloading.
        !          5342: 
        !          5343:        * cp-call.c (convert_harshness_ansi): Deal with new overloading.
        !          5344:        (convert_harshness_old): Deal with new overloading.
        !          5345:        (build_overload_call_real): Ditto.
        !          5346: 
        !          5347: Mon Nov  8 13:50:49 1993  Jason Merrill  ([email protected])
        !          5348: 
        !          5349:        * cp-tree.c (get_unique_fn): New function; returns FUNCTION_DECL
        !          5350:        if unambiguous, NULL_TREE otherwise.
        !          5351:        (get_first_fn): Returns the first appropriate FUNCTION_DECL.
        !          5352:        (is_overloaded_fn): Returns whether or not the passed tree is
        !          5353:        a function or list of functions.
        !          5354: 
        !          5355:        * cp-init.c (init_init_processing): use `get_first_fn' to find
        !          5356:        the FUNCTION_DEFN for new and delete.
        !          5357: 
        !          5358:        * cp-decl.c (push_overloaded_decl): Use new overloading strategy, cut
        !          5359:        code size in half (I spit on special cases).
        !          5360: 
        !          5361: Tue Sep  7 20:03:33 1993  Jason Merrill  ([email protected])
        !          5362: 
        !          5363:        * cp-decl.c: Allow references and template type parameters as well
        !          5364: 
        !          5365: Local Variables:
        !          5366: eval: (auto-fill-mode)
        !          5367: left-margin: 8
        !          5368: fill-column: 76
        !          5369: End:

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.