OSDN Git Service

90th Cygnus<->FSF quick merge
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index 729132e..78ca954 100644 (file)
@@ -1,3 +1,992 @@
+Thu Feb 20 15:12:15 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * call.c (build_over_call): Call mark_used before trying to elide
+       the call.
+
+       * decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL.
+
+Wed Feb 19 11:18:53 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       * typeck.c (build_modify_expr): Always pedwarn for a cast to
+       non-reference used as an lvalue.
+
+Wed Feb 19 10:35:37 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * cvt.c (cp_convert_to_pointer): Convert from 0 to a pmf properly.
+
+Tue Feb 18 15:40:57 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * parse.y (handler): Fix template typo.
+
+Sun Feb 16 02:12:28 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * error.c (lang_decl_name): New fn.
+       * tree.c (lang_printable_name): Use it.
+
+Fri Feb 14 16:57:05 1997  Mike Stump  <mrs@cygnus.com>
+
+       * g++spec.c: Include config.h so that we can catch bzero #defines
+       from the config file.
+
+Tue Feb 11 13:50:48 1997  Mike Stump  <mrs@cygnus.com>
+
+       * new1.cc: Include a declaration for malloc, to avoid warning, and
+       avoid lossing on systems that require one (ones that define malloc
+       in xm.h).
+
+Mon Feb 10 22:51:13 1997  Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
+
+       * decl2.c (max_tinst_depth): New variable.
+       (lang_decode_option): Parse "-ftemplate-depth-NN" command line
+       option.
+       * pt.c (max_tinst_depth): Variable moved.
+       * lang-options.h: Declare "-ftemplate-depth-NN" command line option
+       as legal.
+
+Fri Feb  7 15:43:34 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * decl.c (xref_basetypes): Allow a base class that depends on
+       template parms to be incomplete.
+
+       * decl2.c (build_expr_from_tree): Support typeid(type).
+       * rtti.c (get_typeid): Support templates.
+       (expand_si_desc, expand_class_desc): Fix string length.
+       (expand_ptr_desc, expand_attr_desc, expand_generic_desc): Likewise.
+
+Tue Feb  4 11:28:24 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * pt.c (unify, case TEMPLATE_CONST_PARM): Use cp_tree_equal.
+
+       * pt.c (tsubst): Put it back for -fno-ansi-overloading.
+
+Mon Feb  3 18:41:12 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * pt.c (tsubst, case FUNCTION_DECL): Lose obsolete code that
+       smashes together template and non-template decls of the same
+       signature.
+
+Thu Jan 30 19:18:00 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * pt.c (tsubst): Don't recurse for the type of a TYPENAME_TYPE.
+
+Wed Jan 29 11:40:35 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       * decl.c (duplicate_decls): Next route, pedwarn about different
+       exceptions if -pedantic *or* olddecl !DECL_IN_SYSTEM_HEADER.
+
+Tue Jan 28 20:43:29 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       * cp-tree.h (HAS_DEFAULT_IMPLEMENTATION): Delete macro.
+       (struct lang_type): Delete has_default_implementation member.
+       Increase dummy to 21.
+       * decl.c (start_method): Delete usage.
+
+       * cp-tree.h (build_call, null_ptr_cst_p, in_function_p,
+       store_after_parms, start_decl_1, auto_function): Add decls.
+       (get_arglist_len_in_bytes, declare_implicit_exception,
+       have_exceptions_p, make_type_decl, typedecl_for_tag,
+       store_in_parms, pop_implicit_try_blocks, push_exception_cleanup,
+       build_component_type_expr, cplus_exception_name,
+       {make,clear}_anon_parm_name, dont_see_typename): Removed decls.
+       * call.c (build_this): Make static.
+       (is_complete): Likewise.
+       (implicit_conversion): Likewise.
+       (reference_binding): Likewise.
+       (standard_conversion): Likewise.
+       (strip_top_quals): Likewise.
+       (non_reference): Likewise.
+       (build_conv): Likewise.
+       (user_harshness): Likewise.
+       (rank_for_ideal): Likewise.
+       * decl.c (start_decl_1): Delete forward decl.
+       (push_decl_level): Make static.
+       (resume_binding_level): Make static.
+       (namespace_bindings_p): Make static.
+       (declare_namespace_level): Make static.
+       (lookup_name_real): Make static.
+       (duplicate_decls): Make static.  Take register off NEWDECL and
+       OLDDECL parm decls.
+       * decl2.c (get_sentry): Make static.
+       (temp_name_p): Delete fn.
+       * except.c (auto_function): Delete decl.
+       * lex.c (handle_{cp,sysv}_pragma): Make static.
+       (handle_sysv_pragma) [HANDLE_SYSV_PRAGMA]: Add forward decl.
+       * method.c (do_build_{copy_constructor,assign_ref}): Make static.
+       * pt.c (tsubst_expr_values): Make static.
+       * rtti.c (combine_strings): Delete decl.
+
+Tue Jan 28 16:40:40 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * pt.c (push_template_decl): Handle getting a typedef.
+
+       * call.c (build_new_function_call): Complain about void arg.
+
+Tue Jan 28 15:25:09 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       * decl.c (duplicate_decls): Give pedwarn of different exceptions
+       if -pedantic, instead of olddecl !DECL_IN_SYSTEM_HEADER.
+
+Mon Jan 27 19:21:29 1997  Mike Stump  <mrs@cygnus.com>
+
+       * except.c (expand_throw): Don't expand the cleanup tree here,
+       since we are not going to write the rtl out.  Fixes problem with
+       -g -O on SPARC.
+
+Mon Jan 27 16:24:35 1997  Sean McNeil  <sean@mcneil.com>
+
+       * Make-lang.in: Add $(exeext) as necessary.
+
+Mon Jan 27 13:20:39 1997  Mike Stump  <mrs@cygnus.com>
+
+       * parse.y (handler_seq): Must have at least one catch clause.
+
+Sat Jan 25 12:00:05 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * call.c (add_builtin_candidate): Restore ?: hack.
+
+       * decl.c (grok_op_properties): More warnings.
+
+Sat Jan 25 08:50:03 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       * decl.c (duplicate_decls): On second thought, do it as a pedwarn
+       still but only if !DECL_IN_SYSTEM_HEADER (olddecl).
+
+       * decl.c (duplicate_decls): Scale back to a warning, and only do
+       'em if -pedantic.
+
+Fri Jan 24 17:52:54 1997  Mike Stump  <mrs@cygnus.com>
+
+       * decl.c (duplicate_decls): pedwarn mismatched exception
+       specifications.
+
+Thu Jan 23 18:18:54 1997  Mike Stump  <mrs@cygnus.com>
+
+       * call.c (build_new_method_call): Don't display the invisible
+       argument for controlling virtual bases.
+
+Thu Jan 23 16:48:10 1997  Mike Stump  <mrs@cygnus.com>
+
+       * new: Add nothrow new and delete, bad_alloc and throw specifications
+       for delete.
+       * decl.c (init_decl_processing): Add throw specification for delete.
+       * new.cc (nothrow): Define.
+       * lex.c (real_yylex): Removing warning that throw and friends are
+       keywords.
+       * new1.cc (operator new (size_t sz, const nothrow_t&)): Define.
+       * new2.cc (operator new[] (size_t sz, const nothrow_t&): Define.
+       * Make-lang.in: Add new{1,2}.{cc,o}.
+
+Thu Jan 23 16:39:06 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * lex.c (cons_up_default_function): Fix return type of synth op=.
+
+       * init.c (emit_base_init): Add warnings for uninitialized members
+       and bases.
+
+       * decl.c (xref_basetypes): Add warning for non-polymorphic type
+       with destructor used as base type.
+
+       * decl.c (grok_op_properties): Add warning for op= returning void.
+       * typeck.c (c_expand_return): Add warning for op= returning anything
+       other than *this.
+
+       * class.c (finish_struct_1): Add warning for class with pointers
+       but not copy ctor or copy op=.
+
+       * cp-tree.h (TI_PENDING_TEMPLATE_FLAG): New macro.
+       * pt.c (add_pending_template): Use it instead of LANG_FLAG_0.
+       (instantiate_template): If -fexternal-templates, add this
+       instantiation to pending_templates.
+
+       * decl2.c (copy_assignment_arg_p): Disable old hack to support
+       Booch components.
+
+Tue Jan 21 18:32:04 1997  Mike Stump  <mrs@cygnus.com>
+
+       * cvt.c (cp_convert): Pedwarn enum to pointer conversions.
+
+Mon Jan 20 17:59:51 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * call.c (standard_conversion): Handle getting references.  Tack
+       on RVALUE_CONV here.  Do it for non-class types, too.
+       (reference_binding): Pass references to standard_conversion.
+       (implicit_conversion): Likewise.
+       (add_builtin_candidate): Disable one ?: kludge.
+       (convert_like): Handle RVALUE_CONVs for non-class types.
+       (joust): Disable the other ?: kludge.
+
+Mon Jan 20 14:53:13 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       * decl.c (init_decl_processing): Add code to build up common
+       function types beforehand, to avoid creation then removal of
+       things already in the hash table.
+
+Mon Jan 20 14:43:49 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * decl.c (finish_function): Also zero out DECL_INCOMING_RTL for
+       the arguments.
+
+       * error.c (dump_expr, TEMPLATE_CONST_PARM): Don't require
+       current_template_parms.
+
+Fri Jan 17 10:25:42 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * search.c (lookup_field): Don't return a function, check want_type.
+
+Thu Jan 16 18:14:35 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       * init.c (build_new): Make sure PLACEMENT has a type.
+
+Thu Jan 16 17:40:28 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * init.c (build_new): Support new (nothrow).
+
+Wed Jan 15 12:38:14 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * pt.c (instantiate_decl): Also do push_to_top_level before setting
+       up DECL_INITIAL.
+
+       * cp-tree.h (PARM_DEFAULT_FROM_TEMPLATE): New macro.
+       * pt.c (tsubst): Defer instantiation of default args.
+       * call.c (build_over_call): Until here.
+
+Wed Jan 15 10:08:10 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       * search.c (lookup_field): Make sure we have an
+       IDENTIFIER_CLASS_VALUE before we try to return it.
+
+Thu Jan  9 07:19:01 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       * call.c (build_method_call): Delete unused var PARM.
+       (build_overload_call_real): Likewise.
+       (build_object_call): Delete unused var P.
+       (build_new_op): Likewise.
+       * decl.c (builtin_type_tdescs_{arr, len, max}): #if 0 out static
+       var definitions, which are never used.
+       (shadow_tag): Delete unused var FN.
+       * expr.c (cplus_expand_expr): Delete unused var ORIGINAL_TARGET.
+       * init.c (build_new): Delete unused var ALLOC_TEMP.
+       * method.c (hack_identifier): Delete unused var CONTEXT.
+       (do_build_copy_constructor): Delete unused var NAME.
+       (synthesize_method): Delete unused var BASE.
+       * pt.c (lookup_template_class): Delete unused var CODE_TYPE_NODE.
+       * rtti.c (build_headof): Delete unused var VPTR.
+       (get_typeid): Delete unused var T.
+       * typeck.c (build_conditional_expr): Delete unused vars ORIG_OP1
+       and ORIG_OP2.
+       (build_ptrmemfunc): Delete unused vars U and NINDEX.
+       * typeck2.c (build_functional_cast): Delete unused var BINFO.
+
+Wed Jan  8 13:09:54 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * search.c (lookup_field): Use IDENTIFIER_CLASS_VALUE to look up
+       things in a type being defined.
+       * decl.c (finish_enum): Reverse the values so that they are in
+       the correct order.
+
+       * pt.c (instantiate_class_template): Don't initialize
+       BINFO_BASETYPES until the vector is filled out.
+       (unify): Don't abort on conflicting bindings, just fail.
+       (instantiate_decl): Do push_tinst_level before any tsubsting.
+
+       * method.c (build_overload_value): Handle getting a
+       TEMPLATE_CONST_PARM for a pointer.
+
+Tue Jan  7 14:00:58 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * init.c (expand_member_init): Don't give 'not a base' error for
+       templates.
+
+       * pt.c (instantiate_decl): Call import_export_decl later.
+
+       * pt.c (instantiate_class_template): Return a value.
+
+       * parse.y (extension): New rule for __extension__.
+       (extdef, unary_expr, decl, component_decl): Use it.
+
+Tue Jan  7 09:20:28 1997  Mike Stump  <mrs@cygnus.com>
+
+       * class.c (base_binfo): Remove unused base_has_virtual member.
+       (finish_base_struct): Likewise.
+       (finish_struct_1): Likewise.
+
+Tue Dec 31 20:25:50 1996  Mike Stump  <mrs@cygnus.com>
+
+       * search.c (expand_upcast_fixups): Fix bogus code generation
+       problem where the generated code uses the wrong index into the
+       runtime built vtable on the stack.  Old code could clobber random
+       stack values.
+
+Tue Dec 31 15:16:56 1996  Mike Stump  <mrs@cygnus.com>
+
+       * init.c (perform_member_init): Make sure the partial EH cleanups
+       live on the function_obstack.
+
+Fri Dec 27 10:31:40 1996  Paul Eggert  <eggert@twinsun.com>
+
+       * Make-lang.in (g++spec.o): Don't use $< with an explicit target;
+       this isn't portable to some versions of `make' (e.g. Solaris 2.5.1).
+
+Tue Dec 24 10:24:03 1996  Jeffrey A Law  (law@cygnus.com)
+
+       * decl.c (grokvardecl): Avoid ANSI style initialization.
+
+Sun Dec 22 04:22:06 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * pt.c (tsubst): Tweak arg types for a FUNCTION_TYPE.
+
+Fri Dec 20 17:09:25 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * pt.c (instantiate_class_template): Call grok_{ctor,op}_properties.
+
+Fri Dec 20 12:17:12 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       * g++spec.c (lang_specific_driver): Put missing hyphen in front of
+       arguments we compare against.  Start the count of I at 1, not 0,
+       since argv[0] is still the command.
+
+Thu Dec 19 11:53:57 1996  Stan Shebs  <shebs@andros.cygnus.com>
+
+       * lang-specs.h: Accept .cp as an C++ extension.
+
+Mon Dec 16 22:43:31 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       * cp-tree.h (ptr_reasonably_similar): Add decl.
+
+Thu Dec 12 15:00:35 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       * decl.c (grokvardecl): Change SPECBITS parm to be the SPECBITS_IN
+       pointer.  New local SPECBITS with the parm's value.
+       (grokdeclarator): Pass &specbits down.
+
+       * parse.y (expr_no_commas): Make sure $$ is not an error_mark_node
+       before we try to do C_SET_EXP_ORIGINAL_CODE on it.
+
+       * search.c (envelope_add_decl): Check that the CLASSTYPE_CID of
+       CONTEXT is not 0 before we try to use TYPE_DERIVES_FROM.
+
+       * decl.c (cplus_expand_expr_stmt): Only expand the expr if EXP is
+       not an error_mark_node.
+
+Sat Dec  7 17:20:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * cp-tree.h (TYPE_MAIN_DECL): Use TYPE_STUB_DECL.
+       * *.c: Use TYPE_MAIN_DECL instead of TYPE_NAME where appropriate.
+       
+Fri Dec  6 14:40:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * decl.c (grokdeclarator): When giving an anonymous struct a name,
+       replace TYPE_NAME instead of TYPE_IDENTIFIER (so TYPE_STUB_DECL is
+       not affected).
+
+       * typeck2.c (build_m_component_ref): If component is a pointer
+       to data member, resolve the OFFSET_REF now.
+
+       * call.c (convert_like): Don't go into infinite recursion.
+
+       * pt.c (coerce_template_parms): Use tsubst_expr for non-type args.
+
+       * class.c (finish_struct_1): Set DECL_ARTIFICIAL on the vptr.
+       * tree.c (layout_basetypes): And on the vbase ptr.
+
+Thu Dec  5 02:11:28 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * decl.c (BOOL_TYPE_SIZE): Define in terms of POINTER_SIZE or
+       CHAR_TYPE_SIZE so bool is always the same size as another type.
+
+       * decl.c (pushtag): Set DECL_IGNORED_P for DWARF, too.
+
+Tue Dec  3 23:18:37 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * decl2.c (grok_x_components): Remove synthesized methods from
+       TYPE_METHODS of an anonymous union, complain about member
+       functions.
+       * decl.c (shadow_tag): Wipe out memory of synthesized methods in
+       anonymous unions.
+       (finish_function): Just clear the DECL_RTL of our arguments.
+
+Fri Nov 29 21:54:17 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * decl2.c (finish_file): Emit DWARF debugging info for static data
+       members.
+
+       * pt.c (tsubst): If t is a stub decl, return the stub decl for type.
+
+Wed Nov 27 14:47:15 1996  Bob Manson  <manson@charmed.cygnus.com>
+
+       * typeck.c (build_component_ref): Don't die if COMPONENT isn't a
+       IDENTIFIER_NODE.
+
+Wed Nov 27 16:05:19 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+       * Make-lang.in (g++-cross$(exeext)): Fix typo.
+
+Wed Nov 27 08:14:00 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       Make the g++ driver now be a standalone program, rather than one
+       that tries to run the gcc driver after munging up the options.
+       * Make-lang.in (g++.c, g++spec.o): New rules.
+       (g++.o): New rule, based on gcc.o with -DLANG_SPECIFIC_DRIVER
+       added.
+       (g++$(exeext)): New rule, based on xgcc rule.
+       (g++-cross$(exeext)): Now just copies g++$(exeext) over.
+       * g++spec.c: New file.
+       * g++.c: Removed file.
+
+Tue Nov 26 19:01:09 1996  Mike Stump  <mrs@cygnus.com>
+
+       * cvt.c (build_up_reference): Arrange for any temporary values
+       that have been keep in registers until now to be put into memory.
+
+Mon Nov 25 15:16:41 1996  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * Make-lang.in (c++.stage[1234]): Depend upon stage[1-4]-start, so
+       that make -j3 bootstrap works better.
+
+Sun Nov 24 02:09:39 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * decl.c (pushtag): Do pushdecl for anon tags.
+
+Thu Nov 21 16:30:24 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * typeck.c (c_expand_return): Fix logic.
+       (unary_complex_lvalue): Avoid unused warning on address of INIT_EXPR.
+
+Wed Nov 20 18:47:31 1996  Bob Manson  <manson@charmed.cygnus.com>
+
+       * g++.c (main): Make sure arglist has a final NULL entry.  Add
+       PEXECUTE_LAST to the flags passed to pexecute, as otherwise
+       stdin/stdout of the invoked program are redirected to
+       nowheresville.
+
+Tue Nov 19 16:12:44 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * decl.c (implicitly_declare): Set DECL_ARTIFICIAL.
+
+Tue Nov 19 15:48:19 1996  Mike Stump  <mrs@cygnus.com>
+
+       * init.c (resolve_offset_ref): Handle obj.vfn better.
+       * typeck.c (build_component_ref): Set TREE_TYPE on result from
+       build_vfn_ref.
+
+Tue Nov 19 13:14:33 1996  Mike Stump  <mrs@cygnus.com>
+
+       * typeck.c (convert_for_assignment): Also handle anachronistic
+       implicit conversions from (::*)() to cv void*.
+       * cvt.c (cp_convert_to_pointer): Likewise.
+
+Mon Nov 18 17:05:26 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * lex.c (handle_cp_pragma): Fix bogus warning.
+
+Mon Nov 18 16:10:43 1996  Mike Stump  <mrs@cygnus.com>
+
+       * cvt.c (cp_convert_to_pointer): Avoid thinking a POINTER_TYPE
+       (METHOD_TYPE) is a TYPE_PTRMEMFUNC_P.
+
+Thu Nov 14 23:18:17 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * class.c (finish_struct_1): Support DWARF2_DEBUG.
+       * search.c (dfs_debug_mark): Likewise.
+       * decl2.c (finish_vtable_vardecl): Likewise.
+       * decl.c (pushtag, finish_enum): Likewise.
+       * lex.c (check_newline): Use debug_* instead of calling *out
+       functions directly.
+
+Thu Nov 14 15:21:46 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       * Make-lang.in (cplib2.ready): Add else clause to avoid problems
+       on some picky hosts.
+
+Wed Nov 13 12:32:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * class.c (finish_struct_1): A class has a non-trivial copy
+       constructor if it has virtual functions.
+
+       * cvt.c (cp_convert): Always call a constructor.
+
+       * call.c (reference_binding): Still tack on a REF_BIND
+       for bad conversions.
+       (build_user_type_conversion_1): Propagate ICS_BAD_FLAG.
+
+       * typeck.c (convert_arguments): Pass LOOKUP_ONLYCONVERTING.
+       (c_expand_return): Likewise.
+       * typeck2.c (digest_init): Likewise for { }.
+       * init.c (expand_aggr_init_1): Keep the CONSTRUCTOR handling.
+       * cvt.c (cp_convert): Handle failure better.
+
+Wed Nov 13 11:51:20 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       * g++.c (main): Also set PEXECUTE_SEARCH, to make the invocation
+       of GCC be path-relative. 
+
+Wed Nov 13 11:27:16 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+       * Make-lang.in (g++-cross): G++-cross doesn't need version.o, but
+       it does need choose-temp.o and pexecute.o.
+
+Wed Nov 13 07:53:38 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       * g++.c (error) [!HAVE_VPRINTF]: Put error back for the only time
+       that we still use it.
+       (P_tmpdir, R_OK, W_OK, X_OK) [__MSDOS__]: Delete unnecessary macros.
+
+Wed Nov 13 02:00:26 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * init.c (expand_default_init): Avoid calling constructors to 
+       initialize reference temps.
+
+       * cvt.c (convert_to_reference): Fix.
+
+Tue Nov 12 19:10:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * cvt.c (cp_convert): Simplify for flag_ansi_overloading.
+       (convert_to_reference): Likewise.
+       * typeck.c (convert_for_initialization): Likewise.
+       * init.c (expand_default_init): Likewise.
+       (expand_aggr_init_1): Likewise.
+       * cp-tree.h (CONV_NONCONVERTING): Lose.
+       * typeck.c (build_c_cast): Lose allow_nonconverting parm.
+       * *.c: Adjust.
+       * call.c (build_user_type_conversion_1): Assume LOOKUP_ONLYCONVERTING.
+
+Tue Nov 12 16:29:04 1996  Brendan Kehoe  <brendan@canuck.cygnus.com>
+
+       * pt.c (tsubst_expr): Reverse args to expand_start_catch_block.
+
+Tue Nov 12 15:26:17 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * init.c (expand_aggr_init_1): Don't crash on non-constructor
+       TARGET_EXPR.
+
+Tue Nov 12 14:00:50 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       * g++.c: Include gansidecl.h.
+       (VPROTO, PVPROTO, VA_START): Delete.
+       (choose_temp_base_try, choose_temp_base, perror_exec,
+       run_dos) [__MSDOS__]: Delete fns.
+       (pfatal_with_name): Delete fn.
+       (temp_filename): Declare like in gcc.c.
+       (pexecute, pwait, choose_temp_base): Declare from gcc.c.
+       (error_count, signal_count): Define.
+       (error): Delete both definitions.
+       (PEXECUTE_{FIRST,LAST,SEARCH,VERBOSE}): Define from gcc.c.
+       (pfatal_pexecute): Add fn from gcc.c.
+       (main): Rename local VERBOSE var to VERBOSE_FLAG.  Rewrite the
+       code to use the pexecute stuff also used by gcc.c.
+       (MIN_FATAL_STATUS): Define.
+       * Make-lang.in (g++): Add dependency on and linking with
+       choose-temp.o and pexecute.o.
+
+       * cp-tree.h: Include gansidecl.h.
+       (STDIO_PROTO): Delete #undef/#define.
+       * cvt.c (NULL): Delete #undef/#define.
+       * expr.c (NULL): Likewise.
+       * init.c (NULL): Likewise.
+       * rtti.c (NULL): Likewise.
+       * xref.c (NULL): Likewise.
+
+       * cp-tree.h (build_user_type_conversion): Add prototype.
+       * call.c (build_user_type_conversion): Delete prototype.  Correct
+       decl of FLAGS arg to be an int.
+       * cvt.c (build_user_type_conversion): Likewise.
+
+Tue Nov 12 12:16:20 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * cp-tree.def: Add TRY_BLOCK and HANDLER.
+       * except.c (expand_start_catch_block): Support templates.
+       * parse.y (try_block, handler_seq): Likewise.
+       * pt.c (tsubst_expr): Support TRY_BLOCK and HANDLER.
+
+Mon Nov 11 13:57:31 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * pt.c (current_template_args): New fn.
+       (push_template_decl): Use it.
+       * decl.c (grokdeclarator): Use it.
+
+       * decl2.c (build_expr_from_tree): Dereference ref vars.
+
+       * decl.c (grokdeclarator): Generalize handling of TYPENAME_TYPEs in
+       the decl-specifier-seq.
+
+       * decl.c (grok_op_properties): Don't force the type of a conversion
+       op to be complete.  Don't warn about converting to the same type
+       for template instantiations.
+
+       * decl2.c (finish_file): Don't call instantiate_decl on synthesized
+       methods.
+
+Mon Nov 11 13:20:34 1996  Bob Manson  <manson@charmed.cygnus.com>
+
+       * typeck.c (get_delta_difference): Remove previous bogusness.
+       Don't give errors if force is set.
+
+Fri Nov  8 17:38:44 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * decl2.c (finish_file): Don't emit debug info.
+       * decl.c (pushdecl): Lose obsolete code.
+       (grokdeclarator): Still do the long long thing after complaining.
+       * search.c (note_debug_info_needed): Don't do anything if we're in a 
+       template.
+       * method.c (synthesize_method): For non-local classes,
+       push_to_top_level first.
+
+Fri Nov  8 11:52:28 1996  Bob Manson  <manson@charmed.cygnus.com>
+
+       * typeck.c (get_delta_difference): Add no_error parameter.
+       (build_ptrmemfunc): Call get_delta_difference with no_error set;
+       we don't want error messages when converting unrelated
+       pointer-to-member functions.
+
+Thu Nov  7 11:16:24 1996  Mike Stump  <mrs@cygnus.com>
+
+       * error.c (dump_expr): Improve the wording on error messages that
+       involve pointer to member functions.
+
+Tue Nov  5 17:12:05 1996  Mike Stump  <mrs@cygnus.com>
+
+       * cvt.c (cp_convert_to_pointer): Move code for conversions from
+       (::*)() to void* or (*)() up a bit, so that we can convert from
+       METHOD_TYPEs as well.
+
+Tue Nov  5 14:54:17 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * rtti.c (get_tinfo_fn): Make sure 'type' is permanent.
+       There are no 'member' types.
+       (get_tinfo_fn_dynamic): Diagnose typeid of overloaded fn.
+       (build_x_typeid): Handle errors.
+
+Mon Nov  4 17:43:12 1996  Mike Stump  <mrs@cygnus.com>
+
+       * typeck.c (convert_for_assignment): Handle anachronistic implicit
+       conversions from (::*)() to void* or (*)().
+       * cvt.c (cp_convert_to_pointer): Likewise.
+       (cp_convert_to_pointer_force): Remove cp_convert_to_pointer
+       conversions from here.
+       * decl2.c (lang_decode_option): Add -W{no-,}pmf-conversions.
+       * lang-options.h: Likewise.
+       * decl2.c (warn_pmf2ptr): Define.
+       * cp-tree.h: Declare it.
+       * typeck2.c (digest_init): Allow pmfs down into
+       convert_for_initialization.
+
+Sun Nov  3 09:43:00 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * typeck.c (c_expand_return): Fix for returning overloaded fn.
+
+Fri Nov  1 08:53:17 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * cp-tree.h (DIRECT_BIND): Change from INDIRECT_BIND.
+       * decl.c (grok_reference_init): Pass DIRECT_BIND.
+       * cvt.c (build_up_reference): Don't mark 'this' addressable.  Use
+       DIRECT_BIND.
+       * call.c (convert_like): Don't pass INDIRECT_BIND.
+       * typeck.c (convert_arguments): Likewise.
+       * typeck.c (mark_addressable): Allow &this if flag_this_is_variable.
+
+Thu Oct 31 17:08:49 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * typeck.c (mark_addressable): Support TARGET_EXPR, unify with
+       similar code in build_up_ref.
+       * cvt.c (build_up_reference): Drastically simplify.
+
+Mon Oct 28 12:45:05 1996  Jeffrey A Law  (law@cygnus.com)
+
+       * typeck.c (signed_or_unsigned_type): If the given type already
+       as the correct signedness, then just return it.
+
+        * typeck.c ({un,}signed_type): If can't do anything, call
+        signed_or_unsigned_type.
+
+Thu Oct 24 14:21:59 1996  Bob Manson  <manson@charmed.cygnus.com>
+
+       * decl2.c (copy_assignment_arg_p): Don't buy the farm if
+       current_class_type is NULL.
+
+Wed Oct 23 00:43:10 1996  Jason Merrill  <jason@gerbil.cygnus.com>
+
+       * class.c (finish_struct_1): Avoid empty structs by adding a field
+       so layout_type gets the mode right.
+
+       * typeck.c (c_expand_return): Drastically simplify.
+
+Mon Oct 21 22:34:02 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * typeck.c (decay_conversion): Handle overloaded methods.
+
+Fri Oct 18 16:03:48 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * call.c (build_over_call): A TARGET_EXPR has side-effects.
+
+Thu Oct 17 11:31:59 1996  Mike Stump  <mrs@cygnus.com>
+
+       * cvt.c (convert_to_pointer_force): Add code to support pointer to
+       member function to pointer to function conversions.
+       * init.c (resolve_offset_ref): Add code to allow faked up objects,
+       ignoring them if they are not used, and giving an error, if they
+       are needed.
+       * typeck.c (get_member_function_from_ptrfunc): Fold e1 to improve
+       code, and so that we can give an error, if we needed an object,
+       and one was not provided.
+       (build_c_cast): Don't call default_conversion when we want to
+       convert to pointer to function from a METHOD_TYPE.
+
+Mon Oct 14 00:28:51 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * Make-lang.in (cplib2.ready): Fix logic.
+
+       * decl.c (shadow_tag): Only complain about non-artificial function
+       members.
+
+       * class.c (finish_struct_1): Add synthesized methods to TYPE_METHODS.
+
+Fri Oct 11 16:12:40 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * expr.c (cplus_expand_expr): Pre-tweak call_target like
+       expand_inline_function would.
+
+       * pt.c (mark_decl_instantiated): If extern_p, call
+       mark_inline_for_output.
+
+Thu Oct 10 15:58:08 1996  Mike Stump  <mrs@cygnus.com>
+
+       * typeck.c (unary_complex_lvalue): Add code to handle intermediate
+       pmd conversions.
+
+       * typeck.c (get_delta_difference): Fix wording, as we can be used
+       for pointer to data members.
+
+Tue Oct  8 12:43:51 1996  Bob Manson  <manson@charmed.cygnus.com>
+
+       * pt.c (tsubst): If the function decl isn't a member of this
+       template, return a copy of the decl (including copying the
+       lang-specific part) so we don't hose ourselves later.
+
+Thu Oct  3 16:24:28 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * class.c (finish_struct): Remove DWARF-specific tag handling.
+       * decl.c (pushtag): Likewise.
+       (finish_function): Always clear DECL_ARGUMENTS on function decls with
+       no saved RTX.
+       * decl2.c (finish_file): Emit DWARF debugging info for static data
+       members.
+
+Wed Oct  2 21:58:01 1996  Bob Manson  <manson@charmed.cygnus.com>
+
+       * decl.c (duplicate_decls): Make sure the old DECL_LANG_SPECIFIC
+       isn't the same as the new one before we whack it.
+
+Mon Sep 30 13:38:24 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * class.c, cp-tree.h, cvt.c, decl.c, decl2.c, gxx.gperf, hash.h,
+       lex.c, method.c, parse.y, typeck.c, typeck2.c: Remove
+       warn_traditional and warn_strict_prototypes; remove ancient
+       'overload' code; remove references to flag_traditional.
+
+Mon Sep 30 12:58:40 1996  Mike Stump  <mrs@cygnus.com>
+
+       * input.c (sub_getch): Handle 8-bit characters in string literals.
+
+Sun Sep 29 03:12:01 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * tree.c (mapcar): Handle CONSTRUCTORs.
+       (copy_to_permanent): Handle expression_obstack properly.
+
+       * Make-lang.in (cplib2.txt): Also depend on the headers.
+
+       * rtti.c (get_tinfo_var): Don't assume that POINTER_SIZE ==
+       INT_TYPE_SIZE.
+       (expand_class_desc): Use USItype for offset field.
+       * tinfo.h (struct __class_type_info): Likewise.
+
+       * method.c (build_overload_int): TYPE_PRECISION should be applied
+       to types.
+
+Sat Sep 28 14:44:50 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * call.c (build_new_op): A COND_EXPR involving void must be a
+       builtin.
+
+Fri Sep 27 16:40:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * typeck.c (build_x_component_ref): New fn.
+       (build_object_ref): Use it.
+       * parse.y (primary): Use it.
+       * decl2.c (build_expr_from_tree): Use it.
+       * cp-tree.h: Declare it.
+
+       * decl.c (start_decl): variable-sized arrays cannot be initialized.
+       * error.c (dump_type_suffix): Handle variable arrays.
+
+Fri Sep 27 13:14:05 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       * Make-lang.in (exception.o): Put back compiling it with -fPIC.
+
+Fri Sep 27 03:00:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * decl.c (lookup_name_real): Don't try to look up anything in a
+       TYPENAME_TYPE.
+
+       * tinfo2.cc (__throw_type_match_rtti): Oops.
+
+Thu Sep 26 22:11:05 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       * Make-lang.in (exception.o): Use -fno-PIC for now.
+
+Thu Sep 26 10:59:00 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * rtti.c (build_dynamic_cast): Pass tinfo fns rather than
+       calling them.
+       (get_tinfo_fn_dynamic): Extracted from build_typeid.
+       * tinfo2.cc (__dynamic_cast): Adjust.
+       
+       * rtti.c (build_typeid): Use resolves_to_fixed_type_p.
+       (build_x_typeid): Likewise.
+
+       * parse.y: Call build_x_typeid instead of build_typeid.
+       * cp-tree.def: Add TYPEID_EXPR.
+       * pt.c (tsubst_copy): Handle typeid.
+       * decl2.c (build_expr_from_tree): Likewise.
+       * rtti.c (build_x_typeid): Throw bad_typeid from here.
+       (build_typeid): Not here.
+       * cp-tree.h: Declare build_x_typeid.
+
+Wed Sep 25 17:26:16 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * call.c (convert_like): Pull out constant values.
+
+       * tree.c (mapcar): Use build_cplus_array_type, not build_array_type.
+
+Wed Sep 25 17:28:53 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+       * decl.c (init_decl_processing): Create short int types before
+       creating size_t in case a machine description needs to use
+       unsigned short for size_t.
+
+Tue Sep 24 18:18:44 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * Make-lang.in (exception.o): Turn off pic.
+
+       * tinfo2.cc (__throw_type_match_rtti): Fix cv-variants of the same
+       type, multi-level ptr conversions.
+
+       * rtti.c (call_void_fn): Renamed and genericized from throw_bad_cast.
+       (throw_bad_cast): Use it.
+       (throw_bad_typeid): New fn.
+       (build_typeid): Throw bad_typeid as needed.
+       Use build_call.
+       (synthesize_tinfo_fn): Handle functions and arrays before checking
+       for cv-quals.
+
+       * Remove .h from standard C++ headers, add new.h, move into inc
+       subdirectory.
+
+       * exception*: Remove pointer from object, constructors.  Add
+       default exception::what that uses type_info::name.  Add
+       __throw_bad_typeid.
+
+       * init.c (build_new): Don't add a cookie to new (void *) T[2].
+
+Mon Sep 23 15:21:53 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * Make-lang.in: Building C++ code depends on cc1plus.
+
+Mon Sep 23 12:38:40 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       * decl.c (struct saved_scope): Declare PROCESSING_TEMPLATE_DECL as
+       a HOST_WIDE_INT, not a tree.
+
+Mon Sep 23 12:36:02 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * exception.cc: Don't include <stdlib.h>.
+
+       * Make-lang.in (c++.clean): Remove cplib2.*.
+
+Mon Sep 23 09:42:19 1996  Doug Evans  <dje@canuck.cygnus.com>
+
+       * parse.y (component_decl_1, component_costructor_declarator case):
+       Pass attributes/prefix_attributes in tree list.
+
+Mon Sep 23 01:18:50 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * tinfo{,2}.cc: #include <stddef.h> instead of <stdlib.h>.
+
+Sun Sep 22 05:31:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * lex.c (do_identifier): Don't do deferred lookup in a template
+       header.
+
+       * typeck2.c (store_init_value): Oops.
+
+       * new.{h,cc}, exception.{h,cc}, typeinfo.h, tinfo{2.cc,.cc,.h}: 
+       New files for C++ lang-support library.
+       * Make-lang.in (CXX_EXTRA_HEADERS): Define.
+       (CXX_LIB2FUNCS): Define.
+       And rules for building the C++ lang-support code.
+       * config-lang.in (headers): Define.
+       (lib2funcs): Define.
+
+Sat Sep 21 19:17:28 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * decl2.c (build_expr_from_tree): If CONSTRUCTOR has a type, call
+       digest_init.
+       * pt.c (tsubst_copy): Compute type for CONSTRUCTOR.
+       * typeck2.c (store_init_value): Check for initializing pmf with { }
+       here.
+       (process_init_constructor): Not here.
+
+Thu Sep 19 16:41:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * pt.c (begin_template_parm_list): Increment
+       processing_template_decl here.
+       (end_template_parm_list): Not here.
+       (process_template_parm): No need to add 1 to it now.
+       * *.c: Use processing_template_decl instead of current_template_parms
+       to check for being in a template.
+
+       * pt.c (uses_template_parms): Handle SCOPE_REF.  Fix CONSTRUCTOR.
+       (tsubst_copy): Handle CONSTRUCTOR.
+       (instantiate_decl): Set up context properly for variables.
+       * decl2.c (build_expr_from_tree): Handle CONSTRUCTOR.
+       * class.c (finish_struct): Reverse CLASSTYPE_TAGS.
+
+Wed Sep 18 13:30:20 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+       * lex.c (enum tree_node_kind) [GATHER_STATISTICS]: Put the enum back.
+
+Wed Sep 18 04:24:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * method.c (make_thunk): Call comdat_linkage before setting the
+       TREE_CODE.
+
+       * decl2.c (comdat_linkage): Use make_decl_one_only.
+       (import_export_decl): Likewise.
+       * decl.c (init_decl_processing): Check supports_one_only instead of
+       SUPPORTS_WEAK.
+
+Sat Sep 14 08:34:41 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * decl2.c (grokfield): Tighten checking for access decls.
+
+       * decl.c (make_typename_type): Resolve references to
+       current_class_type.  Set CLASSTYPE_GOT_SEMICOLON.
+       (lookup_name_real): Types that depend on a template parameter get
+       an implicit 'typename' unless they're in the current scope.
+       (start_decl_1): We don't care about incomplete types that depend
+       on a template parm.
+       (grokdeclarator): Resolve 'typename's in the type specifier that
+       refer to members of the current scope.
+
+       * call.c (build_over_call): Remove 'inline called before
+       definition' diagnostic.
+       (build_method_call): Likewise.
+       * decl.c (duplicate_decls): Downgrade 'used before declared
+       inline' to a warning, only with -Winline.
+
+Fri Sep 13 17:31:40 1996  Stan Shebs  <shebs@andros.cygnus.com>
+
+       * mpw-make.sed: Fix include paths, add @DASH_C_FLAG@ to compile.
+
 Wed Sep 11 22:38:13 1996  Gerald Baumgartner  <gb@cs.purdue.edu>
 
        * call.c (build_method_call): When calling a signature