OSDN Git Service

Will bring over with next merge.
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index 0cbb5de..a5db235 100644 (file)
+Fri Jun 16 15:07:29 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+       * Make-lang.in (DEMANGLER_PROG): Add LIBS.
+
+Thu Jun 15 15:00:41 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl.c (define_function): Don't set DECL_INTERFACE_KNOWN.
+
+Wed Jun  7 20:00:31 1995  Mike Stump  <mrs@cygnus.com>
+
+       * *.[chy]: Change all callers of finish_decl to cp_finish_decl.
+       * decl.c (finish_decl): New routine to handle call backs from the
+       mid end (declare_hidden_char_array).
+
+Wed Jun  7 19:02:50 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl.c (start_function): Handle setting C_C_D here.
+       (set_C_C_D): Removed.
+       (struct saved_scope): Remove class_decl.
+       (push_to_top_level): Don't save current_class_decl.
+       (pop_from_top_level): Don't restore current_class_decl or C_C_D.
+       (struct cp_function): Add C_C_D.
+       (push_cp_function_context): Save C_C_D.
+       (pop_cp_function_context): Restore C_C_D.
+
+Fri Jun  2 11:05:58 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl.c (set_C_C_D): New function.
+       (pop_from_top_level, start_function, pop_cp_function_context): Call it.
+
+       * class.c, cp-tree.h, decl.c, decl2.c, parse.y: Lose all references
+       to current_vtable_decl, CLASSTYPE_INST_VAR and CLASSTYPE_VTBL_PTR.
+
+       * decl.c (push_cp_function_context): Save current_class_decl.
+       (pop_cp_function_context): Restore current_class_decl and set C_C_D.
+       (pop_from_top_level): Don't use CLASSTYPE_INST_VAR to set C_C_D.
+       (start_function): Ditto.
+
+       * class.c (popclass): Don't mess with current_class_decl,
+       current_vtable_decl, or C_C_D.
+
+on May 29 12:45:10 1995  Paul Eggert  <eggert@twinsun.com>
+
+       * Make-lang.in (c++.mostlyclean): Remove $(DEMANGLER_PROG).
+
+Wed May 24 15:55:18 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+       * decl.c (duplicate_decls): Check simple_cst_equal result against 0.
+       * decl2.c (finish_anon_union): Likewise.
+       * method.c (largest_union_member): Likewise.
+
+Wed May 24 14:41:11 1995  H.J. Lu  (hjl@nynexst.com)
+
+       * Make-lang.in (cxxmain.o): Replace single quotes with backslashes.
+
+Mon May 22 17:38:48 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+       * Make-lang.in (g++, g++-cross, cc1plus, DEMANGLER_PROG):
+       Use $@ instead of output name so works even if have .exe.
+       (cxxmain.o): Use cp if ln -s fails.
+       (c++.install-man): Use $(exeext) in executable names.
+       (c++.mostlyclean, stage[1-4]): Use $(objext) in object file names.
+       * Makefile.in (../cc1plus): Use $(exeext) in name of executable.
+
+Wed May 24 01:39:03 1995  Jason Merrill  <jason@deneb.cygnus.com>
+
+       * call.c (build_method_call): parms can be null, duh.
+
+Tue May 23 01:32:09 1995  Jason Merrill  <jason@deneb.cygnus.com>
+
+       * call.c (build_method_call): If convert_arguments failed, just bail.
+
+Fri May 19 10:31:11 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * cvt.c (convert_force): Pass LOOKUP_NORMAL to cp_convert.
+
+       * tree.c (copy_to_permanent): Oops.
+
+Fri May 19 10:01:07 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * cp-tree.h (break_out_target_exprs): Add decl.
+
+Thu May 18 13:02:30 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl.c (start_function): Move *all* interface handling stuff after
+       the pushdecl.
+
+       * tree.c (mapcar): Renamed from make_deep_copy and generalized.
+       (perm_manip): Return t if permanent, otherwise 0.
+       (copy_to_permanent): Use them.
+       (bot_manip): Helper for break_out_target_exprs.
+       (break_out_target_exprs): New function.  Uses mapcar.
+
+       * typeck.c (convert_arguments): Use it.
+
+       * method.c (hack_identifier): Use convert_from_reference to
+       dereference a reference.
+
+Wed May 17 17:54:54 1995  Mike Stump  <mrs@cygnus.com>
+
+       * call.c (convert_harshness): Move reference bashing before pointer
+       to member bashing.
+
+Wed May 17 16:57:53 1995  Mike Stump  <mrs@cygnus.com>
+
+       * cvt.c (convert_to_reference): Only complain, if complaints are
+       wanted.
+       typeck.c (build_function_call_real): Ditto.  If LOOKUP_SPECULATIVELY
+       is set and something won't work, return NULL_TREE.
+       cvt.c (cp_convert): Ditto.  Pass flags down to build_method_call.
+       (convert): Pass LOOKUP_NORMAL to cp_convert.
+       typeck.c (convert_for_assignment): Ditto.
+       (convert_force): Pass LOOKUP_COMPLAIN to cp_convert.
+       typeck.c (convert_arguments): Get out early if we get an
+       error_mark_node.
+       (convert_for_initialization): Use cp_convert instead of convert so
+       that we can pass flags down.
+       * cp-tree.h (LOOKUP_SPECULATIVELY): Added documentation.
+
+Wed May 17 01:43:58 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * typeck2.c (store_init_value): Don't take the MAIN_VARIANT of the
+       decl type.
+
+       * class.c (finish_struct): Don't complain about a class with no
+       user-defined constructors but with a member that has no default
+       constructor, as this is OK for aggregates.
+
+       * expr.c (cplus_expand_expr, NEW_EXPR): If this is an explicit
+       constructor call, mark slot addressable.
+
+Tue May 16 18:37:51 1995  Douglas Rupp  (drupp@cs.washington.edu)
+
+       * g++.c: Changed WINNT to _WIN32.
+
+Tue May 16 12:40:16 1995  Jason Merrill  <jason@lisa.cygnus.com>
+
+       * lex.c (handle_sysv_pragma): Don't use token_buffer.
+
+Tue May 16 12:05:26 1995  Mike Stump  <mrs@cygnus.com>
+
+       * call.c (resolve_scope_to_name): Add initial semantic support for
+       namespaces.
+       * class.c (finish_struct): Ditto.
+       * cp-tree.h (NAMESPACE_LEVEL): Ditto.
+       * cvt.c (build_up_reference, convert_to_reference): Ditto. 
+       * decl.c (binding_level::namespace_p, suspend_binding_level): Ditto.
+       (resume_binding_level, toplevel_bindings_p): Ditto
+       (namespace_bindings_p, declare_namespace_level): Ditto.
+       (resume_level, push_namespace, pop_namespace): Ditto.
+       (pop_everything, pushtag, duplicate_decls, pushdecl): Ditto.
+       (implicitly_declare, lookup_namespace_name, lookup_name_real): Ditto.
+       (start_decl, make_temporary_for_reference), Ditto.
+       (obscure_complex_init, finish_decl, expand_static_init): Ditto.
+       (grokvardecl, grokdeclarator, parmlist_is_exprlist): Ditto.
+       (store_parm_decls, hack_incomplete_structures): Ditto.
+       * decl2.c (get_temp_name, finish_anon_union, current_namespace): Ditto.
+       (push_namespace, pop_namespace, do_namespace_alias): Ditto.
+       (do_toplevel_using_decl, do_class_using_decl): Ditto.
+       * error.c (dump_decl): Ditto.
+       * init.c (build_member_call, build_offset_ref): Ditto.
+       * lex.c (identifier_type): Ditto.
+       * parse.y (lang_extdef, using_decl, extdef, component_decl_1): Ditto.
+       (nested_name_specifier_1): Ditto.
+       * spew.c (yylex): Ditto.
+       * tree.def (NAMESPACE_DECL): Ditto.
+
+Tue May 16 11:55:35 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl.c (push_overloaded_decl): Return the new decl even if it
+       can't be pushed.
+
+Tue May 16 11:00:37 1995  Jason Merrill  <jason@lisa.cygnus.com>
+
+       * typeck.c (decay_conversion): Split out from default_conversion.
+       (default_conversion): Call it.
+       (build_binary_op): Ditto.
+       (build_binary_op_nodefault): Use decay_conversion for truth ops.
+
+Mon May 15 12:47:56 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl.c (warn_extern_redeclared_static): This is a pedwarn.
+       (duplicate_decls): Always use the old decl's linkage info.  Don't
+       play with linkage of consts.
+       (pushdecl): Don't play with linkage of consts.
+       (redeclaration_error_message): Don't complain about an old public
+       decl and a new non-public decl here.
+       (grokvardecl): Handle linkage of consts here.
+       (grokdeclarator): An 'extern inline' is public.  Pass constp to
+       grokvardecl.
+       (start_function): Wait until after the pushdecl to do some linkage
+       stuff.
+
+       * decl2.c (import_export_vtable): Make duplicates weak rather than
+       static if supported.
+       (import_export_inline): Ditto.
+       * pt.c (do_pending_expansions): Ditto.
+
+       * class.c (build_vbase_path): flag_assume_nonnull_objects only
+       affects reference conversion.
+
+       * init.c (emit_base_init): Build up an RTL_EXPR and add it to
+        rtl_expr_chain.
+       * decl.c, decl2.c: s/base_init_insns/base_init_expr/.
+
+Tue May 16 07:06:28 1995  Paul Eggert  <eggert@twinsun.com>
+
+       * method.c (numeric_output_need_bar): Renamed from misspelling.
+
+       * typeck.c (build_ptrmemfunc): Fix misspellings in messages.
+
+Sun May 14 10:26:22 1995  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * lang-options.h, lang-specs.h: New files.
+
+Thu May 11 00:31:48 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * typeck.c (default_conversion): Don't check for BLKmode before
+       pulling out the decl_constant_value.
+
+       * decl.c (start_function): Clear named_labels and shadowed_labels.
+
+       * typeck.c (build_function_call_real): Also synthesize methods here.
+
+Wed May 10 00:55:59 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl2.c (finish_file): Synthesize exported methods before the
+       reconsider loop.
+
+       * parse.y: Move declaration of flag_new_for_scope to file scope.
+
+Tue May  9 19:10:33 1995  Mike Stump  <mrs@cygnus.com>
+
+       * decl2.c: Add flag_new_for_scope for new -ffor-scope flag.
+       * parse.y (FOR): Conditionalize the pushing and poping of scope for
+       the for-init-statement upon the new flag_new_for_scope.
+       * parse.y (try_block): Simplify and use compstmt.
+
+Mon May  8 12:41:52 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl.c (define_function): Mark function decl artificial.
+
+Sun May  7 00:51:28 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * parse.y (simple_stmt, FOR): Put back push/pop for condition scope.
+
+       * decl2.c (grokclassfn): DECLs don't have cv-qualified types.
+       * tree.c (build_cplus_method_type): Ditto.
+
+       * cp-tree.h (SET_DECL_ARTIFICIAL): Just set DECL_ARTIFICIAL to 1.
+
+       * typeck.c (build_function_call_real): If convert_arguments failed,
+       just bail.
+       (convert_arguments): If one of the arguments is error_mark_node,
+       just bail.
+
+Sat May  6 02:39:41 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl.c (duplicate_decls): Don't check DECL_NOT_REALLY_EXTERN for
+       decls that don't include it.
+
+Fri May  5 14:23:30 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl.c (duplicate_decls): Decls that have DECL_INTERFACE_KNOWN or
+       DECL_NOT_REALLY_EXTERN set aren't extern decls.
+
+       * typeck.c (build_indirect_ref): Don't call default_conversion for a
+       parameter of reference_type.
+       * cvt.c (convert_from_reference): Just use build_indirect_ref.
+
+       * pt.c (do_type_instantiation): Only instantiate member functions
+       that actually come from templates.
+
+Fri May  5 09:46:05 1995  Mike Stump  <mrs@cygnus.com>
+
+       * parse.y: Generalized cleanup of poplevels, and compound statements
+       and compound statements in try blocks.  Rewritten `for' rule so that
+       the scope of variables declared in the for clause is shortened to
+       span just to the end of the statement, instead of the whole
+       containing block.
+
+Fri May  5 00:37:14 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * call.c (convert_harshness): Handle pointers to members better.
+
+Thu May  4 16:00:26 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl2.c (delete_sanity): Do access control here.
+       * init.c (build_delete): Instead of here.
+
+       * Make-lang.in: Build c++filt.
+
+Wed May  3 02:59:53 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl2.c (cplus_decl_attributes): If we just modified a TYPE_DECL,
+       update our IDENTIFIER_TYPE_VALUE.
+
+Fri Apr 28 07:58:41 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * lex.c (cons_up_default_function): Fix linkage of #pragma
+       implemented functions.
+
+Thu Apr 27 16:56:24 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * method.c (build_overload_name): Simplify and fix repeated type
+       folding.
+
+       * decl.c (grokdeclarator): Prohibit pointers to void or reference
+        members.
+
+Thu Apr 27 09:49:07 1995  Mike Stump  <mrs@cygnus.com>
+
+       * typeck2.c (process_init_constructor): Make sure initializers are
+       fully digested.
+
+Thu Apr 27 01:11:55 1995  Jason Merrill  <jason@python.cygnus.com>
+
+       * lex.c (cons_up_default_function): Always defer synthesis.
+
+Thu Apr 27 00:20:37 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl2.c (mark_inline_for_output): Don't play with pending_inline
+       stuff.
+
+Wed Apr 26 17:48:24 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * call.c (user_harshness): New function; like build_type_conversion,
+       but doesn't actually build anything.
+       (compute_conversion_costs): Use it instead of build_type_conversion.
+
+Wed Apr 26 17:11:25 1995  Jason Merrill  <jason@deneb.cygnus.com>
+
+       * typeck.c (build_function_call_real): Improve error message for
+       calling a non-function.
+
+       * method.c (hack_identifier): Lose check for calling a data member.
+
+Wed Apr 26 16:59:13 1995  Mike Stump  <mrs@cygnus.com>
+
+       * typeck2.c (build_functional_cast): Remove very old cruft.
+       Seems like good code is generated without it.
+
+Wed Apr 26 00:47:16 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * method.c (do_build_assign_ref): Fix handling of anonymous unions.
+       (do_build_copy_constructor): Ditto.
+
+       * parse.y (simple_stmt, SWITCH): Call {push,pop}_switch.
+
+       * decl.c (push_switch): New function.
+       (pop_switch): Ditto.
+       (define_case_label): Check for jumping over initialization.
+
+       * call.c (build_method_call): Check for an inline function being
+       called before its definition has been seen.
+       * typeck.c (build_function_call_real): Ditto.
+
+       * decl.c (duplicate_decls): Check for a function being redeclared
+       inline after its address has been taken.
+
+       * typeck.c (build_conditional_expr): Handle related class lvalues.
+
+Tue Apr 25 13:20:45 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * pt.c (do_pending_expansions): Don't expand unused templates.
+
+       * parse.y (component_decl): Accept a lone semicolon.
+
+Tue Apr 25 00:25:56 1995  Jason Merrill  <jason@rtl.cygnus.com>
+
+       * call.c (build_method_call): Don't allow an RTL_EXPR to serve as the
+       object parameter anymore.
+
+       * expr.c (cplus_expand_expr): Don't create RTL_EXPRs with no insns.
+
+Mon Apr 24 12:35:48 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * parse.y (simple_stmt, decl case): Clear prefix_attributes.
+       (lang_extdef): Ditto.
+
+       * parse.y (maybe_parmlist): New rule for use in declarators where
+       this could either be a list of expressions or parameters.  Calls
+       suspend_momentary before deciding which.
+       (direct_after_type_declarator): Use it.
+       (complex_direct_notype_declarator): Use it.
+
+       * pt.c (tsubst): Propagate attributes const and noreturn.
+
+       * typeck.c (build_modify_expr): If warn_synth, call build_opfncall
+       before doing the default thing.
+
+Thu Apr 27 21:49:36 1995  Doug Evans  <dje@cygnus.com>
+
+       * typeck.c (common_type): Call lookup_attribute instead of
+       value_member.
+
+Tue Apr 25 18:07:43 1995  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+       * Make-lang.in: Change "realclean" to "maintainer-clean".
+
+Sun Apr 23 12:32:38 1995  Mike Stump  <mrs@cygnus.com>
+
+       * decl2.c (finish_file): Fix broken linked list handling.
+
+Fri Apr 21 18:08:43 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * class.c (finish_base_struct): Don't set TYPE_HAS_COMPLEX_*_REF
+       as often.
+       (finish_struct): Ditto.
+
+       * various: Use TYPE_HAS_TRIVIAL_* instead of TYPE_HAS_COMPLEX_*.
+
+       * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): New macro.
+       (TYPE_HAS_TRIVIAL_ASSIGN_REF): New macro.
+
+Fri Apr 21 15:52:22 1995  Jason Merrill  <jason@python.cygnus.com>
+
+       * typeck.c (c_expand_return): Only expand a returned TARGET_EXPR if
+       it is of the same type as the return value.
+
+Fri Apr 21 03:01:46 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl2.c (finish_file): Reconsider if synthesizing a method wrote
+       out its assembly.
+
+       * typeck.c (convert_for_initialization): Don't call a trivial copy
+       constructor.
+
+       * typeck2.c (store_init_value): Only abort if the type has a
+       non-trivial copy constructor.
+
+       * typeck.c (c_expand_return): If we're returning in a register and
+       the return value is a TARGET_EXPR, expand it.  Only do
+       expand_aggr_init if we're returning in memory.
+       (expand_target_expr): Function to expand a TARGET_EXPR.
+       (build_modify_expr): Use it.
+
+       * tree.c (build_cplus_new): Layout the slot.
+
+       * expr.c (cplus_expand_expr): Use expand_call to expand the call
+       under a NEW_EXPR, so the target is not discarded.
+
+Thu Apr 20 14:59:31 1995  Mike Stump  <mrs@cygnus.com>
+
+       * gc.c (build_dynamic_cast): Tighten error checking.
+
+Thu Apr 20 11:23:54 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * expr.c (cplus_expand_expr): Only abort if the returned target is
+       different from what we expected if the type has a non-trivial copy
+       constructor.
+
+       * decl2.c (cplus_decl_attributes): Attributes applied to a template
+       really apply to the template's result.
+
+       * tree.c (lvalue_p): Check IS_AGGR_TYPE instead of TREE_ADDRESSABLE
+       to decide whether to consider a CALL_EXPR an lvalue.
+
+       * class.c (finish_struct_bits): Only set TREE_ADDRESSABLE if the
+       type has a non-trivial copy constructor.
+
+       * decl.c (start_function): If interface_known, unset
+       DECL_NOT_REALLY_EXTERN on the function.
+
+Wed Apr 19 16:53:13 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * pt.c (do_function_instantiation): Handle explicit instantiation of
+       member functions.
+       (do_type_instantiation): Handle 'inline template class foo<int>',
+       meaning just spit out the vtable.
+
+       * lex.c (cons_up_default_function): Set DECL_NOT_REALLY_EXTERN on
+       the consed functions.
+
+       * decl2.c (import_export_inline): Set DECL_INTERFACE_KNOWN.
+
+Wed Apr 19 16:28:17 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * call.c, class.c, decl2.c, gc.c, init.c, parse.y, pt.c, search.c,
+       typeck.c: Include output.h.
+
+Wed Apr 19 14:57:21 1995  Gerald Baumgartner  (gb@alexander.cs.purdue.edu)
+
+       * call.c (build_method_call): Allow a signature member functions to
+       be called from a default implementation.
+
+Wed Apr 19 10:21:17 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * repo.c (finish_repo): Remember what directory we are in.
+
+       * search.c (expand_upcast_fixups): Don't mess with abort_fndecl.
+
+       * repo.c: Use obstacks instead of fixed-size buffers.  Don't spit
+       out the second copy of the symbol name.  Don't remember COLLECT_GCC.
+
+Wed Apr 19 02:32:40 1995  Mike Stump  <mrs@cygnus.com>
+
+       * search.c (virtual_context): New function to get the virtual
+       context of a function.
+       (expand_upcast_fixups): New function to generate runtime vtables.
+       (fixup_virtual_upcast_offsets): Ditto.
+       (expand_indirect_vtbls_init): Use fixup_virtual_upcast_offsets to
+       ensure that the this offsets for upcasts from virtual bases into
+       other virtual bases or non-virtual bases are correct at construction
+       time and destruction time.
+       * class.c (fixup_vtable_deltas): Modify to fixup all offsets in all
+       vtables in all virtual bases, instead of just one vtable in each
+       virtual base.
+       (fixup_vtable_deltas1): Ditto.
+
+Tue Apr 18 03:57:35 1995  Michael Meissner  (meissner@cygnus.com)
+
+       * Makefile.in (lex.o): Add dependency on c-pragma.h.
+
+       * lex.c (handle_sysv_pragma): Use NULL_PTR and NULL_TREE as
+       appropriate, instead of 0.
+
+Mon Apr 17 12:28:42 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl.c (pushdecl): Use decls_match, not duplicate_decls, for
+       comparing local and global decls.
+
+Fri Apr 14 01:46:52 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * typeck.c (convert_arguments): Only prohibit passing to ... of
+       types with non-trivial copy constructors.
+
+       * repo.c (repo_template_used): Don't try to mess with no id.
+
+Fri Apr 14 23:32:50 1995  Per Bothner  <bothner@rtl.cygnus.com>
+
+       * decl.c (duplicate_decls):  Use cp_warning_at for redundant-decls.
+
+Thu Apr 13 15:37:42 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * cp-tree.h (current_tinst_level): Delete declaration, since it's
+       static inside pt.c.
+
+       * typeck.c (build_modify_expr): Catch incompatible array assignment.
+
+       * parse.y (attribute_list, attrib): Rewrite actions to feed the
+       right stuff to decl_attributes.
+
+Thu Apr 13 11:24:10 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * search.c (dfs_debug_mark): Check for magic virtual like
+       import_export_vtable.
+
+       * typeck.c (build_binary_op_nodefault): Don't call cp_pedwarn with
+       four args.
+
+Wed Apr 12 12:02:57 1995  Jason Merrill  <jason@deneb.cygnus.com>
+
+       * decl2.c (finish_file): Move prevtable pass before needs_messing_up
+       decision.
+
+Tue Apr 11 11:20:27 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl.c (finish_decl): If we're writing out a static data member of
+       a class, we want the debug info for that class.
+
+       * gc.c (build_t_desc): Check linkage of a class properly.
+
+       * class.c (finish_struct): Set the 'headof' offset for the main
+       vtable properly.
+       (prepare_fresh_vtable): Fix typeinfo pointer here.
+       (modify_one_vtable): Instead of here.
+
+Mon Apr 10 12:15:59 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * repo.c (repo_get_id): New function to return the interesting
+       identifier for a repo entity.
+       (repo_template_used): Use it.
+       (repo_template_instantiated): Mark the id as chosen.
+       (init_repo): Record whether or not the id was chosen.
+       (finish_repo): Note if an id was newly chosen.
+
+       * pt.c (do_function_instantiation): Call repo_template_instantiated.
+       (do_type_instantiation): Ditto.  Don't diagnose multiple
+       instantiation.
+
+       * decl2.c (finish_file): Use DECL_NOT_REALLY_EXTERN when deciding
+       whether or not to synthesize a method.
+
+       Undo these changes:
+       * class.c (finish_vtbls): build more vtables if flag_rtti is on.
+       * class.c (modify_all_direct_vtables): ditto.
+       * init.c (expand_direct_vtbls_init): expand more vtables if
+       flag_rtti is on.
+
+Sat Apr  8 17:45:41 1995  Mike Stump  <mrs@cygnus.com>
+
+       * gc.c (build_headof): Use ptrdiff_type_node instead of
+       integer_type_node on pointer arithmetic.
+
+Sat Apr  8 11:57:04 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * typeck.c (build_modify_expr): Undo previous change.
+
+Thu Apr  6 01:23:50 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * Makefile.in (compiler): Remove ../cc1plus before rebuilding it.
+
+       * repo.c (get_base_filename): Put the .rpo file in the directory
+       with the object file, not the source.
+
+       * typeck.c (build_conditional_expr): Handle pmf's better.
+
+       * repo.c (finish_repo): Also use ASM_OUTPUT_LABELREF to print out
+       the name of the symbol.
+
+Wed Apr  5 15:24:12 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * repo.c (open_repo_file): Make repo filename DOS-compliant.
+       (*): Also write a new repo file if some previously-used
+       templates are no longer used.  Only remember the identifier.
+
+       * lex.c (cons_up_default_function): If this function belongs to a
+       template class, call repo_template_used for it.
+
+       * repo.c (repo_template_used): Using a class means using its vtable,
+       if any.
+       (finish_repo): Ditto.
+
+       * typeck.c (build_modify_expr): Only wrap TARGET_EXPRs in RTL_EXPRs
+       if the type has a complex copy constructor.
+
+       * decl2.c (lang_decode_option): -frepo implies
+       -fno-implicit-templates.
+
+       * decl.c (start_function): Clear current_{base,member}_init_list.
+
+       * lex.c (init_lex): Also unset *_eq if ! flag_operator_names.
+
+Tue Apr  4 16:11:08 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl.c (struct cp_function): Add {base,member}_init_list.
+       (push_cp_function_context): Save current_{base,member}_init_list.
+       (pop_cp_function_context): Restore them.
+
+Mon Apr  3 16:55:08 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * repo.c (get_base_filename): Take filename parm, fix logic bug.
+
+       * typeck.c (build_compound_expr): Do not warn about a compound expr
+       in which the first expression has no side effects.
+       (build_x_compound_expr): Warn here instead.
+       (build_conditional_expr): Don't warn about a conditional expression
+       between an enum and the type it promotes to.
+
+       * init.c (build_new): Handle initialization of arrays of builtins
+       properly.
+
+Mon Apr  3 15:08:04 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * repo.c: Include config.h to get definitions of bcopy and rindex
+       on systems that don't have them (e.g., SVR4).
+
+Mon Apr  3 14:41:55 1995  Mike Stump  <mrs@cygnus.com>
+
+       * decl2.c (finish_table): Pass NULL_TREE instead of init to
+       finish_decl so that it won't try and do error checking on the
+       initializer.
+
+Mon Apr  3 10:45:50 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * repo.c (get_base_filename): Analyze COLLECT_GCC_OPTIONS to
+       determine whether this compile used -c -o.
+       (open_repo_file): Use get_base_filename.  Remove the extension.
+       (finish_repo): Spit out the values of main_input_filename,
+       COLLECT_GCC and COLLECT_GCC_OPTIONS.
+
+       * parse.y (structsp): Add TYPENAME_KEYWORD complex_type_name.
+
+Sun Apr  2 23:43:51 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * search.c (compute_access): Don't try to do access control on
+       nested types.
+
+Fri Mar 31 10:14:23 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * repo.c: New file to handle things repo.
+
+       * pt.c (instantiate_template): Call repo_template_used if the
+       definition is accessible.
+       (mark_function_instantiated): Split out from
+       do_function_instantiation.
+       (mark_class_instantiated): Split out from do_type_instantiation.
+
+       * parse.y (template_instantiate_once): Call repo_template_used.
+
+       * lex.c (lang_init): Call init_repo.
+
+       * decl2.c: Handle flag_use_repository.
+       (finish_file): Call finish_repo.
+
+       * decl.c (start_method): Call repo_template_used if this is a
+       template method.
+
+       * Makefile.in (CXX_OBJS): Add repo.o.
+       (repo.o): Add dependencies.
+
+       * Make-lang.in (CXX_SRCS): Add repo.c.
+
+       * decl.c (start_function): If DECL_INTERFACE_KNOWN and
+       DECL_NOT_REALLY_EXTERN are both set, unset DECL_EXTERNAL.
+
+       * typeck.c (build_binary_op_nodefault): Identify the invalid operand
+       types used.
+
+       * decl.c (duplicate_decls): Propagate DECL_NOT_REALLY_EXTERN.
+
+Thu Mar 30 17:54:42 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * typeck.c (build_binary_op_nodefault): Tidy up use of build_type
+       and result_type.  When checking for comparison between signed
+       and unsigned, use result_type rather than the (possibly shortened)
+       type of op0.  Also, don't warn about equality comparison of a
+       signed operand to an unsigned constant that fits in the signed
+       type.
+
+       * method.c (do_build_copy_constructor): Reverse
+       current_base_init_list after we've built it up.
+
+Thu Mar 30 14:35:18 1995  Mike Stump  <mrs@cygnus.com>
+
+       * except.c (build_throw): Never warn about the value of throw not
+       being used.
+
+Thu Mar 30 13:16:54 1995  Mike Stump  <mrs@cygnus.com>
+
+       * except.c (expand_start_catch_block): Check for bad catch parameter
+       declarations.
+
+Thu Mar 30 13:06:11 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl.c (finish_function): Only set DECL_NOT_REALLY_EXTERN if
+       DECL_EXTERNAL is not already set.
+
+Thu Mar 30 11:26:24 1995  Mike Stump  <mrs@cygnus.com>
+
+       * method.c (emit_thunk): Let poplevel know that the last level is
+       for a function so it can create a BLOCK_NODE and set DECL_INITIAL.
+
+Thu Mar 30 11:15:06 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl2.c (import_export_inline): Don't set DECL_NOT_REALLY_EXTERN
+       here.
+
+       * decl.c (grokdeclarator): OK, don't abort if we see a decl with
+       METHOD_TYPE.
+       (finish_function): Set DECL_EXTERNAL and DECL_NOT_REALLY_EXTERN on
+       all deferred inlines.
+
+Wed Mar 29 19:35:02 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * cp-tree.h (DECL_THIS_INLINE): New macro.
+       (DECL_NOT_REALLY_EXTERN): New macro.
+       (DECL_THIS_STATIC): New macro.
+
+       * decl.c: Lose all references to current_extern_inline.  Break
+       inline semantics into DECL_INLINE for actual inlining and
+       DECL_THIS_INLINE for the linkage wierdness.  Use DECL_THIS_STATIC.
+       * decl2.c: Use DECL_NOT_REALLY_EXTERN to indicate that we want to
+       emit an inline here.  Associated changes.
+       * lex.c: Ditto.
+       * pt.c: Ditto.
+       * typeck.c: Ditto.
+
+       * call.c (build_method_call): Don't bother trying to handle inlines
+       specially.
+       * cvt.c (convert_to_aggr): Ditto.
+
+       * pt.c (do_function_instantiation): Handle instantiation of
+       public inlines, too.
+
+Wed Mar 29 16:04:25 1995  Mike Stump  <mrs@cygnus.com>
+
+       * except.c (init_exception_processing): Change the interface for
+       __throw_type_match and add decl for new rtti matching routine
+       __throw_type_match_rtti.
+       (build_eh_type): New routine to build a run time descriptor for the
+       expression given. 
+       (expand_start_catch_block): Update to use new calling convention for
+       the matcher.
+       (expand_throw): Update to use build_eh_type.
+
+Mon Mar 27 07:14:33 1995  Warner Losh  <imp@village.org>
+
+       * g++.c: Removed __NetBSD__ from conditional.
+       Declare strerror if HAVE_STRERROR is defined; otherwise
+       declare sys_errlist and sys_nerr.
+       (my_strerror): New function.
+
+Tue Mar 28 14:16:35 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * search.c (get_binfo): Don't try to be so clever.
+
+       * tree.c (copy_to_permanent): Also suspend_momentary().
+
+       * cvt.c (cp_convert_to_pointer): Hand off to convert_fn_pointer even
+       if the types are the same.
+
+       * decl.c (start_function): Handle extern inlines more like C++ says
+        we should.
+
+       * init.c (build_member_call): Hand constructor calls off to
+       build_functional_cast.
+
+       * typeck2.c (build_functional_cast): Use DECL_NESTED_TYPENAME to get
+       the name of the type.
+
+Tue Mar 28 13:13:56 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * decl.c (grokdeclarator): Check for the decl returned by
+       grokfndecl to be null before using build_decl_attribute_variant.
+
+Mon Mar 27 18:04:41 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * init.c (build_new): Use build_pointer_type instead of
+       TYPE_POINTER_TO.
+
+Fri Mar 24 12:11:24 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * typeck.c (build_conditional_expr): Handle pmfs.
+       (convert_for_assignment): Fix pmf support.
+
+       * cvt.c (convert_fn_ptr): Support !flag_vtable_thunks.
+       (cp_convert_to_pointer): Handle pmfs.
+       (cp_convert): Pass pmfs to cp_convert_to_pointer.
+
+       * typeck.c (common_type): Handle inheritance for pmfs.
+
+       * typeck2.c (build_m_component_ref): Do access control.
+
+       * typeck.c (comp_target_types): Check for conversion to void *
+       before checking trickier conversions.
+
+       * decl.c (duplicate_decls): Propagate DECL_ABSTRACT_VIRTUAL_P.
+
+       * pt.c (push_tinst_level): Complain if template instantiation depth
+       is greater than max_tinst_depth.
+
+       * typeck.c (common_type): Assume that we can call common_type to
+       unify the target type of a pointer.
+
+Thu Mar 23 00:48:44 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl2.c (finish_file): Don't synthesize methods at
+       finish_vtable_prevardecl time.  Do synthesize methods that are not
+       used, but are public and not external.
+
+       * cvt.c (build_type_conversion): Only give an error if for_sure.
+
+       * typeck.c (comp_target_types): Only support pointer conversions if
+       nptrs > 0.
+
+Wed Mar 22 19:30:15 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * init.c (build_new): Catch use of an initializer list where it
+       shouldn't be.
+
+Wed Mar 22 16:21:07 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * init.c (build_new): Wrap alloc_expr in an RTL_EXPR if nelts is
+       non-constant.
+
+       * decl2.c: temp_name_counter is now public.
+
+       * decl.c (struct cp_function): Add temp_name_counter field.
+       (push_cp_function_context): Save it.
+       (pop_cp_function_context): Restore it.
+
+       * typeck.c (common_type): Handle unifying function types, and unify
+       unmatched things to void* with a compiler_error, rather than
+       silently like before.
+
+Wed Mar 22 15:10:34 1995  Mike Stump  <mrs@cygnus.com>
+
+       * decl2.c (finish_prevtable_vardecl, finish_vtable_vardecl): Revert
+       Brendan's last change and fix latent problem that causes TD entries
+       to not come out when the things that need them has yet to be
+       expanded.
+
+Wed Mar 22 15:12:00 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * typeck.c (build_binary_op_nodefault, comparison ops): Update type0
+       and type1, since we might have changed op0 or op1.
+
+Wed Mar 22 13:33:45 1995  Jason Merrill  <jason@python.cygnus.com>
+
+       * typeck.c (common_type): Don't mess up templates.
+
+Wed Mar 22 04:56:00 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * typeck.c (common_type): Handle ptms properly.  Also handle 
+       T* -> void*.
+       (build_binary_op_nodefault): New variable build_type controls what
+       type is given to the expression when it is created.  Set this to
+       boolean_type_node for comparison ops instead of using result_type.
+       (comp_target_types): Allow T * -> void *.
+
+       * cvt.c (cp_convert_to_pointer): Do access control when converting
+       ptms, too.
+
+Tue Mar 21 17:25:06 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * parse.y (extern_lang_string): Catch use of linkage specs that
+       aren't all naming the same language.
+
+       * class.c (finish_struct): Delete accidental duplicate code.
+
+Tue Mar 21 14:00:57 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * typeck.c (build_binary_op_nodefault): Disable pedwarns about
+       comparing functions and incomplete types.
+
+       * decl.c (finish_function): Only unset current_function_decl if
+       !nested.
+       (duplicate_decls): Last change went too far; we only want to stop
+       checking for value/reference ambiguity.
+
+Tue Mar 21 01:26:39 1995  Mike Stump  <mrs@cygnus.com>
+
+       * gc.c (build_generic_desc): Zap the DECL_SIZE so that we can lay it
+       out fresh, as the new type may be larger.
+
+Mon Mar 20 19:01:10 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * expr.c (extract_init): Try to expand the RTL for the
+       initialization and figure out what it will look like so we can avoid
+       run-time initialization.  Disabled for now.
+       (extract_scalar_init): Helper for scalar initialization.
+       (extract_aggr_init): Helper for aggregate initialization.
+
+       * decl.c (duplicate_decls): Don't complain about ambiguous
+       declarations.
+       (obscure_complex_init): Now returns a tree.  Call extract_init if
+       we're optimizing and this is a toplevel decl.
+       (finish_decl): Update accordingly.
+
+       * lex.c (check_newline): If we're just changing files (not pushing
+       or popping), update input_file_stack->name.
+
+Mon Mar 20 17:55:04 1995  Mike Stump  <mrs@cygnus.com>
+
+       * pt.c (type_unification): Only TEMPLATE_DECLs are handled right now
+       in the transitive unification code.
+
+Mon Mar 20 16:07:50 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * decl.c (shadow_tag): Don't allow inline, virtual, or explicit on
+       non-functions.
+       (grokdeclarator): Don't allow friends to be defined in local classes.
+
+Sat Mar 18 04:03:33 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl2.c (finish_prevtable_vardecl): Use DECL_DECLARED_STATIC
+       rather than DECL_SAVED_INSNS to decide whether or not this method
+       was declared inline.
+
+       * method.c (synthesize_method): Turn off DECL_INLINE if
+       function_cannot_inline_p thinks we're too large.
+
+       * typeck.c (build_indirect_ref): Use build_expr_type_conversion.
+
+Fri Mar 17 17:47:36 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * class.c (instantiate_type): Handle pmfs.
+
+       * typeck.c (convert_for_assignment): Check types when assigning one
+       pmf to another.
+
+       * decl.c (define_label): Fix logic for printing out the name of the
+       label in an error message.
+
+       * error.c (dump_expr): Support ARRAY_REF.
+
+Fri Mar 17 17:43:02 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * decl2.c (finish_vtable_vardecl): Call build_t_desc here.
+       (finish_prevtable_vardecl): Instead of here.
+
+Fri Mar 17 14:40:45 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl.c (expand_static_init): Also use expand_aggr_init if the
+       initializer is a TREE_LIST.     
+       (grokdeclarator): Only pedwarn about extra qualification if -pedantic.
+
+       * pt.c (unify): Fix unification of return type.
+
+       * expr.c (fixup_result_decl): Use store_expr, rather than
+       emit_move_insn, to move the return value into the place where
+       callers will expect it.
+
+Thu Mar 16 22:05:25 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * init.c (build_offset_ref): Call assmble_external on functions.
+       * typeck.c (build_component_ref): Ditto.
+
+Thu Mar 16 20:28:16 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * decl.c (struct saved_scope): Add members base_init_list and
+       member_init_list.
+       (push_to_top_level): Save current_base_init_list and
+       current_member_init_list to them.
+       (pop_from_top_level): Put it back.
+
+Thu Mar 16 19:21:14 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * pt.c (instantiate_template): Call assemble_external.  
+
+Thu Mar 16 18:07:54 1995  Brendan Kehoe  (brendan@phydeaux.cygnus.com)
+
+       * class.c: Include rtl.h, to get NULL_RTX.
+       (finish_struct): Also zero out DECL_SAVED_INSNS, to avoid problems
+       on hosts with different sizes for each part of the union.
+       * tree.c: Also include rtl.h.
+       (layout_basetypes): Same change for DECL_SAVED_INSNS.
+
+Thu Mar 16 13:57:36 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * pt.c (unify): Fix array domain unification for 64-bit targets.
+
+       * decl2.c (finish_file): Push bizarre type decl before walking the
+       vtables the first time.
+       (walk_vtables): OK, don't set prev to vars if the vardecl_fn messed
+       with TREE_CHAIN (prev).
+
+       * init.c (emit_base_init): Use convert_pointer_to_real instead of
+       convert_pointer_to when converting to a direct base.
+
+Wed Mar 15 20:26:29 1995  Mike Stump  <mrs@cygnus.com>
+
+       * pt.c (type_unification): Handle transitive unification better.
+
+Wed Mar 15 13:56:16 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl2.c (walk_vtables): Always set prev to vars.
+       (mark_vtable_entries): Call assemble_external on the vtable entries.
+
+       * class.c (finish_struct): Set the vtable's size to NULL_TREE before
+        calling layout_decl, so that it gets updated properly.
+
+       Finally re-enable dynamic synthesis.  This time it works.
+       * method.c (synthesize_method): Pass decl_function_context (fndecl)
+       to {push,pop}_cp_function_context.
+       * decl.c (push_cp_function_context): Now takes a tree argument.
+       (pop_cp_function_context): Ditto.
+       * call.c (build_method_call): Enable synthesis.
+       * lex.c (cons_up_default_function): Ditto.
+
+Tue Mar 14 19:14:19 1995  Doug Evans  <dje@chestnut.cygnus.com>
+
+       * parse.y (setattrs): Chain onto prefix_attributes rather than
+       setting it.
+
+Wed Mar 15 13:00:00 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * decl.c (pushdecl): Check if the type of the VAR_DECL is an
+       error_mark_node before trying to read TYPE_LANG_SPECIFIC. 
+
+Mon Mar 13 21:00:28 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * decl.c (grokdeclarator, case ARRAY_REF): Wrap the exp with fold,
+       and convert the size and integer_one_node to the index type.
+
+Mon Mar 13 08:01:02 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * typeck.c (get_member_function_from_ptrfunc): Save the instance
+       argument, and tack it onto the front of the COND_EXPR to make the
+       semantics come out right.  Grab the instance argument from
+       '*instance_ptrptr', rather than having it passed in separately.
+       
+       * various: Change various consed-up comparison operations to have
+       boolean type.  Remove the instance argument in calls to
+       get_member_function_from_ptrfunc.
+
+       * error.c (dump_expr): Dump true and false as "true" and "false".
+
+       * decl2.c (finish_file): Also set DECL_STATIC_FUNCTION_P on the
+       global init function.
+
+       * decl.c (finish_function): Only set DECL_EXTERNAL here if the
+       inline function is public.
+
+Sat Mar 11 00:58:03 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * init.c (is_friend): Be more careful about checking
+       DECL_CLASS_CONTEXT on non-member functions.
+
+       * decl2.c (finish_vtable_vardecl): Don't bother calling
+       assemble_external here.
+       (prune_vtable_vardecl): New function that just splices out the
+       vtable decl from the top-level decls.
+       (import_export_inline): Unset DECL_EXTERNAL at first.
+       (finish_file): Don't bother calling assemble_external here.  Do
+       splice out all of the vtables.
+
+Fri Mar 10 14:42:29 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl.c (finish_function): If we're not emitting the function yet,
+       call assemble_external for it.
+
+       * decl2.c (finish_prevtable_vardecl): Don't call mark_vtable_entries
+       here.
+       (finish_vtable_vardecl): Don't do the linkage deduction thing here.
+       Also don't splice out the current vtable if it is unused.
+       (finish_file): Move the second walk_vtables and the synthesis check
+       inside the 'reconsider' loop.  Move thunk emission after the
+       'reconsider' loop.
+
+Thu Mar  9 16:28:16 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * pt.c (tsubst): Don't bother calling cp_build_type_variant, since it
+       was passing bogus values for readonly and volatile from the original
+       template decl, not the resultant type of the tsubst call.
+
+       * class.c (duplicate_tag_error): Use cp_error_at to point out the
+       previous definition of the tag.
+
+Thu Mar  9 10:46:17 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl.c (start_function): Clear base_init_insns and protect_list.
+       (struct cp_function): Add base_init_insns field.
+       (push_cp_function_context): Also save base_init_insns.
+       (pop_cp_function_context): Also restore base_init_insns.
+
+Wed Mar  8 13:31:44 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * init.c (member_init_ok_or_else): Check for initializing a static
+       member here.
+       (emit_base_init): Instead of here.
+
+Tue Mar  7 16:03:26 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * call.c (build_method_call): Disable synthesis as needed.
+       * lex.c (cons_up_default_function): Ditto.
+
 Tue Mar  7 10:14:29 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
 
        * parse.y: New rules to allow attributes in a prefix position.
@@ -10,6 +1149,234 @@ Tue Mar  7 10:14:29 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
        (grokdeclarator): Added code to support machine attributes.
        * Makefile.in (stamp-parse): Expect 5 shift/reduce failures.
 
+Mon Mar  6 15:07:02 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * call.c (build_method_call): Don't synthesize methods outside of a
+       function.
+
+       Make base initialization more re-entrant so that synthesis on the
+       fly will work (and, eventually, template instantation on the fly).
+       * init.c (sort_member_init): Don't bother with members that can't be
+       initialized.  Reorganize a bit.  Don't initialize base members here.
+       (sort_base_init): New function, like sort_member_init, but for base
+       classes.  Steals some code from emit_base_init.
+       (emit_base_init): Simplify.  Call sort_{member,base}_init before
+       doing any initialization, so we don't have to save
+       current_{member,base}_init_list in push_cp_function_context.
+       (expand_aggr_vbase_init_1): Adjust for sort_base_init.
+       (expand_aggr_vbase_init): Simplify.
+       * decl.c (struct cp_function): Add protect_list field.
+       (push_cp_function_context): Also save protect_list.
+       (pop_cp_function_context): Also restore protect_list.
+       * call.c (build_method_call): Enable synthesis at point of call.
+       * lex.c (cons_up_default_function): Ditto.
+
+       * parse.y: Turn -ansi checks back into -pedantic checks.
+
+       * init.c (build_new): Fix -fcheck-new for array new.
+
+Sat Mar  4 15:55:42 1995  Fergus Henderson  <fjh@cs.mu.oz.au>
+
+       * typeck.c (build_compound_expr): warn if left-hand operand of
+       comma expression has no side-effects.
+
+Fri Mar  3 15:16:45 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * parse.y (primary): Change 'object qualified_id *' rules to 'object
+       overqualified_id *'.
+
+Fri Mar  3 12:48:17 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * parse.y (unary_expr): Catch doing sizeof an overloaded function.
+       Make the error look the same as the one we issue in c_sizeof.
+
+       * typeck.c (build_binary_op_nodefault): Give an error for trying
+       to compare a pointer-to-member to `void *'.
+
+Fri Mar  3 11:28:50 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * typeck.c (build_unary_op): Handle bool increment with smoke and
+       mirrors here, rather than in expand_increment where it belongs,
+       because Kenner doesn't agree with me.
+
+Fri Mar  3 00:08:10 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * decl.c (grokparms): Catch a PARM_DECL being used for a default
+       argument as well.
+
+Thu Mar  2 20:05:54 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * init.c (build_new): Don't allow new on a function type.
+
+       * parse.y (primary): Avoid a crash when seeing if the arg is of
+       the same type as that given for the typespec in an explicit dtor call.
+
+Thu Mar  2 00:49:38 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl.c (finish_function): Change test for calling
+       mark_inline_for_output.
+
+Wed Mar  1 11:23:46 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * typeck.c (build_modify_expr): Complain if
+       build_default_binary_type_conversion fails.
+
+       * init.c (expand_default_init): Handle arguments of unknown type
+       properly.
+
+       * cvt.c (build_expr_type_conversion): Only complain about ambiguity
+       if 'complain'.
+       * various: Pass 'complain'.
+
+       * typeck.c (comptypes): Be more picky about comparing UPTs.
+
+Wed Mar  1 11:03:41 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * decl.c (grokdeclarator): If declarator is null, say that the
+       type used has an incomplete type.
+
+Wed Mar  1 10:06:20 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * pt.c (instantiate_template): Copy the template arguments to the
+       permanent_obstack.  Also use simple_cst_equal to compare them when
+       looking for a previous instantiation.
+
+       * tree.c (make_deep_copy): Support copying INTEGER_TYPEs (assuming
+       they are array domain types).
+
+Tue Feb 28 23:24:55 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * cp-tree.h: Define WANT_* constants for passing to
+       build_expr_type_conversion.
+       * cvt.c (build_expr_type_conversion): New function to build
+       conversion to one of a group of suitable types.
+       (build_default_binary_type_conversion): Use it.
+       * decl2.c (grok_array_decl): Ditto.
+       * typeck.c (build_unary_op): Ditto.
+       (build_array_ref): Tidy up a bit.
+       (build_binary_op): Ditto.
+
+Tue Feb 28 19:57:31 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * decl.c (grokdeclarator): Don't allow decl of an argument as `void'.
+
+Tue Feb 28 17:23:36 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * parse.y (typed_declspecs1): Add 'typespec reserved_typespecquals
+       reserved_declspecs' rule.
+
+       * parse.y (expr_or_declarator): Remove notype_qualified_id rule.
+       (direct_notype_declarator): Ditto.
+       (complex_direct_notype_declarator): Add notype_qualified_id rule.
+
+       * lex.c (real_yylex): Handle :> digraph properly.
+
+Tue Feb 28 12:26:29 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * decl.c (grokdeclarator): Check if it's a friend, not if it's
+       non-virtual, that's being initialized.  Move the check up to
+       before FRIENDP would get cleared.  Catch an unnamed var/field
+       being declared void.  Say just `field' instead of `structure field'
+       in the error message.  Only go for the operator name if DECLARATOR
+       is non-null.
+
+Tue Feb 28 00:08:01 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl.c (start_function): Complain about abstract return type.
+       (grokdeclarator): Complain about declaring constructors and
+       destructors to be const or volatile.  Complain about declaring
+       destructors to be static.
+
+       * pt.c (uses_template_parms): Handle pmfs.
+
+       * decl.c (grokdeclarator): Don't call variable_size for array bounds
+       that only depend on template constant parameters.
+
+Mon Feb 27 15:38:16 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * error.c (dump_decl): Only look to see if it's a vtable if we
+       actually have a name to check out.
+
+Mon Feb 27 13:37:53 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * cvt.c (convert_to_aggr): Lose misleading shortcut.
+
+Sun Feb 26 17:27:32 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+       * decl.c (set_nested_typename): Always set DECL_IGNORED_P,
+       not just for dwarf.
+
+Sun Feb 26 00:10:18 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * decl.c (grokdeclarator): Don't allow a static member to be
+       declared `register'.
+
+       * init.c (make_friend_class): Move up to a pedwarn for the warning
+       about a class declaring friends with itself.
+
+       * decl.c (grokdeclarator): You can't do `volatile friend class foo'
+       or `inline friend class foo'.  Only try to make a friend out of
+       TYPE if we didn't already reset it to integer_type_node.
+
+Sat Feb 25 22:32:03 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * decl.c (grokdeclarator): Don't allow initialization of a
+       non-virtual function.
+
+       * decl.c (start_function): Do a pedwarn if we're changing `main'
+       to have an int return type.
+
+Sat Feb 25 00:02:05 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * typeck.c (build_modify_expr): Handle simple assignment from
+       TARGET_EXPRs by building up an RTL_EXPR to force expansion.  Whew.
+
+Fri Feb 24 18:27:14 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * decl.c (grokdeclarator): Also don't allow virtual outside of a
+       class decl for a scope method definition performed at global binding.
+
+       * init.c (build_offset_ref): Don't allow creation of an OFFSET_REF
+       of a bitfield.
+
+       * decl.c (grokdeclarator): Don't allow a const to be declared mutable.
+
+       * typeck.c (build_binary_op): Return an error_mark_node if either
+       one of the args turned into an error_mark_node when we tried to
+       use default_conversion.
+
+       * typeck.c (build_unary_op): Forbid using postfix -- on a bool.
+
+       * decl.c (grokdeclarator): Allow `signed' and `unsigned' to be
+       used on `__wchar_t'.
+
+Fri Feb 24 13:59:53 1995  Mike Stump  <mrs@cygnus.com>
+
+       * except.c (end_protect_partials): Do it the right way.
+
+Wed Feb 22 15:42:56 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * typeck.c (build_binary_op_nodefault): Upgrade warning about
+       comparing distinct pointer types to pedwarn.
+
+       * typeck2.c (digest_init): Cope with extra braces.
+
+       * typeck.c (build_binary_op_nodefault): Use tree_int_cst_sgn instead
+       of INT_CST_LT (..., interger_zero_node).
+
+Wed Feb 22 14:45:52 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * except.c [!TRY_NEW_EH] (end_protect_partials): Define dummy
+       function for systems that don't have EH.
+
+Tue Feb 21 19:18:31 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * call.c (can_convert_arg): Like can_convert, but takes an arg as
+       well.
+
+       * pt.c (type_unification): Allow implicit conversions for parameters
+       that do not depend on template parameters.
+
 Tue Feb 21 18:43:48 1995  Douglas Rupp  (drupp@cs.washington.edu)
 
        * Make-lang.in, config-lang.in: ($exeext): New macro.
@@ -19,17 +1386,46 @@ Tue Feb 21 18:43:48 1995  Douglas Rupp  (drupp@cs.washington.edu)
        * cp/g++.c: Added #ifdefs for sys/file.h and process.h for NT.
        Modified spawnvp to have to correct number of arguments for OS/2, NT.
 
-Thu Feb  2 15:07:58 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+Tue Feb 21 18:36:55 1995  Mike Stump  <mrs@cygnus.com>
+
+       * decl.c (finish_function): Add calls to end_protect_partials to end
+       the exception region that protects constructors so that partially
+       constructed objects can be partially destructed when the constructor
+       throws an exception.
+       * init.c (perform_member_init, sort_member_init, emit_base_init):
+       Added support for partially constructed objects.
+       * init.c (build_partial_cleanup_for): New routine to do partial
+       cleanups of a base class.
+       * decl2.c (finish_file): Move the emitting of the exception table
+       down, after we emit all code that might have exception regions in
+       them.
+       * except.c (end_protect_partials, might_have_exceptions_p): New
+       routines.
+       (emit_exception_table): Always output table if called.
+       * cp-tree.h (protect_list, end_protect_partials,
+       might_have_exceptions_p, emit_exception_table): Added.
+
+Tue Feb 21 16:05:59 1995  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+       * gc.c (build_typeid): Pass a NULL_TREE, not the bogus, unused
+       address of a local variable.
+       * class.c (build_vfn_ref): Only try to build the PLUS_EXPR if we
+       were given a non-null PTR_TO_INSTPTR.
+
+Tue Feb 21 01:53:18 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+       * decl.c (duplicate_decls): Always lay out the merged decl.
+
+       * decl2.c (finish_vtable_vardecl): Don't do vtable hack on templates.
+       (finish_prevtable_vardecl): Ditto.
 
-        * class.c (build_vbase_path): Bash types to make the backend happy.
-        * cvt.c (build_up_reference): Bash the types bashed by
-        build_vbase_path to be reference types instead of pointer types.
-        (convert_to_reference): Ditto.
+       * method.c (synthesize_method): Set interface_{unknown,only}
+       according to the settings for our class, not the file where it comes
+       from.
 
-Wed Jan 25 15:02:09 1995  David S. Miller  (davem@nadzieja.rutgers.edu)
+Sat Feb 18 12:26:48 1995  Mike Stump  <mrs@cygnus.com>
 
-       * class.c (instantiate_type): Change error message text.
-       * typeck2.c (store_init_value): Likewise.
+       * except.c: Handle systems that define __i386__ but not __i386.
 
 Fri Feb 17 15:31:31 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
 
@@ -518,6 +1914,11 @@ Tue Jan 24 16:36:31 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
        * typeck2.c (build_functional_cast): Don't assume that a NOP_EXPR
        will suffice to convert from integer_zero_node.
 
+Wed Jan 25 15:02:09 1995  David S. Miller  (davem@nadzieja.rutgers.edu)
+
+       * class.c (instantiate_type): Change error message text.
+       * typeck2.c (store_init_value): Likewise.
+
 Mon Jan 23 21:57:14 1995  Mike Stump  <mrs@cygnus.com>
 
        * pt.c (tsubst): When we copy a node, don't forget to copy
@@ -4034,11 +5435,6 @@ Fri Apr 22 03:27:26 1994  Doug Evans  (dje@cygnus.com)
        * Language directory reorganization.
        See parent makefile.
 
-Fri Apr 22 03:27:26 1994  Doug Evans  (dje@cygnus.com)
-
-       * Language directory reorganization.
-       See parent makefile.
-
 Thu Apr 21 18:27:57 1994  Per Bothner  (bothner@kalessin.cygnus.com)
 
        * cp-tree.h (THUNK_DELTA):  It is normally negative, so