Annotation of gcc/cp/ChangeLog, revision 1.1.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.