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
	default implementation, as in other cases, let instance_ptr simply
	be instance.

Wed Sep 11 22:14:44 1996  Mike Stump  <mrs@cygnus.com>

	* parse.y (simple_stmt): Cleanup and use do_poplevel ().

Wed Sep 11 22:10:48 1996  Mike Stump  <mrs@cygnus.com>

	* except.c (expand_start_catch_block): Add a pushlevel so that -g
	works on hppa and SPARC.

Wed Sep 11 10:18:06 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* typeck.c (build_indirect_ref): Catch PTR being an error_mark_node.

Mon Sep  9 19:51:14 1996  Gerald Baumgartner  <gb@cs.purdue.edu>

	* call.c (build_over_call): Check first whether DECL_CONTEXT exists
	before testing whether it's a signature.

Sun Sep  8 16:06:57 1996  Gerald Baumgartner  <gb@cs.purdue.edu>

	* call.c (build_new_method_call): Don't complain about signature
	pointers and references not being an aggr type.
	(build_this): If a signature pointer or reference was passed in,
	just return it.
	(build_new_method_call): If instance is a signature pointer, set
	basetype to the signature type of instance.
	* sig.c (build_signature_method_call): Deleted basetype and
	instance parameters, they can be found as the DECL_CONTEXT of
	function and as the first argument passed in.
	* cp-tree.h: Changed declaration of build_signature_method_call.
	* call.c (build_method_call): Deleted first two arguments in call
	of build_signature_method_call.
	(build_over_call): Added call to build_signature_method_call.

Thu Sep  5 16:51:28 1996  Jason Merrill  <jason@yorick.cygnus.com>

	* typeck.c (build_c_cast): Don't tack a non_lvalue_expr onto a
	target_expr.

Thu Sep  5 10:05:38 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* cvt.c (convert_to_reference): Use %#T, not %#D, for error.

Wed Sep  4 17:16:09 1996  Bob Manson  <manson@charmed.cygnus.com>

	* except.c (expand_start_try_stmts): Move to except.c in the backend.
	(expand_end_try_stmts): Remove.

	* init.c (perform_member_init): Use add_partial_entry () instead
	of directly manipulating lists.
	(emit_base_init): Likewise.

Wed Sep  4 12:14:36 1996  Mike Stump  <mrs@cygnus.com>

	* except.c (expand_exception_blocks): Always make sure USE and
	CLOBBER insns that came at the end still do, the backend relies
	upon this.

Wed Sep  4 07:44:48 1996  Jason Merrill  <jason@yorick.cygnus.com>

	* call.c (build_over_call): We can only use a TARGET_EXPR of the
	right type.

Tue Sep  3 19:26:05 1996  Jason Merrill  <jason@yorick.cygnus.com>

	* cvt.c (convert_to_reference): Revert last change, don't complain
	about temp without target decl.

Tue Sep  3 10:22:56 1996  Mike Stump  <mrs@cygnus.com>

	* decl.c (grokdeclarator): Don't core dump when void() is given.

Tue Sep  3 02:38:56 1996  Jason Merrill  <jason@yorick.cygnus.com>

	* decl.c (copy_args_p): Don't crash.

Fri Aug 30 14:26:57 1996  Mike Stump  <mrs@cygnus.com>

	* pt.c (tsubst): And support template args inside the exception
	specification.

	* pt.c (tsubst): Add support for exception specifications in
	template functions.

Fri Aug 30 10:01:55 1996  Mike Stump  <mrs@cygnus.com>

	* cp-tree.def (DECL_STMT): Eliminate the throw spec field, only 3
	fields now.
	* cp-tree.h (start_decl): Eliminate the throw spec parameter.
	(start_function): Likewise.
	(start_method): Likewise.
	(grokfield): Likewise.
	(make_call_declarator): Add throw spec parameter.
	(set_quals_and_spec): Add routine.
	* lex.c (set_quals_and_spec): Likewise.
	* decl.h (grokdeclarator): Eliminate the throw spec parameter.
	* decl.c (shadow_tag): Eliminate the throw spec parameter to
	grokdeclarator.
	(groktypename): Likewise.
	(start_decl): Eliminate the throw spec parameter.  Eliminate the
	throw spec parameter to grokdeclarator.  Eliminate the throw spec
	field in DECL_STMT.
	(cp_finish_decl): Eliminate the throw s