ChangeLog revision 52750
152750SobrienSun Oct 24 23:54:10 PDT 1999 Jeff Law  (law@cygnus.com)
252750Sobrien
352750Sobrien	* gcc-2.95.2 Released.
452750Sobrien
552750Sobrien1999-09-06  Mark Mitchell  <mark@codesourcery.com>
652750Sobrien
752750Sobrien	* pt.c (tsubst): Back out 1999-08-06 patch.  Use fold and
852750Sobrien	decl_constant_value to simplify array bounds.
952750Sobrien
1052750Sobrien1999-08-19  Jason Merrill  <jason@yorick.cygnus.com>
1152750Sobrien
1252750Sobrien	* cp-tree.h: Declare flag_use_repository.
1352750Sobrien	* pt.c (do_decl_instantiation): Don't complain about duplicate
1452750Sobrien	instantiation with -frepo.
1552750Sobrien	(do_type_instantiation): Likewise.
1652750Sobrien
1752750Sobrien1999-08-14  Jason Merrill  <jason@yorick.cygnus.com>
1852750Sobrien
1952750Sobrien	* decl2.c (lookup_arg_dependent): Note that we've already checked
2052750Sobrien	the current namespace.
2152750Sobrien
2252284SobrienMon Aug 16 01:29:24 PDT 1999 Jeff Law  (law@cygnus.com)
2348743Sobrien
2452284Sobrien	* gcc-2.95.1 Released.
2548743Sobrien
2652284Sobrien1999-08-12  Mark Mitchell  <mark@codesourcery.com>
2752284Sobrien
2852284Sobrien	* decl2.c (lang_decode_option): Deprecate signatures.
2952284Sobrien
3052284Sobrien1999-08-11  Martin v. Loewis  <martin@mira.isdn.cs.tu-berlin.de>
3152284Sobrien
3252284Sobrien	* lex.c (do_identifier): If we find a hidden type after a global
3352284Sobrien	was selected already, continue using the global.
3452284Sobrien
3552284Sobrien1999-08-10  Martin v. Loewis  <martin@mira.isdn.cs.tu-berlin.de>
3652284Sobrien
3752284Sobrien	* decl2.c (set_decl_namespace): Do not complain about non-matching
3852284Sobrien	decls if processing a template.
3952284Sobrien
4052284Sobrien1999-08-09  Jason Merrill  <jason@yorick.cygnus.com>
4152284Sobrien
4252284Sobrien	* parse.y (function_try_block): Call end_protect_partials
4352284Sobrien	before expand_start_all_catch.
4452284Sobrien
4552284Sobrien1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
4652284Sobrien
4752284Sobrien	* pt.c (maybe_get_template_decl_from_type_decl): Make sure that
4852284Sobrien	we're looking at a class.
4952284Sobrien
5052284Sobrien	* decl.c (lookup_name_real): Set the complain flag if we're
5152284Sobrien	looking for a namespace member.
5252284Sobrien
5352284Sobrien	* decl.c (pushdecl): Only give an error for shadowing a parm 
5452284Sobrien	from *this* function.
5552284Sobrien
5652284Sobrien	* decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Only
5752284Sobrien	build_expr_from_tree on the args of a TEMPLATE_ID_EXPR.
5852284Sobrien
5952284Sobrien	* class.c (mark_overriders): Fix order of args to overrides.
6052284Sobrien	(warn_hidden): Likewise.  Fix for having virtual and non-virtual
6152284Sobrien	functions with the same name.
6252284Sobrien
6352284Sobrien	* cp-tree.h (DECL_VIRTUAL_CONTEXT): New macro.
6452284Sobrien	* typeck.c (expand_ptrmemfunc_cst): Calculate delta correctly for
6552284Sobrien	virtual functions and MI.  Simplify.
6652284Sobrien
6752284Sobrien	* typeck.c (c_expand_return): Downgrade pedwarn about returning NULL
6852284Sobrien	from op new to warning.
6952284Sobrien
7052284Sobrien	* decl2.c (reparse_absdcl_as_casts): Don't warn about old-style
7152284Sobrien	casts in system headers or extern "C" blocks.
7252284Sobrien
7352284Sobrien	* pt.c (do_decl_instantiation): Downgrade duplicate instantiation
7452284Sobrien	errors to pedwarn.
7552284Sobrien
7652284Sobrien	* error.c (dump_type_real): Handle TREE_LIST again.
7752284Sobrien
7852284Sobrien	* typeck.c (comp_target_parms): Don't complain about 
7952284Sobrien	converting from () to (...) if !flag_strict_prototype.
8052284Sobrien
8152284Sobrien	* class.c (instantiate_type): Downgrade errors for object-dependent
8252284Sobrien	memfn refs to pedwarn.
8352284Sobrien
8452284Sobrien1999-08-06  Alexandre Oliva  <oliva@dcc.unicamp.br>
8552284Sobrien
8652284Sobrien	* pt.c (tsubst): Use build_index_type to build in-template array
8752284Sobrien	index type.  Fixes g++.oliva/dwarf1.C.
8852284Sobrien	* decl.c (grokdeclarator): Likewise, just for consistency, as it
8952284Sobrien	doesn't seem to trigger the bug without it.
9052284Sobrien
9152284SobrienThu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
9252284Sobrien
9352284Sobrien        * typeck2.c: Update URLs and mail addresses.
9452284Sobrien
9552284Sobrien1999-08-03  Mumit Khan  <khan@xraylith.wisc.edu>
9652284Sobrien
9752284Sobrien	* decl.c (start_decl): Set attributes before duplicate_decls call.
9852284Sobrien
9952284SobrienWed Jul 28 21:39:31 PDT 1999 Jeff Law  (law@cygnus.com)
10052284Sobrien
10152284Sobrien	* gcc-2.95 Released.
10252284Sobrien
10352284SobrienSun Jul 25 15:24:21 1999  Jeffrey A Law  (law@cygnus.com)
10452284Sobrien
10552284Sobrien	* g++FAQ.texi: Deleted per Joe Buck's request.
10652284Sobrien	* Makefile.in: Corresponding changes.
10752284Sobrien
10852284SobrienSat Jul 17 23:50:47 1999  Jeffrey A Law  (law@cygnus.com)
10952284Sobrien
11052284Sobrien	* Makefile.in (INTERFACE): Bump to 2.
11152284Sobrien
11252284Sobrien1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
11352284Sobrien        
11452284Sobrien	* typeck2.c (my_friendly_abort): Updated URL with bug reporting
11552284Sobrien	instructions to gcc.gnu.org.  Removed e-mail address.
11652284Sobrien
11752284Sobrien1999-07-15  Mark Mitchell  <mark@codesourcery.com>
11852284Sobrien
11952284Sobrien        * pt.c (check_default_tmpl_args): Handle friends defined in the
12052284Sobrien        class just like member functions defined in the class.
12152284Sobrien
12252284SobrienThu Jul 15 01:26:49 1999  H.J. Lu  <hjl@gnu.org>
12352284Sobrien
12452284Sobrien	* decl.c (duplicate_decls): Relax restriction for exception
12552284Sobrien	checks on duplicate symbols.
12652284Sobrien
12752284Sobrien1999-07-07  Jason Merrill  <jason@yorick.cygnus.com>
12852284Sobrien
12952284Sobrien	* decl.c (grokdeclarator): Update the names of all variants when
13052284Sobrien	de-anonymizing.
13152284Sobrien
13252284SobrienWed Jul  7 01:26:47 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
13352284Sobrien
13452284Sobrien	* decl2.c (mark_vtable_entries): Fix check for rtti offset.
13552284Sobrien
13652284Sobrien1999-06-26  Richard Henderson  <rth@cygnus.com>
13752284Sobrien
13852284Sobrien	* decl.c (cp_finish_decl): Fix typo in cp_warning_at call.
13952284Sobrien
14052284Sobrien1999-06-21  Mark Mitchell  <mark@codesourcery.com>
14152284Sobrien
14252284Sobrien	* init.c (expand_aggr_vbase_init): Rename to
14352284Sobrien	construct_virtual_bases.  Conditionalize construction here, 
14452284Sobrien	rather than ...
14552284Sobrien	(emit_base_init): Here.
14652284Sobrien
14752284Sobrien1999-06-19  Mark Mitchell  <mark@codesourcery.com>
14852284Sobrien
14952284Sobrien        * semantics.c (finish_asm_statement): Apply decay conversions to
15052284Sobrien        input operands.
15152284Sobrien
15252284Sobrien	* decl.c (expand_static_init): When building an anonymous function
15352284Sobrien	for use with atexit, compute its body before and after entering
15452284Sobrien	the function.
15552284Sobrien
15652284Sobrien1999-06-18  Mark Mitchell  <mark@codesourcery.com>
15752284Sobrien
15852284Sobrien	* init.c (expand_aggr_vbase_init): Add flag parameter.
15952284Sobrien	(build_partial_cleanup_for): Remove, inlining into ..
16052284Sobrien	(expand_cleanup_for_base): ... here.  Take flag parameter.
16152284Sobrien	(emit_base_init): Pass the in_chrg parameter to
16252284Sobrien	emit_aggr_vbase_init. 
16352284Sobrien	(emit_aggr_vbase_init): Pass it to expand_cleanup_for_base.
16452284Sobrien	
16552284Sobrien1999-06-16  Mark Mitchell  <mark@codesourcery.com>
16652284Sobrien
16752284Sobrien	* decl2.c (import_export_decl): Use same_type_p, rather than
16852284Sobrien	relying on pointer-equality for types.
16952284Sobrien
17052284Sobrien	* method.c (do_build_copy_constructor): Simplify.
17152284Sobrien
17252284Sobrien	* call.c (build_method_call): Remove bogus code for two-argument
17352284Sobrien	delete.
17452284Sobrien	* init.c (build_new_1): Expand on comment, and remove dead code.
17552284Sobrien
17652284Sobrien	* init.c (expand_cleanup_for_base): New function, split out
17752284Sobrien	from ...
17852284Sobrien	(emit_base_init): Here.
17952284Sobrien	(expand_aggr_vbase_init): Use it.
18052284Sobrien
18152284Sobrien1999-06-15  Mark Mitchell  <mark@codesourcery.com>
18252284Sobrien
18352284Sobrien	* cp-tree.h (class_cache_firstobj): Declare.
18452284Sobrien	(maybe_push_cache_obstack): Rename to push_cache_obstack.
18552284Sobrien	* class.c (permanent_obstack): Remove declaration.
18652284Sobrien	(class_cache_firstobj): Make it global.
18752284Sobrien	(add_method): Don't use permanent_obstack directly.
18852284Sobrien	(pushclass): Only free the class_cache_obstack if we know how far
18952284Sobrien	back to free it.
19052284Sobrien	(maybe_push_cache_obstack): Rename to push_cache_obstack.
19152284Sobrien	* decl.c: Remove dead comment.
19252284Sobrien	(saved_scope): Add class_cache_firstobj.
19352284Sobrien	(push_to_top_level): Save it.
19452284Sobrien	(pop_from_top_level): Restore it.
19552284Sobrien	(push_class_level_binding): Use push_cache_obstack, not
19652284Sobrien	maybe_push_cache_obstack.
19752284Sobrien	* search.c (push_class_decls): Likewise.
19852284Sobrien
19952284Sobrien1999-06-14  Nathan Sidwell  <nathan@acm.org>
20052284Sobrien
20152284Sobrien	* call.c (build_new_op): Remove REF_BIND from all operands.
20252284Sobrien
20352284Sobrien1999-06-07  Mark Mitchell  <mark@codesourcery.com>
20452284Sobrien
20552284Sobrien	* search.c (convert_pointer_to_single_level): Reimplement without
20652284Sobrien	using get_binfo.
20752284Sobrien
20852284Sobrien1999-06-06  Mark Mitchell  <mark@codesourcery.com>
20952284Sobrien
21052284Sobrien	* method.c (is_back_referenceable_type): Back-reference bools when
21152284Sobrien	not squangling.
21252284Sobrien
21352284Sobrien1999-06-04  Jason Merrill  <jason@yorick.cygnus.com>
21452284Sobrien
21552284Sobrien	* semantics.c (finish_if_stmt_cond): Copy cond to permanent_obstack.
21652284Sobrien	(finish_while_stmt_cond, finish_do_stmt, finish_for_cond): Likewise.
21752284Sobrien
21852284Sobrien1999-05-30  Mark Mitchell  <mark@codesourcery.com>
21952284Sobrien
22052284Sobrien	* lex.c (make_lang_type): Create TYPE_BINFO for
22152284Sobrien	TEMPLATE_TYPE_PARMs just like for non-template types.
22252284Sobrien
22352284Sobrien1999-05-28  Nathan Sidwell  <nathan@acm.org>
22452284Sobrien
22552284Sobrien	* decl.c (complete_array_type): Allocate off same obstack. Fix
22652284Sobrien	DO_DEFAULT comment to match reality.
22752284Sobrien
22852284Sobrien1999-05-22  Mark Mitchell  <mark@codesourcery.com>
22952284Sobrien
23052284Sobrien	* tree.c (mapcar): Handle NON_LVALUE_EXPR.
23152284Sobrien
23252284Sobrien1999-05-21  Mark Mitchell  <mark@codesourcery.com>
23352284Sobrien
23452284Sobrien	* typeck.c (build_ptrmemfunc): Handle PTRMEM_CSTs carefully to
23552284Sobrien	reveal optimization opportunities.
23652284Sobrien
23752284Sobrien1999-05-20  Mark Mitchell  <mark@codesourcery.com>
23852284Sobrien
23952284Sobrien	* decl.c (grokdeclarator): Don't treat [] as indicating a
24052284Sobrien	zero-sized array in a typedef.
24152284Sobrien
24252284Sobrien	* call.c (build_object_call): Don't look at DECL_NAME for a type.
24352284Sobrien	(pt.c): Or CP_TYPE_QUALS for an ERROR_MARK.
24452284Sobrien	(typeck.c): Or TYPE_MAIN_VARIANT for a type.
24552284Sobrien
24652284Sobrien1999-05-20  Jason Merrill  <jason@yorick.cygnus.com>
24752284Sobrien
24852284Sobrien	* tree.c (lvalue_p_1): A NOP_EXPR can be an lvalue.
24952284Sobrien	(build_cplus_new): Make sure that what we return is of the right type.
25052284Sobrien
25152284Sobrien1999-05-20  Mark Mitchell  <mark@codesourcery.com>
25252284Sobrien
25352284Sobrien	* cp-tree.h (make_ptrmem_cst): New function.
25452284Sobrien	* expr.c (cplus_expand_constant): Split out from ...
25552284Sobrien	(cplus_expand_expr): Here.  Use cplus_expand_constant.
25652284Sobrien	(init_cplus_expand): Set lang_expand_constant.
25752284Sobrien	* pt.c (convert_nontype_argument): Use make_ptrmem_cst.
25852284Sobrien	* tree.c (make_ptrmem_cst): Define.
25952284Sobrien	* typeck.c (unary_complex_lvalue): Use make_ptrmem_cst.
26052284Sobrien	* typeck2.c (initializer_constant_valid_p): Use make_ptrmem_cst.
26152284Sobrien
26252284Sobrien1999-05-19  Mark Mitchell  <mark@codesourcery.com>
26352284Sobrien
26452284Sobrien	* decl2.c (start_static_storage_duration_function): Fix comment.
26552284Sobrien	(finish_file): Create static storage duration functions lazily.
26652284Sobrien
26752284SobrienWed May 19 02:50:53 1999  Arvind Sankar <arvinds@mit.edu>
26852284Sobrien
26952284Sobrien	* gxxint.texi: Fix typo.
27052284Sobrien
27152284Sobrien1999-05-18  Jason Merrill  <jason@yorick.cygnus.com>
27252284Sobrien
27352284Sobrien	* call.c (joust): Compare the types of the conv ops, not the
27452284Sobrien	target types of the conversions.
27552284Sobrien
27652284SobrienTue May 18 00:21:34 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
27752284Sobrien
27852284Sobrien	* lang-specs.h: Define __GNUC__ and __GNUC_MINOR__ only if -no-gcc
27952284Sobrien	was not given.
28052284Sobrien
28152284Sobrien1999-05-17  Mark Mitchell  <mark@codesourcery.com>
28252284Sobrien
28352284Sobrien	* cp-tree.def (TEMPLATE_ID_EXPR): Update documentation.
28452284Sobrien	* decl.c (grokfndecl): Don't allow inline declarations of friend
28552284Sobrien	template specializations, or friend template specializations with
28652284Sobrien	default arguments.
28752284Sobrien	* pt.c (tsubst): Handle substitution into array types that does
28852284Sobrien	not yield a fixed upper bound, even when not processing a
28952284Sobrien	template.
29052284Sobrien	(tsubst_copy): Deal with the fact that the second operand to a
29152284Sobrien	TEMPLATE_ID_EXPR may be NULL_TREE, a TREE_LIST, or a TREE_VEC.
29252284Sobrien	* search.c (marked_pushdecls_p): Don't descend into
29352284Sobrien	TEMPLATE_TYPE_PARMs and the like.
29452284Sobrien	(unmarked_pushdecls_p): Likewise.
29552284Sobrien	
29652284Sobrien	* call.c (build_over_call): Don't throw away
29752284Sobrien	initializations/copies of empty classes; use MODIFY_EXPR and
29852284Sobrien	INIT_EXPR as for non-empty classes.
29952284Sobrien	* class.c (finish_struct_1): Put the padding byte for an empty
30052284Sobrien	class on the TYPE_NONCOPIED_PARTS list for the class.
30152284Sobrien
30252284Sobrien1999-05-16  Mark Mitchell  <mark@codesourcery.com>
30352284Sobrien
30452284Sobrien	* decl2.c (build_expr_from_tree): Handle COMPONENT_REFs that
30552284Sobrien	indicate a reference to a field that is a qualified name.
30652284Sobrien
30752284Sobrien1999-05-16  Jason Merrill  <jason@yorick.cygnus.com>
30852284Sobrien
30952284Sobrien	* decl2.c (finish_objects): Don't use .?tors.* if we don't have
31052284Sobrien	ASM_OUTPUT_CONSTRUCTOR.
31152284Sobrien
31252284Sobrien	* friend.c (do_friend): Add attrlist arg.  Remove support for
31352284Sobrien	getting a non-decl as 'decl'.
31452284Sobrien	* decl.c (grokfndecl): Remove attrlist arg.  Don't set attrs or
31552284Sobrien	rtl.
31652284Sobrien	(grokdeclarator): Adjust.
31752284Sobrien	* cp-tree.h: Adjust.
31852284Sobrien
31952284Sobrien1999-05-16  Mark Mitchell  <mark@codesourcery.com>
32052284Sobrien
32152284Sobrien	* cp-tree.h (permanent_p): New function.
32252284Sobrien	* init.c (build_new_1): Use mapcar, not copy_node, to copy a
32352284Sobrien	possibly complex tree node.
32452284Sobrien	* tree.c (mapcar): Adjust comments, and follow coding standards in
32552284Sobrien	conditional.
32652284Sobrien	(permanent_p): New function.
32752284Sobrien
32852284Sobrien1999-05-13  Per Bothner  <bothner@cygnus.com>
32952284Sobrien
33052284Sobrien	* class.c (push_lang_context):  Turn off DECL_IGNORED_P for
33152284Sobrien	primitive Java types, if we actually see `extern "Java"'.
33252284Sobrien
33352284Sobrien1999-05-10 18:21 -0400  Zack Weinberg  <zack@rabi.phys.columbia.edu>
33452284Sobrien
33552284Sobrien	* lang-specs.h: Pass -$ to the preprocessor.
33652284Sobrien
33752284Sobrien1999-05-10  Jason Merrill  <jason@yorick.cygnus.com>
33852284Sobrien
33952284Sobrien	* init.c (build_offset_ref): Wrap baselinks in OFFSET_REF, too.
34052284Sobrien	Don't bother wrapping an OFFSET_TYPE around unknown_type_node.
34152284Sobrien	(resolve_offset_ref): Don't handle a raw baselink.
34252284Sobrien	* cvt.c (build_expr_type_conversion): Likewise.
34352284Sobrien	* typeck.c (decay_conversion, build_c_cast, convert_for_assignment,
34452284Sobrien	convert_for_initialization): Likewise.
34552284Sobrien	* class.c (instantiate_type): Handle seeing a baselink under an
34652284Sobrien	OFFSET_REF.
34752284Sobrien	* error.c (dump_expr): Likewise.	
34852284Sobrien	* pt.c (for_each_template_parm): Likewise.
34952284Sobrien	(resolve_overloaded_unification): Likewise.
35052284Sobrien	* tree.c (is_overloaded_fn, really_overloaded_fn): Likewise.
35152284Sobrien	* typeck.c (expr_sizeof): Also complain about other permutations
35252284Sobrien	of overloaded functions.
35352284Sobrien
35452284Sobrien1999-05-07  Jason Merrill  <jason@yorick.cygnus.com>
35552284Sobrien
35652284Sobrien	* init.c (resolve_offset_ref): Don't return a raw method.
35752284Sobrien	Use BASELINK_P.
35852284Sobrien	* typeck.c (decay_conversion): Don't handle a raw method.
35952284Sobrien	Resolve all OFFSET_REFs.
36052284Sobrien	(get_member_function_from_ptrfunc): 0 is a valid vtable index.
36152284Sobrien	(build_binary_op_nodefault): Handle resolving overloaded fns.  Use
36252284Sobrien	same_type_p for pmf bits.  Don't use build_binary_op to compare
36352284Sobrien	raw pointers to methods.
36452284Sobrien	(convert_for_assignment): Check for OFFSET_REF, not OFFSET_TYPE,
36552284Sobrien	to decide when to call resolve_offset_ref.
36652284Sobrien	(build_c_cast, convert_for_initialization): Likewise.
36752284Sobrien	* cvt.c (build_expr_type_conversion): Likewise.
36852284Sobrien
36952284Sobrien1999-05-06  Nathan Sidwell  <nathan@acm.org>
37052284Sobrien
37152284Sobrien	* call.c (build_new_method_call): Use TYPE_MAIN_VARIANT of class.
37252284Sobrien
37352284Sobrien1999-05-05  Mark Mitchell  <mark@codesourcery.com>
37452284Sobrien
37552284Sobrien	* decl2.c (start_objects): Don't let static constructors and
37652284Sobrien	destructors get inlined.
37752284Sobrien
37852284Sobrien	* parse.y (nested_name_specifier): Make sure ordinary types are
37952284Sobrien	complete, just like template types.
38052284Sobrien	* parse.c: Regenerated.
38152284Sobrien
38252284Sobrien	* pt.c (check_explicit_specialization): Improve error messages.
38352284Sobrien
38452284Sobrien1999-05-04  Martin von L�wis  <loewis@informatik.hu-berlin.de>
38552284Sobrien
38652284Sobrien	* typeck.c (string_conv_p): Use same_type_p to check whether we
38752284Sobrien	try to convert between char and wchar_t.
38852284Sobrien
38952284Sobrien1999-05-03  Mark Mitchell  <mark@codesourcery.com>
39052284Sobrien
39152284Sobrien	* search.c (lookup_field_r): Set the TREE_TYPE of an ambiguous
39252284Sobrien	lookup to error_mark_node here.
39352284Sobrien	(lookup_member): Revise documentation.  Add comments.  Don't set
39452284Sobrien	the TREE_TYPE to error_mark_node here, and don't build up an extra
39552284Sobrien	TREE_LIST for ambiguous lookups.
39652284Sobrien	(setup_class_bindings): Adjust accordingly.
39752284Sobrien	(push_class_decls): Revise out-of-date comments.
39852284Sobrien	
39952284Sobrien	* typeck.c (build_const_cast): Tighten checks for legality.
40052284Sobrien
40152284Sobrien1999-05-02  Martin von L�wis  <loewis@informatik.hu-berlin.de>
40252284Sobrien
40352284Sobrien	* init.c (build_member_call): Lookup names coming from
40452284Sobrien	namespace-scoped LOOKUP_EXPR.
40552284Sobrien
40652284Sobrien1999-05-03  Jim Blandy  <jimb@zwingli.cygnus.com>
40752284Sobrien
40852284Sobrien	* gxxint.texi: Add documentation for 'I'.
40952284Sobrien
41052284Sobrien1999-05-02  Martin von L�wis  <loewis@informatik.hu-berlin.de>
41152284Sobrien
41252284Sobrien	* tinfo.cc (operator==): Qualify type_info with std::.
41352284Sobrien
41452284Sobrien1999-05-02  Mark Mitchell  <mark@codesourcery.com>
41552284Sobrien
41652284Sobrien	* cp-tree.h (lang_decl_flags): Remove comdat.  Updated dummy.
41752284Sobrien	(DECL_COMDAT): Remove definition.
41852284Sobrien
41952284Sobrien1999-05-01  Mark Mitchell  <mark@codesourcery.com>
42052284Sobrien
42152284Sobrien	* decl.c (wrapup_globals_for_namespace): Fix thinko in previous
42252284Sobrien	change.
42352284Sobrien
42452284Sobrien1999-04-30  Mark Mitchell  <mark@codesourcery.com>
42552284Sobrien
42652284Sobrien	* class.c (build_vtable): Use build_lang_decl when building
42752284Sobrien	vtables, not just build_decl.
42852284Sobrien	(prepare_fresh_vtable): Likewise.
42952284Sobrien	* decl.c (wrapup_globals_for_namespace): Mark vtables as
43052284Sobrien	DECL_EXTERNAL when calling wrapup_global_declarations.
43152284Sobrien	* decl2.c (priority_info_s): Add initializations_p and
43252284Sobrien	destructions_p members.
43352284Sobrien	(finish_vtable_vardecl): Use TREE_SYMBOL_REFERENCED, not TREE_USED,
43452284Sobrien	when deciding what vtables to write out.
43552284Sobrien	(ssdf_decls): New variable.
43652284Sobrien	(ssdf_decls_used): Likewise.
43752284Sobrien	(start_static_storage_duration_function): Deal with being called
43852284Sobrien	multiple times.  Avoid inlining this function.
43952284Sobrien	(generate_inits_for_priority): Deal with reuse of priority map.
44052284Sobrien	(get_priority_info): Clear initializations_p and destructions_p.
44152284Sobrien	(do_static_initialization): Tweak comment.
44252284Sobrien	(do_static_destruction): Likewise.  Fix condition on sentries for
44352284Sobrien	destruction. 
44452284Sobrien	(generate_ctor_or_dtor_function): Call all of the static storage
44552284Sobrien	duration functions.
44652284Sobrien	(generate_ctor_or_dtor_function_for_priority): Check
44752284Sobrien	initializations_p and destructions_p to see what priorities need
44852284Sobrien	initialization functions.
44952284Sobrien	(finish_file): Rework to generate multiple static storage duration
45052284Sobrien	functions, rather than just one.
45152284Sobrien	
45252284Sobrien	* typeck.c (build_const_cast): Tweak last change to handle
45352284Sobrien	templates correctly.
45452284Sobrien
45552284Sobrien	* typeck.c (build_const_cast): Disallow use of const_cast to
45652284Sobrien	anything but a pointer or reference type.
45752284Sobrien
45852284Sobrien1999-04-30  Nathan Sidwell  <nathan@acm.org>
45952284Sobrien
46052284Sobrien	* decl.c (cp_finish_decl): Don't permit arrays of abstract or
46152284Sobrien	signature type.
46252284Sobrien
46352284Sobrien1999-04-29  Mark Mitchell  <mark@codesourcery.com>
46452284Sobrien
46552284Sobrien	* decl2.c (do_static_destruction): Remove obsolete FIXME comment.
46652284Sobrien	(finish_file): Indent comments properly.
46752284Sobrien
46852284Sobrien1999-04-29  Richard Henderson  <rth@cygnus.com>
46952284Sobrien
47052284Sobrien	* decl2.c (do_static_initialization): Call do_pending_stack_adjust.
47152284Sobrien	(do_static_destruction): Likewise.
47252284Sobrien
47352284Sobrien1999-04-29  Nathan Sidwell  <nathan@acm.org>
47452284Sobrien
47552284Sobrien	* cp-tree.h (TYPE_NOTHROW_P): New macro.
47652284Sobrien	* decl2.c (delete_sanity): Warn on deleting void *.
47752284Sobrien	* init.c (build_new_1): Use TYPE_NOTHROW_P.
47852284Sobrien	* typeck.c (c_expand_return): cp_pedwarn on returning NULL from
47952284Sobrien	throwing operator new.
48052284Sobrien
48152284Sobrien1999-04-28  Nathan Sidwell  <nathan@acm.org>
48252284Sobrien
48352284Sobrien	* cp-tree.h (build_component_addr): Remove prototype.
48452284Sobrien	* typeck.c (build_component_addr): Make static. Remove MSG
48552284Sobrien	argument.
48652284Sobrien	(build_component_addr): Remove MSG parameter, clean up
48752284Sobrien	comment.
48852284Sobrien	(build_x_function_call): Use cp_error.
48952284Sobrien	(build_unary_op): Adjust call of build_component_addr.
49052284Sobrien	
49152284Sobrien1999-04-28  Mark Mitchell  <mark@codesourcery.com>
49252284Sobrien
49352284Sobrien	* pt.c (tsubst_friend_class): Check for NULL.
49452284Sobrien
49552284SobrienWed Apr 28 11:42:22 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
49652284Sobrien
49752284Sobrien	* search.c (binfo_for_vtable): Initialize bfvi.var.
49852284Sobrien
49952284Sobrien1999-04-27  Nathan Sidwell  <nathan@acm.org>
50052284Sobrien
50152284Sobrien	* rtti.c (build_x_typeid): Check rtti is enabled.
50252284Sobrien
50352284Sobrien1999-04-26  Mark Mitchell  <mark@codesourcery.com>
50452284Sobrien
50552284Sobrien	* search.c (is_subobject_of_p): Make sure we're looking at the
50652284Sobrien	right baseclasses.
50752284Sobrien
50852284Sobrien1999-04-26  Marc Espie  <espie@cvs.openbsd.org>
50952284Sobrien
51052284Sobrien	* Make-lang.in (cplib2.ready): Don't depend on phony targets.
51152284Sobrien
51252284Sobrien1999-04-23  Mark Mitchell  <mark@codesourcery.com>
51352284Sobrien
51452284Sobrien	* decl2.c (finish_file): Tweak handling of extern inlines so that
51552284Sobrien	they are not unnecessarily put out.
51652284Sobrien
51752284Sobrien	* search.c (is_subobject_of_p): Handle TEMPLATE_TYPE_PARMs and
51852284Sobrien	such as base classes.
51952284Sobrien
52052284Sobrien1999-04-22  Brendan Kehoe  <brendan@cygnus.com>
52152284Sobrien
52252284Sobrien	* tree.c (build_exception_variant): Fix typo: use the chain of U,
52352284Sobrien	not trying V, while cycling through U.
52452284Sobrien
52552284Sobrien1999-04-22  Mark Mitchell  <mark@codesourcery.com>
52652284Sobrien
52752284Sobrien	* cp-tree.h (lang_decl_flags): Remove returns_first_arg and
52852284Sobrien	preserves_first_arg.  Enlarge dummy accordingly.
52952284Sobrien	(DECL_TINFO_FN_P): New macro.
53052284Sobrien	(SET_DECL_TINFO_FN_P): Likeiwse.
53152284Sobrien	(DECL_RETURNS_FIRST_ARG): Remove.
53252284Sobrien	(DECL_PRESERVES_THIS): Likewise.
53352284Sobrien	(DECL_INIT_PRIORITY): New macro.
53452284Sobrien	(finish_struct_1): Change prototype.
53552284Sobrien	(cat_namespace_levels): Remove prototype.
53652284Sobrien	(vtable_decl_p): New prototype.
53752284Sobrien	(vtype_decl_p): Likewise.
53852284Sobrien	(sigtable_decl_p): Likewise.
53952284Sobrien	(walk_globals_pred): New typedef.
54052284Sobrien	(walk_globals_fn): Likewise.
54152284Sobrien	(walk_globals): New prototype.
54252284Sobrien	(walk_namespaces_fn): New typedef.
54352284Sobrien	(walk_namespaces): New prototype.
54452284Sobrien	(wrapup_globals_for_namespace): Likewise.
54552284Sobrien	(walk_vtables): Remove prototype.
54652284Sobrien	(walk_sigtables): Likewise.
54752284Sobrien	(instantiate_pending_templates): New prototype.
54852284Sobrien	* class.c (finish_struct_1): Don't return a value.
54952284Sobrien	* decl.h (pending_statics): Remove declaration.
55052284Sobrien	* decl.c (walk_namespaces_r): New function.
55152284Sobrien	(walk_globals_r): Likewise.
55252284Sobrien	(vtable_decl_p): Likewise.
55352284Sobrien	(vtype_decl_p): Likewise.
55452284Sobrien	(sigtable_decl_p): Likewise.
55552284Sobrien	(walk_namespaces): Likewise.
55652284Sobrien	(walk_globals_data): New type.
55752284Sobrien	(walk_globals): New function.
55852284Sobrien	(wrapup_globals_for_namespace): Likewise.
55952284Sobrien	(expand_static_init): Remove assertion.  Remove redundancy in
56052284Sobrien	conditional.  Don't put static data members in static_aggregates
56152284Sobrien	Tidy.
56252284Sobrien	(finish_function): Remove redundancy in conditional.  Don't set
56352284Sobrien	DECL_RETURNS_FIRST_ARG.
56452284Sobrien	(cat_namespace_levels): Remove.
56552284Sobrien	* decl2.c: Include splay-tree.h and varray.h.
56652284Sobrien	(priority_info_s): New structure.
56752284Sobrien	(finish_vtable_vardecl): Change prototype.  Adjust for new calling
56852284Sobrien	conventions.
56952284Sobrien	(prune_vtable_vardecl): Likewise.
57052284Sobrien	(finish_sigtable_vardecl): Likewise.
57152284Sobrien	(setup_initp): Remove.
57252284Sobrien	(do_dtors): Remove.
57352284Sobrien	(do_ctors): Remove.
57452284Sobrien	(start_static_storage_duration_function): New function.
57552284Sobrien	(generate_inits_for_priority): Likewise.
57652284Sobrien	(finish_static_storage_duration_function): Likewise.
57752284Sobrien	(get_priority_info): Likewise.
57852284Sobrien	(do_static_initialization): Likewise.
57952284Sobrien	(do_static_destruction): Likewise.
58052284Sobrien	(do_static_initialization_and_destruction): Likewise.
58152284Sobrien	(generate_ctor_or_dtor_function): Likewise.
58252284Sobrien	(generate_ctor_and_dtor_functions_for_priority): Likewise.
58352284Sobrien	(pending_statics): Make it a varray.
58452284Sobrien	(pending_statics_used): New variable.
58552284Sobrien	(saved_inlines): Make it a varray.
58652284Sobrien	(saved_inlines_used): New variable.
58752284Sobrien	(finish_static_data_member): Change method of updating
58852284Sobrien	pending_statics. 
58952284Sobrien	(mark_inline_for_output): Remove #if 0'd code.  Change method of
59052284Sobrien	updating saved_inlines.
59152284Sobrien	(walk_vtables): Remove.
59252284Sobrien	(walk_sigtables): Likewise.
59352284Sobrien	(import_export_decl): Use DECL_TINFO_FN_P.
59452284Sobrien	(pending_templates): Remove declaration.
59552284Sobrien	(maybe_templates): Likewise.
59652284Sobrien	(static_aggregates_initp): Likewise.
59752284Sobrien	(setup_initp): Likewise.
59852284Sobrien	(finish_objects): Simplify.
59952284Sobrien	(INITIALIZE_P_IDENTIFIER): New macro.
60052284Sobrien	(PRIORITY_IDENTIFIER): New macro.
60152284Sobrien	(SSDF_IDENTIFIER): New macro.
60252284Sobrien	(initialize_p_decl): New variable.
60352284Sobrien	(priority_decl): Likewise.
60452284Sobrien	(ssdf_decl): Likewise.
60552284Sobrien	(priority_info_map): Likewise.
60652284Sobrien	(finish_file): Recode output of static intializers and other
60752284Sobrien	file-scope finalization tasks.
60852284Sobrien	* error.c (OB_END_TEMPLATE_ID): New macro.
60952284Sobrien	(dump_type_real): Use it.
61052284Sobrien	(dump_decl): Likewise.
61152284Sobrien	(dump_function_name): Likewise.
61252284Sobrien	* lex.c (set_typedecl_interface_info): Adjust for new walk_globals
61352284Sobrien	interface.
61452284Sobrien	(check_newline): Use walk_globals, not walk_vtables.
61552284Sobrien	* pt.c (pending_tempalte_expansions): Remove.
61652284Sobrien	(set_vardecl_interface_info): Likewise.
61752284Sobrien	(pending_templates): Make static.
61852284Sobrien	(maybe_templates): Likewise.
61952284Sobrien	(instantiate_class_template): Adjust call to finish_struct_1.
62052284Sobrien	(instantiate_pending_templates): New function.
62152284Sobrien	* rtti.c (get_tinfo_fn): Use SET_DECL_TINFO_FN_P.
62252284Sobrien	* tree.c (static_aggregates_initp): Remove.
62352284Sobrien	(cp_valid_lang_attribute): Don't use it; use DECL_INIT_PRIORITY
62452284Sobrien	instead.
62552284Sobrien	* Makefile.in (decl2.o): Depend on varray.h and splay-tree.h.
62652284Sobrien
62752284Sobrien	* gxx.gperf (RETURN): Rename to RETURN_KEYWORD to avoid clashes
62852284Sobrien	with the RTL code RETURN.
62952284Sobrien	* hash.h: Regenerated.
63052284Sobrien	* lex.c (reinit_parse_for_block): Use RETURN_KEYWORD.
63152284Sobrien	* parse.y: Replace RETURN with RETURN_KEYWORD throughout.
63252284Sobrien	* parse.c: Regenerated.
63352284Sobrien	* pt.c: Include varray.h.  Include rtl.h since varray.h requires
63452284Sobrien	it.
63552284Sobrien	(inline_parm_levels): New variable.
63652284Sobrien	(inline_parm_levels_used): Likewise.
63752284Sobrien	(maybe_begin_member_template_processing): Update them.
63852284Sobrien	(maybe_end_member_template_processing): Use them, rather than
63952284Sobrien	guessing how many levels to pop.
64052284Sobrien	
64152284Sobrien	* decl.c (make_typename_type): Tighten error-checking.
64252284Sobrien
64352284Sobrien1999-04-20  Mark Mitchell  <mark@codesourcery.com>
64452284Sobrien
64552284Sobrien	* cp-tree.h (build_binary_op): Remove unneeded parameter.
64652284Sobrien	* class.c (build_vrable_entry_ref): Adjust call to
64752284Sobrien	build_binary_op.
64852284Sobrien	* decl.c (expand_static_init): Likewise.
64952284Sobrien	(grokdeclarator): Likewise.
65052284Sobrien	(finish_function): Likewise.
65152284Sobrien	* decl2.c (delete_sanity): Likewise.
65252284Sobrien	(do_dtors): Likewise.
65352284Sobrien	(do_ctors): Likewise.
65452284Sobrien	* error.c (dump_type_suffix): Likewise.
65552284Sobrien	* expr.c (cplus_expand_expr): Likewise.
65652284Sobrien	* init.c (resolve_offset_ref): Likewise.
65752284Sobrien	(build_new): Likewise.
65852284Sobrien	(build_new_1): Likewise.
65952284Sobrien	(build_vec_delete_1): Likewise.
66052284Sobrien	(expand_vec_init_catch_clause): Likewise.
66152284Sobrien	(build_delete): Likewise.
66252284Sobrien	* pt.c (tsubst): Likewise.
66352284Sobrien	* rtti.c (synthesize_tinfo_fn): Likewise.
66452284Sobrien	* search.c (expand_upcast_fixups): Likewise.
66552284Sobrien	(expand_direct_vtbls_init): Likewise.
66652284Sobrien	* typeck.c (get_member_function_from_ptrfunc): Likewise.
66752284Sobrien	(build_binary_op_nodefault): Likewise.
66852284Sobrien	(point_int_sum): Likewise.
66952284Sobrien	(pointer_diff): Likewise.
67052284Sobrien	(build_unary_op): Likewise.
67152284Sobrien	(build_modify_expr): Likewise.
67252284Sobrien	(get_delta_difference): Likewise.
67352284Sobrien	(build_ptrmemfunc): Likewise.
67452284Sobrien	(expand_ptrmemfunc_cst): Likewise.
67552284Sobrien	
67652284Sobrien1999-04-20  Jason Merrill  <jason@yorick.cygnus.com>
67752284Sobrien
67852284Sobrien	* decl.c (grokfndecl): Always call cplus_decl_attributes.
67952284Sobrien	* decl2.c (grokfield): Pass attrlist to grokdeclarator.
68052284Sobrien
68152284Sobrien1999-04-19  Mark Mitchell  <mark@codesourcery.com>
68252284Sobrien
68352284Sobrien	* cp-tree.h (finish_static_data_member_decl): New function.
68452284Sobrien	* decl2.c (finish_static_data_member_decl): Split out from ...
68552284Sobrien	(grokfield): Here.
68652284Sobrien	* pt.c (instantiate_class_template): Use it here instead of 
68752284Sobrien	trying to fake it.
68852284Sobrien	(tsubst_decl): Don't set DECL_ASSEMBLER_NAME;
68952284Sobrien	finish_static_data_member_decl will do that.  Explicit set
69052284Sobrien	DECL_EXTERNAL to match non-template processing.
69152284Sobrien	
69252284Sobrien1999-04-18  Mark Mitchell  <mark@codesourcery.com>
69352284Sobrien
69452284Sobrien	* cp-tree.h (finish_class_definition): Add parameter.
69552284Sobrien	* parse.y (structsp): Use it.  Don't call pop_scope here.
69652284Sobrien	* parse.c: Regenerated.
69752284Sobrien	* semantics.c (finish_class_definition): Pop it here.
69852284Sobrien
69952284Sobrien1999-04-17  Mark Mitchell  <mark@codesourcery.com>
70052284Sobrien
70152284Sobrien	* decl.c (xref_tag): Revise handling of nested template
70252284Sobrien	declarations.
70352284Sobrien	* pt.c (check_explicit_specialization): Tweak handling of friend
70452284Sobrien	templates in template classes.
70552284Sobrien	(tsubst_friend_class): Handle friend declarations for nested
70652284Sobrien	member template classes.
70752284Sobrien	
70852284Sobrien1999-04-16  Mark Mitchell  <mark@codesourcery.com>
70952284Sobrien
71052284Sobrien	* class.c (finish_struct): Remove unused variable.
71152284Sobrien	(pushclass): Likewise.
71252284Sobrien	(invalidate_class_lookup_cache): Likewise.
71352284Sobrien	* cp-tree.def (TYPENAME_TYPE): Improve documentation.
71452284Sobrien	* decl.c (build_typename_type): Make sure TYPENAME_TYPE_FULLNAME
71552284Sobrien	doesn't get obliterated.
71652284Sobrien	(make_typename_type): Handle template classes correctly.
71752284Sobrien
71852284Sobrien	* cp-tree.h (TREE_NONLOCAL_FLAG): Remove.
71952284Sobrien	(storetags): Declare.
72052284Sobrien	* class.c (finish_struct): Don't use TREE_NONLOCAL_FLAG.
72152284Sobrien	(pushclass): Likewise.  Use storetags to install tag declarations,
72252284Sobrien	not pushtag.
72352284Sobrien	(invalidate_class_lookup_cache): Don't use TREE_NONLOCAL_FLAG.
72452284Sobrien	* decl.c (storetags): Make it global.
72552284Sobrien	(push_class_binding): Set INHERITED_VALUE_BINDING_P for an
72652284Sobrien	implicit typename declaration.
72752284Sobrien	(pushtag): Tidy.  Don't use TREE_NONLOCAL_FLAG.
72852284Sobrien	* method.c (hack_identifier): Likewise.
72952284Sobrien	* search.c (lookup_member): Likewise.
73052284Sobrien	
73152284Sobrien	* decl.c (warn_about_implicit_typename_lookup): New function.
73252284Sobrien	(lookup_name_real): Use it.  Rework handling of implicit typename
73352284Sobrien	extension.
73452284Sobrien
73552284Sobrien1999-04-15  Mark Mitchell  <mark@codesourcery.com>
73652284Sobrien
73752284Sobrien	* cp-tree.h (lookup_nested_field): Remove.
73852284Sobrien	* class.c (push_nested_class): Handle UNION_TYPEs.
73952284Sobrien	(pop_nested_class): Likewise.
74052284Sobrien	* decl.c (lookup_name_real): Don't call lookup_nested_field.
74152284Sobrien	(start_decl): Use push_nested_class, not just pushclass.
74252284Sobrien	(cp_finish_decl): Use pop_nested_class, not just popclass.
74352284Sobrien	* search.c (lookup_nested_field): Remove.
74452284Sobrien	
74552284Sobrien	* cp-tree.h (lang_type): Add documentation.
74652284Sobrien	* decl2.c (handle_class_head): Create template declarations here,
74752284Sobrien	as appropriate.
74852284Sobrien	* parse.y (class_head): Return whether or not we entered a new
74952284Sobrien	scope, as well as the type named.
75052284Sobrien	(named_class_head): Likewise.
75152284Sobrien	(named_complex_class_head_sans_basetype): Likewise.
75252284Sobrien	(structsp): Adjust accordingly.  Pop scope when required.
75352284Sobrien	* parse.c: Regenerated.
75452284Sobrien	* pt.c (check_default_tmpl_args): Robustify.
75552284Sobrien	(redeclare_class_template): Likewise.
75652284Sobrien	(instantiate_class_template): An instantiation of an
75752284Sobrien	anonymous union is itself an anonymous union.
75852284Sobrien	* semantics.c (begin_class_definition): Don't create template
75952284Sobrien	declarations here.
76052284Sobrien	
76152284Sobrien1999-04-15  Jason Merrill  <jason@yorick.cygnus.com>
76252284Sobrien
76352284Sobrien	* parse.y (after_type_declarator_intern): New nonterminal.
76452284Sobrien	(after_type_declarator): Use it.
76552284Sobrien	(direct_after_type_declarator): Likewise.  Move above 
76652284Sobrien	nonnested_type to fix reduce/reduce conflict resolution.
76752284Sobrien	(declmods): Reducing from just 'attributes' has EMPTY precedence.
76852284Sobrien	* Makefile.in (CONFLICTS): Update.
76952284Sobrien
77052284Sobrien	* decl.c (define_label): Downgrade error for jumping over a
77152284Sobrien	non-POD decl to pedwarn.
77252284Sobrien
77352284Sobrien1999-04-14  Mark Mitchell  <mark@codesourcery.com>
77452284Sobrien
77552284Sobrien	* cp-tree.h (popclass): Change declaration.
77652284Sobrien	(pop_nested_class): Likewise.
77752284Sobrien	(poplevel_class): Remove declaration.
77852284Sobrien	* call.c (convert_default_argument): Pass no arguments to
77952284Sobrien	popclass.
78052284Sobrien	* class.c (finish_struct_1): Likewise.
78152284Sobrien	(finish_struct): Likewise.
78252284Sobrien	(popclass): Remove argument.  Simplify code accordingly.
78352284Sobrien	(pop_nested_class): Likewise.
78452284Sobrien	* decl.c (poplevel_class): Declare it here, and make it static.
78552284Sobrien	(poplevel): Handle class scopes.
78652284Sobrien	(poplevel_class): Don't take an rgument.  Simplify.
78752284Sobrien	(pop_everything): Pass no arguments to pop_nested_class.
78852284Sobrien	(cp_finish_decl): Pass no arguments to popclass.
78952284Sobrien	(grokdeclarator): Pass no arguments to pop_nested_class.
79052284Sobrien	(finish_function): Likewise.
79152284Sobrien	* decl2.c (grokfield): Likewise.
79252284Sobrien	(pop_scope): Pass no arguments to popclass.
79352284Sobrien	* lex.c (do_pending_defargs): Pass no arguments to pop_nested_class.
79452284Sobrien	* pt.c (instantiate_class_template): Move call to pushclass, and
79552284Sobrien	document.  Pass no arguments to popclass.
79652284Sobrien	(regenerate_decl_from_template): Likewise.
79752284Sobrien	
79852284Sobrien1999-04-14  Jason Merrill  <jason@yorick.cygnus.com>
79952284Sobrien
80052284Sobrien	* typeck.c (build_unary_op): Handle taking the address of a unique
80152284Sobrien	bound non-static member function.
80252284Sobrien
80352284Sobrien1999-04-13  Martin von Loewis  <loewis@informatik.hu-berlin.de>
80452284Sobrien
80552284Sobrien	* lang-options.h (-Wdeprecated): New flag.
80652284Sobrien	* decl2.c (warn_deprecated): New flag.
80752284Sobrien	(lang_decode_option): Deprecated this-is-variable,
80852284Sobrien	external-templates, alt-external-templates.
80952284Sobrien	Support -Wdeprecated.
81052284Sobrien	* errfn.c (cp_deprecated): New function.
81152284Sobrien
81252284Sobrien1999-04-13  Jason Merrill  <jason@yorick.cygnus.com>
81352284Sobrien
81452284Sobrien	* decl2.c (setup_initp): Compare DECL_ASSEMBLER_NAME instead
81552284Sobrien	of the decls themselves.
81652284Sobrien
81752284Sobrien	* pt.c (tsubst_function_type): Copy attributes over.
81852284Sobrien
81952284Sobrien	* tree.c (cp_valid_lang_attribute): New fn.  Handle init_priority
82052284Sobrien	and com_interface.
82152284Sobrien	* cp-tree.h: Add prototype.
82252284Sobrien	* decl.c (init_decl_processing): Set valid_lang_attribute.
82352284Sobrien
82452284Sobrien1999-04-13  Mark Mitchell  <mark@codesourcery.com>
82552284Sobrien
82652284Sobrien	* class.c (finish_struct_1): Look at the const-ness of the field's
82752284Sobrien	type, not the TREE_READONLY-ness of the declaration.
82852284Sobrien	* method.c (synthesize_method): Likewise.
82952284Sobrien	* pt.c (tsubst_decl): Call c_apply_type_quals_to_decl when
83052284Sobrien	creating new declarations.
83152284Sobrien
83252284Sobrien1999-04-13  Mike Stump  <mrs@wrs.com>
83352284Sobrien
83452284Sobrien	* decl2.c (import_export_decl): Because vtables always reference
83552284Sobrien	virtual functions, even if they are inlined, don't allow
83652284Sobrien	-fno-implement-inlines to not emit them, instead, emit them with
83752284Sobrien	the vtable.
83852284Sobrien	* decl.c (start_function): Likewise.
83952284Sobrien
84052284Sobrien1999-04-12  Jason Merrill  <jason@yorick.cygnus.com>
84152284Sobrien
84252284Sobrien	* cp-tree.h (struct lang_type): Add com_interface.
84352284Sobrien	(CLASSTYPE_COM_INTERFACE): New macro.
84452284Sobrien	* class.c (set_rtti_entry): COM interface classes have no RTTI
84552284Sobrien	entries in their vtables; adjust.
84652284Sobrien	(add_virtual_function, finish_base_struct, skip_rtti_stuff,
84752284Sobrien	modify_one_vtable, fixup_vtable_deltas1, override_one_vtable,
84852284Sobrien	finish_struct_1): Likewise.
84952284Sobrien	* decl2.c (mark_vtable_entries): Likewise.
85052284Sobrien	* rtti.c (build_headof, get_tinfo_fn_dynamic): Likewise.
85152284Sobrien	* search.c (get_abstract_virtuals_1, get_abstract_virtuals,
85252284Sobrien	expand_upcast_fixups): Likewise.
85352284Sobrien	* tree.c (debug_binfo): Likewise.
85452284Sobrien
85552284Sobrien	* cp-tree.h (COMPARE_NO_ATTRIBUTES): New macro.
85652284Sobrien	* typeck.c (comptypes): If we get it, ignore attributes.
85752284Sobrien	* class.c (instantiate_type): Use BASELINK_P.  Change complain
85852284Sobrien	parameter to flags; 2 means ignore attributes.
85952284Sobrien	* call.c (build_op_delete_call): Pass it.
86052284Sobrien
86152284Sobrien	* decl.c (xref_tag): Only complain once about using a typedef-name
86252284Sobrien	with 'struct'.  Downgrade to pedwarn.
86352284Sobrien
86452284Sobrien	* decl.c (grokdeclarator): Allow [] syntax for zero-length array.
86552284Sobrien
86652284Sobrien	* parse.y (absdcl_intern): New nonterminal.
86752284Sobrien	(absdcl, direct_abstract_declarator): Use it.
86852284Sobrien
86952284Sobrien	* pt.c (lookup_template_class): Look through implict typename.
87052284Sobrien
87152284Sobrien1999-04-11  Mark Mitchell  <mark@codesourcery.com>
87252284Sobrien
87352284Sobrien	* friend.c (add_friend): Deal gracefully with error_mark_node.
87452284Sobrien	* method.c (build_overload_value): Handle pointers-to-members as
87552284Sobrien	template parameters.
87652284Sobrien
87752284Sobrien	* decl.c (push_binding): Fix typo in comment.
87852284Sobrien
87952284Sobrien1999-04-10  Mark Mitchell  <mark@codesourcery.com>
88052284Sobrien
88152284Sobrien	* error.c (dump_type_real): If a typename is a template-id, put
88252284Sobrien	out the template arguments.
88352284Sobrien	(dump_expr): Handle TEMPLATE_ID_EXPR.
88452284Sobrien	* pt.c (lookup_template_class): Now that full arguments are
88552284Sobrien	available everywhere, remove code that tried to guess them.
88652284Sobrien
88752284Sobrien1999-04-09  Mark Mitchell  <mark@codesourcery.com>
88852284Sobrien
88952284Sobrien	* decl.c (make_typename_type): Complain if we don't find a type
89052284Sobrien	when trying to make a typename type for a non-template type.
89152284Sobrien
89252284Sobrien1999-04-09  Jason Merrill  <jason@yorick.cygnus.com>
89352284Sobrien
89452284Sobrien	* decl.c (start_decl): Pass attributes to grokdeclarator.
89552284Sobrien	(grokdeclarator): Handle attributes on constructor-syntax
89652284Sobrien	initializers.
89752284Sobrien
89852284Sobrien1999-04-08  Mark Mitchell  <mark@codesourcery.com>
89952284Sobrien
90052284Sobrien	* error.c (dump_expr): Don't crash on INDIRECT_REFs whose operands
90152284Sobrien	don't have types.
90252284Sobrien
90352284Sobrien	* search.c (template_self_reference_p): Tweak.
90452284Sobrien
90552284Sobrien1999-04-07  Mark Mitchell  <mark@codesourcery.com>
90652284Sobrien
90752284Sobrien	* init.c (build_offset_ref): Don't build yet another weird data
90852284Sobrien	structure to describe overloaded functions.
90952284Sobrien
91052284Sobrien1999-04-06  Mark Mitchell  <mark@codesourcery.com>
91152284Sobrien
91252284Sobrien	* cp-tree.h (BASELINK_P): New macro.
91352284Sobrien	(SET_BASELINK_P): Likewise.
91452284Sobrien	* init.c (build_member_call): Remove needless assignment in if
91552284Sobrien	statement.
91652284Sobrien	* search.c (lookup_field_r): Fix handling when we are looking
91752284Sobrien	specifically for a type; these are not hidden by functions and
91852284Sobrien	variables.
91952284Sobrien	(lookup_member): Use SET_BASELINK_P.
92052284Sobrien	* tree.c (is_overloaded_fn): Use BASELINK_P.
92152284Sobrien	(really_overloaed_fn): Likewise.
92252284Sobrien	(get_first_fn): Likewise.
92352284Sobrien
92452284Sobrien1999-04-05  Mark Mitchell  <mark@codesourcery.com>
92552284Sobrien
92652284Sobrien	* decl.c (lookup_name_current_level): Tweak, and improve
92752284Sobrien	documentation.
92852284Sobrien
92952284Sobrien	* class.c (maybe_fixup_vptrs): Remove declaration.
93052284Sobrien	(build_class_init_list): Likewise.
93152284Sobrien	* decl.c (pushdecl_class_level): Call check_template_shadow here
93252284Sobrien	...
93352284Sobrien	(push_class_level_binding): ... not here.
93452284Sobrien	* search.c (dfs_push_type_decls): Only avoid
93552284Sobrien	template-self-reference TYPE_DECLs if they are from base classes.
93652284Sobrien
93752284Sobrien1999-04-04  Mark Mitchell  <mark@codesourcery.com>
93852284Sobrien
93952284Sobrien	* pt.c (check_template_shadow): Don't treat OVERLOADs as _DECL
94052284Sobrien	nodes.  Tidy.
94152284Sobrien
94252284Sobrien1999-04-03  Jason Merrill  <jason@yorick.cygnus.com>
94352284Sobrien
94452284Sobrien	* class.c (maybe_fixup_vptrs, build_class_init_list): Lose.
94552284Sobrien	(finish_struct_1): Don't call build_class_init_list.
94652284Sobrien
94752284Sobrien1999-04-02  Mark Mitchell  <mark@codesourcery.com>
94852284Sobrien
94952284Sobrien	* tinfo.h (__class_type_info): Fix illegal declaration.
95052284Sobrien
95152284Sobrien	* cp-tree.def (TEMPLATE_ID_EXPR): Update comment.
95252284Sobrien	* cp-tree.h (INHERITED_VALUE_BINDING_P): New macro.
95352284Sobrien	(IDENTIFIER_CLASS_VALUE): Improve documentation.
95452284Sobrien	(is_properly_derived_from): Declare.
95552284Sobrien	(invalidate_class_lookup_cache): Likewise.
95652284Sobrien	(maybe_maybe_note_name_used_in_class): Likewise.
95752284Sobrien	(note_name_declared_in_class): Likewise.
95852284Sobrien	(push_using_decl): Remove duplicate declaration.
95952284Sobrien	(id_in_current_class): Remove declaration.
96052284Sobrien	(push_class_binding): Change prototype.
96152284Sobrien	(clear_identitifer_class_values): Declare.
96252284Sobrien	* call.c (is_properly_derived_from): Make it global.
96352284Sobrien	(build_new_function_call): Be careful about updating candidates.
96452284Sobrien	(build_new_method_call): Handle COMPONENT_REFs.  Don't crash when
96552284Sobrien	asked to make illegal calls.
96652284Sobrien	* class.c: Include splay-tree.h.
96752284Sobrien	(class_stack_node): Add names_used slot.
96852284Sobrien	(check_member_decl_is_same_in_complete_scope): Remove.
96952284Sobrien	(add_method): Fix comment.  Push the declaration into class
97052284Sobrien	scope.
97152284Sobrien	(finish_struct_1): When popping the class, pop the bindings too.
97252284Sobrien	Remove check for data member/function member conflict.
97352284Sobrien	(finish_struct): Remove calls to
97452284Sobrien	check_member_decl_is_same_in_complete_scope.  Change calls to
97552284Sobrien	popclass.
97652284Sobrien	(pushclass): Clear names_used in the class stack entry.
97752284Sobrien	Use invalidate_class_lookup_cache to remove cached entries, rather
97852284Sobrien	than magic values with popclass.  Clear IDENTIFIER_CLASS_VALUE
97952284Sobrien	before entering a new class.  Remove dead code.  Don't mess with
98052284Sobrien	current_function_decl when pushing declarations.
98152284Sobrien	(invalidate_class_lookup_cache): New function, split out from ...
98252284Sobrien	(popclass): Here.  Clean up names_used on our way out.
98352284Sobrien	(instantiate_type): Adjust.
98452284Sobrien	(build_self_reference): Don't push the declaration here.
98552284Sobrien	(maybe_note_name_used_in_class): New function.
98652284Sobrien	(note_name_declared_in_class): Likewise.
98752284Sobrien	* decl.c (add_binding): Change prototype.
98852284Sobrien	(find_class_binding_level): New function.
98952284Sobrien	(innermost_nonclass_level): Likewise.
99052284Sobrien	(current_binding_level): Update documentation.
99152284Sobrien	(inner_binding_level): Remove.  Replace with current_binding_level
99252284Sobrien	throughout.
99352284Sobrien	(push_binding_level): Remove special handling of
99452284Sobrien	class_binding_level.
99552284Sobrien	(pop_binding_level): Likewise.  Use find_class_binding_level.
99652284Sobrien	(suspend_binding_level): Likewise.
99752284Sobrien	(global_bindings_p): Use innermost_nonclass_level.
99852284Sobrien	(toplevel_bindings_p): Likewise.
99952284Sobrien	(namespace_bindings_p): Likewise.
100052284Sobrien	(pseudo_global_level_p): Likewise.
100152284Sobrien	(push_binding): Clear INHERITED_VALUE_BINDING_P.
100252284Sobrien	(add_binding): Check for illegal multiple declarations.  Return a
100352284Sobrien	value indicating whether or not the new binding was legal.
100452284Sobrien	(push_local_binding): Skip over class binding levels.  Check
100552284Sobrien	return value from add_binding.
100652284Sobrien	(push_class_binding): Set INHERITED_VALUE_BINDING_P.  Call
100752284Sobrien	note_name_declared_in_class.
100852284Sobrien	(pushlevel_class): Remove "fake out the rest of the compiler"
100952284Sobrien	code.
101052284Sobrien	(poplevel_class): Reset IDENTIFIER_CLASS_VALUEs.
101152284Sobrien	(clear_identifier_class_values): New function.
101252284Sobrien	(pop_from_top_level): Use it.
101352284Sobrien	(pop_everything): Tweak.
101452284Sobrien	(maybe_process_template_type_declaration): Don't push the
101552284Sobrien	declaration for the template here.
101652284Sobrien	(pushtag): Don't push tag declarations into class scope here.
101752284Sobrien	(pushdecl): Apply DeMorgan's law for readability.
101852284Sobrien	(pushdecl_class_level): Remove special-case code for
101952284Sobrien	TYPE_BEING_DEFINED.  Handle OVERLOADs and anonymous unions.
102052284Sobrien	(push_class_level_bindng): Deal with inherited bindings.
102152284Sobrien	(lookup_name_real): Remove special-case code for
102252284Sobrien	TYPE_BEING_DEFINED, and some implicit typename magic.
102352284Sobrien	(grokdeclarator): Handle COMPONENT_REF for a template function.
102452284Sobrien	(build_enumerator): Don't call pushdecl_class_level here.
102552284Sobrien	(id_in_current_class): Remove.
102652284Sobrien	* decl2.c (grokfield): Don't call pushdecl_class_level or
102752284Sobrien	check_template_shadow.
102852284Sobrien	* errfn.c (cp_file_of): Don't declare.
102952284Sobrien	(cp_line_of): Likewise.
103052284Sobrien	* error.c (dump_decl): Handle an OVERLOAD.
103152284Sobrien	(cp_file_of): Likewise.
103252284Sobrien	(cp_line_of): Likewise.
103352284Sobrien	* init.c (build_member_call): Handle a COMPONENT_REF.
103452284Sobrien	* lex.c (do_identifier): Call maybe_note_name_used_in_class, not
103552284Sobrien	pushdecl_class_level.
103652284Sobrien	* method.c (hack_identifier): Build COMPONENT_REFs for references
103752284Sobrien	to member templates as well as member functions.  Remove dead
103852284Sobrien	code.
103952284Sobrien	* parse.y (left_curly): Remove.
104052284Sobrien	(nonnested_type): Call maybe_note_name_used_in_class, not
104152284Sobrien	pushdecl_class_level.
104252284Sobrien	* parse.c: Regenerated.
104352284Sobrien	(nested_name_specifier_1): Likewise.
104452284Sobrien	* pt.c (check_explicit_specialization): Adjust, for robustness.
104552284Sobrien	(check_template_shadow): Handle OVERLOADs.
104652284Sobrien	(build_template_decl): Set DECL_CONSTRUCTOR_P on the
104752284Sobrien	TEMPLATE_DECL, if appropriate.
104852284Sobrien	* search.c (envelope_add_decl): Remove.
104952284Sobrien	(dfs_pushdecls): Likewise.
105052284Sobrien	(dfs_compress_decls): Likewise.
105152284Sobrien	(dfs_push_decls): New function.
105252284Sobrien	(dfs_push_type_decls): Likewise.
105352284Sobrien	(setup_class_bindings): Likewise.
105452284Sobrien	(template_self_reference_p): Likewise.
105552284Sobrien	(lookup_field_r): Use it.
105652284Sobrien	(looup_member): Remove old comment.  Deal with ambiguity.
105752284Sobrien	(push_class_decls): Use dfs_push_decls and dfs_push_type_decls,
105852284Sobrien	and remove envelope processing.
105952284Sobrien	* semantics.c (begin_class_definition): Let pushclass push
106052284Sobrien	declarations for base classes.
106152284Sobrien	(finish_member_declaration): Push declarations into class scope.
106252284Sobrien	* typeck.c (build_component_ref): Just put an OVERLOAD into the
106352284Sobrien	COMPONENT_REF, not a TREE_LIST of an OVERLOAD.
106452284Sobrien	(build_x_function_call): Deal with OVERLOAD.  Handle template-ids.
106552284Sobrien	* Makefile.in (class.o): Depend on splay-tree.h.
106652284Sobrien
106752284SobrienWed Mar 31 11:30:43 1999  Nathan Sidwell  <nathan@acm.org>
106852284Sobrien
106952284Sobrien	* cvt.c (convert_pointer_to_real): Use same_type_p.
107052284Sobrien	* typeck.c (comp_target_types): Use same_type_p.
107152284Sobrien
107252284Sobrien1999-03-31  Jason Merrill  <jason@yorick.cygnus.com>
107352284Sobrien
107452284Sobrien	* semantics.c (begin_inline_definitions,
107552284Sobrien	finish_inline_definitions): Rename from finish_default_args and
107652284Sobrien	begin_inline_definitions, respectively, to something that isn't a
107752284Sobrien	total lie.  :)
107852284Sobrien	* parse.y (structsp): Adjust.
107952284Sobrien
108052284Sobrien	* tree.c (hash_tree_cons): Remove obsolete via_* parms.
108152284Sobrien	(list_hash_lookup): Likewise.
108252284Sobrien	(hash_tree_chain): Adjust.
108352284Sobrien	* pt.c (tsubst): Adjust.
108452284Sobrien	(tsubst_arg_types): Use plain hash_tree_cons.
108552284Sobrien	* cp-tree.h (hash_tree_cons_simple): Lose.
108652284Sobrien	* parse.y (declmods, nonempty_cv_qualifiers): Use hash_tree_cons.
108752284Sobrien
108852284SobrienWed Mar 31 10:48:29 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
108952284Sobrien
109052284Sobrien	* Makefile.in (hash.h): Generate using gperf language 'C', not
109152284Sobrien	'KR-C', so gperf uses the `const' keyword on strings.
109252284Sobrien
109352284Sobrien	* gxx.gperf (resword): Const-ify a char*.
109452284Sobrien
109552284Sobrien1999-03-30  Jason Merrill  <jason@yorick.cygnus.com>
109652284Sobrien
109752284Sobrien	* cp-tree.h (IDENTIFIER_AS_DESC, IDENTIFIER_AS_LIST,
109852284Sobrien	CLASSTYPE_BASELINK_VEC, CLASSTYPE_N_SUPERCLASSES,
109952284Sobrien	CLASSTYPE_N_BASECLASSES, CLASSTYPE_MAX_DEPTH,
110052284Sobrien	CLASSTYPE_BASE_INIT_LIST, CLASSTYPE_AS_LIST, CLASSTYPE_ID_AS_LIST,
110152284Sobrien	CLASSTYPE_BINFO_AS_LIST): Remove cruft.
110252284Sobrien	* class.c, lex.c, parse.y, ptree.c, search.c, semantics.c,
110352284Sobrien	tree.c: Adjust.
110452284Sobrien
110552284Sobrien1999-03-29  Jason Merrill  <jason@yorick.cygnus.com>
110652284Sobrien
110752284Sobrien	* decl2.c (lang_decode_option): Remove -Wsign-promo from -Wall.
110852284Sobrien
110952284Sobrien1999-03-28  Jason Merrill  <jason@yorick.cygnus.com>
111052284Sobrien
111152284Sobrien	* pt.c (fn_type_unification): Ignore 'this' parm from conversion ops.
111252284Sobrien
111352284Sobrien1999-03-27  Mark Mitchell  <mark@codesourcery.com>
111452284Sobrien
111552284Sobrien	* cp-tree.h (add_friend): Declare.
111652284Sobrien	(add_friends): Likewise.
111752284Sobrien	* friend.c (add_friend): Make it global.  Don't add to
111852284Sobrien	DECL_BEFRIENDING_CLASSES if the befriending class is a template.
111952284Sobrien	(add_friends): Make it global.
112052284Sobrien	(make_friend_class): Don't add to DECL_BEFRIENDING_CLASSES if the
112152284Sobrien	befriending class is a template.
112252284Sobrien	* parse.y (component_decl_1): Fix typo in comment.
112352284Sobrien	* parse.c: Regenerated.
112452284Sobrien	* pt.c (instantiate_class_template): Use add_friend and
112552284Sobrien	add_friends rather that duplicating some of their functionality
112652284Sobrien	here.
112752284Sobrien
112852284Sobrien1999-03-27  Jason Merrill  <jason@yorick.cygnus.com>
112952284Sobrien
113052284Sobrien	* call.c (build_field_call): Unify 'this' and non-'this' cases.
113152284Sobrien
113252284Sobrien	* typeck.c (build_indirect_ref): Check for 'this' sooner.
113352284Sobrien
113452284SobrienFri Mar 26 10:20:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
113552284Sobrien
113652284Sobrien	* call.c (op_error): Const-ify a char*.
113752284Sobrien	(add_candidate, source_type, add_warning): Add static prototype.
113852284Sobrien	(print_z_candidates): Const-ify a char*.
113952284Sobrien
114052284Sobrien	* class.c (resolve_address_of_overloaded_function,
114152284Sobrien	fixed_type_or_null, build_vtable_entry_ref): Add static prototype.
114252284Sobrien	(get_vtable_name, finish_struct_1): Const-ify a char*.
114352284Sobrien
114452284Sobrien	* cvt.c (convert_to_reference): Likewise.
114552284Sobrien
114652284Sobrien	* decl.c (redeclaration_error_message, record_builtin_type,
114752284Sobrien	record_unknown_type, member_function_or_else, bad_specifiers):
114852284Sobrien	Likewise.
114952284Sobrien	(find_binding, select_decl, unqualified_namespace_lookup,
115052284Sobrien	lookup_flags, qualify_lookup, record_builtin_java_type, tag_name):
115152284Sobrien	Add static prototype.
115252284Sobrien	(warn_extern_redeclared_static, duplicate_decls, pushdecl,
115352284Sobrien	implicitly_declare, record_builtin_java_type, define_function,
115452284Sobrien	grok_op_properties, tag_name): Const-ify a char*.
115552284Sobrien
115652284Sobrien	* cp-tree.h (FORMAT_VBASE_NAME): Allow parameter `BUF' to be const.
115752284Sobrien	(define_function, finish_builtin_type): Const-ify a char*.
115852284Sobrien	(cp_error, cp_error_at, cp_warning, cp_warning_at, cp_pedwarn,
115952284Sobrien	cp_pedwarn_at, cp_compiler_error, cp_sprintf): Add prototype args.
116052284Sobrien	(file_name_nondirectory): Const-ify a char*.
116152284Sobrien	(init_filename_times): Don't prototype.
116252284Sobrien	(compiler_error): Prototype.
116352284Sobrien	(yyerror, init_repo): Const-ify a char*.
116452284Sobrien	(build_srcloc): Don't prototype.
116552284Sobrien	(build_x_indirect_ref, build_indirect_ref, build_component_addr):
116652284Sobrien	Const-ify a char*.
116752284Sobrien	(warn_for_assignment): Don't prototype.
116852284Sobrien	(convert_for_initialization, readonly_error, check_for_new_type,
116952284Sobrien	GNU_xref_begin, GNU_xref_file, GNU_xref_ref, GNU_xref_call):
117052284Sobrien	Const-ify a char*.
117152284Sobrien
117252284Sobrien	* decl2.c (acceptable_java_type, output_vtable_inherit,
117352284Sobrien	setup_initp, start_objects, finish_objects, do_dtors, do_ctors,
117452284Sobrien	merge_functions, decl_namespace, validate_nonmember_using_decl,
117552284Sobrien	do_nonmember_using_decl): Add static prototype.
117652284Sobrien	(lang_f_options): Const-ify a char*.
117752284Sobrien	(finish_builtin_type): Likewise.
117852284Sobrien	(add_function, arg_assoc_namespace, arg_assoc_class): Add static
117952284Sobrien	prototype.
118052284Sobrien
118152284Sobrien	* errfn.c: Include cp-tree.h.
118252284Sobrien	(cp_thing): Add static prototype.
118352284Sobrien	(compiler_error): Don't protoptype.
118452284Sobrien	(cp_compiler_error): Cast `compiler_error' to `errorfn' before
118552284Sobrien	passing it to `cp_thing'.
118652284Sobrien
118752284Sobrien	* error.c (interesting_scope_p): Add static prototype.
118852284Sobrien
118952284Sobrien	* except.c (build_eh_type_type, build_eh_type_type_ref): Const-ify
119052284Sobrien	a char*.
119152284Sobrien
119252284Sobrien	* init.c (compiler_error): Don't prototype.
119352284Sobrien	(member_init_ok_or_else): Const-ify a char*.
119452284Sobrien	(build_java_class_ref): Add static prototype.
119552284Sobrien
119652284Sobrien	* lex.c (compiler_error): Don't prototype.
119752284Sobrien	(get_time_identifier, interface_strcmp, extend_token_buffer,
119852284Sobrien	handle_cp_pragma): Const-ify a char*.
119952284Sobrien	(is_global, init_filename_times): Add static prototype.
120052284Sobrien	(file_name_nondirectory, cplus_tree_code_name): Const-ify a char*.
120152284Sobrien	(compiler_error): Change from fixed args to variable args.
120252284Sobrien	(yyerror): Const-ify a char*.
120352284Sobrien
120452284Sobrien	* parse.y (cond_stmt_keyword): Const-ify a char*.
120552284Sobrien	(parse_decl): Add static prototype.
120652284Sobrien
120752284Sobrien	* pt.c (template_args_equal, print_template_context): Likewise.
120852284Sobrien	(print_candidates, check_default_tmpl_args): Const-ify a char*.
120952284Sobrien	(instantiate_class_template): Likewise.
121052284Sobrien
121152284Sobrien	* repo.c (get_base_filename, open_repo_file, init_repo): Likewise.
121252284Sobrien
121352284Sobrien	* rtti.c (call_void_fn, expand_generic_desc, expand_si_desc,
121452284Sobrien	expand_class_desc, expand_ptr_desc, expand_attr_desc): Likewise.
121552284Sobrien
121652284Sobrien	* search.c (lookup_field_info, lookup_member): Likewise.
121752284Sobrien	(lookup_member): Cast the first argument of `bzero' to a PTR.
121852284Sobrien
121952284Sobrien	* sig.c (compiler_error): Don't prototype.
122052284Sobrien	(build_signature_pointer_or_reference_nam): Const-ify a char*.
122152284Sobrien	(get_sigtable_name, build_member_function_pointer): Likewise.
122252284Sobrien
122352284Sobrien	* tree.c (compiler_error): Don't prototype.
122452284Sobrien	(no_linkage_helper, build_srcloc): Add static prototype.
122552284Sobrien	(build_vbase_pointer_fields): Const-ify a char*.
122652284Sobrien	(__eprintf): Don't unnecessarily handle `const' when !__STDC__.
122752284Sobrien
122852284Sobrien	* typeck.c (compiler_error): Don't prototype.
122952284Sobrien	(convert_for_assignment): Const-ify a char*.
123052284Sobrien	(comp_cv_target_types): Add static prototype.
123152284Sobrien	(build_x_indirect_ref, build_indirect_ref, convert_arguments,
123252284Sobrien	build_component_addr, build_unary_op, convert_for_initialization):
123352284Sobrien	Const-ify a char*.
123452284Sobrien
123552284Sobrien	* typeck2.c (ack): Add static prototype and change from fixed args
123652284Sobrien	to variable args.
123752284Sobrien	(readonly_error, check_for_new_type): Const-ify a char*.
123852284Sobrien
123952284Sobrien	* xref.c (_XREF_FILE, find_file, filename, fctname, declname,
124052284Sobrien	fixname, open_xref_file, classname, GNU_xref_begin): Likewise.
124152284Sobrien	(GNU_xref_file): Likewise.  Also use `xmalloc' instead of `malloc'.
124252284Sobrien	(GNU_xref_end_scope, GNU_xref_ref, GNU_xref_decl, GNU_xref_call,
124352284Sobrien	gen_assign, GNU_xref_member): Const-ify a char*.
124452284Sobrien
124552284Sobrien1999-03-25  Martin von L�wis  <loewis@informatik.hu-berlin.de>
124652284Sobrien
124752284Sobrien	* gxxint.texi: Remove old discussion on copying virtual bases.
124852284Sobrien
124952284Sobrien1999-03-25  Zack Weinberg  <zack@rabi.columbia.edu>
125052284Sobrien
125152284Sobrien	* Make-lang.in: Remove all references to g++.o/g++.c.
125252284Sobrien	Link g++ from gcc.o.
125352284Sobrien
125452284Sobrien1999-03-25  Jason Merrill  <jason@yorick.cygnus.com>
125552284Sobrien
125652284Sobrien	* decl2.c (comdat_linkage): Treat vtables like functions.
125752284Sobrien
125852284Sobrien1999-03-25  Mark Mitchell  <mark@codesourcery.com>
125952284Sobrien
126052284Sobrien	* pt.c (tsubst_decl): tsubst into DECL_BEFRIENDING_CLASSES.
126152284Sobrien
126252284Sobrien1999-03-25  Nathan Sidwell  <nathan@acm.org>
126352284Sobrien
126452284Sobrien	* decl.c (init_decl_processing): Add `signed' type as a synonym
126552284Sobrien	for `int'.
126652284Sobrien
126752284Sobrien1999-03-25  Jason Merrill  <jason@yorick.cygnus.com>
126852284Sobrien
126952284Sobrien	* typeck.c (common_type): Handle cv-qual unification for pointers
127052284Sobrien	to members.
127152284Sobrien
127252284Sobrien	* decl.c (unqualified_namespace_lookup): Return error_mark_node
127352284Sobrien	on error.
127452284Sobrien	(lookup_name_real): Set LOOKUP_COMPLAIN when *not* parsing.
127552284Sobrien	* lex.c (do_identifier): If we got error_mark_node, call
127652284Sobrien	lookup_name again.
127752284Sobrien
127852284Sobrien1999-03-24  Martin von L�wis  <loewis@informatik.hu-berlin.de>
127952284Sobrien
128052284Sobrien	* class.c (finish_struct_1): Always reset TYPE_FIELDS for empty
128152284Sobrien	classes.
128252284Sobrien
128352284Sobrien1999-03-24  Jason Merrill  <jason@yorick.cygnus.com>
128452284Sobrien
128552284Sobrien	* decl.c (lookup_name_real): Do nested field lookup regardless of
128652284Sobrien	TYPE_BEING_DEFINED.
128752284Sobrien
128852284Sobrien1999-03-24  Mark Mitchell  <mark@codesourcery.com>
128952284Sobrien
129052284Sobrien	* cp-tree.h (lang_type): Remove has_assignment and
129152284Sobrien	has_real_assignment.  Add befriending_classes.
129252284Sobrien	(TYPE_HAS_ASSIGNMENT): Remove.
129352284Sobrien	(TYPE_HAS_REAL_ASSIGNMENT): Likewise.
129452284Sobrien	(CLASSTYPE_BEFRIENDING_CLASSES): New macro.
129552284Sobrien	(lang_decl): Document.
129652284Sobrien	(DECL_BEFRIENDING_CLASSES): New macro.
129752284Sobrien	(FRIEND_NAME): Move declaration to more obvious location.
129852284Sobrien	(FRIEND_DECLS): Likewise.
129952284Sobrien	* class.c (finish_struct_1): Don't use TYPE_HAS_REAL_ASSIGNMENT.
130052284Sobrien	* decl.c (duplicate_decls): Copy DECL_BEFRIENDING_CLASSES.
130152284Sobrien	(fixup_anonymous_union): Don't use TYPE_HAS_ASSIGNMENT.
130252284Sobrien	(grok_op_properties): Likewise.
130352284Sobrien	* friend.c (is_friend): Use FRIEND_NAME and FRIEND_DECLS.
130452284Sobrien	(add_friend): Likewise.  Don't do weird things with assignment
130552284Sobrien	operators.  Update DECL_BEFRIENDING_CLASSES.
130652284Sobrien	(add_friends): Don't do weird things with assignment operators.
130752284Sobrien	(make_friend_class): Likewise.  Update
130852284Sobrien	CLASSTYPE_BEFRIENDING_CLASSES.
130952284Sobrien	* pt.c (instantiate_class_template): Don't set
131052284Sobrien	TYPE_HAS_ASSIGNMENT.
131152284Sobrien	(tsubst_copy): Substitute the TREE_TYPE for more unary
131252284Sobrien	expressions.
131352284Sobrien	* ptree.c (print_lang_type): Don't look at TYPE_HAS_ASSIGNMENT.
131452284Sobrien	* search.c (protected_accessible_p): New function.
131552284Sobrien	(friend_accessible_p): Likewise.
131652284Sobrien	(accessible_p): Use them.
131752284Sobrien
131852284Sobrien1999-03-23  Mark Mitchell  <mark@codesourcery.com>
131952284Sobrien
132052284Sobrien	* pt.c (convert_nontype_argument): Don't create things that aren't
132152284Sobrien	PTRMEM_CSTs when applying a qualification conversion to a
132252284Sobrien	PTRMEM_CST.
132352284Sobrien
132452284Sobrien1999-03-23  Mark Mitchell  <mark@codesourcery.com>
132552284Sobrien
132652284Sobrien	* Makefile.in (OBJS): Don't mention hash.o.
132752284Sobrien	(OBJDEPS): Likewise.
132852284Sobrien
132952284Sobrien1999-03-23  Jason Merrill  <jason@yorick.cygnus.com>
133052284Sobrien
133152284Sobrien	* decl2.c (finish_file): Set at_eof to 2 after expanding ctors.
133252284Sobrien	* decl.c (expand_static_init): Make sure we don't add any after
133352284Sobrien	then.
133452284Sobrien
133552284Sobrien	* decl.c (cp_finish_decl): Move intelligence about handling
133652284Sobrien	DECL_COMDAT for variables from here...
133752284Sobrien	* decl2.c (comdat_linkage): ...to here.
133852284Sobrien	(maybe_make_one_only): Tweak.
133952284Sobrien	(import_export_decl): Call comdat_linkage for variables, too.
134052284Sobrien	(finish_file): Handle template statics properly.
134152284Sobrien
134252284Sobrien1999-03-22  Mark Mitchell  <mark@codesourcery.com>
134352284Sobrien
134452284Sobrien	* cp-tree.h (TYPE_PTRMEMFUNC_P): Use TYPE_PTRMEMFUNC_FLAG.
134552284Sobrien	Document internals of pointer-to-member-functions.
134652284Sobrien	(DELTA2_FROM_PTRMEMFUNC): Make it call delta2_from_ptrmemfunc.
134752284Sobrien	(PFN_FROM_PTRMEMFUNC): Likewise.
134852284Sobrien	(build_type_conversion): Remove unused parameter.
134952284Sobrien	(build_ptrmemfunc1): Declare.
135052284Sobrien	(expand_ptrmemfunc_cst): New function.
135152284Sobrien	(delta2_from_ptrmemfunc): Likewise.
135252284Sobrien	(pfn_from_ptrmemfunc): Likewise.
135352284Sobrien	* cvt.c (cp_convert_to_pointer): Remove unused parameter to
135452284Sobrien	build_type_conversion.  Use TYPE_PTRMEM_P for readability.
135552284Sobrien	(convert_to_reference): Remove unused parameter to
135652284Sobrien	build_type_conversion.
135752284Sobrien	(ocp_convert): Likewise.
135852284Sobrien	(build_user_type_conversion): Likewise.
135952284Sobrien	* error.c (dump_expr): Handle NULL pointer-to-member functions.
136052284Sobrien	* expr.c (cplus_expand_expr): Handle PTRMEM_CSTs for functions.
136152284Sobrien	* method.c (build_overload_value): Don't go splitting CONSTRUCTORs
136252284Sobrien	open when handling pointer-to-member functions.
136352284Sobrien	* pt.c (convert_nontype_argument): Clean up error messages.  Be
136452284Sobrien	more stringent with pointers-to-members.
136552284Sobrien	* typeck.c (build_ptrmemfunc1): Don't declare.  Make it global.
136652284Sobrien	(build_unary_op): Tidy ever-so-slightly.
136752284Sobrien	(build_conditional_expr): Remove extra parameter to
136852284Sobrien	build_type_conversion.
136952284Sobrien	(build_ptrmemfunc): Build PTRMEM_CSTs if we know what function
137052284Sobrien	we're using.
137152284Sobrien	(expand_ptrmemfunc_cst): Define.
137252284Sobrien	(delta2_from_ptrmemfunc): Likewise.
137352284Sobrien	(pfn_from_ptrmemfunc): Likewise.
137452284Sobrien
137552284Sobrien1999-03-19  Mark Mitchell  <mark@codesourcery.com>
137652284Sobrien
137752284Sobrien	* init.c (build_member_call): Handle template-id expressions
137852284Sobrien	correctly.
137952284Sobrien	* typeck.c (build_x_function_call): Likewise.
138052284Sobrien
138152284Sobrien1999-03-19  Chip Salzenberg  <chip@perlsupport.com>
138252284Sobrien
138352284Sobrien	* friend.c (make_friend_class): Avoid core dump when
138452284Sobrien	not-yet-defined friend type lacks TYPE_LANG_SPECIFIC().
138552284Sobrien
138652284Sobrien1999-03-18  Jason Merrill  <jason@yorick.cygnus.com>
138752284Sobrien
138852284Sobrien	* decl.c (start_function): Suppress normal linkage heuristics
138952284Sobrien	for #pragma interface under MULTIPLE_SYMBOL_SPACES.
139052284Sobrien
139152284Sobrien1999-03-19  Alexandre Oliva  <oliva@dcc.unicamp.br>
139252284Sobrien
139352284Sobrien	* Make-lang.in: ($(INTL_TARGETS)): Depend on cp/parse.c.
139452284Sobrien	($(srcdir)/cp/parse.c): Moved from ../Makefile.in.
139552284Sobrien
139652284Sobrien1999-03-17  Martin von L�wis  <loewis@informatik.hu-berlin.de>
139752284Sobrien
139852284Sobrien	* parse.y (named_complex_class_head_sans_basetype):
139952284Sobrien	Do not push a scope for error_mark_node.
140052284Sobrien	(maybe_base_class_list): Likewise.
140152284Sobrien
140252284Sobrien	* decl.c (start_decl): Check for error_mark_node as a type.
140352284Sobrien	Detected by g++.brendan/array-refs.C.
140452284Sobrien	(start_decl_1): Likewise.  Detected by g++.bugs/900322_01.C.
140552284Sobrien	(maybe_build_cleanup_1): Likewise.  Detected by
140652284Sobrien	g++.jason/incomplete1.C.
140752284Sobrien
140852284Sobrien	* tree.c (build_dummy_object): Use void_zero_node instead of the
140952284Sobrien	error_mark_node.
141052284Sobrien	(is_dummy_object): Check for such a node.
141152284Sobrien	Detected by g++.bob/inherit1.C
141252284Sobrien
141352284Sobrien1999-03-16  Jason Merrill  <jason@yorick.cygnus.com>
141452284Sobrien
141552284Sobrien	* method.c (old_backref_index): Split out...
141652284Sobrien	(flush_repeats): From here.  Rename back from try_old_backref.
141752284Sobrien	(build_mangled_name): Put back some old-style repeat handling.
141852284Sobrien
141952284SobrienMon Mar 15 21:57:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
142052284Sobrien
142152284Sobrien	* lex.c: Don't include setjmp.h.
142252284Sobrien	(parse_float): New static function.
142352284Sobrien	(pf_args): New struct.
142452284Sobrien	(real_yylex): Use them in call to `do_float_handler'.
142552284Sobrien
142652284Sobrien1999-03-15  Mark Mitchell  <mark@markmitchell.com>
142752284Sobrien
142852284Sobrien	* decl.c (xref_basetypes): Set CLASSTYPE_VBASECLASSES here.
142952284Sobrien	* tree.c (layout_basetypes): Not here.
143052284Sobrien	* search.c (dfs_search): Remove; no longer used.
143152284Sobrien
143252284Sobrien1999-03-12  Mark Mitchell  <mark@markmitchell.com>
143352284Sobrien
143452284Sobrien	* decl2.c (validate_nonmember_using_decl): Issue sensible
143552284Sobrien	error-messages on bogus qualifiers.
143652284Sobrien
143752284Sobrien1999-03-14  Jason Merrill  <jason@yorick.cygnus.com>
143852284Sobrien
143952284Sobrien	* call.c (add_function_candidate): Fix uninitialized variable.
144052284Sobrien
144152284Sobrien	* Makefile.in (search.o): Add dependency on varray.h.
144252284Sobrien
144352284Sobrien1999-03-13  Jason Merrill  <jason@yorick.cygnus.com>
144452284Sobrien
144552284Sobrien	* decl.c (duplicate_decls): Use same_type_p.
144652284Sobrien	* method.c (try_old_backref): Renamed from flush_repeats.  Use
144752284Sobrien	same_type_p.  Don't try to handle repeats.  Return success.
144852284Sobrien	(is_back_referenceable_type): Return 0 if TYPE_FOR_JAVA.  Support
144952284Sobrien	calls from old-style code, too.
145052284Sobrien	(check_ktype): Use same_type_p.
145152284Sobrien	(check_btype): Use same_type_p.  Don't pull out TYPE_MAIN_VARIANT.
145252284Sobrien	(build_qualified_name): Simplify logic.
145352284Sobrien	(process_overload_item): Strip typedefs and quals at the top.
145452284Sobrien	(build_mangled_name_for_type_with_Gcode): Remove call to
145552284Sobrien	type_canonical_variant.
145652284Sobrien	(build_mangled_name): Likewise.  Remove support for old-style
145752284Sobrien	repeats, which have been disabled since 2.7.2.  Don't mess with
145852284Sobrien	TREE_USED.
145952284Sobrien	(build_decl_overload_real): Don't mess with TREE_USED.
146052284Sobrien
146152284Sobrien1999-03-13  Nathan Sidwell  <nathan@acm.org>
146252284Sobrien
146352284Sobrien	* error.c (cp_printers): Add 'F' escape character.
146452284Sobrien	(dump_type_real): Remove TREE_LIST (fnargs) printing.
146552284Sobrien	Functionality moved to dump_parameters.
146652284Sobrien	(dump_type_suffix): Use dump_parameters and dump_exception_spec.
146752284Sobrien	(dump_function_decl): Extend meaning of V parameter.  Use
146852284Sobrien	dump_parameters and dump_exception_spec.
146952284Sobrien	(dump_parameters): New static function.
147052284Sobrien	(dump_exception_spec): New static function.
147152284Sobrien	(fndecl_as_string): Change argument semantics.  Use
147252284Sobrien	dump_function_decl directly.
147352284Sobrien
147452284Sobrien	* sig.c (build_signature_table_constructor): Use cp_error.
147552284Sobrien
147652284Sobrien1999-03-13  Martin von L�wis  <loewis@informatik.hu-berlin.de>
147752284Sobrien
147852284Sobrien	* semantics.c (finish_switch_cond): Handle error cases gracefully.
147952284Sobrien	Detected by g++.law/enum5.C.
148052284Sobrien
148152284Sobrien	* typeck.c (build_modify_expr): Check for errors after resolving
148252284Sobrien	offsets.  Detected by g++.brendan/static1.C.
148352284Sobrien
148452284Sobrien	* decl.c (complete_array_type): Ignore initial_value if it is an
148552284Sobrien	error.  Detected by g++.benjamin/17930.C.
148652284Sobrien
148752284Sobrien	* typeck2.c (process_init_constructor): Return error if one argument
148852284Sobrien	is in error.  Detected by g++.benjamin/13478.C.
148952284Sobrien
149052284Sobrien1999-03-12  Martin von L�wis  <loewis@informatik.hu-berlin.de>
149152284Sobrien
149252284Sobrien	* decl.c (select_decl): Allow class templates when we need types.
149352284Sobrien	* decl2.c (ambiguous_decl): Likewise.
149452284Sobrien
149552284Sobrien1999-03-12  Mark Mitchell  <mark@markmitchell.com>
149652284Sobrien
149752284Sobrien	* lex.c (do_identifier): Correct call to enforce_access.
149852284Sobrien	* search.c (accessible_p): Tweak comment.
149952284Sobrien
150052284Sobrien1999-03-10  Mark Mitchell  <mark@markmitchell.com>
150152284Sobrien
150252284Sobrien	* semantics.c (begin_class_definition): Call build_self_reference.
150352284Sobrien	(finish_member_declaration): Set DECL_CONTEXT for TYPE_DECLs.
150452284Sobrien
150552284Sobrien	* search.c (assert_canonical_unmarked): Fix typo in prototype.
150652284Sobrien
150752284Sobrien	* search.c (dfs_canonical_queue): New function.
150852284Sobrien	(dfs_assert_unmarked_p): Likewise.
150952284Sobrien	(assert_canonical_unmarked): Likewise.
151052284Sobrien	(access_in_type): Use it.
151152284Sobrien	(accessible_p): Likewise.  Walk the whole tree when umarking.
151252284Sobrien
151352284Sobrien	* sig.c (build_signature_table_constructor): Use accessible_p
151452284Sobrien	instead of compute_access.
151552284Sobrien
151652284Sobrien1999-03-09  Jason Merrill  <jason@yorick.cygnus.com>
151752284Sobrien
151852284Sobrien	* call.c (add_builtin_candidates): Handle overloaded conversion ops.
151952284Sobrien
152052284Sobrien1999-03-09  Mark Mitchell  <mark@markmitchell.com>
152152284Sobrien
152252284Sobrien	* cp-tree.h (flag_access_control): Declare.
152352284Sobrien	(TREE_VIA_PPUBLIC): Document.
152452284Sobrien	(DECL_NONSTATIC_MEMBER_P): New macro.
152552284Sobrien	(enforce_access): Return an indication of whether or not access
152652284Sobrien	was permitted.
152752284Sobrien	(build_self_reference): Change prototype.
152852284Sobrien	(compute_access): Replace with ...
152952284Sobrien	(accessible_p): New function.
153052284Sobrien	(dfs_walk): Change prototype.
153152284Sobrien	(dfs_unmark): Likewise.
153252284Sobrien	(markedp): Likewise.
153352284Sobrien	* call.c (enforce_access): Use accessible_p.
153452284Sobrien	* class.c (build_self_reference): Insert the declaration into the
153552284Sobrien	list of members for this type, and make it public.
153652284Sobrien	* decl.c (xref_basetypes): Avoid ill-timed recursion.
153752284Sobrien	* init.c (build_offset_ref): Use lookup_member, not three separate
153852284Sobrien	name-lookups.  Call enforce_access rather than checking for
153952284Sobrien	illegal accesses here.
154052284Sobrien	(resolve_offset_ref): Likewise.
154152284Sobrien	* lex.c (do_identifier): Likewise.
154252284Sobrien	* method.c (hack_identifier): Likewise.
154352284Sobrien	* parse.y (self_reference): Remove.
154452284Sobrien	(opt_component_decl_list): Don't use it.
154552284Sobrien	* parse.c: Regenerated.
154652284Sobrien	* pt.c (print_candidates): Generalize to handle lists of
154752284Sobrien	overloaded functions.
154852284Sobrien	(instantiate_class_template): Don't rely on TREE_VIA_PRIVATE; it's
154952284Sobrien	not set.
155052284Sobrien	(get_template_base): Use new calling convention for dfs_walk.
155152284Sobrien	* search.c: Include varray.h.  Add prototypes.
155252284Sobrien	(dfs_walk): Accept a data pointer to pass to the work functions.
155352284Sobrien	All callers changed.  All work functions changed.
155452284Sobrien	(breadth_first_search): Rename to bfs_walk, and make consistent
155552284Sobrien	with dfs_walk.
155652284Sobrien	(dfs_walk_real): New function.
155752284Sobrien	(canonical_binfo): New function.
155852284Sobrien	(context_for_name_lookup): Likewise.
155952284Sobrien	(shared_marked_p): Likewise.
156052284Sobrien	(shared_unmarked_p): Likewise.
156152284Sobrien	(lokup_field_queue_p): Likewise.
156252284Sobrien	(lookup_field_r): Generalize to handle both functions and fields.
156352284Sobrien	(lookup_field): Just call lookup_member.
156452284Sobrien	(lookup_fnfields): Likewise.
156552284Sobrien	(lookup_member): Move body of lookup_field here and generalize.
156652284Sobrien	(dfs_accessible_queue_p): Likewise.
156752284Sobrien	(dfs_accessible_p): Likewise.
156852284Sobrien	(dfs_access_in_type): Likewise.
156952284Sobrien	(access_in_type): Likewise.
157052284Sobrien	(compute_access): Remove, and replace with ...
157152284Sobrien	(accessible_p): New function.
157252284Sobrien	(vbase_types): Remove.
157352284Sobrien	(vbase_decl_ptr_intermediate): Likewise.
157452284Sobrien	(vbase_decl_ptr): Likewise.
157552284Sobrien	(vbase_init_result): Likewise.
157652284Sobrien	(closed_envelopes): Likewise.
157752284Sobrien	(bvtable): Likewise.
157852284Sobrien
157952284Sobrien1999-03-09  Jason Merrill  <jason@yorick.cygnus.com>
158052284Sobrien
158152284Sobrien	* call.c (add_function_candidate): Check for proper number of args
158252284Sobrien	before checking the validity of those args.
158352284Sobrien
158452284Sobrien1999-03-06  Jason Merrill  <jason@yorick.cygnus.com>
158552284Sobrien
158652284Sobrien	* cp-tree.h (struct lang_type): Add anon_union field.
158752284Sobrien	(ANON_UNION_TYPE_P): Use it instead of examining type.
158852284Sobrien	(SET_ANON_UNION_TYPE_P): New macro.
158952284Sobrien	* decl.c (check_tag_decl): Use it.
159052284Sobrien
159152284Sobrien	* search.c (compute_access): Handle non-type contexts earlier, and
159252284Sobrien	handle NULL_TREE.
159352284Sobrien
159452284Sobrien	* tree.c (build_exception_variant): Use copy_to_permanent.
159552284Sobrien
159652284Sobrien	* decl2.c (setup_initp): Give statics with no priority the default
159752284Sobrien	priority here.
159852284Sobrien	(do_dtors, do_ctors, finish_file): Remove special handling of
159952284Sobrien	non-prioritized statics.
160052284Sobrien
160152284Sobrien1999-03-05  Mark Mitchell  <mark@markmitchell.com>
160252284Sobrien
160352284Sobrien	* cp-tree.h (ANON_UNION_TYPE_P): Robustify.
160452284Sobrien	* decl.c (make_typename_type): Don't issue an error if an
160552284Sobrien	immediate lookup fails; it migt be resolved later.
160652284Sobrien	* friend.c (is_friend): Add comment.
160752284Sobrien	* search.c (breadth_first_search): Add POSTFN and DATA
160852284Sobrien	parameters.  Tidy.  All callers changed.
160952284Sobrien	(lookup_field_queue_p): New function.
161052284Sobrien	(lookup_field_r): Likewise.
161152284Sobrien	(lookup_field_post): Likewise.
161252284Sobrien	(lookup_field): Use them, via breadth_first_search, instead of
161352284Sobrien	duplicating logic.
161452284Sobrien	(compute_access): Robustify.
161552284Sobrien	(lookup_fnfield_info): New structure.
161652284Sobrien
161752284Sobrien1999-03-05  Jason Merrill  <jason@yorick.cygnus.com>
161852284Sobrien
161952284Sobrien	* pt.c (tsubst, case ARRAY_REF): Use tsubst_expr again.
162052284Sobrien
162152284Sobrien1999-03-03  Jason Merrill  <jason@yorick.cygnus.com>
162252284Sobrien
162352284Sobrien	* class.c, decl2.c, method.c, pt.c: Add 'static' to make SunOS 4
162452284Sobrien	cc happy.
162552284Sobrien
162652284Sobrien	* decl2.c (import_export_class): Also return if
162752284Sobrien	CLASSTYPE_INTERFACE_ONLY is set.
162852284Sobrien
162952284Sobrien1999-03-03  Martin von L�wis  <loewis@informatik.hu-berlin.de>
163052284Sobrien
163152284Sobrien	* decl.c (push_overloaded_decl): Only overwrite the old binding if
163252284Sobrien	there was one.
163352284Sobrien	* decl2.c (do_local_using_decl): Fix loop termination.
163452284Sobrien
163552284Sobrien1999-03-02  Mark Mitchell  <mark@markmitchell.com>
163652284Sobrien
163752284Sobrien	* cp-tree.h (determine_specialization): Don't declare.
163852284Sobrien	* pt.c (determine_specialization): Make it static.  Eliminate
163952284Sobrien	complain parameter.  Note that decl is always non-NULL now, and
164052284Sobrien	simplify accordingly.
164152284Sobrien
164252284Sobrien	* decl.c (maybe_push_to_top_level): Always call
164352284Sobrien	push_cp_function_context.
164452284Sobrien	(pop_from_top_level): Always call pop_cp_function_context.
164552284Sobrien
164652284Sobrien1999-02-26  Nathan Sidwell  <nathan@acm.org>
164752284Sobrien
164852284Sobrien	* typeck.c (complete_type_or_else): Add VALUE arg, for helpful
164952284Sobrien	diagnostics.
165052284Sobrien	* cp-tree.h (complete_type_or_else): Added VALUE parameter.
165152284Sobrien	* init.c (build_new_1): Extra arg to complete_type_or_else.
165252284Sobrien	(build_delete): Likewise.
165352284Sobrien	* typeck.c (require_complete_type): Likewise.
165452284Sobrien	(pointer_int_sum): Likewise.
165552284Sobrien	(pointer_diff): Likewise.
165652284Sobrien	(build_component_ref): Likewise.
165752284Sobrien
165852284Sobrien	* typeck2.c (incomplete_type_error): Always use cp_error.
165952284Sobrien	Show declaration of undefined type, if appropriate.
166052284Sobrien	Deal with UNKNOWN_TYPE nodes.
166152284Sobrien
166252284Sobrien	* typeck.c (require_complete_type): Use TYPE_SIZE as
166352284Sobrien	size_zero_node to mean incomplete type.
166452284Sobrien	(require_complete_type_in_void): New function.
166552284Sobrien	(build_compound_expr): Call complete_type_in_void for LHS.
166652284Sobrien	(build_c_cast): Call complete_type_in_void for void cast.
166752284Sobrien	* cvt.c (ocp_convert): Call complete_type_in_void for void cast.
166852284Sobrien	* decl.c (cplus_expand_expr_stmt): Void expression checks moved to
166952284Sobrien	require_complete_type_in_void.  Call it.
167052284Sobrien	* cp-tree.h (require_complete_type_in_void): Prototype new function.
167152284Sobrien
167252284Sobrien	* typeck.c (convert_arguments): Use alternative format for
167352284Sobrien	function decls.  Don't require_complete_type here.  Simplify
167452284Sobrien	diagnostic printing.
167552284Sobrien	(convert_for_initialization): Don't require_complete_type on RHS yet.
167652284Sobrien	* call.c (convert_arg_to_ellipsis): Call require_complete_type.
167752284Sobrien
167852284Sobrien	* call.c (build_over_call): Cope with qualified void return type.
167952284Sobrien	* semantics.c (finish_call_expr): Likewise.
168052284Sobrien	* typeck.c (build_function_call_real): Likewise.
168152284Sobrien	(c_expand_return): Likewise.
168252284Sobrien	* decl2.c (reparse_absdcl_as_expr): Cope with qualified void type.
168352284Sobrien
168452284Sobrien	* call.c (print_z_candidates): Use alternate print format, to be
168552284Sobrien	consistent with (pt.c) print_candidates.
168652284Sobrien	* method.c (hack_identifier): List candidate members.
168752284Sobrien	* search.c (lookup_field): Build ambiguous list, and show it, if
168852284Sobrien	ambiguous.
168952284Sobrien
169052284Sobrien1999-02-26  Mark Mitchell  <mark@markmitchell.com>
169152284Sobrien
169252284Sobrien	* typeck.c (decay_conversion): Don't confuse constant array
169352284Sobrien	variables with their initializers.
169452284Sobrien
169552284Sobrien	* decl.c (duplicate_decls): Copy DECL_TEMPLATE_INSTANTIATED when
169652284Sobrien	merging decls.
169752284Sobrien	* pt.c (regenerate_decl_from_template): Tweak for clarity.
169852284Sobrien	(instantiate_decl): Mark a decl instantiated before regenerating
169952284Sobrien	it to avoid recursion.
170052284Sobrien	* tree.c (mapcar): Don't call decl_constant_value unless we know
170152284Sobrien	something is TREE_READONLY_DECL_P.
170252284Sobrien
170352284Sobrien	* class.c (check_for_override): Don't stop checking when we find
170452284Sobrien	the first overridden function.  Delete #if 0'd code.
170552284Sobrien	* search.c (get_matching_virtual): Likewise.
170652284Sobrien
170752284Sobrien1999-02-25  Richard Henderson  <rth@cygnus.com>
170852284Sobrien
170952284Sobrien	* lang-specs.h: Define __FAST_MATH__ when appropriate.
171052284Sobrien
171152284Sobrien1999-02-24  Mike Stump  <mrs@wrs.com>
171252284Sobrien
171352284Sobrien	* typeck.c (convert_for_assignment): Allow boolean integral constant
171452284Sobrien	expressions to convert to null pointer.
171552284Sobrien
171652284Sobrien1999-02-24  Martin von Loewis  <loewis@informatik.hu-berlin.de>
171752284Sobrien
171852284Sobrien	* decl.c (lookup_namespace_name): Resolve namespace aliases.
171952284Sobrien
172052284Sobrien	* class.c (push_nested_class): Allow namespaces.
172152284Sobrien
172252284Sobrien	* decl2.c (set_decl_namespace): Add friendp parameter.
172352284Sobrien	* decl.c (grokfndecl): Pass it.
172452284Sobrien	(grokvardecl): Likewise.
172552284Sobrien	* cp-tree.h: Change declaration.
172652284Sobrien
172752284Sobrien1999-02-24  Jason Merrill  <jason@yorick.cygnus.com>
172852284Sobrien
172952284Sobrien	* pt.c (tsubst): Allow an array of explicit size zero.
173052284Sobrien
173152284Sobrien1999-02-23  Jason Merrill  <jason@yorick.cygnus.com>
173252284Sobrien
173352284Sobrien	* errfn.c: Change varargs code to look like toplev.c.
173452284Sobrien
173552284Sobrien	* method.c (process_modifiers): Don't prepend 'U' for char or
173652284Sobrien	wchar_t.
173752284Sobrien
173852284Sobrien1999-02-20  Craig Burley  <craig@jcb-sc.com>
173952284Sobrien
174052284Sobrien	* Make-lang.in (cplib2.ready): Don't consider updating
174152284Sobrien	cplib2 stuff if the current directory isn't writable, as
174252284Sobrien	it won't work (such as during a `make install').
174352284Sobrien
174450397SobrienSun Feb 21 20:38:00 1999  H.J. Lu  (hjl@gnu.org)
174548743Sobrien
174650397Sobrien	* decl2.c (start_objects): Make file scope constructors and
174750397Sobrien	destructors local to the file if ASM_OUTPUT_CONSTRUCTOR and
174850397Sobrien	ASM_OUTPUT_DESTRUCTOR are defined.
174948743Sobrien
175052284Sobrien1999-02-19  Mark Mitchell  <mark@markmitchell.com>
175148743Sobrien
175252284Sobrien	* cp-tree.h (CLASSTYPE_METHOD_VEC): Adjust comment.
175352284Sobrien	(fn_type_unification): Adjust prototype.
175452284Sobrien	(lookup_fnfields_1): Declare.
175552284Sobrien	* call.c (add_template_candidate_real): Adjust call to
175652284Sobrien	fn_type_unification.
175752284Sobrien	* class.c (add_method): Don't allow duplicate declarations of
175852284Sobrien	constructors or destructors.
175952284Sobrien	(resolve_address_of_overloaded_function): Remove unused variable.
176052284Sobrien	Adjust call to fn_type_unification.
176152284Sobrien	* decl.c (grokfndecl): Be more robust in the face of illegal
176252284Sobrien	specializations.
176352284Sobrien	* decl2.c (check_classfn): Remove hokey handling of member
176452284Sobrien	templates.
176552284Sobrien	* pt.c (determine_specialization): Improve comments.  Adjust to
176652284Sobrien	handle template argument deduction as per the standard.
176752284Sobrien	(check_explicit_specialization): Fix comment spacing.  Handle
176852284Sobrien	type-conversion operators correctly.  Improve error-recovery.
176952284Sobrien	(fn_type_unification): Remove EXTRA_FN_ARG parameter.
177052284Sobrien	(get_bindings_real): Simplify handling of static members.
177152284Sobrien	* search.c (lookup_fnfields_1): Make it have external linkage.
177252284Sobrien	* typeck.c (compparms): Fix comment.
177352284Sobrien	(build_unary_op): Don't try to figure out which template
177452284Sobrien	specialization is being referred to when when the address-of
177552284Sobrien	operator is used with a template function.
177652284Sobrien
177752284SobrienThu Feb 18 23:40:01 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
177852284Sobrien
177952284Sobrien	* cp-tree.h (lvalue_or_else): Qualify a char* with the `const'
178052284Sobrien	keyword to match an analogous change at the top level.
178152284Sobrien
178252284Sobrien	* tree.c (lvalue_or_else): Likewise.
178352284Sobrien
178452284Sobrien1999-02-17  Mark Mitchell  <mark@markmitchell.com>
178552284Sobrien
178652284Sobrien	* decl.c (xref_basetypes): Comment.
178752284Sobrien	* pt.c (instantiate_class_template): Use xref_basetypes.
178852284Sobrien
178952284Sobrien1999-02-16  Mark Mitchell  <mark@markmitchell.com>
179052284Sobrien
179152284Sobrien	* cp-tree.h (tsubst): Change prototype.
179252284Sobrien	(tsubst_expr): Likewise.
179352284Sobrien	(tsubst_copy): Likewise.
179452284Sobrien	(type_unification): Remove prototype.
179552284Sobrien	* call.c (convert_default_arg): Adjust call to tsubst_expr.
179652284Sobrien	* class.c (resolve_address_of_overloaded_function): Just use
179752284Sobrien	fn_type_unification.
179852284Sobrien	* decl.c (grokdeclarator): Adjust call to tsubst.
179952284Sobrien	* method.c (build_template_parm_names): Likewise.
180052284Sobrien	* pt.c (GTB_VIA_VIRTUAL): New macro.
180152284Sobrien	(GTB_IGNORE_TYPE): Likewise.
180252284Sobrien	(resolve_overloaded_unification): Add `complain' parameter.
180352284Sobrien	(try_one_overload): Likewise.
180452284Sobrien	(tsubst_template_arg_vector): Likewise.
180552284Sobrien	(tsubst_template_parms): Likewise.
180652284Sobrien	(tsubst_aggr_type): Likewise.
180752284Sobrien	(tsubst_arg_types): Likewise.
180852284Sobrien	(tsubst_call_declarator_parms): Likewise.
180952284Sobrien	(unify): Remove explicit_mask.
181052284Sobrien	(type_unification_real): Likewise.
181152284Sobrien	(get_template_base_recursive): Likewise.
181252284Sobrien	(coerce_template_template_parms): Provide prototype.
181352284Sobrien	(tsubst_function_type): Likewise.
181452284Sobrien	(try_class_unification): New function.
181552284Sobrien	All callers changed to use new complain parameter.
181652284Sobrien	(get_template_base): Use try_class_unification.
181752284Sobrien	(unify): Adjust handling of classes derived from template types.
181852284Sobrien	(fn_type_unification): Substitute explicit arguments before
181952284Sobrien	unification.
182052284Sobrien
182152284Sobrien1999-02-16  Kriang Lerdsuwanakij  <lerdsuwa@scf-fs.usc.edu>
182252284Sobrien
182352284Sobrien	* decl.c (pushdecl): Remove dead code.
182452284Sobrien
182552284Sobrien1999-02-16  Jason Merrill  <jason@yorick.cygnus.com>
182652284Sobrien
182752284Sobrien	* decl2.c (finish_objects): Fix code I missed in previous change.
182852284Sobrien
182952284Sobrien1999-02-13  Jason Merrill  <jason@yorick.cygnus.com>
183052284Sobrien
183152284Sobrien	* decl.c (grokfndecl): Return NULL_TREE instead of error_mark_node.
183252284Sobrien	(grokdeclarator): Don't expect error_mark_node from grokfndecl.
183352284Sobrien
183452284Sobrien	* pt.c (maybe_process_partial_specialization): Complain about
183552284Sobrien	'template <>' on non-specialization.
183652284Sobrien
183752284Sobrien1999-02-10  Jason Merrill  <jason@yorick.cygnus.com>
183852284Sobrien
183952284Sobrien	* decl.c (grokdeclarator): Catch wierd declarators.
184052284Sobrien	* decl2.c (finish_file): Don't abort because of namespace parsing
184152284Sobrien	failure.
184252284Sobrien	(check_decl_namespace): Remove.
184352284Sobrien
184452284Sobrien1999-02-09  Mark Mitchell  <mark@markmitchell.com>
184552284Sobrien
184652284Sobrien	* cp-tree.h (get_template_base): Don't declare.
184752284Sobrien	(dfs_walk): Declare.
184852284Sobrien	(dfs_unmark): Likewise.
184952284Sobrien	(markedp): Likewise.
185052284Sobrien	* pt.c (unify): Remove duplicate declaration.  Pass tparms and
185152284Sobrien	targs to get_template_base.
185252284Sobrien	(get_template_base_recursive): Move here from search.c.  Check to
185352284Sobrien	see that the base found can be instantiated to form the desired
185452284Sobrien	type.
185552284Sobrien	(get_template_base): Likewise.
185652284Sobrien	(get_class_bindings): Simplify.
185752284Sobrien	* search.c (get_template_base_recursive): Move to pt.c.
185852284Sobrien	(get_template_base): Likewise.
185952284Sobrien	(markedp): Make it global.
186052284Sobrien	(dfs_walk): Likewise.
186152284Sobrien	(dfs_unmark): Likewise.
186252284Sobrien
186352284Sobrien1999-02-07  Jason Merrill  <jason@yorick.cygnus.com>
186452284Sobrien
186552284Sobrien	* pt.c (maybe_process_partial_specialization): Complain about
186652284Sobrien	specialization in wrong namespace.
186752284Sobrien	* tree.c (decl_namespace_context): New fn.
186852284Sobrien
186952284Sobrien1999-02-06  Kriang Lerdsuwanakij  <lerdsuwa@scf-fs.usc.edu>
187052284Sobrien
187152284Sobrien	* decl2.c (arg_assoc_type): Handle TEMPLATE_TEMPLATE_PARM.
187252284Sobrien	* pt.c (coerce_template_template_parms): Handle nested
187352284Sobrien	template template parameters.
187452284Sobrien
187552284SobrienSat Feb  6 18:08:40 1999  Jeffrey A Law  (law@cygnus.com)
187652284Sobrien
187752284Sobrien	* typeck2.c: Update email addresses.
187852284Sobrien
187952284Sobrien1999-02-04  Kriang Lerdsuwanakij  <lerdsuwa@scf-fs.usc.edu>
188052284Sobrien
188152284Sobrien	* pt.c (unify): Call coerce_template_parms with the COMPLAIN flag
188252284Sobrien	turned off.
188352284Sobrien
188452284Sobrien1999-02-04  Jason Merrill  <jason@yorick.cygnus.com>
188552284Sobrien
188652284Sobrien	* lex.c (retrofit_lang_decl): Split out...
188752284Sobrien	(build_lang_decl): From here.
188852284Sobrien	* decl.c (pushdecl): Call it for functions generated by the middle
188952284Sobrien	end that don't have DECL_LANG_SPECIFIC.
189052284Sobrien	* cp-tree.h: Declare it.
189152284Sobrien
189252284Sobrien	* decl2.c: Remove flag_init_priority.  Always enable initp stuff.
189352284Sobrien	(start_objects, finish_objects): Only use special
189452284Sobrien	init_priority code if the user specified a priority.
189552284Sobrien	(do_ctors, do_dtors): Use DEFAULT_INIT_PRIORITY for the non-initp
189652284Sobrien	objects.
189752284Sobrien
189852284SobrienWed Feb  3 22:50:17 1999  Marc Espie  <Marc.Espie@liafa.jussieu.fr>
189952284Sobrien
190052284Sobrien	* Make-lang.in (GXX_OBJS): Remove choose-temp.o, pexecute.o and
190152284Sobrien	mkstemp.o.  Get them from libiberty now.
190252284Sobrien	(DEMANGLER_PROG): Simlarly, remove getopt.o getopt1.o.
190352284Sobrien
190452284SobrienTue Feb  2 22:38:48 1999  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>
190552284Sobrien
190652284Sobrien	* decl2.c (lang_decode_option): Use read_integral_parameter.
190752284Sobrien
190852284Sobrien1999-02-01  Mark Mitchell  <mark@markmitchell.com>
190952284Sobrien
191052284Sobrien	* pt.c (tsubst, case TYPENAME_TYPE): Check TYPE_BEING_DEFINED
191152284Sobrien	before calling complete_type_or_else.
191252284Sobrien
191352284SobrienMon Feb  1 09:49:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
191452284Sobrien
191552284Sobrien	* input.c (inline): Don't define, its handled by system.h.
191652284Sobrien
191752284SobrienSun Jan 31 20:34:29 1999  Zack Weinberg  <zack@rabi.columbia.edu>
191852284Sobrien
191952284Sobrien	* decl2.c: Don't define flag_no_ident here.  Don't process
192052284Sobrien	-f(no-)ident here.
192152284Sobrien	* cp-tree.h: Don't declare flag_no_ident here.
192252284Sobrien	* lang-specs.h: Map -Qn to -fno-ident.
192352284Sobrien
192452284Sobrien1999-01-28  Jason Merrill  <jason@yorick.cygnus.com>
192552284Sobrien
192652284Sobrien	* cp-tree.h (struct tree_binding): Replace scope field with a union.
192752284Sobrien	(BINDING_SCOPE): Adjust.
192852284Sobrien	* decl.c (BINDING_LEVEL): Adjust.
192952284Sobrien
193052284Sobrien1999-01-26  Jason Merrill  <jason@yorick.cygnus.com>
193152284Sobrien
193252284Sobrien	* pt.c (instantiate_class_template): Set up the DECL_INITIAL of
193352284Sobrien	member constants.
193452284Sobrien
193552284Sobrien	* init.c (expand_member_init): Pull out TYPE_MAIN_VARIANT in
193652284Sobrien	a ctor initializer.
193752284Sobrien
193852284Sobrien	* tree.c (equal_functions): Fix name in prototype.
193952284Sobrien
194052284Sobrien	* decl.c (push_local_binding): Add FLAGS argument.
194152284Sobrien	(pushdecl, push_overloaded_decl): Pass it.
194252284Sobrien	* decl2.c (do_local_using_decl): Likewise.
194352284Sobrien	* cp-tree.h: Adjust prototype.
194452284Sobrien	* decl.c (poplevel): Fix logic.
194552284Sobrien
194652284Sobrien	* decl.c (push_local_binding): Also wrap used decls in a TREE_LIST.
194752284Sobrien	(poplevel): Handle that.  Fix logic for removing TREE_LISTs.
194852284Sobrien	(cat_namespace_levels): Don't loop forever.
194952284Sobrien
195052284Sobrien1999-01-25  Richard Henderson  <rth@cygnus.com>
195152284Sobrien
195252284Sobrien	* typeck.c (build_reinterpret_cast): Fix typo in duplicated test.
195352284Sobrien
195452284Sobrien1999-01-25  Jason Merrill  <jason@yorick.cygnus.com>
195552284Sobrien
195652284Sobrien	* class.c (resolve_address_of_overloaded_function): Mark the
195752284Sobrien	chosen function used.
195852284Sobrien
195952284Sobrien	* call.c (build_call): Make sure that a function coming in has
196052284Sobrien	been marked used already.
196152284Sobrien	* decl.c (expand_static_init): Call mark_used instead of
196252284Sobrien	assemble_external.
196352284Sobrien	* except.c (call_eh_info, do_pop_exception, expand_end_eh_spec,
196452284Sobrien	alloc_eh_object, expand_throw): Likewise.
196552284Sobrien	* init.c (build_builtin_delete_call): Likewise.
196652284Sobrien	* rtti.c (call_void_fn, get_tinfo_fn, build_dynamic_cast_1,
196752284Sobrien	expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc,
196852284Sobrien	expand_generic_desc): Likewise.
196952284Sobrien
197052284Sobrien1999-01-25  Martin von L�wis  <loewis@informatik.hu-berlin.de>
197152284Sobrien
197250397Sobrien	* tree.c (equal_functions): New function.
197350397Sobrien	(ovl_member): Call it.
197448743Sobrien
197552284Sobrien1999-01-24  Jason Merrill  <jason@yorick.cygnus.com>
197618334Speter
197752284Sobrien	* cvt.c (cp_convert_to_pointer): Fix conversion of 0 to pmf.
197818334Speter
197952284Sobrien1999-01-25  Martin von Loewis  <loewis@informatik.hu-berlin.de>
198052284Sobrien
198152284Sobrien	* decl.c (decls_match): Return 1 if old and new are identical.
198252284Sobrien	(push_overloaded_decl): Set OVL_USED when PUSH_USING.
198352284Sobrien
198452284Sobrien1999-01-24  Jason Merrill  <jason@yorick.cygnus.com>
198552284Sobrien
198652284Sobrien	* decl.c (start_function): Make member functions one_only on windows.
198752284Sobrien	* decl2.c (import_export_decl): Likewise.
198852284Sobrien
198952284Sobrien	* decl.c (grokdeclarator): Don't complain about implicit int in
199052284Sobrien	a system header.  Change same-name field check to not complain in
199152284Sobrien	a system header instead of within extern "C".
199252284Sobrien
199352284Sobrien1999-01-21  Mark Mitchell  <mark@markmitchell.com>
199452284Sobrien
199552284Sobrien	* cp-tree.h (PUSH_GLOBAL): New macro.
199652284Sobrien	(PUSH_LOCAL): Likewise.
199752284Sobrien	(PUSH_USING): Likewise.
199852284Sobrien	(namespace_bindings_p): Declare.
199952284Sobrien	(push_overloaded_decl): Likewise.
200052284Sobrien	* decl.c (push_overloaded_decl): Don't make it static.  Check for
200152284Sobrien	illegal declarations after using declarations here.
200252284Sobrien	(namespace_bindings_p): Likewise.
200352284Sobrien	(duplicate_decls): Don't consider declarations from different
200452284Sobrien	namespaces to be the same.
200552284Sobrien	(pushdecl): Use symbolic PUSH_ constants in calls to
200652284Sobrien	push_overloaded_decl.
200752284Sobrien	(push_overloaded_decl_1): Likewise.
200852284Sobrien	* decl2.c (validate_nonmember_using_decl): Tweak `std' handling.
200952284Sobrien	(do_nonmember_using_decl): Check for illegal using declarations
201052284Sobrien	after ordinary declarations here.
201152284Sobrien	(do_local_using_decl): Call pushdecl to insert declarations.
201252284Sobrien
201352284Sobrien1999-01-21  Jason Merrill  <jason@yorick.cygnus.com>
201452284Sobrien
201552284Sobrien	* decl.c (grokdeclarator): Fix lang_c -> lang_name_c typo.
201652284Sobrien
201752284Sobrien1999-01-21  Mark Mitchell  <mark@markmitchell.com>
201852284Sobrien
201952284Sobrien	* tree.c (build_cplus_array_type_1): Don't call build_array_type
202052284Sobrien	for types involving template parameters.
202152284Sobrien
202252284Sobrien	* cp-tree.h (PARM_DECL_EXPR): Delete.
202352284Sobrien	(convert_default_arg): Change prototype.
202452284Sobrien	(check_default_argument): Declare.
202552284Sobrien	(search_tree): Likewise.
202652284Sobrien	* call.c (convert_default_arg): Take the function to which the
202752284Sobrien	default argument belongs as a parameter, and do any necessary
202852284Sobrien	instantiation here, instead of ...
202952284Sobrien	(build_over_call): Here.
203052284Sobrien	* decl.c (local_variable_p): New function.
203152284Sobrien	(check_default_argument): Likewise, split out and tidied from ...
203252284Sobrien	(grokparms): Here.
203352284Sobrien	* error.c (dump_expr): Don't set PARM_DECL_EXPR.
203452284Sobrien	* pt.c (tsubst_call_declarator_parms): New function.
203552284Sobrien	(for_each_template_parm): Handle ARRAY_REFs.  Do the obvious thing
203652284Sobrien	with CALL_EXPRs, rather than trying to be clever.
203752284Sobrien	(tsubst): Use tsubst_call_declarator_parms.
203852284Sobrien	* tree.c (search_tree): Don't make it static.
203952284Sobrien	* typeck.c (convert_arguments): Use new interface to
204052284Sobrien	convert_default_arg.
204152284Sobrien
204252284Sobrien1999-01-20  Mark Mitchell  <mark@markmitchell.com>
204352284Sobrien
204452284Sobrien	* error.c (dump_function_decl): Don't print the argument types for
204552284Sobrien	a function when the verbosity level is negative.
204652284Sobrien
204752284Sobrien	* call.c (build_over_call): Check format attributes at call-time.
204852284Sobrien
204952284Sobrien	* pt.c (tsubst_copy): Fix comment.
205052284Sobrien	(unify): Don't allow unification with variable-sized arrays.
205152284Sobrien
205252284Sobrien	* semantics.c (finish_stmt_expr): When processing a template make
205352284Sobrien	the BIND_EXPR long-lived.
205452284Sobrien
205552284Sobrien1999-01-19  Jason Merrill  <jason@yorick.cygnus.com>
205652284Sobrien
205752284Sobrien	* decl2.c (finish_vtable_vardecl): Make vtables comdat here.
205852284Sobrien	(import_export_vtable): Not here.
205952284Sobrien
206052284Sobrien1999-01-18  Jason Merrill  <jason@yorick.cygnus.com>
206152284Sobrien
206252284Sobrien	* typeck.c (build_component_ref): Wrap an OVERLOAD around a unique
206352284Sobrien	non-static member function.
206452284Sobrien
206552284Sobrien1999-01-18  Nathan Sidwell  <nathan@acm.org>
206652284Sobrien
206752284Sobrien	* class.c (instantiate_type): Only diagnose illegal address of member
206852284Sobrien	function if complaining.
206952284Sobrien
207052284Sobrien	* decl.c (lookup_name_real): Remove duplicate code.
207152284Sobrien
207252284Sobrien1999-01-18  Jason Merrill  <jason@yorick.cygnus.com>
207352284Sobrien
207452284Sobrien	* tree.c (copy_template_template_parm): Use permanent_obstack.
207552284Sobrien
207652284Sobrien1999-01-18  Kriang Lerdsuwanakij  <lerdsuwa@scf-fs.usc.edu>
207752284Sobrien
207852284Sobrien	* pt.c (unify): Remove restrictions on deduction of argument
207952284Sobrien	of template template parameters.
208052284Sobrien
208152284Sobrien1999-01-18  Nathan Sidwell  <nathan@acm.org>
208252284Sobrien
208352284Sobrien	* rtti.c (build_dynamic_cast_1): Resolve OFFSET_REF exprs.
208452284Sobrien
208552284Sobrien	* class.c (resolve_address_of_overloaded_function): Show list of
208652284Sobrien	all candidates, when none of them match.
208752284Sobrien
208852284Sobrien1999-01-18  Chip Salzenberg  <chip@perlsupport.com>
208952284Sobrien
209052284Sobrien	* typeck.c (comp_ptr_ttypes_reinterpret): Per ANSI, tighten up
209152284Sobrien	definition of 'casting away const' in reinterpret_cast<>.
209252284Sobrien
209352284Sobrien1999-01-18  Graham  <grahams@rcp.co.uk>
209452284Sobrien
209552284Sobrien	* cvt.c: Add include for decl.h, remove extern for
209652284Sobrien	static_aggregates which is now provided by decl.h.
209752284Sobrien
209852284Sobrien	* Makefile.in (cvt.o): Add dependency for decl.h and missing
209952284Sobrien	dependencies for convert.h and flags.h.
210052284Sobrien
210152284Sobrien1999-01-18  Nathan Sidwell  <nathan@acm.org>
210252284Sobrien
210352284Sobrien	* decl2.c (do_dtors): Set current location to that of the
210452284Sobrien	decl, for sensible diagnostics and debugging.
210552284Sobrien	(check_classfn): Issue `incomplete type' error, if
210652284Sobrien	class is not defined.
210752284Sobrien
210852284Sobrien1999-01-16  Jason Merrill  <jason@yorick.cygnus.com>
210952284Sobrien
211052284Sobrien	* cp-tree.h: Add prototype for bound_pmf_p.
211152284Sobrien
211252284Sobrien1999-01-16  Jason Merrill  <jason@yorick.cygnus.com>
211352284Sobrien	    Manfred Hollstein <manfred@s-direktnet.de>
211452284Sobrien
211552284Sobrien	* decl.c (grokdeclarator): Don't make 'main(){}' an error with only
211652284Sobrien	-Wreturn-type.
211752284Sobrien
211852284Sobrien1999-01-16  Nathan Sidwell  <nathan@acm.org>
211952284Sobrien
212052284Sobrien	* cp-tree.h (struct lang_type): Added has_mutable flag.
212152284Sobrien	(CLASSTYPE_HAS_MUTABLE): New macro to access it.
212252284Sobrien	(TYPE_HAS_MUTABLE_P): New macro to read it.
212352284Sobrien	(cp_has_mutable_p): Prototype for new function.
212452284Sobrien	* class.c (finish_struct_1): Set has_mutable from members.
212552284Sobrien	* decl.c (cp_finish_decl): Clear decl's TREE_READONLY flag, if
212652284Sobrien	it contains a mutable.
212752284Sobrien	* typeck.c (cp_has_mutable_p): New function.
212852284Sobrien
212952284Sobrien1999-01-15  Mark Mitchell  <mark@markmitchell.com>
213052284Sobrien
213152284Sobrien	* pt.c (process_template_parm): Ignore top-level qualifiers on
213252284Sobrien	non-type parameters.
213352284Sobrien
213452284Sobrien	* decl.c (start_function): Use current_function_parms in the call
213552284Sobrien	to require_complete_type_for_parms, not the probably empty
213652284Sobrien	DECL_ARGUMENTS.
213752284Sobrien
213852284Sobrien1999-01-14  Jason Merrill  <jason@yorick.cygnus.com>
213952284Sobrien
214052284Sobrien	* semantics.c (finish_asm_stmt): Don't warn about redundant volatile.
214152284Sobrien
214252284Sobrien	* decl2.c (import_export_class): MULTIPLE_SYMBOL_SPACES only means
214352284Sobrien	that we don't suppress the other copies.
214452284Sobrien	* lex.c (handle_cp_pragma): Likewise.
214552284Sobrien
214652284Sobrien1999-01-13  Mark Mitchell  <mark@markmitchell.com>
214752284Sobrien
214852284Sobrien	* decl.c (grokdeclarator): Undo 1998-12-14 change.
214952284Sobrien	* tree.c (build_cplus_array_type_1): Likewise.
215052284Sobrien	* pt.c (instantiate_class_template): Remove misleading comment.
215152284Sobrien	(tsubst_aggr_type): Substitute if there are template parameters,
215252284Sobrien	regardless of whether or not they use template arguments.
215352284Sobrien	(unify): Likewise, but for unification.
215452284Sobrien
215552284Sobrien1999-01-12  Richard Henderson  <rth@cygnus.com>
215652284Sobrien
215752284Sobrien	* cp-tree.h (flag_permissive): Declare extern.
215852284Sobrien
215952284Sobrien1999-01-06  Mark Mitchell  <mark@markmitchell.com>
216052284Sobrien
216152284Sobrien	* cp-tree.h (IDENTIFIER_TYPENAME_P): Use OPERATOR_TYPENAME_FORMAT
216252284Sobrien	here.
216352284Sobrien	(lang_type): Add is_partial_instantiation.  Decrease width of
216452284Sobrien	dummy.
216552284Sobrien	(PARTIAL_INSTANTIATION_P): New macro.
216652284Sobrien	(OPERATOR_TYPENAME_P): Remove.
216752284Sobrien	* decl.c (unary_op_p): Use IDENTIFIER_TYPENAME_P, not
216852284Sobrien	OPERATOR_TYPENAME_P.
216952284Sobrien	(grok_op_properties): Likewise.
217052284Sobrien	* friend.c (do_friend): Handle friends that are member functions
217152284Sobrien	correctly.
217252284Sobrien	* lex.c (init_parse): Use OPERATOR_TYPENAME_FORMAT.
217352284Sobrien	* pt.c (instantiate_class_template): Rework for clarity.  Avoid
217452284Sobrien	leaving TYPE_BEING_DEFINED set in obscure cases.  Don't do
217552284Sobrien	any more partial instantiation than is absolutely necessary for
217652284Sobrien	implicit typename.  Set PARTIAL_INSTANTIATION_P.
217752284Sobrien	(tsubst_decl): Use IDENTIFIER_TYPENAME_P.
217852284Sobrien	* semantics.c (begin_class_definition): Handle partial
217952284Sobrien	specializations of a type that was previously partially
218052284Sobrien	instantiated.
218152284Sobrien
218252284SobrienWed Jan  6 03:18:53 1999  Mark Elbrecht  <snowball3@usa.net.
218352284Sobrien
218452284Sobrien	* g++spec.c (LIBSTDCXX): Provide default definition.
218552284Sobrien	(lang_specific_driver): Use LIBSTDCXX instead of "-lstdc++".
218652284Sobrien
218752284SobrienTue Jan  5 22:11:25 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
218852284Sobrien
218952284Sobrien	* Make-lang.in (g++.o): Depend on prefix.h.
219052284Sobrien
219152284Sobrien1999-01-04  Jason Merrill  <jason@yorick.cygnus.com>
219252284Sobrien
219352284Sobrien	* tree.c (bound_pmf_p): New fn.
219452284Sobrien	* typeck.c (build_c_cast): Use it.
219552284Sobrien
219652284Sobrien	* decl.c (grok_op_properties): Use same_type_p.
219752284Sobrien
219852284SobrienTue Dec 22 15:09:25 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
219952284Sobrien
220052284Sobrien	* Makefile.in (cvt.o): Depend on toplev.h.
220152284Sobrien
220252284Sobrien	* cp-tree.h (check_template_shadow, pod_type_p): Add prototypes.
220352284Sobrien
220452284Sobrien	* cvt.c: Include toplev.h.
220552284Sobrien
220652284Sobrien	* except.c (get_eh_caught, get_eh_handlers): Hide prototypes and
220752284Sobrien	definitions.
220852284Sobrien
220952284Sobrien	* init.c (expand_vec_init): Initialize variable `itype'.
221052284Sobrien
221152284Sobrien	* lex.c (yyerror): Cast the argument passed to a ctype function to
221252284Sobrien	an unsigned char.
221352284Sobrien
221452284Sobrien	* method.c (build_mangled_C9x_name): Wrap prototype and definition
221552284Sobrien	in "HOST_BITS_PER_WIDE_INT >= 64".
221652284Sobrien
221752284Sobrien	* typeck.c (build_binary_op): Mark parameter `convert_p' with
221852284Sobrien	ATTRIBUTE_UNUSED.
221952284Sobrien
222052284Sobrien1998-12-22  Mark Mitchell  <mark@markmitchell.com>
222152284Sobrien
222252284Sobrien	* cp-tree.h (TYPE_RAISES_EXCEPTIONS): Improve documentation.
222352284Sobrien	* tree.c (build_exception_variant): Don't crash on empty throw
222452284Sobrien	specs.
222552284Sobrien
222652284Sobrien1998-12-18  DJ Delorie  <dj@cygnus.com>
222752284Sobrien
222852284Sobrien	* cvt.c (convert_to_reference): Check for both error_mark_node
222952284Sobrien	and NULL_NODE after call to convert_for_initialization.
223052284Sobrien
223152284Sobrien1998-12-17  Jason Merrill  <jason@yorick.cygnus.com>
223252284Sobrien
223352284Sobrien	* error.c (interesting_scope_p): New fn.
223452284Sobrien	(dump_simple_decl): Use it.
223552284Sobrien	(dump_expr, case CONSTRUCTOR): Force a & for a PMF.
223652284Sobrien	(dump_expr, case OFFSET_REF): Print ->* if appropriate.
223752284Sobrien
223852284Sobrien1998-12-16  Mark Mitchell  <mark@markmitchell.com>
223952284Sobrien
224052284Sobrien	* class.c (resolve_address_of_overloaded_function): Do conversion
224152284Sobrien	to correct type here, rather than ...
224252284Sobrien	(instantiate_type): Here.
224352284Sobrien
224452284Sobrien	* cp-tree.h (DECL_TEMPLATE_PARM_P): New macro.
224552284Sobrien	(DECL_TEMPLATE_TEMPLATE_PARM_P): Use it.
224652284Sobrien	(decl_template_parm_p): Remove.
224752284Sobrien	* decl.c (pushdecl): Don't set DECL_CONTEXT for a template
224852284Sobrien	parameter.
224952284Sobrien	* lex.c (do_identifier): Use DECL_TEMPLATE_PARM_P.
225052284Sobrien	* pt.c (push_inline_template_parms_recursive): Set it.
225152284Sobrien	(decl_template_parm_p): Remove.
225252284Sobrien	(check_template_shadow): Use DECL_TEMPLATE_PARM_P.
225352284Sobrien	(process_template_parm): Set it.
225452284Sobrien
225552284SobrienWed Dec 16 16:33:58 1998  Dave Brolley  <brolley@cygnus.com>
225652284Sobrien
225752284Sobrien	* lang-specs.h (default_compilers): Pass -MD, -MMD and -MG to cc1plus
225852284Sobrien	if configured with cpplib.
225952284Sobrien
226052284Sobrien1998-12-15  Mark Mitchell  <mark@markmitchell.com>
226152284Sobrien
226252284Sobrien	* decl.c (poplevel): Make sure ns_binding is initialized.
226352284Sobrien
226452284Sobrien	* decl.c (finish_function): Undo inadvertent change in previous
226552284Sobrien	patch.
226652284Sobrien
226752284Sobrien1998-12-14  Mark Mitchell  <mark@markmitchell.com>
226852284Sobrien
226952284Sobrien	* class.c (pushclass): Tweak handling of class-level bindings.
227052284Sobrien	(resolve_address_of_overloaded_function): Update pointer-to-member
227152284Sobrien	handling.
227252284Sobrien	(instantiate_type): Likewise.
227352284Sobrien	* cvt.c (cp_convert_to_pointer): Likewise.
227452284Sobrien	* decl.c (pop_binding): Take the DECL to pop, not just the name.
227552284Sobrien	Deal with `struct stat' hack.
227652284Sobrien	(binding_level): Add to documentation.
227752284Sobrien	(push_binding): Clear BINDING_TYPE.
227852284Sobrien	(add_binding): New function.
227952284Sobrien	(push_local_binding): Use it.
228052284Sobrien	(push_class_binding): Likewise.
228152284Sobrien	(poplevel): Adjust calls to pop_binding.
228252284Sobrien	(poplevel_class): Likewise.
228352284Sobrien	(pushdecl): Adjust handling of TYPE_DECLs; add bindings for hidden
228452284Sobrien	declarations to current binding level.
228552284Sobrien	(push_class_level_binding): Likewise.
228652284Sobrien	(push_overloaded_decl): Adjust handling of OVERLOADs in local
228752284Sobrien	bindings.
228852284Sobrien	(lookup_namespace_name): Don't crash when confronted with a
228952284Sobrien	TEMPLATE_DECL.
229052284Sobrien	(lookup_name_real): Do `struct stat' hack in local binding
229152284Sobrien	contexts.
229252284Sobrien	(build_ptrmemfunc_type): Adjust documentation.
229352284Sobrien	(grokdeclarator): Don't avoid building real array types when
229452284Sobrien	processing templates unless really necessary.
229552284Sobrien	(finish_method): Adjust calls to pop_binding.
229652284Sobrien	* decl2.c (reparse_absdcl_as_expr): Recursively call ourselves,
229752284Sobrien	not reparse_decl_as_expr.
229852284Sobrien	(build_expr_from_tree): Deal with a template-id as the function to
229952284Sobrien	call in a METHOD_CALL_EXPR.
230052284Sobrien	* pt.c (convert_nontype_argument): Tweak pointer-to-member handling.
230152284Sobrien	(maybe_adjust_types_For_deduction): Don't do peculiar things with
230252284Sobrien	METHOD_TYPEs here.
230352284Sobrien	(resolve_overloaded_unification): Handle COMPONENT_REFs.  Build
230452284Sobrien	pointer-to-member types where necessary.
230552284Sobrien	* tree.c (build_cplus_array_type_1): Don't avoid building real
230652284Sobrien	array types when processing templates unless really necessary.
230752284Sobrien	(build_exception_variant): Compare the exception lists correctly.
230852284Sobrien
230952284Sobrien1998-12-13  Mark Mitchell  <mark@markmitchell.com>
231052284Sobrien
231152284Sobrien	* cp-tree.def (CPLUS_BINDING): Update documentation.
231252284Sobrien	* cp-tree.h (LOCAL_BINDING_P): New macro.
231352284Sobrien	(lang_identifier): Rename local_value to bindings.
231452284Sobrien	(tree_binding): Make `scope' of type `void*', not `tree'.
231552284Sobrien	(BINDING_SCOPE): Update documentation.
231652284Sobrien	(IDENTIFIER_LOCAL_VALUE): Remove.
231752284Sobrien	(IDENTIFIER_CLASS_VALUE): Document.
231852284Sobrien	(IDENTIFIER_BINDING): New macro.
231952284Sobrien	(IDENTIFIER_VALUE): Likewise.
232052284Sobrien	(TIME_IDENTIFIER_TIME): Likewise.
232152284Sobrien	(TIME_IDENTIFIER_FILEINFO): Likewise.
232252284Sobrien	(IMPLICIT_TYPENAME_P): Likewise.
232352284Sobrien	(set_identifier_local_value): Remove.
232452284Sobrien	(push_local_binding): New function.
232552284Sobrien	(push_class_binding): Likewise.
232652284Sobrien	* class.c (pushclass): Update comments; use push_class_binding.
232752284Sobrien	* decl.c (set_identifier_local_value_with_scope): Remove.
232852284Sobrien	(set_identifier_local_value): Likewise.
232952284Sobrien	(push_binding): New function.
233052284Sobrien	(pop_binding): Likewise.
233152284Sobrien	(binding_level): Update documentation.  Remove shadowed.
233252284Sobrien	(BINDING_LEVEL): New macro.
233352284Sobrien	(free_binding_nodes): New variable.
233452284Sobrien	(poplevel): Adjust for new name-lookup scheme.  Don't mess up
233552284Sobrien	BLOCK_VARs when doing for-scope extension.  Remove effectively
233652284Sobrien	dead code.
233752284Sobrien	(pushlevel_class): Tweak formatting.
233852284Sobrien	(poplevel_class): Adjust for new name-lookup scheme.
233952284Sobrien	(print_binding_level): Likewise.
234052284Sobrien	(store_bindings): Likewise.
234152284Sobrien	(pushdecl): Likewise.
234252284Sobrien	(pushdecl_class_level): Likewise.
234352284Sobrien	(push_class_level_binding): Likewise.
234452284Sobrien	(push_overloaded_decl): Update comments.  Adjust for new
234552284Sobrien	name-lookup scheme.
234652284Sobrien	(lookup_name_real): Likewise.
234752284Sobrien	(lookup_name_current_level): Likewise.
234852284Sobrien	(cp_finish_decl): Likewise.
234952284Sobrien	(require_complete_types_for_parms): Likewise.  Remove misleading
235052284Sobrien	#if 0'd code.
235152284Sobrien	(grok_parms): Likewise.  Don't call
235252284Sobrien	require_complete_types_for_parms here.
235352284Sobrien	(grok_ctor_properties): Don't treat templates as copy
235452284Sobrien	constructors.
235552284Sobrien	(grop_op_properties): Or as assignment operators.
235652284Sobrien	(start_function): Document.  Adjust for new name-lookup scheme.
235752284Sobrien	(finish_function): Likewise.
235852284Sobrien	* decl2.c (do_local_using_decl): Use push_local_binding.
235952284Sobrien	* lex.c (begin_definition_of_inclass_inline): New function, split
236052284Sobrien	out from ...
236152284Sobrien	(do_pending_inlines): Here, and ...
236252284Sobrien	(process_next_inline): Here.
236352284Sobrien	(get_time_identifier): Use TIME_IDENTIFIER_* macros.
236452284Sobrien	(init_filename_times): Likewise.
236552284Sobrien	(extract_interface_info): Likewise.
236652284Sobrien	(ste_typedecl_interface_info): Likewise.
236752284Sobrien	(check_newline): Likewise.
236852284Sobrien	(dump_time_statistics): Likewise.
236952284Sobrien	(handle_cp_pragma): Likewise.
237052284Sobrien	(do_identifier): Adjust for new name-lookup scheme.
237152284Sobrien	* parse.y (function_try_block): Return ctor_initializer_opt value.
237252284Sobrien	(fndef): Use it.
237352284Sobrien	(fn.defpen): Pass appropriate values to start_function.
237452284Sobrien	(pending_inline): Use functor_try_block value, and pass
237552284Sobrien	appropriate values to finish_function.
237652284Sobrien	* pt.c (is_member_template): Update documentation; remove handling
237752284Sobrien	of FUNCTION_DECLs.  As per name, this function should deal only in
237852284Sobrien	TEMPLATE_DECLs.
237952284Sobrien	(decl_template_parm_p): Change name of olddecl parameter to decl.
238052284Sobrien	(check_template_shadow): Adjust for new name-lookup scheme.
238152284Sobrien	(lookup_template_class): Likewise.
238252284Sobrien	(tsubst_decl): Tweak so as not to confuse member templates with
238352284Sobrien	copy constructors and assignment operators.
238452284Sobrien	(unify): Handle UNION_TYPEs.
238552284Sobrien	* ptree.c (print_lang_identifier): Adjust for new name-lookup scheme.
238652284Sobrien	(lang_print_xnode): Adjust for new name-lookup scheme.
238752284Sobrien	* typeck.c (mark_addressable): Likewise.
238852284Sobrien	(c_expand_return): Likewise.
238952284Sobrien
239052284Sobrien1998-12-08  Jason Merrill  <jason@yorick.cygnus.com>
239152284Sobrien
239252284Sobrien	* decl.c (grokdeclarator): Allow field with same name as class
239352284Sobrien	in extern "C".
239452284Sobrien
239552284Sobrien	* decl.c (lookup_name_real): Don't limit field lookup to types.
239652284Sobrien	* class.c (check_member_decl_is_same_in_complete_scope): No error
239752284Sobrien	if icv and x are the same.
239852284Sobrien	* lex.c (do_identifier): Tweak error message.
239952284Sobrien
240052284Sobrien1998-12-10  Mark Mitchell  <mark@markmitchell.com>
240152284Sobrien
240252284Sobrien	* decl.c (start_enum): Use push_obstacks, not
240352284Sobrien	end_temporary_allocation.
240452284Sobrien	(finish_enum): Call pop_obstacks.
240552284Sobrien
240652284Sobrien1998-12-10  Mark Mitchell  <mark@markmitchell.com>
240752284Sobrien
240852284Sobrien	* class.c (instantiate_type): Return error_mark_node rather than
240952284Sobrien	junk.
241052284Sobrien
241152284Sobrien1998-12-09  Mark Mitchell  <mark@markmitchell.com>
241252284Sobrien
241352284Sobrien	* cp-tree.h (most_specialized_instantiation): New function.
241452284Sobrien	(print_candidates): Likewise.
241552284Sobrien	* class.c (validate_lhs): Remove.
241652284Sobrien	(resolve_address_of_overloaded_function): New function, split out
241752284Sobrien	and then substantially reworked, from ...
241852284Sobrien	(instantiate_type): Use it.  Simplify.
241952284Sobrien	* cvt.c (convert_to_reference): Complain when caller has indicated
242052284Sobrien	that's the right thing to do.  Don't crash if instantiate_type
242152284Sobrien	fails.
242252284Sobrien	* pt.c: Substitute `parameters' for `paramters' throughout.
242352284Sobrien	(print_candidates): Don't make it static.
242452284Sobrien	(most_specialized_instantiation): Split out from ...
242552284Sobrien	(most_specialized): Here.
242652284Sobrien
242752284SobrienWed Dec  9 15:33:01 1998  Dave Brolley  <brolley@cygnus.com>
242852284Sobrien
242952284Sobrien	* lex.c (lang_init_options): Initialize cpplib.
243052284Sobrien	* decl2.c (parse_options,cpp_initialized): Removed.
243152284Sobrien	(lang_decode_option): Move initialization of cpplib to
243252284Sobrien	lang_init_options.
243352284Sobrien
243452284Sobrien1998-12-09  Mark Mitchell  <mark@markmitchell.com>
243552284Sobrien
243652284Sobrien	* decl.c (grokdeclarator): Update the name of the TEMPLATE_DECL, as
243752284Sobrien	well as the TYPE_DECL, when a typedef name is assigned to a
243852284Sobrien	previously anonymous type.
243952284Sobrien
244052284Sobrien1998-12-08  Andrew MacLeod  <amacleod@cygnus.com>
244152284Sobrien
244252284Sobrien	* cp/except.c (call_eh_info): Use __start_cp_handler instead of
244352284Sobrien	__cp_eh_info for getting the eh info pointer.  Add table_index to
244452284Sobrien	field list.
244552284Sobrien	(push_eh_cleanup): Don't increment 'handlers' data field.
244652284Sobrien	(process_start_catch_block): Don't set the 'caught' field.
244752284Sobrien
244852284Sobrien	* cp/exception.cc (CP_EH_INFO): New macro for getting the
244952284Sobrien	exception info pointer within library routines.
245052284Sobrien	(__cp_eh_info): Use CP_EH_INFO.
245152284Sobrien	(__start_cp_handler): Get exception info pointer, set caught field,
245252284Sobrien	and increment the handlers field.  Avoids this being done by handlers.
245352284Sobrien	(__uncatch_exception, __check_eh_spec): Use CP_EH_INFO macro.
245452284Sobrien	(uncaught_exception): Use CP_EH_INFO macro.
245552284Sobrien
245652284SobrienTue Dec  8 10:48:21 1998  Jeffrey A Law  (law@cygnus.com)
245752284Sobrien
245852284Sobrien	* Make-lang.in (cxxmain.o): Depend on $(DEMANGLE_H), not demangle.h
245952284Sobrien
246052284SobrienMon Dec  7 17:56:06 1998  Mike Stump  <mrs@wrs.com>
246152284Sobrien
246252284Sobrien	* lex.c (check_newline): Add support for \ as `natural'
246352284Sobrien	characters in file names in #line to be consistent with #include
246452284Sobrien	handling.  We support escape processing in the # 1 "..." version of
246552284Sobrien	the command.  See also support in cp/lex.c.
246652284Sobrien
246752284Sobrien1998-12-07  Zack Weinberg  <zack@rabi.phys.columbia.edu>
246852284Sobrien
246952284Sobrien	* cp/decl2.c: s/data/opts/ when initializing cpp_reader
247052284Sobrien	structure.
247152284Sobrien
247252284Sobrien1998-12-07  Jason Merrill  <jason@yorick.cygnus.com>
247352284Sobrien
247452284Sobrien	* decl.c (build_typename_type): Set DECL_ARTIFICIAL.
247552284Sobrien
247652284Sobrien	* error.c (dump_simple_decl): Also print namespace context.
247752284Sobrien	(dump_function_decl): Likewise.
247852284Sobrien
247952284Sobrien	* decl2.c (ambiguous_decl): Don't print old value if it's
248052284Sobrien	error_mark_node.
248152284Sobrien
248252284Sobrien	* decl.c (lookup_name_real): Fix handling of local types shadowed
248352284Sobrien	by a non-type decl.  Remove obsolete code.
248452284Sobrien	* cp-tree.h (DECL_FUNCTION_SCOPE_P): New macro.
248552284Sobrien
248652284Sobrien	* lang-options.h: Add -fpermissive.
248752284Sobrien	* decl2.c: Likewise.
248852284Sobrien	* cp-tree.h: Add flag_permissive.
248952284Sobrien	* decl.c (init_decl_processing): If neither -fpermissive or -pedantic
249052284Sobrien	were specified, set flag_pedantic_errors.
249152284Sobrien	* call.c (build_over_call): Turn dropped qualifier messages
249252284Sobrien	back into pedwarns.
249352284Sobrien	* cvt.c (convert_to_reference): Likewise.
249452284Sobrien	* typeck.c (convert_for_assignment): Likewise.
249552284Sobrien
249652284Sobrien1998-12-05  Jason Merrill  <jason@yorick.cygnus.com>
249752284Sobrien
249852284Sobrien	* decl2.c (coerce_new_type): Use same_type_p.
249952284Sobrien	(coerce_delete_type): Likewise.
250052284Sobrien
250152284Sobrien	* call.c (check_dtor_name): Return 1, not error_mark_node.
250252284Sobrien
250352284Sobrien1998-12-04  Jason Merrill  <jason@yorick.cygnus.com>
250452284Sobrien
250552284Sobrien	* lex.c (handle_cp_pragma): Disable #pragma interface/implementation
250652284Sobrien	if MULTIPLE_SYMBOL_SPACES.
250752284Sobrien
250852284Sobrien	* pt.c (check_template_shadow): New fn.
250952284Sobrien	* decl2.c (grokfield): Use it.
251052284Sobrien	* decl.c (pushdecl): Likewise.
251152284Sobrien	(pushdecl_class_level): Likewise.
251252284Sobrien	(start_method): Likewise.
251352284Sobrien	(xref_tag): Don't try to use 't' if we're defining.
251452284Sobrien
251552284Sobrien	* call.c (check_dtor_name): Just return an error_mark_node.
251652284Sobrien	* pt.c (lookup_template_class): Complain about using non-template here.
251752284Sobrien	* parse.y (apparent_template_type): Not here.
251852284Sobrien
251952284Sobrien	* pt.c (check_explicit_specialization): Complain about specialization
252052284Sobrien	with C linkage.
252152284Sobrien
252252284Sobrien	* lang-options.h: Add -f{no-,}implicit-inline-templates.
252352284Sobrien
252452284Sobrien	* pt.c (convert_nontype_argument): Don't assume that any integer
252552284Sobrien	argument is intended to be a constant-expression.
252652284Sobrien
252752284Sobrien1998-12-03  Mark Mitchell  <mark@markmitchell.com>
252852284Sobrien
252952284Sobrien	* class.c (handle_using_decl): Fix comment.  Don't lookup
253052284Sobrien	constructors in base classes.
253152284Sobrien	(validate_lhs): Fix typo in comment.
253252284Sobrien	* search.c (lookup_field_1): Don't return a USING_DECL.
253352284Sobrien
253452284Sobrien	* cp-tree.h (DECL_ACCESS): Improve documentation.
253552284Sobrien
253652284Sobrien	* decl.c (expand_static_init): Don't set the initialization-done
253752284Sobrien	flag until the initialization is done.
253852284Sobrien
253952284Sobrien1998-12-02  Mark Mitchell  <mark@markmitchell.com>
254052284Sobrien
254152284Sobrien	* decl2.c (validate_nonmember_using_decl): Complain about using
254252284Sobrien	declarations for class members.
254352284Sobrien
254452284Sobrien1998-11-29  Jason Merrill  <jason@yorick.cygnus.com>
254552284Sobrien
254652284Sobrien	* typeck2.c (process_init_constructor): Use same_type_p.
254752284Sobrien
254852284Sobrien	* decl.c (check_tag_decl): Don't warn about null decl inside a
254952284Sobrien	class.
255052284Sobrien
255152284Sobrien	* pt.c (unify, case OFFSET_TYPE): Pass down 'strict' rather than
255252284Sobrien	UNIFY_ALLOW_NONE.
255352284Sobrien	(convert_nontype_argument): Use TYPE_PTRMEMFUNC_FN_TYPE.
255452284Sobrien	(resolve_overloaded_unification): Strip baselinks.
255552284Sobrien
255652284SobrienFri Nov 27 13:07:23 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
255752284Sobrien
255852284Sobrien	* g++spec.c: Don't prototype xmalloc.
255952284Sobrien
256052284Sobrien1998-11-25  Jason Merrill  <jason@yorick.cygnus.com>
256152284Sobrien
256252284Sobrien	* except.c (expand_throw): Use TYPE_PTR_P to check for pointers.
256352284Sobrien
256452284Sobrien	* decl.c (check_tag_decl): Do complain about null friend decl at
256552284Sobrien	file scope.
256652284Sobrien
256752284Sobrien1998-11-25  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
256852284Sobrien
256952284Sobrien	* lex.c (make_lang_type): Clear the whole struct lang_type, not
257052284Sobrien	only the first multiple of sizeof (int).
257152284Sobrien
257252284Sobrien1998-11-24  Jason Merrill  <jason@yorick.cygnus.com>
257352284Sobrien
257452284Sobrien	* decl.c (start_decl): An explicit specialization of a static data
257552284Sobrien	member is only a definition if it has an initializer.
257652284Sobrien
257752284Sobrien	* except.c (expand_throw): Use cp_finish_decl for the throw temp.
257852284Sobrien	* cvt.c (build_up_reference): Pass DIRECT_BIND down into
257952284Sobrien	cp_finish_decl.
258052284Sobrien	* init.c (expand_default_init): Check for DIRECT_BIND instead of
258152284Sobrien	DECL_ARTIFICIAL.
258252284Sobrien
258352284Sobrien	* call.c (build_over_call): Use build_decl.
258452284Sobrien
258552284Sobrien	* except.c (expand_throw): Just use convert, not
258652284Sobrien	build_reinterpret_cast.
258752284Sobrien
258852284Sobrien	* lex.c (handle_generic_pragma): Use token_buffer.
258952284Sobrien
259052284Sobrien	* decl.c (check_tag_decl): Don't complain about null friend decl.
259152284Sobrien
259252284Sobrien1998-11-24  Dave Pitts  <dpitts@cozx.com>
259352284Sobrien
259452284Sobrien	* Make-lang.in (DEMANGLER_PROG): Move the output arguments to the
259552284Sobrien	first position.
259652284Sobrien	* lex.c (check_newline): Use ISALPHA.
259752284Sobrien	(readescape): Use ISGRAPH.
259852284Sobrien	(yyerror): Use ISGRAPH.
259952284Sobrien
260052284Sobrien1998-11-24  Nathan Sidwell  <nathan@acm.org>
260152284Sobrien
260252284Sobrien	* search.c (get_abstract_virtuals): Do not use initial
260352284Sobrien	CLASSTYPE_ABSTRACT_VIRTUALS.
260452284Sobrien	* typeck2.c (abstract_virtuals_error): Show location of abstract
260552284Sobrien	declaration.
260652284Sobrien	* call.c (build_new_method_call): Use
260752284Sobrien	CLASSTYPE_ABSTRACT_VIRTUAL, rather than recalculate.
260852284Sobrien	* class.c (finish_struct_bits): Don't bother working out whether
260952284Sobrien	get_abstract_virtuals will do anything, just do it.
261052284Sobrien
261152284Sobrien1998-11-24  Graham  <grahams@rcp.co.uk>
261252284Sobrien
261352284Sobrien	* typeck.c (build_component_ref): Remove unused statement.
261452284Sobrien
261552284Sobrien1998-11-24  Jason Merrill  <jason@yorick.cygnus.com>
261652284Sobrien
261752284Sobrien	* class.c (add_method): Catch invalid overloads.
261852284Sobrien
261952284Sobrien	* class.c (add_method): Build up OVERLOADs properly for conversion ops.
262052284Sobrien	* search.c (lookup_conversions): Handle getting real OVERLOADs.
262152284Sobrien	(add_conversions): Likewise.  Revert last change.
262252284Sobrien	* call.c (add_conv_candidate): Pass totype to add_candidate instead
262352284Sobrien	of fn.  Don't add a new candidate if the last one was for the same
262452284Sobrien	type.
262552284Sobrien	(print_z_candidates): Handle getting a type as a function.
262652284Sobrien	(joust): If we got two conversion candidates to the same type,
262752284Sobrien	just pick one.
262852284Sobrien	(build_object_call): Lose 'templates'.
262952284Sobrien	(build_user_type_conversion_1): Handle getting real OVERLOADs.
263052284Sobrien
263152284Sobrien1998-11-23  Jason Merrill  <jason@yorick.cygnus.com>
263252284Sobrien
263352284Sobrien	* typeck2.c (process_init_constructor): If there are elements
263452284Sobrien	that don't have initializers and they need to have constructors
263552284Sobrien	run, supply them with initializers.
263652284Sobrien
263752284Sobrien	* class.c (finish_struct_1): A class with a 0-width bitfield is
263852284Sobrien	still empty.
263952284Sobrien
264052284Sobrien1998-11-23  Mark Mitchell  <mark@markmitchell.com>
264152284Sobrien
264252284Sobrien	* pt.c (instantiate_class_template): Don't try to figure out what
264352284Sobrien	specialization to use for a partial instantiation.  Correct
264452284Sobrien	typos in a couple of comments.  Avoid calling uses_template_parms
264552284Sobrien	multiple times.
264652284Sobrien
264752284Sobrien1998-11-23  Benjamin Kosnik  <bkoz@cygnus.com>
264852284Sobrien
264952284Sobrien	* method.c (process_overload_item): Add call to
265052284Sobrien	build_mangled_C9x_name for intTI_type_nodes.
265152284Sobrien	(build_mangled_C9x_name): Add prototype, define.
265252284Sobrien	* decl.c (init_decl_processing): Add names for
265352284Sobrien	TImode_type_node.
265452284Sobrien
265552284Sobrien1998-11-23  Jason Merrill  <jason@yorick.cygnus.com>
265652284Sobrien
265752284Sobrien	* parse.y (named_class_head): Update CLASSTYPE_DECLARED_CLASS.
265852284Sobrien
265952284Sobrien	* class.c (finish_struct_1): Set things up for 0-width bitfields
266052284Sobrien	like we do for others.
266152284Sobrien
266252284Sobrien	* decl.c (check_tag_decl): New fn.
266352284Sobrien	(shadow_tag): Split out from here.
266452284Sobrien	* decl2.c (grok_x_components): Call it.
266552284Sobrien
266652284Sobrien1998-11-22  Jason Merrill  <jason@yorick.cygnus.com>
266752284Sobrien
266852284Sobrien	* decl.c: Lose warn_about_return_type.
266952284Sobrien	(grokdeclarator): Always complain about implicit int, except for
267052284Sobrien	`main () { ... }'.
267152284Sobrien
267252284Sobrien	* decl.c (tag_name): New fn.
267352284Sobrien	(xref_tag): Complain about using typedef-name after class-key.
267452284Sobrien
267552284Sobrien	* init.c (expand_vec_init): Also keep going if from_array.
267652284Sobrien
267752284Sobrien	* tree.c (is_overloaded_fn): Also handle the output of
267852284Sobrien	build_offset_ref.
267952284Sobrien
268052284Sobrien	* decl.c (grokdeclarator): Use constructor_name when comparing
268152284Sobrien	field name against enclosing class.
268252284Sobrien	* class.c (finish_struct_anon): Likewise.
268352284Sobrien
268452284Sobrien1998-11-22  Mark Mitchell  <mark@markmitchell.com>
268552284Sobrien
268652284Sobrien	* decl.c (poplevel): Remove code to handle KEEP == 2.
268752284Sobrien	(finish_function): Don't confuse BLOCK-order when
268852284Sobrien	processing a destructor.
268952284Sobrien
269052284Sobrien1998-11-21  Jason Merrill  <jason@yorick.cygnus.com>
269152284Sobrien
269252284Sobrien	* decl.c (require_complete_types_for_parms): Call layout_decl
269352284Sobrien	after we've completed the type.
269452284Sobrien
269552284Sobrien1998-11-21  Martin von L�wis  <loewis@informatik.hu-berlin.de>
269652284Sobrien
269752284Sobrien	* decl2.c (validate_nonmember_using_decl): Allow using templates
269852284Sobrien	from the global namespace.
269952284Sobrien
270052284Sobrien1998-11-21  Jason Merrill  <jason@yorick.cygnus.com>
270152284Sobrien
270252284Sobrien	Handle specifying template args to member function templates.
270352284Sobrien	* tree.c (build_overload): Always create an OVERLOAD for a template.
270452284Sobrien	* search.c (add_conversions): Handle finding an OVERLOAD.
270552284Sobrien	* decl2.c (check_classfn): Likewise.
270652284Sobrien	* lex.c (identifier_type): See through a baselink.
270752284Sobrien	* parse.y (do_id): Don't call do_identifier if we got a baselink.
270852284Sobrien	* class.c (instantiate_type, case TREE_LIST): Recurse.
270952284Sobrien
271052284Sobrien	* decl.c (grokdeclarator): Allow a boolean constant for array
271152284Sobrien	bounds, odd as that sounds.
271252284Sobrien
271352284Sobrien	* pt.c (unify): Be more strict about non-type parms, except for
271452284Sobrien	array bounds.
271552284Sobrien	(UNIFY_ALLOW_INTEGER): New macro.
271652284Sobrien
271752284Sobrien1998-11-19  Manfred Hollstein  <manfred@s-direktnet.de>
271852284Sobrien
271952284Sobrien	* Make-lang.in (mandir): Replace all uses of $(mandir) by $(man1dir).
272052284Sobrien
272152284Sobrien1998-11-19  Jason Merrill  <jason@yorick.cygnus.com>
272252284Sobrien
272352284Sobrien	* semantics.c (begin_class_definition): Call
272452284Sobrien	maybe_process_partial_specialization before push_template_decl.
272552284Sobrien	Don't call push_template_decl for a specialization.
272652284Sobrien	* search.c (lookup_field): Do return a member template class.
272752284Sobrien	* decl2.c (handle_class_head): Handle member template classes.
272852284Sobrien
272952284Sobrien	* decl.c (grokdeclarator): A parm type need not be complete.
273052284Sobrien
273152284Sobrien	* pt.c (convert_nontype_argument): Fix thinko.
273252284Sobrien
273352284Sobrien1998-11-18  Mark Mitchell  <mark@markmitchell.com>
273452284Sobrien
273552284Sobrien	* cp-tree.h (PTRMEM_CST_CLASS): Fix typo.
273652284Sobrien	(global_delete_fndecl): New variable.
273752284Sobrien	* decl.c (global_delete_fndecl): Define it.
273852284Sobrien	(init_decl_processing): Set it.
273952284Sobrien	* init.c (build_builtin_delete_call): Use it.
274052284Sobrien	* tree.c (mapcar): Recursively call mapcar for the type of EXPR
274152284Sobrien	nodes.
274252284Sobrien
274352284Sobrien1998-11-18  Jason Merrill  <jason@yorick.cygnus.com>
274452284Sobrien
274552284Sobrien	* decl.c (cplus_expand_expr_stmt): Always complain about unresolved
274652284Sobrien	type.
274752284Sobrien
274852284Sobrien	* tree.c (lvalue_p_1): An INDIRECT_REF to a function is an lvalue.
274952284Sobrien	* call.c (build_object_call): Also support references to functions.
275052284Sobrien	* typeck.c (convert_for_initialization): Don't decay a function
275152284Sobrien	if the target is a reference to function.
275252284Sobrien
275352284Sobrien	* search.c (add_conversions): Get all the overloads from a class.
275452284Sobrien
275552284Sobrien	* decl.c (grok_ctor_properties): Complain about any constructor
275652284Sobrien	that will take a single arg of the class type by value.
275752284Sobrien
275852284Sobrien	* typeck2.c (build_functional_cast): Can't create objects of
275952284Sobrien	abstract classes this way.
276052284Sobrien	* cvt.c (ocp_convert): Likewise.
276152284Sobrien
276252284Sobrien	* decl.c (grokfndecl): Member functions of local classes are not
276352284Sobrien	public.
276452284Sobrien
276552284Sobrien1998-11-18  Mark Mitchell  <mark@markmitchell.com>
276652284Sobrien
276752284Sobrien	* Make-lang.in (cc1plus): Add dependency on hash.o.
276852284Sobrien
276952284Sobrien1998-11-18  Jason Merrill  <jason@yorick.cygnus.com>
277052284Sobrien
277152284Sobrien	* search.c (get_abstract_virtuals): Complain about virtuals with
277252284Sobrien	no final overrider.
277352284Sobrien	* typeck2.c (abstract_virtuals_error): Remove handling for virtuals
277452284Sobrien	with no final overrider.
277552284Sobrien	* class.c (override_one_vtable): Don't set DECL_ABSTRACT_VIRTUAL_P
277652284Sobrien	on virtuals with no final overrider.
277752284Sobrien
277852284Sobrien	* lex.c (reinit_parse_for_block): Add a space after the initial ':'.
277952284Sobrien
278052284Sobrien	* class.c (finish_struct_1): Don't remove zero-width bit-fields until
278152284Sobrien	after layout_type.
278252284Sobrien
278352284Sobrien	* friend.c (do_friend): Don't set_mangled_name_for_decl.
278452284Sobrien
278552284Sobrien	* class.c (finish_struct_anon): Complain about non-fields.
278652284Sobrien	* decl2.c (build_anon_union_vars): Likewise.
278752284Sobrien
278852284Sobrien	* decl.c (grokdeclarator): Normal data members can't have the same
278952284Sobrien	name as the class, either.
279052284Sobrien	* class.c (finish_struct_anon): Neither can members of an
279152284Sobrien	anonymous union.
279252284Sobrien
279352284Sobrien1998-11-17  Mark Mitchell  <mark@markmitchell.com>
279452284Sobrien
279552284Sobrien	* cp-tree.h (TYPE_ALIAS_SET): Document language-dependent uses.
279652284Sobrien	(TYPE_BINFO): Likewise.
279752284Sobrien	(IS_AGGR_TYPE): Tweak.
279852284Sobrien	(SET_IS_AGGR_TYPE): New macro.
279952284Sobrien	(CLASS_TYPE_P): Tweak.
280052284Sobrien	(lang_type): Group mark bitfields together.  Remove linenum.
280152284Sobrien	(CLASSTYPE_SOURCE_LINE): Remove macro.
280252284Sobrien	(CLASSTYPE_MARKED_N): New macro.
280352284Sobrien	(SET_CLASSTYPE_MARKED_N): Likewise.
280452284Sobrien	(CLEAR_CLASSTYPE_MARKED_N): Likewise.
280552284Sobrien	(CLASS_TYPE_MARKED_*): Use them.
280652284Sobrien	(SET_CLASSTYPE_MARKED_*): Likewise.
280752284Sobrien	(CLEAR_CLASSTYPE_MARKED_*): Likewise.
280852284Sobrien	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise.
280952284Sobrien	(TYPE_TEMPLATE_INFO): Handle TEMPLATE_TEMPLATE_PARMs as well.
281052284Sobrien	(TYPENAME_TYPE_FULLNAME): Use TYPE_BINFO rather than CLASSTYPE_SIZE.
281152284Sobrien	* class.c (class_cache_obstack): New variable.
281252284Sobrien	(class_cache_firstobj): Likewise.
281352284Sobrien	(finish_struct): Don't set CLASSTYPE_SOURCE_LINE.
281452284Sobrien	(pushclass): Free the cache, when appropriate.
281552284Sobrien	(popclass): Tidy.
281652284Sobrien	(maybe_push_cache_obstack): Use class_cache_obstack.
281752284Sobrien	* decl.c (include hash.h).
281852284Sobrien	(typename_hash): New function.
281952284Sobrien	(typename_compare): Likewise.
282052284Sobrien	(build_typename_type): Check the hash table to avoid creating
282152284Sobrien	duplicates.
282252284Sobrien	(build_ptrmemfunc_type): Use SET_IS_AGGR_TYPE.
282352284Sobrien	(grokdeclarator): Use CLASS_TYPE_P.
282452284Sobrien	(xref_basetypes): Likewise.
282552284Sobrien	(start_function): Likewise.  Don't put current_class_ref on the
282652284Sobrien	permanent obstack.
282752284Sobrien	* error.c (dump_type_real): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO
282852284Sobrien	and TYPE_TI_ARGS.
282952284Sobrien	* lex.c (note_got_semicolon): Use CLASS_TYPE_P.
283052284Sobrien	(make_lang_type): Don't create TYPE_LANG_SPECIFIC and associated
283152284Sobrien	fields for types other than class types.  Do clear TYPE_ALIAS_SET
283252284Sobrien	for types other than class types, though.
283352284Sobrien	* method.c (build_overload_identifier): Use CLASS_TYPE_P and
283452284Sobrien	TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
283552284Sobrien	* pt.c (process_template_parm): Don't set
283652284Sobrien	CLASSTYPE_GOT_SEMICOLON.
283752284Sobrien	(lookup_template_class): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
283852284Sobrien	Coerce arguments on the momentary obstack.
283952284Sobrien	(for_each_template_parm): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
284052284Sobrien	(instantiate_class_template): Calculate template arguments on the
284152284Sobrien	momentary obstack.  Tidy.
284252284Sobrien	(tsubst_template_arg_vector): Use make_temp_vec.
284352284Sobrien	(tsubst_aggr_type): Put template arguments on the momentary
284452284Sobrien	obstack.
284552284Sobrien	(tsubst_decl): Likewise.
284652284Sobrien	(tsubst): Copy the array bounds index to the permanent obstack
284752284Sobrien	before building index types.  Use new macros.
284852284Sobrien	(unify): Use new macros.
284952284Sobrien	(do_type_instantiation): Likewise.
285052284Sobrien	* search.c (lookup_fnfields_1): Use new macros.
285152284Sobrien	(dfs_pushdecls): Build envelopes on the cache obstack.
285252284Sobrien	(dfs_compress_decls): Use new macros.
285352284Sobrien	(push_class_decls): Build on the cache obstack.
285452284Sobrien	* semantics.c (finish_typeof): Don't set CLASSTYPE_GOT_SEMICOLON.
285552284Sobrien	* sign.c (build_signature_pointer_or_reference_type): Use
285652284Sobrien	SET_IS_AGGR_TYPE.
285752284Sobrien	* tree.c (make_binfo): Check CLASS_TYPE_P.
285852284Sobrien	(copy_template_template_parm): Adjust.
285952284Sobrien	(make_temp_vec): Use push_expression_obstack.
286052284Sobrien	* typeck.c (complete_type): Use new macros.
286152284Sobrien	(comptypes): Likewise.
286252284Sobrien
286352284Sobrien1998-11-17  Jason Merrill  <jason@yorick.cygnus.com>
286452284Sobrien
286552284Sobrien	* pt.c (tsubst): Add diagnostics for invalid array, reference
286652284Sobrien	and pointer to member types.
286752284Sobrien
286850397Sobrien1998-11-16  Jason Merrill  <jason@yorick.cygnus.com>
286918334Speter
287050397Sobrien	* typeck2.c (my_friendly_abort): Don't fatal twice in a row.
287118334Speter
287252284Sobrien	* typeck.c (c_expand_start_case): Use build_expr_type_conversion.
287352284Sobrien	Simplify.
287452284Sobrien
287552284Sobrien	* parse.y (structsp): Fix cut-and-paste error.
287652284Sobrien
287752284Sobrien	* init.c (build_new): Complain about non-integral size.
287852284Sobrien
287952284Sobrien	* parse.y (unary_expr): Complain about defining types in sizeof.
288052284Sobrien
288152284Sobrien	* typeck.c (expr_sizeof): Complain about sizeof an overloaded fn.
288252284Sobrien
288352284Sobrien	* rtti.c (build_x_typeid): Complain about typeid without
288452284Sobrien	including <typeinfo>.
288552284Sobrien	(get_typeid): Likewise.  Complain about typeid of incomplete type.
288652284Sobrien	(get_tinfo_fn_dynamic): Likewise.
288752284Sobrien	(get_typeid_1): Not static anymore.
288852284Sobrien	* except.c (build_eh_type_type): Use get_typeid_1.
288952284Sobrien
289052284Sobrien	* rtti.c (build_dynamic_cast_1): Give errors for dynamic_cast to
289152284Sobrien	ambiguous or private bases.  Fix warning for reference cast.
289252284Sobrien
289352284Sobrien1998-11-16  Mark Mitchell  <mark@markmitchell.com>
289452284Sobrien
289552284Sobrien	* cp-tree.h (DECL_TEMPLATE_INSTANTIATED): New macro.
289652284Sobrien	* decl.c (duplicate_decls): Remove special-case code to deal with
289752284Sobrien	template friends, and just do the obvious thing.
289852284Sobrien	* pt.c (register_specialization): Tweak for clarity, and also to
289952284Sobrien	clear DECL_INITIAL for an instantiation before it is merged with a
290052284Sobrien	specialization.
290152284Sobrien	(check_explicit_specialization): Fix indentation.
290252284Sobrien	(tsubst_friend_function): Handle both definitions in friend
290352284Sobrien	declaration and outside friend declarations.
290452284Sobrien	(tsubst_decl): Don't clear DECL_INITIAL for an instantiation.
290552284Sobrien	(regenerate_decl_from_template): Tweak accordingly.
290652284Sobrien	(instantiate_decl): Likewise.
290752284Sobrien
290852284Sobrien1998-11-16  Jason Merrill  <jason@yorick.cygnus.com>
290952284Sobrien
291052284Sobrien	* decl.c (cplus_expand_expr_stmt): Promote warning about naked
291152284Sobrien	member function reference to error.
291252284Sobrien	* cvt.c (ocp_convert): Complain about converting an overloaded
291352284Sobrien	function to void.
291452284Sobrien
291552284Sobrien	* init.c (build_offset_ref): Just return a lone static member
291652284Sobrien	function.
291752284Sobrien
291852284Sobrien	* decl.c (cp_finish_decl): Only complain about real CONSTRUCTORs,
291952284Sobrien	not internal ones.
292052284Sobrien
292152284Sobrien	* typeck.c (build_binary_op_nodefault): Improve error handling.
292252284Sobrien
292352284Sobrien	* decl.c (grokfndecl): Complain about making 'main' a template.
292452284Sobrien
292552284Sobrien	* typeck.c (string_conv_p): Don't convert from wchar_t[] to char*.
292652284Sobrien
292752284Sobrien	* call.c (build_method_call): Handle a BIT_NOT_EXPR around a
292852284Sobrien	TYPE_DECL in a template.
292952284Sobrien
293050397Sobrien1998-11-15  Jason Merrill  <jason@yorick.cygnus.com>
293118334Speter
293250397Sobrien	* typeck2.c (my_friendly_abort): Add URL in the other case, too.
293318334Speter
293452284Sobrien	* decl.c (struct cp_function): Add named_label_uses.
293552284Sobrien	(push_cp_function_context): Save it.
293652284Sobrien	(pop_cp_function_context): Restore it.
293752284Sobrien	(define_label): Also complain about jumping into the scope of
293852284Sobrien	non-POD objects that don't have constructors.
293952284Sobrien	* tree.c (pod_type_p): New fn.
294018334Speter
294152284Sobrien	* pt.c (instantiate_class_template): Clear TYPE_BEING_DEFINED sooner.
294250397Sobrien	* rtti.c (synthesize_tinfo_fn): Call import_export_decl here.
294350397Sobrien	(get_tinfo_fn): Not here.
294452284Sobrien	* repo.c (repo_get_id): Abort if we get called for an incomplete
294552284Sobrien	type.
294618334Speter
294752284Sobrien1998-11-13  Mark Mitchell  <mark@markmitchell.com>
294852284Sobrien
294952284Sobrien	* except.c (expand_throw): Make sure first argument to
295052284Sobrien	__cp_push_exception is of type `void*' to avoid spurious error
295152284Sobrien	messages.
295252284Sobrien
295352284Sobrien1998-11-11  Jason Merrill  <jason@yorick.cygnus.com>
295452284Sobrien
295552284Sobrien	* pt.c (try_one_overload): Take orig_targs again.  Only check for
295652284Sobrien	mismatches against them; we don't care what a previous call found.
295752284Sobrien	(resolve_overloaded_unification): Adjust.
295852284Sobrien
295952284Sobrien	* search.c (lookup_field): Don't return anything for a non-type
296052284Sobrien	field from a dependent type.
296152284Sobrien	* decl.c (grokdeclarator): Resolve SCOPE_REFs of the current class
296252284Sobrien	in an array declarator.
296352284Sobrien	(start_decl): Push into the class before looking for the field.
296452284Sobrien
296550397Sobrien1998-11-08  Mark Mitchell  <mark@markmitchell.com>
296618334Speter
296752284Sobrien	* method.c (build_overload_value): Handle REFERENCE_TYPE.
296818334Speter
296952284Sobrien1998-11-08  Martin von L�wis  <loewis@informatik.hu-berlin.de>
297052284Sobrien
297152284Sobrien	* decl.c (grokdeclarator): Allow namespace-scoped members if they
297252284Sobrien	are friends.
297352284Sobrien
297452284Sobrien1998-11-08  Jason Merrill  <jason@yorick.cygnus.com>
297552284Sobrien
297652284Sobrien	* pt.c (tsubst_decl): Don't mess with the global value of an
297752284Sobrien	un-mangled DECL_ASSEMBLER_NAME.
297852284Sobrien
297952284Sobrien1998-11-03  Christopher Faylor  <cgf@cygnus.com>
298052284Sobrien
298152284Sobrien	* decl.c (init_decl_processing): Remove CYGWIN conditional
298252284Sobrien	since CYGWIN is now able to deal with trapping signals.
298352284Sobrien
298452284SobrienSat Nov  7 15:48:02 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
298552284Sobrien
298652284Sobrien	* cp-tree.h: Don't include gansidecl.h.
298752284Sobrien	* exception.cc: Include gansidecl.h (since we don't include config.h)
298852284Sobrien	* g++spec.c: Don't include gansidecl.h.
298952284Sobrien
299052284Sobrien1998-11-06  Mark Mitchell  <mark@markmitchell.com>
299152284Sobrien
299252284Sobrien	* cp-tree.h (lang_decl_flags): Add defined_in_class.  Decrease
299352284Sobrien	size of dummy.
299452284Sobrien	(DECL_DEFINED_IN_CLASS_P): New macro.
299552284Sobrien	(TEMPLATE_PARMS_FOR_INLINE): Document.
299652284Sobrien	(check_static_variable_definition): New function.
299752284Sobrien	* decl.c (cp_finish_decl): Set DECL_DEFINED_IN_CLASS_P, if
299852284Sobrien	appropriate.
299952284Sobrien	(check_static_variable_definition): Split out from ...
300052284Sobrien	(grokdeclarator): Here.
300152284Sobrien	* pt.c (check_default_tmpl_args): New function, split out from ...
300252284Sobrien	(push_template_decl_real): Here.
300352284Sobrien	(instantiate_template): Fix comment.
300452284Sobrien
300552284Sobrien1998-11-04  Mark Mitchell  <mark@markmitchell.com>
300652284Sobrien
300752284Sobrien	* cp-tree.h (CP_TYPE_CONST_P): Make {0,1}-valued.
300852284Sobrien	(CP_TYPE_VOLATILE_P): Likewise.
300952284Sobrien	(CP_TYPE_RESTRICT_P): Likewise.
301052284Sobrien
301152284Sobrien1998-11-03  Mark Mitchell  <mark@markmitchell.com>
301252284Sobrien
301352284Sobrien	* pt.c (tsubst): Use build_index_type, not build_index_2_type.
301452284Sobrien
301550397Sobrien1998-11-02  Jason Merrill  <jason@yorick.cygnus.com>
301618334Speter
301752284Sobrien	* class.c (instantiate_type): Be more helpful.
301852284Sobrien
301950397Sobrien	* decl2.c (import_export_decl): Call import_export_class.
302018334Speter
302152284Sobrien	* cp-tree.h (EMPTY_CONSTRUCTOR_P): Check !TREE_HAS_CONSTRUCTOR.
302252284Sobrien	* decl2.c (build_expr_from_tree): Propagate TREE_HAS_CONSTRUCTOR.
302352284Sobrien	* pt.c (tsubst_copy): Likewise.
302452284Sobrien
302552284Sobrien1998-11-02  Mark Mitchell  <mark@markmitchell.com>
302652284Sobrien
302752284Sobrien	* init.c (expand_vec_init): Fix off-by-one error.
302852284Sobrien
302952284Sobrien1998-11-02  Alexandre Oliva  <oliva@dcc.unicamp.br>
303052284Sobrien
303152284Sobrien	* parse.y (apparent_template_type): New type.
303252284Sobrien	(named_complex_class_head_sans_basetype): Use it.
303352284Sobrien	* Makefile.in (CONFLICTS): One new conflict.
303452284Sobrien	* parse.c: Regenerated.
303552284Sobrien
303652284Sobrien1998-11-01  Mark Mitchell  <mark@markmitchell.com>
303752284Sobrien
303852284Sobrien	* cp-tree.h (COMPARE_STRICT): New macro.
303952284Sobrien	(COMPARE_BASE): Likewise.
304052284Sobrien	(COMPARE_RELAXED): Likewise.
304152284Sobrien	(COMPARE_REDECLARATION): Likewise.
304252284Sobrien	(same_type_p): Likewise.
304352284Sobrien	(same_or_base_type_p): Likewise.
304452284Sobrien	* call.c (standard_conversion): Use them, in place of comptypes
304552284Sobrien	with numeric arguments.
304652284Sobrien	(reference_binding): Likewise.
304752284Sobrien	(convert_like): Likewise.
304852284Sobrien	(build_over_call): Likewise.
304952284Sobrien	(is_subseq): Likewise.
305052284Sobrien	(is_properly_derived_from): Likewise.
305152284Sobrien	(compare_ics): Likewise.
305252284Sobrien	(joust): Likewise.
305352284Sobrien	* class.c (delete_duplicate_fields_1): Likewise.
305452284Sobrien	(resolves_to_fixed_type_p): Likewise.
305552284Sobrien	(instantiate_type): Likewise.  Remove #if 0'd code.
305652284Sobrien	* decl.c (decls_match): Likewise.  Use COMPARE_REDECLARATION here.
305752284Sobrien	(pushdecl): Likewise.
305852284Sobrien	(lookup_name_real): Likewise.
305952284Sobrien	(grokdeclarator): Likewise.  Check for illegal array declarations.
306052284Sobrien	(grokparms): Likewise.
306152284Sobrien	(grok_op_properties): Likewise.
306252284Sobrien	* decl2.c (check_classfn): Likewise.
306352284Sobrien	* friend.c (is_friend): Likewise.
306452284Sobrien	(make_friend_class): Likewise.
306552284Sobrien	* init.c (expand_aggr_init): Likewise.
306652284Sobrien	(expand_vec_init): Likewise.
306752284Sobrien	* pt.c (is_member_template_class): Remove declaration.
306852284Sobrien	(is_specialization_of): Use COMPARE_* and new macros.
306952284Sobrien	(comp_template_parms): Likewise.
307052284Sobrien	(convert_nontype_argument): Likewise.
307152284Sobrien	(coerce_template_template_parms): Likewise.
307252284Sobrien	(template_args_equal): Likewise.
307352284Sobrien	(lookup_template_class): Likewise.
307452284Sobrien	(type_unification_real): Likewise.
307552284Sobrien	(unify): Likewise.
307652284Sobrien	(get_bindings_real): Likewise.
307752284Sobrien	* search.c (covariant_return_p): Likewise.
307852284Sobrien	(get_matching_virtual): Likewise.
307952284Sobrien	* sig.c (match_method_types): Likewise.
308052284Sobrien	* tree.c (vec_binfo_member): Likewise.
308152284Sobrien	(cp_tree_equal): Likewise.
308252284Sobrien	* typeck.c (common_type): Likewise.
308352284Sobrien	(comp_array_types): Likewise.  Get issues involving unknown array
308452284Sobrien	bounds right.
308552284Sobrien	(comptypes): Update comments.  Use new flags.
308652284Sobrien	(comp_target_types): Use new macros.
308752284Sobrien	(compparms): Likewise.
308852284Sobrien	(comp_target_parms): Likewise.
308952284Sobrien	(string_conv_p): Likewise.
309052284Sobrien	(build_component_ref): Likewise.
309152284Sobrien	(build_indirect_ref): Likewise.
309252284Sobrien	(build_conditional_expr): Likewise.
309352284Sobrien	(build_static_cast): Likewise.
309452284Sobrien	(build_reinterpret_cast): Likewise.
309552284Sobrien	(build_const_cast): Likewise.
309652284Sobrien	(build_modify_expr): Likewise.
309752284Sobrien	(convert_for_assignment): Likewise.
309852284Sobrien	(comp_ptr_ttypes_real): Likewise.
309952284Sobrien	(ptr_reasonably_similar): Likewise.
310052284Sobrien	(comp_ptr_ttypes_const): Likewise.
310152284Sobrien
310252284Sobrien1998-10-31  Jason Merrill  <jason@yorick.cygnus.com>
310352284Sobrien
310452284Sobrien	* rtti.c (build_dynamic_cast_1): Fix cut-and-paste error.
310552284Sobrien
310652284Sobrien1998-10-30  Mark Mitchell  <mark@markmitchell.com>
310752284Sobrien
310852284Sobrien	* decl2.c (delete_sanity): Pass integer_zero_node, not
310952284Sobrien	integer_two_node, to build_vec_delete.
311052284Sobrien	* init.c (build_array_eh_cleanup): Remove.
311152284Sobrien	(expand_vec_init_try_block): New function.
311252284Sobrien	(expand_vec_init_catch_clause): Likewise.
311352284Sobrien	(build_vec_delete_1): Don't deal with case that auto_delete_vec
311452284Sobrien	might be integer_two_node anymore.
311552284Sobrien	(expand_vec_init): Rework for initialization-correctness and
311652284Sobrien	exception-correctness.
311752284Sobrien	* typeck2.c (process_init_constructor): Make mutual exclusivity
311852284Sobrien	of cases more obvious.
311952284Sobrien
312052284Sobrien1998-10-29  Jason Merrill  <jason@yorick.cygnus.com>
312152284Sobrien
312252284Sobrien	* decl.c (lookup_name_real): OK, only warn if not lexing.
312352284Sobrien	Simplify suggested fix.
312452284Sobrien
312552284Sobrien	* cp-tree.h (IDENTIFIER_MARKED): New macro.
312652284Sobrien	* search.c (lookup_conversions): Use breadth_first_search.
312752284Sobrien	(add_conversions): Avoid adding two conversions to the same type.
312852284Sobrien	(breadth_first_search): Work with base binfos, rather
312952284Sobrien	than binfos and base indices.
313052284Sobrien	(get_virtual_destructor): Adjust.
313152284Sobrien	(tree_has_any_destructor_p): Adjust.
313252284Sobrien	(get_matching_virtual): Adjust.
313352284Sobrien
313452284Sobrien	* pt.c (push_template_decl_real): Generalize check for incorrect
313552284Sobrien	number of template parms.
313652284Sobrien	(is_member_template_class): #if 0.
313752284Sobrien
313852284Sobrien1998-10-29  Richard Henderson  <rth@cygnus.com>
313952284Sobrien
314052284Sobrien	* Makefile.in (cc1plus): Put CXX_OBJS, and thence @extra_cxx_objs@,
314152284Sobrien	last.
314252284Sobrien
314352284Sobrien1998-10-28  Zack Weinberg  <zack@rabi.phys.columbia.edu>
314452284Sobrien
314552284Sobrien	* lex.c: Call check_newline from lang_init always.  After
314652284Sobrien	calling cpp_start_read, set yy_cur and yy_lim to read from the
314752284Sobrien	cpplib token buffer.
314852284Sobrien
314950397Sobrien1998-10-28  Jason Merrill  <jason@yorick.cygnus.com>
315018334Speter
315152284Sobrien	* class.c (instantiate_type): Don't consider templates for a normal
315252284Sobrien	match.
315352284Sobrien
315450397Sobrien	* class.c (finish_struct_1): Don't complain about non-copy
315550397Sobrien	assignment ops in union members.
315618334Speter
315750397Sobrien	* class.c (build_vtable): Don't pass at_eof to import_export_vtable.
315850397Sobrien	(prepare_fresh_vtable): Likewise.
315950397Sobrien	(finish_struct_1): Don't call import_export_class.
316050397Sobrien	* decl2.c (finish_vtable_vardecl): Do import/export stuff.
316150397Sobrien	(finish_prevtable_vardecl): Lose.
316250397Sobrien	(finish_file): Don't call it.
316350397Sobrien	* pt.c (instantiate_class_template): Likewise.
316452284Sobrien	* cp-tree.h: Remove it.
316518334Speter
316652284Sobrien	* init.c (build_delete): Reset TYPE_HAS_DESTRUCTOR here.
316752284Sobrien	* decl.c (finish_function): Not here.
316852284Sobrien	(start_function): Do set DECL_INITIAL.
316952284Sobrien
317052284Sobrien	* pt.c (push_template_decl_real): Complain about default template
317152284Sobrien	args for enclosing classes.
317252284Sobrien
317352284Sobrien	* call.c (add_function_candidate): Treat conversion functions
317452284Sobrien	as coming from the argument's class.
317552284Sobrien	* cp-tree.h (DECL_CONV_FN_P): New fn.
317652284Sobrien	(DECL_DESTRUCTOR_P): Also check DECL_LANGUAGE.
317752284Sobrien	* class.c (add_method): Use DECL_CONV_FN_P.
317852284Sobrien	* decl2.c (check_classfn): Likewise.
317952284Sobrien	* error.c (dump_function_name): Likewise.
318052284Sobrien	(dump_function_decl): Likewise.
318152284Sobrien	* pt.c (fn_type_unification): Likewise.
318252284Sobrien	* search.c (add_conversions): Likewise.
318352284Sobrien
318452284Sobrien1998-10-27  Jason Merrill  <jason@yorick.cygnus.com>
318552284Sobrien
318652284Sobrien	* lex.c (do_identifier): Also generate LOOKUP_EXPR for RESULT_DECL.
318752284Sobrien	* method.c (hack_identifier): Also check for using RESULT_DECL
318852284Sobrien	from outer context.
318952284Sobrien
319052284Sobrien1998-10-27  Mark Mitchell  <mark@markmitchell.com>
319152284Sobrien
319252284Sobrien	* decl.c (grokdeclarator): Use type_quals, rather than constp,
319352284Sobrien	consistently.
319452284Sobrien
319552284Sobrien1998-10-27  Jason Merrill  <jason@yorick.cygnus.com>
319652284Sobrien
319752284Sobrien	* call.c (standard_conversion): instantiate_type here.
319852284Sobrien	(reference_binding): And here.
319952284Sobrien	(implicit_conversion): Not here.
320052284Sobrien	(build_op_delete_call): No need to cons up an OVERLOAD.
320152284Sobrien	* cvt.c (cp_convert_to_pointer): instantiate_type here.
320252284Sobrien	(convert_to_reference): And here.
320352284Sobrien	* decl.c (grok_reference_init): Not here.
320452284Sobrien	(grokparms): Or here.
320552284Sobrien	* typeck2.c (digest_init): Or here.
320652284Sobrien	* typeck.c (decay_conversion): Take the address of overloaded
320752284Sobrien	functions, too.
320852284Sobrien	(require_instantiated_type): Lose.
320952284Sobrien	(convert_arguments): Don't handle unknown types here.
321052284Sobrien	(build_c_cast): Likewise.
321152284Sobrien	(build_binary_op): Gut.
321252284Sobrien	(build_conditional_expr): Don't require_instantiated_type.
321352284Sobrien	(build_modify_expr): Likewise.
321452284Sobrien	(build_static_cast): Don't instantiate_type.
321552284Sobrien	(build_reinterpret_cast): Likewise.
321652284Sobrien	(build_const_cast): Likewise.
321752284Sobrien	(convert_for_initialization): Likewise.
321852284Sobrien	(build_ptrmemfunc): Use type_unknown_p.
321952284Sobrien	(convert_for_assignment): Also do default_conversion on overloaded
322052284Sobrien	functions.  Hand them off to ocp_convert.
322152284Sobrien
322252284Sobrien1998-10-26  Mark Mitchell  <mark@markmitchell.com>
322352284Sobrien
322452284Sobrien	* error.c (dump_decl): Deal with TEMPLATE_DECLs that are
322552284Sobrien	VAR_DECLs.  Handle vtables whose DECL_CONTEXT is not a type.
322652284Sobrien
322752284Sobrien	* class.c (finish_struct_1): Use build_cplus_array_type to build
322852284Sobrien	array types.
322952284Sobrien	* decl.c (init_decl_processing): Likewise.
323052284Sobrien	* except.c (expand_end_eh_spec): Likewise.
323152284Sobrien	* search.c (expand_upcast_fixups): Simplify very slightly.
323252284Sobrien
323352284Sobrien1998-10-26  Jason Merrill  <jason@yorick.cygnus.com>
323452284Sobrien
323552284Sobrien	* decl.c (grokdeclarator): Complain about a variable using
323652284Sobrien	constructor syntax coming back null from start_decl.
323752284Sobrien
323852284Sobrien	* friend.c (make_friend_class): Complain about trying to make
323952284Sobrien	a non-class type a friend.
324052284Sobrien
324152284Sobrien	* decl.c (grokfndecl): Set DECL_INITIAL for a defn here.
324252284Sobrien	(start_function): Not here.
324352284Sobrien
324452284Sobrien1998-10-26  Brendan Kehoe  <brendan@cygnus.com>
324552284Sobrien
324652284Sobrien	* decl.c (grokdeclarator): Disallow `explicit' in a friend declaration.
324752284Sobrien
324852284Sobrien1998-10-26  Jason Merrill  <jason@yorick.cygnus.com>
324952284Sobrien
325052284Sobrien	* typeck2.c (process_init_constructor): Only skip anonymous fields
325152284Sobrien	if they are bitfields.
325252284Sobrien
325352284Sobrien	* cp-tree.def (TYPEOF_TYPE): New code.
325452284Sobrien	* error.c (dump_type_real): Handle it.
325552284Sobrien	* pt.c (tsubst): Likewise.
325652284Sobrien	* tree.c (search_tree): Likewise.
325752284Sobrien	* semantics.c (finish_typeof): New fn.
325852284Sobrien	* parse.y (typespec): Use it.
325952284Sobrien	* cp-tree.h: Declare it.
326052284Sobrien
326152284Sobrien1998-10-26  Manfred Hollstein  <manfred@s-direktnet.de>
326252284Sobrien
326352284Sobrien	* cp-tree.h (FORMAT_VBASE_NAME): Make definition unconditional.
326452284Sobrien
326552284Sobrien1998-10-26  Jason Merrill  <jason@yorick.cygnus.com>
326652284Sobrien
326752284Sobrien	* typeck.c (convert_arguments): Don't handle pmf references
326852284Sobrien	specially.
326952284Sobrien
327052284Sobrien	* init.c (build_member_call): Don't try to convert to the base type
327152284Sobrien	if it's ambiguous or pedantic.
327252284Sobrien
327352284Sobrien	* typeck2.c (check_for_new_type): Only depend on pedantic for
327452284Sobrien	C-style casts.
327552284Sobrien
327652284Sobrien1998-10-25  Mark Mitchell  <mark@markmitchell.com>
327752284Sobrien
327852284Sobrien	* decl.c (grokdeclarator): Set DECL_NONCONVERTING_P for all
327952284Sobrien	non-converting constructors.
328052284Sobrien
328152284Sobrien1998-10-24  Martin von L�wis  <loewis@informatik.hu-berlin.de>
328252284Sobrien
328352284Sobrien	* gxxint.texi: Correct documentation for n, N, Q, and B.
328452284Sobrien
328550397Sobrien1998-10-23  Martin von L�wis  <loewis@informatik.hu-berlin.de>
328618334Speter
328750397Sobrien	* parse.y (condition): Convert VAR_DECL from reference to indirect
328850397Sobrien	reference.
328918334Speter
329052284Sobrien1998-10-23  Andrew MacLeod  <amacleod@cygnus.com>
329118334Speter
329252284Sobrien	* exception.cc (__cp_pop_exception): Free the original exception
329352284Sobrien	value, not the potentially coerced one.
329418334Speter
329552284Sobrien1998-10-23  Mark Mitchell  <mark@markmitchell.com>
329652284Sobrien
329752284Sobrien	* Makefile.in (hash.h): Run gperf when necessary.
329852284Sobrien
329952284Sobrien	* cp-tree.h (CP_TYPE_READONLY): Remove.
330052284Sobrien	(CP_TYPE_VOLATILE): Likewise.
330152284Sobrien	(CP_TYPE_QUALS): New macro.
330252284Sobrien	(CP_TYPE_CONST_P): Likewise.
330352284Sobrien	(CP_TYPE_VOLATILE_P): Likewise.
330452284Sobrien	(CP_TYPE_RESTRICT_P): Likewise.
330552284Sobrien	(CP_TYPE_CONST_NON_VOLATILE_P): Likewise.
330652284Sobrien	(cp_build_type_variant): Rename to ...
330752284Sobrien	(cp_build_qualified_type): New function.
330852284Sobrien	(c_apply_type_quals_to_decl): Declare.
330952284Sobrien	(SIGNATURE_POINTER_NAME_FORMAT): Modify to allow `restrict'.
331052284Sobrien	(SIGNATURE_REFERENCE_NAME_FORMAT): Likewise.
331152284Sobrien	(cp_type_qual_from_rid): New function.
331252284Sobrien	(compparms): Remove unused parameter.  All callers changed.
331352284Sobrien	(cp_type_quals): New function.
331452284Sobrien	(at_least_as_qualified_p): Likewise.
331552284Sobrien	(more_qualified_p): Likewise.
331652284Sobrien
331752284Sobrien	* call.c (standard_conversion): Replace calls to
331852284Sobrien	cp_build_type_variant with cp_build_qualified_type.  Use
331952284Sobrien	CP_TYPE_QUALS to get qualifiers and at_least_as_qualified_p to
332052284Sobrien	compare them.  Use CP_TYPE_* macros to check qualifiers.
332152284Sobrien	(reference_binding): Likewise.
332252284Sobrien	(implicit_conversion): Likewise.
332352284Sobrien	(add_builtin_candidates): Likewise.
332452284Sobrien	(build_over_call): Likewise.
332552284Sobrien	* class.c (overrides): Compare all qualifiers, not just `const',
332652284Sobrien	on method declarations.
332752284Sobrien	* cvt.c (convert_to_reference): More CP_TYPE_QUALS conversion, etc.
332852284Sobrien	(convert_pointer_to_real): Likewise.
332952284Sobrien	(type_promotes_to): Likewise.
333052284Sobrien	* decl.c (check_for_uninitialized_const_var): New function.
333152284Sobrien	(init_decl_processing): More CP_TYPE_QUALS conversion, etc.
333252284Sobrien	(cp_finish_decl): Use check_for_uninitialized_const_var.
333352284Sobrien	(grokdeclarator): More CP_TYPE_QUALS conversion, etc.  Update to
333452284Sobrien	handle `restrict'.
333552284Sobrien	(grok_ctor_properties): Likewise.
333652284Sobrien	(grok_op_properties): Likewise.
333752284Sobrien	(start_function): Likewise.
333852284Sobrien	(rever_static_member_fn): Likewise.
333952284Sobrien	* decl2.c (grok_method_quals): Likewise.
334052284Sobrien	(grokfield): Likewise.
334152284Sobrien	* error.c (dump_readonly_or_volatile): Rename to ...
334252284Sobrien	(dump_qualifiers): New function.  Handle `restrict'.
334352284Sobrien	(dump_type_real): Use it.
334452284Sobrien	(dump_aggr_type): Likewise.
334552284Sobrien	(dump_type_prefix): Likewise.
334652284Sobrien	(dump_type_suffix): Likewise.
334752284Sobrien	(dump_function_decl): Likewise.
334852284Sobrien	(cv_as_string): Likewise.
334952284Sobrien	* gxx.gperf: Add __restrict and __restrict__.
335052284Sobrien	* gxxint.texi: Document `u' as used for `__restrict', and a few
335152284Sobrien	other previously undocumented codes.
335252284Sobrien	* hash.h: Regenerated.
335352284Sobrien	* init.c (expand_aggr_init): More CP_TYPE_QUALS conversion, etc.
335452284Sobrien	(build_member_call): Likewise.
335552284Sobrien	(build_new_1): Likewise.
335652284Sobrien	* lex.c (init_parse): Add entry for RID_RESTRICT.
335752284Sobrien	(cons_up_default_function): More CP_TYPE_QUALS conversion, etc.
335852284Sobrien	(cp_type_qual_from_rid): Define.
335952284Sobrien	* lex.h (enum rid): Add RID_RESTRICT.
336052284Sobrien	* method.c (process_modifiers): Deal with `restrict'.
336152284Sobrien	* parse.y (primary): More CP_TYPE_QUALS conversion, etc.
336252284Sobrien	* parse.c: Regenerated.
336352284Sobrien	* pt.c (convert_nontype_argument): More CP_TYPE_QUALS conversion, etc.
336452284Sobrien	(tsubst_aggr_type): Likewise.
336552284Sobrien	(tsubst): Likewise.
336652284Sobrien	(check_cv_quals_for_unify): Likewise.
336752284Sobrien	(unify): Likewise.
336852284Sobrien	* rtti.c (init_rtti_processing): Likewise.
336952284Sobrien	(build_headof): Likewise.
337052284Sobrien	(get_tinfo_var): Likewise.
337152284Sobrien	(buidl_dynamic_cast_1): Likewise.  Fix `volatile' handling.
337252284Sobrien	(expand_class_desc): Likewise.
337352284Sobrien	(expand_attr_desc): Likewise.
337452284Sobrien	(synthesize_tinfo_fn): Likewise.
337552284Sobrien	* search.c (covariant_return_p): Likewise.  Fix `volatile' handling.
337652284Sobrien	(get_matching_virtual): Likewise.
337752284Sobrien	(expand_upcast_fixups): Likewise.
337852284Sobrien	* sig.c (build_signature_pointer_or_reference_name): Take
337952284Sobrien	type_quals, not constp and volatilep.
338052284Sobrien	(build_signature_pointer_or_reference_type): Likewise.
338152284Sobrien	(match_method_types): More CP_TYPE_QUALS conversion, etc.
338252284Sobrien	(build_signature_pointer_constructor): Likewise.
338352284Sobrien	(build_signature_method_call): Likewise.
338452284Sobrien	* tree.c (build_cplus_array_type): Likewise.
338552284Sobrien	(cp_build_type_variant): Rename to ...
338652284Sobrien	(cp_build_qualified_type): New function.  Deal with `__restrict'.
338752284Sobrien	(canonical_type_variant): More CP_TYPE_QUALS conversion, etc.
338852284Sobrien	(build_exception_variant): Likewise.
338952284Sobrien	(mapcar): Likewise.
339052284Sobrien	* typeck.c (qualif_type): Likewise.
339152284Sobrien	(common_type): Likewise.
339252284Sobrien	(comptypes): Likewise.
339352284Sobrien	(comp_cv_target_types): Likewise.
339452284Sobrien	(at_least_as_qualified_p): Define.
339552284Sobrien	(more_qualified_p): Likewise.
339652284Sobrien	(comp_cv_qualification): More CP_TYPE_QUALS conversion, etc.
339752284Sobrien	(compparms): Likewise.
339852284Sobrien	(inline_conversion): Likewise.
339952284Sobrien	(string_conv_p): Likewise.
340052284Sobrien	(build_component_ref): Likewise.
340152284Sobrien	(build_indirect_ref): Likewise.
340252284Sobrien	(build_array_ref): Likewise.
340352284Sobrien	(build_unary_op): Likewise.
340452284Sobrien	(build_conditional_expr): Likewise.
340552284Sobrien	(build_static_cast): Likewise.
340652284Sobrien	(build_c_cast): Likewise.
340752284Sobrien	(build_modify_expr): Likewise.
340852284Sobrien	(convert_For_assignment): Likewise.
340952284Sobrien	(comp_ptr_ttypes_real): Likewise.
341052284Sobrien	(cp_type_quals): New function.
341152284Sobrien
341252284Sobrien1998-10-23  Jason Merrill  <jason@yorick.cygnus.com>
341352284Sobrien
341452284Sobrien	* cp-tree.h (CP_TYPE_READONLY): New macro to handle arrays.
341552284Sobrien	(CP_TYPE_VOLATILE): Likewise.
341652284Sobrien	* decl.c (grokdeclarator): Use them.
341752284Sobrien	* tree.c (canonical_type_variant): Likewise.
341852284Sobrien
341952284Sobrien1998-10-22  Martin von L�wis  <loewis@informatik.hu-berlin.de>
342052284Sobrien
342152284Sobrien	* parse.y (named_class_head): Push into class while parsing the
342252284Sobrien	base class list.
342352284Sobrien	* decl2.c (push_scope, pop_scope): New functions.
342452284Sobrien	* cp-tree.h: Declare them.
342552284Sobrien	* init.c (build_new_1): Delay cleanup until end of full expression.
342652284Sobrien
342752284Sobrien1998-10-21  Jason Merrill  <jason@yorick.cygnus.com>
342852284Sobrien
342952284Sobrien	* typeck.c (build_component_ref): Use of a type here is an error.
343052284Sobrien
343152284Sobrien1998-10-19  Jason Merrill  <jason@yorick.cygnus.com>
343252284Sobrien
343352284Sobrien	Revamp references to member functions.
343452284Sobrien	* method.c (hack_identifier): Call build_component_ref for a
343552284Sobrien	reference to a member function.
343652284Sobrien	* typeck.c (build_component_ref): Only return a single function
343752284Sobrien	if it's static.  Otherwise, return a COMPONENT_REF.
343852284Sobrien	(build_x_function_call): Handle a COMPONENT_REF.
343952284Sobrien	(build_unary_op): Handle all unknown-type things.
344052284Sobrien	* decl2.c (arg_assoc): Handle COMPONENT_REF.
344152284Sobrien	* class.c (instantiate_type): Complain if the function we get is a
344252284Sobrien	nonstatic member function.  Remove code for finding "compatible"
344352284Sobrien	functions.
344452284Sobrien	* pt.c (tsubst_copy): Handle NOP_EXPR.
344552284Sobrien	* tree.c (build_dummy_object): New fn.
344652284Sobrien	(maybe_dummy_object): New fn.
344752284Sobrien	(is_dummy_object): New fn.
344852284Sobrien	* cp-tree.h: Declare them.
344952284Sobrien	* cvt.c (cp_convert_to_pointer): Use maybe_dummy_object.
345052284Sobrien	* error.c (dump_expr, case OFFSET_REF): Use is_dummy_object.
345152284Sobrien	* init.c (build_member_call): Use maybe_dummy_object and
345252284Sobrien	is_dummy_object.
345352284Sobrien	(build_offset_ref): Use maybe_dummy_object.
345452284Sobrien	(resolve_offset_ref): Use is_dummy_object.
345552284Sobrien	* typeck.c (build_x_function_call): Call build_dummy_object.
345652284Sobrien	(unary_complex_lvalue): Call is_dummy_object.
345752284Sobrien
345852284Sobrien	* typeck.c (build_component_addr): Make sure field is a field.
345952284Sobrien
346052284Sobrien	* call.c (build_new_op): Delete obsolete code.
346152284Sobrien
346252284Sobrien	* pt.c (tsubst, TEMPLATE*PARM*): Abort if we don't have any args.
346352284Sobrien
346450397Sobrien1998-10-18  Martin von L�wis  <loewis@informatik.hu-berlin.de>
346518334Speter
346650397Sobrien	* decl2.c (validate_nonmember_using_decl): Fix using-directives of
346750397Sobrien	std if std is ignored.
346818334Speter
346952284Sobrien1998-10-18  Jason Merrill  <jason@yorick.cygnus.com>
347018334Speter
347152284Sobrien	* decl.c (grokvardecl): Fix thinko.
347252284Sobrien
347352284Sobrien	* decl.c (grokdeclarator): Embedded attrs bind to the right,
347452284Sobrien	not the left.
347552284Sobrien
347652284Sobrien	* parse.y (fn.def2): Fix 'attrs' format.
347752284Sobrien
347852284Sobrien1998-10-18  Alastair J. Houghton  <ajh8@doc.ic.ac.uk>
347952284Sobrien
348052284Sobrien	* Makefile.in (CONFLICTS): Update.
348152284Sobrien	* parse.y (expr_or_declarator_intern): New rule.
348252284Sobrien	(expr_or_declarator, direct_notype_declarator, primary,
348352284Sobrien	functional_cast): Use it.
348452284Sobrien	(notype_declarator_intern): New rule.
348552284Sobrien	(notype_declarator, complex_notype_declarator): Use it.
348652284Sobrien
348752284Sobrien1998-10-17  Jason Merrill  <jason@yorick.cygnus.com>
348852284Sobrien
348952284Sobrien	* decl.c (grokfndecl): Set DECL_CONTEXT to namespace if appropriate.
349052284Sobrien	(grokvardecl): Likewise.
349152284Sobrien
349252284SobrienSat Oct 17 23:27:20 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
349352284Sobrien
349452284Sobrien	* class.c (make_method_vec): Cast 1st argument of `bzero' to (PTR).
349552284Sobrien	(add_method): Likewise for arguments 1 & 2 of `bcopy'.
349652284Sobrien
349752284Sobrien	* decl.c (signal_catch): Mark with ATTRIBUTE_NORETURN.
349852284Sobrien
349952284Sobrien	* pt.c (process_partial_specialization): Cast 1st argument of
350052284Sobrien	`bzero' to (PTR).
350152284Sobrien
350252284Sobrien	* tree.c (build_base_fields): Cast `base_align' to (int) when
350352284Sobrien	comparing against one.
350452284Sobrien
350552284Sobrien1998-10-16  Mark Mitchell  <mark@markmitchell.com>
350652284Sobrien
350752284Sobrien	* decl.c (lookup_name_real): Handle template parameters for member
350852284Sobrien	templates where said parameters have the same name as the
350952284Sobrien	surrounding class.
351052284Sobrien
351152284Sobrien	* decl.c (expand_static_init): Build cleanups before entering the
351252284Sobrien	anonymous function used to do them to avoid access-checking
351352284Sobrien	confusion.
351452284Sobrien
351552284Sobrien	* decl.c (grokfndecl): Add back call to cplus_decl_attributes
351652284Sobrien	accidentally removed by previous change, and make DECL_RTL here.
351752284Sobrien	* class.c (add_method): Don't make DECL_RTL here.
351852284Sobrien
351952284Sobrien	* pt.c (for_each_template_parm): Don't examine uninstantiated
352052284Sobrien	default arguments.
352152284Sobrien
352252284Sobrien1998-10-16  Dave Brolley  <brolley@cygnus.com>
352352284Sobrien
352452284Sobrien	* lex.c (real_yylex): Fix unaligned access of wchar_t.
352552284Sobrien
352652284Sobrien1998-10-16  Mark Mitchell  <mark@markmitchell.com>
352752284Sobrien
352852284Sobrien	* class.c (add_method): Fix documentation to reflect previous
352952284Sobrien	changes.  Check for duplicate method declarations here.
353052284Sobrien	* decl.c (decls_match): Handle FUNCTION_DECL vs TEMPLATE_DECL
353152284Sobrien	correctly; such things never match.
353252284Sobrien	(grokfndecl): Don't look for duplicate methods here.
353352284Sobrien	* decl2.c (check_classfn): Don't assume names are mangled.
353452284Sobrien	Don't add bogus member function declarations to a class before the
353552284Sobrien	class type is complete.
353652284Sobrien	(grokfield): Reformat error message.
353752284Sobrien	* method.c (set_mangled_name_for_decl): Don't mangle names while
353852284Sobrien	processing_template_decl.
353952284Sobrien
354052284Sobrien1998-10-16  Jason Merrill  <jason@yorick.cygnus.com>
354152284Sobrien
354252284Sobrien	* typeck.c (build_indirect_ref): Complain about a pointer to data
354352284Sobrien	member, too.
354452284Sobrien	* typeck2.c (build_m_component_ref): Don't indirect a pointer to
354552284Sobrien	data member.
354652284Sobrien	* init.c (resolve_offset_ref): Don't undo the above.
354752284Sobrien
354852284Sobrien	* cp-tree.h (DECL_C_BIT_FIELD, SET_DECL_C_BIT_FIELD): New macros.
354952284Sobrien	(struct lang_decl_flags): Add `bitfield'.
355052284Sobrien	* class.c (finish_struct_1): Use DECL_C_BIT_FIELD instead of
355152284Sobrien	DECL_BIT_FIELD.
355252284Sobrien	* decl2.c (grokbitfield, grok_alignof): Likewise.
355352284Sobrien	* init.c (build_offset_ref): Likewise.
355452284Sobrien	* typeck.c (build_component_addr, expr_sizeof): Likewise.
355552284Sobrien	* cvt.c (build_up_reference): Don't crash if taking the address
355652284Sobrien	returns error_mark_node.
355752284Sobrien
355852284Sobrien	* decl.c (grokfndecl): Also check ctype when checking for ::main().
355952284Sobrien
356052284Sobrien1998-10-15  Jason Merrill  <jason@yorick.cygnus.com>
356152284Sobrien
356252284Sobrien	* decl.c (grokfndecl): ::main and __builtin_* get C linkage.
356352284Sobrien	Do mangling here.
356452284Sobrien	(grokdeclarator): Instead of here.
356552284Sobrien	* friend.c (do_friend): Lose special handling of ::main and
356652284Sobrien	__builtin_*.
356752284Sobrien	* cp-tree.h (DECL_MAIN_P): Check for C linkage.
356852284Sobrien
356950397Sobrien	* spew.c (yylex): Clear looking_for_typename if we got
357050397Sobrien	'enum { ... };'.
357118334Speter
357252284Sobrien1998-10-15  Mark Mitchell  <mark@markmitchell.com>
357352284Sobrien
357452284Sobrien	* class.c (maybe_warn_about_overly_private_class): Improve error
357552284Sobrien	messages for class with only private constructors.
357652284Sobrien
357752284Sobrien	* cp-tree.def (TYPENAME_TYPE): Add to documentation.
357852284Sobrien	* cp-tree.h (TYPENAME_TYPE_FULLNAME): Document.
357952284Sobrien	(build_typename_type): New function.
358052284Sobrien	* decl.c (build_typename_type): Broken out from ...
358152284Sobrien	(make_typename_type): Use it.
358252284Sobrien	* search.c (lookup_field): Likewise.
358352284Sobrien
358452284Sobrien1998-10-14  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
358552284Sobrien
358652284Sobrien	* pt.c (convert_nontype_argument): Check against type_referred_to.
358752284Sobrien	* decl.c (grokvardecl): Check for declarator name before building
358852284Sobrien	DECL_ASSEMBLER_NAME.
358952284Sobrien
359052284Sobrien1998-10-14  Mark Mitchell  <mark@markmitchell.com>
359152284Sobrien
359252284Sobrien	* pt.c (lookup_template_class): Add comment.
359352284Sobrien	(instantiate_class_template): Don't mark the _TYPE node for
359452284Sobrien	member class templates as an instantiation.
359552284Sobrien
359652284Sobrien1998-10-14  Jason Merrill  <jason@yorick.cygnus.com>
359752284Sobrien
359852284Sobrien	* decl.c (grokfndecl): Fix my thinko.
359952284Sobrien
360050397Sobrien1998-10-13  Jason Merrill  <jason@yorick.cygnus.com>
360118334Speter
360250397Sobrien	* tinfo2.cc (fast_compare): Remove.
360350397Sobrien	(before): Just use strcmp.
360450397Sobrien	* tinfo.cc (operator==): Just use strcmp.
360518334Speter
360652284Sobrien1998-10-13  Klaus-Georg Adams  <Klaus-Georg.Adams@chemie.uni-karlsruhe.de>
360752284Sobrien
360852284Sobrien	* decl.c (grokfndecl): Don't check for linkage in `extern "C"'
360952284Sobrien	declarations.
361052284Sobrien
361152284Sobrien1998-10-13  Mark Mitchell  <mark@markmitchell.com>
361252284Sobrien
361352284Sobrien	* cp-tree.h (specializations_of_same_template_p): Remove.
361452284Sobrien	* search.c (get_template_base): Don't use it.
361552284Sobrien	(get_template_base_recursive): Likewise.
361652284Sobrien	* pt.c (specializations_of_same_template_p): Remove.
361752284Sobrien	(unify): Don't use it.
361852284Sobrien	(lookup_template_class): Find the correct parent when setting
361952284Sobrien	CLASSTYPE_TI_TEMPLATE.
362052284Sobrien
362150397Sobrien1998-10-12  Jason Merrill  <jason@yorick.cygnus.com>
362218334Speter
362350397Sobrien	* tinfo.cc (operator==): Always compare names.
362418334Speter
362552284Sobrien1998-10-12  Herman ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
362652284Sobrien
362752284Sobrien	* decl.c (start_function): Fix cut-and-paste error.
362852284Sobrien
362950397Sobrien1998-10-12  Jason Merrill  <jason@yorick.cygnus.com>
363018334Speter
363150397Sobrien	* inc/typeinfo: Add #pragma interface.
363250397Sobrien	(operator!=): Just call operator==.
363350397Sobrien	* tinfo.cc: Add #pragma implementation.
363450397Sobrien	(operator==): Move from inc/typeinfo and tinfo2.cc.
363552284Sobrien	Check __COMMON_UNRELIABLE instead of _WIN32.
363618334Speter
363750397Sobrien	* typeck2.c (my_friendly_abort): Add URL.
363818334Speter
363952284Sobrien1998-10-12  Alastair J. Houghton  <ajh8@doc.ic.ac.uk>
364052284Sobrien
364152284Sobrien	* decl.c (start_method): Added extra parameter for attributes.
364252284Sobrien	* cp-tree.h (start_method): Update prototype.
364352284Sobrien	* parse.y (fn.def2): Update start_method parameter list.
364452284Sobrien
364552284Sobrien1998-10-11  Mark Mitchell  <mark@markmitchell.com>
364652284Sobrien
364752284Sobrien	* cp-tree.h (specializations_of_same_template_p): Declare.
364852284Sobrien	* pt.c (specializations_of_same_template_p): New function.
364952284Sobrien	(unify): Use it.
365052284Sobrien	* search.c (get_template_base): Use it.
365152284Sobrien	(get_template_base_recursive): Likewise.
365252284Sobrien
365352284Sobrien1998-10-10  Manfred Hollstein  <manfred@s-direktnet.de>
365452284Sobrien
365552284Sobrien	* decl2.c (start_objects): Add new variable `joiner' and
365652284Sobrien	initialize it properly.
365752284Sobrien
365852284Sobrien1998-10-09  Mark Mitchell  <mark@markmitchell.com>
365952284Sobrien
366052284Sobrien	* search.c (expand_upcast_fixups): Tweak to match 1998-10-07
366152284Sobrien	change to vtable types.
366252284Sobrien
366352284Sobrien	* cvt.c (ocp_convert): Avoid infinite recursion caused by
366452284Sobrien	1998-10-03 change.
366552284Sobrien
366652284Sobrien1998-10-08  Jason Merrill  <jason@yorick.cygnus.com>
366752284Sobrien
366852284Sobrien	* pt.c (resolve_overloaded_unification): New fn.
366952284Sobrien	(try_one_overload): Likewise.
367052284Sobrien	(unify): Don't fail on unknown type.
367152284Sobrien	(type_unification_real): Likewise.  Use resolve_overloaded_unification
367252284Sobrien	to handle an overloaded argument.
367352284Sobrien	(template_args_equal): Split out...
367452284Sobrien	(comp_template_args): From here.
367552284Sobrien	(determine_specialization): Also allow a template with more
367652284Sobrien	parms than were explicitly specified.
367752284Sobrien	* cp-tree.h: Add template_args_equal.
367852284Sobrien	* call.c (resolve_args): Remove TEMPLATE_ID_EXPR code.
367952284Sobrien
368052284SobrienThu Oct  8 15:58:30 1998  Anthony Green  <green@cygnus.com>
368152284Sobrien
368252284Sobrien	* semantics.c (finish_asm_stmt): Revert my 1998-09-28
368352284Sobrien	change.
368452284Sobrien
368552284SobrienThu Oct  8 06:00:19 1998  Jeffrey A Law  (law@cygnus.com)
368652284Sobrien
368752284Sobrien	* typeck.c (unsigned_type): Only return TItype nodes when
368852284Sobrien	HOST_BITS_PER_WIDE_INT is >= 64 bits.
368952284Sobrien	(signed_type): Likewise.
369052284Sobrien	* decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare
369152284Sobrien	when HOST_BITS_PER_WIDE_INT is >= 64 bits.
369252284Sobrien	(init_decl_processing): Only create TItype nodes when
369352284Sobrien	HOST_BITS_PER_WIDE_INT is >= 64 bits.
369452284Sobrien	* cp-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare
369552284Sobrien	when HOST_BITS_PER_WIDE_INT is >= 64 bits.
369652284Sobrien
369752284SobrienWed Oct  7 12:32:44 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
369852284Sobrien
369952284Sobrien	* Makefile.in (hash.h): Add -L KR-C -F ', 0, 0' flags to gperf.
370052284Sobrien	(gxx.gperf): Update comments describing invocation flags.
370152284Sobrien	(hash.h): Regenerate using gperf 2.7.1 (19981006 egcs).
370252284Sobrien
370352284Sobrien1998-10-07  Mark Mitchell  <mark@markmitchell.com>
370452284Sobrien
370552284Sobrien	* class.c (finish_struct_1): Add commentary on previous change.
370652284Sobrien
370752284Sobrien	* cp-tree.h (vtbl_ptr_type_node): New variable.
370852284Sobrien	* class.c (build_vtbl_ref): Don't indirect through the vptr; it's
370952284Sobrien	already of the right type.
371052284Sobrien	(finish_struct_1): Make the vptr be of type vtbl_ptr_type_node.
371152284Sobrien	Simplify code to grow vtable.
371252284Sobrien	* decl.c (vtbl_ptr_type_node): Define.
371352284Sobrien	(init_decl_processing): Initialize it.
371452284Sobrien
371552284Sobrien1998-10-06  Mark Mitchell  <mark@markmitchell.com>
371652284Sobrien
371752284Sobrien	* cp-tree.def (PTRMEM_CST): New tree node.
371852284Sobrien	* cp-tree.h (ptrmem_cst): New type.
371952284Sobrien	(lang_type): Remove local_typedecls.
372052284Sobrien	(dummy): Increase to 12 bits from 11.
372152284Sobrien	(CLASSTYPE_LOCAL_TYPEDECLS): Remove.
372252284Sobrien	(PTRMEM_CST_CLASS): New macro.
372352284Sobrien	(PTRMEM_CST_MEMBER): Likewise.
372452284Sobrien	(current_access_specifier): New variable.
372552284Sobrien	(current_class_type): Remove duplicate declaration.
372652284Sobrien	(finish_struct): Change prototype.
372752284Sobrien	(unreverse_member_declarations): New function.
372852284Sobrien	(pushdecl_class_level): Change prototype.
372952284Sobrien	(grok_enum_decls): Remove.
373052284Sobrien	(fixup_anonymous_union): New function.
373152284Sobrien	(grok_x_components): Change prototype.
373252284Sobrien	(tsubst_chain): Remove.
373352284Sobrien	(finish_member_template_decl): Likewise.
373452284Sobrien	(check_explicit_specialization): Fix indentation.
373552284Sobrien	(finish_class_definition): Change prototype.
373652284Sobrien	(finish_member_class_template): Likewise.
373752284Sobrien	(finish_member_declaration): New function.
373852284Sobrien	(check_multiple_declarators): Likewise.
373952284Sobrien	* class.c (class_stack_node_t): New type.
374052284Sobrien	(current_class_base): Remove.
374152284Sobrien	(current_class_stack): Change type.
374252284Sobrien	(current_access_specifier): New variable.
374352284Sobrien	(grow_method): Remove.
374452284Sobrien	(check_member_decl_is_same_in_complete_scope): Break out from
374552284Sobrien	finish_struct.
374652284Sobrien	(make_method_vec): New function.
374752284Sobrien	(free_method_vec): Likewise.
374852284Sobrien	(add_implicitly_declared_members): Break out from finish_struct_1.
374952284Sobrien	(free_method_vecs): New variable.
375052284Sobrien	(add_method): Rework for direct use from parser.
375152284Sobrien	(handle_using_decl): Watch for NULL_TREE while iterating through
375252284Sobrien	CLASSTYPE_METHOD_VEC.
375352284Sobrien	(finish_struct_methods): Don't build CLASSTYPE_METHOD_VEC here;
375452284Sobrien	just do some error-checking.
375552284Sobrien	(warn_hidden): Change iteration through CLASSTYPE_METHOD_VEC.
375652284Sobrien	(finish_struct_1): Simplify.  Use add_implicitly_declared_members.
375752284Sobrien	(finish_struct): Change prototype.  Simplify; fields and methods
375852284Sobrien	are already set up at this point.
375952284Sobrien	(init_class_processing): Set up current_class_stack.
376052284Sobrien	(pushclass): Save current_access_specifier.
376152284Sobrien	(popclass): Restore it.
376252284Sobrien	(currently_open_class): Simplify.
376352284Sobrien	(build_self_reference): Remove use of CLASSTYPE_LOCAL_TYPEDECLS.
376452284Sobrien	* decl.c (saved_scope): Add access_specifier.
376552284Sobrien	(maybe_push_to_top_level): Save it.
376652284Sobrien	(pop_from_top_level): Restore it.
376752284Sobrien	(maybe_process_template_type_declaration): Use
376852284Sobrien	finish_member_declaration.
376952284Sobrien	(pushtag): Likewise.
377052284Sobrien	(pushdecl_class_level): Don't return a value.
377152284Sobrien	(fixup_anonymous_union): Break out from grok_x_components.
377252284Sobrien	(shadow_tag): Use it.
377352284Sobrien	(xref_tag): Complain about using an elaborated type specifier to
377452284Sobrien	reference a template type parameter or typedef name.
377552284Sobrien	(xref_basetypes): Don't set CLASSTYPE_LOCAL_TYPEDECLS.
377652284Sobrien	(current_local_enum): Remove.
377752284Sobrien	(build_enumerator): Call finish_member_declaration.
377852284Sobrien	(grok_enum_decls): Remove.
377952284Sobrien	* decl2.c (grok_x_components): Simplify.
378052284Sobrien	(check_classfn): Change iteration through CLASSTYPE_METHOD_VEC.
378152284Sobrien	(grokfield): Don't set CLASSTYPE_LOCAL_TYPEDECLS.
378252284Sobrien	(merge_functions): Add to comment.
378352284Sobrien	(arg_assoc_type): Prototype.
378452284Sobrien	(arg_assoc): Pass as many arguments as there are parameters.
378552284Sobrien	* error.c (dump_expr): Handle PTRMEM_CST.  Improve handling of
378652284Sobrien	OFFSET_REF.
378752284Sobrien	* expr.c (cpls_expand_expr): Remove dead code.  Handle
378852284Sobrien	PTRMEM_CST.
378952284Sobrien	* friend.c (do_friend): Lookup friends when in nested classes.
379052284Sobrien	Change comments.
379152284Sobrien	* init.c (build_offset_ref): Do lookup even for classes that are
379252284Sobrien	only partially defined.
379352284Sobrien	(decl_constant_value): Remove dead code.
379452284Sobrien	* method.c (build_overload_value): Remove hack where by TYPE was
379552284Sobrien	not a TYPE.  Handle PTRMEM_CST.
379652284Sobrien	(build_template_parm_names): Don't pass a PARM_DECL where a TYPE
379752284Sobrien	should go.
379852284Sobrien	* parse.y (components, notype_components, component_decl,
379952284Sobrien	component_decl_1, component_declarator, component_declarator0):
380052284Sobrien	Now all are itype rather than ttype.  Rework to add members to
380152284Sobrien	classes on the fly.
380252284Sobrien	(typesqpecqual_reserved): Use check_multiple_declarators.
380352284Sobrien	(structsp): Update class to finish_class_definition.
380452284Sobrien	(do_xref_defn): Unsplit into named_class_head.
380552284Sobrien	(access_specifier): Set current_access_specifier.
380652284Sobrien	* pt.c (set_current_access_from_decl): New function.
380752284Sobrien	(finish_member_template_decl): Don't take the parameters.
380852284Sobrien	(comp_template_args): Make more robust.
380952284Sobrien	(lookup_template_class): Don't use current_local_enum.
381052284Sobrien	(for_each_template_parm): Handle PTRMEM_CST.
381152284Sobrien	(instantiate_class_template): Use set_current_access_from_decl,
381252284Sobrien	finish_member_declaration and unreverse_member_declarations.  Set
381352284Sobrien	lineno/input_filename before generating implicit member functions.
381452284Sobrien	(type_unification_real): Don't assume back-unification happens
381552284Sobrien	only for the last argument.
381652284Sobrien	(regenerate_decl_from_template): Call pushclass a bit earlier.
381752284Sobrien	(tsubst_chain): Remove.
381852284Sobrien	(tsubst_enum): Use set_current_access_from_decl.
381952284Sobrien	(set_mangled_name_for_template_decl): Fix indentation.
382052284Sobrien	* search.c (lookup_fnfields_1): Change iteration through
382152284Sobrien	CLASSTYPE_METHOD_VEC.
382252284Sobrien	(dfs_pushdecls): Likewise.
382352284Sobrien	(dfs_compress_decls): Likewise.
382452284Sobrien	(add_conversions): Likewise.
382552284Sobrien	* semantics.c (finish_class_definition): Don't take components.
382652284Sobrien	Change call to finish_struct.
382752284Sobrien	(finish_member_declaration): New function.
382852284Sobrien	(finish_member_class_template): Don't take template parameters.
382952284Sobrien	Change call to grok_x_components.  Call finish_member_template_decl.
383052284Sobrien	(check_multiple_declarators): New function.
383152284Sobrien	* sig.c (append_signature_fields): Work from the TYPE_METHODS, not
383252284Sobrien	a passed in fieldlist.
383352284Sobrien	* tree.c (search_tree): Handle PTRMEM_CST.
383452284Sobrien	(mapcar): Likewise.
383552284Sobrien	* typeck.c (unary_complex_lvalue): Build PTRMEM_CSTs, not
383652284Sobrien	INTEGER_CSTs, for pointer-to-data members.
383752284Sobrien
383852284Sobrien	* call.c (resolve_args): Resolve template specializations, if
383952284Sobrien	possible.
384052284Sobrien
384152284SobrienTue Oct  6 07:57:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
384252284Sobrien
384352284Sobrien	* Makefile.in (spew.o): Depend on toplev.h.
384452284Sobrien
384552284Sobrien	* call.c (compare_ics): Initialize variables `deref_from_type2',
384652284Sobrien	`deref_to_type1' and `deref_to_type2'.
384752284Sobrien
384852284Sobrien	* except.c (get_eh_type): Hide prototype and definition.
384952284Sobrien	(process_start_catch_block_old): Remove unused static prototype.
385052284Sobrien
385152284Sobrien	* pt.c (tsubst_decl): Initialize variable `argvec'.
385252284Sobrien
385352284Sobrien	* spew.c: Include toplev.h.
385452284Sobrien
385552284Sobrien1998-10-05  Jason Merrill  <jason@yorick.cygnus.com>
385652284Sobrien
385752284Sobrien	* pt.c (instantiate_decl): Do save and restore file position.
385852284Sobrien
385950397Sobrien1998-10-05  Martin von L�wis  <loewis@informatik.hu-berlin.de>
386018334Speter
386150397Sobrien	* method.c (build_decl_overload_real): Clear
386250397Sobrien	numeric_output_need_bar after __.
386318334Speter
386452284Sobrien1998-10-05  Nathan Sidwell  <nathan@acm.org>
386552284Sobrien
386652284Sobrien	* call.c (build_new_method_call): Issue 'incomplete type' error,
386752284Sobrien	if class is not defined.
386852284Sobrien
386952284Sobrien1998-10-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
387052284Sobrien
387152284Sobrien	* call.c (build_object_call): Move declaration of variable
387252284Sobrien	`fn' into the scope where it is used.  Don't access variable
387352284Sobrien	`fn' when it is uninitialized, instead use `fns'.
387452284Sobrien
387552284Sobrien1998-10-04  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>
387652284Sobrien
387752284Sobrien	* errfn.c (cp_thing): Print buf as a string not as a printf format
387852284Sobrien	to avoid problems with the operator%.  Consequently, `%%' sequences
387952284Sobrien	in format are copied as `%' in buf.
388052284Sobrien
388150397Sobrien1998-10-04  Jason Merrill  <jason@yorick.cygnus.com>
388218334Speter
388352284Sobrien	* pt.c (pop_tinst_level): Call extract_interface_info.
388452284Sobrien	(instantiate_decl): Don't save and restore file position.
388552284Sobrien
388650397Sobrien	* decl.c (cp_finish_decl): Make statics in extern inlines and
388750397Sobrien	templates common, if possible and the target doesn't support weak
388850397Sobrien	symbols.
388918334Speter
389052284Sobrien	* decl.c (grokdeclarator): Remove redundant calls to
389152284Sobrien	build_type_variant and some duplicated code.
389252284Sobrien	* sig.c (build_signature_reference_type): Only take the type parm.
389352284Sobrien	(build_signature_pointer_type): Likewise.
389452284Sobrien	* tree.c (build_cplus_method_type): Adjust.
389552284Sobrien	* cp-tree.h: Update.
389652284Sobrien
389752284Sobrien1998-10-04  Mark Mitchell  <mark@markmitchell.com>
389852284Sobrien
389952284Sobrien	* call.c (build_over_call): Make pedwarns about dropped qualifiers
390052284Sobrien	into full-fledged errors.
390152284Sobrien	* cvt.c (convert_to_reference): Likewise.
390252284Sobrien	* typeck.c (convert_for_assignment): Likewise.
390352284Sobrien
390452284Sobrien	* search.c (expand_upcast_vtables): In addition to unsetting
390552284Sobrien	TREE_READONLY, remove top-level const type qualifier.
390652284Sobrien
390752284Sobrien1998-10-03  Mark Mitchell  <mark@markmitchell.com>
390852284Sobrien
390952284Sobrien	* class.c (current_class_ptr, current_class_ref): Clarify
391052284Sobrien	documentation.
391152284Sobrien	* cvt.c (ocp_convert): Don't expect fold to remove all trivial
391252284Sobrien	NOP type conversions.
391352284Sobrien	* decl.c (decls_match): Use comptypes directly; ignore
391452284Sobrien	qualifiers on the DECL.
391552284Sobrien	(duplicate_decls): Remove qualifier checks on DECL.
391652284Sobrien	(grokdeclarator): Make the type built up include top-level
391752284Sobrien	qualifiers.
391852284Sobrien	* decl2.c (do_dtors): Fix spelling error.
391952284Sobrien	* error.c (dump_simple_decl): Don't look at qualifiers on the decl
392052284Sobrien	when printing type information.
392152284Sobrien	* init.c (build_new_1): Add documentation.  Deal with the fact
392252284Sobrien	that type of allocated memory now contains qualifiers.
392352284Sobrien	* lex.c (is_global): Improve error-recovery.
392452284Sobrien	* sig.c (build_member_function_pointer): Don't cast away const
392552284Sobrien	on fields of sigtable_entry_type.
392652284Sobrien	* tree.c (lvalue_type): Don't look at top-level qualifiers on
392752284Sobrien	expressions.
392852284Sobrien	* typeck.c (decay_conversion): Likewise.
392952284Sobrien	(build_component_ref): Make sure the type of the COMPONENT_REF
393052284Sobrien	contains top-level qualifiers, as appropriate.  Improve
393152284Sobrien	error-handling.
393252284Sobrien	(build_indirect_ref): Simplify.  Don't strip top-level qualifiers.
393352284Sobrien	(build_array_ref): Likewise.
393452284Sobrien	(build_unary_op): Improve error-recovery.
393552284Sobrien	(unary_complex_lvalue): Make taking the address a bound member
393652284Sobrien	function an error, not a sorry.
393752284Sobrien	(build_conditional_expr): Look at the type qualifiers, not the
393852284Sobrien	qualifiers on the expression itself.
393952284Sobrien
394050397Sobrien1998-10-03  Jason Merrill  <jason@yorick.cygnus.com>
394118334Speter
394250397Sobrien	* decl2.c (merge_functions): Remove duplicates.
394350397Sobrien
394452284Sobrien	* decl2.c: Add -f{no-,}implicit-inline-templates.
394552284Sobrien	(import_export_decl): Check it.
394652284Sobrien
394752284Sobrien	* decl.c (lookup_name_real): Template parms also take precedence
394852284Sobrien	over implicit typename.  Only warn if yylex.
394952284Sobrien
395050397Sobrien	* typeck.c (build_conditional_expr): Only fold if ifexp is an
395150397Sobrien	INTEGER_CST.
395250397Sobrien
395352284Sobrien	* decl2.c (finish_vtable_vardecl): Check DECL_INTERFACE_KNOWN
395452284Sobrien	instead of linkage.
395550397Sobrien
395652284Sobrien1998-10-01  Jason Merrill  <jason@yorick.cygnus.com>
395752284Sobrien
395852284Sobrien	* cp-tree.h (FORMAT_VBASE_NAME): New macro.
395952284Sobrien	* class.c (build_vbase_pointer): Use it.
396052284Sobrien	* rtti.c (expand_class_desc): Likewise.
396152284Sobrien	* tree.c (build_vbase_pointer_fields): Likewise.
396252284Sobrien
396352284SobrienThu Oct  1 10:43:45 1998  Nick Clifton  <nickc@cygnus.com>
396452284Sobrien
396552284Sobrien	* decl.c (start_decl): Add invocation of
396652284Sobrien	SET_DEFAULT_DECL_ATTRIBUTES, if defined.
396752284Sobrien	(start_function): Add invocation of
396852284Sobrien	SET_DEFAULT_DECL_ATTRIBUTES, if defined.
396952284Sobrien
397052284Sobrien	* lex.c: Replace occurrences of HANDLE_SYSV_PRAGMA with
397152284Sobrien	HANDLE_GENERIC_PRAGMAS.
397252284Sobrien
397352284Sobrien1998-09-28  Anthony Green  <green@cygnus.com>
397452284Sobrien
397552284Sobrien	* semantics.c (finish_asm_stmt): Always permit volatile asms.
397652284Sobrien
397752284Sobrien1998-09-28  Mark Mitchell  <mark@markmitchell.com>
397852284Sobrien
397952284Sobrien	* decl.c (grokdeclarator): Tighten checks for invalid
398052284Sobrien	destructors.  Improve error-messages and error-recovery.
398152284Sobrien	* decl2.c (check_classfn): Don't assume that mangled destructor
398252284Sobrien	names contain type information.
398352284Sobrien
398452284Sobrien1998-09-25  Jason Merrill  <jason@yorick.cygnus.com>
398552284Sobrien
398652284Sobrien	* search.c (get_base_distance): Remove assert.
398752284Sobrien
398852284Sobrien	* decl2.c (build_anon_union_vars): Don't process a field with no
398952284Sobrien	name.
399052284Sobrien	(finish_anon_union): Also complain about local anon unions with no
399152284Sobrien	members.
399252284Sobrien
399352284Sobrien1998-09-25  Martin von L�wis  <loewis@informatik.hu-berlin.de>
399452284Sobrien
399552284Sobrien	* decl.c (lookup_namespace_name): If the name is a namespace,
399652284Sobrien	return it immediately.
399752284Sobrien
399852284SobrienFri Sep 25 11:45:38 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
399952284Sobrien
400052284Sobrien	* cp-tree.h (define_case_label): Remove unused parameter.
400152284Sobrien	(check_java_method): Likewise.
400252284Sobrien	(grokclassfn): Likewise.
400352284Sobrien	(expand_aggr_init): Likewise.
400452284Sobrien	(build_x_delete): Likewise.
400552284Sobrien	(maybe_end_member_template_processing): Likewise.
400652284Sobrien	(unshare_base_binfos): Add prototype.
400752284Sobrien	(string_conv_p): Likewise.
400852284Sobrien	(my_friendly_abort): Mark with ATTRIBUTE_NORETURN.
400952284Sobrien
401052284Sobrien	* cvt.c (build_up_reference): Remove unused parameter
401152284Sobrien	`checkconst', all callers changed.
401252284Sobrien	(build_type_conversion): Mark parameter `code' with
401352284Sobrien	ATTRIBUTE_UNUSED.
401452284Sobrien	(build_expr_type_conversion): Initialize variable `conv'.
401552284Sobrien
401652284Sobrien	* decl.c (push_namespace): Initialize variable `d'.
401752284Sobrien	(define_case_label): Remove unused parameter `decl', all callers
401852284Sobrien	changed.
401952284Sobrien
402052284Sobrien	* decl2.c (lang_decode_option): If !USE_CPPLIB, mark parameter
402152284Sobrien	`argc' with ATTRIBUTE_UNUSED.
402252284Sobrien	(grokclassfn): Remove unused parameter `cname', all callers
402352284Sobrien	changed.
402452284Sobrien	(check_java_method): Likewise for parameter `ctype'.
402552284Sobrien	(copy_assignment_arg_p): Mark parameter `virtualp' with
402652284Sobrien	ATTRIBUTE_UNUSED.
402752284Sobrien	(finish_prevtable_vardecl): Likewise for parameter `prev'.
402852284Sobrien
402952284Sobrien	* expr.c (extract_init): Likewise for parameters `decl' and `init'.
403052284Sobrien
403152284Sobrien	* init.c (expand_aggr_init_1): Remove unused parameter
403252284Sobrien	`alias_this', all callers changed.
403352284Sobrien	(expand_aggr_init): Likewise.
403452284Sobrien	(expand_default_init): Likewise.
403552284Sobrien	(build_new_1): Initialize variable `susp'.
403652284Sobrien	(build_x_delete): Remove unused parameter `type', all callers
403752284Sobrien	changed.
403852284Sobrien
403952284Sobrien	* lex.c (set_typedecl_interface_info): Mark parameter `prev' with
404052284Sobrien	ATTRIBUTE_UNUSED.
404152284Sobrien	(readescape): Use (unsigned) value in shift.
404252284Sobrien	(real_yylex): Likewise.  Likewise.  Also cast `sizeof' to int when
404352284Sobrien	comparing to a signed quantity.
404452284Sobrien
404552284Sobrien	* pt.c (maybe_end_member_template_processing): Remove unused
404652284Sobrien	parameter `decl', all callers changed.
404752284Sobrien	(check_explicit_specialization): Add braces around empty body in
404852284Sobrien	an else-statement.
404952284Sobrien	(current_template_args): Initialize variable `args'.
405052284Sobrien	(lookup_template_class): Likewise for variable `prev_local_enum'.
405152284Sobrien	(tsubst_decl): Likewise for variable `r'.
405252284Sobrien	(set_mangled_name_for_template_decl): Initialize variable
405352284Sobrien	`context'.
405452284Sobrien
405552284Sobrien	* spew.c (scan_tokens): Change type of parameter `n' to unsigned.
405652284Sobrien	Likewise for variable `i'.
405752284Sobrien	(yylex): Initialize variable `trrr'.
405852284Sobrien
405952284Sobrien	* typeck.c (compparms): Mark variable `strict' with
406052284Sobrien	ATTRIBUTE_UNUSED.
406152284Sobrien
406252284Sobrien	* xref.c (simplify_type): Cast argument of ctype function to
406352284Sobrien	`unsigned char'.
406452284Sobrien
406552284Sobrien1998-09-24  Mark Mitchell  <mark@markmitchell.com>
406652284Sobrien
406752284Sobrien	* cp-tree.h (language_lvalue_valid): Remove.
406852284Sobrien	* decl.c (grokdeclarator): Don't disallow references to functions.
406952284Sobrien	* tree.c (lvalue_p_1): New function, combining duplicated
407052284Sobrien	code from ...
407152284Sobrien	(lvalue_p): Use it.
407252284Sobrien	(real_lvalue_p): Likewise.
407352284Sobrien	* typeck.c (language_lvalue_valid): Remove.
407452284Sobrien	(build_modify_expr): Treat FUNCTION_TYPEs as readonly, even though
407552284Sobrien	they don't have TREE_READONLY set.
407652284Sobrien	* typeck2.c (readonly_error): Add case for FUNCTION_DECLs.
407752284Sobrien
407852284Sobrien1998-09-24  Benjamin Kosnik  <bkoz@loony.cygnus.com>
407952284Sobrien
408052284Sobrien	* spew.c (yylex): Give diagnostic.
408152284Sobrien	* hash.h (is_reserved_word): Add export.
408252284Sobrien	* gxx.gperf: Likewise.
408352284Sobrien	* lex.h (rid): Add RID_EXPORT.
408452284Sobrien	* lex.c (init_parse): Likewise.
408552284Sobrien
408652284SobrienTue Sep 22 21:01:19 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
408752284Sobrien
408852284Sobrien	* friend.c (do_friend): Make warning a full sentence.
408952284Sobrien
409052284Sobrien1998-09-22  Mark Mitchell  <mark@markmitchell.com>
409152284Sobrien
409252284Sobrien	* parse.y (component_decl_list): Improve error-recovery.
409352284Sobrien
409452284Sobrien1998-09-22  Benjamin Kosnik  <bkoz@loony.cygnus.com>
409552284Sobrien
409652284Sobrien	* decl.c (make_typename_type): Move error to point where name
409752284Sobrien	variable can be used by dump_type.
409852284Sobrien
409952284Sobrien1998-09-22  Mark Mitchell  <mark@markmitchell.com>
410052284Sobrien
410152284Sobrien	* decl.c (grokfndecl): Improve error-recovery.
410252284Sobrien	* decl2.c (grokfield): Likewise.
410352284Sobrien	* pt.c (finish_member_template_decl): Likewise.
410452284Sobrien
410552284Sobrien1998-09-20  Martin von L�wis  <loewis@informatik.hu-berlin.de>
410652284Sobrien
410752284Sobrien	* method.c (hack_identifier): Finding multiple members is always
410852284Sobrien	an error.
410952284Sobrien
411052284Sobrien1998-09-21  Per Bothner  <bothner@cygnus.com>
411152284Sobrien
411252284Sobrien	* Make-lang.in (c++-filt):  Link libiberty.a after cxxmain.o.
411352284Sobrien
411452284SobrienMon Sep 21 01:53:05 1998  Felix Lee  <flee@cygnus.com>
411552284Sobrien
411652284Sobrien	* lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT ().
411752284Sobrien
411852284Sobrien1998-09-20  Mark Mitchell  <mark@markmitchell.com>
411952284Sobrien
412052284Sobrien	* class.c (maybe_warn_about_overly_private_class): Reformat.
412152284Sobrien
412252284Sobrien1998-09-17  Andrew MacLeod  <amacleod@cygnus.com>
412352284Sobrien
412452284Sobrien	* exception.cc (__cplus_type_matcher): Realign some code.
412552284Sobrien
412652284Sobrien1998-09-16  Mark Mitchell  <mark@markmitchell.com>
412752284Sobrien
412852284Sobrien	* Make-lang.in (tinfo.o): Use CXXFLAGS when compiling.
412952284Sobrien	(tinfo2.o): Likewise.
413052284Sobrien	(exception.o): Likewise.
413152284Sobrien	(new.o): Likewise.
413252284Sobrien	(opnew.o): Likewise.
413352284Sobrien	(opnewnt.o): Likewise.
413452284Sobrien	(opvnew.o): Likewise.
413552284Sobrien	(opvnewnt.o): Likewise.
413652284Sobrien	(opdel.o): Likewise.
413752284Sobrien	(opdelnt.o): Likewise.
413852284Sobrien	(opvdel.o): Likewise.
413952284Sobrien	(opvdelnt.o): Likewise.
414052284Sobrien
414152284Sobrien1998-09-16  Richard Henderson  <rth@cygnus.com>
414252284Sobrien
414352284Sobrien	* decl.c (init_decl_processing): Kill __builtin_fp and __builtin_sp.
414452284Sobrien
414552284Sobrien1998-09-15  Alexandre Oliva  <oliva@dcc.unicamp.br>
414652284Sobrien
414752284Sobrien	* call.c (build_field_call): Handle static data members too.
414852284Sobrien
414952284Sobrien	* typeck.c (comptypes): When comparing pointer types, check
415052284Sobrien	whether referred types match even in strictest modes.
415152284Sobrien
415252284Sobrien1998-09-15  Mark Mitchell  <mark@markmitchell.com>
415352284Sobrien
415452284Sobrien	* cp-tree.h: Revert previous change.
415552284Sobrien	(finish_struct_methods): Remove declaration.
415652284Sobrien	* class.c: Revert previous change.
415752284Sobrien	(maybe_warn_about_overly_private_class): New function.
415852284Sobrien	(finish_struct_methods): Declare here, and make static.  Remove
415952284Sobrien	unnecessary parameters.  Tidy slightly.  Use
416052284Sobrien	maybe_warn_about_overly_private_class.
416152284Sobrien	(finish_struct_1): Adjust.  Remove check for private constructors,
416252284Sobrien	now done elsewhere.
416352284Sobrien	(finish_struct): Adjust.
416452284Sobrien
416552284Sobrien1998-09-15  Andrew MacLeod  <amacleod@cygnus.com>
416652284Sobrien
416752284Sobrien	* except.c (expand_start_catch_block): No need to check for new
416852284Sobrien	exception model.
416952284Sobrien	(process_start_catch_block_old): Deleted.
417052284Sobrien	(process_start_catch_block): Add call to start_decl_1().
417152284Sobrien	(expand_end_catch_block): Add call to end_catch_handler().
417252284Sobrien	* exception.cc (__cplus_type_matcher): Only check the exception
417352284Sobrien	language if there is an exception table.
417452284Sobrien
417552284Sobrien1998-09-15  Andrew MacLeod  <amacleod@cygnus.com>
417652284Sobrien
417752284Sobrien	* search.c (expand_indirect_vtbls_init): Mark temporary stack slots
417852284Sobrien	as used to prevent conflicts with virtual function tables.
417952284Sobrien
418052284Sobrien1998-09-14  Mark Mitchell  <mark@markmitchell.com>
418152284Sobrien
418252284Sobrien	* cp-tree.h (lang_type): Add has_non_private_static_mem_fn.
418352284Sobrien	(CLASSTYPE_HAS_NON_PRIVATE_STATIC_MEM_FN): New macro, to access it.
418452284Sobrien	* class.c (maybe_class_too_private_p): New function.
418552284Sobrien	(finish_struct_methods): Use it.
418652284Sobrien	(finish_struct_1): Likewise.
418752284Sobrien	(finish_struct): Set CLASSTYPE_HAS_NON_PRIVATE_STATIC_MEM_FN if
418852284Sobrien	appropriate.
418952284Sobrien
419052284Sobrien	* pt.c (check_specialization_scope): Fix spelling error.
419152284Sobrien	(check_explicit_specialization): Remove code to handle explicit
419252284Sobrien	specializations in class scope; they are now correctly diagnosed
419352284Sobrien	as errors.
419452284Sobrien
419552284Sobrien1998-09-10  Mark Mitchell  <mark@markmitchell.com>
419652284Sobrien
419752284Sobrien	* decl.c (pushdecl): Don't copy types if the
419852284Sobrien	DECL_ABSTRACT_ORIGIN of the new decl matches the TYPE_NAME of the
419952284Sobrien	type.
420052284Sobrien
420152284Sobrien1998-09-09  Kriang Lerdsuwanakij  <lerdsuwa@scf-fs.usc.edu>
420252284Sobrien
420352284Sobrien	* class.c (get_enclosing_class): New function.
420452284Sobrien	(is_base_of_enclosing_class): Likewise.
420552284Sobrien	* cp-tree.h (get_enclosing_class): Declare.
420652284Sobrien	(is_base_of_enclosing_class): Likewise.
420752284Sobrien	* pt.c (coerce_template_parms): Use them.
420852284Sobrien
420952284Sobrien1998-09-09  Jason Merrill  <jason@yorick.cygnus.com>
421052284Sobrien
421152284Sobrien	* g++spec.c (lang_specific_driver): Check whether MATH_LIBRARY is
421252284Sobrien	null to decide whether to use it.
421352284Sobrien
421452284Sobrien	* error.c (dump_type_real): Handle NAMESPACE_DECL.
421552284Sobrien	* parse.y (base_class.1): Avoid crash on error.
421652284Sobrien
421752284Sobrien1998-09-08  Martin von L�wis  <loewis@informatik.hu-berlin.de>
421852284Sobrien
421952284Sobrien	* decl.c (make_typename_type): If context is a namespace, the code
422052284Sobrien	is in error.
422152284Sobrien
422252284Sobrien1998-09-08  Mumit Khan  <khan@xraylith.wisc.edu>
422352284Sobrien
422450397Sobrien	* parse.y (nomods_initdcl0): Set up the parser stack correctly.
422550397Sobrien
422652284Sobrien1998-09-08  Mark Mitchell  <mark@markmitchell.com>
422752284Sobrien
422852284Sobrien	* cp-tree.h (anonymous_namespace_name): Declare.
422952284Sobrien	* decl.c: Define it.
423052284Sobrien	(push_namespace): Use anonymous_namespace_name, rather than local
423152284Sobrien	static anon_name.
423252284Sobrien	* error.c (dump_decl): If a namespace is named
423352284Sobrien	anonymous_namespace_name, call it {anonymous}.
423452284Sobrien
423552284Sobrien	* decl.c (grokparms): Distinguish between references and pointers
423652284Sobrien	in error message.
423752284Sobrien
423852284Sobrien1998-09-08  Richard Henderson  <rth@cygnus.com>
423952284Sobrien	    Mark Mitchell  <mark@markmitchell.com>
424052284Sobrien
424152284Sobrien	* pt.c (process_partial_specialization): Consistently allocate
424252284Sobrien	and zero tpd.parms based on ntparms.  Use tpd2.parms, not
424352284Sobrien	tpd.parms, where appropriate.
424452284Sobrien
424552284SobrienSun Sep  6 00:00:51 1998  Jeffrey A Law  (law@cygnus.com)
424652284Sobrien
424752284Sobrien	* Makefile.in (INCLUDES): Update after recent toplevel gcc
424852284Sobrien	reorganizations.
424952284Sobrien
425052284Sobrien1998-09-05  Mark Mitchell  <mark@markmitchell.com>
425152284Sobrien
425252284Sobrien	* cp-tree.h (TI_PENDING_SPECIALIZATION_FLAG): Remove.
425352284Sobrien	* class.c (finish_struct): Remove hackery to deal with explicit
425452284Sobrien	specializations in class scope.
425552284Sobrien	* decl.c (grokfndecl): Improve error-recovery.
425652284Sobrien	* decl2.c (grokfield): Likewise.
425752284Sobrien	* pt.c (check_specialization_scope): New function.
425852284Sobrien	(begin_specialization): Call it.
425952284Sobrien	(process_partial_specialization): New function, split out from
426052284Sobrien	push_template_decl.  Check partial specializations more
426152284Sobrien	stringently.
426252284Sobrien	(push_template_decl): Call it.
426352284Sobrien	(check_explicit_specialization): Don't attempt to handle explicit
426452284Sobrien	specializations in class scope.
426552284Sobrien	(template_parm_data): Document.  Add current_arg and
426652284Sobrien	arg_uses_template_parms.
426752284Sobrien	(mark_template_parm): Set it.
426852284Sobrien	(tsubst_arg_types): Remove unused variable.
426952284Sobrien	* semantics.c (begin_class_definition): Tweak.
427052284Sobrien
427152284Sobrien1998-09-04  Mark Mitchell  <mark@markmitchell.com>
427252284Sobrien
427352284Sobrien	* inc/typeinfo (type_info::type_info(const char*)): Make
427452284Sobrien	`explicit'.
427552284Sobrien
427652284Sobrien	* cp-tree.h (hash_tree_cons_simple): New macro.
427752284Sobrien	* pt.c (tsubst_arg_types): New function.  Use hash_tree_cons.
427852284Sobrien	(coerce_template_parms): Use make_temp_vec, instead of
427952284Sobrien	make_tree_vec.  Document this behavior.
428052284Sobrien	(lookup_template_class): Likewise.
428152284Sobrien	(tsubst, cases METHOD_TYPE, FUNCTION_TYPE): Use tsubst_arg_types.
428252284Sobrien	Remove dead code (and add assertion to check its deadness).  Fix
428352284Sobrien	bug w.r.t. exception specifications.
428452284Sobrien
428552284Sobrien1998-09-03  Jason Merrill  <jason@yorick.cygnus.com>
428652284Sobrien
428752284Sobrien	* decl2.c (import_export_vtable): Always make artificials comdat.
428852284Sobrien	(import_export_decl): Likewise.
428952284Sobrien	* pt.c (mark_decl_instantiated): Likewise.
429052284Sobrien
429152284Sobrien1998-09-03  Mark Mitchell  <mark@markmitchell.com>
429252284Sobrien
429352284Sobrien	* cp-tree.h (finish_globally_qualified_member_call_expr):
429452284Sobrien	Rename to ...
429552284Sobrien	(finish_qualified_call_expr).
429652284Sobrien	* semantics.c: Likewise.
429752284Sobrien	* parse.y (primary): Use it.
429852284Sobrien	* method.c (hack_identifier): Remove redundant code.
429952284Sobrien
430052284Sobrien	* init.c (resolve_offset_ref): Call convert_from_reference to
430152284Sobrien	handle members of reference type.  Improve error recovery.
430252284Sobrien
430352284Sobrien1998-09-03  Benjamin Kosnik  <bkoz@cygnus.com>
430452284Sobrien
430552284Sobrien	* cp-tree.h: Declare warn_nontemplate_friend.
430652284Sobrien	* decl2.c (lang_decode_option): Set.
430752284Sobrien	* lang-options.h: Add -Wnon-template-friend.
430852284Sobrien	* friend.c (do_friend): Use to toggle non-template function warning.
430952284Sobrien
431052284Sobrien1998-09-03  Mark Mitchell  <mark@markmitchell.com>
431152284Sobrien
431252284Sobrien	* decl.c (finish_enum): Don't resolve CONST_DECLs to their
431352284Sobrien	corresponding INTEGER_CSTs when processing_template_decl.
431452284Sobrien	* pt.c (tsubst_enum): Tweak accordingly.
431552284Sobrien
431652284Sobrien1998-09-03  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
431752284Sobrien
431852284Sobrien	* decl.c (pushdecl_class_level): Add warning here.
431952284Sobrien	(pushdecl): Tweak.
432052284Sobrien
432152284Sobrien1998-09-02  Jason Merrill  <jason@yorick.cygnus.com>
432252284Sobrien
432352284Sobrien	* cvt.c (convert_pointer_to_real): Tidy.
432452284Sobrien	* search.c (get_base_distance_recursive): Simplify.
432552284Sobrien	(get_base_distance): Likewise.
432652284Sobrien
432752284Sobrien	* pt.c (unify): Only special-case INTEGER_TYPE if it uses template
432852284Sobrien	parms.
432952284Sobrien
433052284SobrienWed Sep 02 09:25:29 1998  Nick Clifton  <nickc@cygnus.com>
433152284Sobrien
433252284Sobrien	* lex.c (check_newline):  Call HANDLE_PRAGMA before
433352284Sobrien	HANDLE_SYSV_PRAGMA if both are defined.  Generate warning messages
433452284Sobrien	if unknown pragmas are encountered.
433552284Sobrien	(handle_sysv_pragma): Interpret return code from
433652284Sobrien	handle_pragma_token ().  Return success/failure indication rather
433752284Sobrien	than next unprocessed character.
433852284Sobrien	(pragma_getc): New function: retrieves characters from the
433952284Sobrien	input stream.  Defined when HANDLE_PRAGMA is defined.
434052284Sobrien	(pragma_ungetc): New function: replaces characters back into the
434152284Sobrien	input stream.  Defined when HANDLE_PRAGMA is defined.
434252284Sobrien
434352284Sobrien1998-09-01  Jason Merrill  <jason@yorick.cygnus.com>
434452284Sobrien
434552284Sobrien	* decl2.c (output_vtable_inherit): Use %cDIGIT in the operands.
434652284Sobrien	* class.c (build_vtable_entry_ref): Likewise.
434752284Sobrien
434852284Sobrien1998-09-01  Mark Mitchell  <mark@markmitchell.com>
434952284Sobrien
435052284Sobrien	* cp-tree.h (DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION): New macro.
435152284Sobrien	* decl2.c (import_export_decl): Likewise.
435252284Sobrien	* pt.c (instantiate_decl): Use it.
435352284Sobrien
435452284Sobrien1998-09-01  Jason Merrill  <jason@yorick.cygnus.com>
435552284Sobrien
435652284Sobrien	* decl.c (lookup_name_real): Also do implicit typename thing for
435752284Sobrien	artificial TYPE_DECLs.
435852284Sobrien	* search.c (lookup_field): Likewise.
435952284Sobrien	(lookup_fnfields, lookup_field): Adjust for implicit typename kludge.
436052284Sobrien	* semantics.c (begin_constructor_declarator): Use enter_scope_of.
436152284Sobrien	(enter_scope_of): Extract type from implicit typename.
436252284Sobrien	(begin_class_definition): Likewise.
436352284Sobrien	* lex.c (identifier_type): Handle implicit typename when checking
436452284Sobrien	for SELFNAME.
436552284Sobrien
436652284Sobrien	* cp-tree.h: Declare flag_strict_prototype.
436752284Sobrien	* lex.c (do_scoped_id, do_identifier): Don't implicitly_declare if
436852284Sobrien	-fstrict-prototype.
436952284Sobrien	* decl.c (init_decl_processing): If -f{no,-}strict-prototype wasn't
437052284Sobrien	specified, set it to the value of pedantic.
437152284Sobrien
437252284Sobrien1998-09-01  Mark Mitchell  <mark@markmitchell.com>
437352284Sobrien
437452284Sobrien	* decl2.c (arg_assoc): Handle template-id expressions as arguments.
437552284Sobrien
437652284Sobrien1998-08-31  Mark Mitchell  <mark@markmitchell.com>
437752284Sobrien
437852284Sobrien	* decl.c (finish_enum): Handle member enums of classes declared in
437952284Sobrien	template functions.
438052284Sobrien
438152284Sobrien	* decl2.c (grok_x_components): Strip attributes before calling
438252284Sobrien	groktypename.
438352284Sobrien
438452284Sobrien1998-08-31  Jason Merrill  <jason@yorick.cygnus.com>
438552284Sobrien
438652284Sobrien	* cp-tree.h, decl2.c: Remove support for -fall-virtual,
438752284Sobrien	-fenum-int-equivalence and -fno-nonnull-objects.
438852284Sobrien	* class.c (check_for_override): Remove support for -fall-virtual.
438952284Sobrien	(finish_struct_1): Likewise.
439052284Sobrien	* call.c (build_new_op): Remove support for -fenum-int-equivalence.
439152284Sobrien	* typeck.c (build_binary_op_nodefault): Likewise.
439252284Sobrien	* cvt.c (ocp_convert): Likewise.
439352284Sobrien	* call.c (build_vfield_ref): Remove support for -fno-nonnull-objects.
439452284Sobrien	* class.c (build_vbase_path): Likewise.
439552284Sobrien
439652284SobrienSun Aug 30 22:16:31 1998  H.J. Lu  (hjl@gnu.org)
439752284Sobrien
439852284Sobrien	* Makefile.in (INTERFACE): New, set to 1.
439952284Sobrien
440052284Sobrien1998-08-30  Mark Mitchell  <mark@markmitchell.com>
440152284Sobrien
440252284Sobrien	* error.c (dump_decl): Use CP_DECL_CONTEXT, not DECL_CONTEXT, when
440352284Sobrien	comparing with global_namespace.
440452284Sobrien	(dump_aggr_type): Likewise.
440552284Sobrien
440652284Sobrien	* decl.c (grokfndecl): Issue error on declaration of friend
440752284Sobrien	templates with explicit template arguments.
440852284Sobrien
440952284Sobrien	* pt.c (convert_template_argument): New function, split out
441052284Sobrien	from...
441152284Sobrien	(coerce_template_parms): Here.
441252284Sobrien	(tsubst): Attempt better error-recovery.
441352284Sobrien
441452284Sobrien1998-08-28  Benjamin Kosnik  <bkoz@loony.cygnus.com>
441552284Sobrien
441652284Sobrien	* pt.c (decl_template_parm_p): Add checks for
441752284Sobrien	TEMPLATE_TEMPLATE_PARM.
441852284Sobrien
441952284Sobrien1998-08-28  Mark Mitchell  <mark@markmitchell.com>
442052284Sobrien
442152284Sobrien	* lex.c (do_identifier): Fix thinko in previous change.
442252284Sobrien
442352284Sobrien1998-08-28  Jason Merrill  <jason@yorick.cygnus.com>
442452284Sobrien
442552284Sobrien	* search.c (dfs_search, binfo_for_vtable, dfs_bfv_helper): New fns.
442652284Sobrien	* decl2.c (output_vtable_inherit): Call binfo_for_vtable.
442752284Sobrien
442852284Sobrien1998-08-28  Richard Henderson  <rth@cygnus.com>
442952284Sobrien
443052284Sobrien	Add support for discarding unused virtual functions.
443152284Sobrien	* lang-options.h: Add -fvtable-gc.
443252284Sobrien	* cp-tree.h: Add flag_vtable_gc.
443352284Sobrien	* decl2.c (output_vtable_inherit): New fn.
443452284Sobrien	(finish_vtable_vardecl): Call it.
443552284Sobrien	* class.c (build_vtable_entry_ref): New fn.
443652284Sobrien	(build_vtbl_ref): Call it.
443752284Sobrien
443852284Sobrien1998-08-28  Mark Mitchell  <mark@markmitchell.com>
443952284Sobrien
444052284Sobrien	* cp-tree.h (build_enumerator): Take the enumeration type as a
444152284Sobrien	parameter.
444252284Sobrien	* decl.c (finish_enum): Don't set the TREE_TYPE for the
444352284Sobrien	enumeration constant values if we're processing_template_decls.
444452284Sobrien	Don't set the type for the CONST_DECLs either; that's done in
444552284Sobrien	build_enumerator.
444652284Sobrien	(build_enumerator): Take the enumeration type as a
444752284Sobrien	parameter.
444852284Sobrien	* lex.c (do_identifier): Don't resolve enumeration constants while
444952284Sobrien	processing template declarations, even if they happen to be
445052284Sobrien	TEMPLATE_PARM_INDEXs.
445152284Sobrien
445252284Sobrien	* parse.y (current_enum_type): New variable.
445352284Sobrien	(primary): Don't allow statement-expression in local classes just
445452284Sobrien	as we don't in global classes.
445552284Sobrien	(structsp): Use current_enum_type.
445652284Sobrien	(enum_list): Likewise.
445752284Sobrien	* pt.c (tsubst_enum): Don't check for NOP_EXPRs introduced by
445852284Sobrien	finish_enum; they no longer occur.
445952284Sobrien
446052284Sobrien	* cp-tree.h (finish_base_specifier): New function.
446152284Sobrien	* parse.y (base_class): Use it.
446252284Sobrien	* semantics.c (finish_base_specifier): Define it.
446352284Sobrien
446452284Sobrien	* parse.y (structsp): Warn on use of typename outside of template
446552284Sobrien	declarations.
446652284Sobrien
446752284Sobrien1998-08-27  Jason Merrill  <jason@yorick.cygnus.com>
446852284Sobrien
446952284Sobrien	* lex.c (handle_cp_pragma): Remove #pragma vtable.
447052284Sobrien	* lang-options.h: Remove +e options.
447152284Sobrien	* decl2.c (lang_decode_option): Likewise.
447252284Sobrien	(import_export_vtable): Don't check write_virtuals.
447352284Sobrien	(finish_vtable_vardecl, finish_file): Likewise.
447452284Sobrien	* search.c (dfs_debug_mark): Likewise.
447552284Sobrien	* semantics.c (begin_class_definition): Likewise.
447652284Sobrien	* class.c (build_vtable, finish_vtbls, finish_struct_1): Likewise.
447752284Sobrien
447852284Sobrien	* call.c (build_over_call): Check flag_elide_constructors.
447952284Sobrien	* decl2.c: flag_elide_constructors defaults to 1.
448052284Sobrien	* typeck.c (convert_arguments): Remove return_loc parm.
448152284Sobrien	(build_function_call_real): Adjust.
448252284Sobrien
448352284Sobrien	* search.c: Tear out all mi_matrix and memoize code.
448452284Sobrien	(lookup_field, lookup_fnfields): Use scratch_tree_cons.
448552284Sobrien	* lang-options.h: Remove documentation for -fhandle-exceptions,
448652284Sobrien	-fmemoize-lookups and -fsave-memoized.
448752284Sobrien	* cp-tree.h: Lose mi_matrix and memoize support.
448852284Sobrien	* decl2.c: Ignore -fmemoize-lookups and -fsave-memoized.
448952284Sobrien	* class.c: Lose struct class_level.
449052284Sobrien	(pushclass, popclass): Lose memoize support.
449152284Sobrien	* init.c (build_offset_ref): Likewise.
449252284Sobrien
449352284Sobrien	Never change BINFO_INHERITANCE_CHAIN.
449452284Sobrien	* init.c (emit_base_init): Change modification of
449552284Sobrien	BINFO_INHERITANCE_CHAIN to an assert.
449652284Sobrien	* search.c (get_base_distance_recursive): Likewise.
449752284Sobrien	(get_base_distance): Likewise.
449852284Sobrien	(lookup_member): Likewise.
449952284Sobrien	(convert_pointer_to_single_level): Likewise.
450052284Sobrien	(lookup_field): Likewise.  Lose setting TREE_VIA_* on TREE_LISTs.
450152284Sobrien	(lookup_fnfields): Likewise.
450252284Sobrien	* tree.c (propagate_binfo_offsets): Don't call unshare_base_binfos.
450352284Sobrien	(unshare_base_binfos): Don't call propagate_binfo_offsets.
450452284Sobrien	(layout_basetypes): Call propagate_binfo_offsets instead of
450552284Sobrien	unshare_base_binfos.
450652284Sobrien	* decl.c (xref_basetypes): Call unshare_base_binfos.
450752284Sobrien	* pt.c (instantiate_class_template): Likewise.
450852284Sobrien	* tree.c (reverse_path): Remove 'copy' parm; always make a
450952284Sobrien	temporary copy.
451052284Sobrien	* class.c (build_vbase_path): Just call it.
451152284Sobrien	* search.c (compute_access): Likewise.  Don't re-reverse.
451252284Sobrien
451352284Sobrien1998-08-27  Mark Mitchell  <mark@markmitchell.com>
451452284Sobrien
451552284Sobrien	* class.c (build_vbase_path): Use reverse_path.
451652284Sobrien	(finish_base_struct): Move warnings for inaccessible bases to
451752284Sobrien	layout_basetypes.
451852284Sobrien	(modify_one_vtable): Remove check of TREE_USED (binfo).
451952284Sobrien	(fixup_vtable_deltas1): Likewise.
452052284Sobrien	* cp-tree.h (BINFO_INHERITANCE_CHAIN): Document here.
452152284Sobrien	(xref_tag): Remove binfos parameter.
452252284Sobrien	(make_binfo): Remove chain parameter.
452352284Sobrien	(reverse_path): Add copy parameter.
452452284Sobrien	* decl.c (init_decl_processing): Change calls to xref_tag.
452552284Sobrien	(xref_tag): Remove binfos parameter.
452652284Sobrien	(xref_basetypes): Change calls to make_binfo.
452752284Sobrien	* decl2.c (grok_x_components): Change calls to xref_tag.
452852284Sobrien	(handle_class_head): Likewise.
452952284Sobrien	* friend.c (do_friend): Likewise.
453052284Sobrien	* lex.c (make_lang_type): Change calls to make_binfo.
453152284Sobrien	* parse.y (structsp): Change calls to xref_tag.
453252284Sobrien	(named_complex_class_head_sans_basetype): Likewise.
453352284Sobrien	(named_class_head): Likewise.
453452284Sobrien	* rtti.c (init_rtti_processing): Likewise.
453552284Sobrien	* search.c (compute_access): Change calls to reverse_path.
453652284Sobrien	(dfs_get_vbase_types): Change calls to make_binfo.
453752284Sobrien	(get_vbase_types): Remove dead code.
453852284Sobrien	* tree.c (unshare_base_binfos): Change calls to make_binfo.
453952284Sobrien	(layout_basetypes): Warn here about inaccessible bases.
454052284Sobrien	(make_binfo): Remove chain parameter.
454152284Sobrien	(reverse_path): Add copy parameter.
454252284Sobrien
454352284Sobrien1998-08-27  Jason Merrill  <jason@yorick.cygnus.com>
454452284Sobrien
454552284Sobrien	* class.c: #if 0 complete_type_p.
454652284Sobrien	* init.c (build_java_class_ref, build_new_1): Remove unused locals.
454752284Sobrien	* method.c (process_overload_item): Likewise.
454852284Sobrien	* typeck.c (comp_target_types): Likewise.
454952284Sobrien
455052284Sobrien	Stop sharing binfos for indirect virtual bases.
455152284Sobrien	* tree.c (propagate_binfo_offsets): Unshare vbases, too.
455252284Sobrien	(layout_basetypes): Likewise.
455352284Sobrien	(unshare_base_binfos): Copy vbases, too.
455452284Sobrien	* cp-tree.h (BINFO_VIA_PUBLIC, BINFO_BASEINIT_MARKED,
455552284Sobrien	BINFO_VBASE_INIT_MARKED): Remove obsolete macros.
455652284Sobrien	(BINFO_PUSHDECLS_MARKED, SET_BINFO_PUSHDECLS_MARKED,
455752284Sobrien	CLEAR_BINFO_PUSHDECLS_MARKED): New macros.
455852284Sobrien	* search.c (lookup_field, lookup_fnfields, lookup_member): Remove
455952284Sobrien	reference to BINFO_VIA_PUBLIC.
456052284Sobrien	(marked_pushdecls_p, unmarked_pushdecls_p): New fns.
456152284Sobrien	(push_class_decls): Use them.
456252284Sobrien	(dfs_pushdecls): Use SET_BINFO_PUSHDECLS_MARKED.
456352284Sobrien	(dfs_compress_decls): Use CLEAR_BINFO_PUSHDECLS_MARKED.
456452284Sobrien
456552284Sobrien1998-08-27  Mark Mitchell  <mark@markmitchell.com>
456652284Sobrien
456752284Sobrien	* decl.c (build_enumerator): Set DECL_CONTEXT for the
456852284Sobrien	CONST_DECLs.
456952284Sobrien
457052284Sobrien1998-08-26  Mark Mitchell  <mark@markmitchell.com>
457152284Sobrien
457252284Sobrien	* cp-tree.h (finish_enum): Change prototype.
457352284Sobrien	* decl.c (finish_enum): Use TYPE_VALUES, rather than taking a
457452284Sobrien	VALUES parameter.  Don't try to compute mins/maxs if
457552284Sobrien	processing_template_decl.
457652284Sobrien	* parse.y (structsp): Use new calling sequence for finish_enum.
457752284Sobrien	* pt.c (tsubst_enum): Likewise.  Take the new type as input.
457852284Sobrien	(lookup_template_class): Remove unused variables.  Tweak.
457952284Sobrien	Register enums on instantiation list before substituting
458052284Sobrien	enumeration constants.
458152284Sobrien	(tsubst_decl): Remove unused variables.
458252284Sobrien	(regenerate_decl_from_template): Likewise.
458352284Sobrien
458452284Sobrien	* decl.c (duplicate_decls): Don't obliterate the
458552284Sobrien	DECL_TEMPLATE_INFO for a template if we're not replacing it with
458652284Sobrien	anything.
458752284Sobrien
458852284Sobrien	* lex.c (do_identifier): Fix typo in comment.
458952284Sobrien
459052284SobrienWed Aug 26 10:54:51 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
459152284Sobrien
459252284Sobrien	* errfn.c: Remove stdarg.h/varargs.h.
459352284Sobrien	* tree.c: Likewise.
459452284Sobrien
459552284Sobrien1998-08-25  Brendan Kehoe  <brendan@cygnus.com>
459652284Sobrien
459752284Sobrien	* pt.c (tsubst_copy): Only do typename overloading on an
459852284Sobrien	IDENTIFIER_NODE that happens to look like a typename if it actually
459952284Sobrien	has a type for us to use.
460052284Sobrien
460150397Sobrien1998-08-25  Jason Merrill  <jason@yorick.cygnus.com>
460250397Sobrien
460352284Sobrien	* typeck.c (comp_cv_target_types): Split out...
460452284Sobrien	(comp_target_types): From here.  Don't allow cv-qual changes under
460552284Sobrien	a pointer if nptrs == 0.  Fix OFFSET_TYPE handling.
460652284Sobrien	(build_ptrmemfunc): Pass 1 to nptrs.
460752284Sobrien	* cvt.c (perform_qualification_conversions): Use comp_ptr_ttypes.
460852284Sobrien
460952284Sobrien1998-08-25  Mark Mitchell  <mark@markmitchell.com>
461052284Sobrien
461152284Sobrien	* search.c (dependent_base_p): Don't compare a binfo to
461252284Sobrien	current_class_type; use the TREE_TYPE of the binfo instead.
461352284Sobrien
461452284Sobrien	* cp-tree.h (CLASS_TYPE_P): Revise definition.
461552284Sobrien
461652284Sobrien1998-08-25  Jason Merrill  <jason@yorick.cygnus.com>
461752284Sobrien
461850397Sobrien	* decl.c (duplicate_decls): Don't complain about different
461950397Sobrien	exceptions from an internal decl even if pedantic.
462050397Sobrien
462152284Sobrien	* typeck.c (convert_for_assignment): Converting from pm of vbase
462252284Sobrien	to derived is an error, not a sorry.
462352284Sobrien
462452284Sobrien	* call.c (build_over_call): Use convert_pointer_to_real for 'this'.
462552284Sobrien	* class.c (fixed_type_or_null): Rename from
462652284Sobrien	resolves_to_fixed_type_p.  Return the dynamic type of the
462752284Sobrien	expression, if fixed, or null.
462852284Sobrien	(resolves_to_fixed_type_p): Use it.  Return 0 if the dynamic type
462952284Sobrien	does not match the static type.
463052284Sobrien	(build_vbase_path): Rename 'alias_this' to 'nonnull'.  Use
463152284Sobrien	resolves_to_fixed_type_p again.
463252284Sobrien
463352284Sobrien1998-08-24  Mark Mitchell  <mark@markmitchell.com>
463452284Sobrien
463552284Sobrien	* pt.c (tsubst_decl): Move special case code for dealing with
463652284Sobrien	tricky friend templates here from ...
463752284Sobrien	(regenerate_decl_from_template): Here.
463852284Sobrien
463952284Sobrien1998-08-24  Jason Merrill  <jason@yorick.cygnus.com>
464052284Sobrien
464152284Sobrien	* decl.c (start_decl): Remove redundant linkage check.
464252284Sobrien
464350397Sobrien1998-08-24  Gavin Romig-Koch  <gavin@cygnus.com>
464450397Sobrien
464550397Sobrien	* typeck.c (c_expand_return): Handle the case that valtype
464650397Sobrien	is wider than the functions return type.
464750397Sobrien
464852284Sobrien1998-08-24  Mark Mitchell  <mark@markmitchell.com>
464952284Sobrien
465052284Sobrien	* cp-tree.h (CLASS_TYPE_P): New macro.
465152284Sobrien	* decl.c (grokdeclarator): Use it instead of IS_AGGR_TYPE.
465252284Sobrien	* pt.c (process_template_parm): Undo previous change.
465352284Sobrien
465452284Sobrien1998-08-24  Benjamin Kosnik  <bkoz@cygnus.com>
465552284Sobrien
465652284Sobrien	* cp-tree.h: Declare.
465752284Sobrien	* pt.c (decl_template_parm_p): New function.
465852284Sobrien	* decl.c (pushdecl): Check decls for redeclaring template parms.
465952284Sobrien	(xref_tag): Make redeclaration an error, print decl.
466052284Sobrien	* decl2.c (grokfield): Check field_decls for redeclaration as well.
466152284Sobrien
466252284Sobrien1998-08-24  Jason Merrill  <jason@yorick.cygnus.com>
466352284Sobrien
466452284Sobrien	* parse.y (primary): Fix up the type of string constants.
466552284Sobrien
466652284Sobrien1998-08-24  Mark Mitchell  <mark@markmitchell.com>
466752284Sobrien
466852284Sobrien	* typeck.c (convert_for_initialization): Move check for odd uses
466952284Sobrien	of NULL to avoid duplicate warnings.
467052284Sobrien
467152284Sobrien1998-08-24  Jason Merrill  <jason@yorick.cygnus.com>
467252284Sobrien
467352284Sobrien	* tree.c (lvalue_type): Fix for arrays.
467452284Sobrien	* typeck.c (string_conv_p): New fn.
467552284Sobrien	(convert_for_assignment): Use it.
467652284Sobrien	(build_unary_op): Use lvalue_type.
467752284Sobrien	* call.c (standard_conversion, convert_like): Use string_conv_p.
467852284Sobrien	(add_function_candidate): Use lvalue_type.
467952284Sobrien	* cvt.c (convert_to_reference): Likewise.
468052284Sobrien	* decl2.c (lang_decode_option): Ignore -traditional.
468152284Sobrien	* decl.c (init_decl_processing): flag_writable_strings inhibits
468252284Sobrien	flag_const_strings.
468352284Sobrien
468452284Sobrien1998-08-24  Andrew MacLeod  <amacleod@cygnus.com>
468552284Sobrien
468652284Sobrien	* lang-options.h (lang_options): Add fconst-strings to the list
468752284Sobrien	of valid options.
468852284Sobrien	* decl2.c (lang_f_options, lang_decode_option): Likewise.
468952284Sobrien
469052284Sobrien1998-08-24  Nathan Sidwell  <nathan@acm.org>
469152284Sobrien
469252284Sobrien	* lex.c (real_yylex): Don't warn about long long constants if
469352284Sobrien	we're allowing long long.
469452284Sobrien
469550397Sobrien1998-08-24  Martin von L�wis  <loewis@informatik.hu-berlin.de>
469650397Sobrien
469752284Sobrien	* decl.c (pushdecl): Use IDENTIFIER_NAMESPACE_VALUE instead of
469852284Sobrien	accessing bindings directly.
469952284Sobrien
470050397Sobrien	* search.c (my_tree_cons): Reimplement.
470150397Sobrien
470252284Sobrien	* lang-specs.h: Remove __HONOR_STD.
470352284Sobrien	* inc/exception, inc/new, inc/new.h, inc/typeinfo: Likewise.
470452284Sobrien
470552284Sobrien1998-08-23  Mark Mitchell  <mark@markmitchell.com>
470652284Sobrien
470752284Sobrien	* decl.c (grokdeclarator): Complain about in-class initialization
470852284Sobrien	of aggregates and/or references.
470952284Sobrien	* pt.c (process_template_parm): Clear IS_AGGR_TYPE for
471052284Sobrien	TEMPLATE_TYPE_PARMs.
471152284Sobrien
471252284Sobrien	* decl2.c (grok_array_decl): Add comment.
471352284Sobrien	(mark_used): Don't instantiate an explicit instantiation.
471452284Sobrien	* friend.c (make_friend_class): Remove bogus comment.  Fix check
471552284Sobrien	for partial specializations.
471652284Sobrien	* pt.c (check_explicit_specialization): Don't
471752284Sobrien	SET_DECL_EXPLICIT_INSTANTIATION here.
471852284Sobrien	(mark_decl_instantiated): Or here.
471952284Sobrien	(do_decl_instantiation): Do it here, instead.  Add checks for
472052284Sobrien	duplicate explicit instantiations, etc.  Tidy.
472152284Sobrien	(do_type_instantiation): Likewise.
472252284Sobrien	(instantiate_decl): Improve comments.  Complain about explicit
472352284Sobrien	instantiations where no definition is available.
472452284Sobrien
472552284Sobrien	* cp-tree.h (ansi_null_node): Remove.
472652284Sobrien	* call.c (build_over_call): Warn about converting NULL to an
472752284Sobrien	arithmetic type.
472852284Sobrien	* cvt.c (build_expr_type_conversion): Likewise.  Use
472952284Sobrien	null_ptr_cst_p instead of expanding it inline.
473052284Sobrien	* decl.c (ansi_null_node): Remove.
473152284Sobrien	(init_decl_processing): Make null_node always have integral type.
473252284Sobrien	* except.c (build_throw): Warn about converting NULL to an
473352284Sobrien	arithmetic type.
473452284Sobrien	* lex.c (init_parse): Remove handling of ansi_null_node.
473552284Sobrien	* pt.c (type_unification_real): Don't convert NULL to void* type.
473652284Sobrien	* typeck.c (build_binary_op_nodefault): Fix NULL warnings.
473752284Sobrien	(convert_for_assignment): Warn about converting NULL to an
473852284Sobrien	arithmetic type.
473952284Sobrien	(convert_for_initialization): Likewise.
474052284Sobrien
474152284Sobrien1998-08-20  Jason Merrill  <jason@yorick.cygnus.com>
474252284Sobrien
474352284Sobrien	* tree.c (search_tree, no_linkage_helper, no_linkage_check): New fn.
474452284Sobrien	* pt.c (coerce_template_parms): Use no_linkage_check.
474552284Sobrien	* decl.c (grokvardecl): Likewise.
474652284Sobrien	(grokfndecl): Likewise.  Members of anonymous types have no linkage.
474752284Sobrien
474852284Sobrien	* method.c (process_overload_item): Remove useless code.
474952284Sobrien
475052284Sobrien1998-08-20  Per Bothner  <bothner@cygnus.com>
475152284Sobrien
475252284Sobrien	Handle new'ing of Java classes.
475352284Sobrien	* init.c (build_class_classref):  New function.
475452284Sobrien	(build_new_1):  If type is TYPE_FOR_JAVA:  Call _Jv_AllocObject;
475552284Sobrien	constructor does not return this;  don't need to exception-protect.
475652284Sobrien
475752284Sobrien	* pt.c (lookup_template_class):  Copy TYPE_FOR_JAVA flag.
475852284Sobrien	* decl2.c (acceptable_java_type):  Handle template-derived types.
475952284Sobrien
476052284Sobrien1998-08-20  Per Bothner  <bothner@cygnus.com>
476152284Sobrien
476252284Sobrien	* decl2.c (import_export_vtable):  Suppress vtables for Java classes.
476352284Sobrien
476452284Sobrien1998-08-20  Mark Mitchell  <mark@markmitchell.com>
476552284Sobrien
476652284Sobrien	* decl.c (duplicate_decls): Always merge the old and new patterns
476752284Sobrien	for templates, regardless of whether or not the new one has
476852284Sobrien	DECL_INITIAL.  Don't throw away specializations.  Merge
476952284Sobrien	DECL_SAVED_TREE.
477052284Sobrien	* pt.c (tsubst_decl): Use the right pattern when calculating the
477152284Sobrien	complete args for a new template instance.
477252284Sobrien	(do_decl_instantiation): Fix typo in comment.
477352284Sobrien	(regenerate_decl_from_template): Deal with tricky friend template
477452284Sobrien	case.
477552284Sobrien	(instantiate_decl): Likewise.
477652284Sobrien
477752284SobrienThu Aug 20 09:09:45 1998  Jeffrey A Law  (law@cygnus.com)
477852284Sobrien
477952284Sobrien	* init.c (build_builtin_delete_call): Add missing assemble_external
478052284Sobrien	call.
478152284Sobrien
478252284Sobrien1998-08-20  Jason Merrill  <jason@yorick.cygnus.com>
478352284Sobrien
478452284Sobrien	* parse.y (notype_unqualified_id): Also accept ~A<int>.
478552284Sobrien
478652284Sobrien1998-08-19  Mark Mitchell  <mark@markmitchell.com>
478752284Sobrien
478852284Sobrien	* typeck.c (build_binary_op_nodefault): Warn on use of NULL in
478952284Sobrien	arithmetic.
479052284Sobrien	* except.c (build_throw): Warn when NULL is thrown, even with
479152284Sobrien	-ansi.  Use ansi_null_node, rather than integer_zero_node, in the
479252284Sobrien	thrown expression.
479352284Sobrien
479452284Sobrien	* cp-tree.h (ansi_null_node): New variable.
479552284Sobrien	* decl.c (ansi_null_node): New variable.
479652284Sobrien	(init_decl_processing): Initialize its type.
479752284Sobrien	* lex.c (init_parse): Initialize its value.  Use ansi_null_node
479852284Sobrien	for null_node in non-ANSI mode.
479952284Sobrien	* typeck.c (build_binary_op_nodefault): Use ansi_null_node in
480052284Sobrien	place of null_node to avoid spurious errors.
480152284Sobrien
480252284Sobrien1998-08-17  Mark Mitchell  <mark@markmitchell.com>
480352284Sobrien
480452284Sobrien	* cp-tree.h (enter_scope_of): New function.
480552284Sobrien	* parse.y (complex_direct_notype_declarator): Use it.
480652284Sobrien	* semantics.c (enter_scope_of): New function.
480752284Sobrien
480850397Sobrien1998-08-17  Jason Merrill  <jason@yorick.cygnus.com>
480950397Sobrien
481052284Sobrien	* decl.c (grokparms): No, here.
481152284Sobrien
481252284Sobrien	* decl.c (grokdeclarator): Catch parm with pointer to array of
481352284Sobrien	unknown bound here...
481452284Sobrien	* method.c (process_overload_item): ...not here.
481552284Sobrien
481652284Sobrien	* gxxint.texi: Remove obsolete documentation of overloading code.
481752284Sobrien
481850397Sobrien	* decl.c (finish_enum): Also set TYPE_SIZE_UNIT.
481950397Sobrien	* class.c (finish_struct_bits): Likewise.
482050397Sobrien
482152284Sobrien	* tree.c (lvalue_type): Fix for arrays.
482252284Sobrien	* typeck.c (build_unary_op): Use lvalue_type.
482352284Sobrien	* call.c (add_function_candidate): Likewise.
482452284Sobrien	* cvt.c (convert_to_reference): Likewise.
482550397Sobrien
482652284Sobrien	* decl2.c (lang_decode_option): Ignore -traditional.
482752284Sobrien
482852284Sobrien	* init.c (build_offset_ref): Don't mess with error_mark_node.
482952284Sobrien	* lex.c (do_scoped_id): Use cp_error.
483052284Sobrien
483152284Sobrien	* rtti.c (get_tinfo_fn): Don't mess with the context for now.
483252284Sobrien
483352284Sobrien1998-08-17  Benjamin Kosnik  <bkoz@loony.cygnus.com>
483452284Sobrien
483552284Sobrien	* decl.c (grokdeclarator): Allow anonymous types to be cv-qualified.
483652284Sobrien
483752284SobrienMon Aug 17 10:40:18 1998  Jeffrey A Law  (law@cygnus.com)
483852284Sobrien
483952284Sobrien	* cp-tree.h (set_identifier_local_value): Provide prototype.
484052284Sobrien
484152284Sobrien	* decl2.c (do_namespace_alias): Remove unused variables `binding'
484252284Sobrien	and `old'.
484352284Sobrien
484452284SobrienFri Aug 14 16:42:27 1998  Nick Clifton  <nickc@cygnus.com>
484552284Sobrien
484652284Sobrien	* Makefile.in: Rename BBISON to BISON so that it can be properly
484752284Sobrien	inherited from the parent makefile.
484852284Sobrien
484952284Sobrien1998-08-13  Jason Merrill  <jason@yorick.cygnus.com>
485052284Sobrien
485152284Sobrien	* lang-options.h: Add -finit-priority.
485252284Sobrien	* decl2.c: Likewise.  Check flag_init_priority instead of
485352284Sobrien	USE_INIT_PRIORITY.
485452284Sobrien
485552284Sobrien	* decl2.c (setup_initp): New fn.
485652284Sobrien	(start_objects, finish_objects, do_ctors): Handle init_priority.
485752284Sobrien	(do_dtors, finish_file): Likewise.
485852284Sobrien
485952284Sobrien1998-08-13  Jason Merrill  <jason@yorick.cygnus.com>
486052284Sobrien
486152284Sobrien	* pt.c (tsubst_copy): Hush warning.
486252284Sobrien
486352284Sobrien	* rtti.c (get_tinfo_fn): Also set DECL_IGNORED_P.
486452284Sobrien
486552284Sobrien1998-08-12  Mark Mitchell  <mark@markmitchell.com>
486652284Sobrien
486752284Sobrien	* pt.c (print_template_context): Don't abort when instantiating a
486852284Sobrien	synthesized method.
486952284Sobrien
487052284Sobrien	* decl.c (grokdeclarator): Issue errors on namespace qualified
487152284Sobrien	declarators in parameter lists or in class scope.
487252284Sobrien
487352284Sobrien1998-08-09  Mark Mitchell  <mark@markmitchell.com>
487452284Sobrien
487550397Sobrien	* pt.c (check_explicit_specialization): Don't abort on bogus
487650397Sobrien	explicit instantiations.
487750397Sobrien
487852284Sobrien1998-08-07  Mark Mitchell  <mark@markmitchell.com>
487950397Sobrien
488052284Sobrien	* typeck.c (require_complete_type): Use complete_type_or_else.
488152284Sobrien	(complete_type_or_else): Always return NULL_TREE on failure, as
488252284Sobrien	documented.
488350397Sobrien
488452284Sobrien	* pt.c (tsubst_aggr_type): Prototype.
488552284Sobrien	(tsubst_decl): New function, split out from tsubst.  Set
488652284Sobrien	input_filename and lineno as appropriate.
488752284Sobrien	(pop_tinst_level): Restore the file and line number saved in
488852284Sobrien	push_tinst_level.
488952284Sobrien	(instantiate_class_template): Set input_filename and lineno as
489052284Sobrien	appropriate.
489152284Sobrien	(tsubst): Move _DECL processing to tsubst_decl.  Make sure the
489252284Sobrien	context for a TYPENAME_TYPE is complete.
489350397Sobrien
489452284Sobrien	* decl2.c (grokbitfield): Issue errors on bitfields declared with
489552284Sobrien	function type.
489652284Sobrien	(do_dtors): As in do_ctors, pretend to be a member of the same
489752284Sobrien	class as a static data member while generating a call to its
489852284Sobrien	destructor.
489950397Sobrien
490052284Sobrien	* cvt.c (cp_convert_to_pointer): Handle NULL pointer
490152284Sobrien	conversions, even in complex virtual base class hierarchies.
490252284Sobrien
490352284Sobrien1998-08-06  Mark Mitchell  <mark@markmitchell.com>
490452284Sobrien
490552284Sobrien	* cp-tree.h (ENUM_TEMPLATE_INFO): New macro.
490652284Sobrien	(TYPE_TEMPLATE_INFO): Likewise.
490752284Sobrien	(SET_TYPE_TEMPLATE_INFO): Likewise.
490852284Sobrien	(ENUM_TI_TEMPLATE): Likewise.
490952284Sobrien	(ENUM_TI_ARGS): Likewise.
491052284Sobrien	(lookup_nested_type_by_name): Remove.
491152284Sobrien	* decl.c (maybe_process_template_type_declaration): Handle enums.
491252284Sobrien	(start_enum): Don't check for primary-template enum declarations
491352284Sobrien	here.
491452284Sobrien	(finish_enum): Clean up, document.  Make sure template enum
491552284Sobrien	constants get the correct type.
491652284Sobrien	(build_enumerator): Copy initializers for template enumerations,
491752284Sobrien	too.
491852284Sobrien	(grok_enum_decls): Document.
491952284Sobrien	* lex.c (do_identifier): Document use of LOOKUP_EXPR a bit
492052284Sobrien	better.  Build LOOKUP_EXPRs for local variables, even if they are
492152284Sobrien	TREE_PERMANENT.
492252284Sobrien	* pt.c (tsubst_enum): Remove field_chain parameter.
492352284Sobrien	(template_class_depth): Include the depth of surrounding function
492452284Sobrien	contexts.
492552284Sobrien	(push_template_decl): Check for primary-template enum declarations
492652284Sobrien	here.  Deal with enumeration templates.
492752284Sobrien	(lookup_template_class): Likewise.
492852284Sobrien	(for_each_template_parm): Likewise.
492952284Sobrien	(instantiate_class_template): Don't call tsubst_enum directly,
493052284Sobrien	call tsubst instead, to instantiate enums.  Deal with all
493152284Sobrien	field_chain issues here, not in tsubst_enum.
493252284Sobrien	(lookup_nested_type_by_name): Remove.
493352284Sobrien	(tsubst_aggr_type): Revise handling of enumeration types.
493452284Sobrien	(tsubst): Likewise.
493552284Sobrien	(tsubst_copy): Likewise.
493652284Sobrien	(tsubst_expr): Call tsubst, not tsubst_enum for TAG_DEFNs.
493752284Sobrien
493852284Sobrien1998-08-04  Mark Mitchell  <mark@markmitchell.com>
493952284Sobrien
494052284Sobrien	* decl.c (pushtag): Don't mangle the name of a TYPE_DECL if it
494152284Sobrien	uses template parameters.
494252284Sobrien	* method.c (build_template_parm_names): Use the full set of
494352284Sobrien	template arguments for tsubst'ing.
494452284Sobrien	(build_overload_identifier): Pass the full set of template
494552284Sobrien	arguments to build_template_parm_names, not just the
494652284Sobrien	innermost_args.
494752284Sobrien	* pt.c (TMPL_ARGS_DEPTH): Define using
494852284Sobrien	TMPL_ARGS_HAVE_MULTIPLE_LEVELS, for clarity.
494952284Sobrien	(NUM_TMPL_ARGS): New macro.
495052284Sobrien	(add_outermost_template_args): Deal with the case where the outer
495152284Sobrien	args will be completely discarded.
495252284Sobrien	(coerce_template_parms): Use the full set of template arguments
495352284Sobrien	for tsubst'ing.  Simplify.  Add some asserts.  Improve
495452284Sobrien	error messages.
495552284Sobrien	(lookup_template_class): Pass the full set of template arguments
495652284Sobrien	to coerce_template_parms.
495752284Sobrien	(tsubst): Add assertion.
495852284Sobrien	(do_type_instantiation): Don't instantiate member template
495952284Sobrien	classes.
496052284Sobrien
496152284Sobrien	* init.c (build_offset_ref): Deal with a TEMPLATE_ID_EXPR whose
496252284Sobrien	name is a LOOKUP_EXPR, rather than an IDENTIFIER_NODE.
496352284Sobrien
496452284Sobrien1998-08-03  Jason Merrill  <jason@yorick.cygnus.com>
496552284Sobrien
496652284Sobrien	* method.c (set_mangled_name_for_decl): Change return type to void.
496752284Sobrien
496852284Sobrien	* decl.c (lookup_name_real): A namespace-level decl takes priority
496952284Sobrien	over implicit typename.  Avoid doing the same lookup twice.
497052284Sobrien
497152284Sobrien	* search.c (dependent_base_p): New fn.
497252284Sobrien	(dfs_pushdecls, dfs_compress_decls): Use it.
497352284Sobrien
497452284Sobrien	* typeck.c (get_member_function_from_ptrfunc): Don't try to handle
497552284Sobrien	virtual functions if the type doesn't have any.
497652284Sobrien
497752284Sobrien1998-08-03  Mark Mitchell  <mark@markmitchell.com>
497852284Sobrien
497952284Sobrien	* decl2.c (grokfield): Don't mangle the name of a TYPE_DECL if it
498052284Sobrien	uses template parameters.
498152284Sobrien
498252284Sobrien1998-08-02  Mark Mitchell  <mark@markmitchell.com>
498352284Sobrien
498452284Sobrien	* cp-tree.def (LOOKUP_EXPR): Document.  Remove second argument.
498552284Sobrien	* cp-tree.h (DECL_TI_TEMPLATE): Improve documentation.
498652284Sobrien	* lex.c (do_identifier): Don't use a second argument, or a type,
498752284Sobrien	when building LOOKUP_EXPRs.
498852284Sobrien	(do_identifier): Likewise.
498952284Sobrien	(do_scoped_id): Likewise.
499052284Sobrien	* method.c (hack_identifier): Improve error message.
499152284Sobrien	* pt.c (lookup_template_function): Don't needlessly call
499252284Sobrien	copy_to_permanent or build_min.
499352284Sobrien	(tsubst_copy): Remove #if 0'd code.  tsubst into LOOKUP_EXPRs if
499452284Sobrien	necessary.
499552284Sobrien	(do_decl_instantiation): Improve error message.
499652284Sobrien	* tree.c (mapcar, case LOOKUP_EXPR): Don't be sorry; make a copy.
499752284Sobrien	(build_min): Copy the type to the permanent obstack, too.
499852284Sobrien
499952284Sobrien1998-08-01  Jason Merrill  <jason@yorick.cygnus.com>
500052284Sobrien
500152284Sobrien	* init.c (init_init_processing): Remove BI* handling.
500252284Sobrien	(build_builtin_call): Remove.
500352284Sobrien	(build_builtin_delete_call): New fn.
500452284Sobrien	(build_delete): Use it.
500552284Sobrien
500652284Sobrien1998-07-31  Mark Mitchell  <mark@markmitchell.com>
500752284Sobrien
500852284Sobrien	* cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): New macro.
500952284Sobrien	(maybe_check_template_type): New function.
501052284Sobrien	* decl.c (maybe_process_template_type_declaration): New function,
501152284Sobrien	split out from pushtag  Call maybe_check_template_type.
501252284Sobrien	(pushtag): Use it.  Use PROCESSING_REAL_TEMPLATE_DECL_P.
501352284Sobrien	(xref_tag): Use PROCESSING_REAL_TEMPLATE_DECL_P.
501452284Sobrien	* friend.c (do_friend): Use PROCESSING_REAL_TEMPLATE_DECL_P.
501552284Sobrien	* pt.c (template_class_depth_real): Generalization of ...
501652284Sobrien	(template_class_depth): Use it.
501752284Sobrien	(register_specialization): Use duplicate_decls for duplicate
501852284Sobrien	declarations of specializations.
501952284Sobrien	(maybe_check_template_type): New function.
502052284Sobrien	(push_template_decl_real): Fix comment.
502152284Sobrien	(convert_nontype_argument): Likewise.
502252284Sobrien	(lookup_template_class): Likewise.  Avoid an infinite loop on
502352284Sobrien	erroneous code.
502452284Sobrien	(tsubst_friend_function): Fix comment.
502552284Sobrien	(tsubst, case FUNCTION_DECL): Deal with a DECL_TI_TEMPLATE that is
502652284Sobrien	an IDENTIFIER_NODE.
502752284Sobrien	* semantics.c (begin_function_definition): Use
502852284Sobrien	reset_specialization to note that template headers don't apply
502952284Sobrien	directly to declarations after the opening curly for a function.
503052284Sobrien
503150397Sobrien1998-07-29  Jason Merrill  <jason@yorick.cygnus.com>
503250397Sobrien
503350397Sobrien	* decl.c (push_overloaded_decl): Use current_namespace instead of
503450397Sobrien	DECL_CONTEXT (decl) to determine where we go.
503550397Sobrien
503650397Sobrien	* decl.c (lookup_name_real): Fix typo.
503750397Sobrien
503852284Sobrien1998-07-28  Mark Mitchell  <mark@markmitchell.com>
503952284Sobrien
504052284Sobrien	* friend.c (is_friend): Be lenient with member functions to deal
504152284Sobrien	with nested friends.
504252284Sobrien
504350397Sobrien1998-07-28  Jason Merrill  <jason@yorick.cygnus.com>
504450397Sobrien
504550397Sobrien	* class.c (finish_struct_1): Convert integer_zero_node to
504652284Sobrien	ssizetype before passing it to set_rtti_entry.
504750397Sobrien	* typeck2.c (initializer_constant_valid_p): Allow conversion of 0
504850397Sobrien	of any size to a pointer.
504950397Sobrien
505052284Sobrien1998-07-27  Mark Mitchell  <mark@markmitchell.com>
505152284Sobrien
505252284Sobrien	* cp-tree.h (TI_USES_TEMPLATE_PARMS): Remove.
505352284Sobrien	(build_template_decl_overload): Remove.
505452284Sobrien	(set_mangled_name_for_decl): New function.
505552284Sobrien	(innermost_args): Remove is_spec parameter.
505652284Sobrien	(most_specialized, most_specialized_class): Remove declarations.
505752284Sobrien	(lookup_template_class): Add entering_scope parameter.
505852284Sobrien	(maybe_process_partial_specialization): New function.
505952284Sobrien	(finish_template_decl): Likewise.
506052284Sobrien	(finish_template_type): Likewise.
506152284Sobrien	* class.c (finish_struct): Clean up processing of member template
506252284Sobrien	specializations.
506352284Sobrien	* decl.c (pushtag): Fix formatting.
506452284Sobrien	(lookup_tag): Improve handling of pseudo-global levels.
506552284Sobrien	(make_typename_type): Adjust call to lookup_template_class.
506652284Sobrien	(shadow_tag): Use maybe_process_partial_specialization.
506752284Sobrien	(xref_tag): Improve handling of member friends.
506852284Sobrien	(start_function): Call push_nested_class before
506952284Sobrien	push_template_decl.  Don't call push_template_decl for
507052284Sobrien	specializations.
507152284Sobrien	* decl2.c (grok_x_components): Don't call xref_tag for
507252284Sobrien	template instantiations.  Handle UNION_TYPEs like RECORD_TYPEs.
507352284Sobrien	(grokclassfn): Use set_mangled_name_for_decl.
507452284Sobrien	(arg_assoc_class): Adjust call to innermost_args.
507552284Sobrien	(mark_used): Don't call instantiate_decl for a TEMPLATE_DECL.
507652284Sobrien	* error.c (dump_function_name): Improve printing of template
507752284Sobrien	function names.
507852284Sobrien	* friend.c (is_friend): Don't compare types of decls to determine
507952284Sobrien	friendship, unless flag_guiding_decls.
508052284Sobrien	(make_friend_class): Partial specializations cannot be friends.
508152284Sobrien	(do_friend): Use set_mangled_name_for_decl.  Call
508252284Sobrien	push_template_decl_real instead of push_template_decl.
508352284Sobrien	* method.c (build_decl_overload_real): Remove prototype.  Give it
508452284Sobrien	external linkage.
508552284Sobrien	(build_overload_identififer): Adjust call to innermost_args.
508652284Sobrien	(build_template_decl_overload): Remove.
508752284Sobrien	(set_mangled_name_for_decl): New function.
508852284Sobrien	* parse.y (.finish_template_type): New non-terminal.
508952284Sobrien	(template_def): Use finish_template_decl.  Use template_extdef
509052284Sobrien	instead of extdef.
509152284Sobrien	(template_extdef, template_datadef): New non-terminals, containing
509252284Sobrien	only those rules for things which can be templates.
509352284Sobrien	(datadef): Tidy.
509452284Sobrien	(template_type, self_template_type): Use .finish_template_type.
509552284Sobrien	(named_class_head): Use maybe_process_partial_specialization.
509652284Sobrien	* pt.c (mangle_class_name_for_template): Remove context parameter.
509752284Sobrien	(get_class_bindings): Remove outer_args parameter.
509852284Sobrien	(complete_template_args): Remove.
509952284Sobrien	(add_outermost_template_args): New function.
510052284Sobrien	(register_specialization): Return the specialization.
510152284Sobrien	(unregister_specialization): New function.
510252284Sobrien	(tsubst_template_parms): Likewise.
510352284Sobrien	(most_specialized, most_specialized_class): Prototype here as
510452284Sobrien	static.
510552284Sobrien	(original_template): Rename to most_general_template.
510652284Sobrien	(tsubst_template_parms): New function.
510752284Sobrien	(set_mangled_name_for_template_decl): Likewise.
510852284Sobrien	(TMPL_ARGS_DEPTH): New macro.
510952284Sobrien	(TMPL_ARGS_HAVE_MULTIPLE_LEVELS): Adjust.
511052284Sobrien	(TMPL_ARGS_LEVEL): New macro.
511152284Sobrien	(SET_TMPL_ARGS_LEVEL): Likewise.
511252284Sobrien	(TMPL_ARG): Likewise.
511352284Sobrien	(SET_TMPL_ARG): Likewise.
511452284Sobrien	(TMPL_ARGS_DEPTH): Likewise.
511552284Sobrien	(finish_member_template_decl): Use finish_template_decl.
511652284Sobrien	(maybe_process_partial_specialization): New function, split out
511752284Sobrien	from tsubst.
511852284Sobrien	(inline_needs_template_parms): Use TMPL_PARMS_DEPTH.
511952284Sobrien	(maybe_begin_member_template_processing): Use new macros.
512052284Sobrien	(is_member_template): Likewise.
512152284Sobrien	(is_member_template_class): Likewise.
512252284Sobrien	(add_to_template_args): Likewise.  Deal with multiple levels of
512352284Sobrien	args.
512452284Sobrien	(maybe_process_partial_specialization): New function.
512552284Sobrien	(retrieve_specialization): Add consistency check.
512652284Sobrien	(determine_specialization): Return full argument list.
512752284Sobrien	(check_explicit_specialization): Tweak friend handling.  Use full
512852284Sobrien	argument lists.  Simplify.
512952284Sobrien	(current_template_args): Use new macros.
513052284Sobrien	(push_template_decl_real): Change ill-named mainargs to specargs.
513152284Sobrien	Check that a partial specialization actually specializes at least
513252284Sobrien	one parameter.   Improve friend handling.  Modify for full
513352284Sobrien	template arguments.
513452284Sobrien	(classtype_mangled_name): Don't mangle the names of
513552284Sobrien	specializations.
513652284Sobrien	(lookup_template_class): Add entering_scope parameter.  Use it to
513752284Sobrien	avoid finding a template type when an instantiation is required.
513852284Sobrien	Simplify.  Use full template arguments.
513952284Sobrien	(tsubst_friend_function): Use unregister_specialization.  Use new
514052284Sobrien	macros.  Use full template arguments.
514152284Sobrien	(tsubst_friend_class): Substitute, using tsubst_template_parms,
514252284Sobrien	into the template parameters before passing them to
514352284Sobrien	redeclare_class_template.
514452284Sobrien	(instantiate_class_template): Simplify.  Use full template
514552284Sobrien	arguments.  Adjust calls to get_class_bindings.  Use
514652284Sobrien	SET_IDENTIFIER_TYPE_VALUE where needed.  Improve friend handling.
514752284Sobrien	(innermost_args): Use new macros.
514852284Sobrien	(tsubst_aggr_type): New function, split out from tsubst.
514952284Sobrien	(tsubst): Use tsubst_aggr_type, tsubst_template_parms, new calling
515052284Sobrien	conventions for lookup_template_class.  Refine handling of partial
515152284Sobrien	instantiations.   Remove calls to complete_template_args.
515252284Sobrien	Simplify.  Add consistency checks.  Use set_mangled_name_for_decl
515352284Sobrien	and set_mangled_name_for_template_decl.
515452284Sobrien	(tsubst_copy): Use tsubst_aggr_type.
515552284Sobrien	(instantiate_template): Use full template arguments.
515652284Sobrien	(more_specialized): Improve formatting.
515752284Sobrien	(more_specialized_class): Adjust calls to get_class_bindings.
515852284Sobrien	(get_bindings_real): Don't call complete_template_args.
515952284Sobrien	(most_specialized): Don't overwrite input; create a new list.
516052284Sobrien	(most_specialized_class): Use most_general_template.
516152284Sobrien	(regenerate_decl_from_template): Use unregister_specialization.
516252284Sobrien	Use full template arguments.
516352284Sobrien	(instantiate_decl): Use full template arguments.
516452284Sobrien	(set_mangled_name_for_template_decl): New function.
516552284Sobrien	* semantics.c (begin_class_definition): Use
516652284Sobrien	maybe_process_partial_specialization.
516752284Sobrien	(finish_member_class_template): New function.
516852284Sobrien	(finish_template_decl): Likewise.
516952284Sobrien	(finish_template_type): Likewise.
517052284Sobrien	(typeck.c): Don't crash after issuing a compiler_error.
517152284Sobrien	* Makefile.in (CONFLICTS): Adjust; we removed a s/r conflict.
517252284Sobrien
517350397Sobrien1998-07-27  Jason Merrill  <jason@yorick.cygnus.com>
517450397Sobrien
517550397Sobrien	* typeck2.c (build_functional_cast): Handle default-initialization.
517650397Sobrien
517750397Sobrien	* call.c (build_over_call): Pass 1 to popclass.
517850397Sobrien
517950397Sobrien	* parse.y (direct_notype_declarator): Add precedence declaration
518050397Sobrien	to notype_unqualified_id case.
518150397Sobrien	* Makefile.in (EXPECT): Adjust.
518250397Sobrien
518350397Sobrien	* tree.c (ovl_member): Fix for single function in OVL.
518450397Sobrien
518552284Sobrien1998-07-27  Dave Brolley  <brolley@cygnus.com>
518652284Sobrien
518752284Sobrien	* c-lex.c (yylex): Fix boundary conditions in character literal and
518852284Sobrien	string literal loops.
518952284Sobrien
519050397Sobrien1998-07-24  Jason Merrill  <jason@yorick.cygnus.com>
519150397Sobrien
519250397Sobrien	* decl.c (lookup_name_real): OK, do return the from_obj value
519350397Sobrien	unless got_object depends on template parms.
519450397Sobrien
519550397Sobrien	* parse.y (nested_name_specifier_1): Pull out the TYPE_MAIN_VARIANT.
519650397Sobrien
519750397Sobrien	* pt.c (coerce_template_parms): Also complain about local enums.
519850397Sobrien
519950397Sobrien	* cp-tree.h: Add prototype for set_identifier_local_value.
520050397Sobrien	* decl.c (set_identifier_local_value_with_scope): Make static,
520150397Sobrien	prototype.
520250397Sobrien	* search.c (covariant_return_p): Likewise.
520350397Sobrien	* except.c (build_terminate_handler, alloc_eh_object): Likewise.
520450397Sobrien
520550397Sobrien	* call.c (build_method_call): Only pull out the type of a destructor
520650397Sobrien	if it's a template type parm.
520750397Sobrien	* decl.c (lookup_name_real): Never return the from_obj value.
520850397Sobrien
520950397Sobrien1998-07-23  Jason Merrill  <jason@yorick.cygnus.com>
521050397Sobrien
521150397Sobrien	* except.c (process_start_catch_block_old): Call start_decl_1 for
521250397Sobrien	catch parm.
521350397Sobrien	* decl.c (start_decl_1): Avoid duplicate error.
521450397Sobrien
521550397Sobrien	* init.c (expand_default_init): Only perform the initialization if
521650397Sobrien	it will do something.
521750397Sobrien
521850397Sobrien1998-07-23  H.J. Lu  (hjl@gnu.org)
521950397Sobrien
522050397Sobrien	* parse.y (base_class): Check for invalid base class.
522150397Sobrien
522250397Sobrien1998-07-23  Jason Merrill  <jason@yorick.cygnus.com>
522350397Sobrien
522450397Sobrien	* decl2.c (import_export_template): Fold in...
522550397Sobrien	(import_export_class): ...to here.  Handle dllimport/export.
522650397Sobrien
522750397Sobrien	* class.c (build_vtable): Pass at_eof to import_export_vtable.
522850397Sobrien	(prepare_fresh_vtable): Likewise.
522950397Sobrien	* decl2.c (import_export_class): Split out...
523050397Sobrien	(finish_prevtable_vardecl): From here.
523150397Sobrien	* class.c (finish_struct_1): Call import_export_class if at_eof.
523250397Sobrien
523352284Sobrien	* decl.c (start_function): #if 0 mysterious code I wrote and have
523450397Sobrien	forgotten why.
523550397Sobrien	* rtti.c (get_tinfo_fn): If this is for a class type, set
523650397Sobrien	DECL_CONTEXT.
523750397Sobrien
523850397Sobrien1998-07-22  Jason Merrill  <jason@yorick.cygnus.com>
523950397Sobrien
524050397Sobrien	* inc/exception: Change terminate and unexpected to ().
524150397Sobrien
524250397Sobrien	* parse.y (named_class_head_sans_basetype_defn): A
524350397Sobrien	named_class_head_sans_basetype followed by '{' or ':' is a defn.
524450397Sobrien
524550397Sobrien1998-07-21  Jason Merrill  <jason@yorick.cygnus.com>
524650397Sobrien
524750397Sobrien	* tree.c (canonical_type_variant): New fn to handle arrays.
524850397Sobrien	* cp-tree.h (CANONICAL_TYPE_VARIANT): Remove.
524950397Sobrien	* pt.c (unify, default case): Also fold arg.  Fix array bounds case.
525050397Sobrien	* method.c (process_overload_item): Use build_overload_value for
525150397Sobrien	arrays.
525250397Sobrien
525352284Sobrien1998-07-20  Dave Brolley  <brolley@cygnus.com>
525452284Sobrien
525552284Sobrien	* lex.c (mbchar.h): #include it.
525652284Sobrien	(GET_ENVIRONMENT): New macro.
525752284Sobrien	(init_parse): Set character set based on LANG environment variable.
525852284Sobrien	(real_yylex): Handle multibyte characters in character literals.
525952284Sobrien	(real_yylex): Handle multibyte characters in string literals.
526052284Sobrien
526150397Sobrien1998-07-19  Jason Merrill  <jason@yorick.cygnus.com>
526250397Sobrien
526350397Sobrien	* lex.c (do_identifier): Look for class value even if we don't
526450397Sobrien	have a global value.  Do implicit declaration if parsing is 2.
526550397Sobrien	* semantics.c (finish_call_expr): Pass 2 if we're doing Koenig
526650397Sobrien	lookup.
526750397Sobrien
526850397Sobrien1998-07-19  Mark Mitchell  <mark@markmitchell.com>
526950397Sobrien
527050397Sobrien	* decl.c (pushtag): Revert previous change.
527150397Sobrien	* pt.c (lookup_template_class): Don't put out debugging
527250397Sobrien	information for types that use template parameters.
527350397Sobrien
527450397Sobrien	* decl.c (pushtag): Don't put out debugging information for
527550397Sobrien	compiler-generated typedefs.
527652284Sobrien
527750397Sobrien	* error.c (dump_type_real): Don't crash when presented with
527850397Sobrien	intQI_type_node or the like.
527918334Speter
528050397Sobrien	* semantics.c (finish_translation_unit): Fix spelling error in
528150397Sobrien	comment.
528218334Speter
528350397Sobrien1998-07-17  Jason Merrill  <jason@yorick.cygnus.com>
528418334Speter
528550397Sobrien	* decl.c (lookup_name_real): Pull out single function here.
528650397Sobrien	(select_decl): Not here.
528750397Sobrien	(unqualified_namespace_lookup): Use CP_DECL_CONTEXT.
528818334Speter
528950397Sobrien	* decl.c (qualify_lookup): Tweak again.
529018334Speter
529150397Sobrien	* pt.c (lookup_template_class): Don't mess with the context of the
529250397Sobrien	instantiation.
529350397Sobrien	* decl2.c (current_decl_namespace): Remove special handling for
529450397Sobrien	templates.
529518334Speter
529650397Sobrien	* pt.c (tsubst, case FUNCTION_DECL): Fix getting complete args for
529750397Sobrien	a member template specialization.
529818334Speter
529950397Sobrien	* tree.c (ovl_member): Use decls_match to compare functions.
530050397Sobrien	* decl.c (decls_match): Check the context of a function.
530118334Speter
530250397Sobrien	* parse.y (primary): Use notype_unqualified_id instead of IDENTIFIER
530350397Sobrien	in Koenig lookup support rules.
530450397Sobrien	* semantics.c (finish_call_expr): Handle the new cases.
530518334Speter
530650397Sobrien	* typeck.c (build_x_function_call): Handle overloaded methods.
530718334Speter
530850397Sobrien	* decl.c (grokvardecl): Don't call build_static_name for extern "C".
530918334Speter
531050397Sobrien1998-07-16  Mark Mitchell  <mark@markmitchell.com>
531118334Speter
531250397Sobrien	* semantics.c (finish_object_call_expr): Revert previous change.
531350397Sobrien	* call.c (build_new_method_call): Likewise.  Instead, convert
531450397Sobrien	TYPE_DECLs to IDENTIFIERs here, in the presence of templates.
531518334Speter
531650397Sobrien1998-07-16  Jason Merrill  <jason@yorick.cygnus.com>
531718334Speter
531850397Sobrien	* decl.c (qualify_lookup): Handle templates.
531918334Speter
532050397Sobrien	* decl2.c (do_using_directive): Don't pass ancestor.
532150397Sobrien	* decl.c (push_using_directive): Calculate ancestor.
532218334Speter
532350397Sobrien	* decl2.c (do_nonmember_using_decl): Allow for type shadowing.
532450397Sobrien	* decl.c (pushdecl): Move type shadowing handling from here...
532550397Sobrien	(duplicate_decls): ...to here.
532650397Sobrien	* decl.c (set_identifier_local_value_with_scope): New fn.
532750397Sobrien	(pushdecl): Use it.
532850397Sobrien	(set_identifier_local_value, lookup_type_current_level): New fns.
532950397Sobrien	* decl2.c (do_local_using_decl): Handle types and binding level
533050397Sobrien	stuff properly.
533118334Speter
533250397Sobrien	* init.c (build_offset_ref): Don't call mark_used on an OVERLOAD.
533350397Sobrien	* decl.c (select_decl): Extract a lone function from an OVERLOAD.
533450397Sobrien	(lookup_namespace_name): Likewise.
533550397Sobrien	* typeck.c (build_unary_op): Not here anymore.
533618334Speter
533750397Sobrien	* decl2.c (do_class_using_decl): Make sure we get an identifier.
533850397Sobrien	* class.c (handle_using_decl): Ignore TYPE_DECLs.
533918334Speter
534050397Sobrien	* decl.c (qualify_lookup): New fn.
534150397Sobrien	(lookup_name_real): Use it.
534218334Speter
534350397Sobrien1998-07-16  Martin v. Loewis  <loewis@informatik.hu-berlin.de>
534418334Speter
534550397Sobrien	* decl2.c (add_using_namespace): When directly using a namespace
534650397Sobrien	that was indirect before, promote it.
534718334Speter
534850397Sobrien	* cp-tree.h (LOOKUP_PREFER_TYPES, LOOKUP_PREFER_NAMESPACES,
534950397Sobrien	LOOKUP_PREFER_BOTH, LOOKUP_NAMESPACES_ONLY, LOOKUP_TYPES_ONLY,
535050397Sobrien	LOOKUP_QUALIFIERS_ONLY, LOOKUP_TEMPLATES_EXPECTED): New macros.
535150397Sobrien	* decl.c (select_decl): Replace two flag parameters by one.
535250397Sobrien	(unqualified_namespace_lookup): Likewise, pass flag.
535350397Sobrien	(lookup_flags): New function.
535450397Sobrien	(lookup_name_real): Compute flags, pass them.
535550397Sobrien	(lookup_namespace_name): Call with zero-flag.
535650397Sobrien	* decl2.c (ambiguous_decl): Add flag parameter, complain only
535750397Sobrien	according to flags.
535850397Sobrien	(lookup_using_namespace, qualified_lookup_using_namespace):
535950397Sobrien	Add flag parameter, pass them through.
536050397Sobrien	* lex.c (do_scoped_id): Call with zero-flag.
536118334Speter
536250397Sobrien1998-07-16  Jason Merrill  <jason@yorick.cygnus.com>
536318334Speter
536450397Sobrien	* typeck.c (convert_for_assignment): Use comptypes.
536518334Speter
536650397Sobrien1998-07-16  Mark Mitchell  <mark@markmitchell.com>
536718334Speter
536850397Sobrien	* semantics.c (finish_object_call_expr): Move test for the
536950397Sobrien	function called being a TYPE_DECL to ...
537050397Sobrien	* call.c (build_new_method_call): Here.
537118334Speter
537250397Sobrien1998-07-15  Jason Merrill  <jason@yorick.cygnus.com>
537318334Speter
537450397Sobrien	* decl2.c (arg_assoc_class): Also look at template arguments, if any.
537550397Sobrien	(arg_assoc): Handle error_mark_node and multiple levels of TREE_LIST.
537618334Speter
537750397Sobrien	* lex.c (looking_for_typename): Don't initialize.
537818334Speter
537950397Sobrien	* decl2.c (ambiguous_decl): Clarify error message.
538018334Speter
538150397Sobrien	* decl.c (push_using_directive): Iterate over namespaces used
538250397Sobrien	indirectly.
538318334Speter
538450397Sobrien1998-07-15  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
538518334Speter
538650397Sobrien	* decl2.c (add_using_namespace): Iterate over namespaces used
538750397Sobrien	indirectly.
538818334Speter
538950397Sobrien	* decl.c (lookup_name_real): Accept namespace aliases as locals.
539050397Sobrien	(cat_namespace_levels): Ignore aliases.
539150397Sobrien	(duplicate_decls): Ignore duplicate aliases.
539250397Sobrien	* decl2.c (do_namespace_alias): Process block level namespace
539352284Sobrien	aliases.  Store alias with pushdecl.  Remove odr errors.
539450397Sobrien	* parse.y (namespace_alias): New non-terminal.
539550397Sobrien	(extdef): Use it.
539618334Speter
539750397Sobrien1998-07-15  Jason Merrill  <jason@yorick.cygnus.com>
539818334Speter
539950397Sobrien	* decl2.c (arg_assoc_type): Handle METHOD_TYPE like FUNCTION_TYPE.
540050397Sobrien	Handle TEMPLATE_TYPE_PARM.
540150397Sobrien	(arg_assoc): Rewrite.
540218334Speter
540350397Sobrien	* pt.c (complete_template_args): Don't look at the context unless
540450397Sobrien	we have to.
540518334Speter
540650397Sobrien	* method.c (build_decl_overload_real): Fix namespace handling.
540718334Speter
540850397Sobrien	* typeck.c (build_unary_op): Extract a lone function from an
540950397Sobrien	OVERLOAD.
541018334Speter
541150397Sobrien	* call.c (build_scoped_method_call): Handle getting a namespace
541250397Sobrien	for basetype in a destructor call.
541350397Sobrien	(check_dtor_name): Handle enums.
541418334Speter
541550397Sobrien	* parse.y (using_directive): New nonterminal.
541650397Sobrien	(extdef, simple_stmt): Use it.
541718334Speter
541850397Sobrien1998-07-14  Martin von L�wis  <loewis@informatik.hu-berlin.de>
541918334Speter
542050397Sobrien	* decl2.c (add_function): Move error message ...
542150397Sobrien	(arg_assoc_namespace): ... from here.
542218334Speter
542350397Sobrien1998-07-14  Jason Merrill  <jason@yorick.cygnus.com>
542418334Speter
542550397Sobrien	* parse.y (namespace_qualifier): Fix multiple level handling.
542650397Sobrien	* decl2.c (namespace_ancestor): Use CP_DECL_CONTEXT.
542750397Sobrien	(arg_assoc): Don't skip the first argument of a function.
542818334Speter
542952284SobrienTue Jul 14 20:09:22 1998  Jeffrey A Law  (law@cygnus.com)
543052284Sobrien
543152284Sobrien	* search.c (my_tree_cons): Clean up.
543252284Sobrien
543352284Sobrien1998-07-14  Jason Merrill  <jason@yorick.cygnus.com>
543452284Sobrien
543550397Sobrien	* call.c (joust): Don't warn about "confusing" conversions to the
543650397Sobrien	same type.
543718334Speter
543850397Sobrien1998-07-14  Martin von L�wis  <loewis@informatik.hu-berlin.de>
543918334Speter
544050397Sobrien	* class.c (push_nested_class): Complain about namespaces.
544150397Sobrien	* decl.c (start_decl): Enter the object's namespace.
544250397Sobrien	(cp_finish_decl): Leave it.
544350397Sobrien	(grokdeclarator): Likewise.
544450397Sobrien	* decl2.c (check_decl_namespace): New function.
544550397Sobrien	(finish_file): Call it.
544650397Sobrien	* parse.y (complex_direct_notype_declarator): Set complexity
544750397Sobrien	of namespace-qualified ids to -1, enter the namespace.
544818334Speter
544950397Sobrien	* method.c (build_template_decl_overload): Expect _DECL as first
545052284Sobrien	parameter.  Put context temporarily into current_namespace.
545150397Sobrien	* pt.c (check_explicit_specialization): Change caller.
545250397Sobrien	(tsubst): Likewise.
545318334Speter
545450397Sobrien	* init.c (build_offset_ref): Call mark_used and
545550397Sobrien	convert_from_reference for namespace members.
545618334Speter
545752284SobrienMon Jul 13 23:25:28 1998  Martin von L�wis  <loewis@informatik.hu-berlin.de>
545818334Speter
545950397Sobrien	* search.c (my_tree_cons): The bitfield is at index 2.
546018334Speter
546150397SobrienMon Jul 13 17:21:01 1998  Nick Clifton  <nickc@cygnus.com>
546218334Speter
546350397Sobrien	* lang-options.h: Format changed to work with new --help support
546450397Sobrien	in gcc/toplev.c
546552284Sobrien
546650397Sobrien1998-07-12  Martin von L�wis  <loewis@informatik.hu-berlin.de>
546718334Speter
546850397Sobrien	* decl2.c (build_expr_from_tree): Change calls of do_identifier.
546950397Sobrien	Do Koenig lookup in CALL_EXPR.
547050397Sobrien	(arg_assoc): Handle error_mark.
547150397Sobrien	* lex.c (is_global): New function.
547250397Sobrien	(do_identifier): Expect arguments for Koenig lookup.
547350397Sobrien	* parse.y (primary): Add rules for calls of unqualified function calls.
547450397Sobrien	(do_id): Change call of do_identifier.
547550397Sobrien	* pt.c (finish_stmt_expr): Likewise.
547650397Sobrien	* semantics.c (finish_id_expr): Likewise.
547750397Sobrien	(finish_call_expr): Add integer parameter to indicate
547850397Sobrien	argument-dependent lookup.
547918334Speter
548050397Sobrien	* decl.c (struct binding_level): New field using_directives.
548150397Sobrien	(push_using_decl): Not sorry anymore.
548250397Sobrien	(push_using_directive): New function.
548350397Sobrien	(lookup_tag): Use CP_DECL_CONTEXT to iterate.
548450397Sobrien	(unqualified_namespace_lookup): New function, code from ...
548550397Sobrien	(lookup_name_real): ... here.
548650397Sobrien	* decl2.c (lookup_using_namespace): Pass using list instead of
548750397Sobrien	initial scope.
548850397Sobrien	(validate_nonmember_using_decl): New function.
548950397Sobrien	(do_nonmember_using_decl): New function.
549050397Sobrien	(do_toplevel_using_decl): Use them.
549150397Sobrien	(do_local_using_decl): New function.
549250397Sobrien	(do_using_directive): Support block-level directives.
549350397Sobrien	* parse.y (simple_stmt): Support using declarations and
549450397Sobrien	directives.
549550397Sobrien	(namespace_qualifier, namespace_using_decl): New non-terminals.
549618334Speter
549750397Sobrien	* xref.c (classname): New function.
549850397Sobrien	(GNU_xref_hier): Change class and base parameters to tree.
549950397Sobrien	* decl.c (xref_baseypes): Change caller.
550050397Sobrien	* friend.c (make_friend_class): Likewise.
550118334Speter
550252284Sobrien1998-07-12  Kriang Lerdsuwanakij  <lerdsuwa@scf-fs.usc.edu>
550318334Speter
550452284Sobrien	* typeck.c (comptypes, case TEMPLATE_TEMPLATE_PARM): Add parameter
550550397Sobrien	comparison.
550618334Speter
550752284Sobrien	* pt.c (for_each_template_parm, case TEMPLATE_DECL): If it is a
550850397Sobrien	template template parameter, record its use.
550952284Sobrien	(for_each_template_parm, case TEMPLATE_TEMPLATE_PARM): Traverse
551050397Sobrien	its template arguments if exists.
551118334Speter
551250397Sobrien	* pt.c (coerce_template_template_parms): New function equivalent
551350397Sobrien	to coerce_template_parms when IS_TMPL_PARM is true.
551450397Sobrien	(coerce_template_parms): Use it.  Remove the IS_TMPL_PARM parameter,
551550397Sobrien	all callers changed.
551618334Speter
551750397Sobrien	(coerce_template_parms): Access ARGLIST properly when creating a
551850397Sobrien	new vector.  Only accept implicit TYPE_DECL as valid argument for
551950397Sobrien	a template template parameter when it is a base class of
552050397Sobrien	current_class_type.  Don't display error message when COMPLAIN is
552150397Sobrien	false.
552218334Speter
552352284Sobrien1998-07-12  Klaus Kaempf  (kkaempf@progis.de)
552418334Speter
552552284Sobrien	* repo.c (get_base_filename): Use file_name_nondirectory.
552652284Sobrien	(open_repo_file): Likewise.
552750397Sobrien	* cp-tree.h (file_name_nondirectory): Add prototype.
552818334Speter
552950397Sobrien1998-07-12  Jason Merrill  <jason@yorick.cygnus.com>
553018334Speter
553150397Sobrien	* friend.c (do_friend): Pull the identifier out of declarator.
553250397Sobrien	Use cp_error and friends.
553352284Sobrien	* decl2.c (qualified_lookup_using_namespace): Fix call to
553450397Sobrien	purpose_member.
553550397Sobrien	* decl.c (lookup_name_real): Don't call complete_type on a namespace.
553650397Sobrien	(grokvardecl): Use DECL_CLASS_SCOPE_P.
553750397Sobrien	* cvt.c (convert_pointer_to_real): Check for error_mark_node sooner.
553850397Sobrien	* class.c (warn_hidden): Fix for OVERLOAD.
553950397Sobrien	From grahams@rcp.co.uk:
554050397Sobrien	* cp-tree.h (DEFARG_NODE_CHECK): New macro.
554152284Sobrien	(DEFARG_LENGTH, DEFARG_POINTER): Use it.
554218334Speter
554350397SobrienSun Jul 12 01:20:57 1998  Jeffrey A Law  (law@cygnus.com)
554418334Speter
554550397Sobrien	* g++.1 (-traditional): Remove duplicated documentation.
554618334Speter
554750397Sobrien1998-07-11  Mark Mitchell  <mark@markmitchell.com>
554818334Speter
554950397Sobrien	* method.c (flush_repeats): Add nrepeats parameter.
555050397Sobrien	(issue_nrepeats): Likewise.
555150397Sobrien	(is_back_referenceable_type): New function.  Don't back-reference
555250397Sobrien	TEMPLATE_TYPE_PARMs as well as simple types like integers.
555350397Sobrien	(build_mangled_name_for_type): Likewise.
555450397Sobrien	(build_mangled_name_for_type_with_Gcode): Likewise.
555550397Sobrien	(lasttype): Remove.
555650397Sobrien	(nrepeats): Likewise.
555750397Sobrien	(Nrepeats): Likewise.
555850397Sobrien	(start_squangling): Don't clear the variables removed above.
555950397Sobrien	(end_squangling): Likewise.
556050397Sobrien	(flush_repeats): Tidy.  Use nrepeats parameter rather than
556150397Sobrien	Nrepeats global.
556250397Sobrien	(issue_nrepeats): Likewise, but with nrepeats global.  Use
556350397Sobrien	is_backreferenceable_type.
556450397Sobrien	(build_overload_nested_name): Tidy.  Add comment.  Use
556550397Sobrien	build_mangled_name_for_type.
556650397Sobrien	(build_underscore_int): Comment.
556750397Sobrien	(build_overload_scope_ref): Use build_mangled_name_for_type.
556850397Sobrien	(build_overload_int): Likewise.
556950397Sobrien	(build_template_template_parm_names): Tidy.
557050397Sobrien	(build_template_parm_names): Use build_mangled_name_for_type.
557150397Sobrien	(build_overload_identifier): Add comments.
557250397Sobrien	(build_mangled_name_for_type_with_Gcode): Split out from
557350397Sobrien	build_mangled_name.
557450397Sobrien	(build_mangled_name_for_type): Use it.
557550397Sobrien	(build_mangled_name): Rework to use build_mangled_name_for_type
557650397Sobrien	and to not use global nrepeats/Nrepeats.  Tidy.
557750397Sobrien	(process_modifiers): Tidy.
557850397Sobrien	(check_btype): Use is_backreferenceable_type.  Add comment.
557950397Sobrien	Rename `node' to `type'.
558050397Sobrien	(process_overload_item): Set numeric_output_need_bar here.
558150397Sobrien	Use build_mangled_name_for_type.  Tidy.
558250397Sobrien	(build_decl_overload_real): Tidy.  Don't use Nrepeats.  Use
558350397Sobrien	build_mangled_name_for_type.
558418334Speter
558550397Sobrien	* pt.c (push_template_decl_real): Don't look at DECL_TEMPLATE_INFO
558650397Sobrien	for TYPE_DECLs.
558718334Speter
558850397Sobrien1998-07-08  Vladimir N. Makarov  <vmakarov@cygnus.com>
558918334Speter
559050397Sobrien	* cp-tree.h (warn_long_long): Define.
559150397Sobrien	* decl.c (grokdeclarator): Add flag `warn_long_long' as guard for
559250397Sobrien	warning "ANSI C++ does not support `long long'".
559350397Sobrien	* decl2.c (warn_long_long): Define.
559450397Sobrien	(lang_decode_option): Parse -Wlong-long, -Wno-long-long options.
559518334Speter
559650397Sobrien1998-07-07  Jason Merrill  <jason@yorick.cygnus.com>
559718334Speter
559850397Sobrien	* decl.c (xref_tag): Handle attributes between 'class' and name.
559950397Sobrien	* parse.y (aggr): Likewise.
560050397Sobrien	* semantics.c (finish_class_definition): Likewise.
560150397Sobrien	* Makefile.in (EXPECTED): Adjust.
560218334Speter
560350397Sobrien	* cp-tree.h: Declare flag_optional_diags and warn_multichar.
560450397Sobrien	* decl2.c: Define them.
560550397Sobrien	(lang_decode_option): Handle them.
560650397Sobrien	* lang-options.h: Add -foptional-diags.
560752284Sobrien	* class.c (finish_struct): Don't complain about multiple meanings of
560850397Sobrien	name if -fno-optional-diags.
560950397Sobrien	* decl.c (pushdecl_class_level): Likewise.
561050397Sobrien	* lex.c (real_yylex): Check warn_multichar.
561118334Speter
561250397Sobrien1998-07-06  Jason Merrill  <jason@yorick.cygnus.com>
561318334Speter
561450397Sobrien	* decl.c (lookup_tag): Use CP_DECL_CONTEXT.
561518334Speter
561650397Sobrien	* tree.c (make_binfo): Fix length.
561718334Speter
561850397Sobrien1998-06-30  Benjamin Kosnik  <bkoz@bliss.nabi.net>
561918334Speter
562052284Sobrien	* decl2.c (lang_decode_option): Remove warn_template_debugging.
562152284Sobrien	* lang-options.h: Likewise.
562218334Speter
562350397SobrienMon Jun 29 20:17:40 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
562418334Speter
562550397Sobrien	* except.c (build_eh_type_type_ref): Remove unused variable `susp'.
562650397Sobrien	(process_start_catch_block): Likewise for variables
562750397Sobrien	`false_label_rtx', `call_rtx' and `return_value_rtx'.
562818334Speter
562950397Sobrien1998-06-29  Brendan Kehoe  <brendan@cygnus.com>
563018334Speter
563150397Sobrien	* tree.c (build_srcloc): Make sure we allocate this node on the
563250397Sobrien	permanent obstack.
563318334Speter
563450397SobrienSat Jun 27 23:34:18 1998  Fred Fish  <fnf@ninemoons.com>
563518334Speter
563650397Sobrien	* g++spec.c (NEED_MATH_LIBRARY): Define to 1 if not already defined.
563750397Sobrien	(lang_specific_driver): Initialize need_math with NEED_MATH_LIBRARY.
563850397Sobrien	(lang_specific_driver): Only add -lm automatically if need_math is
563950397Sobrien	nonzero.
564018334Speter
564150397SobrienSat Jun 27 12:22:56 1998  Jeffrey A Law  (law@cygnus.com)
564218334Speter
564352284Sobrien	* Make-lang.in (g++): Depend on mkstemp.o.  Link in mkstemp.o
564418334Speter
564550397SobrienSat Jun 27 07:36:09 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
564618334Speter
564750397Sobrien	* Makefile.in (EXPR_H): New dependency variable.
564850397Sobrien	(decl2.o): Depend on $(EXPR_H).
564950397Sobrien	(typeck.o): Likewise.
565050397Sobrien	(init.o): Likewise.
565150397Sobrien	(expr.o): Likewise.
565218334Speter
565350397Sobrien1998-06-25  Benjamin Kosnik  <bkoz@lisa.cygnus.com>
565418334Speter
565550397Sobrien	* decl.c (start_enum): Put local enums on permanent_obstack.
565618334Speter
565750397Sobrien1998-06-25  Mark Mitchell  <mark@markmitchell.com>
565818334Speter
565950397Sobrien	* cp-tree.h (c_get_alias_set): Declare.
566050397Sobrien	* decl.c (init_decl_processing): Set lang_get_alias_set.
566118334Speter
566250397Sobrien1998-06-25  Andrew MacLeod  <amacleod@cygnus.com>
566318334Speter
566450397Sobrien	* cp-tree.h (mark_all_runtime_matches): Add function prototype.
566550397Sobrien	* except.c (mark_all_runtime_matches): Set TREE_SYMBOL_REFERENCED
566652284Sobrien	flag for all function decls which are in the exception table.
566750397Sobrien	* exception.cc (__cplus_type_matcher): Check for CATCH_ALL_TYPE match.
566850397Sobrien	* decl2.c (finish_file): Call mark_all_runtime_matches to make sure
566950397Sobrien	code is emitted for any referenced rtti function.
567018334Speter
567150397Sobrien1998-06-25  Dave Brolley  <brolley@cygnus.com>
567218334Speter
567350397Sobrien	* lang-specs.h: Use new | syntax to eliminate
567450397Sobrien	string concatenation.
567518334Speter
567650397Sobrien1998-06-25  Jason Merrill  <jason@yorick.cygnus.com>
567718334Speter
567850397Sobrien	* cp-tree.h (CP_DECL_CONTEXT): New macro.
567950397Sobrien	* decl2.c (is_namespace_ancestor, lookup_using_namespace): Use it.
568050397Sobrien	* method.c (build_overload_nested_name): Likewise.
568150397Sobrien	* sig.c (build_signature_pointer_or_reference_type): Don't set
568250397Sobrien	DECL_CONTEXT.
568318334Speter
568450397Sobrien1998-06-24  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
568518334Speter
568650397Sobrien	Set DECL_CONTEXT for globals to NULL_TREE instead of global_namespace.
568750397Sobrien	* cp-tree.h (FROB_CONTEXT): New macro.
568850397Sobrien	(DECL_MAIN_P): ::main should have a DECL_CONTEXT of NULL_TREE.
568950397Sobrien	* decl.c (namespace_binding): Replace NULL_TREE with
569050397Sobrien	global_namespace.
569150397Sobrien	(set_namespace_binding, pop_namespace, lookup_name_real): Likewise.
569250397Sobrien	* decl2.c (is_namespace_ancestor, lookup_using_namespace):
569350397Sobrien	Likewise.
569450397Sobrien	* decl.c (pushtag): Use FROB_CONTEXT.
569550397Sobrien	(pushdecl, make_typename_type, define_function, grokdeclarator):
569650397Sobrien	Likewise.
569750397Sobrien	* decl2.c (set_decl_namespace, do_namespace_alias): Likewise.
569850397Sobrien	* pt.c (push_template_decl_real, lookup_template_class, tsubst):
569950397Sobrien	Likewise.
570050397Sobrien	* decl2.c (decl_namespace): Return global_namespace if no context.
570150397Sobrien	* method.c (build_overload_nested_name): Expect null as context.
570250397Sobrien	* pt.c (mangle_class_name_for_template): Do nothing for null
570350397Sobrien	contexts.
570450397Sobrien	(lookup_template_class): Allow for null id_context.
570518334Speter
570650397Sobrien1998-06-25  Richard Henderson  <rth@cygnus.com>
570718334Speter
570850397Sobrien	* method.c (emit_thunk): Set current_function_is_thunk for the
570950397Sobrien	ASM_OUTPUT_MI_THUNK case as well.
571018334Speter
571150397Sobrien1998-06-23  Andrew MacLeod  <amacleod@cygnus.com>
571218334Speter
571350397Sobrien	* exception.cc (__cplus_type_matcher): Get a match_info pointer
571450397Sobrien	instead of an exception table entry as a parameter.
571518334Speter
571650397Sobrien1998-06-23  Andrew MacLeod  <amacleod@cygnus.com>
571718334Speter
571850397Sobrien	* parse.y (function_try_block): Don't call start_catch_handler.
571950397Sobrien	* except.c (call_eh_info): Remove coerced field from declaration.
572050397Sobrien	(build_eh_type_type_ref): New function to create an address of a
572150397Sobrien	rtti function for the new style exception tables.
572250397Sobrien	(expand_start_catch_block): Split function, this contains the
572350397Sobrien	common part.
572450397Sobrien	(process_start_catch_block_old): New function to perform the rest
572550397Sobrien	of expand_start_catch_block under old style exceptions.
572650397Sobrien	(process_start_catch_block_old): New function to perform the rest
572750397Sobrien	of expand_start_catch_block under new style exceptions.
572850397Sobrien	(expand_end_catch_block): Only pop the false label off the stack under
572950397Sobrien	the old style of exceptions.
573050397Sobrien	* semantics.c (finish_try_block): Don't call start_catch_handler.
573150397Sobrien	* exception.cc (struct cp_eh_info): Add original_value field.
573250397Sobrien	(__cplus_type_matcher): Perform type matching on the original exception
573350397Sobrien	value, and if we have a match, set the current value.
573452284Sobrien	(__cp_push_exception): Set the original exception value.
573518334Speter
573650397Sobrien1998-06-23  Jason Merrill  <jason@yorick.cygnus.com>
573718334Speter
573850397Sobrien	* call.c (joust): Fix confusing conversion warning.
573918334Speter
574050397Sobrien	* call.c (build_op_delete_call): Add placement parm.  Check
574150397Sobrien	LOOKUP_SPECULATIVELY.
574250397Sobrien	* cp-tree.h, decl2.c, init.c: Adjust.
574350397Sobrien	* decl.c (finish_function): Use it.
574418334Speter
574550397Sobrien	* pt.c (tsubst): Diagnose creating void fields or variables.
574618334Speter
574750397SobrienMon Jun 22 08:50:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
574818334Speter
574950397Sobrien	* call.c (build_scoped_method_call): Remove unused variable `tmp'.
575018334Speter
575150397Sobrien	* cp-tree.h (check_dtor_name): Add prototype.
575218334Speter
575350397Sobrien	* init.c (expand_member_init): Remove unused variables
575450397Sobrien	`ptr_type_node', `parm' and `rval'.
575518334Speter
575650397Sobrien	* ptree.c (print_lang_type): Use HOST_WIDE_INT_PRINT_DEC specifier
575750397Sobrien	in call to fprintf.
575850397Sobrien	(lang_print_xnode): Likewise.
575918334Speter
576050397Sobrien	* typeck2.c (enum_name_string): Cast argument to sprintf to long
576150397Sobrien	and use %ld specifier.
576218334Speter
576350397Sobrien	* xref.c (GNU_xref_end_scope): Use HOST_WIDE_INT_PRINT_DEC
576450397Sobrien	specifier in call to fprintf.
576550397Sobrien	(GNU_xref_member): Cast argument to sprintf to int.
576618334Speter
576750397SobrienFri Jun 19 23:22:42 1998  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
576818334Speter
576952284Sobrien	* typeck2.c (pop_init_level): Warn about implicit zero initialization
577052284Sobrien	of struct members.
577118334Speter
577250397SobrienThu Jun 18 09:32:32 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
577318334Speter
577450397Sobrien	* cp-tree.h: Prototype function `check_java_method'.
577518334Speter
577650397Sobrien1998-06-17  Jason Merrill  <jason@yorick.cygnus.com>
577718334Speter
577850397Sobrien	* class.c (finish_struct): Make conflicting use of id a pedwarn.
577950397Sobrien	* decl.c (pushdecl_class_level): Likewise.
578018334Speter
578150397Sobrien1998-06-17  Mark Mitchell  <mark@markmitchell.com>
578218334Speter
578350397Sobrien	* pt.c (convert_nontype_argument): Issue an error when presented
578450397Sobrien	with an integer (real) constant that cannot be simplified to an
578550397Sobrien	INT_CST (REAL_CST).
578618334Speter
578750397Sobrien	* cp-tree.h (c_get_alias_set): Remove declaration added in
578850397Sobrien	1998-06-13 change that should never have been checked in.
578918334Speter
579050397Sobrien1998-06-17  Jason Merrill  <jason@yorick.cygnus.com>
579118334Speter
579250397Sobrien	* typeck.c (build_binary_op_nodefault): Change % in format strings
579350397Sobrien	to %%.
579418334Speter
579550397Sobrien	* decl.c (grokvardecl): Don't build_static_name for decls that
579650397Sobrien	aren't at namespace scope.
579718334Speter
579850397Sobrien	* init.c (perform_member_init): Catch default-initialization of
579950397Sobrien	references.
580018334Speter
580150397Sobrien1998-06-17  Mark Mitchell  <mark@markmitchell.com>
580218334Speter
580350397Sobrien	* errfn.c (cp_thing): Handle the `%%' formatting sequence.
580418334Speter
580550397Sobrien1998-06-17  Jason Merrill  <jason@yorick.cygnus.com>
580618334Speter
580750397Sobrien	* method.c (hack_identifier): Complain about getting a namespace
580850397Sobrien	or class template.
580950397Sobrien	* typeck.c (decay_conversion): Remove check for namespaces.
581050397Sobrien	* typeck2.c (incomplete_type_error): Likewise.
581150397Sobrien	* parse.y (template_arg): Add PTYPENAME expansion.
581218334Speter
581350397Sobrien1998-06-16  Andrew MacLeod  <amacleod@cygnus.com>
581418334Speter
581552284Sobrien	* decl.c (grokvardecl): Don't build external assembler names for
581650397Sobrien	TYPENAMEs in other namespaces as there is no declarator.
581750397Sobrien	* error.c (cp_file_of, cp_line_of): Don't extract file or line number
581850397Sobrien	info from DECL_CONTEXT if it is NULL.
581918334Speter
582050397Sobrien1998-06-16  Jason Merrill  <jason@yorick.cygnus.com>
582118334Speter
582250397Sobrien	* call.c (check_dtor_name): Split out.
582350397Sobrien	(build_scoped_method_call): Use it.
582450397Sobrien	(build_method_call): Use it.
582550397Sobrien	* init.c (build_offset_ref): Use it.
582618334Speter
582750397Sobrien	* typeck.c (build_static_cast): Fix handling of pointers to members.
582818334Speter
582950397Sobrien	* decl.c (finish_function): Just return nothing from a constructor.
583050397Sobrien	* typeck.c (c_expand_return): Complain about returning a void
583150397Sobrien	expression from a destructor.
583218334Speter
583350397Sobrien1998-06-13  Mark Mitchell  <mark@markmitchell.com>
583418334Speter
583550397Sobrien	* class.c (alter_access): Accept a BINFO explaining how to get
583650397Sobrien	from the entity whose accessed is being altered to the type doing
583750397Sobrien	the altering.
583850397Sobrien	(handle_using_decl): New function containing code split out from ...
583950397Sobrien	(finish_struct_1): Here.
584018334Speter
584150397Sobrien	* cp-tree.h (complete_type_or_else): Declare.
584250397Sobrien	* init.c (build_new_1, build_delete): Use it.
584350397Sobrien	* typeck.c (require_complete_type): Use complete_type, rather than
584450397Sobrien	expanding it inline.
584550397Sobrien	(complete_type_or_else): New function.
584650397Sobrien	(build_component_ref): Use it.
584750397Sobrien	(pointer_int_sum): Make sure the type pointed to is complete.
584850397Sobrien	(pointer_diff): Likewise.
584918334Speter
585050397Sobrien	* pt.c (for_each_template_parm): Traverse the TYPE_CONTEXT for
585152284Sobrien	types.
585218334Speter
585350397Sobrien	* search.c (get_matching_virtual): Note that member templates
585450397Sobrien	cannot override virtual functions.
585518334Speter
585650397Sobrien1998-06-12  Brendan Kehoe  <brendan@cygnus.com>
585718334Speter
585850397Sobrien	* pt.c (check_explicit_specialization): If DECLARATOR turned into
585950397Sobrien	an error_mark_node from lookup_template_function, return the same.
586050397Sobrien	(determine_specialization): Also make sure TEMPLATE_ID isn't an
586150397Sobrien	error_mark_node, before we try to read its operands.
586250397Sobrien	* decl.c (grokdeclarator): If we got an error_mark_node from
586350397Sobrien	check_explicit_specialization, just return it right back.
586418334Speter
586550397Sobrien1998-06-12  Mark Mitchell  <mark@markmitchell.com>
586618334Speter
586750397Sobrien	* class.c (instantiate_type): Don't treat template-ids that don't
586850397Sobrien	specify any template arguments as equivalent to ordinary
586950397Sobrien	identifiers.  Use OFFSET_REF instead of SCOPE_REF to refer to
587050397Sobrien	pointer-to-members for member templates.  Tidy slightly.
587150397Sobrien	* cp-tree.def (TEMPLATE_ID_EXPR): Revise documentation.
587250397Sobrien	* init.c (build_offset_ref): Handle template-ids like ordinary
587350397Sobrien	identifiers, for the most part, but store a TEMPLATE_ID_EXPR in the
587450397Sobrien	offset part of the OFFSET_REF.
587550397Sobrien	* typeck.c (build_unary_op): Change check for unknown types to
587650397Sobrien	look for OFFSET_REFs, not SCOPE_REFs.
587718334Speter
587850397Sobrien1998-06-11  Mark Mitchell  <mark@markmitchell.com>
587918334Speter
588050397Sobrien	* pt.c (is_member_template_class): New function.
588150397Sobrien	(push_template_decl_real): Use it.
588218334Speter
588350397Sobrien1998-06-11  Benjamin Kosnik  <bkoz@elmo.cygnus.com>
588418334Speter
588550397Sobrien	* friend.c (do_friend): Add support for nested classes using
588652284Sobrien	member functions of the enclosing class as friends.
588718334Speter
588850397Sobrien1998-06-10  Mark Mitchell  <mark@markmitchell.com>
588918334Speter
589050397Sobrien	* call.c (convert_default_arg): Make global, not static.
589150397Sobrien	(convert_arg_for_ellipsis): Split out from ...
589250397Sobrien	(build_over_call): Here.
589350397Sobrien	* cp-tree.h (convert_default_arg); Declare.
589450397Sobrien	(convert_arg_to_ellipsis): Likewise.
589550397Sobrien	(do_member_init): Remove.
589650397Sobrien	* init.c (do_member_init): Remove; this code is dead.
589750397Sobrien	(expand_member_init): Remove much of this code; it is dead.
589850397Sobrien	* typeck.c (convert_arguments): Use convert_default_arg and
589950397Sobrien	convert_arg_for_ellipsis, rather than duplicating here.
590052284Sobrien
590152284Sobrien	* call.c (convert_like): Don't fail silently if
590252284Sobrien	build_user_type_conversion fails.  Always return error_mark_node
590350397Sobrien	for failure.
590418334Speter
590550397Sobrien1998-06-10  Jason Merrill  <jason@yorick.cygnus.com>
590618334Speter
590750397Sobrien	* search.c (covariant_return_p): Complain about ambiguous base.
590818334Speter
590950397Sobrien	* typeck.c (build_component_ref): Diagnose ref to nested type.
591018334Speter
591150397Sobrien1998-06-10  Brendan Kehoe  <brendan@cygnus.com>
591218334Speter
591350397Sobrien	* decl.c (grokparms): Check that INIT isn't an error_mark_node
591450397Sobrien	before giving error about invalid type for default arg.
591518334Speter
591650397Sobrien1998-06-10  Jason Merrill  <jason@yorick.cygnus.com>
591718334Speter
591850397Sobrien	* call.c (build_method_call): Fix thinko.
591918334Speter
592050397Sobrien1998-06-10  Dave Brolley  <brolley@cygnus.com>
592118334Speter
592250397Sobrien	* decl2.c (lang_decode_option): New argc/argv interface.
592350397Sobrien	* cp-tree.h (lang_decode_option): New argc/argv interface.
592450397Sobrien	* lang-specs.h (default_compilers): Only call cpp if -E, -M or -MM is
592550397Sobrien	specified for cpplib-enabled compilers.
592650397Sobrien	* lex.c (lang_init): Don't check_newline for cpplib.
592750397Sobrien	(init_parse): Don't initialize cpplib here.
592818334Speter
592950397Sobrien1998-06-10  Brendan Kehoe  <brendan@cygnus.com>
593018334Speter
593150397Sobrien	* typeck.c (build_component_ref): Make sure FIELD has a lang_specific
593250397Sobrien	piece before checking DECL_MUTABLE_P.
593318334Speter
593450397Sobrien1998-06-10  John Carr  <jfc@mit.edu>
593518334Speter
593650397Sobrien	* tree.c (debug_binfo): Make printf format match arguments.
593718334Speter
593850397Sobrien	* error.c (OB_PUTI): Make printf format match arguments.
593918334Speter
594050397Sobrien1998-06-10  Jason Merrill  <jason@yorick.cygnus.com>
594118334Speter
594250397Sobrien	* init.c (perform_member_init): Handle default-initialization.
594318334Speter
594450397Sobrien	* except.c (build_throw): Handle throwing NULL.
594518334Speter
594650397Sobrien	* typeck.c (build_x_function_call): Use resolve_offset_ref.
594718334Speter
594850397Sobrien	* search.c (compute_access): Only strip an anonymous union
594950397Sobrien	for a FIELD_DECL.
595018334Speter
595150397Sobrien	* call.c (add_builtin_candidates): Tweak.
595218334Speter
595350397Sobrien	* cvt.c (build_expr_type_conversion): Restore code for conversion
595450397Sobrien	from class types.
595550397Sobrien	* decl2.c (delete_sanity): Use it.  Clean up.
595618334Speter
595750397Sobrien	* typeck.c (comp_ptr_ttypes_real): Fix cv-qual comparisons.
595818334Speter
595950397Sobrien1998-06-10  Branko Cibej  <branko.cibej@hermes.si>
596018334Speter
596152284Sobrien	* typeck.c (c_expand_return): Don't warn about void expressions on
596252284Sobrien	return statements in functions returning void.
596318334Speter
596450397Sobrien1998-06-09  Mark Mitchell  <mark@markmitchell.com>
596518334Speter
596650397Sobrien	* pt.c (fn_type_unification): Revise documentation.  Tidy.
596750397Sobrien	(type_unification): Likewise.
596818334Speter
596950397Sobrien1998-06-09  Andrew MacLeod  <amacleod@cygnus.com>
597018334Speter
597150397Sobrien	* semantics.c (finish_try_block): Rename expand_start_catch, and delete
597250397Sobrien	expand_end_catch.
597350397Sobrien	* parse.y (function_try_block): Rename expand_start_catch, and delete
597450397Sobrien	expand_end_catch.
597550397Sobrien	* except.c (expand_end_eh_spec): Rename expand_start_catch, and delete
597650397Sobrien	expand_end_catch.
597718334Speter
597850397Sobrien1998-06-09  Jason Merrill  <jason@yorick.cygnus.com>
597918334Speter
598050397Sobrien	* search.c (lookup_member): New fn.
598150397Sobrien	* class.c (finish_struct_1): Use it.
598250397Sobrien	* decl.c (lookup_name_real): Use it.
598318334Speter
598450397SobrienMon Jun  8 20:45:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
598518334Speter
598650397Sobrien	* Makefile.in (decl2.o): Depend on dwarf2out.h and dwarfout.h.
598718334Speter
598850397Sobrien	* cp-tree.h: Add prototype for `maybe_print_template_context' and
598952284Sobrien	`maybe_make_one_only'.
599018334Speter
599150397Sobrien	* decl.c (auto_function): Remove unused variable `decl'.
599218334Speter
599350397Sobrien	* decl2.c: Include dwarf2out.h and dwarfout.h.
599418334Speter
599550397Sobrien	* lex.c: Remove redundant declarations of `set_float_handler' and
599652284Sobrien	`asm_out_file'.
599718334Speter
599850397Sobrien1998-06-08  Andrew MacLeod  <amacleod@cygnus.com>
599918334Speter
600052284Sobrien	* except.c (init_exception_processing): Remove NEW_EH_MODEL compile
600150397Sobrien	time flag.  Call __cp_eh_info instead of __cp_exception_info.
600250397Sobrien	* exception.cc (struct cp_eh_info): Remove NEW_EH_MODEL flag.
600352284Sobrien	(__cp_exception_info): Return offset into cp_eh_info structure to
600450397Sobrien	match what use to be the start of this structure.
600550397Sobrien	(__cp_eh_info): New function to return a pointer to cp_eh_info struct.
600650397Sobrien	(__cplus_type_matcher, __cp_push_exception): Remove NEW_EH_MODEL
600750397Sobrien	compile time flag.
600852284Sobrien	(__uncatch_exception, __check_eh_spec, std::uncaught_exception): Call
600950397Sobrien	__cp_eh_info instead of __cp_exception_info.
601018334Speter
601150397Sobrien1998-06-08  Jason Merrill  <jason@yorick.cygnus.com>
601218334Speter
601350397Sobrien	* decl.c (cp_finish_decl): Disable inlining of extern inlines
601450397Sobrien	with static variables.
601518334Speter
601650397Sobrien1998-06-08  Mark Mitchell  <mark@markmitchell.com>
601718334Speter
601850397Sobrien	* init.c (build_offset_ref): Correct previous change to use build,
601950397Sobrien	not build_min.
602018334Speter
602150397Sobrien1998-06-07  Mark Mitchell  <mark@markmitchell.com>
602218334Speter
602350397Sobrien	* class.c (instantiate_type): Handle pointer-to-members where the
602450397Sobrien	member is a template.
602550397Sobrien	* init.c (build_offset_ref): Likewise.
602650397Sobrien	* typeck.c (build_unary_op): Likewise.
602718334Speter
602850397Sobrien1998-06-07  Richard Henderson  <rth@cygnus.com>
602918334Speter
603050397Sobrien	* lex.c (lang_init_options): New function.
603150397Sobrien	(lang_init): Remove flag_exceptions == 2 hack.
603252284Sobrien
603350397Sobrien1998-06-05  Jason Merrill  <jason@yorick.cygnus.com>
603418334Speter
603550397Sobrien	* search.c (envelope_add_decl): Tweak for implicit typename.
603618334Speter
603750397Sobrien	* call.c (joust): Also warn about confusing conversion op/constructor
603850397Sobrien	overload resolution.
603918334Speter
604050397Sobrien	* spew.c (yylex): Also return the TYPE_DECL if got_object.
604150397Sobrien	Don't clear got_object after '~'.
604250397Sobrien	* call.c (build_scoped_method_call): Tweak destructor handling.
604350397Sobrien	(build_method_call): Likewise.
604450397Sobrien	* pt.c (tsubst_copy, case METHOD_CALL_EXPR): Don't mess with
604550397Sobrien	TYPE_MAIN_VARIANT for destructors.
604650397Sobrien	* semantics.c (finish_object_call_expr): Complain about calling a
604750397Sobrien	TYPE_DECL.
604818334Speter
604950397Sobrien1998-06-05  Per Bothner  <bothner@cygnus.com>
605018334Speter
605150397Sobrien	* g++spec.c (lang_specific_pre_link, lang_specific_extra_ofiles):
605250397Sobrien	Define - update needed by gcc.c change.
605318334Speter
605450397Sobrien1998-06-05  Jason Merrill  <jason@yorick.cygnus.com>
605518334Speter
605650397Sobrien	* error.c (cp_printers): Use 'o' instead of '_' for the null entry.
605718334Speter
605850397Sobrien1998-06-05  Martin v. Loewis  <loewis@informatik.hu-berlin.de>
605918334Speter
606050397Sobrien	* cp-tree.h (DECL_NAMESPACE_ALIAS, ORIGINAL_NAMESPACE): Declare.
606150397Sobrien	* decl.c (lookup_name_real): Add namespaces_only parameter.
606250397Sobrien	If set, return only NAMESPACE_DECLs.
606350397Sobrien	(select_decl): Likewise.
606450397Sobrien	(identifier_type_value): Give additional parameter.
606550397Sobrien	(lookup_name_nonclass): Likewise.
606650397Sobrien	(lookup_name): Likewise.
606750397Sobrien	(find_binding): Skip namespace aliases.
606850397Sobrien	(binding_for_name): Likewise.
606950397Sobrien	(push_namespace): Check for namespace aliases.
607050397Sobrien	(lookup_name_namespace_only): New function.
607150397Sobrien	(begin_only_namespace_names, end_only_namespace_names): New functions.
607250397Sobrien	* decl2.c (set_decl_namespace): Skip namespace aliases.
607350397Sobrien	(do_using_directive): Likewise.
607452284Sobrien	(do_namespace_alias): Produce namespace aliases, fix alias
607550397Sobrien	redeclaration.
607650397Sobrien	* error.c (dump_decl): Support SCOPE_REF.
607750397Sobrien	* parse.y (extdef): Wrap lookup with namespace_only for namespace
607850397Sobrien	aliases and using declarations.
607918334Speter
608050397Sobrien1998-06-04  Jason Merrill  <jason@yorick.cygnus.com>
608118334Speter
608250397Sobrien	* tree.c (really_overloaded_fn): Only see through one TREE_LIST.
608318334Speter
608450397Sobrien	* error.c (dump_expr): Clean up NEW_EXPR case.
608518334Speter
608650397Sobrien1998-06-04  Martin von L�wis  <loewis@informatik.hu-berlin.de>
608718334Speter
608850397Sobrien	Suggested by Brendan Kehoe
608950397Sobrien	* decl2.c (do_toplevel_using_decl): When decl is a TYPE_DECL,
609050397Sobrien	treat it as using ::decl.
609118334Speter
609250397Sobrien	* decl2.c (arg_assoc_type): Process unknown_type_node and OFFSET_TYPE.
609318334Speter
609450397Sobrien	* tree.c (mapcar): Support NEW_EXPR.
609518334Speter
609650397Sobrien	* error.c (dump_expr): Support NEW_EXPR.
609718334Speter
609850397Sobrien1998-06-03  Jason Merrill  <jason@yorick.cygnus.com>
609918334Speter
610050397Sobrien	* method.c (make_thunk): Use overload machinery to make name.
610150397Sobrien	* search.c (covariant_return_p): New fn.
610250397Sobrien	(get_matching_virtual): Use it.
610318334Speter
610450397Sobrien	* init.c (build_new_1): Fix check for void.
610518334Speter
610650397Sobrien1998-06-01  Per Bothner  <bothner@cygnus.com>
610718334Speter
610850397Sobrien	* cp-tree.h (TYPE_FOR_JAVA):  New macro.
610950397Sobrien	* decl.c, cp-tree.h (java_byte_type_node, java_short_type_node,
611050397Sobrien	java_int_type_node, java_long_type_node, java_float_type_node,
611150397Sobrien	java_double_type_node, java_char_type_node, java_boolean_type_node):
611250397Sobrien	New "primitive" types, with predefined names __java_byte etc.
611350397Sobrien	(record_builtin_java_type):  New function.
611450397Sobrien	(init_decl_processing):  Make Java types with record_builtin_java_type.
611550397Sobrien	(pushtag, grokdeclarator):  Set TYPE_FOR_JAVA if in extern "JAVA".
611650397Sobrien	(xref_baseypes):  If base class was TYPE_FOR_JAVA, so is this class.
611750397Sobrien	(grokfndecl):  Call check_java_method for Java classes.
611850397Sobrien	* method.c (is_java_type):  Removed.  Replaced with TYPE_FOR_JAVA.
611950397Sobrien	(process_overload_item):  Match types against specific
612050397Sobrien	java_XX_type_node types, rather than using is_java_type.
612150397Sobrien	* class.c (finish_struct_1):  Don't add default copy constructor
612250397Sobrien	or operator= if TYPE_FOR_JAVA.
612350397Sobrien	(pop_lang_conext):  Restore strict_prototyp proper if Java.
612450397Sobrien	* decl2.c (acceptable_java_type, check_java_method):  New functions.
612550397Sobrien	* pt.c (instantiate_class_template):  Copy TYPE_FOR_JAVA from pattern.
612650397Sobrien	(tsubst):  Move common statement after if statement.
612750397Sobrien	* typeck.c (comptypes):  If strict, TYPE_FOR_JAVA must match.
612818334Speter
612950397Sobrien1998-06-01  Jason Merrill  <jason@yorick.cygnus.com>
613018334Speter
613150397Sobrien	* pt.c (for_each_template_parm): Use first_rtl_op.
613218334Speter
613350397Sobrien	* tree.c (build_cplus_array_type_1): Also check index_type for
613418334Speter	template parms.
613518334Speter
613650397Sobrien1998-05-31  Jason Merrill  <jason@yorick.cygnus.com>
613718334Speter
613850397Sobrien	* pt.c (tsubst): Always copy BINFO_BASETYPES.
613918334Speter
614050397Sobrien1998-05-29  scott snyder  <snyder@d0sgif.fnal.gov>
614118334Speter
614250397Sobrien	* tree.c (layout_basetypes): If we change TYPE_SIZE, change
614350397Sobrien	TYPE_SIZE_UNIT too.
614418334Speter
614550397Sobrien1998-05-29  Mark Mitchell  <mark@markmitchell.com>
614618334Speter
614750397Sobrien	* decl.c (grokdeclarator): Don't complain about in-class
614850397Sobrien	initialization of static consts if we don't really know the type
614950397Sobrien	of the variable.
615018334Speter
615150397Sobrien1998-05-29  Jason Merrill  <jason@yorick.cygnus.com>
615218334Speter
615350397Sobrien	* cp-tree.h (DECL_DESTRUCTOR_P): New macro.
615450397Sobrien	* method.c (build_destructor_name): New fn.
615550397Sobrien	* decl2.c (maybe_retrofit_in_chrg): Split out...
615650397Sobrien	(grokclassfn): From here.  Reorganize.
615752284Sobrien	* decl.c (grok_ctor_properties): Make sure ctors for types with
615850397Sobrien	vbases have the in_chrg parm.
615952284Sobrien	* pt.c (instantiate_class_template): Update
616050397Sobrien	TYPE_USES_VIRTUAL_BASECLASSES from tsubsted bases.  Don't call
616150397Sobrien	grok_*_properties.
616250397Sobrien	(tsubst): Call grok_ctor_properties and maybe_retrofit_in_chrg.
616318334Speter
616450397Sobrien1998-05-28  Mark Mitchell  <mark@markmitchell.com>
616518334Speter
616650397Sobrien	* pt.c (instantiate_decl): Make test for whether or not static
616750397Sobrien	variables should be instantiated early match its comment.
616818334Speter
616950397Sobrien1998-05-28  Jason Merrill  <jason@yorick.cygnus.com>
617018334Speter
617152284Sobrien	* decl.c (start_decl): Always pedwarn about vacuously redeclaring
617250397Sobrien	a member.
617350397Sobrien	(start_function): Call check_default_args.
617450397Sobrien	* decl2.c (grokfield): Don't call check_default_args.
617550397Sobrien	(check_default_args): Use cp_error_at.
617650397Sobrien	* lex.c (do_pending_defargs): Call check_default_args.
617718334Speter
617850397Sobrien1998-05-27  Brendan Kehoe  <brendan@cygnus.com>
617918334Speter
618050397Sobrien	* call.c (build_method_call): Make sure get_type_value returns
618150397Sobrien	something before we try to use its TYPE_MAIN_VARIANT.
618250397Sobrien	(build_scoped_method_call): Likewise.
618318334Speter
618450397Sobrien1998-05-27  Jason Merrill  <jason@yorick.cygnus.com>
618518334Speter
618650397Sobrien	* typeck2.c (digest_init): Complain about getting a TREE_LIST to
618750397Sobrien	initialize an array.
618818334Speter
618950397Sobrien	* search.c (expand_upcast_fixups): Don't set DECL_CONTEXT and
619050397Sobrien	DECL_VIRTUAL_P.
619118334Speter
619250397Sobrien	* friend.c (do_friend): Clarify template warning.
619318334Speter
619450397Sobrien1998-05-27  Mark Mitchell  <mark@markmitchell.com>
619518334Speter
619650397Sobrien	* decl.c (shadow_label): Don't treat decls as identifiers.
619750397Sobrien	(maybe_push_to_top_level): Clear shadowed_labels.
619818334Speter
619950397Sobrien	* pt.c (instantiate_decl): Reset lineno and filename after calling
620052284Sobrien	regenerate_decl_from_template.
620118334Speter
620250397Sobrien	* decl.c (grokdeclarator): Don't try to use TYPE_OBSTACK on an
620350397Sobrien	error_mark_node.
620418334Speter
620550397Sobrien1998-05-27  Kevin Buhr  <buhr@stat.wisc.edu>
620618334Speter
620750397Sobrien	* parse.y (base_class): Use is_aggr_type, not IS_AGGR_TYPE.
620818334Speter
620950397Sobrien1998-05-26  Kriang Lerdsuwanakij  <lerdsuwa@scf.usc.edu>
621018334Speter
621150397Sobrien	* pt.c (process_template_parm): Accept TYPENAME_TYPE nodes.
621250397Sobrien	(convert_nontype_argument): Handle cases when nontype template
621350397Sobrien	parameters become classes after substitution.
621418334Speter
621550397Sobrien1998-05-26  Mark Mitchell  <mark@markmitchell.com>
621618334Speter
621750397Sobrien	* friend.c (is_friend): Use comptypes, rather than == to compare
621850397Sobrien	types.  Modify for new representation of template friends.
621950397Sobrien	(make_friend_class): Likewise.
622050397Sobrien	* pt.c (tsubst_friend_class): Undo 1998-05-21 change.  Tweak.
622150397Sobrien	(instantiate_class_template): Deal with template friends.
622218334Speter
622350397Sobrien	* decl.c (store_parm_decls): Remove redundant call to
622450397Sobrien	expand_main_function.
622518334Speter
622650397Sobrien1998-05-26  Benjamin Kosnik  <bkoz@loony.cygnus.com>
622718334Speter
622850397Sobrien	* decl.c (start_decl): Check for DECL_LANG_SPECIFIC before
622952284Sobrien	DECL_USE_TEMPLATE.
623018334Speter
623150397Sobrien1998-05-26  Per Bothner  <bothner@cygnus.com>
623218334Speter
623350397Sobrien	* language_as_string:  Handle lang_java.
623418334Speter
623550397Sobrien1998-05-26  Jason Merrill  <jason@yorick.cygnus.com>
623618334Speter
623750397Sobrien	* decl.c (pushdecl): Don't copy the type_decl.
623818334Speter
623950397Sobrien1998-05-26  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
624018334Speter
624150397Sobrien	* class.c (pushclass): Always store TYPE_MAIN_VARIANT in
624250397Sobrien	current_class_type.
624350397Sobrien	* decl.c (grokdeclarator): Put typedefs on the type's obstack.
624418334Speter
624550397Sobrien	* parse.y (complex_direct_notype_declarator): Use $1 to access
624650397Sobrien	scope of notype_qualified_id.
624718334Speter
624850397Sobrien1998-05-26  Dave Brolley  <brolley@cygnus.com>
624918334Speter
625050397Sobrien	* lex.c (parse_options,yy_cur,yy_lim): Add for cpplib.
625150397Sobrien	(init_parse): Initialize cpplib interface.
625218334Speter
625350397Sobrien	* Makefile.in (CXX_OBJS): Make sure dependencies never end with an
625450397Sobrien	empty continuation.
625518334Speter
625650397Sobrien1998-05-26  Mark Mitchell  <mark@markmitchell.com>
625718334Speter
625850397Sobrien	* decl.c (pushtag): Avoid crashing on erroneous input.
625918334Speter
626050397Sobrien1998-05-25  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
626118334Speter
626250397Sobrien	* decl.c (push_namespace): Only produce one unique name for
626350397Sobrien	anonymous namespaces.
626450397Sobrien	(get_unique_name): Remove.
626518334Speter
626650397Sobrien1998-05-25  Mark Mitchell  <mark@markmitchell.com>
626718334Speter
626850397Sobrien	* call.c (tourney): Don't do any extra comparisons.
626918334Speter
627050397Sobrien	* decl2.c (build_anon_union_vars): Don't crash on empty sub-unions.
627118334Speter
627250397Sobrien	* cp-tree.h (processing_template_parmlist): Declare.
627350397Sobrien	* decl.c (pushtag): Don't call push_template_decl when we
627452284Sobrien	shouldn't.
627550397Sobrien	* pt.c (processing_template_parmlist): New variable.
627650397Sobrien	(TMPL_ARGS_HAVE_MULTIPLE_LEVELS): New macro.
627750397Sobrien	(complete_template_args): Use it.
627850397Sobrien	(add_to_template_args): Likewise.
627950397Sobrien	(innermost_args): Likewise.
628050397Sobrien	(tsubst): Likewise.
628150397Sobrien	(begin_template_parm_list): Use processing_template_parmlist.
628250397Sobrien	(end_template_parm_list): Likewise.
628318334Speter
628450397Sobrien	* cp-tree.h (ANON_UNION_TYPE_P): New macro.
628550397Sobrien	* decl.c (grokdeclarator): Use it.
628650397Sobrien	* decl2.c (grok_x_components): Likewise.
628750397Sobrien	* init.c (initializing_context): Likewise.
628850397Sobrien	* method.c (do_build_copy_constructor): Likewise.
628950397Sobrien	(do_build_assign_ref): Likewise.
629050397Sobrien	* search.c (compute_access): Likewise.
629150397Sobrien	* typeck.c (build_component_ref): Likewise.
629218334Speter
629350397Sobrien	* decl.c (grokdeclarator): Don't give a cv-qualified version of an
629450397Sobrien	unnamed type a typedef name "for linkage purposes".
629518334Speter
629650397Sobrien	* pt.c (lookup_template_class): Don't look at
629750397Sobrien	IDENTIFIER_CLASS_VALUE when there's no current_class_type.
629818334Speter
629950397Sobrien	* method.c (build_overload_int): Handle error cases gracefully.
630018334Speter
630150397Sobrien	* pt.c (instantiate_decl): Handle static member variables
630250397Sobrien	correctly.
630318334Speter
630450397Sobrien	* pt.c (tsubst): Use the tsubst'd type when producing new
630550397Sobrien	TEMPLATE_PARM_INDEX nodes.
630618334Speter
630750397Sobrien1998-05-24  Mark Mitchell  <mark@markmitchell.com>
630818334Speter
630950397Sobrien	* tree.c (cp_tree_equal): Handle pointers to member functions.
631018334Speter
631150397Sobrien	* call.c (maybe_handle_implicit_object): Handle QUAL_CONVs.  Make
631250397Sobrien	sure the type of the REF_BIND is a reference type.
631350397Sobrien	(maybe_handle_ref_bind, compare_ics): Rename reference_type to
631450397Sobrien	target_type for clarity.
631518334Speter
631650397Sobrien	* parse.y (xcond): Move call to condition_conversion ...
631750397Sobrien	* semantics.c (finish_for_cond): Here.
631850397Sobrien	* parse.c: Regenerated.
631952284Sobrien
632050397Sobrien1998-05-24  Jason Merrill  <jason@yorick.cygnus.com>
632118334Speter
632250397Sobrien	* decl.c (push_namespace): Namespaces have type void.
632350397Sobrien	* typeck2.c (incomplete_type_error): Complain about namespace
632450397Sobrien	used as expression.
632550397Sobrien	* typeck.c (decay_conversion): Likewise.
632618334Speter
632750397Sobrien1998-05-24  Martin von L�wis  <loewis@informatik.hu-berlin.de>
632818334Speter
632950397Sobrien	* error.c (dump_expr): Support namespaces.
633018334Speter
633150397Sobrien1998-05-23  Jason Merrill  <jason@yorick.cygnus.com>
633218334Speter
633350397Sobrien	* cp-tree.def: Add SRCLOC.
633450397Sobrien	* cp-tree.h: Add struct tree_srcloc and accessor macros.
633550397Sobrien	* tree.c (build_srcloc, build_srcloc_here): New fns.
633650397Sobrien	* pt.c (add_pending_template): Use build_srcloc_here.
633750397Sobrien	(push_tinst_level): Update last_template_error_tick before erroring.
633852284Sobrien	(instantiate_decl): Restore lineno and input_filename before
633950397Sobrien	calling add_pending_template.
634050397Sobrien	* decl2.c (finish_file): Set up lineno and input_filename for
634150397Sobrien	pending templates.
634218334Speter
634350397Sobrien1998-05-22  Jason Merrill  <jason@yorick.cygnus.com>
634418334Speter
634552284Sobrien	* decl.c (lang_print_error_function): New fn.
634650397Sobrien	(init_decl_processing): Set print_error_function to use it.
634750397Sobrien	* errfn.c (cp_thing): Don't call maybe_print_template_context here.
634818334Speter
634950397Sobrien	* call.c (maybe_handle_ref_bind): Propagate ICS_USER_FLAG and
635050397Sobrien	ICS_BAD_FLAG.
635118334Speter
635250397Sobrien	* cvt.c (ocp_convert): Don't set LOOKUP_NO_CONVERSION for
635350397Sobrien	copy-initialization.
635418334Speter
635550397Sobrien	* class.c (build_vtable_entry): Use int_fits_type_p.
635650397Sobrien	(build_vtable): Pass a signed offset to build_vtable_entry.
635750397Sobrien	(prepare_fresh_vtable, modify_one_vtable, fixup_vtable_deltas1,
635850397Sobrien	set_rtti_entry): Likewise.
635918334Speter
636050397Sobrien1998-05-22  Per Bothner  <bothner@cygnus.com>
636118334Speter
636250397Sobrien	* cp-tree.h:  Add comments documenting which LANG_FLAGS are used.
636350397Sobrien	(C_TYPE_VARIABLE_SIZE, C_DECL_VARIABLE_SIZE):  Removed, not used.
636418334Speter
636550397Sobrien1998-05-22  Jason Merrill  <jason@yorick.cygnus.com>
636618334Speter
636750397Sobrien	* pt.c (print_template_context): Use fprintf instead of cp_error.
636818334Speter
636950397Sobrien	* pt.c (determine_specialization): Just return an error_mark_node.
637050397Sobrien	Also print the decl we want in error messages.  If we complain,
637150397Sobrien	return error_mark_node.
637252284Sobrien	(tsubst_friend_function): Set lineno and input_filename so
637350397Sobrien	error messages will be useful.
637450397Sobrien	(instantiate_template): Just return an error_mark_node.
637550397Sobrien	(check_explicit_specialization): Don't mess with a returned
637650397Sobrien	error_mark_node.
637718334Speter
637850397Sobrien	* pt.c (print_template_context): Add new argument.
637950397Sobrien	(maybe_print_template_context): New fn.
638050397Sobrien	(push_tinst_level): Increment tinst_level_tick.
638150397Sobrien	(pop_tinst_level): Likewise.
638250397Sobrien	* errfn.c (cp_thing): Call maybe_print_template_context.  Use
638350397Sobrien	xrealloc instead of xmalloc.
638418334Speter
638550397Sobrien	* typeck.c (build_unary_op, CONVERT_EXPR): Propagate TREE_CONSTANT.
638618334Speter
638750397Sobrien1998-05-21  Jason Merrill  <jason@yorick.cygnus.com>
638818334Speter
638950397Sobrien	* pt.c (tsubst_friend_class): Don't call redeclare_class_template
639050397Sobrien	if the template we looked up is the same as the one we already
639150397Sobrien	have.
639218334Speter
639350397SobrienThu May 21 11:54:44 1998  Dave Brolley  <brolley@cygnus.com>
639418334Speter
639550397Sobrien	* lex.c: (handle_sysv_pragma): FILE* parameter not used.
639650397Sobrien	(cpp_reader,parse_in): Add for cpplib.
639750397Sobrien	(check_newline): Call handle_sysv_pragma with new interface.
639850397Sobrien	(check_newline): Call GET_DIRECTIVE_LINE, not get_directive_line.
639918334Speter
640050397Sobrien	* input.c: (yy_cur,yy_lim,yy_get_token,GETC): Add for cpplib.
640150397Sobrien	(sub_getch): Call GETC for cpplib.
640218334Speter
640350397Sobrien	* cp-tree.h: (get_directive_line): Different prototype for cpplib.
640450397Sobrien	(GET_DIRECTIVE_LINE): Macro wrapper for get_directive_line.
640518334Speter
640652284Sobrien	* Makefile.in (CXX_OBJS): Add @extra_cxx_objs@ for cpplib.
640718334Speter
640850397Sobrien1998-05-21  Jason Merrill  <jason@yorick.cygnus.com>
640918334Speter
641050397Sobrien	* decl2.c (maybe_make_one_only): New fn.
641150397Sobrien	(import_export_vtable): Use it.
641250397Sobrien	(import_export_decl): Likewise.
641350397Sobrien	* pt.c (mark_decl_instantiated): Likewise.
641418334Speter
641550397Sobrien1998-05-21  Mark Mitchell  <mmitchell@usa.net>
641618334Speter
641750397Sobrien	* decl2.c (find_representative_member): Rename to ...
641850397Sobrien	(build_anon_union_vars): New function.
641950397Sobrien	(finish_anon_union): Fix stupidity of previous change.
642018334Speter
642150397Sobrien1998-05-20  Jason Merrill  <jason@yorick.cygnus.com>
642218334Speter
642350397Sobrien	* decl.c (grokfndecl): Handle definition of specialization in
642450397Sobrien	friend declaration.
642518334Speter
642650397Sobrien	* error.c (dump_decl): Fix LOOKUP_EXPR handling.
642718334Speter
642850397Sobrien1998-05-20  Mark Mitchell  <mmitchell@usa.net>
642918334Speter
643050397Sobrien	* class.c (delete_duplicate_fields_1): Use DECL_DECLARES_TYPE_P
643150397Sobrien	to look for type declarations.
643250397Sobrien	(finish_struct): Deal with templates on the CLASSTYPE_TAGS list.
643350397Sobrien	* cp-tree.h (DECL_DECLARES_TYPE_P): New macro.
643450397Sobrien	(finish_member_class_template): Declare.
643550397Sobrien	* decl.c (pushtag): Put member class templates on the
643650397Sobrien	CLASSTYPE_TAGS list, just as for ordinary member classes.
643750397Sobrien	(pushdecl_class_level): Use DECL_DECLARES_TYPE_P.
643850397Sobrien	(lookup_tag): Look for IDENTIFIER_CLASS_VALUEs, just as with
643952284Sobrien	IDENTIFIER_NAMESPACE_VALUEs.
644050397Sobrien	* parse.y (component_decl): Move code to ...
644152284Sobrien	* semantics.c (finish_member_class_template): New function.
644250397Sobrien	Don't put member class templates on the list of components for a
644352284Sobrien	class.
644450397Sobrien	* parse.c: Regenerated.
644550397Sobrien	* pt.c (classtype_mangled_name): Don't try DECL_CONTEXT on types.
644650397Sobrien	In fact, don't use DECL_CONTEXT at all here.
644718334Speter
644850397Sobrien1998-05-20  Martin von Loewis  <loewis@informatik.hu-berlin.de>
644918334Speter
645050397Sobrien	* decl.c (record_unknown_type): New function.
645150397Sobrien	(init_decl_processing): Call it for the unknown and global type
645250397Sobrien	nodes.
645318334Speter
645450397Sobrien1998-05-20  Mark Mitchell  <mmitchell@usa.net>
645518334Speter
645650397Sobrien	* decl2.c (find_representative_member): New function.
645750397Sobrien	(finish_anon_union): Use it.
645818334Speter
645950397Sobrien	* cp-tree.h (MAIN_NAME_P): New macro.
646050397Sobrien	(DECL_MAIN_P): Likwise.
646150397Sobrien	* decl.c (pushdecl): Avoid crashing on redefinitions of `main'.
646250397Sobrien	(grokfndecl): Use the new macros.
646350397Sobrien	(grokdeclarator): Likewise.
646450397Sobrien	(start_function): Likewise.
646550397Sobrien	(store_parm_decls): Likewise.
646650397Sobrien	(finsh_function): Likewise.
646750397Sobrien	* friend.c (do_friend): Likewise.
646850397Sobrien	* typeck.c (build_function_call_real): Likewise.
646950397Sobrien	(build_unary_op): Likewise.
647018334Speter
647150397SobrienWed May 20 02:16:01 1998  Jason Merrill  <jason@yorick.cygnus.com>
647218334Speter
647350397Sobrien	* decl2.c (start_objects, finish_objects, do_dtors,
647450397Sobrien	do_ctors): Split out from...
647550397Sobrien	(finish_file): ...here.
647618334Speter
647750397SobrienTue May 19 20:36:23 1998  Jason Merrill  <jason@yorick.cygnus.com>
647818334Speter
647950397Sobrien	* tree.c (is_overloaded_fn): Don't abort on placeholders from
648050397Sobrien	push_class_decls.
648118334Speter
648250397SobrienTue May 19 15:16:22 1998  Brendan Kehoe  <brendan@cygnus.com>
648318334Speter
648450397Sobrien	* class.c (is_empty_class): Return 0 if TYPE is an error_mark_node.
648518334Speter
648650397Sobrien	* error.c (dump_expr): Handle an ARROW_EXPR.
648718334Speter
648850397SobrienTue May 19 15:13:39 1998  Mark Mitchell  <mmitchell@usa.net>
648918334Speter
649050397Sobrien	* decl.c (saveable_obstack): Declare.
649150397Sobrien	(pushdecl): Copy TYPE_DECLs to the same obstack as the type they
649250397Sobrien	declare, if necessary.
649318334Speter
649450397SobrienTue May 19 14:50:27 1998  Mark Mitchell  <mmitchell@usa.net>
649518334Speter
649650397Sobrien	* call.c (compare_qual): Remove.
649750397Sobrien	(is_subseq): Tweak.
649850397Sobrien	(is_properly_derived_from): New function.
649950397Sobrien	(maybe_handle_ref_bind): Likewise.
650050397Sobrien	(maybe_handle_implicit_object): Likewise.
650150397Sobrien	(compare_ics): Modify substantially to bring into conformance with
650250397Sobrien	the standard.
650350397Sobrien	* cp-tree.h (TYPE_PTRMEMFUNC_OBJECT_TYPE): New macro.
650450397Sobrien	(comp_cv_qualification): Declare.
650550397Sobrien	(comp_cv_qual_signature): Likewise.
650650397Sobrien	* typeck.c (comp_cv_qualification): Likewise.
650750397Sobrien	(comp_cv_qual_signature): Likewise.
650818334Speter
650950397SobrienTue May 19 10:05:02 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
651018334Speter
651150397Sobrien	* Makefile.in (parse.o): Depend on toplev.h.
651218334Speter
651350397Sobrien	* class.c (typecode_p): Remove prototype and definition.
651418334Speter
651550397Sobrien	* cp-tree.h (currently_open_class, is_empty_class, member_p):
651650397Sobrien	Add prototype.
651718334Speter
651850397Sobrien	* decl.c (push_overloaded_decl_top_level): Remove prototype and
651950397Sobrien	definition.
652018334Speter
652150397Sobrien	* errfn.c (cp_error): Cast function pointer `error' to (errorfn *)
652252284Sobrien	in call to `cp_thing'.
652350397Sobrien	(cp_warning): Likewise for function pointer `warning'.
652418334Speter
652550397Sobrien	* except.c (do_function_call): Remove prototype and definition.
652650397Sobrien	(call_eh_info): Wrap variable `t1' in macro NEW_EH_MODEL.
652718334Speter
652850397Sobrien	* method.c (is_java_type): Add prototype and make it static.
652918334Speter
653050397Sobrien	* parse.y: Include toplev.h.
653118334Speter
653250397Sobrien	* pt.c (type_unification): Remove unused variable `arg'.
653352284Sobrien	(instantiate_decl): Likewise for `save_ti'.
653418334Speter
653550397Sobrien	* tree.c (propagate_binfo_offsets): Likewise for `base_binfos'.
653652284Sobrien
653750397SobrienTue May 19 02:43:25 1998  Jason Merrill  <jason@yorick.cygnus.com>
653818334Speter
653950397Sobrien	* init.c (build_member_call): Handle template_ids.
654050397Sobrien	* parse.y (primary): Add global_scope template_id.
654118334Speter
654250397SobrienMon May 18 23:22:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
654318334Speter
654450397Sobrien	* decl2.c (get_sentry): Use end_temporary_allocation.
654550397Sobrien	Don't declare permanent_obstack.
654618334Speter
654750397SobrienMon May 18 12:28:44 1998  Mark Mitchell  <mmitchell@usa.net>
654818334Speter
654950397Sobrien	* parse.y (.finish_new_placement): New non-terminal.
655052284Sobrien	(unary_expr, new_type_id): Use it.
655150397Sobrien	* parse.c: Regenerated.
655252284Sobrien
655350397SobrienMon May 18 12:20:27 1998  Brendan Kehoe  <brendan@cygnus.com>
655418334Speter
655550397Sobrien	* pt.c (redeclare_class_template): Say where the original definition
655650397Sobrien	of the template-parameter's default argument appeared.
655718334Speter
655850397SobrienMon May 18 03:00:57 1998  Jason Merrill  <jason@yorick.cygnus.com>
655918334Speter
656050397Sobrien	* call.c (build_over_call): Tweak empty class handling.
656118334Speter
656250397Sobrien	* decl.c (make_typename_type): Use currently_open_class.
656318334Speter
656450397Sobrien	* class.c (instantiate_type): Don't abort on TREE_NONLOCAL_FLAG.
656518334Speter
656650397SobrienMon May 18 01:43:01 1998  Martin v. Loewis  <loewis@informatik.hu-berlin.de>
656718334Speter
656852284Sobrien	* decl.c (lookup_name_real): Don't look at IDENTIFIER_LOCAL_VALUE
656950397Sobrien	for a type unless it is one.
657018334Speter
657150397Sobrien	* class.c (finish_struct_1): Use OVL_CURRENT in error message.
657218334Speter
657350397SobrienMon May 18 01:24:08 1998  Jeffrey A Law  (law@cygnus.com)
657418334Speter
657550397Sobrien	* Makefile.in (program_transform_name, objdir): Define.
657618334Speter
657750397Sobrien	* Makefile.in (BISON): Use bison from the build tree if it exists.
657852284Sobrien	(FLEX): Likewise.
657918334Speter
658050397SobrienSun May 17 14:52:08 1998  Martin v. Loewis  <loewis@informatik.hu-berlin.de>
658118334Speter
658250397Sobrien	* typeck.c (type_unknown_p): Return true for TREE_LIST also.
658318334Speter
658450397Sobrien	* call.c (build_method_call): Use TYPE_MAIN_VARIANT on typedefs.
658518334Speter
658650397SobrienSun May 17 14:51:41 1998  Jason Merrill  <jason@yorick.cygnus.com>
658718334Speter
658850397Sobrien	* call.c (build_scoped_method_call): Likewise.
658918334Speter
659050397SobrienSun May 17 13:53:48 1998  Mark Mitchell  <mmitchell@usa.net>
659118334Speter
659250397Sobrien	* init.c (build_new_1): Call suspend_momentary around the creation
659350397Sobrien	of values that must be saved for exception handling.
659450397Sobrien	* parse.y (.build_new_placement): New non-terminal.
659550397Sobrien	(unary_expr, new_placement): Use it.
659650397Sobrien	* parse.c: Regenerated.
659752284Sobrien
659850397SobrienSun May 17 12:32:08 1998  Jason Merrill  <jason@yorick.cygnus.com>
659918334Speter
660050397Sobrien	* decl.c (duplicate_decls): Use CANONICAL_TYPE_VARIANT to compare
660150397Sobrien	old and new types.
660218334Speter
660350397Sobrien	* pt.c (tsubst): Make sure that BINFO_TYPE of new binfos is the
660450397Sobrien	canonical type.
660518334Speter
660650397Sobrien	* call.c (build_over_call): Don't use IS_SIGNATURE on a namespace.
660718334Speter
660850397SobrienFri May 15 20:28:00 1998  Jason Merrill  <jason@yorick.cygnus.com>
660918334Speter
661050397Sobrien	* decl.c (start_decl): Revert problem change.
661118334Speter
661250397Sobrien	* Makefile.in (CONFLICTS): Fix.
661318334Speter
661450397SobrienFri May 15 15:34:02 1998  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
661518334Speter
661652284Sobrien	* decl.c (duplicate_decls): Clean up, add DECL_DATA_AREA bits.
661718334Speter
661850397SobrienFri May 15 00:46:05 1998  Jason Merrill  <jason@yorick.cygnus.com>
661918334Speter
662050397Sobrien	* class.c (finish_struct_1): Use BINFO_SIZE.
662118334Speter
662250397Sobrien	* decl.c (start_decl): Use 'tem'.
662318334Speter
662452284SobrienThu May 14 16:30:47 1998  Andrew MacLeod  <amacleod@cygnus.com>
662518334Speter
662650397Sobrien	* exception.cc: Include eh-common.h.
662752284Sobrien	(struct cp_eh_info): Add eh_info struct with NEW_EH_MODEL.
662850397Sobrien	(__cplus_type_matcher): First stab at new C++ runtime type matcher.
662950397Sobrien	(__cp_push_exception): Initialize eh_info struct as well.
663050397Sobrien	* except.c: Remove local structs and include eh-common.h.
663150397Sobrien	(init_exception_processing): Set language and version codes.
663252284Sobrien	(call_eh_info): Add presence of eh_info to runtime description of
663350397Sobrien	struct cp_eh_info.
663452284Sobrien	(expand_end_eh_spec): Call start_catch_block() and end_catch_block().
663552284Sobrien	* semantics.c (finish_try_block): Call start_catch_block() and
663650397Sobrien	end_catch_block().
663752284Sobrien	* parse.y (function_try_block): Call start_catch_block() and
663850397Sobrien	end_catch_block().
663918334Speter
664050397SobrienThu May 14 12:27:34 1998  Brendan Kehoe  <brendan@cygnus.com>
664118334Speter
664250397Sobrien	* typeck.c (original_type): New function.
664350397Sobrien	(common_type): Use it to get the DECL_ORIGINAL_TYPE for T1 and T2,
664450397Sobrien	to see if they're actually the same.
664550397Sobrien	* cp-tree.h (original_type): Declare.
664618334Speter
664750397SobrienWed May 13 12:54:30 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
664818334Speter
664950397Sobrien	* Makefile.in (lex.o): Depend on output.h.
665052284Sobrien
665150397Sobrien	* call.c (add_function_candidate): Remove unused variable `cand'.
665250397Sobrien	(add_conv_candidate): Likewise.
665350397Sobrien	(build_builtin_candidate): Likewise.
665452284Sobrien
665550397Sobrien	* cp-tree.h: Add prototype for `types_overlap_p'.
665618334Speter
665750397Sobrien	* decl.c (signal_catch): Mark parameter `sig' with ATTRIBUTE_UNUSED.
665818334Speter
665950397Sobrien	* decl2.c (merge_functions): Remove unused variables `tmp' and
666050397Sobrien	`tempn'.
666118334Speter
666250397Sobrien	* error.c (expr_as_string): Mark parameter `v' with ATTRIBUTE_UNUSED.
666350397Sobrien	(code_as_string): Likewise.
666450397Sobrien	(language_as_string): Likewise.
666550397Sobrien	(parm_as_string): Likewise.
666650397Sobrien	(op_as_string): Likewise.
666750397Sobrien	(assop_as_string): Likewise.
666850397Sobrien	(cv_as_string): Likewise.
666918334Speter
667050397Sobrien	* lex.c: Include output.h.
667118334Speter
667250397Sobrien	* pt.c (type_unification): Cast first argument of `bzero' to a char*.
667318334Speter
667450397Sobrien	* search.c (dfs_no_overlap_yet): Mark parameter `t' with
667550397Sobrien	ATTRIBUTE_UNUSED.
667618334Speter
667750397Sobrien	* tinfo.cc (__class_type_info::dcast): Change the type of variable
667850397Sobrien	`i' from int to size_t.
667918334Speter
668050397Sobrien	* typeck.c (language_lvalue_valid): Mark parameter `exp' with
668150397Sobrien	ATTRIBUTE_UNUSED.
668218334Speter
668350397SobrienTue May 12 21:37:49 1998  Jason Merrill  <jason@yorick.cygnus.com>
668418334Speter
668550397Sobrien	* error.c (dump_simple_decl): Use DECL_CLASS_SCOPE_P and/or
668650397Sobrien	DECL_NAMESPACE_SCOPE_P.
668750397Sobrien	(lang_decl_name): Likewise.
668850397Sobrien	* pt.c (tsubst_friend_function, tsubst): Likewise.
668952284Sobrien	* decl.c (pushdecl, redeclaration_error_message, start_decl,
669050397Sobrien	cp_finish_decl, start_function): Likewise.
669150397Sobrien	* class.c (finish_struct_1): Likewise.
669250397Sobrien	* call.c (build_over_call): Likewise.
669350397Sobrien	(compare_ics): Use DERIVED_FROM_P.
669418334Speter
669550397SobrienTue May 12 07:24:18 1998  Mark Mitchell  <mmitchell@usa.net>
669618334Speter
669750397Sobrien	* cp-tree.h (CANONICAL_TYPE_VARIANT): New macro.
669850397Sobrien	* method.c (build_mangled_name): Use it.
669950397Sobrien	(build_decl_overload_real): Likewise.
670018334Speter
670150397Sobrien	* error.c (dump_simple_decl): New function, broken out from ...
670250397Sobrien	(dump_decl): Use it.
670318334Speter
670450397SobrienMon May 11 11:38:07 1998  Mark Mitchell  <mmitchell@usa.net>
670518334Speter
670650397Sobrien	* ptree.c (lang_print_xnode): Add missing `break'.
670718334Speter
670850397Sobrien	* pt.c (tsubst): Remove duplicate check for IDENTIFIER_NODE.
670918334Speter
671050397Sobrien	* call.c (add_template_candidate): Adjust for changes to
671152284Sobrien	fn_type_unification.
671250397Sobrien	(add_template_candidate_real): Likewise.
671350397Sobrien	(add_template_conv_candidate): Likewise.
671450397Sobrien	(build_user_type_conversion_1): Likewise.
671550397Sobrien	(build_new_function_call): Likewise.
671650397Sobrien	(build_object_call): Likewise.
671750397Sobrien	(build_new_op): Likewise.
671850397Sobrien	(build_new_method_call): Likewise.
671950397Sobrien	* class.c (instantiate_type): Likewise.
672050397Sobrien	* cp-tree.h (unification_kind_t): New type.
672150397Sobrien	(fn_type_unification): Adjust prototype.
672250397Sobrien	(type_unificaiton): Likewise.
672350397Sobrien	* pt.c (UNIFY_ALLOW_NONE): New macro.
672450397Sobrien	(UNIFY_ALLOW_MORE_CV_QUAL): Likewise.
672550397Sobrien	(UNIFY_ALLOW_LESS_CV_QUAL): Likewise.
672650397Sobrien	(UNIFY_ALLOW_DERIVED): Likewise.
672750397Sobrien	(unify): Change prototype.
672850397Sobrien	(maybe_adjust_types_for_deduction): New function.
672950397Sobrien	(check_cv_quals_for_unify): Likewise.
673050397Sobrien	(determine_specialization): Adjust.
673150397Sobrien	(fn_type_unification): Likewise.
673250397Sobrien	(type_unification): Likewise.
673350397Sobrien	(type_unification_real): Likewise.  Use
673450397Sobrien	maybe_adjust_types_for_deduction.  Fix mishandling of
673550397Sobrien	back-unification of template functions passed as arguments.  Pass
673650397Sobrien	appropriate combination of UNIFY_ALLOW_* to unify.
673750397Sobrien	(unify): Remove unused NTPARMS parameter.  Use
673850397Sobrien	check_cv_quals_for_unify.  Remove bogus code that allowed
673950397Sobrien	too-generous unification in order to adhere more closely to standard.
674050397Sobrien	(get_bindings_real): Adjust.
674150397Sobrien	(get_class_bindings): Likewise.
674218334Speter
674350397Sobrien	* method.c (build_overload_identifier): Only use the innermost
674450397Sobrien	template arguments when mangling.
674550397Sobrien	* pt.c (tsubst_template_argument_vector): New function.
674650397Sobrien	(complete_template_args): Deal with the situation where the
674750397Sobrien	extra_args contain more than one level of arguments.
674850397Sobrien	(lookup_template_class): Deal with member template classes, which
674950397Sobrien	may have more than one level of arguments.
675050397Sobrien	(tsubst): Don't tsbust into the TREE_TYPE of an IDENTIFIER_NODE.
675150397Sobrien	Improve handling of member template classes.  Use
675250397Sobrien	DECL_PRIMARY_TEMPLATE instead of inline expansion.  Use
675350397Sobrien	tsubst_template_argument_vector where appropriate.
675450397Sobrien	(regenerate_decl_from_template): Break out from ...
675550397Sobrien	(instantiate_decl): Here.
675652284Sobrien
675750397Sobrien	* lex.c (yyprint): Remove TYPENAME_ELLIPSIS.
675850397Sobrien	* parse.h: Regenerated.
675950397Sobrien	* parse.c: Really regenerated.
676052284Sobrien
676150397Sobrien	* cp-tree.h (finish_unary_op_expr): New function.
676250397Sobrien	(finish_id_expr): Likewise.
676350397Sobrien	(begin_new_placement): Likewise.
676450397Sobrien	(finish_new_placement): Likewise.
676550397Sobrien	(finish_declarator): Likewise.
676650397Sobrien	(finish_translation_unit): Likewise.
676750397Sobrien	(finish_parmlist): Likewise.
676850397Sobrien	(begin_class_definition): Likewise.
676950397Sobrien	(finish_class_definition): Likewise.
677050397Sobrien	(finish_default_args): Likewise.
677150397Sobrien	(finish_inline_definitions): Likewise.
677250397Sobrien	* parse.y (GCC_ASM_KEYWORD): Remove.
677350397Sobrien	(TYPENAME_ELLIPSIS): Likewise.
677450397Sobrien	* parse.c: Regenerated.
677550397Sobrien	Use new functions in semantics.c in the actions for many rules.
677650397Sobrien	* gxx.gperf (GCC_ASM_KEYWORD): Just use ASM_KEYWORD.
677750397Sobrien	* hash.h: Regenerated.
677850397Sobrien	* semantics.c (finish_expr_stmt): Allow NULL expr.
677950397Sobrien	(finish_unary_op_expr): New function, containing
678050397Sobrien	code previously in parse.y.
678150397Sobrien	(finish_id_expr): Likewise.
678250397Sobrien	(begin_new_placement): Likewise.
678350397Sobrien	(finish_new_placement): Likewise.
678450397Sobrien	(finish_declarator): Likewise.
678550397Sobrien	(finish_translation_unit): Likewise.
678650397Sobrien	(finish_parmlist): Likewise.
678750397Sobrien	(begin_class_definition): Likewise.
678850397Sobrien	(finish_class_definition): Likewise.
678950397Sobrien	(finish_default_args): Likewise.
679050397Sobrien	(finish_inline_definitions): Likewise.
679118334Speter
679250397SobrienSun May 10 23:43:13 1998  Mark Mitchell  <mmitchell@usa.net>
679318334Speter
679450397Sobrien	* typeck.c (build_c_cast): Don't decay arrays and functions to
679550397Sobrien	pointer type when converting to a class type.
679618334Speter
679750397SobrienSun May 10 22:53:56 1998  Jason Merrill  <jason@yorick.cygnus.com>
679818334Speter
679950397Sobrien	* cp-tree.h (DECL_NAMESPACE_SCOPE_P): New macro.
680050397Sobrien	(DECL_CLASS_SCOPE_P): Likewise.
680118334Speter
680250397SobrienSun May 10 22:48:22 1998  H.J. Lu  (hjl@gnu.org)
680318334Speter
680450397Sobrien	* class.c (finish_struct_1): Use OVL_CURRENT on TREE_VEC_ELT.
680550397Sobrien	* decl2.c (constructor_name_full): Likewise.
680618334Speter
680750397SobrienSun May 10 22:48:12 1998  Mike Stump  <mrs@wrs.com>
680818334Speter
680950397Sobrien	* tree.c (mapcar): Add OVERLOAD support.
681018334Speter
681150397Sobrien	* init.c (resolve_offset_ref): We must use basetype_path before we
681250397Sobrien	destroy it with a call to convert_pointer_to.
681318334Speter
681450397SobrienSat May  9 14:44:37 1998  Jason Merrill  <jason@yorick.cygnus.com>
681518334Speter
681650397Sobrien	* class.c (currently_open_class): New fn.
681750397Sobrien	* decl.c (lookup_name_real): Use it.
681850397Sobrien	* search.c (lookup_field): Likewise.
681918334Speter
682050397SobrienFri May  8 23:32:42 1998  Martin von Loewis  <loewis@informatik.hu-berlin.de>
682118334Speter
682252284Sobrien	* cp-tree.def (OVERLOAD): New node.
682350397Sobrien	* cp-tree.h (BINDING_TYPE, SET_IDENTIFIER_GLOBAL_VALUE,
682450397Sobrien	SET_IDENTIFIER_NAMESPACE_VALUE): Define.
682550397Sobrien	(NAMESPACE_BINDING): Remove.
682650397Sobrien	(IDENTIFIER_GLOBAL_VALUE, IDENTIFIER_NAMESPACE_VALUE): Use
682750397Sobrien	namespace_binding.
682850397Sobrien	(OVL_FUNCTION, OVL_CHAIN, OVL_CURRENT, OVL_NEXT, OVL_USED):
682950397Sobrien	Define.
683050397Sobrien	(tree_overload): New struct.
683150397Sobrien	(IDENTIFIER_TYPE_VALUE): Use identifier_type_value.
683250397Sobrien	(REAL_IDENTIFIER_TYPE_VALUE): Define.
683350397Sobrien	(IDENTIFIER_HAS_TYPE_VALUE): Use IDENTIFIER_TYPE_VALUE.
683450397Sobrien	(lang_decl_flags): Remove in_namespace.
683550397Sobrien	(lang_decl): Remove chain.
683650397Sobrien	(DECL_CHAIN, DECL_NAMESPACE): Remove.
683750397Sobrien	(flag_honor_std): Declare extern.
683850397Sobrien	(identifier_type_value, pushdecl_namespace_level, push_using_decl,
683950397Sobrien	namespace_binding, set_namespace_binding,
684050397Sobrien	lookup_function_nonclass, cat_namespace_levels,
684150397Sobrien	set_decl_namespace, lookup_arg_dependent, binding_init, ovl_cons,
684250397Sobrien	scratch_ovl_cons, ovl_member, build_overload): Declare.
684350397Sobrien	(decl_list_length, get_namespace_id, current_namespace_id,
684450397Sobrien	overloaded_globals_p): Remove.
684550397Sobrien	(lookup_using_namespace, qualified_lookup_using_namespace): Change
684650397Sobrien	return type.
684750397Sobrien	(push_scratch_obstack): New macro.
684850397Sobrien	* call.c (add_function_candidate): Special-case type of OVERLOAD node.
684950397Sobrien	(build_user_conversions_1): Iterate using OVL_NEXT for ctors,
685050397Sobrien	convs, fns.
685152284Sobrien	(build_new_function_call): Iterate using OVL_CHAIN.
685250397Sobrien	Print DECL_NAME in when reporting ambiguities.
685350397Sobrien	(build_object_call): Iterate using OVL_NEXT for fns, convs.
685452284Sobrien	(build_new_op): Call lookup_function_nonclass.
685550397Sobrien	Iterate using OVL_NEXT.
685650397Sobrien	(build_op_delete_call): Change detection of members.
685750397Sobrien	Do not wrap TREE_LIST around fields and single global functions.
685850397Sobrien	(build_over_call): Don't push a class level if the context is a
685950397Sobrien	namespace.
686050397Sobrien	(build_new_method_call): Iterate using OVL_NEXT.
686150397Sobrien	* class.c (add_method): Chain overloaded members using
686250397Sobrien	build_overload.  Remove copying of method.
686350397Sobrien	(grow_method): When iterating through the obstack, expect OVERLOAD
686450397Sobrien	nodes.  Chain overload members.
686550397Sobrien	(finish_struct_methods): Chain overload members.  Unpack OVERLOAD
686650397Sobrien	nodes in call to get_baselinks.
686750397Sobrien	(duplicate_tag_error): Expect OVERLOAD nodes when unchaining.
686850397Sobrien	(finish_struct_1): Iterate over ctor using OVL_NEXT.  Handle
686950397Sobrien	fdecls that are OVERLOAD nodes.
687050397Sobrien	(validate_lhs): New function.
687150397Sobrien	(instantiate_type): Do not copy OVERLOAD nodes.  Remove dead
687252284Sobrien	code.  Use DECL_NAME in error messages.  Split code between global
687350397Sobrien	and member function processing.
687450397Sobrien	* decl.c (global_type_node): New static variable.
687550397Sobrien	(in_std): New global.
687650397Sobrien	(struct binding_level): New field usings.
687750397Sobrien	(resume_binding_level): Assert that we are not in a class.
687850397Sobrien	(toplevel_bindings_p): Just check for namespace_p or
687950397Sobrien	pseudo_global.
688050397Sobrien	(resume_level): Remove.
688150397Sobrien	(find_binding): New function.
688250397Sobrien	(binding_for_name): Call it.
688350397Sobrien	(namespace_binding, set_namespace_binding): New functions.
688450397Sobrien	(push_namespace): Associate binding level with new namespace,
688550397Sobrien	resume_binding_level for existing namespace.  Remove old code.
688650397Sobrien	Fake std by counting.
688750397Sobrien	(store_bindings): Use REAL_IDENTIFIER_TYPE_VALUE.
688850397Sobrien	(maybe_push_to_top_level): Save current namespace.
688950397Sobrien	(pop_from_top_level): Restore saved namespace.
689050397Sobrien	(pop_namespace): Call suspend_binding_level.  Remove old code.
689150397Sobrien	(cat_namespace_levels): New function.
689250397Sobrien	(set_identifier_type_value_with_scope): For namespace bindings,
689350397Sobrien	set BINDING_TYPE, and use global_type_node.
689450397Sobrien	Use REAL_IDENTIFIER_TYPE_VALUE otherwise.
689550397Sobrien	(identifier_type_value): New function.
689650397Sobrien	(pushtag): If no context, use current_namespace.
689750397Sobrien	(duplicate_decls): Don't process DECL_CHAIN.
689850397Sobrien	(pushdecl): Set DECL_CONTEXT to current_namespace, if it is not
689952284Sobrien	already set.  Never reset it to NULL_TREE.  Lookup global variables
690050397Sobrien	in their namespace.  Push overloaded templates if they are on
690150397Sobrien	namespace level.
690250397Sobrien	(pushdecl_namespace_level): New function.
690350397Sobrien	(pushdecl_top_level): Implement using pushdecl_namespace_level.
690450397Sobrien	(pushdecl_using_decl): New function.
690550397Sobrien	(overloaded_globals_p): Remove.
690650397Sobrien	(push_overloaded_decl): Create OVERLOAD nodes, and iterate through
690752284Sobrien	them.  Use namespace_binding and set_namespace_value.
690850397Sobrien	(redeclaration_error_message): Complain if the declarations come
690950397Sobrien	from different namespaces.
691050397Sobrien	(lookup_tag): On namespace level, look in the BINDING_TYPE.
691150397Sobrien	(lookup_namespace_name): Pass tree_bindings from stack.  Remove
691250397Sobrien	old code.
691350397Sobrien	(select_decl): New function.
691450397Sobrien	(lookup_name_real): Call it for qualified and unqualified lookup.
691550397Sobrien	Pass tree_bindings from the stack.
691650397Sobrien	If prefer_type is 1, also accept namespaces.
691750397Sobrien	(lookup_function_nonclass): New function.
691850397Sobrien	(init_decl_processing): Set the binding level of the global
691950397Sobrien	namespace to global_binding_level.
692050397Sobrien	Build a proper type list for __builtin_apply.
692150397Sobrien	Initialize std_node to "fake std" if flag_honor_std is set.
692250397Sobrien	Initialize global_type_node.
692350397Sobrien	Allocated bad_alloc in namespace std if flag_honor_std.
692450397Sobrien	(define_function): Set the DECL_CONTEXT to the current_namespace.
692550397Sobrien	(start_decl): A namespace is not considered as a context here.  If
692650397Sobrien	the DECL_CONTEXT is a namespace, push the decl.
692750397Sobrien	(cp_finish_decl): Check for namespaces used as initializers.
692850397Sobrien	(grokfndecl): Add namespace parameter.  Remove processing of
692950397Sobrien	DECL_CHAIN.
693050397Sobrien	(grokvardecl): Add namespace parameter.
693150397Sobrien	(grokdeclarator): Process SCOPEs that are namespaces.  For
693250397Sobrien	mangling, temporarily set the DECL_CONTEXT on anonymous structs.
693352284Sobrien	(start_function): Check for contexts that are namespaces.
693450397Sobrien	Set context for declarations that have not been pushed.
693550397Sobrien	(store_parm_decls): Check for ::main only.
693650397Sobrien	(finish_function): Likewise.
693750397Sobrien	(start_method): Check for contexts that are namespaces.
693850397Sobrien	(start_method): Remove DECL_CHAIN processing.
693950397Sobrien	* decl2.c (flag_honor_std): Declare.
694050397Sobrien	(lang_decode_option): Set it if -fhonor-std or -fnew-abi is given.
694150397Sobrien	(decl_namespace_list): New static global.
694250397Sobrien	(grok_x_components): Ignore namespaces as type contexts.
694350397Sobrien	(check_classfn): Expect OVERLOAD nodes.
694450397Sobrien	(grokfield): Remove DECL_CHAIN processing.
694550397Sobrien	(finish_file): Call cat_namespace_levels.
694650397Sobrien	(merge_functions): New function.
694750397Sobrien	(ambiguous_decl): Rewrite.
694850397Sobrien	(lookup_using_namespace): Produce tree_bindings.
694950397Sobrien	(qualified_lookup_using_namespace): Likewise.
695050397Sobrien	(set_decl_namespace, decl_namespace, current_decl_namespace,
695150397Sobrien	push_decl_namespace, pop_decl_namespace): New functions.
695250397Sobrien	(arg_lookup): New struct.
695350397Sobrien	(add_function, arg_assoc_namespace, arg_assoc_class,
695450397Sobrien	arg_assoc_type, arg_assoc_args, arg_assoc, lookup_arg_dependent):
695550397Sobrien	New functions.
695650397Sobrien	(get_namespace_id, current_namespace_id): Remove.
695750397Sobrien	(do_toplevel_using_decl): Rewrite.
695850397Sobrien	(do_class_using_decl): Complain about namespace qualifiers.
695950397Sobrien	(do_using_directive): Sorry if not on namespace level.  Complain
696050397Sobrien	about unknown namespaces.
696150397Sobrien	* error.c (dump_aggr_type): Check for namespace contexts.
696250397Sobrien	* except.c (init_exception_processing): Push terminate into std.
696350397Sobrien	* friend.c (is_friend): A namespace is not a context, here.
696450397Sobrien	* init.c (expand_member_init): Remove DECL_CHAIN processing.
696550397Sobrien	(build_offset_ref): Process OVERLOAD nodes.
696650397Sobrien	* lang-specs.h (__HONOR_STD): Define if -fnew-abi or -fhonor-std.
696750397Sobrien	* lex.c (identifier_type): Loop using OVL_CHAIN.
696850397Sobrien	(see_typename): Set looking_for_typename to 2.
696952284Sobrien	(real_yylex): Likewise.
697050397Sobrien	(do_identifier): Expect OVERLOAD nodes instead of TREE_LISTs.
697150397Sobrien	(do_scoped_id): Expect OVERLOAD nodes.
697250397Sobrien	Change calling convention for qualified_lookup_using_namespace.
697350397Sobrien	(build_lang_decl): Don't set in_namespace anymore.
697450397Sobrien	* method.c (typevec_size): New global.
697550397Sobrien	(build_overload_nested_name): Return if global_namespace.
697650397Sobrien	Otherwise, always expect a declaration context.
697750397Sobrien	(build_qualified_name): Likewise.
697850397Sobrien	Make sure we don't write beyond typevec_size.
697950397Sobrien	(build_decl_overload_real): Likewise.
698050397Sobrien	Allocate one extra slot for the namespace.
698150397Sobrien	(hack_identifier): Mark code dead.
698250397Sobrien	Process OVERLOAD and NAMESPACE_DECL nodes.
698350397Sobrien	* parse.y (program): Pop namespaces until in global namespace.
698450397Sobrien	(extdef): In a using-declaration, don't discard the identifier if
698550397Sobrien	there is no declaration.
698650397Sobrien	(left_curly): Ignore type contexts which are namespaces.
698750397Sobrien	(typename_sub2): Use IDENTIFIER_TYPE_VALUE to retrieve the type
698850397Sobrien	used as scope.
698950397Sobrien	* pt.c (template_class_depth): Expect types to be namespaces.
699050397Sobrien	(determine_specialization): Simplify by expecting OVERLOAD nodes.
699150397Sobrien	(push_template_decl): Push into namespace level.
699250397Sobrien	Reset ctx if it is a namespace.
699350397Sobrien	Set DECL_CONTEXT to current_namespace if not set already.
699450397Sobrien	Ignore real contexts that are namespaces.
699550397Sobrien	(mangle_class_name_for_template): Skip global_namespace.
699652284Sobrien	Mangle other namespaces as declarations.
699750397Sobrien	(lookup_template_function): Set type of OVERLOAD nodes to unknown.
699850397Sobrien	(lookup_template_class): Push into namespace of context.
699950397Sobrien	If the context is a namespace, set it to global_namespace.
700050397Sobrien	Use id_context for mangling.
700150397Sobrien	(for_each_template_parm): Handle OVERLOAD and NAMESPACE_DECL nodes.
700250397Sobrien	(tsubst_friend_function): Ignore namespace contexts.
700350397Sobrien	Push into namespace level.
700450397Sobrien	(tsubst): Handle NAMESPACE_DECL nodes.
700550397Sobrien	Remove DECL_CHAIN processing.
700650397Sobrien	(type_unification_real): Recognize OVERLOAD instead of TREE_LIST nodes.
700750397Sobrien	* ptree.c (print_lang_identifier): Print bindings.
700850397Sobrien	(lang_print_xnode): Print OVERLOAD nodes.
700950397Sobrien	* rtti.c (init_rtti_processing): Push type_info into std.
701050397Sobrien	* search.c (lookup_fnfields_here): Expect OVERLOAD nodes.
701150397Sobrien	(lookup_fnfields_1, get_virtuals_named_this, get_matching_virtual,
701250397Sobrien	dfs_debug_mark, dfs_pushdecls, dfs_compress_decls, add_conversions,
701350397Sobrien	lookup_fnfields_here): Likewise.
701450397Sobrien	Process all nodes, instead of going through TREE_CHAIN.
701550397Sobrien	* sig.c (build_signature_pointer_or_reference_type): Set context
701650397Sobrien	to global_namespace.
701750397Sobrien	(build_signature_table_constructor): Expect OVERLOAD nodes.
701850397Sobrien	* spew.c (yylex): Save old setting of looking_for_typename.
701950397Sobrien	* tree.c (decl_list_length): Remove.
702050397Sobrien	(binding_init): New function.
702150397Sobrien	(count_functions): Rewrite.
702250397Sobrien	(is_overloaded_fn): Expect OVERLOAD nodes.
702350397Sobrien	(really_overloaded_fn, get_first_fn, lvalue_type): Likewise.
702450397Sobrien	(ovl_cons, scratch_ovl_cons, build_overload, build_overload_after,
702550397Sobrien	ovl_member): New functions.
702650397Sobrien	* typeck.c (require_complete_type): Expect OVERLOAD nodes.
702750397Sobrien	(type_unknown_p): Likewise.
702850397Sobrien	(require_instantiated_type): Likewise.
702950397Sobrien	(build_component_ref): Declare code dead.
703050397Sobrien	(build_x_function_call): Create and expect OVERLOAD nodes.
703150397Sobrien	(build_function_call_real): Check for ::main only.
703250397Sobrien	(build_unary_op): Likewise.  Expect OVERLOAD nodes.
703350397Sobrien	(convert_for_assignment): Check for TREE_LIST before accessing
703450397Sobrien	TREE_VALUE.
703550397Sobrien	* decl.c (duplicate_decls): Check for namespace bindings instead
703650397Sobrien	of global bindings.
703750397Sobrien	(pushdecl, push_overloaded_decl, lookup_tag, lookup_name_real,
703852284Sobrien	lookup_name_current_level, start_decl, xref_tag,
703950397Sobrien	finish_enum): Likewise.
704050397Sobrien	* init.c (build_offset_ref): Likewise.
704150397Sobrien	* search.c (lookup_field): Likewise.
704250397Sobrien	(lookup_fnfields): Likewise.
704350397Sobrien	(dfs_debug_mark): Likewise.
704450397Sobrien	* decl.c (poplevel): Use SET_IDENTIFIER_TYPE_VALUE.
704550397Sobrien	(poplevel_class, pop_from_top_level): Likewise.
704650397Sobrien	* decl2.c (finish_method): Likewise.
704750397Sobrien	* class.c (build_vtable): Use SET_IDENTIFIER_GLOBAL_VALUE.
704850397Sobrien	* decl.c (record_builtin_type): Likewise.
704950397Sobrien	(init_decl_processing, grokfndecl): Likewise.
705050397Sobrien	* lex.c (get_time_identifier, do_identifier, do_scoped_id): Likewise.
705150397Sobrien	(make_lang_type): Likewise.
705250397Sobrien	* parse.y (make_thunk): Likewise.
705350397Sobrien	* pt.c (tsubst): Likewise.
705450397Sobrien	* tree.c (debug_binfo): Likewise.
705552284Sobrien	* exception.cc, new.cc, new1.cc, new2.cc, tinfo.cc, tinfo.h,
705650397Sobrien	tinfo2.cc, inc/new.h: Add std qualifications.
705750397Sobrien	* inc/new: Wrap with namespace std if __HONOR_STD.
705850397Sobrien	* inc/typeinfo: Likewise.
705918334Speter
706050397SobrienFri May  8 00:43:50 1998  Jason Merrill  <jason@yorick.cygnus.com>
706118334Speter
706252284Sobrien	* call.c (build_user_type_conversion_1): Handle second_conv
706350397Sobrien	properly for templates.
706418334Speter
706552284SobrienThu May  7 17:09:25 1998  Andrew MacLeod  <amacleod@cygnus.com>
706618334Speter
706750397Sobrien	* method.c (build_decl_overload_real): Set TREE_USED flag to
706850397Sobrien	zero for build_type_variants nodes as well.
706918334Speter
707050397SobrienWed May  6 19:27:09 1998  Jason Merrill  <jason@yorick.cygnus.com>
707118334Speter
707250397Sobrien	* pt.c (tsubst): Don't tsubst the type of an IDENTIFIER_NODE.
707318334Speter
707450397SobrienWed May  6 16:49:48 1998  Jim Wilson  <wilson@cygnus.com>
707518334Speter
707650397Sobrien	* Makefile.in (call.o, class.o, decl.o, decl2.o, errfn.o, error.o,
707750397Sobrien	except.o, expr.o, friend.o, init.o, lex.o, method.o, pt.o, repo.o,
707852284Sobrien	rtti.o, search.o, semantics.o, sig.o, tree.o, typeck.o, typeck2.o,
707950397Sobrien	xref.o): Add toplev.h dependencies.
708018334Speter
708150397SobrienWed May  6 16:44:58 1998  Jeffrey A Law  (law@cygnus.com)
708218334Speter
708350397Sobrien	* errfn.c (cp_error, cp_warning): Remove declarations for
708450397Sobrien	error and warning respectively.
708518334Speter
708650397SobrienWed May  6 14:28:18 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
708718334Speter
708850397Sobrien	* error.c: Convert to using ctype macros defined in system.h.
708950397Sobrien	* method.c: Likewise.
709050397Sobrien	* xref.c: Likewise.
709150397Sobrien	* lex.c: Likewise.  Also remove redundant system header stuff.
709218334Speter
709350397SobrienWed May  6 06:36:41 1998  Robert Lipe  <robertl@dgii.com>
709418334Speter
709552284Sobrien	* call.c, class.c, decl.c, decl2.c, errfn.c, error.c, except.c,
709652284Sobrien	expr.c, friend.c, init.c, lex.c, method.c, pt.c, repo.c, rtti.c,
709752284Sobrien	search.c, semantics.c, sig.c, tree.c, typeck.c, typeck2.c,
709850397Sobrien	xref.c: Add include of toplev.h.
709918334Speter
710050397SobrienWed May  6 02:33:39 1998  Jason Merrill  <jason@yorick.cygnus.com>
710118334Speter
710250397Sobrien	* tree.c (perm_manip): Also regenerate the RTL of an extern.
710350397Sobrien	(copy_to_permanent): Use end_temporary_allocation.
710418334Speter
710550397SobrienTue May  5 23:54:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
710618334Speter
710750397Sobrien	* init.c (expand_vec_init): The initialization of each array
710850397Sobrien	element is a full-expression.
710918334Speter
711052284SobrienTue May  5 18:24:13 1998  Andrew MacLeod  <amacleod@cygnus.com>
711118334Speter
711252284Sobrien	* method.c (build_mangled_name): Add a call to build_type_variant
711350397Sobrien	to get the right type.
711418334Speter
711550397SobrienTue May  5 01:25:03 1998  Jason Merrill  <jason@yorick.cygnus.com>
711618334Speter
711750397Sobrien	* Makefile.in: Add .SUFFIXES.
711818334Speter
711950397Sobrien	* cp-tree.def: Remove NAMESPACE_DECL.
712018334Speter
712150397SobrienSun May  3 01:32:14 1998  Jason Merrill  <jason@yorick.cygnus.com>
712218334Speter
712352284Sobrien	* call.c (build_over_call): Do evaluate arg even if it has empty
712450397Sobrien	class type.
712550397Sobrien	* decl.c (start_function): Don't push a member function.
712618334Speter
712750397SobrienThu Apr 30 18:59:23 1998  Jim Wilson  <wilson@cygnus.com>
712818334Speter
712950397Sobrien	* Makefile.in (g++FAQ.info): Put -o option before input file.
713018334Speter
713152284SobrienThu Apr 30 13:05:33 1998  Andrew MacLeod  <amacleod@cygnus.com>
713218334Speter
713350397Sobrien	* gxxint.texi: Add info for squangling codes K and B.
713418334Speter
713550397SobrienTue Apr 28 13:22:01 1998  Mark Mitchell  <mmitchell@usa.net>
713618334Speter
713750397Sobrien	* semantics.c (begin_stmt_expr): Avoid duplicating the effect of
713850397Sobrien	the expression in templates.
713950397Sobrien	(finish_stmt_expr): Likewise.
714018334Speter
714150397Sobrien1998-04-28  Brendan Kehoe  <brendan@cygnus.com>
714218334Speter
714350397Sobrien	* decl2.c (ambiguous_decl): Fix NAME parm to be a tree, not int.
714418334Speter
714550397SobrienMon Apr 27 13:58:10 1998  Mark Mitchell  <mmitchell@usa.net>
714618334Speter
714750397Sobrien	* decl.c (maybe_push_to_top_level): Always clear
714850397Sobrien	current_template_parms and processing_template_decl.
714950397Sobrien	(pushtag): Remove check of current_class_type and some comments,
715050397Sobrien	since maybe_push_to_top_level no longer creates confusion.
715118334Speter
715250397SobrienSun Apr 26 12:10:18 1998  Mark Mitchell  <mmitchell@usa.net>
715318334Speter
715450397Sobrien	* cp-tree.h (CLASSTYPE_IS_TEMPLATE): New macro.
715550397Sobrien	(DECL_CLASS_TEMPLATE_P): Likewise.
715650397Sobrien	(DECL_PRIMARY_TEMPLATE): Likewise.
715750397Sobrien	(PRIMARY_TEMPLATE_P): Use it.
715850397Sobrien	(push_template_decl_real): New function.
715950397Sobrien	(redeclare_class_template): Take new template parameters as
716052284Sobrien	input.
716150397Sobrien	(is_specialization_of): New function.
716250397Sobrien	(comp_template_args): Declare.
716350397Sobrien	* decl.c (pushtag): Handle friend template classes.
716450397Sobrien	(xref_tag): Likewise.  Use new calling convention for
716550397Sobrien	redeclare_class_template.
716650397Sobrien	* decl2.c (grok_x_components): Handle friend templates.
716750397Sobrien	* friend.c (is_friend): Use is_specialization_of where
716850397Sobrien	appropriate.  Deal with friend class templates.
716950397Sobrien	(make_friend_class): Let a class template be friends with itself.
717050397Sobrien	* pt.c (comp_template_args): Remove declaration.
717150397Sobrien	(tsubst_friend_class): New function.
717250397Sobrien	(push_template_decl_real): New function.
717350397Sobrien	(push_template_decl): Use it.
717450397Sobrien	(redeclare_class_template): Adjust for new calling convention.
717550397Sobrien	(comp_template_args): Give it external linkage.
717650397Sobrien	(instantiate_class_type): Use tsubst_friend_class to deal
717750397Sobrien	with friend templates.
717850397Sobrien	* typeck.c (comptypes): Use comp_template_args, rather than
717950397Sobrien	expanding it inline.
718052284Sobrien	* parse.y (component_decl): Handle a nested template type
718150397Sobrien	like other component type declarations.
718218334Speter
718350397Sobrien	* pt.c (check_explicit_specialization): Handle overloaded
718450397Sobrien	constructors correctly.
718518334Speter
718650397Sobrien	* pt.c (mabybe_get_template_decl_from_type_decl): New function.
718750397Sobrien	(lookup_template_class): Use it.
718818334Speter
718950397SobrienThu Apr 23 21:19:06 1998  Jason Merrill  <jason@yorick.cygnus.com>
719018334Speter
719150397Sobrien	* cp-tree.def: Add WRAPPER.  USER_CONV now only has two ops.
719250397Sobrien	* cp-tree.h: Add WRAPPER support.
719350397Sobrien	* call.c (add_candidate): Split out from add_*_candidate fns.
719450397Sobrien	(build_over_call): Take the candidate instead of function and args.
719550397Sobrien	Enforce access control here.  Emit overload warnings here.
719650397Sobrien	(add_warning): New fn.
719750397Sobrien	(joust): Add WARN parm.  If not set, call add_warning instead of
719852284Sobrien	printing a warning.  Re-enable some warnings.
719950397Sobrien	(tourney): Pass it.
720050397Sobrien	(convert_like): Adjust.
720150397Sobrien	(build_new_op): Adjust.
720250397Sobrien	(build_new_function_call): Adjust.
720350397Sobrien	(build_user_type_conversion_1): Adjust.
720450397Sobrien	(USER_CONV_FN): Adjust.
720552284Sobrien	* tree.c (build_expr_wrapper, build_expr_ptr_wrapper,
720650397Sobrien	build_int_wrapper): New fns.
720718334Speter
720850397SobrienThu Apr 23 18:27:53 1998  Mark P. Mitchell  <mmitchell@usa.net>
720918334Speter
721050397Sobrien	* pt.c (unify): Fix typo in previous change.
721118334Speter
721250397SobrienThu Apr 23 09:32:58 1998  Jason Merrill  <jason@yorick.cygnus.com>
721318334Speter
721450397Sobrien	* error.c (dump_type_real): Declare canonical_name.
721518334Speter
721650397Sobrien	* typeck.c (comp_target_types): Fix PMFs.
721718334Speter
721850397SobrienWed Apr 22 13:24:48 1998  Mark Mitchell  <mmitchell@usa.net>
721918334Speter
722050397Sobrien	* class.c (finish_struct): Set TREE_PRIVATE and TREE_PROTECTED for
722150397Sobrien	the DECL_RESULTs of a member TEMPLATE_DECL, not just the
722250397Sobrien	TEMPLATE_DECL.
722318334Speter
722452284Sobrien	* pt.c (tsubst): Decrease the template-level of
722552284Sobrien	TEMPLATE_TEMPLATE_PARMS.  Likewise for the DECL_INITIAL of a
722652284Sobrien	TEMPLATE_PARM_INDEX.
722752284Sobrien	(template_decl_level): New function.
722852284Sobrien	(unify): Make sure to record unifications for template
722952284Sobrien	parameters, even when the parameters exactly match the arguments.
723052284Sobrien	Combine duplicated code for TEMPLATE_TEMPLATE_PARMs and
723152284Sobrien	TEMPLATE_TYPE_PARMS.  Don't try to unify template parameters that
723252284Sobrien	aren't from the level we're currently working on.
723318334Speter
723450397SobrienTue Apr 21 22:00:04 1998  Mark Mitchell  <mmitchell@usa.net>
723518334Speter
723650397Sobrien	* errfn.c (cp_thing): Use xrealloc, not xmalloc, to copy memory.
723718334Speter
723850397Sobrien	* decl2.c (check_member_template): Set DECL_IGNORED for member
723950397Sobrien	class templates, too.
724018334Speter
724150397Sobrien	* decl2.c (grokfield): Remangle the name of a member TYPE_DECL.
724218334Speter
724350397SobrienTue Apr 21 18:59:11 1998  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
724418334Speter
724550397Sobrien	* decl.c (duplicate_decls): Only check DECL_FRIEND_P if function.
724618334Speter
724750397SobrienTue Apr 21 14:22:00 1998  Jeffrey A Law  (law@cygnus.com)
724818334Speter
724950397Sobrien	* cp-tree.h (intTI_type_node, unsigned_intTI_type_node): Declare.
725050397Sobrien	* decl.c (intTI_type_node, unsigned_intTI_type_node): Define.
725150397Sobrien	(init_decl_processing): Handle TI types.
725250397Sobrien	* typeck.c (unsigned_type, signed_type): Handle TI types.
725318334Speter
725450397SobrienSat Apr 18 15:25:21 1998  Jim Wilson  <wilson@cygnus.com>
725518334Speter
725650397Sobrien	* g++spec.c (lang_specific_driver): New argument in_added_libraries.
725750397Sobrien	New local added_libraries.  Increment count when add library to
725850397Sobrien	arglist.
725918334Speter
726050397SobrienFri Apr 17 21:25:00 1998  Mark Mitchell  <mmitchell@usa.net>
726118334Speter
726250397Sobrien	* cp-tree.h (type_as_string_real): New function.
726350397Sobrien	* pt.c (mangle_class_name_for_template): Use it.
726450397Sobrien	* error.c (dump_aggr_type): Change prototype.
726550397Sobrien	(dump_type_prefix): Likewise.
726650397Sobrien	(dump_type_suffix): Likewise.
726750397Sobrien	(dump_type_real): Convert from dump_type.  If desired, the
726850397Sobrien	"canonica" name of a typedef, i.e., the name of the underlying
726950397Sobrien	type, can be printed.
727050397Sobrien	(dump_type): Call dump_type_real.
727118334Speter
727250397SobrienFri Apr 17 14:30:45 1998  Jason Merrill  <jason@yorick.cygnus.com>
727318334Speter
727450397Sobrien	* decl2.c (lang_decode_option): -fnew-abi implies -fvtable-thunks.
727518334Speter
727650397Sobrien	* typeck.c (comp_target_types): Tweak pedantic case.
727750397Sobrien	(comp_target_parms): Tweak pedantic case.  Clean up somewhat.
727850397Sobrien	Return -1 or 1 instead of 1 or 2.
727950397Sobrien	(compparms): Remove STRICT handling.
728050397Sobrien	(convert_for_assignment): Fix handling of pmfs.
728118334Speter
728250397SobrienFri Apr 17 14:04:16 1998  Mark Mitchell  <mmitchell@usa.net>
728318334Speter
728450397Sobrien	* typeck.c (comp_target_types): Handle references like pointers.
728550397Sobrien	(comp_target_parms): Note that return code from comp_target_types
728650397Sobrien	can be negative to indicate failure.
728718334Speter
728850397SobrienFri Apr 17 09:10:52 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
728918334Speter
729050397Sobrien	* Make-lang.in (c++.all.build): Don't depend on $(DEMANGLER_PROG),
729150397Sobrien	which requires a working target compiler to build.
729218334Speter
729350397SobrienFri Apr 17 08:57:35 1998  Jeffrey A Law  (law@cygnus.com)
729418334Speter
729550397Sobrien	* tree.c (avoid_overlap): Add prototype.
729618334Speter
729750397Sobrien	* spew.c (num_tokens): Add prototype.
729850397Sobrien	(nth_noken, add_token, consume_token, debug_yychar): Likewise.
729918334Speter
730050397Sobrien	* search.c (dfs_check_overlap): Add prototype.
730150397Sobrien	(dfs_no_overlap_yet): Likewise.
730218334Speter
730350397Sobrien	* pt.c (original_template): Add prototype.
730450397Sobrien	(inline_needs_template_parms): Likewise.
730550397Sobrien	(push_inline_template_parms_recursive): Likewise.
730650397Sobrien	(retrieve_specialization, register_specialization): Likewise.
730750397Sobrien	(print_candidates, reduce_template_parm_level): Likewise.
730850397Sobrien	(build_template_decl, mark_template_parm): Likewise.
730950397Sobrien	(tsubst_friend_function, get_bindings_real): Likewise.
731018334Speter
731150397Sobrien	* method.c (start_squangling): Add prototype.
731250397Sobrien	(end_squangling, check_ktype, issue_ktype): Likewise.
731350397Sobrien	(build_overloaded_scope_ref, check_btype): Likewise.
731450397Sobrien	(build_mangled_template_parm_index): Likewise.
731518334Speter
731650397Sobrien	* lex.c (init_cpp_parse): Add prototype.
731750397Sobrien	(handle_cp_pragma, handle_sysv_pragma): Likewise.
731850397Sobrien	(reduce_cmp, token_cmp): Likewise.
731918334Speter
732050397Sobrien	* except.c (call_eh_info): Add prototype.
732150397Sobrien	(push_eh_info, get_eh_info, get_eh_value, get_eh_type): Likewise.
732250397Sobrien	(get_eh_caught, get_eh_handlers, do_pop_exception): Likewise.
732318334Speter
732450397Sobrien	* decl2.c (is_namespace_ancestor): Add prototype.
732550397Sobrien	(namespace_ancestor, add_using_namespace): Likewise.
732650397Sobrien	(ambiguous_decl): Likewise.
732718334Speter
732850397Sobrien	* decl.c (indent): Add prototype.
732918334Speter
733050397Sobrien	* call.c (add_template_candidate_real): Add prototype.
733118334Speter
733250397SobrienFri Apr 17 01:57:12 1998  Jason Merrill  <jason@yorick.cygnus.com>
733318334Speter
733450397Sobrien	* decl2.c (build_expr_from_tree): Just return a PMF.
733518334Speter
733650397SobrienFri Apr 17 00:45:12 1998  Mark Mitchell  <mmitchell@usa.net>
733718334Speter
733850397Sobrien	* typeck2.c (process_init_constructor): Don't strip cv-qualifiers
733950397Sobrien	when doing initializations.
734018334Speter
734150397Sobrien	* pt.c (unify): Use comptypes to compare type args.
734218334Speter
734350397SobrienFri Apr 17 00:24:22 1998  Jason Merrill  <jason@yorick.cygnus.com>
734418334Speter
734550397Sobrien	* decl.c (duplicate_decls): Fix check for when it's safe to free
734650397Sobrien	the new decl.
734718334Speter
734850397Sobrien	* pt.c (mangle_class_name_for_template): Don't pass a typedef type
734950397Sobrien	to type_as_string.
735018334Speter
735150397SobrienThu Apr 16 17:47:30 1998  Jeffrey A Law  (law@cygnus.com)
735218334Speter
735350397Sobrien	* pt.c (build_template_parm_index): Add prototype.
735418334Speter
735550397Sobrien	* search.c (my_tree_cons): Don't clear words outside the
735650397Sobrien	newly allocated node.
735718334Speter
735850397SobrienWed Apr 15 15:34:44 1998  Dave Brolley  <brolley@cygnus.com>
735918334Speter
736050397Sobrien	* lex.c (init_parse): Now returns char* containing the filename.
736118334Speter
736250397SobrienWed Apr 15 13:20:06 1998  John Carr  <jfc@mit.edu>
736350397Sobrien			  Jeff Law   <law@cygnus.com>
736418334Speter
736550397Sobrien	* errfn.c: Rework to avoid problems when HOST_WIDE_INT is longer
736650397Sobrien	than a pointer.
736718334Speter
736850397SobrienSun Apr 12 22:31:19 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
736918334Speter
737050397Sobrien	* cvt.c (cp_convert_to_pointer): Use TYPE_PRECISION.
737118334Speter
737250397SobrienFri Apr 10 12:16:49 1998  Benjamin Kosnik  <bkoz@loony.cygnus.com>
737318334Speter
737450397Sobrien	* decl.c (duplicate_decls): Don't warn for redundant decls if
737552284Sobrien	friend: let add_friend take care of it.
737618334Speter
737750397SobrienThu Apr  9 02:40:48 1998  Jason Merrill  <jason@yorick.cygnus.com>
737818334Speter
737950397Sobrien	* sig.c (build_signature_pointer_constructor): Don't set
738050397Sobrien	TREE_HAS_CONSTRUCTOR for a signature pointer.
738150397Sobrien	* cvt.c (ocp_convert): Don't force a temporary for internal structs.
738252284Sobrien	* init.c (resolve_offset_ref): Warn about implicit & on pmfs
738350397Sobrien	here, too.
738452284Sobrien	* typeck.c (build_unary_op): Only allow taking the address of a
738550397Sobrien	real constructor.
738650397Sobrien	* typeck2.c (digest_init): Simplify.
738750397Sobrien	(store_init_value): Don't pedwarn about using { } for pmfs.
738818334Speter
738950397SobrienThu Apr  9 22:16:57 1998  Per Bothner  <bothner@cygnus.com>
739018334Speter
739152284Sobrien	* cp-tree.h (start_decl):  Update prototype.
739252284Sobrien	* decl.c (start_decl):  Like the C version, new parameters
739352284Sobrien	for the attributes.  Call cplus_decl_attributes here,
739452284Sobrien	(pushdecl):  Like C version, do build_type_copy if TYPE_DECL,
739552284Sobrien	(grokdeclarator):  Pass NULL for new start_decl arguments.
739652284Sobrien	* pt.c (tsubst_expr):  Likewise.
739752284Sobrien	* parse.y:  Merge cplus_decl_attribute calls into start_decl calls.
739850397Sobrien	* typeck.c (common_type): Check TYPE_MAIN_VARIANT.
739950397Sobrien	* lex.c (build_lang_decl): Add lang_name_java.
740050397Sobrien	* class.c (push_lang_context): Add lang_name_java.
740150397Sobrien	* method.c (build_mangled_name): Check for is_java_type.
740218334Speter
740350397SobrienThu Apr  9 22:16:57 1998  Benjamin Kosnik  <bkoz@loony.cygnus.com>
740418334Speter
740550397Sobrien	* decl.c (grokdeclarator): Check TYPE_MAIN_VARIANT.
740650397Sobrien	* call.c (build_scoped_method_call): Check for TREE_CODE for
740750397Sobrien	VOID_TYPE instead of type ==  void_type_node.
740852284Sobrien	(build_method_call): Likewise.
740952284Sobrien	* decl.c (lookup_name_real): Likewise.
741052284Sobrien	(grokdeclarator): Likewise.
741152284Sobrien	(start_decl): Likewise.
741252284Sobrien	(grokparms): Likewise.
741352284Sobrien	(start_function): Likewise.
741452284Sobrien	(finish_function): Likewise.
741552284Sobrien	(start_method): Likewise.
741618334Speter
741750397SobrienThu Apr  9 00:18:44 1998  Dave Brolley  (brolley@cygnus.com)
741818334Speter
741950397Sobrien	* lex.c (finput): New variable.
742050397Sobrien	(init_cpp_parse):  Renamed from init_parse.
742150397Sobrien	(init_parse): Handle !USE_CPPLIB.  Call init_cpp_parse when finished.
742250397Sobrien	(finish_parse): New function.
742350397Sobrien	* cp-tree.h (init_lex, init_parse): Remove declarations.
742418334Speter
742550397SobrienMon Apr  6 02:25:05 1998  Jason Merrill  <jason@yorick.cygnus.com>
742618334Speter
742750397Sobrien	* call.c (build_call): Still evaluate the actual argument.
742850397Sobrien	* class.c (is_empty_class): Update for -fnew-abi.
742918334Speter
743050397Sobrien	* decl2.c: -fnew-abi implies -fsquangle.
743118334Speter
743250397Sobrien	* method.c (do_build_assign_ref): Don't do anything to copy
743350397Sobrien	an empty class.
743450397Sobrien	(do_build_copy_constructor): Likewise.
743550397Sobrien	* call.c (build_over_call): Likewise.
743618334Speter
743750397SobrienSat Apr  4 18:43:58 1998  Jason Merrill  <jason@yorick.cygnus.com>
743818334Speter
743950397Sobrien	* tree.c (avoid_overlap): Return a value.
744018334Speter
744150397SobrienSat Apr  4 12:52:35 1998  Jeffrey A Law  (law@cygnus.com)
744218334Speter
744350397Sobrien	* method.c (check_btype): Add missing argument to xrealloc.
744450397Sobrien	(check_ktype): Likewise.
744518334Speter
744650397SobrienFri Apr  3 02:22:59 1998  Jason Merrill  <jason@yorick.cygnus.com>
744718334Speter
744850397Sobrien	Implement empty base optimization.
744952284Sobrien	* class.c (finish_struct_1): Add vbase fields earlier.  Set
745050397Sobrien	CLASSTYPE_SIZE of an empty base to 0.  Types with bases can be empty.
745150397Sobrien	* search.c (dfs_check_overlap, dfs_no_overlap_yet): New fns.
745250397Sobrien	(types_overlap_p): New fn.
745350397Sobrien	* tree.c (avoid_overlap): New fn.
745450397Sobrien	(build_base_fields): Use it to avoid overlapping empty bases.
745550397Sobrien	* cp-tree.h, decl2.c, lang-options.h: Add -fnew-abi.
745618334Speter
745750397Sobrien	* decl.c (cplus_expand_expr_stmt): Strip unused INDIRECT_REFs.
745818334Speter
745950397Sobrien	Re-implement allocation of base class subobjects.
746050397Sobrien	* tree.c (unshare_base_binfos): New fn.
746150397Sobrien	(layout_basetypes): Use it.  Now handles offsets of both virtual and
746250397Sobrien	non-virtual bases, after layout_type.
746350397Sobrien	(layout_vbasetypes): Remove.
746450397Sobrien	(build_base_fields): Generate FIELD_DECLs for each non-virtual base.
746550397Sobrien	(build_vbase_pointer_fields): Split out from old layout_basetypes.
746650397Sobrien	* class.c (finish_base_struct): Lose offset handling code.
746750397Sobrien	Move nonvdtor warning here.  Don't mess with t_binfo anymore.
746850397Sobrien	(finish_struct_1): Don't mess with t_binfo anymore.  Use fns above.
746950397Sobrien	* cp-tree.h: Adjust.
747018334Speter
747150397SobrienThu Apr  2 14:25:13 1998  Jason Merrill  <jason@yorick.cygnus.com>
747218334Speter
747350397Sobrien	* cp-tree.h: Lose CLASSTYPE_VBASE_SIZE, some unused stuff.
747450397Sobrien	* decl.c, decl2.c, pt.c, ptree.c, lex.c: Likewise.
747550397Sobrien	* class.c (duplicate_tag_error): Likewise.
747650397Sobrien	(finish_struct_1): Set CLASSTYPE_SIZE, CLASSTYPE_MODE, CLASSTYPE_ALIGN.
747750397Sobrien	* tree.c (layout_vbasetypes): Update from layout_record, remove
747850397Sobrien	var_size support, use CLASSTYPE_SIZE instead of CLASSTYPE_VBASE_SIZE.
747950397Sobrien	(layout_basetypes): Likewise.
748018334Speter
748150397SobrienWed Apr  1 18:22:25 1998  Jeffrey A Law  (law@cygnus.com)
748218334Speter
748350397Sobrien	* class.c, Make sure system.h is included just after config.h.
748450397Sobrien	Delete lingering stdio and errno references too.
748550397Sobrien	* decl.c, errfn.c, parse.y, ptree.c search.c, xref.c: Likewise.
748652284Sobrien
748750397SobrienWed Apr  1 15:38:36 1998  Jason Merrill  <jason@yorick.cygnus.com>
748818334Speter
748950397Sobrien	* friend.c (is_friend): Fix access control for local classes.
749018334Speter
749150397Sobrien	* class.c (is_empty_class): New fn.
749250397Sobrien	* call.c (build_call): Don't pass empty class objects to a function.
749318334Speter
749450397SobrienWed Apr  1 14:58:35 1998  Mark Mitchell  <mmitchell@usa.net>
749518334Speter
749650397Sobrien	* call.c (build_over_call): Do name resolution for default
749750397Sobrien	arguments of function templates in the scope of the templates.
749818334Speter
749950397SobrienTue Mar 31 13:43:57 1998  Jeffrey A Law  (law@cygnus.com)
750018334Speter
750150397Sobrien	* call.c: Include system.h.  Remove includes, declarations and
750250397Sobrien	defines provided by system.h.
750350397Sobrien	* class.c, cvt.c, decl.c, decl2.c, errfn.c error.c: Likewise.
750450397Sobrien	* except.c, expr.c friend.c, g++spec.c, init.c, input.c: Likewise.
750550397Sobrien	* lex.c, parse.y, pt.c, ptree.c repo.c rtti.c, search.c: Likewise.
750650397Sobrien	* semantics.c, sig.c, spew.c, tree.c, typeck.c: Likewise.
750750397Sobrien	* typeck2.c, xref.c: Likewise.
750850397Sobrien	* Makefile.in: Dependencies updated as appropriate.
750950397Sobrien	* Make-lang.in: Likewise.
751018334Speter
751150397SobrienMon Mar 30 12:15:00 1998  Mark Mitchell  <mmitchell@usa.net>
751218334Speter
751352284Sobrien	* pt.c (fn_type_unification): Allow incomplete unification without
751450397Sobrien	an immediate error message.
751518334Speter
751650397SobrienMon Mar 30 08:55:42 1998  Jason Merrill  <jason@yorick.cygnus.com>
751718334Speter
751850397Sobrien	* tree.c (member_p): New fn.
751950397Sobrien	* decl2.c (finish_file): Only set DECL_STATIC_FUNCTION_P for
752050397Sobrien	initializing class members.
752118334Speter
752250397Sobrien	* cp-tree.def (TEMPLATE_PARM_INDEX): Class 'x'.
752350397Sobrien	* ptree.c (lang_print_xnode): Handle TEMPLATE_PARM_INDEX.
752418334Speter
752550397Sobrien	* call.c (build_method_call): Handle non-scoped destructors, too.
752650397Sobrien	* pt.c (tsubst_copy): Likewise.
752718334Speter
752850397Sobrien	* pt.c (print_template_context): Split out...
752950397Sobrien	(push_tinst_level): ...from here.
753018334Speter
753150397Sobrien	* friend.c (is_friend): Don't pass a type to decl_function_context.
753218334Speter
753350397Sobrien	* typeck.c (convert_for_initialization): Always hand off
753450397Sobrien	conversions to class type.
753518334Speter
753650397SobrienSun Mar 29 20:01:59 1998  Jason Merrill  <jason@yorick.cygnus.com>
753718334Speter
753850397Sobrien	* friend.c (is_friend): Local classes have the same access as the
753950397Sobrien	enclosing function.
754018334Speter
754150397SobrienSun Mar 29 00:47:32 1998  Jeffrey A Law  (law@cygnus.com)
754218334Speter
754350397Sobrien	* typeck.c (expand_target_expr): Delete dead function.
754418334Speter
754550397Sobrien	* search.c: Put various prototypes inside #ifdef MI_MATRIX.
754618334Speter
754750397Sobrien	* repo.c (save_string): Delete dead function.
754818334Speter
754950397Sobrien	* method.c (thunk_printable_name): Delete dead function.
755018334Speter
755150397Sobrien	* lex.c (yynextch): Delete dead function.
755218334Speter
755350397Sobrien	* expr.c (tree_extract_aggr_init): #if 0 out.
755418334Speter
755550397Sobrien	* except.c (do_unwind): Delete dead function.
755650397Sobrien	(easy_expand_asm): Likewise.
755718334Speter
755850397Sobrien	* cvt.c (build_conversion_type_1): Delete dead function.
755918334Speter
756050397Sobrien	* cp-tree.h (push_expression_obstack): Declare.
756118334Speter
756250397Sobrien	* call.c (source_type): #if 0 out.
756318334Speter
756450397Sobrien	* class.c (alter_access): Remove unused label.  Add braces
756550397Sobrien	around empty else clause.
756618334Speter
756750397Sobrien	* lex.c (yyprint): Fix argument to printf.
756818334Speter
756950397SobrienSat Mar 28 17:43:52 1998  Mark Mitchell  <mmitchell@usa.net>
757018334Speter
757150397Sobrien	* pt.c (tsubst): Clear TREE_USED for new FUNCTION_DECLs.
757218334Speter
757350397Sobrien	* pt.c (instantiate_class_template): Make sure template
757450397Sobrien	arguments are permanent.
757550397Sobrien	* init.c (resolve_offset_ref): Don't go looking around in
757650397Sobrien	template types.
757718334Speter
757850397Sobrien	* semantics.c: Add routines to handle expressions, and some
757950397Sobrien	declaration processing.
758050397Sobrien	* parse.y: Use them.
758150397Sobrien	(current_class_depth): Move declaration to cp-tree.h.
758250397Sobrien	* parse.c: Regenerated.
758350397Sobrien	* cp-tree.h: Use them.
758450397Sobrien	(current_class_depth): Declare.
758550397Sobrien	* pt.c (tsubst_copy): Use begin_stmt_expr and finish_stmt_expr.
758618334Speter
758750397SobrienFri Mar 27 20:23:18 1998  Mark Mitchell  <mmitchell@usa.net>
758818334Speter
758950397Sobrien	* error.c (dump_decl): Be a bit more explicit with template
759050397Sobrien	type arguments, when verbose.
759152284Sobrien
759250397SobrienFri Mar 27 18:16:40 1998  Jason Merrill  <jason@yorick.cygnus.com>
759318334Speter
759450397Sobrien	* inc/exception: Reorder closing braces.
759518334Speter
759650397SobrienFri Mar 27 13:22:18 1998  Mark Mitchell  <mmitchell@usa.net>
759718334Speter
759850397Sobrien	* pt.c (redeclare_class_template): New function.
759950397Sobrien	* cp_tree.h (redeclare_class_template): Declare it.
760050397Sobrien	* decl.c (xref_tag): Use it.
760118334Speter
760250397SobrienThu Mar 26 11:16:30 1998  Jason Merrill  <jason@yorick.cygnus.com>
760318334Speter
760452284Sobrien	* call.c (build_over_call): Check IS_AGGR_TYPE, not
760550397Sobrien	TYPE_LANG_SPECIFIC.
760650397Sobrien	* typeck.c (convert_arguments): Likewise.
760718334Speter
760850397Sobrien	* decl.c (grokdeclarator): Remove const and volatile from type after
760950397Sobrien	setting constp and volatilep.
761018334Speter
761150397Sobrien	* class.c (finish_struct_1): Don't warn about bool bitfield larger
761250397Sobrien	than one bit.
761318334Speter
761450397SobrienThu Mar 26 10:25:52 1998  Mark Mitchell  <mmitchell@usa.net>
761518334Speter
761650397Sobrien	* pt.c (convert_nontype_argument): STRIP_NOPS where appropriate.
761718334Speter
761850397SobrienThu Mar 26 10:24:05 1998  Mark Mitchell  <mmitchell@usa.net>
761918334Speter
762050397Sobrien	* call.c (build_object_call): Complain about ambiguous operator(),
762150397Sobrien	rather that crashing.
762250397Sobrien	(build_new_op): Likewise.
762350397Sobrien	(build_op_delete_call): Likewise.
762418334Speter
762550397SobrienThu Mar 26 10:23:24 1998  Mark Mitchell  <mmitchell@usa.net>
762618334Speter
762750397Sobrien	* cvt.c (perform_qualification_conversions): Use comp_target_types
762850397Sobrien	instead of comp_ptr_ttypes.
762918334Speter
763050397SobrienWed Mar 25 16:10:50 1998  Mark Mitchell  <mmitchell@usa.net>
763118334Speter
763250397Sobrien	* cp-tree.h (enforce_access): Declare.
763350397Sobrien	* call.c (enforce_access): Make it extern, not static.
763450397Sobrien	* class.c (alter_access): Use enforce_access; modify code for ISO
763550397Sobrien	compliance, rather than ARM rules.
763618334Speter
763750397SobrienWed Mar 25 12:10:45 1998  Kriang Lerdsuwanakij  <lerdsuwa@scf.usc.edu>
763818334Speter
763950397Sobrien	* cp-tree.h: Fix typo.
764018334Speter
764150397SobrienWed Mar 25 02:01:02 1998  Jason Merrill  <jason@yorick.cygnus.com>
764218334Speter
764350397Sobrien	* expr.c (cplus_expand_expr): Only do PCC_STATIC_STRUCT_RETURN thing
764450397Sobrien	if (aggregate_value_p (type)).
764518334Speter
764650397Sobrien	* decl2.c (constructor_name_full): Handle TYPENAME_TYPE.
764718334Speter
764850397SobrienTue Mar 24 16:12:01 1998  Mark Mitchell  <mmitchell@usa.net>
764918334Speter
765050397Sobrien	* tree.c (mapcar): When dealing with a DECL, use it's constant
765150397Sobrien	value, if any.
765250397Sobrien	* pt.c (lookup_template_class): Don't mangle the names of template
765350397Sobrien	classes whose arguments are unknown.
765418334Speter
765550397Sobrien	* pt.c (tsubst_expr): Handle GOTO_STMT correctly.
765618334Speter
765750397SobrienTue Mar 24 12:21:55 1998  Benjamin Kosnik  <bkoz@lisa.cygnus.com>
765818334Speter
765950397Sobrien	* decl.c (init_decl_processing): Set TYPE_PRECISON for bools to 1.
766018334Speter
766150397SobrienTue Mar 24 12:21:48 1998  Jim Wilson  <wilson@cygnus.com>
766218334Speter
766352284Sobrien	* decl.c (init_decl_processing): Initialize TYPE_MAX_VALUE for
766452284Sobrien	boolean_type_node to 1.
766518334Speter
766650397SobrienTue Mar 24 10:23:47 1998  Mark Mitchell  <mmitchell@usa.net>
766718334Speter
766850397Sobrien	* error.c (dump_expr): Remove unused variable `l'.
766918334Speter
767050397Sobrien	* pt.c (for_each_template_parm): New function, created by
767150397Sobrien	converting uses_template_parms.
767250397Sobrien	(tree_fn_t): New typedef.
767350397Sobrien	(uses_template_parms): Use it.
767450397Sobrien	(mark_template_parm): New function.
767550397Sobrien	(push_template_decl): Check that the argument list of a partial
767650397Sobrien	specialization uses all the template parameters.
767718334Speter
767850397Sobrien	* Make-lang.in (c++filt): Don't delete cxxmain.c after we're done
767950397Sobrien	with it; we might want it for debugging.
768050397Sobrien	* cp-tree.h (type_unification): Change interface.
768150397Sobrien	* class.c (finish_struct_1): Skip nested template types, just like
768250397Sobrien	ordinary nested types.
768350397Sobrien	(instantiate_type): Use new interface to type_unification.
768450397Sobrien	* lex.c (init_lex): Add __sz as opname for sizeof.
768550397Sobrien	* method.c (build_overload_scope_ref): New function.
768650397Sobrien	(build_overload_int): Handle complex expressions.  Set
768750397Sobrien	numeric_output_need_bar if necessary.
768850397Sobrien	(build_overload_value): Handle non-PARM_DECL nodes; this
768950397Sobrien	routine is now used by build_overload_int.  Remove some
769050397Sobrien	assignments to numeric_output_need_bar.  Use
769150397Sobrien	build_overload_scope_ref.
769250397Sobrien	(build_qualified_name): Note that some template mangled names end
769350397Sobrien	with digits, and set numeric_output_need_bar appropriately.  Use
769450397Sobrien	build_underscore_int.
769550397Sobrien	* pt.c (unify): Change interface.
769650397Sobrien	(type_unification_real): Likewise.
769750397Sobrien	(determine_specialization): Use new interfaces.
769850397Sobrien	(tsubst): Deal gracefully with situations in which the argument
769950397Sobrien	vector is not fully filled.
770050397Sobrien	(fn_type_unification): Use new interfaces.
770150397Sobrien	(type_unification): Likewise.  Remove NOP_EXPR hack.
770250397Sobrien	(type_unification_real): Likewise.
770352284Sobrien	(unify): Likewise.  Deal with unification of complex expressions.
770418334Speter
770550397SobrienMon Mar 23 12:24:37 1998  Jason Merrill  <jason@yorick.cygnus.com>
770618334Speter
770750397Sobrien	* pt.c (complete_template_args): Initialize skip properly.
770818334Speter
770950397Sobrien	* decl.c (make_typename_type): Revert.
771050397Sobrien	(make_implicit_typename): Remove.
771150397Sobrien	(lookup_name_real): Don't call it.  Call lookup_field if we see a
771250397Sobrien	TYPE_DECL from a template base.
771350397Sobrien	* search.c (lookup_field): Do implicit typename stuff.
771418334Speter
771550397SobrienSun Mar 22 00:50:42 1998  Nick Clifton  <nickc@cygnus.com>
771652284Sobrien			  Geoff Noer    <noer@cygnus.com>
771718334Speter
771850397Sobrien	* Makefile.in: Various fixes for building cygwin32 native toolchains.
771950397Sobrien	* Make-lang.in: Likewise.
772018334Speter
772150397SobrienFri Mar 20 18:07:39 1998  Kriang Lerdsuwanakij  <lerdsuwa@scf.usc.edu>
772218334Speter
772350397Sobrien	* pt.c (tsubst, TEMPLATE_TEMPLATE_PARM): Simplify.
772418334Speter
772550397SobrienFri Mar 20 10:42:07 1998  Jason Merrill  <jason@yorick.cygnus.com>
772618334Speter
772750397Sobrien	* decl.c (make_implicit_typename): Rewrite removed code.
772850397Sobrien	(make_typename_type): Call it if the type we look up comes from
772950397Sobrien	a base that uses template parms.
773018334Speter
773150397Sobrien	* pt.c (complete_template_args): Rewrite.
773250397Sobrien	(tsubst, FUNCTION_DECL): Use it.
773318334Speter
773450397SobrienFri Mar 20 08:12:43 1998  H.J. Lu  (hjl@gnu.org)
773518334Speter
773652284Sobrien	* semantics.c (finish_asm_stmt): Fix combine strings.  Call
773750397Sobrien	c_expand_asm_operands () if output_operands, input_operands or
773850397Sobrien	clobbers is not NULL_TREE.
773918334Speter
774050397SobrienFri Mar 20 00:10:19 1998  Kriang Lerdsuwanakij  <lerdsuwa@scf.usc.edu>
774118334Speter
774250397Sobrien	* pt.c (complete_template_args): New function.
774350397Sobrien	(get_bindings): Deal with specializations of function templates
774452284Sobrien	with return type containing parameters from outer class
774550397Sobrien	templates.
774650397Sobrien	(tsubst, TEMPLATE_TEMPLATE_PARM): When reducing parameter level,
774750397Sobrien	substitute arguments and compose a new type.
774818334Speter
774950397SobrienThu Mar 19 19:01:48 1998  Mark Mitchell  <mmitchell@usa.net>
775018334Speter
775150397Sobrien	* pt.c (tsubst): Clear DECL_PENDING_INLINE_INFO for new
775250397Sobrien	FUNCTION_DECLs.
775318334Speter
775450397SobrienThu Mar 19 11:51:58 1998  Jason Merrill  <jason@yorick.cygnus.com>
775518334Speter
775650397Sobrien	* decl.c (make_implicit_typename): Lose useless code.
775718334Speter
775850397Sobrien	* call.c (standard_conversion): Handle A* -> const A* properly.
775918334Speter
776052284Sobrien	* pt.c (get_bindings_real): Rename from get_bindings.  Add
776150397Sobrien	check_rettype parm.
776250397Sobrien	(get_bindings): Pass 1.
776350397Sobrien	(get_bindings_overload): Pass 0.
776418334Speter
776550397SobrienWed Mar 19 09:08:12 1998  Mark Mitchell  <mmitchell@usa.net>
776618334Speter
776750397Sobrien	* pt.c (check_explicit_specialization): When reverting a static
776850397Sobrien	member function, also remove the `this' parameter from
776950397Sobrien	last_function_parms.
777018334Speter
777150397SobrienThu Mar 19 02:27:48 1998  Jason Merrill  <jason@yorick.cygnus.com>
777218334Speter
777350397Sobrien	* pt.c (tsubst_copy, CONST_DECL): Don't bother tsubsting
777450397Sobrien	a function context.
777518334Speter
777650397Sobrien	* decl.c (store_bindings): Use free_binding_vecs.
777750397Sobrien	(pop_from_top_level): Likewise.
777818334Speter
777950397SobrienWed Mar 18 12:41:43 1998  Jason Merrill  <jason@yorick.cygnus.com>
778018334Speter
778152284Sobrien	* decl.c (make_implicit_typename): Only change the type of a
778250397Sobrien	TYPENAME_TYPE.
778318334Speter
778450397SobrienWed Mar 18 10:09:51 1998  Mark Mitchell  <mmitchell@usa.net>
778518334Speter
778650397Sobrien	* semantics.c: New file, containing routines to perform the
778750397Sobrien	semantic phase of parsing.
778850397Sobrien	* parse.y: Use it.
778950397Sobrien	* pt.c (tsubst_expr): Likewise.
779050397Sobrien	* cp-tree.h: Declare the various functions in semantics.c.
779150397Sobrien	Provide macros to access _STMT tree nodes.
779250397Sobrien	* cp-tree.def: Add ASM_STMT tree node.
779350397Sobrien	* Makefile.in, Make-lang.in: Add dependencies on and for
779450397Sobrien	semantics.c.
779552284Sobrien
779650397SobrienWed Mar 18 00:24:10 1998  Jason Merrill  <jason@yorick.cygnus.com>
779718334Speter
779850397Sobrien	* pt.c (push_template_decl): Only check primary templates.
779918334Speter
780050397Sobrien	* pt.c (check_explicit_specialization): Complain about default args
780150397Sobrien	in explicit specialization.
780218334Speter
780352284Sobrien	* parse.y (nomods_initdcl0): Also call cp_finish_decl for a
780450397Sobrien	constructor_declarator.
780518334Speter
780650397SobrienTue Mar 17 14:44:54 1998  Mark Mitchell  <mmitchell@usa.net>
780718334Speter
780850397Sobrien	* typeck2.c (build_x_arrow): Don't crash when an aggregate type
780950397Sobrien	has no overloaded operator ->.
781018334Speter
781150397Sobrien	* call.c (build_field_call): Don't crash when presented with a
781250397Sobrien	field that is actually a nested type.
781318334Speter
781450397Sobrien	* decl.c (pushtag): Deal with friend class injection in local
781550397Sobrien	classes.
781618334Speter
781750397Sobrien	* call.c (build_object_call): Don't crash if OBJ is a
781850397Sobrien	pointer-to-member-function.
781918334Speter
782050397SobrienTue Mar 17 11:40:26 1998  Jason Merrill  <jason@yorick.cygnus.com>
782118334Speter
782250397Sobrien	* pt.c (push_template_decl): Complain about template with C linkage,
782350397Sobrien	anonymous template class.
782418334Speter
782550397SobrienMon Mar 16 12:10:39 1998  Jason Merrill  <jason@yorick.cygnus.com>
782618334Speter
782750397Sobrien	* class.c (pushclass): Only use the mi_matrix stuff #ifdef MI_MATRIX.
782850397Sobrien	* search.c: Likewise.
782950397Sobrien
783052284Sobrien	* lex.c (do_pending_defargs): Only call
783150397Sobrien	maybe_{begin,end}_member_template_processing for FUNCTION_DECLs.
783250397Sobrien
783350397Sobrien	* parse.y (initdcl0_innards): Move maybeasm back into initdcl0 et al.
783450397Sobrien
783550397SobrienMon Mar 16 10:47:22 1998  Mark Mitchell  <mmitchell@usa.net>
783650397Sobrien
783750397Sobrien	* parse.y: Deal with CONSTRUCTORS in new_initializers.
783850397Sobrien
783950397SobrienMon Mar 16 10:54:21 1998  Mark Mitchell  <mmitchell@usa.net>
784050397Sobrien
784150397Sobrien	* pt.c (tsubst_copy): Deal with BIND_EXPR in a way that more
784250397Sobrien	closely mimics the behavior in parse.y.
784352284Sobrien	(tsubst_expr): Return the resulting BLOCK when making a tsubst'ing
784450397Sobrien	into a compound statement.
784552284Sobrien
784650397SobrienSun Mar 15 02:07:26 1998  Jason Merrill  <jason@yorick.cygnus.com>
784718334Speter
784850397Sobrien	* cp-tree.h (TEMPLATE_PARMS_FOR_INLINE): New macro.
784950397Sobrien	* pt.c (inline_needs_template_parms): New fn.
785050397Sobrien	(original_template): New fn.
785150397Sobrien	(push_inline_template_parms_recursive): New fn.
785250397Sobrien	(maybe_begin_member_template_processing): Use them.
785350397Sobrien	(maybe_end_member_template_processing): Likewise.
785450397Sobrien	(is_member_or_friend_template): Rename to is_member_template.
785550397Sobrien	Member functions of local classes are never member templates.
785618334Speter
785750397SobrienSun Mar 15 01:14:22 1998  Kriang Lerdsuwanakij  <lerdsuwa@scf.usc.edu>
785818334Speter
785950397Sobrien	* lex.c (do_identifier): Handle TEMPLATE_DECL that was
786050397Sobrien	added in the class scope to catch redefinition error.
786118334Speter
786252284Sobrien	* pt.c (reduce_template_parm_level): Also copy
786350397Sobrien	the DECL_TEMPLATE_PARMS field.
786418334Speter
786550397SobrienSun Mar 15 10:54:08 1998  Mark Mitchell  <mmitchell@usa.net>
786618334Speter
786750397Sobrien	* pt.c (tsubst): Clear TYPE_REFERENCE_TO when creating a
786852284Sobrien	reduced-level template type parameter.
786918334Speter
787050397SobrienSun Mar 15 12:26:02 1998  Manfred Hollstein  <manfred@s-direktnet.de>
787118334Speter
787250397Sobrien	* cp-tree.h (struct lang_decl_flags): Add needs_final_overrider.
787350397Sobrien	(DECL_NEEDS_FINAL_OVERRIDER_P): New macro.
787450397Sobrien	* class.c (override_one_vtable): Set DECL_NEEDS_FINAL_OVERRIDER_P.
787550397Sobrien	* decl.c (duplicate_decls): Propagate it.
787650397Sobrien	* typeck2.c (abstract_virtuals_error): Use two loops to emit
787750397Sobrien	abstract virtual functions and virtual functions which need a
787850397Sobrien	final overrider separately.
787952284Sobrien
788050397SobrienThu Mar 12 09:39:40 1998  Manfred Hollstein  <manfred@s-direktnet.de>
788118334Speter
788252284Sobrien	* lang-specs.h: Properly put brackets around array elements in
788350397Sobrien	initializer.
788418334Speter
788550397Sobrien	* typeck.c (build_binary_op_nodefault): Correctly place parens around
788650397Sobrien	&& and || in expression.
788718334Speter
788850397SobrienThu Mar 12 09:26:04 1998  Manfred Hollstein  <manfred@s-direktnet.de>
788918334Speter
789050397Sobrien	* call.c (default_parm_conversions): Remove prototype definition.
789150397Sobrien	(build_method_call): Remove unused variable result.
789218334Speter
789350397Sobrien	* cvt.c (ocp_convert): Remove unused variable conversion.
789418334Speter
789550397Sobrien	* decl2.c (ambiguous_decl): Add explicit parameter definition for name.
789618334Speter
789750397Sobrien	* except.c (do_unwind): #if 0 definition of unused variables fcall
789850397Sobrien	and next_pc.
789918334Speter
790052284Sobrien	* expr.c (extract_scalar_init): #if 0 prototype and function
790150397Sobrien	definition.
790218334Speter
790350397Sobrien	* init.c (expand_aggr_init_1): Remove unused variable init_type.
790450397Sobrien	(build_new_1): Remove unused variable t.
790518334Speter
790650397Sobrien	* pt.c (instantiate_class_template): Remove unused variable newtag;
790750397Sobrien	cast called function return value to void.
790850397Sobrien	(do_decl_instantiation): Remove unused variables name and fn.
790918334Speter
791050397Sobrien	* tree.c (get_type_decl): Add default return to shut up compiler from
791150397Sobrien	complaining control reaches end of non-void function.
791218334Speter
791350397Sobrien	* typeck.c (build_x_conditional_expr): Remove unused variable rval.
791418334Speter
791550397SobrienThu Mar 12 09:12:15 1998  Manfred Hollstein  <manfred@s-direktnet.de>
791618334Speter
791750397Sobrien	* call.c (default_parm_conversions): Remove prototype definition.
791850397Sobrien	(build_method_call): Remove unused variable result.
791950397Sobrien	(build_over_call): Add default case in enumeration switch.
792018334Speter
792150397SobrienThu Mar 12 08:39:13 1998  Manfred Hollstein  <manfred@s-direktnet.de>
792218334Speter
792350397Sobrien	* decl2.c (lang_decode_option): Change j's type to size_t.
792418334Speter
792550397Sobrien	* tree.c (layout_vbasetypes): record_align and desired_align are of
792650397Sobrien	type unsigned int; const_size and nonvirtual_const_size likewise.
792718334Speter
792850397SobrienWed Mar 11 07:25:20 1998  Mark Mitchell  <mmitchell@usa.net>
792918334Speter
793050397Sobrien	* parse.y (new_initializer): Make sure all initializers are
793150397Sobrien	lists.
793218334Speter
793350397SobrienTue Mar 10 07:32:36 1998  Mark Mitchell  <mmitchell@usa.net>
793418334Speter
793550397Sobrien	* decl2.c (import_export_decl): Mark tinfo functions for
793650397Sobrien	cv-qualified versions of class types as DECL_NOT_REALLY_EXTERN.
793718334Speter
793850397SobrienFri Mar  6 23:27:35 1998  Jeffrey A Law  (law@cygnus.com)
793918334Speter
794050397Sobrien	* method.c: Fix typo.
794118334Speter
794250397SobrienFri Mar  6 10:06:59 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
794318334Speter
794452284Sobrien	* method.c: Include "system.h" to get stdlib.h, stdio.h,
794552284Sobrien	ctype.h, string.h, etc.
794652284Sobrien	(issue_nrepeats): Add default case in enumeration switch.
794752284Sobrien	(check_btype): Likewise.
794852284Sobrien	(process_overload_item): Likewise.
794918334Speter
795052284Sobrien	* Makefile.in (method.o): Depend on system.h.
795152284Sobrien
795250397SobrienWed Mar  4 22:26:53 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
795318334Speter
795450397Sobrien	* lex.c (do_scoped_id): Fix parenthesizing.
795518334Speter
795650397SobrienWed Mar  4 12:11:53 1998  Michael Tiemann  <tiemann@axon.cygnus.com>
795718334Speter
795850397Sobrien	* rtti.c (get_tinfo_fn_dynamic): If this function is called an
795950397Sobrien	FLAG_RTTI is unset, initialize type info machinery and continue
796050397Sobrien	with FLAG_RTTI enabled.
796152284Sobrien	(get_typeid): Likewise.
796218334Speter
796350397SobrienWed Mar  4 11:47:55 1998  Jason Merrill  <jason@yorick.cygnus.com>
796418334Speter
796550397Sobrien	* typeck.c (unary_complex_lvalue): &D::i has type B::* if i comes
796650397Sobrien	from B.
796718334Speter
796850397SobrienWed Mar  4 11:28:08 1998  Mark Mitchell  <mmitchell@usa.net>
796918334Speter
797050397Sobrien	* pt.c (finish_member_template_decl): Deal more gracefully with
797150397Sobrien	invalid declarations.
797218334Speter
797350397SobrienTue Mar  3 01:38:17 1998  Jason Merrill  <jason@yorick.cygnus.com>
797418334Speter
797550397Sobrien	* cvt.c, decl.c, decl2.c, init.c, rtti.c, typeck.c, typeck2.c,
797650397Sobrien	cp-tree.h: Clean up more old overloading code, old RTTI code, and
797750397Sobrien	some formatting quirks.
797818334Speter
797950397Sobrien	* call.c, class.c, cp-tree.h, cvt.c, decl.c, init.c, lex.c,
798052284Sobrien	method.c, pt.c, ptree.c, typeck.c: Remove support for
798150397Sobrien	-fno-ansi-overloading and overloading METHOD_CALL_EXPR.
798250397Sobrien	* class.h: Remove.
798350397Sobrien	* Makefile.in: Adjust.
798418334Speter
798550397Sobrien	* pt.c (unify): Don't allow reduced cv-quals when strict.
798618334Speter
798750397Sobrien	* call.c, class.c, pt.c, cp-tree.h: Remove nsubsts parm from
798850397Sobrien	*type_unification* and unify.
798918334Speter
799050397SobrienMon Mar  2 12:11:06 1998  Jason Merrill  <jason@yorick.cygnus.com>
799118334Speter
799250397Sobrien	* parse.y (explicit_template_type): Remove TEMPLATE keyword.
799350397Sobrien	(nested_name_specifier): And add it before this use.
799450397Sobrien	(typename_sub0): And this use.  Also add use without the keyword.
799550397Sobrien	(typename_sub1): Likewise.
799652284Sobrien	* pt.c (instantiate_class_template): Don't actually instantiate
799750397Sobrien	anything if our type uses template parms.
799818334Speter
799950397SobrienMon Mar  2 11:04:59 1998  Jim Wilson  <wilson@cygnus.com>
800018334Speter
800150397Sobrien	* decl.c (start_function): Don't call temporary_allocation for a
800250397Sobrien	nested function.
800318334Speter
800450397SobrienSun Mar  1 21:06:37 1998  Jason Merrill  <jason@yorick.cygnus.com>
800518334Speter
800650397Sobrien	* pt.c (instantiate_class_template): Don't mess with friends if
800750397Sobrien	our type uses template parms.
800818334Speter
800950397SobrienSat Feb 28 12:06:44 1998  Jason Merrill  <jason@yorick.cygnus.com>
801018334Speter
801150397Sobrien	* parse.y (nested_name_specifier): Use explicit_template_type.
801250397Sobrien	(typename_sub): Allow a template_type, an explicit_template_type,
801350397Sobrien	or an implicit template type at the end.
801450397Sobrien	* lex.c (yyprint): Handle a PTYPENAME being a TEMPLATE_DECL.
801550397Sobrien	* decl.c (make_typename_type): Handle template-id where the name
801650397Sobrien	is a TEMPLATE_DECL.
801752284Sobrien	* call.c (build_scoped_method_call): Handle member template
801850397Sobrien	destructor call.
801952284Sobrien	* pt.c (tsubst_copy, METHOD_CALL_EXPR): Don't assume a member
802050397Sobrien	destructor is represented by the type.
802118334Speter
802250397Sobrien	* cp-tree.h (TYPENAME_TYPE_FULLNAME): New macro.
802350397Sobrien	* parse.y (nested_name_specifier): Add 'template' case.
802450397Sobrien	(explicit_template_type): New rule.
802550397Sobrien	(typename_sub): Use it.
802650397Sobrien	* decl.c (make_typename_type): Handle getting a template-id for NAME.
802750397Sobrien	* pt.c (tsubst): Likewise.
802818334Speter
802950397SobrienFri Feb 27 11:17:50 1998  Jason Merrill  <jason@yorick.cygnus.com>
803018334Speter
803150397Sobrien	* pt.c (add_to_template_args): Fix thinko.
803250397Sobrien	(instantiate_class_template): Call it later.
803318334Speter
803450397Sobrien	* pt.c (get_class_bindings): Add outer_args parm.
803550397Sobrien	(most_specialized_class): Likewise.
803650397Sobrien	(instantiate_class_template): Pass it.
803750397Sobrien	(more_specialized_class): Likewise.
803850397Sobrien	(lookup_template_class): Get context from template if none
803950397Sobrien	was specified.
804050397Sobrien	(finish_member_template_decl): Don't do anything with a
804150397Sobrien	partial specialization.
804250397Sobrien	* decl2.c (check_member_template): Use IS_AGGR_TYPE instead of
804350397Sobrien	AGGREGATE_TYPE_P.
804450397Sobrien	* class.c (finish_struct): Member class templates have already been
804550397Sobrien	checked for name clashes.
804650397Sobrien	* decl.c (pushdecl_with_scope): Handle pushing at class level.
804718334Speter
804850397SobrienFri Feb 27 02:25:16 1998  Jason Merrill  <jason@yorick.cygnus.com>
804918334Speter
805050397Sobrien	* pt.c (tsubst, TEMPLATE_DECL): Support member class templates.
805150397Sobrien	(tsubst, *_PARM): Support multiple levels of template classes.
805250397Sobrien	(instantiate_class_template): Look up the pattern from the
805350397Sobrien	original template.
805450397Sobrien	(lookup_template_class): Handle getting a template for d1.
805550397Sobrien	(push_template_decl): Correct setting of 'primary'.
805650397Sobrien	(reduce_template_parm_level): Add 'levels' parm.
805750397Sobrien	(finish_member_template_decl): Support member class templates.
805850397Sobrien	(template_class_depth): Handle multiple levels.
805950397Sobrien	* parse.y (component_decl_1, fn.def2): Remove member template case.
806050397Sobrien	(component_decl): Add member template cases.
806150397Sobrien	* decl2.c (check_member_template): We now handle member template
806250397Sobrien	classes.
806350397Sobrien	* decl.c (pushtag): Handle member templates.
806450397Sobrien	* method.c (do_inline_function_hair): Don't touch
806550397Sobrien	IDENTIFIER_GLOBAL_VALUE.
806652284Sobrien	* init.c (build_offset_ref): If name isn't an identifier, just
806750397Sobrien	return it.
806850397Sobrien	* spew.c (yylex): Handle PTYPENAME like TYPENAME.
806918334Speter
807050397Sobrien	* typeck.c (get_delta_difference): Do adjust for conversions to
807150397Sobrien	and from virtual base.
807218334Speter
807350397SobrienWed Feb 25 09:51:29 1998  Jason Merrill  <jason@yorick.cygnus.com>
807418334Speter
807550397Sobrien	* typeck.c (get_delta_difference): Give hard error for conversion
807650397Sobrien	from virtual base.
807718334Speter
807850397Sobrien	* cp-tree.h: Tweak formatting.
807918334Speter
808050397SobrienWed Feb 25 00:35:33 1998  Jason Merrill  <jason@yorick.cygnus.com>
808118334Speter
808250397Sobrien	* decl.c (push_namespace): Handle redeclaration error.
808318334Speter
808450397Sobrien	* cp-tree.h (IDENTIFIER_NAMESPACE_VALUE): New macro.
808550397Sobrien	(IDENTIFIER_NAMESPACE_BINDINGS): New macro.
808650397Sobrien	(NAMESPACE_BINDING): New macro.
808750397Sobrien	(IDENTIFIER_GLOBAL_VALUE): Use NAMESPACE_BINDING.
808850397Sobrien	* *.c: Use them.
808918334Speter
809050397Sobrien	* pt.c (push_template_decl): Use innermost_args.
809118334Speter
809250397Sobrien	* decl.c (get_unique_name): Tweak from earlier in the name.
809318334Speter
809450397SobrienTue Feb 24 22:15:04 1998  Martin von Loewis  <loewis@informatik.hu-berlin.de>
809518334Speter
809650397Sobrien	* cp-tree.def: Add CPLUS_BINDING node.
809752284Sobrien	* cp-tree.h (tree_binding): New struct.
809852284Sobrien	(BINDING_SCOPE, BINDING_VALUE): New macros.
809952284Sobrien	(current_namespace, global_namespace): Declare extern.
810052284Sobrien	(struct lang_decl_flags): New field in_namespace.
810152284Sobrien	(DECL_NAMESPACE_USING, DECL_NAMESPACE_USERS): New macros.
810252284Sobrien	(DECL_NAMESPACE, SET_DECL_NAMESPACE): New macros.
810352284Sobrien	(TREE_INDIRECT_USING): New macro.
810450397Sobrien	* decl2.c (current_namespace, global_namespace): Declare.  The
810550397Sobrien	value is a NAMESPACE_DECL now, not a TREE_LIST.
810652284Sobrien	(is_namespace_ancestor, namespace_ancestor): New static functions.
810752284Sobrien	(add_using_namespace, ambiguous_decl): Likewise.
810852284Sobrien	(lookup_using_namespace): New support function for lookup_name.
810952284Sobrien	(qualified_lookup_using_namespace): New support function for
811052284Sobrien	do_scoped_id and lookup_namespace_name.
811152284Sobrien	(get_namespace_id): Mark as obsolete.
811250397Sobrien	(current_namespace_id): Likewise.
811350397Sobrien	(do_namespace_alias): Implement.
811450397Sobrien	(do_using_directive): Implement as call to add_using_namespace.
811552284Sobrien	* decl.c (binding_for_name): New function.
811652284Sobrien	(push_namespace, pop_namespace): Implement.
811752284Sobrien	(push_decl): Don't install a FUNCTION_DECL in the global branch.
811852284Sobrien	(lookup_namespace_name): Implement using qualified lookup.
811950397Sobrien	(lookup_name_real): For global scoping, lookup in
812052284Sobrien	global_namespace.  For namespace scoping, lookup in given
812152284Sobrien	namespace.  For unscoped lookup, iterate over namespace,
812250397Sobrien	considering using directives.
812352284Sobrien	(init_decl_processing): Initialize global_namespace.
812450397Sobrien	(grokvardecl): Build assembler name as static name for globals.
812550397Sobrien	(grokdeclarator): Remove old namespace mangling.
812650397Sobrien	(xref_tag): When installing a global binding for the
812750397Sobrien	tag, make sure we have an identifier.
812852284Sobrien	* method.c (build_overload_nested_name): Mangle namespaces.
812950397Sobrien	(build_qualified_name): Likewise.
813050397Sobrien	(build_decl_overload_real): Likewise.
813152284Sobrien	* lex.c (build_lang_decl): Set namespace for new declaration to
813250397Sobrien	current_namespace.
813352284Sobrien	(do_scoped_id): Find global names in global or current
813450397Sobrien	namespace, or using qualified namespace lookup, depending on
813550397Sobrien	context.
813650397Sobrien	* init.c (build_member_call): When scope is namespace, use
813750397Sobrien	build_x_function_call instead.
813850397Sobrien	(build_offset_ref): When scope is namespace, collapse processing
813950397Sobrien	to lookup_namespace_name instead.
814050397Sobrien	* error.c (dump_decl): Support NAMESPACE_DECL.
814150397Sobrien	* decl.c (pushdecl): Bind globals to current namespace.
814250397Sobrien	(push_overloaded_decl): Likewise.
814350397Sobrien	(lookup_tag): Likewise.
814450397Sobrien	(lookup_name_current_level): Likewise.
814550397Sobrien	(xref_tag): Likewise.
814650397Sobrien	(start_function): Likewise.
814750397Sobrien	* lex.c (do_identifier): Likewise.
814850397Sobrien	(identifier_typedecl_value): Likewise.
814950397Sobrien	(real_yylex): Likewise.
815050397Sobrien	* method.c (do_inline_function_hair): Likewise.
815150397Sobrien	* parse.y (unscoped): Likewise.
815250397Sobrien	* pt.c (check_explicit_specialization): Likewise.
815350397Sobrien	(lookup_template_class): Likewise.
815450397Sobrien	* rtti.c (call_void_fn): Likewise.
815550397Sobrien	* sig.c (build_sigtable): Likewise.
815650397Sobrien	* ptree.c (lang_print_xnode): New function.
815718334Speter
815850397SobrienTue Feb 24 01:40:24 1998  Jason Merrill  <jason@yorick.cygnus.com>
815918334Speter
816050397Sobrien	* pt.c (instantiate_class_template): Don't instantiate if pedantic
816150397Sobrien	and the args use template parms.
816218334Speter
816352284Sobrien	* pt.c (push_tinst_level): If the instantiation uses template parms,
816450397Sobrien	fail silently.
816550397Sobrien	* decl.c (xref_basetypes): Do call complete_type for basetypes
816650397Sobrien	that involve template parameters.
816718334Speter
816850397SobrienTue Feb 24 00:36:43 1998  Jason Merrill  <jason@yorick.cygnus.com>
816918334Speter
817050397Sobrien	* typeck2.c (process_init_constructor): Fix labeled init check.
817118334Speter
817250397SobrienMon Feb 23 05:08:55 1998  Jason Merrill  <jason@yorick.cygnus.com>
817318334Speter
817450397Sobrien	* pt.c, call.c, decl.c, method.c, cp-tree.h: Remove unused NARGS
817550397Sobrien	argument to tsubst and friends.
817618334Speter
817750397Sobrien	* pt.c (tsubst, FUNCTION_DECL): Tidy.
817818334Speter
817950397Sobrien	* typeck.c (build_x_function_call): Handle static member function
818050397Sobrien	templates like non-templates.  Handle friend templates like normal
818150397Sobrien	function templates.
818250397Sobrien	* pt.c (tsubst, *_PARM): Don't use orig_level.
818350397Sobrien	(get_bindings): Don't call add_to_template_args.
818450397Sobrien	(instantiate_template): Likewise.
818550397Sobrien	(tsubst, FUNCTION_DECL): Call add_to_template_args as appropriate.
818650397Sobrien	* ptree.c (print_lang_type): Print index/level for template parms.
818718334Speter
818850397SobrienMon Feb 23 02:52:29 1998  Mark Mitchell  <mmitchell@usa.net>
818918334Speter
819050397Sobrien	* Make-lang.in (cc1plus): Note that cc1plus depends on
819150397Sobrien	cp/cp-tree.h and cp/cp-tree.def.
819252284Sobrien
819350397Sobrien	* cp-tree.def (TEMPLATE_CONST_PARM): Remove.
819450397Sobrien	(TEMPLATE_PARM_INDEX): New tree code, used to indicate a
819550397Sobrien	position in a template parameter list.
819650397Sobrien	* cp-tree.h (template_parm_index): New structure, used as the tree
819750397Sobrien	structure for a TEMPLATE_PARM_INDEX.
819850397Sobrien	(TEMPLATE_PARM_IDX): New macro.
819950397Sobrien	(TEMPLATE_PARM_LEVEL): Likewise.
820050397Sobrien	(TEMPLATE_PARM_DESCENDANTS): Likewise.
820150397Sobrien	(TEMPLATE_PARM_ORIG_LEVEL): Likewise.
820250397Sobrien	(TEMPLATE_PARM_DECL): Likewise.
820350397Sobrien	(TEMPLATE_TYPE_PARM_INDEX): Likewise.
820450397Sobrien	(TEMPLATE_TYPE_ORIG_LEVEL): Likewise.
820550397Sobrien	(TEMPLATE_TYPE_DECL): Likewise.
820650397Sobrien	(TEMPLATE_CONST_IDX): Remove.
820750397Sobrien	(TEMPLATE_CONST_LEVEL): Likewise.
820850397Sobrien	(TEMPLATE_CONST_SET_INFO): Likewise.
820950397Sobrien	(TEMPLATE_TYPE_SET_INFO): Likewise.
821050397Sobrien	(TEMPLATE_TYPE_IDX): Redefine in terms of TEMPLATE_PARM_INDEX
821150397Sobrien	node.
821250397Sobrien	(TEMPLATE_TYPE_LEVEL): Likewise.
821350397Sobrien	* decl.c (decls_match): Call comp_template_parms, rather than
821450397Sobrien	expanding it inline.
821550397Sobrien	(duplicate_decls): If two template declarations are being merged,
821650397Sobrien	then their TEMPLATE_INFOs should be merged as well.
821750397Sobrien	(grokfndecl): Save template-id information when declaring a friend
821850397Sobrien	with explicit template arguments.  Pass arguments to
821950397Sobrien	check_explicit_specialization via correct convention; at some
822050397Sobrien	point check_explicit_specialization changed, but these call-sites
822150397Sobrien	did not.
822250397Sobrien	(grokdeclarator): Tidy up slightly.
822350397Sobrien	* decl2.c (check_classfn): Tidy up slightly.  Don't assume that
822450397Sobrien	two template functions with the same DECL_ASSEMBLER_NAME the same,
822550397Sobrien	since the names are not yet mangled.
822650397Sobrien	* error.c (dump_decl): Use TEMPLATE_PARM_INDEX instead of
822752284Sobrien	TEMPLATE_CONST_PARM.
822850397Sobrien	(dump_expr): Likewise.  Use the TEMPLATE_PARM_DECL to get at the
822950397Sobrien	decl for a non-type parameter, rather than printing `<tparm ...>'.
823050397Sobrien	* friend.c (is_friend): Handle TEMPLATE_DECL friends.
823150397Sobrien	(do_friend): Deal with template friends.
823250397Sobrien	* lex.c (do_pending_inlines): Call
823350397Sobrien	maybe_begin_member_template_processing, rather than
823450397Sobrien	conditionally calling begin_member_template_processing.
823550397Sobrien	(process_next_inline): Likewise.  Call
823650397Sobrien	maybe_end_member_template_processing, rather than
823750397Sobrien	conditionally calling end_member_template_processing.
823850397Sobrien	(do_pending_defargs): Likewise.
823950397Sobrien	(do_identifier): Use TEMPLATE_PARM_INDEX instead of
824052284Sobrien	TEMPLATE_CONST_PARM.
824150397Sobrien	* method.c (build_mangled_template_parm_index): New function.
824250397Sobrien	(build_overload_value): Use it.
824350397Sobrien	(build_overload_name): Likewise.
824450397Sobrien	* pt.c (finish_member_template_decl): Allow friend declarations.
824550397Sobrien	(template_class_depth): New function.
824650397Sobrien	(is_member_template): Rename, and modify, to become...
824750397Sobrien	(is_member_or_friend_template): New function.
824850397Sobrien	(end_member_template_processing): Rename, and modify, to become...
824950397Sobrien	(maybe_end_member_template_processing).
825050397Sobrien	(build_template_parm_index): New function.
825150397Sobrien	(reduce_template_parm_level): New function.
825250397Sobrien	(process_template_parm): Modify to use build_template_parm_index.
825350397Sobrien	(push_template_decl): Deal with friend templates.
825450397Sobrien	(uses_template_parms): Use TEMPLATE_PARM_INDEX instead of
825550397Sobrien	TEMPLATE_CONST_PARM.
825650397Sobrien	(tsubst_friend_function): New function.
825750397Sobrien	(instantiate_class_template): Generate the DECL_FRIENDLIST
825850397Sobrien	for a new instantiation by using tsubst_friend_function rather
825950397Sobrien	than just tsubst.
826050397Sobrien	(tsubst): Don't tsubst into a type which is a TEMPLATE_DECL.
826150397Sobrien	Use TEMPLATE_PARM_INDEX instead of TEMPLATE_CONST_PARM, and the
826250397Sobrien	appropriate new macros.  Use reduce_template_parm_level to
826350397Sobrien	generate lower-level template parameters.  Handle tsubst'ing into
826450397Sobrien	TEMPLATE_DECLS that declare TEMPLATE_TEMPLATE_PARMS.  Don't forget
826550397Sobrien	to tsubst the DECL_CONTEXT and DECL_CLASS_CONTEXT of newly created
826650397Sobrien	templates.  Similarly for the template parameters for a new
826750397Sobrien	template.
826850397Sobrien	(tsubst_copy): Tidy up slightly.  Use TEMPLATE_PARM_INDEX instead
826950397Sobrien	of TEMPLATE_CONST_PARM.  Handle TYPE_DECLs by tsubsting into them.
827052284Sobrien	(unify): Use TEMPLATE_PARM_INDEX instead of TEMPLATE_CONST_PARM.
827150397Sobrien	(get_bindings): Call add_to_template_args if necessary.
827250397Sobrien	(instantiate_decl): Handle instantiations of friend templates.
827350397Sobrien	* search.c (lookup_field_1): Don't treat the TYPE_FIELDS of a
827450397Sobrien	TEMPLATE_TYPE_PARM as a list of fields; it's not!
827552284Sobrien	* spew.c (yylex): Do a little manual constant propagation to
827650397Sobrien	clarify the code.
827752284Sobrien
827850397SobrienSun Feb 22 19:53:29 1998  Jeffrey A Law  (law@cygnus.com)
827918334Speter
828050397Sobrien	* error.c: Include sys/types.h.
828118334Speter
828250397SobrienThu Feb 19 14:49:09 1998  Jeffrey A Law  (law@cygnus.com)
828318334Speter
828450397Sobrien	* method.c (build_mangled_name): Start CPP directives in column zero.
828518334Speter
828650397SobrienThu Feb 19 10:36:48 1998  Jason Merrill  <jason@yorick.cygnus.com>
828718334Speter
828850397Sobrien	* typeck2.c (process_init_constructor): Sorry about non-trivial
828950397Sobrien	labeled initializers.
829052284Sobrien	* parse.y (initlist): Re-enable labeled initializers.
829118334Speter
829250397SobrienThu Feb 19 10:15:55 1998  Kriang Lerdsuwanakij  <lerdsuwa@scf.usc.edu>
829318334Speter
829452284Sobrien	* pt.c (coerce_template_parms): Add a new parameter, is_tmpl_parm,
829552284Sobrien	all callers changed.  Rely on the new parameter instead of arg
829650397Sobrien	being a TREE_LIST when determine whether we are working inside
829750397Sobrien	template template parameter.  Clean up is_type test.
829852284Sobrien
829950397SobrienThu Feb 19 10:04:12 1998  Jason Merrill  <jason@yorick.cygnus.com>
830018334Speter
830150397Sobrien	* cvt.c (cp_convert_to_pointer): Preserve TREE_CONSTANT.
830250397Sobrien	* typeck2.c (initializer_constant_valid_p): Allow conversions
830352284Sobrien	between pointers and references.
830418334Speter
830550397Sobrien1998-02-19  Brendan Kehoe  <brendan@cygnus.com>
830618334Speter
830750397Sobrien	* typeck.c (build_unary_op): Only warn about incr/decr a pointer
830850397Sobrien	if pedantic || warn_pointer_arith.
830918334Speter
831050397SobrienThu Feb 19 09:37:21 1998  Kriang Lerdsuwanakij  <lerdsuwa@scf.usc.edu>
831118334Speter
831250397Sobrien	* pt.c (unify): Handle TEMPLATE_DECL.
831318334Speter
831450397Sobrien1998-02-18  Brendan Kehoe  <brendan@cygnus.com>
831518334Speter
831650397Sobrien	* cp-tree.h (strip_attrs): Remove decl.
831718334Speter
831850397Sobrien1998-02-18  Doug Evans  <devans@cygnus.com>
831918334Speter
832050397Sobrien	* decl.c (duplicate_decls): Call merge_machine_decl_attributes.
832150397Sobrien	Update olddecl's attributes too.
832250397Sobrien	(strip_attrs): Remove function.
832350397Sobrien	* typeck.c (common_type): Call merge_machine_type_attributes.
832418334Speter
832550397SobrienTue Feb 17 14:07:52 1998  Mark Mitchell  <mmitchell@usa.net>
832618334Speter
832750397Sobrien	* parse.y (initdcl0_innards): New grammar symbol.
832850397Sobrien	(nomods_initdecls, nomods_initdcl0): Change type from itype to
832950397Sobrien	none, since the resulting value is never used.
833050397Sobrien	(parse_decl): New function.
833150397Sobrien	(datadef): Remove redundant actions.
833250397Sobrien	(initdcl0, notype_initdcl0, nomods_initdcl0): Use initdcl0_innards.
833350397Sobrien	* parse.c: Regenerated.
833452284Sobrien
833550397SobrienTue Feb 17 11:54:16 1998  Jason Merrill  <jason@yorick.cygnus.com>
833618334Speter
833750397Sobrien	* parse.y (simple_stmt): Use getdecls() to check for decl.
833818334Speter
833950397SobrienSat Feb 14 11:50:51 1998  Manfred Hollstein  <manfred@s-direktnet.de>
834018334Speter
834152284Sobrien	* Make-lang.in (DEMANGLER_INSTALL_NAME, DEMANGLER_CROSS_NAME): New
834250397Sobrien	macros.
834350397Sobrien	(c++.install-common): Install c++filt properly as native or as cross
834450397Sobrien	variant.
834550397Sobrien	(c++.uninstall): Add c++filt.
834618334Speter
834750397SobrienFri Feb 13 14:55:37 1998  Jason Merrill  <jason@yorick.cygnus.com>
834818334Speter
834950397Sobrien	* call.c (standard_conversion): Fix multi-level ptr conversions.
835018334Speter
835150397SobrienFri Feb 13 14:06:22 1998  Mike Stump  <mrs@wrs.com>
835218334Speter
835350397Sobrien	* init.c (build_new): Propagate error_mark_node up.
835418334Speter
835550397SobrienFri Feb 13 13:24:32 1998  Jason Merrill  <jason@yorick.cygnus.com>
835618334Speter
835752284Sobrien	* parse.y (simple_stmt): If the condition isn't a declaration,
835850397Sobrien	start the controlled block after the test.
835918334Speter
836050397SobrienFri Feb 13 02:26:10 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
836118334Speter
836250397Sobrien	* call.c (build_over_call): Convert builtin abs, labs and fabs to
836350397Sobrien	tree-codes.
836452284Sobrien	* decl.c (init_decl_processing): Re-enable abs, labs and fabs as
836550397Sobrien	builtins.
836618334Speter
836750397SobrienFri Feb 13 01:36:42 1998  Jason Merrill  <jason@yorick.cygnus.com>
836818334Speter
836950397Sobrien	* call.c (standard_conversion): A BASE_CONV replaces an RVALUE_CONV.
837018334Speter
837150397SobrienFri Feb 13 00:21:59 1998  Jason Merrill  <jason@yorick.cygnus.com>
837218334Speter
837350397Sobrien	* cp-tree.h: Add access_protected_virtual_node.
837450397Sobrien	* class.c (init_class_processing): Initialize it.
837550397Sobrien	* decl.c (xref_basetypes): Use it.
837650397Sobrien	* parse.y (base_class_access_list): Likewise.
837718334Speter
837850397Sobrien	* Make-lang.in (DEMANGLER_PROG): Add $(exeext).
837950397Sobrien	(c++.install-common): Install c++filt.
838018334Speter
838150397SobrienThu Feb 12 12:46:51 1998  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
838218334Speter
838350397Sobrien	* decl.c (shadow_tag): Give error for typedef-ing built-in types.
838418334Speter
838550397SobrienWed Feb 11 23:28:05 1998  Mark Mitchell  <mmitchell@usa.net>
838618334Speter
838750397Sobrien	* call.c (reference_binding): Use comptypes when comparing
838850397Sobrien	TYPE_MAIN_VARIANTS to handle non-canonical array/index types.
838918334Speter
839050397SobrienWed Feb 11 16:42:04 1998  Mark Mitchell  <mmitchell@usa.net>
839118334Speter
839250397Sobrien	* tree.c (is_overloaded_fn): Use really_overloaded_fn.
839352284Sobrien	(really_overloaded_fn): Move check here from is_overloaded_fn.
839450397Sobrien	(get_first_fn): Use really_overloaded_fn and is_overloaded_fn.
839518334Speter
839650397SobrienWed Feb 11 15:54:18 1998  Mark Mitchell  <mmitchell@usa.net>
839718334Speter
839850397Sobrien	* typeck.c (build_ptrmemfunc): Type-check pointer-to-member
839950397Sobrien	conversions.
840018334Speter
840150397SobrienMon Feb  9 22:23:31 1998  Mark Mitchell  <mmitchell@usa.net>
840218334Speter
840350397Sobrien	* cp-tree.h (push_template_decl): Return the decl passed in, or an
840450397Sobrien	equivalent duplicate.
840550397Sobrien	* decl.c (pushtag): Use the return value from push_template_decl.
840650397Sobrien	(duplicate_decls): When duplicating a template declaration, merge
840750397Sobrien	the DECL_TEMPLATE_RESULTs as well.
840850397Sobrien	(make_implicit_typename): Don't try to dive into typename types to
840950397Sobrien	find a context for making a new implicit typename.
841050397Sobrien	(start_decl): Use the return value from push_template_decl.
841150397Sobrien	(grokdeclarator): Complain about declarations list `const operator
841250397Sobrien	int'.  Since we don't correctly handle in-class initializations of
841350397Sobrien	non-static data members, complain about this (now illegal)
841450397Sobrien	practice.  Issue an error for initializations of non-const statics
841550397Sobrien	since that is illegal as well, and since we don't handle that case
841650397Sobrien	correctly either.
841750397Sobrien	(start_function): Use the return value from push_template_decl.
841850397Sobrien	(start_method): Likewise.
841950397Sobrien	* decl2.c (grokfield): Likewise.  Since the change to
842050397Sobrien	grokdeclarator ensures that all initialized fields are in fact
842150397Sobrien	static, remove a redundant test for TREE_PUBLIC.
842250397Sobrien	* parse.y (initlist): Disable labeled initializers since they do
842350397Sobrien	not work as per the documentation, and since they do not use the
842450397Sobrien	same syntax as the C front end.
842550397Sobrien	* pt.c (push_template_decl): Return the decl passed in, or an
842650397Sobrien	equivalent duplicate.
842750397Sobrien	(lookup_template_class): When searching in a nested context,
842850397Sobrien	use the right arguments.
842950397Sobrien	(uses_template_parms): Handle the DECL_INITIAL for a CONST_DECL.
843050397Sobrien	* typeck.c (build_component_ref): Assign the correct type to the
843150397Sobrien	result of build_vfn_ref.
843252284Sobrien
843350397SobrienTue Feb 10 23:56:46 1998  Jason Merrill  <jason@yorick.cygnus.com>
843418334Speter
843550397Sobrien	* pt.c (convert_nontype_argument): Fix typo.
843650397Sobrien	(check_explicit_specialization): Allow old-style specialization
843750397Sobrien	of class template members.
843818334Speter
843950397SobrienTue Feb 10 20:36:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
844050397Sobrien			  Manfred Hollstein  <manfred@s-direktnet.de>
844118334Speter
844250397Sobrien	* decl.c (grokdeclarator): Use DECL_USE_TEMPLATE instead
844350397Sobrien	when deciding to override DECL_ASSEMBLER_NAME.
844418334Speter
844552284SobrienTue Feb 10 15:30:55 1998  Andrew MacLeod  <amacleod@torpedo.to.cygnus.com>
844618334Speter
844750397Sobrien	* decl2.c (lang_f_options): Add -fsquangle to option processing list.
844850397Sobrien	* cp-tree.h (flag_do_squangling): Add declaration.
844950397Sobrien	* lang-options.h: Add -fsquangle and -fno-squangle.
845050397Sobrien	* method.c: Add macros and static variables for squangling.
845152284Sobrien	(build_overload_name): Rename to build_mangled_name, add logic for B
845252284Sobrien	compression, and split into process_modifiers and
845350397Sobrien	process_overload_item.
845452284Sobrien	(process_modifiers): New function, to handle constant, reference,
845552284Sobrien	and pointer types.
845650397Sobrien	(process_overload_item): New function, handles issue of type codes.
845752284Sobrien	(build_overload_name): New function, start squangling and call
845850397Sobrien	build_mangled_name.
845950397Sobrien	(ALLOCATE_TYPEVEC, DEALLOCATE_TYPEVEC): Remove macro and expand inline.
846050397Sobrien	(start_squangling): New function to initialize squangling structs.
846150397Sobrien	(end_squangling): New function to destroy squangling structs.
846250397Sobrien	(nrepeats): Rename variable to Nrepeats.
846350397Sobrien	(issue_nrepeats): New function for issuing 'n' type repeats.
846450397Sobrien	(check_ktype): New function to check for type K name compression.
846550397Sobrien	(build_overload_nested_name): Add a check for K name compression.
846650397Sobrien	(build_qualified_name): Add a check for K name compression and don't
846750397Sobrien	use DECL_ASSEMBLER_NAME when squangling is on.
846850397Sobrien	(check_btype): New function, checks for B type compression.
846950397Sobrien	(build_static_name, build_decl_overload_real): Initiate squangling.
847052284Sobrien	(build_typename_overload, build_overload_with_type): Initiate
847150397Sobrien	squangling
847218334Speter
847350397SobrienSun Feb  8 23:47:38 1998  scott snyder  <sss@d0linux01.fnal.gov>
847418334Speter
847550397Sobrien	* method.c (make_thunk): Avoid name buffer overflow.
847618334Speter
847750397SobrienSat Feb  7 16:48:54 1998  Jason Merrill  <jason@yorick.cygnus.com>
847818334Speter
847950397Sobrien	* pt.c (instantiate_decl): Call cp_finish_decl for vars even if we
848050397Sobrien	don't define them yet.
848118334Speter
848250397Sobrien	* parse.y (nomods_initdcl0): Add constructor_declarator case.
848318334Speter
848450397SobrienFri Feb  6 21:32:25 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
848518334Speter
848650397Sobrien	* config-lang.in (diff_excludes): Use basename only.
848718334Speter
848850397SobrienThu Feb  5 19:10:40 1998  Jason Merrill  <jason@yorick.cygnus.com>
848918334Speter
849050397Sobrien	* tinfo2.cc: Add tinfo for signed char.
849118334Speter
849250397SobrienThu Feb  5 14:38:23 1998  Mike Stump  <mrs@wrs.com>
849318334Speter
849450397Sobrien	* search.c (compute_access): Handle protected constructors in derived
849550397Sobrien	classes as accessible.
849618334Speter
849750397SobrienWed Feb  4 01:26:49 1998  Jason Merrill  <jason@yorick.cygnus.com>
849818334Speter
849950397Sobrien	* expr.c (cplus_expand_expr, PCC_STATIC_STRUCT_RETURN code):
850050397Sobrien	Call convert_from_reference sooner.
850118334Speter
850250397SobrienTue Feb  3 23:50:52 1998  Mark Mitchell  <mmitchell@usa.net>
850318334Speter
850450397Sobrien	* cvt.c (ocp_convert): Obtain the constant values from constant
850550397Sobrien	decls even if the destination type is the same as the type of the
850652284Sobrien	decl.
850718334Speter
850850397Sobrien	* decl2.c (finish_file): Make sure that static inlines with
850950397Sobrien	definitions are not marked DECL_EXTERNAL before returning.
851018334Speter
851150397SobrienTue Feb  3 22:43:42 1998  Jason Merrill  <jason@yorick.cygnus.com>
851218334Speter
851350397Sobrien	* decl.c: Lose arg_looking_for_template.
851450397Sobrien	(lookup_name_real): Likewise.
851552284Sobrien	* parse.y: Lose processing_template_arg, template_arg1.
851650397Sobrien	(primary): Likewise.
851750397Sobrien	* spew.c (yylex): Set lastiddecl for PTYPENAMEs, too.
851818334Speter
851950397SobrienTue Feb  3 22:04:01 1998  Kriang Lerdsuwanakij  <lerdsuwa@scf.usc.edu>
852018334Speter
852150397Sobrien	* error.c (dump_decl): Fix type of default arguments for template
852250397Sobrien	template parameters and nontype template parameters.
852352284Sobrien	* parse.y (template_parm): Handle invalid default template
852450397Sobrien	template arguments here.
852518334Speter
852652284Sobrien	* parse.y (template_parm): Use template_arg instead of PTYPENAME
852750397Sobrien	for default template template argument.
852852284Sobrien	* pt.c (coerce_template_parms): Merge default template argument
852950397Sobrien	codes.  Can treat RECORD_TYPE as template name if it is implicitly
853050397Sobrien	created.  Fix argument index in error message.
853152284Sobrien	* typeck.c (comptypes): Merge template argument comparison codes in
853250397Sobrien	TEMPLATE_TEMPLATE_PARM and RECORD_TYPE.
853318334Speter
853452284SobrienTue Jan  6 01:42:44 1998  Mumit Khan  <khan@xraylith.wisc.edu>
853518334Speter
853650397Sobrien	* lex.c (file_name_nondirectory): Also check for '/'.
853718334Speter
853850397SobrienMon Feb  2 11:24:22 1998  Mark Mitchell  <mmitchell@usa.net>
853918334Speter
854050397Sobrien	* parse.y (primary): Deal with statement-expressions in
854152284Sobrien	templates.
854250397Sobrien	* pt.c (tsubst_copy): Handle BIND_EXPR.
854350397Sobrien	* tree.c (mapcar): Likewise.
854418334Speter
854550397Sobrien	* call.c (add_template_candidate_real): Pass extra parameter to
854652284Sobrien	fn_type_unification.
854750397Sobrien	* cp-tree.h (fn_type_unification): Add parameter.
854850397Sobrien	* pt.c (fn_type_unification): Add additional parameter to deal with
854950397Sobrien	static member functions.
855050397Sobrien	(get_bindings): Deal with static member functions.
855118334Speter
855252284Sobrien	* cp-tree.h (DECL_NONSTATIC_MEMBER_FUNCTION_P): New macro.
855350397Sobrien	(revert_static_member_fn): Declare.
855450397Sobrien	* decl.c (revert_static_member_fn): Remove declaration.  Change
855550397Sobrien	linkage from internal to external.
855650397Sobrien	(cp_finish_decl): Deal with virtual functions in classes local to
855750397Sobrien	template functions.
855850397Sobrien	* decl2.c (finish_file): Don't forget to emit increment/decrement
855950397Sobrien	expressions in initializers for file-scope variables.
856050397Sobrien	* parse.y (typename_sub2): If the typename doesn't names a
856150397Sobrien	template, rather than a type, issue an error message.
856250397Sobrien	* pt.c (check_explicit_specialization): Handle specializations of
856350397Sobrien	static member functions.
856450397Sobrien	(coerce_template_parms): Handle offset references to lists of
856550397Sobrien	member functions.
856650397Sobrien	* search.c (note_debug_info_needed): Don't crash when handed a
856750397Sobrien	type which is being defined.
856850397Sobrien	* typeck.c (complete_type): Don't crash when handed NULL_TREE;
856950397Sobrien	that can happen with some illegal code.
857018334Speter
857150397SobrienMon Feb  2 00:57:38 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
857218334Speter
857350397Sobrien	* call.c (user_harshness): Initialize `code' to 0.
857450397Sobrien	(build_method_call): Initialize `candidates', `cp' and `len' to 0.
857550397Sobrien	(null_ptr_cst_p): Add parentheses around && within ||.
857650397Sobrien	(standard_conversion): Likewise.
857750397Sobrien	(z_candidate): Likewise.
857850397Sobrien	(build_user_type_conversion_1): Initialize `args' to NULL_TREE.
857950397Sobrien	(build_object_call): Likewise for `mem_args'.
858050397Sobrien	(build_new_op): Likewise for `mem_arglist'.  Add `return' from
858150397Sobrien	default case in enumeration switch.
858218334Speter
858350397Sobrien	* class.c (build_vtable_entry): Add explicit braces to avoid
858450397Sobrien	ambiguous `else'.
858550397Sobrien	(build_class_init_list): Likewise.
858650397Sobrien	(finish_struct_1): Initialize `width' to 0.
858750397Sobrien	(instantiate_type): Initialize `name' to NULL_TREE.  Add
858850397Sobrien	explicit braces to avoid ambiguous `else'.
858918334Speter
859050397Sobrien	* cvt.c (convert_to_aggr): Add explicit braces to avoid ambiguous
859150397Sobrien	`else'.
859218334Speter
859350397Sobrien	* decl.c (grok_reference_init): Eliminate unused parameter, all
859450397Sobrien	callers changed.
859550397Sobrien	(record_builtin_type): Initialize `tdecl' to NULL_TREE.
859650397Sobrien	(init_decl_processing): Initialize `vb_off_identifier' to NULL_TREE.
859750397Sobrien	(cp_finish_decl): Initialize `ttype' to NULL_TREE.
859850397Sobrien	(grokdeclarator): Add parentheses around && within ||.  Add
859950397Sobrien	explicit braces to avoid ambiguous `else'.
860050397Sobrien	(grokparms): Initialize `type' to NULL_TREE.
860152284Sobrien	(xref_tag): Remove unused label `just_return'.
860250397Sobrien	(finish_enum): Initialize `minnode' and `maxnode' to NULL_TREE.
860350397Sobrien	(finish_function): Initialize `cond' and `thenclause' to NULL_TREE.
860450397Sobrien	(hack_incomplete_structures): Add parentheses around assignment
860550397Sobrien	used as truth value.
860618334Speter
860750397Sobrien	* decl2.c (coerce_delete_type): Hide definition of `e3'.
860818334Speter
860950397Sobrien	* error.c: Include <stdlib.h>.
861050397Sobrien	(dump_expr): Change the type of `i' to size_t.  Remove unused
861152284Sobrien	label `error'.
861218334Speter
861350397Sobrien	* except.c (init_exception_processing): Remove unused variable `d'.
861450397Sobrien	(expand_throw): Likewise for `label'.
861518334Speter
861650397Sobrien	* friend.c (add_friends): Add explicit braces to avoid ambiguous
861750397Sobrien	`else'.
861818334Speter
861950397Sobrien	* init.c (sort_member_init): Initialize `last_field' to NULL_TREE.
862050397Sobrien	(sort_base_init): Likewise for `binfo'.
862150397Sobrien	(expand_member_init): Likewise for `rval'.
862250397Sobrien	(build_member_call): Add parentheses around assignment used as
862350397Sobrien	truth value.
862450397Sobrien	(build_offset_ref): Add explicit braces to avoid ambiguous `else'.
862550397Sobrien	(build_new): Initialize `nelts' to NULL_TREE.  Initialize
862650397Sobrien	`old_immediate_size_expand' to 0.
862750397Sobrien	(build_new_1): Initialize `nelts' and `alloc_node' to NULL_TREE.
862850397Sobrien	(build_vec_delete_1): Remove unused variable `block'.
862950397Sobrien	(expand_vec_init): Initialize `itype' to NULL_TREE.
863018334Speter
863150397Sobrien	* lex.c: Include <strings.h> if we don't have <string.h>.  Protect
863250397Sobrien	declaration of `index' and `rindex' with autoconf macros.
863350397Sobrien	(reinit_parse_for_expr): Remove unused variables
863450397Sobrien	`look_for_semicolon' and `look_for_lbrac'.
863550397Sobrien	(cons_up_default_function): Initialize `args' to NULL_TREE.
863650397Sobrien	(readescape): Initialize `firstdig' to 0.
863752284Sobrien	(real_yylex): Add parentheses around assignment used as truth value.
863818334Speter
863950397Sobrien	* method.c: Include <strings.h> if we don't have <string.h>.
864050397Sobrien	Protect declaration of `index' with autoconf macro.
864118334Speter
864250397Sobrien	* parse.y (primary): Add explicit braces to avoid ambiguous `else'.
864350397Sobrien	Initialize `type' to NULL_TREE.
864450397Sobrien	(structsp): Remove unused variable `id'.
864518334Speter
864650397Sobrien	* pt.c (coerce_template_parms): Add explicit braces to avoid
864750397Sobrien	ambiguous `else'.
864850397Sobrien	(lookup_template_class): Initialize `template' to NULL_TREE.
864950397Sobrien	(instantiate_class_template): Remove unused variable `name' and `e'.
865050397Sobrien	(tsubst): Likewise for `i'.  Initialize `last' to NULL_TREE.
865150397Sobrien	(do_poplevel): Initialize `saved_warn_unused' to 0.
865250397Sobrien	(type_unification): Remove unused varable `parm'.
865350397Sobrien	(unify): Likewise for `j'.
865418334Speter
865550397Sobrien	* repo.c (init_repo): Add parentheses around assignment used as
865650397Sobrien	truth value.
865750397Sobrien	(finish_repo): Remove unused varable `p'.
865852284Sobrien
865952284Sobrien	* search.c (get_binfo): Initialize `type' to NULL_TREE.
866050397Sobrien	(get_base_distance): Likewise.
866150397Sobrien	(lookup_field): Initialize `rval_binfo_h', `type', `basetype_path'
866250397Sobrien	and `new_v' to NULL_TREE.
866350397Sobrien	(lookup_fnfields): Likewise for `rval_binfo_h'.
866450397Sobrien	(breadth_first_search): Add parentheses around assignment used as
866550397Sobrien	truth value.
866650397Sobrien	(get_template_base): Initialize `type' to NULL_TREE.
866718334Speter
866850397Sobrien	* sig.c (append_signature_fields): Initialize `last_mfptr' to
866950397Sobrien	NULL_TREE.
867050397Sobrien	(build_signature_table_constructor): Likewise for
867150397Sobrien	`last_rhs_field', `pfn' and `vt_off'.
867250397Sobrien	(build_sigtable): Likewise for `init'.
867318334Speter
867450397Sobrien	* tree.c (break_out_calls): Initialize `t2' to NULL_TREE.
867550397Sobrien	(propagate_binfo_offsets): Likewise for `delta'.
867650397Sobrien	(hash_tree_cons): Initialize hashcode to 0.
867750397Sobrien	(can_free): Likewise for `size'.
867850397Sobrien	(cp_tree_equal): Add explicit braces to avoid ambiguous `else'.
867952284Sobrien
868050397Sobrien	* typeck.c (convert_sequence): Hide prototype.
868150397Sobrien	(common_type): Add explicit braces to avoid ambiguous `else'.
868250397Sobrien	(comp_target_types): Likewise.
868350397Sobrien	(build_x_function_call): Initialize `ctypeptr' to NULL_TREE.
868450397Sobrien	(build_function_call_real): Add explicit braces to avoid ambiguous
868550397Sobrien	`else'.
868650397Sobrien	(convert_arguments): Initialize `called_thing' to 0.
868750397Sobrien	(convert_for_initialization): Initialize `savew' and `savee' to 0.
868818334Speter
868950397Sobrien	* typeck2.c (incomplete_type_error): Initialize `errmsg' to 0.
869050397Sobrien	(digest_init): Initialize `old_tail_contents' to NULL_TREE.
869150397Sobrien	(build_x_arrow): Likewise for `last_rval'.
869218334Speter
869350397Sobrien	* xref.c (GNU_xref_decl): Initialize `cls' to 0.
869418334Speter
869552284SobrienSun Feb  1 12:45:34 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
869618334Speter
869750397Sobrien	* decl.c (init_decl_processing): Use set_sizetype.
869850397Sobrien	* decl2.c (sizetype): Don't declare.
869950397Sobrien	* typeck.c (c_sizeof): Convert result of *_DIV_EXPR to sizetype.
870050397Sobrien	(c_sizeof_nowarn, build_binary_op_nodefault): Likewise.
870150397Sobrien	(build_component_addr, unary_complex_lvalue): Likewise.
870250397Sobrien	* rtti.c (expand_class_desc): Likewise.
870350397Sobrien	* class.c (get_vfield_offset): Likewise.
870418334Speter
870550397SobrienThu Jan 29 10:39:30 1998  Mark Mitchell  <mmitchell@usa.net>
870618334Speter
870750397Sobrien	* pt.c (convert_nontype_argument): Move check for is_overloaded_fn
870850397Sobrien	early to avoid bogus error.  Handle overloaded function
870950397Sobrien	names provided as template arguments correctly.
871050397Sobrien	(coerce_template_parms): Don't mishandle overloaded functions when
871150397Sobrien	dealing with template template parameters.
871250397Sobrien	(lookup_template_class): Issue an error message, rather than
871350397Sobrien	crashing, when the TYPE_DECL provided is not a template type.
871418334Speter
871550397SobrienWed Jan 28 23:14:44 1998  Jason Merrill  <jason@yorick.cygnus.com>
871618334Speter
871750397Sobrien	* class.c (instantiate_type): Don't just return a known type if
871852284Sobrien	it's wrong.
871918334Speter
872050397SobrienWed Jan 28 11:04:07 1998  Mark Mitchell  <mmitchell@usa.net>
872118334Speter
872250397Sobrien	* class.c (instantiate_type): Remove handling of FUNCTION_DECL
872350397Sobrien	since that code could never be reached.
872452284Sobrien
872550397Sobrien	* error.c (dump_decl): Avoid aborting in the midst of printing an
872650397Sobrien	error message about an illegal template declaration.
872718334Speter
872850397Sobrien	* parse.y (structsp): Print an error message, rather than crashing,
872950397Sobrien	when a class-head does not name a class.
873018334Speter
873150397Sobrien	* pt.c (convert_nontype_argument):  Allow REAL_TYPE and COMPLEX_TYPE
873250397Sobrien	template arguments as a g++ extension.
873352284Sobrien
873450397Sobrien	* cp-tree.def (ALIGNOF_EXPR): New tree code.
873550397Sobrien	* decl2.c (grok_alignof): If processing_template_decl, just store
873650397Sobrien	the expression.
873750397Sobrien	* typeck.c (c_alignof): Likewise.
873850397Sobrien	* decl2.c (build_expr_from_tree): Handle ALIGNOF_EXPR.
873950397Sobrien	* error.c (dump_expr): Likewise.
874050397Sobrien	* pt.c (tsubst_copy): Likewise.
874150397Sobrien	* tree.c (cp_tree_equal): Likewise.
874250397Sobrien	* pt.c (uses_template_parms): Correctly determine whether or not a
874350397Sobrien	SIZEOF_EXPR/ALIGNOF_EXPR uses template parameters so that constant
874450397Sobrien	folding can be done.
874552284Sobrien
874650397Sobrien	* cp-tree.h (grok_enum_decls): Remove type parameter.
874750397Sobrien	* decl.c (grok_enum_decls): Likewise.
874850397Sobrien	* decl2.c (grok_x_components): Call grok_enum_decls
874950397Sobrien	unconditionally, since it will do nothing if there is no
875050397Sobrien	current_local_enum.  Use the new calling sequence.
875150397Sobrien	* pt.c (tsubst_enum): Use the new calling sequence for
875250397Sobrien	grok_enum_decls.
875318334Speter
875450397Sobrien	* decl.c (start_function): Make member functions of local classes
875550397Sobrien	in extern inline functions have comdat linkage here...
875650397Sobrien	(grokdeclarator): Rather than here.
875752284Sobrien
875850397SobrienWed Jan 28 10:55:47 1998  Jason Merrill  <jason@yorick.cygnus.com>
875918334Speter
876050397Sobrien	* pt.c (convert_nontype_argument): Use decl_constant_value.
876118334Speter
876250397SobrienTue Jan 27 16:42:21 1998  Mark Mitchell  <mmitchell@usa.net>
876318334Speter
876450397Sobrien	* call.c (add_template_candidate_real): New function.
876550397Sobrien	(add_template_candidate): Use it.
876650397Sobrien	(add_template_conv_candidate): Likewise.
876750397Sobrien	(joust): Pass extra argument to more_specialized.
876850397Sobrien	* class.c (instantiate_type): Handle a single FUNCTION_DECL.
876950397Sobrien	(is_local_class): Remove.
877050397Sobrien	(finish_struct): Check TI_PENDING_SPECIALIZATION_FLAG.
877150397Sobrien	* cp-tree.h (is_local_class): Remove.
877250397Sobrien	(perform_array_to_pointer_conversion): Likewise.
877350397Sobrien	(finish_member_template_decl): Add.
877450397Sobrien	(check_explicit_specialization): Return a tree, not an int.
877550397Sobrien	(more_specialized): Take additional argument.
877650397Sobrien	(get_bindings): Likewise.
877750397Sobrien	(TI_PENDING_SPECIALIZATION_FLAG): New macro.
877850397Sobrien	* cvt.c (perform_qualification_conversions): Use comp_ptr_ttypes.
877950397Sobrien	(perform_array_to_pointer_conversion): Remove.
878050397Sobrien	* decl.c (saved_scope): Add processing_specialization,
878150397Sobrien	processing_explicit_instantiation fields.
878250397Sobrien	(maybe_push_to_top_level): Save them.
878350397Sobrien	(pop_from_top_level): Restore them.
878450397Sobrien	(grokfndecl): Use new return value from
878552284Sobrien	check_explicit_specialization.
878650397Sobrien	(start_decl): Don't check flag_guiding_decls before pushing
878752284Sobrien	decls.
878850397Sobrien	(cp_finish_decl): Remove previous (bogus) change.
878950397Sobrien	(grok_declarator): Use decl_function_context rather than
879052284Sobrien	is_local_class.
879150397Sobrien	* decl2.c (finish_file): Pass extra argument to get_bindings.
879252284Sobrien	(build_expr_from_tree): Let build_x_component_ref check
879350397Sobrien	validity of arguments rather than doing it here.
879450397Sobrien	* lex.c (cons_up_default_function): Remove code fooling with
879550397Sobrien	processing_specialization, processing_explicit_instantiation
879652284Sobrien	flags, as that is now done in {maybe_push_top,pop_from}_top_level.
879750397Sobrien	* method.c (build_overload_identifier): Mangle local classes in
879850397Sobrien	template functions correctly.
879950397Sobrien	* parse.y (finish_member_template_decl): Move to pt.c.
880050397Sobrien	* pt.c (finish_member_template_decl): Moved here from parse.y.
880150397Sobrien	(print_candidates): New function.
880250397Sobrien	(determine_specialization): Change interface.  Properly look for
880350397Sobrien	most specialized versions of template candidates.
880450397Sobrien	(check_explicit_specialization): Fully process explicit
880552284Sobrien	instantiations.
880650397Sobrien	(push_template_decl): Avoid looking at CLASSTYPE fields in
880752284Sobrien	FUNCTION_DECLS.
880850397Sobrien	(determine_overloaded_function): Remove.
880950397Sobrien	(convert_nontype_argument): Change name from
881050397Sobrien	convert_nontype_parameter.  Use determine_overloaded_function
881150397Sobrien	instead of instantiate_type.
881250397Sobrien	(mangle_class_name_for_template): Handle type contexts as well as
881350397Sobrien	function contexts.
881450397Sobrien	(classtype_mangled_name): Likewise.
881550397Sobrien	(lookup_template_class): Likewise.
881650397Sobrien	(tsubst): Likewise.
881750397Sobrien	(more_specialized): Take explict template arguments as a
881852284Sobrien	parameter.
881950397Sobrien	(most_specialized): Likewise.
882050397Sobrien	(get_bindings): Likewise.  Check that return types match before
882150397Sobrien	proclaiming a function a match.
882250397Sobrien	(do_decl_instantiation): Remove code searching for function to
882350397Sobrien	instantiate; that is now done in check_explicit_specialization.
882450397Sobrien	(add_maybe_template): Pass extra argument to get_bindings.
882550397Sobrien	* tree.c (really_overloaded_fn): Use is_overloaded_fn to simplify
882650397Sobrien	implementation.
882750397Sobrien	* typeck.c (build_component_ref): Check for invalid arguments.
882818334Speter
882950397SobrienTue Jan 27 01:44:02 1998  Jason Merrill  <jason@yorick.cygnus.com>
883018334Speter
883152284Sobrien	* expr.c (cplus_expand_expr, AGGR_INIT_EXPR): Don't check that
883250397Sobrien	return_target and call_target are equivalent.
883318334Speter
883450397Sobrien	* pt.c (type_unification_real): Just accept function parms that
883550397Sobrien	don't use any template parms.
883618334Speter
883750397SobrienSun Jan 25 03:30:00 1998  Jason Merrill  <jason@yorick.cygnus.com>
883818334Speter
883950397Sobrien	* decl.c (cp_finish_decl): When bailing on a comdat variable, also
884050397Sobrien	unset DECL_NOT_REALLY_EXTERN.
884118334Speter
884250397Sobrien	* parse.y (typename_sub*): Fix std::.
884318334Speter
884450397SobrienSat Jan 24 12:13:54 1998  Jason Merrill  <jason@yorick.cygnus.com>
884518334Speter
884650397Sobrien	* error.c (dump_decl): Fix type default template args.
884750397Sobrien	(dump_type): Hand TEMPLATE_DECL off to dump_decl.
884818334Speter
884952284SobrienFri Jan 23 18:34:37 1998  Mumit Khan  <khan@xraylith.wisc.edu>
885018334Speter
885150397Sobrien	* lex.c (DIR_SEPARATOR): Define to be '/' if not already defined.
885250397Sobrien	(file_name_nondirectory): Use.
885318334Speter
885450397SobrienWed Jan 21 10:29:57 1998  Kriang Lerdsuwanakij  <lerdsuwa@scf.usc.edu>
885518334Speter
885650397Sobrien	* pt.c (coerce_template_parms): Don't access elements of ARGLIST
885752284Sobrien	that are not really present.  Substitute default arguments in
885852284Sobrien	template template arguments.  Correctly convert TEMPLATE_DECL to
885950397Sobrien	TEMPLATE_TEMPLATE_PARM.
886052284Sobrien	(comp_template_args): TEMPLATE_DECL and TEMPLATE_TEMPLATE_PARM
886150397Sobrien	are no longer treated specially here.
886250397Sobrien	* parse.y (template_template_parm): Fix copy error.
886350397Sobrien	* decl.c (grokdeclarator): Warn about missing `typename' for nested
886450397Sobrien	type created from template template parameters.
886550397Sobrien	* parse.y (bad_parm): Likewise
886618334Speter
886750397Sobrien	* class.c (finish_struct): Handle TEMPLATE_TEMPLATE_PARM.
886850397Sobrien	(push_nested_class): Likewise.
886950397Sobrien	* cp-tree.def (TEMPLATE_TEMPLATE_PARM): New tree code.
887050397Sobrien	* cp-tree.h (DECL_TEMPLATE_TEMPLATE_PARM_P): New macro.
887150397Sobrien	(copy_template_template_parm): Declare.
887250397Sobrien	* decl.c (arg_looking_for_template): New variable.
887350397Sobrien	(lookup_name_real): Handle TEMPLATE_TEMPLATE_PARM.
887450397Sobrien	Try to return TEMPLATE_DECL or TEMPLATE_TEMPLATE_PARM
887550397Sobrien	node if arg_looking_for_template is nonzero.
887650397Sobrien	(pushdecl): Handle TEMPLATE_TEMPLATE_PARM.
887750397Sobrien	(grok_op_properties, xref_tag, xref_basetypes): Likewise.
887850397Sobrien	(grokdeclarator): Handle TEMPLATE_DECL.
887950397Sobrien	* decl2.c (constructor_name_full): Handle TEMPLATE_TEMPLATE_PARM.
888050397Sobrien	* error.c (dump_type): Add TEMPLATE_DECL and TEMPLATE_TEMPLATE_PARM.
888152284Sobrien	(dump_type_prefix, dump_type_suffix): Handle TEMPLATE_TEMPLATE_PARM.
888250397Sobrien	(dump_decl): Handle unnamed template type parameters.
888350397Sobrien	Handle template template parameters.
888450397Sobrien	(dump_function_name): Handle template template parameters.
888552284Sobrien	* init.c (is_aggr_typedef, is_aggr_type, get_aggr_from_typedef):
888650397Sobrien	Handle TEMPLATE_TEMPLATE_PARM.
888750397Sobrien	* method.c (build_template_template_parm_names): New function.
888850397Sobrien	(build_template_parm_names): Handle TEMPLATE_DECL.
888952284Sobrien	(build_overload_nested_name, build_overload_name):
889050397Sobrien	Handle TEMPLATE_TEMPLATE_PARM.
889150397Sobrien	* parse.y (maybe_identifier): New nonterminal.
889250397Sobrien	(template_type_parm): Use it.
889350397Sobrien	(template_template_parm, template_arg1): New nonterminal.
889450397Sobrien	(template_parm): Add template_template_parm rules.
889550397Sobrien	(template_arg): Set processing_template_arg.
889650397Sobrien	(template_arg1): Rules moved from template_arg.
889750397Sobrien	(primary, nonnested_type): Set arg_looking_for_template if we are
889850397Sobrien	processing template arguments.
889950397Sobrien	* pt.c (begin_member_template_processing): Handle TEMPLATE_DECL.
890050397Sobrien	(process_template_parm): Handle template template parameters.
890150397Sobrien	(coerce_template_parms, comp_template_args): Likewise.
890250397Sobrien	(mangle_class_name_for_template, lookup_template_class): Likewise.
890352284Sobrien	(uses_template_parms): Handle TEMPLATE_DECL and
890450397Sobrien	TEMPLATE_TEMPLATE_PARM.
890550397Sobrien	(current_template_args): Handle TEMPLATE_DECL.
890650397Sobrien	(tsubst, tsubst_copy, unify): Handle TEMPLATE_TEMPLATE_PARM.
890752284Sobrien	* search.c (dfs_walk, dfs_record_inheritance):
890850397Sobrien	Handle TEMPLATE_TEMPLATE_PARM.
890950397Sobrien	* tree.c (copy_template_template_parm): New function.
891050397Sobrien	(mapcar): Handle TEMPLATE_TEMPLATE_PARM.
891150397Sobrien	* typeck.c (comptypes): Handle TEMPLATE_TEMPLATE_PARM.
891218334Speter
891350397SobrienMon Jan 19 22:40:03 1998  Mark Mitchell  <mmitchell@usa.net>
891418334Speter
891550397Sobrien	* decl.c (start_decl): Don't allow duplicate definitions of static
891650397Sobrien	data members.
891718334Speter
891850397Sobrien	* call.c (build_user_type_conversion_1): Handle user-defined
891950397Sobrien	template conversion operators correctly.
892018334Speter
892150397Sobrien	* decl2.c (build_expr_from_tree): Issue an error message if the
892250397Sobrien	object in a COMPONENT_REF is a TEMPLATE_DECL.
892352284Sobrien
892450397Sobrien	* typeck.c (incomplete_type_error): Handle TEMPLATE_TYPE_PARMs.
892552284Sobrien
892650397Sobrien	* class.c (is_local_class): New function.
892750397Sobrien	* cp-tree.h (is_local_class): Declare it.
892850397Sobrien	(last_tree): Likewise.
892950397Sobrien	(begin_tree): Likewise.
893050397Sobrien	(end_tree): Likewise.
893150397Sobrien	(lookup_template_class): Change prototype.
893252284Sobrien	* decl.c (cp_finish_decl): Check for NULL where necessary.
893350397Sobrien	Consider FUNCTION_DECLS to declare objects with top-level binding,
893450397Sobrien	when calling make_decl_rtl.
893550397Sobrien	(grokdeclarator): Give members of local classes internal linkage.
893650397Sobrien	(start_function): Remove declaration of last_tree.
893750397Sobrien	(finish_function): Set flag_keep_inline_functions around call to
893850397Sobrien	rest_of_compilation if we are processing a member function in a
893950397Sobrien	local class.
894050397Sobrien	(start_method): Call push_template_decl for member functions of
894150397Sobrien	local classes in template functions.
894250397Sobrien	* decl2.c (import_export_decl): Don't give external linkage to
894350397Sobrien	instantiations of templates with internal linkage.
894450397Sobrien	* parse.y (last_tree): Remove declaration.
894550397Sobrien	(template_type): Pass extra parameter to lookup_template_class.
894650397Sobrien	(self_template_type): Likewise.
894750397Sobrien	(structsp): Move call to reset_specialization into left_curly.
894850397Sobrien	(left_curly): Call reset_specialization, and begin_tree.
894950397Sobrien	* pt.c (saved_trees): New variable.
895050397Sobrien	(mangle_class_name_for_template): Change prototype.  Use
895150397Sobrien	additional function context to name local classes in templates
895252284Sobrien	correctly.
895350397Sobrien	(classtype_mangled_name): Pass the context.
895450397Sobrien	(push_template_decl): Handle local classes and templates, and
895550397Sobrien	member functions for such classes.
895650397Sobrien	(convert_nontype_parameter): Fix handling of pointer-to-member
895752284Sobrien	constants.
895850397Sobrien	(lookup_template_class): Handle local classes in templates.
895950397Sobrien	(tsubst): Likewise.  Don't assume that template instantiations
896052284Sobrien	have external linkage; pay attention to the template declaration.
896150397Sobrien	(mark_decl_instantiated): Likewise.
896250397Sobrien	(begin_tree): New function.
896350397Sobrien	(end_tree): Likewise.
896452284Sobrien
896550397Sobrien	* decl.c (xref_basetypes): Don't call complete_type for basetypes
896650397Sobrien	that involve template parameters; that can lead to infinite
896750397Sobrien	recursion unnecessarily.
896818334Speter
896950397Sobrien	* pt.c (register_specialization): Do not register specializations
897050397Sobrien	that aren't ready to be registered yet.
897150397Sobrien	(check_explicit_specialization): Handle explicit specialization of
897250397Sobrien	constructors and destructors.
897350397Sobrien	(build_template_decl): New function.
897450397Sobrien	(push_template_delc): Handle out-of-class specializations of
897550397Sobrien	member templates.
897618334Speter
897752284Sobrien	* pt.c (check_explicit_specialization): Set up the template
897852284Sobrien	information before registering the specialization.
897952284Sobrien	(coerce_template_parms): Fix thinko.
898052284Sobrien	(tsubst): Handle specializations of member templates correctly.
898152284Sobrien
898250397Sobrien	* class.c (finish_struct_methods): Remove calls to
898350397Sobrien	check_explicit_specialization from here.
898450397Sobrien	(finish_struct): And insert them here.
898550397Sobrien	* cp-tree.h (perform_qualification_conversions): New function.
898650397Sobrien	(perform_array_to_pointer_conversion): Likewise.
898750397Sobrien	(begin_explicit_instantiation): Likewise.
898850397Sobrien	(end_explicit_instantiation): Likewise.
898950397Sobrien	(determine_specialization): Renamed from
899052284Sobrien	determine_explicit_specialization.
899150397Sobrien	(comp_template_parms): New function.
899250397Sobrien	(processing_explicit_instantiation): New variable.
899350397Sobrien	* cvt.c (perform_qualification_conversions): New function.
899450397Sobrien	(perform_array_to_pointer_conversion): Likewise.
899550397Sobrien	* decl.c (duplicate_decls): Don't consider template functions
899650397Sobrien	alike unless they have the same parameters.  Refine handling of
899750397Sobrien	instantiation/specialization mismatches.
899850397Sobrien	(start_decl): Don't call pushdecl for template specializations,
899950397Sobrien	since they don't affect overloading.
900052284Sobrien	(start_function): Likewise.
900150397Sobrien	(grokfndecl): Call check_explicit_specialization a little later.
900250397Sobrien	Don't call duplicate_decls for memberm template specializations.
900350397Sobrien	(grokdeclarator): Don't update template_count for classes that are
900450397Sobrien	themselves specializations.  Remove use of `2' as parameter to
900550397Sobrien	grokfndecl since that value isn't used.
900650397Sobrien	* lex.c (cons_up_default_function): Save and restore
900750397Sobrien	processing_explicit_instantiation around calls to grokfield.
900850397Sobrien	* parse.y (finish_member_template_decl): New function.
900950397Sobrien	(component_decl_1): Use it.
901050397Sobrien	(fn.def2): Likewise.
901152284Sobrien	(template_arg_list_opt): New nonterminal.
901250397Sobrien	(template_type): Use it.
901350397Sobrien	(self_template_type): Likewise.
901450397Sobrien	(template_id): Likewise.
901550397Sobrien	(object_template_id): Likewise.
901650397Sobrien	(notype_template_declarator): Likwise.
901750397Sobrien	(begin_explicit_instantiation): Likewise.
901850397Sobrien	(end_explicit_instantiation): Likewise.
901950397Sobrien	(explicit_instantiation): Use them.
902050397Sobrien	* pt.c (coerce_template_parms): Add parameters.
902150397Sobrien	(processing_explicit_instantiation): New variable.
902250397Sobrien	(convert_nontype_parameter): New function.
902350397Sobrien	(determine_overloaded_function): Likewise.
902450397Sobrien	(begin_explicit_instantiation): Likewise.
902550397Sobrien	(end_explicit_instantiation): Likewise.
902650397Sobrien	(retrieve_specialization): Likewise.
902750397Sobrien	(register_specialization): Likewise.
902850397Sobrien	(processing_explicit_specialization): Removed.
902950397Sobrien	(determine_specialization): Handle specializations of member
903050397Sobrien	functions of template class instantiations.
903150397Sobrien	(check_explicit_specialization): Refine to conform to standard.
903250397Sobrien	(comp_template_parms): New function.
903350397Sobrien	(coerce_template_parms): Call convert_nontype_parameter.
903450397Sobrien	(tsubst): Refine handling of member templates.  Use
903552284Sobrien	register_specialization.
903650397Sobrien	(instantiate_template): Use retrieve_specialization.
903750397Sobrien	(do_decl_instantiation): Likewise.
903850397Sobrien	(instantiate_decl): Likewise.
903950397Sobrien	(type_unification): Improve handling of explict template
904052284Sobrien	arguments.
904150397Sobrien	* tree.c (mapcar): Return error_mark_node, rather than aborting,
904250397Sobrien	on VAR_DECLS, FUNCTION_DECLS, and CONST_DECLS.
904350397Sobrien	* typeck.c (build_unary_op): Call determine_specialization, rather
904450397Sobrien	than determine_explicit_specialization.
904518334Speter
904650397SobrienMon Jan 19 13:18:51 1998  Jason Merrill  <jason@yorick.cygnus.com>
904718334Speter
904850397Sobrien	* cvt.c (build_up_reference): A TARGET_EXPR has side effects.
904918334Speter
905050397SobrienFri Jan 16 11:40:50 1998  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
905118334Speter
905252284Sobrien	* error.c (dump_decl): For enum tags, output the tag, not its value.
905318334Speter
905450397Sobrien1998-01-13  Brendan Kehoe  <brendan@cygnus.com>
905518334Speter
905650397Sobrien	* decl.c (init_decl_processing): Only call init_rtti_processing
905750397Sobrien	FLAG_RTTI is set.
905818334Speter
905950397SobrienMon Jan 12 01:35:18 1998  Jason Merrill  <jason@yorick.cygnus.com>
906018334Speter
906150397Sobrien	* init.c (build_new_1): Split out from build_new.
906250397Sobrien	(build_new): Just return a NEW_EXPR.
906350397Sobrien	* expr.c (cplus_expand_expr): Handle NEW_EXPR.
906418334Speter
906550397Sobrien	* decl2.c (get_temp_regvar): Tweak.
906618334Speter
906750397Sobrien	* cp-tree.h (TREE_CALLS_NEW): Comment out.
906850397Sobrien	* class.c (resolves_to_fixed_type_p): Remove use.
906950397Sobrien	* method.c (build_opfncall): Likewise.
907050397Sobrien	* call.c (build_new_op): Likewise.
907118334Speter
907250397SobrienWed Jan  7 23:47:13 1998  Jason Merrill  <jason@yorick.cygnus.com>
907318334Speter
907450397Sobrien	* exception.cc (__eh_alloc, __eh_free): New fns.
907550397Sobrien	(__cp_push_exception, __cp_pop_exception): Use them.
907650397Sobrien	(__uncatch_exception): Call terminate here if no exception.
907750397Sobrien	* except.c (build_terminate_handler): New fn.
907850397Sobrien	(expand_start_catch_block): Use it.
907950397Sobrien	(expand_exception_blocks): Likewise.
908050397Sobrien	(alloc_eh_object): New fn.
908150397Sobrien	(expand_throw): Use it.  Protect exception init with terminate.
908252284Sobrien	* typeck.c (build_modify_expr): Remove code that ignores trivial
908350397Sobrien	methods.
908418334Speter
908550397SobrienMon Dec 22 11:36:27 1997  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
908652284Sobrien
908750397Sobrien	* call.c (add_builtin_candidate): Add default case in enumeration
908850397Sobrien	switch.
908950397Sobrien	(build_new_op): Likewise.
909050397Sobrien	(convert_like): Likewise.
909150397Sobrien	* cvt.c (build_expr_type_conversion): Likewise.
909250397Sobrien	* tree.c (real_lvalue_p): Likewise.
909350397Sobrien	(lvalue_p): Likewise.
909450397Sobrien	(cp_tree_equal): Likewise.
909550397Sobrien	* typeck.c (comptypes): Likewise.
909650397Sobrien	(build_component_ref): Likewise.
909750397Sobrien	(build_function_call_real): Likewise.
909850397Sobrien	(build_binary_op_nodefault): Likewise.
909950397Sobrien	(build_unary_op): Likewise.
910050397Sobrien	(build_modify_expr): Likewise.
910150397Sobrien	* typeck2.c (initializer_constant_valid_p): Likewise.
910218334Speter
910350397SobrienSun Dec 21 15:59:00 1997  Nick Clifton  <nickc@cygnus.com>
910418334Speter
910550397Sobrien	* decl2.c (lang_decode_option): Add support for -Wunknown-pragmas.
910618334Speter
910750397SobrienThu Dec 18 14:51:50 1997  Mark Mitchell  <mmitchell@usa.net>
910818334Speter
910950397Sobrien	* pt.c (coerce_template_parms): Make sure to digest_init if
911050397Sobrien	possible.
911118334Speter
911250397Sobrien	* decl.c (duplicate_decls): Make the newdecl virtual if the
911350397Sobrien	olddecl was, just as is done with other attributes of olddecl.
911418334Speter
911550397SobrienThu Dec 18 14:43:19 1997  Jason Merrill  <jason@yorick.cygnus.com>
911618334Speter
911752284Sobrien	* typeck.c (unary_complex_lvalue): Ignore op0 when taking the
911850397Sobrien	address of an OFFSET_REF.
911918334Speter
912050397Sobrien	* cp-tree.def: Add AGGR_INIT_EXPR.
912150397Sobrien	* error.c, tree.c, typeck.c: Replace uses of NEW_EXPR with
912250397Sobrien	AGGR_INIT_EXPR where appropriate.
912350397Sobrien	* expr.c (cplus_expand_expr): Likewise.  Simplify.
912418334Speter
912550397Sobrien	* decl2.c (finish_file): Remove call to register_exception_table.
912618334Speter
912750397SobrienWed Dec 17 17:08:52 1997  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
912818334Speter
912950397Sobrien	* pt.c (instantiate_class_template): Don't do injection when
913052284Sobrien	processing_template_decl is true, as pollutes current_binding_level
913152284Sobrien	for base classes.
913218334Speter
913352284SobrienWed Dec 17 21:17:39 1997  Peter Schmid  <schmid@ltoi.iap.physik.tu-darmstadt.de>
913418334Speter
913550397Sobrien	* pt.c (maybe_fold_nontype_arg): Add prototype.
913618334Speter
913750397SobrienTue Dec 16 10:31:20 1997  Jason Merrill  <jason@yorick.cygnus.com>
913818334Speter
913950397Sobrien	* tree.c (mapcar): Handle TRY_CATCH_EXPR et al.
914050397Sobrien	* error.c (dump_expr): Likewise.
914118334Speter
914250397SobrienMon Dec 15 12:22:04 1997  Jason Merrill  <jason@yorick.cygnus.com>
914318334Speter
914450397Sobrien	* typeck.c (build_function_call_real): Remove "inline called before
914550397Sobrien	definition" pedwarn.
914618334Speter
914750397Sobrien	* pt.c (coerce_template_parms): Use maybe_fold_nontype_arg.
914818334Speter
914950397SobrienSun Dec 14 22:34:20 1997  Jason Merrill  <jason@yorick.cygnus.com>
915018334Speter
915150397Sobrien	* cvt.c (cp_convert_to_pointer): Fix base conversion of pm's.
915218334Speter
915352284Sobrien	* pt.c (type_unification_real): Change __null to type void* with
915450397Sobrien	a warning.
915518334Speter
915650397SobrienSun Dec 14 20:38:35 1997  Mark Mitchell  <mmitchell@usa.net>
915718334Speter
915850397Sobrien	* call.c (implicit_conversion): Don't call
915950397Sobrien	build_user_type_conversion_1 with a NULL expr, since it will
916052284Sobrien	crash.
916118334Speter
916250397Sobrien	* pt.c (unify): Don't try to unify array bounds if either array is
916350397Sobrien	unbounded.
916418334Speter
916550397SobrienFri Dec 12 16:09:14 1997  Jason Merrill  <jason@yorick.cygnus.com>
916618334Speter
916752284Sobrien	* errfn.c (cp_pedwarn, cp_pedwarn_at, cp_error_at, cp_warning_at):
916850397Sobrien	Replace extern decls with casts.
916918334Speter
917050397Sobrien	* decl.c (expand_start_early_try_stmts): Don't mess with a sequence.
917150397Sobrien	Update last_parm_cleanup_insn.
917250397Sobrien	(store_after_parms): Remove.
917350397Sobrien	* cp-tree.h: Adjust.
917418334Speter
917550397SobrienThu Dec 11 22:18:37 1997  Jason Merrill  <jason@yorick.cygnus.com>
917618334Speter
917750397Sobrien	* decl2.c (comdat_linkage): Also set DECL_COMDAT.
917850397Sobrien	(finish_file): Check DECL_COMDAT instead of weak|one_only.
917950397Sobrien	(import_export_vtable): Use make_decl_one_only instead of
918052284Sobrien	comdat_linkage for win32 tweak.
918150397Sobrien	(import_export_decl): Likewise.
918250397Sobrien	* pt.c (mark_decl_instantiated): Likewise.
918318334Speter
918450397Sobrien	* decl2.c (finish_file): Lose handling of templates in pending_statics.
918518334Speter
918650397SobrienThu Dec 11 21:12:09 1997  Jason Merrill  <jason@yorick.cygnus.com>
918718334Speter
918850397Sobrien	* decl2.c (finish_file): Lose call to expand_builtin_throw.
918950397Sobrien	* except.c (expand_builtin_throw): Remove.
919050397Sobrien	* cp-tree.h: Remove ptr_ptr_type_node.
919150397Sobrien	* decl.c: Likewise.
919218334Speter
919350397SobrienThu Dec 11 20:43:33 1997  Teemu Torma  <tot@trema.com>
919452284Sobrien
919550397Sobrien	* decl.c (ptr_ptr_type_node): Define.
919650397Sobrien	(init_decl_processing): Initialize it.
919750397Sobrien	* cp-tree.h: Declare it.
919850397Sobrien	* exception.cc (__cp_exception_info): Use __get_eh_info.
919952284Sobrien	(__cp_push_exception): Likewise.
920052284Sobrien	(__cp_pop_exception): Likewise.
920118334Speter
920250397Sobrien	From Scott Snyder <snyder@d0sgif.fnal.gov>:
920352284Sobrien	* except.c (expand_builtin_throw): Use get_saved_pc_ref instead of
920450397Sobrien	saved_pc.
920550397Sobrien	(init_exception_processing): Removed saved_pc initialization.
920618334Speter
920750397SobrienWed Dec 10 11:04:45 1997  Jason Merrill  <jason@yorick.cygnus.com>
920818334Speter
920950397Sobrien	* pt.c (instantiate_decl): Defer all templates but inline functions.
921018334Speter
921150397SobrienMon Dec  8 23:17:13 1997  Jason Merrill  <jason@yorick.cygnus.com>
921218334Speter
921350397Sobrien	* init.c (expand_vec_init): Don't fold a list of parameters.
921418334Speter
921550397Sobrien	* decl.c (copy_args_p): Handle copy elision for types with virtual
921652284Sobrien	bases.
921752284Sobrien	* call.c (build_over_call): Likewise.
921818334Speter
921950397SobrienSun Dec  7 22:38:12 1997  Mark Mitchell  <mmitchell@usa.net>
922018334Speter
922150397Sobrien	* pt.c (lookup_template_function): Copy the template arguments,
922250397Sobrien	not just the list containing them, to the permanent obstack.
922318334Speter
922450397SobrienSun Dec  7 15:53:06 1997  Jason Merrill  <jason@yorick.cygnus.com>
922518334Speter
922650397Sobrien	* except.c (expand_start_catch_block): suspend_momentary for the
922750397Sobrien	terminate handler.
922818334Speter
922950397Sobrien	* error.c (dump_decl): Handle LOOKUP_EXPR.
923018334Speter
923150397SobrienSun Dec  7 15:45:07 1997  Mark Mitchell  <mmitchell@usa.net>
923218334Speter
923350397Sobrien	* rtti.c (build_dynamic_cast): Copy the cast-to type to the
923450397Sobrien	permanent obstack if we are processing a template decl.
923550397Sobrien	* typeck.c (build_static_cast): Likewise.
923650397Sobrien	(build_const_cast): Likewise.
923750397Sobrien	(build_reinterpret_cast): Likewise.
923818334Speter
923950397Sobrien	* pt.c (coerce_template_parms): Coerce some expressions, even
924050397Sobrien	when processing_template_decl.
924118334Speter
924250397SobrienSun Dec  7 01:46:33 1997  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
924318334Speter
924450397Sobrien	* typeck.c (build_binary_op_nodefault, pointer_diff): Symmetric
924550397Sobrien	handling of pointer difference expressions.
924618334Speter
924750397Sobrien	* typeck.c (comp_target_types): Comparison of function/method types
924850397Sobrien	is independent of nptrs.
924918334Speter
925050397SobrienSun Dec  7 01:40:27 1997  Mark Mitchell  <mmitchell@usa.net>
925118334Speter
925250397Sobrien	* pt.c (tsubst): Avoid creating pointer to reference and
925350397Sobrien	reference to reference types.
925418334Speter
925550397SobrienSat Dec  6 01:29:37 1997  Jason Merrill  <jason@yorick.cygnus.com>
925618334Speter
925750397Sobrien	* parse.y (do_id): New nonterminal.
925850397Sobrien	(template_id): Use it.
925918334Speter
926050397SobrienFri Dec  5 01:17:34 1997  Jason Merrill  <jason@yorick.cygnus.com>
926118334Speter
926250397Sobrien	* parse.y (template_id): do_identifier for PFUNCNAMEs, too.
926350397Sobrien	* spew.c (yylex): Don't do_identifier here.
926450397Sobrien	* decl2.c (build_expr_from_tree): Revert last change.
926518334Speter
926650397Sobrien	* decl2.c (build_expr_from_tree): Expand the name for a method call.
926750397Sobrien	* parse.y (object_template_id): Don't try to take the DECL_NAME.
926818334Speter
926950397SobrienWed Dec  3 20:02:39 1997  Jason Merrill  <jason@yorick.cygnus.com>
927018334Speter
927150397Sobrien	* init.c (build_new): Use a TARGET_EXPR instead of SAVE_EXPR for
927252284Sobrien	alloc_expr.
927352284Sobrien	* call.c (build_op_delete_call): Adjust.
927418334Speter
927550397Sobrien	* except.c (expand_end_catch_block): Lose rethrow region.
927650397Sobrien	(expand_start_catch_block): Likewise.
927750397Sobrien	(expand_end_catch_block): Don't expand_leftover_cleanups.
927818334Speter
927950397SobrienWed Dec  3 13:24:04 1997  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
928018334Speter
928150397Sobrien	* pt.c (tsubst): Remove tree_cons call (places redundant info into
928252284Sobrien	DECL_TEMPLATE_INSTANTIATION).
928318334Speter
928450397SobrienWed Dec  3 11:44:52 1997  Jason Merrill  <jason@yorick.cygnus.com>
928518334Speter
928650397Sobrien	* tree.c (is_overloaded_fn): Handle getting a fn template.
928750397Sobrien	(really_overloaded_fn): Likewise.
928850397Sobrien	* error.c (dump_decl): Handle TEMPLATE_ID_EXPRs better.
928950397Sobrien	* pt.c (check_explicit_specialization): Tweak.
929050397Sobrien	(determine_explicit_specialization): Tweak.
929118334Speter
929250397Sobrien	* tree.c, cp-tree.h (get_target_expr): New fn.
929318334Speter
929450397SobrienWed Dec  3 08:47:27 1997  Paul Eggert  <eggert@twinsun.com>
929518334Speter
929650397Sobrien	* pt.c (check_explicit_specialization): Fix misspelling in
929750397Sobrien	diagnostic: `preceeded'.
929850397Sobrien	* typeck.c (get_delta_difference): Fix misspelling in diagnostic:
929950397Sobrien	`conversiona'.
930018334Speter
930150397Sobrien1997-12-02  Mark Mitchell  <mmitchell@usa.net>
930218334Speter
930350397Sobrien	* pt.c (determine_explicit_specialization): Avoid an internal
930450397Sobrien	error for bad specializations.
930518334Speter
930650397Sobrien	* method.c (build_overload_value): Handle SCOPE_REF.
930718334Speter
930850397SobrienTue Dec  2 19:18:50 1997  Mike Stump  <mrs@wrs.com>
930918334Speter
931050397Sobrien	* class.c (prepare_fresh_vtable): Enable even more complex MI
931150397Sobrien	vtable names.
931218334Speter
931350397SobrienTue Dec  2 01:37:19 1997  Jason Merrill  <jason@yorick.cygnus.com>
931418334Speter
931550397Sobrien	* exception.cc (__check_eh_spec): Optimize a bit.
931618334Speter
931750397Sobrien	* exception.cc (__cp_pop_exception): Lose handler arg.
931850397Sobrien	* except.c (do_pop_exception): Likewise.
931950397Sobrien	(push_eh_cleanup): Let the cleanup mechanism supply the handler.
932050397Sobrien	(expand_end_catch_block): Likewise.
932118334Speter
932250397SobrienFri Nov 28 01:58:14 1997  Jason Merrill  <jason@yorick.cygnus.com>
932318334Speter
932452284Sobrien	* pt.c (check_explicit_specialization): Complain about using a
932550397Sobrien	template-id for a non-specialization.
932618334Speter
932750397SobrienFri Nov 28 12:35:19 1997  Scott Christley  <scottc@net-community.com>
932818334Speter
932950397Sobrien	* repo.c: Prototype rindex only if needed.
933050397Sobrien	* xref.c: Likewise.
933118334Speter
933250397SobrienFri Nov 28 01:56:35 1997  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
933318334Speter
933452284Sobrien	* error.c (dump_decl): Handle TEMPLATE_ID_EXPR.
933518334Speter
933650397SobrienThu Nov 27 00:59:46 1997  Jason Merrill  <jason@yorick.cygnus.com>
933718334Speter
933850397Sobrien	* typeck.c (build_const_cast): Handle references here instead of
933950397Sobrien	handing off to convert_to_reference.
934018334Speter
934150397Sobrien	* except.c: Lose Unexpected, SetTerminate, SetUnexpected,
934252284Sobrien	TerminateFunctionCall.
934350397Sobrien	(init_exception_processing): Likewise.  Terminate et al are now
934452284Sobrien	the fns, not ADDR_EXPRs.
934550397Sobrien	(various): Lose redundant assemble_external calls.
934650397Sobrien	(do_unwind): s/BuiltinReturnAddress/builtin_return_address_fndecl/.
934718334Speter
934850397Sobrien	* cp-tree.h (struct lang_decl_flags): Add comdat.
934950397Sobrien	(DECL_COMDAT): New macro.
935050397Sobrien	* decl.c (duplicate_decls): Propagate it.
935150397Sobrien	(cp_finish_decl): Handle it.
935250397Sobrien	* decl2.c (import_export_decl): Just set DECL_COMDAT on VAR_DECLs.
935318334Speter
935450397Sobrien	* class.c: Remove static pending_hard_virtuals.
935552284Sobrien	(add_virtual_function): Take pointers to pending_virtuals
935650397Sobrien	and pending_hard_virtuals.
935750397Sobrien	(finish_struct_1): Pass them.  Declare pending_hard_virtuals.
935818334Speter
935950397SobrienWed Nov 26 20:28:49 1997  Jason Merrill  <jason@yorick.cygnus.com>
936018334Speter
936150397Sobrien	* decl2.c (import_export_vtable): If we support one_only but not
936250397Sobrien	weak symbols, mark instantiated template vtables one_only.
936350397Sobrien	(import_export_decl): Likewise for tinfo functions.
936452284Sobrien	(finish_vtable_vardecl): Also write out vtables from explicitly
936550397Sobrien	instantiated template classes.
936650397Sobrien	* pt.c (mark_class_instantiated): Revert last change.
936718334Speter
936850397Sobrien	* except.c (expand_throw): Call mark_used on the destructor.
936918334Speter
937050397SobrienWed Nov 26 15:13:48 1997  Jeffrey A Law  (law@cygnus.com)
937118334Speter
937250397Sobrien	* lex.c (lang_init): Enable flag_exceptions by default if no
937350397Sobrien	command line switch was specified.
937418334Speter
937550397Sobrien1997-11-26  Mark Mitchell  <mmitchell@usa.net>
937618334Speter
937750397Sobrien	* pt.c (unify): Handle `void' template parameters in
937850397Sobrien	specializations.
937918334Speter
938050397SobrienWed Nov 26 01:11:24 1997  Jason Merrill  <jason@yorick.cygnus.com>
938118334Speter
938250397Sobrien	* rtti.c (build_dynamic_cast): Handle template case here.
938350397Sobrien	(build_dynamic_cast_1): Not here.
938418334Speter
938550397Sobrien	* typeck2.c (digest_init): Make copies where appropriate.
938618334Speter
938750397Sobrien	* decl2.c (delete_sanity): resolve_offset_ref.
938818334Speter
938950397Sobrien	* except.c: Call terminate without caching so many bits.
939018334Speter
939150397Sobrien	* except.c (expand_start_catch_block): Fix catching a reference
939250397Sobrien	to pointer.
939318334Speter
939450397SobrienTue Nov 25 11:28:21 1997  Jason Merrill  <jason@yorick.cygnus.com>
939518334Speter
939650397Sobrien	* init.c (build_new): Copy size to the saveable obstack.
939718334Speter
939850397Sobrien	* init.c (build_new): Stick a CLEANUP_POINT_EXPR inside the
939952284Sobrien	TRY_CATCH_EXPR for now.
940018334Speter
940150397SobrienMon Nov 24 12:15:55 1997  Jason Merrill  <jason@yorick.cygnus.com>
940218334Speter
940350397Sobrien	* typeck.c (mark_addressable): Don't assume a FUNCTION_DECL
940450397Sobrien	has DECL_LANG_SPECIFIC.
940518334Speter
940650397Sobrien	* exception.cc (struct cp_eh_info): Add handlers field.
940750397Sobrien	(__cp_push_exception): Initialize it.
940850397Sobrien	(__cp_pop_exception): Decrement it.  Don't pop unless it's 0.
940950397Sobrien	(__throw_bad_exception): Remove.
941050397Sobrien	* except.c (call_eh_info): Add handlers field.
941150397Sobrien	(get_eh_handlers): New fn.
941250397Sobrien	(push_eh_cleanup): Increment handlers.
941318334Speter
941450397SobrienFri Nov 21 12:22:07 1997  Jason Merrill  <jason@yorick.cygnus.com>
941518334Speter
941650397Sobrien	* except.c (expand_start_eh_spec): Use the try/catch code.
941750397Sobrien	(expand_end_eh_spec): Likewise.  Call __check_eh_spec instead of
941850397Sobrien	doing everything inline.
941950397Sobrien	(init_exception_processing): throw_type_match now takes
942052284Sobrien	const void pointers.
942150397Sobrien	* exception.cc (__check_eh_spec): New fn.
942250397Sobrien	* inc/exception: Neither terminate nor unexpected return.
942350397Sobrien	* decl.c: Make const_ptr_type_node public.
942450397Sobrien	* tinfo2.cc (__throw_type_match_rtti): Take the typeinfos constly.
942518334Speter
942650397Sobrien	* except.c (expand_start_catch_block): We only need the rethrow
942752284Sobrien	region for non-sjlj exceptions.
942850397Sobrien	(expand_end_catch_block): Likewise.  Use outer_context_label_stack.
942918334Speter
943050397SobrienThu Nov 20 14:40:17 1997  Jason Merrill  <jason@yorick.cygnus.com>
943118334Speter
943250397Sobrien	* Make-lang.in (CXX_LIB2FUNCS): Add new op new and op delete objs.
943350397Sobrien	(various.o): Likewise.
943450397Sobrien	* inc/new: Add placement deletes.  Add throw specs for default new.
943550397Sobrien	* new.cc (set_new_handler): Move here from libgcc2.
943650397Sobrien	* new1.cc (new (nothrow)): Catch a bad_alloc thrown from the handler.
943750397Sobrien	(new): Move from libgcc2.  Throw bad_alloc.
943850397Sobrien	* new2.cc: Move the rest of the op news and op deletes from libgcc2.
943950397Sobrien	* decl.c (init_decl_processing): Update exception specs on new and
944050397Sobrien	delete.
944118334Speter
944252284Sobrien	* method.c (build_decl_overload_real): Don't mess with global
944350397Sobrien	placement delete.
944418334Speter
944550397Sobrien	* init.c (build_new): Check for null throw spec, not nothrow_t.
944618334Speter
944750397Sobrien	* decl.c (duplicate_decls): Don't complain about different exceptions
944850397Sobrien	from an internal declaration.
944918334Speter
945050397Sobrien	* call.c (build_op_delete_call): Fix check for member fns again.
945118334Speter
945250397Sobrien	* decl2.c (import_export_decl): Interface hackery affects
945350397Sobrien	virtual synthesized methods.
945418334Speter
945550397SobrienWed Nov 19 18:24:14 1997  Jason Merrill  <jason@yorick.cygnus.com>
945618334Speter
945752284Sobrien	* decl.c (start_decl): Don't just complain about a mismatched
945850397Sobrien	scope, fix it.
945918334Speter
946050397Sobrien	* decl.c (make_implicit_typename): Handle case where t is not
946152284Sobrien	actually from context.
946250397Sobrien	* tree.c (get_type_decl): Lose identifier case.
946352284Sobrien	* spew.c (yylex): Lose useless call to identifier_typedecl_value.
946450397Sobrien	* parse.y (nonnested_type): Just use lookup_name.
946550397Sobrien	(complex_type_name): Just use IDENTIFIER_GLOBAL_VALUE.
946618334Speter
946750397SobrienWed Nov 19 11:45:07 1997  Michael Tiemann  <tiemann@axon.cygnus.com>
946818334Speter
946950397Sobrien	* error.c (dump_function_name): Test DECL_LANG_SPECIFIC in case
947050397Sobrien	T was built in C language context (for example, by
947150397Sobrien	output_func_start_profiler).
947218334Speter
947350397SobrienWed Nov 19 10:39:27 1997  Jason Merrill  <jason@yorick.cygnus.com>
947418334Speter
947550397Sobrien	* decl.c (make_implicit_typename): New fn.
947650397Sobrien	(lookup_name_real): Use it.  Use current_class_type as the context.
947718334Speter
947852284SobrienMon Nov 17 23:42:03 1997  Bruno Haible  <haible@ilog.fr>
947918334Speter
948050397Sobrien	* pt.c (do_poplevel): Don't prohibit jumps into this contour.
948118334Speter
948250397SobrienMon Nov 17 02:01:28 1997  Jason Merrill  <jason@yorick.cygnus.com>
948318334Speter
948450397Sobrien	* friend.c (do_friend): Warn about non-template friends in templates.
948518334Speter
948650397Sobrien	* call.c (build_op_delete_call): Fix handling of inherited delete.
948718334Speter
948850397Sobrien	* search.c (dfs_record_inheritance): Ignore template type parms.
948918334Speter
949050397SobrienSat Nov 15 00:30:51 1997  Jason Merrill  <jason@yorick.cygnus.com>
949118334Speter
949250397Sobrien	* call.c (build_new_op): Fix copy error.
949350397Sobrien	(build_op_new_call): New fn.
949450397Sobrien	(build_op_delete_call): New fn.
949550397Sobrien	* cp-tree.h: Declare them.
949650397Sobrien	* init.c (build_new): Use them.  Support placement delete.
949750397Sobrien	(build_x_delete): Use build_op_delete_call.
949850397Sobrien	(build_delete): Likewise.
949950397Sobrien	* decl2.c (delete_sanity): Likewise.
950050397Sobrien	(coerce_delete_type): Don't complain about placement delete.
950118334Speter
950250397SobrienThu Nov 13 01:52:36 1997  Jason Merrill  <jason@yorick.cygnus.com>
950318334Speter
950450397Sobrien	* call.c (build_new_function_call): Remove unused 'obj' parm.
950550397Sobrien	* cp-tree.h, typeck.c: Adjust.
950618334Speter
950750397Sobrien	* init.c (build_new): Make the cleanup last longer.
950850397Sobrien	(expand_vec_init): Call do_pending_stack_adjust.
950918334Speter
951050397SobrienWed Nov 12 11:04:33 1997  Jason Merrill  <jason@yorick.cygnus.com>
951118334Speter
951250397Sobrien	* pt.c (do_type_instantiation): Fix typo.
951352284Sobrien	(mark_class_instantiated): If we support one_only but not weak
951450397Sobrien	symbols, don't mark this as known.
951550397Sobrien
951650397Sobrien	* init.c (build_new): Handle vec delete in EH cleanup.
951750397Sobrien
951850397SobrienWed Nov 12 08:11:55 1997  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
951950397Sobrien
952050397Sobrien	* call.c (build_method_call): Call complete_type before checking
952152284Sobrien	for destructor.
952250397Sobrien
952350397SobrienSun Nov  9 01:29:55 1997  Jim Wilson  (wilson@cygnus.com)
952450397Sobrien
952550397Sobrien	* decl.c (add_block_current_level): Delete.
952650397Sobrien	* init.c (build_vec_delete_1): Delete build_block and
952750397Sobrien	add_block_current_level calls.
952850397Sobrien
952950397SobrienWed Nov 12 00:48:16 1997  Jason Merrill  <jason@yorick.cygnus.com>
953050397Sobrien
953150397Sobrien	* init.c (build_new): Handle freeing allocated memory when the
953250397Sobrien	constructor throws.
953350397Sobrien
953450397Sobrien	* call.c (build_new_method_call): Fix flags arg.
953550397Sobrien
953650397Sobrien	* pt.c (do_type_instantiation): Don't try to instantiate
953750397Sobrien	member templates.
953850397Sobrien	(mark_decl_instantiated): If we support one_only but not
953950397Sobrien	weak symbols, mark this one_only.
954050397Sobrien	* decl2.c (import_export_vtable): Don't defer handling of vtables
954150397Sobrien	if MULTIPLE_SYMBOL_SPACES.
954250397Sobrien
954350397SobrienTue Nov 11 12:02:12 1997  Jason Merrill  <jason@yorick.cygnus.com>
954450397Sobrien
954550397Sobrien	* except.c (expand_end_catch_block): Lose call to __sjpopnthrow.
954650397Sobrien
954750397SobrienTue Nov 11 02:53:44 1997  Jason Merrill  <jason@lasher.cygnus.com>
954850397Sobrien
954950397Sobrien	* except.c (do_pop_exception): Return a value.
955050397Sobrien
955150397SobrienMon Nov 10 20:25:31 1997  Jason Merrill  <jason@yorick.cygnus.com>
955250397Sobrien
955350397Sobrien	* call.c (build_new_method_call): Handle getting a
955452284Sobrien	TEMPLATE_ID_EXPR around a TEMPLATE_DECL.  Don't look for a field
955552284Sobrien	if we got template parms.
955650397Sobrien	* typeck.c (build_x_function_call): Remember the TEMPLATE_ID_EXPR,
955752284Sobrien	not just the args.
955850397Sobrien	* decl2.c (build_expr_from_tree): Tweak last change.
955950397Sobrien	* pt.c (tsubst_copy): Use get_first_fn instead of TREE_VALUE.
956050397Sobrien	(maybe_fold_nontype_arg): Split out from tsubst_copy.
956150397Sobrien	* tree.c (get_first_fn): Just return a TEMPLATE_ID_EXPR.
956250397Sobrien
956352284SobrienMon Nov 10 20:08:38 1997  Kriang Lerdsuwanakij  <lerdsuwa@scf-fs.usc.edu>
956450397Sobrien
956552284Sobrien	* pt.c (tsubst_copy): Handle explicit template arguments in
956650397Sobrien	function calls.
956750397Sobrien	* typeck.c (build_x_function_call): Likewise.
956852284Sobrien	* decl2.c (build_expr_from_tree): Lookup function name if it
956950397Sobrien	hasn't been done.
957050397Sobrien
957152284Sobrien	* pt.c (tsubst): Instantiate template functions properly when
957252284Sobrien	template parameter does not appear in function arguments and return
957318334Speter	type.
957450397Sobrien	(comp_template_args): Handle member templates required by tsubst.
957518334Speter
957650397SobrienMon Nov 10 20:08:38 1997  Jason Merrill  <jason@yorick.cygnus.com>
957718334Speter
957850397Sobrien	* decl.c (grokdeclarator): Tweak conditions for pedwarn in
957952284Sobrien	previous change.
958018334Speter
958150397SobrienMon Nov 10 20:08:29 1997  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
958218334Speter
958350397Sobrien	* pt.c (coerce_template_parms): Tweak error message.
958418334Speter
958550397Sobrien	* decl.c (grokdeclarator): If -Wreturn-type, warn everytime a
958650397Sobrien	return type defaults to `int', even if there are storage-class
958750397Sobrien	specifiers.
958818334Speter
958950397SobrienMon Nov 10 03:04:20 1997  Jason Merrill  <jason@yorick.cygnus.com>
959018334Speter
959150397Sobrien	Complete nested exception support.
959250397Sobrien	* except.c (do_pop_exception): Split out...
959350397Sobrien	(push_eh_cleanup): From here.  Handle the EH region by hand.
959450397Sobrien	(expand_start_catch_block): Add a new level for the catch parm.
959550397Sobrien	Move the rethrow region outside the two cleanup regions.
959650397Sobrien	Protect the initializer for the catch parm with terminate.
959750397Sobrien	(expand_end_catch_block): Likewise.  End the region for the eh_cleanup.
959850397Sobrien	* exception.cc (__cp_pop_exception): Now takes two parms.  Handle
959950397Sobrien	popping off the middle of the stack.
960052284Sobrien	* tree.c (lvalue_p, real_lvalue_p): Handle TRY_CATCH_EXPR,
960150397Sobrien	WITH_CLEANUP_EXPR, and UNSAVE_EXPR.
960250397Sobrien	(build_cplus_new): Only wrap CALL_EXPRs.
960352284Sobrien	* init.c (expand_default_init): Handle a TRY_CATCH_EXPR around
960450397Sobrien	the constructor call.
960518334Speter
960650397SobrienSun Nov  9 18:00:26 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
960718334Speter
960850397Sobrien	* Make-lang.in (c++.distdir): Make inc subdirectory.
960918334Speter
961050397SobrienFri Nov  7 11:57:28 1997  Jason Merrill  <jason@yorick.cygnus.com>
961118334Speter
961250397Sobrien	* decl2.c (finish_file): Put back some code.
961318334Speter
961450397SobrienThu Nov  6 11:28:14 1997  Jason Merrill  <jason@yorick.cygnus.com>
961518334Speter
961650397Sobrien	* decl2.c (finish_file): Remove redundant code.
961750397Sobrien	* method.c (emit_thunk): Don't let the backend defer generic thunks.
961818334Speter
961950397SobrienWed Nov  5 23:52:50 1997  Jason Merrill  <jason@yorick.cygnus.com>
962018334Speter
962150397Sobrien	* except.c (call_eh_info): Split out...
962250397Sobrien	(push_eh_info): From here.
962350397Sobrien	(expand_builtin_throw): Use it.
962450397Sobrien	(expand_start_catch_block): Move region start back.
962518334Speter
962650397SobrienTue Nov  4 13:45:10 1997  Doug Evans  <devans@canuck.cygnus.com>
962718334Speter
962850397Sobrien	* lex.c (MULTIBYTE_CHARS): #undef if cross compiling.
962950397Sobrien	(real_yylex): Record wide strings using target endianness, not host.
963018334Speter
963150397Sobrien1997-11-03  Brendan Kehoe  <brendan@lisa.cygnus.com>
963218334Speter
963350397Sobrien	* repo.c (rindex): Add decl unconditionally.
963450397Sobrien	(get_base_filename, open_repo_file): Don't cast rindex.
963550397Sobrien	* xref.c (rindex): Add decl unconditionally.
963650397Sobrien	(index): Remove unused decl.
963750397Sobrien	(open_xref_file): Don't cast rindex.
963818334Speter
963950397SobrienSun Nov  2 15:04:12 1997  Jason Merrill  <jason@yorick.cygnus.com>
964018334Speter
964150397Sobrien	* class.c (build_vbase_path): Propagate the result type properly.
964218334Speter
964350397Sobrien1997-11-01  Brendan Kehoe  <brendan@lisa.cygnus.com>
964418334Speter
964550397Sobrien	* except.c (expand_builtin_throw) [!DWARF2_UNWIND_INFO]: Replace
964650397Sobrien	remaining use of saved_throw_type with a call to get_eh_type.
964718334Speter
964850397Sobrien1997-10-31  Brendan Kehoe  <brendan@lisa.cygnus.com>
964918334Speter
965050397Sobrien	* lex.c (FILE_NAME_NONDIRECTORY): Delete macro.
965150397Sobrien	(file_name_nondirectory): New function, doing the same as the macro.
965250397Sobrien	(set_typedecl_interface_info): Use it instead of the macro.
965350397Sobrien	(check_newline): Likewise.
965450397Sobrien	(handle_cp_pragma): Likewise.
965518334Speter
965650397Sobrien	* repo.c (get_base_filename): Cast result of rindex to char*.
965750397Sobrien	(open_repo_file): Likewise.
965850397Sobrien	* xref.c (open_xref_file): Likewise.
965950397Sobrien	* error.c (dump_char): Make its arg int, not char.
966018334Speter
966150397Sobrien	* except.c (push_eh_info): Pass the number of fields - 1 down, not
966250397Sobrien	the exact number of fields.
966318334Speter
966450397SobrienFri Oct 31 01:47:57 1997  Jason Merrill  <jason@yorick.cygnus.com>
966518334Speter
966650397Sobrien	Support for nested exceptions.
966750397Sobrien	* tinfo2.cc (__is_pointer): New fn.
966850397Sobrien	* exception.cc (struct cp_eh_info): Define.
966950397Sobrien	(__cp_exception_info, __uncatch_exception): New fns.
967050397Sobrien	(__cp_push_exception, __cp_pop_exception): New fns.
967150397Sobrien	* except.c: Lose saved_throw_{type,value,cleanup,in_catch}.
967252284Sobrien	Lose empty_fndecl.
967350397Sobrien	(init_exception_processing): Likewise.  __eh_pc is now external.
967450397Sobrien	(push_eh_info): New fn.
967550397Sobrien	(get_eh_{info,value,type,caught}): New fns.
967650397Sobrien	(push_eh_cleanup): Just call __cp_pop_exception.
967750397Sobrien	(expand_start_catch_block): Use push_eh_info.  Start the eh region
967850397Sobrien	sooner.
967950397Sobrien	(expand_end_eh_spec): Use push_eh_info.
968050397Sobrien	(expand_throw): Call __cp_push_exception to set up the exception info.
968150397Sobrien	Just pass the destructor or 0 as the cleanup.  Call __uncatch_exception
968250397Sobrien	when we rethrow.
968350397Sobrien	(expand_builtin_throw): Don't refer to empty_fndecl.
968418334Speter
968550397SobrienThu Oct 23 02:01:30 1997  Jason Merrill  <jason@yorick.cygnus.com>
968618334Speter
968750397Sobrien	* pt.c (instantiate_decl): SET_DECL_IMPLICIT_INSTANTIATION on new decl.
968818334Speter
968950397Sobrien1997-10-22  Brendan Kehoe  <brendan@cygnus.com>
969018334Speter
969150397Sobrien	* method.c (build_template_parm_names, build_decl_overload_real):
969250397Sobrien	Add static to definitions.
969350397Sobrien	* pt.c (add_to_template_args, note_template_header,
969450397Sobrien	processing_explicit_specialization, type_unification_real): Likewise.
969550397Sobrien	({determine,check}_explicit_specialization): Use a single string for
969650397Sobrien	error messages.
969718334Speter
969850397SobrienMon Oct 20 12:06:34 1997  Jason Merrill  <jason@yorick.cygnus.com>
969918334Speter
970052284Sobrien	* except.c (expand_exception_blocks): Call do_pending_stack_adjust.
970150397Sobrien	(expand_end_catch_block): Likewise.
970250397Sobrien	(expand_end_eh_spec): Likewise.
970318334Speter
970450397SobrienMon Oct 20 11:44:20 1997  Mark Mitchell  <mmitchell@usa.net>
970518334Speter
970650397Sobrien	* decl.c (duplicate_decls): Handle template specializations
970752284Sobrien	correctly.
970850397Sobrien	* error.c (dump_function_name): Fix printing of specializations of
970950397Sobrien	member functions that are not member templates.
971050397Sobrien	* cp-tree.h (processing_specialization): Make global.
971150397Sobrien	* pt.c (processing_specialization): Likewise.
971250397Sobrien	* lex.c (cons_up_default_function): Save and restore
971350397Sobrien	processing_specialization to avoid confusion.
971452284Sobrien
971550397SobrienMon Oct 20 10:52:22 1997  Jason Merrill  <jason@yorick.cygnus.com>
971618334Speter
971750397Sobrien	* decl.c (init_decl_processing): Give null_node unknown* type.
971850397Sobrien	* typeck.c (comp_target_types): Handle UNKNOWN_TYPE.
971950397Sobrien	(common_type): Likewise.
972050397Sobrien	* error.c (args_as_string): Recognize null_node.
972118334Speter
972250397SobrienSun Oct 19 09:13:01 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
972318334Speter
972450397Sobrien	* typeck.c (rationalize_conditional_expr): Handle {MIN,MAX}_EXPR.
972550397Sobrien	(unary_complex_lvalue): Call it for {MIN,MAX}_EXPR.
972618334Speter
972750397Sobrien	* decl.c (init_decl_processing): Call using_eh_for_cleanups.
972818334Speter
972950397Sobrien	* Make-lang.in (g++): Include prefix.o.
973018334Speter
973152284SobrienThu Oct 16 15:31:09 1997  Judy Goldberg  <judygold@sanwafp.com>
973218334Speter
973350397Sobrien	* pt.c (determine_explicit_specialization): Initialize "dummy"
973450397Sobrien	to keep Purify quiet.
973518334Speter
973650397SobrienThu Oct 16 00:14:48 1997  Jason Merrill  <jason@yorick.cygnus.com>
973718334Speter
973850397Sobrien	* method.c (build_overload_value): Handle TEMPLATE_CONST_PARMs here.
973950397Sobrien	(build_overload_int): Not here.
974018334Speter
974150397SobrienWed Oct 15 00:35:28 1997  Mike Stump  <mrs@wrs.com>
974218334Speter
974350397Sobrien	* class.c (build_type_pathname): Remove.
974450397Sobrien	(prepare_fresh_vtable): Fix problem with complex MI vtable names.
974518334Speter
974650397Sobrien1997-10-14  Brendan Kehoe  <brendan@lisa.cygnus.com>
974718334Speter
974850397Sobrien	* parse.y (unary_expr): Give a pedwarn if someone tries to use the
974950397Sobrien	&&label GNU extension.
975018334Speter
975150397SobrienTue Oct 14 12:01:00 1997  Mark Mitchell  <mmitchell@usa.net>
975218334Speter
975350397Sobrien	* decl.c (pushtag): Unset DECL_ASSEMBLER_NAME before setting it,
975450397Sobrien	so as to avoid incorrect manglings.
975550397Sobrien	* method.c (build_decl_overload_real): Don't mangle return types
975650397Sobrien	for constructors.
975752284Sobrien
975850397SobrienTue Oct 14 11:46:14 1997  Jason Merrill  <jason@yorick.cygnus.com>
975918334Speter
976050397Sobrien	* cp-tree.h (scratchalloc, build_scratch_list, make_scratch_vec,
976150397Sobrien	scratch_tree_cons): Define as macros for now.
976252284Sobrien	* call.c, class.c, cvt.c, decl.c, decl2.c, except.c, expr.c, init.c,
976350397Sobrien	lex.c, method.c, parse.y, pt.c, rtti.c, search.c, tree.c, typeck.c,
976450397Sobrien	typeck2.c: Use them and the expression_obstack variants.
976518334Speter
976650397SobrienMon Oct 13 17:41:26 1997  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
976718334Speter
976850397Sobrien	* decl.c (store_return_init): Allow classes with explicit ctors to
976952284Sobrien	be used with the named return values extension.
977018334Speter
977150397SobrienFri Oct 10 12:21:11 1997  Jason Merrill  <jason@yorick.cygnus.com>
977218334Speter
977350397Sobrien	* pt.c (instantiate_decl): Fix previous change.
977418334Speter
977550397SobrienThu Oct  9 12:08:21 1997  Jason Merrill  <jason@yorick.cygnus.com>
977618334Speter
977750397Sobrien	* pt.c (tsubst): Fix thinko.
977850397Sobrien	(instantiate_decl): Really use the original template.
977918334Speter
978050397Sobrien	* call.c (build_new_method_call): Use simple constructor_name for
978150397Sobrien	error messages.
978218334Speter
978352284SobrienWed Oct  8 22:44:42 1997  Jeffrey A Law  <law@cygnus.com>
978418334Speter
978550397Sobrien	* method.c (build_underscore_int): Don't use ANSI specific
978650397Sobrien	features.
978718334Speter
978850397SobrienWed Oct  8 00:18:22 1997  Jason Merrill  <jason@yorick.cygnus.com>
978918334Speter
979050397Sobrien	* decl2.c (finish_prevtable_vardecl): Check DECL_REALLY_EXTERN
979150397Sobrien	for our key method; it might have been inlined by -O3.
979218334Speter
979350397SobrienTue Oct  7 23:00:12 1997  Mark Mitchell  <mmitchell@usa.net>
979418334Speter
979550397Sobrien	* decl.c (make_typename_type): Do not try to call lookup_field for
979650397Sobrien	non-aggregate types.
979718334Speter
979850397SobrienTue Oct  7 22:52:10 1997  Jason Merrill  <jason@yorick.cygnus.com>
979918334Speter
980050397Sobrien	* typeck.c (build_reinterpret_cast): Tweak.
980118334Speter
980250397SobrienTue Oct  7 22:45:31 1997  Alexandre Oliva  <oliva@dcc.unicamp.br>
980318334Speter
980452284Sobrien	* typeck.c (build_reinterpret_cast): Converting a void pointer
980550397Sobrien	to function pointer with a reinterpret_cast produces a warning
980652284Sobrien	if -pedantic is issued.
980718334Speter
980850397SobrienTue Oct  7 22:43:43 1997  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
980918334Speter
981050397Sobrien	* typeck.c (c_expand_return): Don't warn about returning a
981150397Sobrien	reference-type variable as a reference.
981218334Speter
981350397SobrienTue Oct  7 21:11:22 1997  Jason Merrill  <jason@yorick.cygnus.com>
981418334Speter
981550397Sobrien	* method.c (build_static_name): Fix typo.
981618334Speter
981750397Sobrien1997-10-07  Brendan Kehoe  <brendan@lisa.cygnus.com>
981818334Speter
981950397Sobrien	* decl.c (duplicate_decls): Make sure DECL_LANG_SPECIFIC is set on
982050397Sobrien	OLDDECL before we try to do DECL_USE_TEMPLATE.
982118334Speter
982250397SobrienTue Oct  7 00:48:36 1997  Jason Merrill  <jason@yorick.cygnus.com>
982318334Speter
982450397Sobrien	* decl.c (duplicate_decls): Don't warn about template instances.
982518334Speter
982650397Sobrien	* typeck.c (mark_addressable): Lose ancient code that unsets
982750397Sobrien	DECL_EXTERNAL.
982818334Speter
982950397Sobrien	* pt.c (do_decl_instantiation): Lose support for instantiating
983050397Sobrien	non-templates.
983118334Speter
983250397Sobrien	* call.c (build_new_function_call): Fix handling of null explicit
983352284Sobrien	template args.
983450397Sobrien	(build_new_method_call): Likewise.
983518334Speter
983650397SobrienMon Oct  6 23:44:34 1997  Mark Mitchell  <mmitchell@usa.net>
983718334Speter
983850397Sobrien	* method.c (build_underscore_int): Fix typo.
983918334Speter
984050397Sobrien1997-10-06  Brendan Kehoe  <brendan@lisa.cygnus.com>
984118334Speter
984250397Sobrien	* tree.c (print_lang_statistics): #if 0 call to
984350397Sobrien	print_inline_obstack_statistics until its definition is checked in.
984418334Speter
984550397SobrienMon Oct  6 09:27:29 1997  Jason Merrill  <jason@yorick.cygnus.com>
984618334Speter
984750397Sobrien	* decl2.c (finish_file): Move dump_tree_statistics to end.
984818334Speter
984950397Sobrien	* pt.c (instantiate_decl): Look for the original template.
985050397Sobrien	(tsubst): Set DECL_IMPLICIT_INSTANTIATION on partial instantiations
985150397Sobrien	of member templates.
985218334Speter
985350397SobrienWed Oct  1 08:41:38 1997  Jason Merrill  <jason@yorick.cygnus.com>
985418334Speter
985550397Sobrien	* Makefile.in (g++FAQ.*): New rules.
985650397Sobrien	(CONFLICTS): Update.
985750397Sobrien	* g++FAQ.texi: Moved from libg++.
985818334Speter
985950397Sobrien	* parse.y (PFUNCNAME): Only specify the type once.
986018334Speter
986150397Sobrien1997-10-01  Brendan Kehoe  <brendan@lasher.cygnus.com>
986218334Speter
986350397Sobrien	* lex.c (real_yylex): Clean up the code to fully behave the way
986450397Sobrien	the c-lex.c parser does for complex and real numbers.
986518334Speter
986650397SobrienTue Sep 30 08:51:36 1997  Jason Merrill  <jason@yorick.cygnus.com>
986718334Speter
986850397Sobrien	* method.c (build_decl_overload_real): Reformat.
986918334Speter
987050397SobrienTue Sep 30 00:18:26 1997  Jason Merrill  <jason@yorick.cygnus.com>
987118334Speter
987250397Sobrien	* method.c (synthesize_method): If at_eof, determine our linkage.
987318334Speter
987450397Sobrien1997-09-29  Paul Eggert  <eggert@twinsun.com>
987518334Speter
987650397Sobrien	* lex.c (real_yylex): Treat `$' just like `_', except issue a
987750397Sobrien	diagnostic if !dollars_in_ident or if pedantic.
987818334Speter
987950397Sobrien	* lang-specs.h (@c++): -ansi no longer implies -$.
988018334Speter
988150397Sobrien	* decl2.c (lang_decode_option):
988250397Sobrien	-traditional and -ansi now do not mess with
988350397Sobrien	dollars_in_ident.
988418334Speter
988552284SobrienMon Sep 29 19:57:51 1997  H.J. Lu  <hjl@gnu.ai.mit.edu>
988618334Speter
988750397Sobrien	* Makefile.in (parse.o, decl.o): Also depend on
988850397Sobrien	$(srcdir)/../except.h $(srcdir)/../output.h.
988950397Sobrien	(decl2.o): Also depend on $(srcdir)/../expr.h ../insn-codes.h
989050397Sobrien	$(srcdir)/../except.h $(srcdir)/../output.h.
989150397Sobrien	(typeck.o, init.o): Also depend on $(srcdir)/../expr.h
989250397Sobrien	../insn-codes.h.
989318334Speter
989450397Sobrien	* call.c, cp-tree.h, decl.c, tree.c: Finish prototyping.
989518334Speter
989652284Sobrien	* expr.c (cplus_expand_expr): Make it static.
989718334Speter
989850397Sobrien	* decl2.c, init.c, typeck.c: Include "expr.h".
989950397Sobrien	(expand_expr): Use proper values when calling the function.
990018334Speter
990150397SobrienMon Sep 29 11:05:54 1997  Alexandre Oliva  <oliva@dcc.unicamp.br>
990218334Speter
990352284Sobrien	* lang-options.h: New -Wold-style-cast flag.
990452284Sobrien	* cp-tree.h (warn_old_style_cast): New variable.
990552284Sobrien	* decl2.c (warn_old_style_cast): Likewise.
990652284Sobrien	(lang_decode_option): Support -Wold-style-cast.
990752284Sobrien	(reparse_absdcl_as_casts): Produce old-style-cast warning.
990818334Speter
990950397SobrienMon Sep 29 09:20:53 1997  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
991018334Speter
991150397Sobrien	* decl.c (cp_finish_decl): Allow expand_aggr_init to set
991252284Sobrien	TREE_USED, reset value based on already_used.
991318334Speter
991450397Sobrien	* init.c (expand_member_init): Revert change.
991552284Sobrien
991650397SobrienMon Sep 29 08:57:53 1997  Jason Merrill  <jason@yorick.cygnus.com>
991718334Speter
991850397Sobrien	* cp-tree.h, decl.c, decl2.c, pt.c:
991952284Sobrien	Lose DECL_C_STATIC and DECL_PUBLIC.  Don't pretend statics are public.
992018334Speter
992150397Sobrien	* decl2.c (lang_decode_option): Add missing ;.
992218334Speter
992350397SobrienSat Sep 27 16:22:48 1997  Jason Merrill  <jason@yorick.cygnus.com>
992418334Speter
992550397Sobrien	* friend.c (do_friend): Disable injection for all template-derived
992652284Sobrien	decls.
992750397Sobrien	* decl2.c (lang_decode_option): Handle -fguiding-decls.
992850397Sobrien	* parse.y (notype_template_declarator): New nonterminal.
992950397Sobrien	(direct_notype_declarator): Use it.
993050397Sobrien	(complex_direct_notype_declarator): Likewise.
993150397Sobrien	(object_template_id): Accept any kind of identifier after TEMPLATE.
993250397Sobrien	(notype_qualified_id): Don't add template declarators here.
993318334Speter
993450397SobrienSat Sep 27 16:21:58 1997  Mark Mitchell  <mmitchell@usa.net>
993518334Speter
993652284Sobrien	* call.c (add_template_candidate): Add explicit_targs parameter.
993752284Sobrien	(build_scoped_method_call): Use it.
993852284Sobrien	(build_overload_call_real): Likewise.
993952284Sobrien	(build_user_type_conversion_1): Likewise.
994052284Sobrien	(build_new_function_call): Likewise.
994152284Sobrien	(build_object_call): Likewise.
994252284Sobrien	(build_new_op): Likewise.
994352284Sobrien	(build_new_method_call): Likewise.
994452284Sobrien	(build_new_function_call): Handle TEMPLATE_ID_EXPR.
994552284Sobrien	(build_new_method_call): Likewise.
994618334Speter
994752284Sobrien	* class.c (finish_struct_methods): Add specialization pass to
994852284Sobrien	determine which methods were specializing which other methods.
994952284Sobrien	(instantiate_type): Handle TEMPLATE_ID_EXPR.
995018334Speter
995152284Sobrien	* cp-tree.def (TEMPLATE_ID_EXPR): New tree code.
995218334Speter
995352284Sobrien	* cp-tree.h (name_mangling_version): New variable.
995450397Sobrien	(flag_guiding_decls): Likewise.
995552284Sobrien	(build_template_decl_overload): New function.
995652284Sobrien	(begin_specialization): Likewise.
995752284Sobrien	(reset_specialization): Likewise.
995852284Sobrien	(end_specialization): Likewise.
995952284Sobrien	(determine_explicit_specialization): Likewise.
996052284Sobrien	(check_explicit_specialization): Likewise.
996152284Sobrien	(lookup_template_function): Likewise.
996252284Sobrien	(fn_type_unification): Add explicit_targs parameter.
996352284Sobrien	(type_unification): Likewise.
996418334Speter
996552284Sobrien	* decl.c (duplicate_decls): Add smarts for explicit
996652284Sobrien	specializations.
996752284Sobrien	(grokdeclarator): Handle TEMPLATE_ID_EXPR, and function
996852284Sobrien	specializations.
996952284Sobrien	(grokfndecl): Call check_explicit_specialization.
997018334Speter
997152284Sobrien	* decl2.c (lang_decode_option): Handle -fname-mangling-version.
997252284Sobrien	(build_expr_from_tree): Handle TEMPLATE_ID_EXPR.
997352284Sobrien	(check_classfn): Handle specializations.
997418334Speter
997552284Sobrien	* error.c (dump_function_name): Print specialization arguments.
997618334Speter
997752284Sobrien	* friend.c (do_friend): Don't call pushdecl for template
997852284Sobrien	instantiations.
997918334Speter
998052284Sobrien	* init.c (build_member_call): Handle TEMPLATE_ID_EXPR.
998118334Speter
998252284Sobrien	* lang-options.h: Add -fname-mangling-version, -fguiding-decls,
998350397Sobrien	and -fno-guiding-decls.
998418334Speter
998552284Sobrien	* lex.c (identifier_type): Return PFUNCNAME for template function
998652284Sobrien	names.
998718334Speter
998852284Sobrien	* method.c (build_decl_overload_real): New function.
998952284Sobrien	(build_template_parm_names): New function.
999052284Sobrien	(build_overload_identifier): Use it.
999152284Sobrien	(build_underscore_int): New function.
999252284Sobrien	(build_overload_int): Use it.  Add levels for template
999352284Sobrien	parameters.
999452284Sobrien	(build_overload_name): Likewise.  Also, handle TYPENAME_TYPEs.
999552284Sobrien	(build_overload_nested_names): Handle template type parameters.
999652284Sobrien	(build_template_decl_overload): New function.
999718334Speter
999852284Sobrien	* parse.y (YYSTYPE): New ntype member.
999952284Sobrien	(nested_name_specifier): Use it.
1000052284Sobrien	(nested_name_specifier_1): Likewise.
1000152284Sobrien	(PFUNCNAME): New token.
1000252284Sobrien	(template_id, object_template_id): New non-terminals.
1000352284Sobrien	(template_parm_list): Note specializations.
1000452284Sobrien	(template_def): Likewise.
1000552284Sobrien	(structsp): Likewise.
1000652284Sobrien	(fn.def2): Handle member template specializations.
1000752284Sobrien	(component_decl_1): Likewise.
1000852284Sobrien	(direct_notype_declarator): Handle template-ids.
1000952284Sobrien	(component_decl_1): Likewise.
1001052284Sobrien	(direct_notype_declarator): Handle template-ids.
1001152284Sobrien	(primary): Handle TEMPLATE_ID_EXPR, and template-ids.
1001218334Speter
1001352284Sobrien	* pt.c (processing_specializations): New variable.
1001452284Sobrien	(template_header_count): Likewise.
1001552284Sobrien	(type_unification_real): New function.
1001652284Sobrien	(processing_explicit_specialization): Likewise.
1001752284Sobrien	(note_template_header): Likewise.
1001852284Sobrien	(is_member_template): Handle specializations.
1001952284Sobrien	(end_template_decl): Call reset_specialization.
1002052284Sobrien	(push_template_decl): Handle member template specializations.
1002152284Sobrien	(tsubst): Likewise.
1002252284Sobrien	(tsubst_copy): Handle TEMPLATE_ID_EXPR.
1002352284Sobrien	(instantiate_template): Handle specializations.
1002452284Sobrien	(instantiate_decl): Likewise.
1002552284Sobrien	(fn_type_unification): Handle explicit_targs.
1002652284Sobrien	(type_unification): Likewise.  Allow incomplete unification
1002752284Sobrien	without an error message, if allow_incomplete.
1002852284Sobrien	(get_bindings): Use new calling sequence for fn_type_unification.
1002918334Speter
1003052284Sobrien	* spew.c (yylex): Handle PFUNCNAME.
1003118334Speter
1003252284Sobrien	* tree.c (is_overloaded_fn): Handle TEMPLATE_ID_EXPR.
1003352284Sobrien	(really_overloaded_fn): Likewise.
1003452284Sobrien	(get_first_fn): Handle function templates.
1003518334Speter
1003652284Sobrien	* typeck.c (build_x_function_call): Use really_overloaded_fn.
1003752284Sobrien	Handle TEMPLATE_ID_EXPR.
1003852284Sobrien	(build_x_unary_op): Likewise.
1003952284Sobrien	(build_unary_op): Likewise.
1004052284Sobrien	(mark_addressable): Templates whose address is taken are marked
1004152284Sobrien	as used.
1004218334Speter
1004350397Sobrien1997-09-25  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
1004418334Speter
1004550397Sobrien	* decl.c (init_decl_processing): Declare __builtin_constant_p as
1004650397Sobrien	accepting any kind of type, not only int.
1004718334Speter
1004850397SobrienFri Sep 26 00:22:56 1997  Jason Merrill  <jason@yorick.cygnus.com>
1004918334Speter
1005050397Sobrien	* search.c (get_matching_virtual): Notice virtual bases when sorrying
1005150397Sobrien	about covariant returns.
1005218334Speter
1005350397Sobrien	* parse.y (member_init): Also imply typename here.  Remove ancient
1005450397Sobrien	extension for initializing base members.
1005518334Speter
1005650397SobrienThu Sep 25 11:11:13 1997  Jason Merrill  <jason@yorick.cygnus.com>
1005718334Speter
1005850397Sobrien	Handle multi-level typenames and implicit typename in base list.
1005950397Sobrien	* parse.y (typename_sub{,[0-2]}): New rules.
1006050397Sobrien	(structsp, rule TYPENAME_KEYWORD): Use typename_sub.
1006150397Sobrien	(nonnested_type): New rule.
1006250397Sobrien	(complete_type_name): Use it.
1006350397Sobrien	(base_class.1): Use typename_sub and nonnested_type.
1006450397Sobrien	(nested_name_specifier): Don't elide std:: here.
1006550397Sobrien	* decl.c (make_typename_type): Handle getting a type for NAME.
1006650397Sobrien	(lookup_name_real): Turn std:: into :: here.
1006718334Speter
1006850397Sobrien	Rvalue conversions were removed in London.
1006950397Sobrien	* call.c (is_subseq): Don't consider lvalue transformations.
1007050397Sobrien	(build_conv): LVALUE_CONV and RVALUE_CONV get IDENTITY_RANK.
1007152284Sobrien	(joust): Re-enable ?: kludge.
1007218334Speter
1007350397Sobrien1997-09-22  Brendan Kehoe  <brendan@lisa.cygnus.com>
1007418334Speter
1007550397Sobrien	* decl.c (start_function): Up warning of no return type to be a
1007650397Sobrien	pedwarn.
1007718334Speter
1007850397SobrienMon Sep 22 14:15:34 1997  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
1007918334Speter
1008050397Sobrien	* init.c (expand_member_init): Don't set TREE_USED.
1008150397Sobrien	* decl.c (cp_finish_decl): Mark decls used if type has TREE_USED
1008250397Sobrien	set,don't clear TREE_USED wholesale.
1008318334Speter
1008450397SobrienSat Sep 20 15:31:00 1997  Jason Merrill  <jason@yorick.cygnus.com>
1008518334Speter
1008650397Sobrien	* call.c (build_over_call): Do require_complete_type before
1008750397Sobrien	build_cplus_new.
1008818334Speter
1008950397SobrienThu Sep 18 16:47:52 1997  Jason Merrill  <jason@yorick.cygnus.com>
1009018334Speter
1009150397Sobrien	* search.c (lookup_field): Call complete_type in all cases.
1009218334Speter
1009350397Sobrien	* decl.c (finish_function): Just warn about flowing off the end.
1009418334Speter
1009550397SobrienWed Sep 17 10:31:25 1997  Jason Merrill  <jason@yorick.cygnus.com>
1009618334Speter
1009750397Sobrien	* decl.c (grokparms): Don't bash a permanent list node if we're
1009850397Sobrien	in a function.
1009918334Speter
1010050397Sobrien1997-09-17  Brendan Kehoe  <brendan@lisa.cygnus.com>
1010118334Speter
1010250397Sobrien	* Makefile.in (CONFLICTS): Fix s/r conflict count to 18.
1010318334Speter
1010450397SobrienTue Sep 16 14:06:56 1997  Jason Merrill  <jason@yorick.cygnus.com>
1010518334Speter
1010650397Sobrien	* call.c (build_new_op): Give better error for syntactically
1010752284Sobrien	correct, but semantically invalid, use of undeclared template.
1010818334Speter
1010950397Sobrien	* call.c (compare_qual): Handle pmfs.
1011018334Speter
1011150397Sobrien	* decl.c (store_parm_decls): last_parm_cleanup_insn is the insn
1011252284Sobrien	after the exception spec.
1011318334Speter
1011450397SobrienMon Sep 15 11:52:13 1997  Jason Merrill  <jason@yorick.cygnus.com>
1011518334Speter
1011650397Sobrien	* call.c (null_ptr_cst_p): Integer type, not integral type.
1011718334Speter
1011850397Sobrien	* call.c (joust): Disable warnings until they can be moved to the
1011950397Sobrien	right place.
1012018334Speter
1012150397SobrienFri Sep 12 16:11:13 1997  Per Bothner  <bothner@cygnus.com>
1012218334Speter
1012350397Sobrien	* Makefile.in, config-lang.in:  Convert to autoconf.
1012418334Speter
1012550397SobrienThu Sep 11 17:14:55 1997  Jason Merrill  <jason@yorick.cygnus.com>
1012618334Speter
1012750397Sobrien	* decl.c (lookup_name_real): Add implicit 'typename' to types from
1012850397Sobrien	base classes.
1012918334Speter
1013050397Sobrien	* pt.c (most_specialized_class): Fix typo.
1013150397Sobrien	(tsubst): Move constant folding to TREE_VEC case.
1013218334Speter
1013350397SobrienThu Sep 11 10:08:45 1997  Mark Mitchell  <mmitchell@usa.net>
1013418334Speter
1013550397Sobrien	* pt.c (do_poplevel): Don't warn about unused local variables
1013650397Sobrien	while processing_template_decl since we don't always know whether
1013750397Sobrien	or not they will need constructing/destructing.
1013818334Speter
1013950397Sobrien	* pt.c (uses_template_parms): Check the values of an enumeration
1014050397Sobrien	type to make sure they don't depend on template parms.
1014118334Speter
1014250397Sobrien	* decl.c (make_typename_type): Don't lookup the field if the
1014350397Sobrien	context uses template parms, even if we're not
1014450397Sobrien	processing_template_decl at the moment.
1014518334Speter
1014650397Sobrien	* pt.c (coerce_template_parms): Avoid looking at the
1014750397Sobrien	TYPE_LANG_DECL portion of a typename type, since there won't be
1014852284Sobrien	one.
1014950397Sobrien	(tsubst): Do constant folding as necessary to make sure that
1015052284Sobrien	arguments passed to lookup_template_class really are constants.
1015118334Speter
1015250397SobrienWed Sep 10 11:21:55 1997  Jason Merrill  <jason@yorick.cygnus.com>
1015318334Speter
1015450397Sobrien	* except.c (expand_builtin_throw): #ifndef DWARF2_UNWIND_INFO.
1015550397Sobrien	* decl2.c (finish_file): Only register exception tables if we
1015650397Sobrien	need to.
1015718334Speter
1015850397Sobrien	* decl.c (init_decl_processing): Add __builtin_[fs]p.
1015918334Speter
1016050397SobrienTue Sep  9 19:49:38 1997  Jason Merrill  <jason@yorick.cygnus.com>
1016118334Speter
1016250397Sobrien	* pt.c (unify): Just return 0 for a TYPENAME_TYPE.
1016318334Speter
1016450397SobrienTue Sep  9 17:57:25 1997  Mark Mitchell  <mmitchell@usa.net>
1016518334Speter
1016650397Sobrien	* error.c (dump_decl): Avoid crashing when presented with a
1016752284Sobrien	uninitialized constant, as can occur with a template parameter.
1016850397Sobrien	(dump_expr): Make sure that there are enough levels of
1016952284Sobrien	current_template_parms before we start diving through them.
1017018334Speter
1017150397Sobrien1997-09-09  Brendan Kehoe  <brendan@lisa.cygnus.com>
1017218334Speter
1017350397Sobrien	* typeck.c (build_indirect_ref): Heed FLAG_VOLATILE similar to
1017450397Sobrien	c-typeck.c.
1017518334Speter
1017650397SobrienTue Sep  9 09:36:39 1997  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
1017718334Speter
1017852284Sobrien	* except.c (expand_throw): Call build_delete for all
1017950397Sobrien	exception types, not just objects with destructors.
1018018334Speter
1018150397SobrienMon Sep  8 02:33:20 1997  Jody Goldberg  <jodyg@idt.net>
1018218334Speter
1018350397Sobrien	* decl.c (current_local_enum): Remove static.
1018450397Sobrien	* pt.c (tsubst_enum): Save and restore value of current_local_enum
1018550397Sobrien	in case template is expanded in enum decl.
1018652284Sobrien	(instantiate_class_template): Use new tsubst_enum signature.
1018750397Sobrien	(tsubst_expr): Likewise.
1018818334Speter
1018950397SobrienMon Sep  8 01:21:43 1997  Mark Mitchell  <mmitchell@usa.net>
1019018334Speter
1019150397Sobrien	* pt.c (begin_member_template_processing): Take a function as
1019250397Sobrien	argument, not a set of template arguments.  Use the template
1019350397Sobrien	parameters, rather than the arguments.  Handle non-type parameters
1019450397Sobrien	correctly.  Push a binding level for the parameters so that multiple
1019550397Sobrien	member templates using the same parameter names can be declared.
1019650397Sobrien	(end_member_template_processing): Pop the binding level.
1019750397Sobrien	(push_template_decl): Mark member templates as static when
1019852284Sobrien	appropriate.
1019918334Speter
1020050397Sobrien	* lex.c (do_pending_inlines): Pass the function, not its template
1020150397Sobrien	arguments, to begin_member_template_processing.
1020250397Sobrien	(process_next_inline): Likewise.
1020350397Sobrien	(do_pending_defargs): Likewise.
1020418334Speter
1020550397Sobrien	* error.c (dump_expr): Obtain the correct declaration for a
1020652284Sobrien	TEMPLATE_CONST_PARM.
1020718334Speter
1020850397Sobrien	* call.c (add_template_conv_candidate): New function.
1020950397Sobrien	(build_object_call): Handle member templates, as done in the other
1021050397Sobrien	build_ functions.
1021152284Sobrien
1021250397SobrienSat Sep  6 10:20:27 1997  Mark Mitchell  <mmitchell@usa.net>
1021318334Speter
1021450397Sobrien	* decl.c (replace_defag): Undo previous change.
1021550397Sobrien	* lex.c (do_pending_defargs): Deal with member templates.
1021652284Sobrien
1021750397Sobrien	* pt.c (is_member_template): Avoid crashing when passed a
1021850397Sobrien	non-function argument.
1021918334Speter
1022050397SobrienFri Sep  5 17:27:38 1997  Jason Merrill  <jason@yorick.cygnus.com>
1022118334Speter
1022250397Sobrien	* class.c (grow_method): Remove check for redeclaration.
1022318334Speter
1022450397SobrienFri Sep  5 01:37:17 1997  Mark Mitchell  <mmitchell@usa.net>
1022518334Speter
1022650397Sobrien	* cp-tree.h (INNERMOST_TEMPLATE_PARMS): New macro.
1022750397Sobrien	(DECL_INNERMOST_TEMPLATE_PARMS): Likewise.
1022850397Sobrien	(PRIMARY_TEMPLATE_P): Use it.
1022950397Sobrien	* call.c (build_overload_call_real): Use it.
1023050397Sobrien	* class.c (instantiate_type): Likewise.
1023150397Sobrien	* decl.c (decls_match): Likewise.
1023250397Sobrien	* method.c (build_overload_identifier): Likewise.
1023350397Sobrien	* pt.c (push_template_decl): Likewise.
1023450397Sobrien	(classtype_mangled_name): Likewise.
1023550397Sobrien	(lookup_template_class): Likewise.
1023652284Sobrien
1023750397Sobrien	* cp-tree.h (DECL_NTPARMS): Change name from DECL_NT_PARMS to
1023850397Sobrien	DECL_NTPARMS to conform to usage elsewhere.
1023950397Sobrien	* call.c (add_template_candidate): Likewise.
1024050397Sobrien	* class.c (instantiate_type): Likewise.
1024150397Sobrien	* pt.c (instantiate_template): Likewise.
1024250397Sobrien	(get_bindings): Likewise.
1024352284Sobrien
1024450397Sobrien	* class.c (grow_method): Use DECL_FUNCTION_TEMPLATE_P instead of
1024550397Sobrien	is_member_template.
1024618334Speter
1024750397Sobrien	* pt.c (unify): Undo changes to allow multiple levels of template
1024852284Sobrien	parameters.
1024950397Sobrien	(type_unification): Likewise.
1025050397Sobrien	(fn_type_unification): Likewise.
1025150397Sobrien	(get_class_bindings): Likewise.
1025250397Sobrien	* cp-tree.h (Likewise).
1025352284Sobrien
1025450397Sobrien	* decl.c (replace_defarg): Check that the type of the default
1025550397Sobrien	parameter does not invlove a template type before complaining
1025650397Sobrien	about the initialization.
1025718334Speter
1025850397Sobrien	* error.c (dump_expr): Deal with template constant parameters in
1025950397Sobrien	member templates correctly.
1026018334Speter
1026150397Sobrien	* pt.c (is_member_template): Deal with class specializations
1026252284Sobrien	correctly.
1026350397Sobrien	(tsubst): Handle "partial instantiation" of member templates
1026452284Sobrien	correctly.
1026518334Speter
1026650397SobrienWed Sep  3 12:30:24 1997  Mark Mitchell  <mmitchell@usa.net>
1026718334Speter
1026852284Sobrien	* pt.c (type_unification): Change calling sequence to allow for
1026950397Sobrien	multiple levels of template parameters.
1027050397Sobrien	(tsubst_expr): Likewise.
1027150397Sobrien	(tsubst): Likewise.
1027250397Sobrien	(tsubst_copy): Likewise.
1027350397Sobrien	(instantiate_template): Likewise.
1027450397Sobrien	(unify): Likewise.
1027550397Sobrien	* call.c (build_overload_call_real): Use it.
1027650397Sobrien	(add_builtin_candidate): Use it.
1027750397Sobrien	(build_new_method_call): Use it.
1027850397Sobrien	* class.c (instantiate_type): Use it.
1027950397Sobrien	* decl.c (grokdeclarator): Use it.
1028050397Sobrien	* decl2.c (finish_file): Use it.
1028150397Sobrien	* method.c (build_overload_identifier): Use it.
1028252284Sobrien
1028350397Sobrien	* call.c (add_template_candidate):  Add additional parameter for
1028450397Sobrien	the function return type.  Call fn_type_unification istead of
1028550397Sobrien	type_unification.
1028650397Sobrien	(build_user_type_conversion_1): Handle member templates.
1028750397Sobrien	(build_new_function_call): Likewise.
1028850397Sobrien	(build_new_op): Likewise.
1028950397Sobrien	(build_new_method_call): Likewise.
1029052284Sobrien
1029150397Sobrien	* class.c (grow_method): Don't give an error message indicating
1029252284Sobrien	that two member templates with the same name are ambiguous.
1029350397Sobrien	(finish_struct): Treat member template functions just like member
1029452284Sobrien	functions.
1029552284Sobrien
1029650397Sobrien	* cp-tree.h (check_member_template): Add declaration.
1029750397Sobrien	(begin_member_template_processing): Likewise.
1029850397Sobrien	(end_member_template_processing): Likewise.
1029950397Sobrien	(fn_type_unification): Likewise.
1030050397Sobrien	(is_member_template): Likewise.
1030150397Sobrien	(tsubst): Change prototype.
1030250397Sobrien	(tsubst_expr): Likewise.
1030350397Sobrien	(tsubst_copy): Likewise.
1030450397Sobrien	(instantiate_template): Likewise.
1030550397Sobrien	(get_bindings): Likewise.
1030618334Speter
1030750397Sobrien	* decl.c (decls_match): Handle multiple levels of template
1030852284Sobrien	parameters.
1030950397Sobrien	(pushdecl): Handle template type params just like other type
1031052284Sobrien	declarations.
1031150397Sobrien	(push_class_level_binding): Return immediately if the
1031250397Sobrien	class_binding_level is NULL.
1031350397Sobrien	(grokfndecl): If check_classfn() returns a member_template, use
1031450397Sobrien	the result of the template, not the template itself.
1031552284Sobrien
1031650397Sobrien	* decl2.c (check_member_template): New function.  Check to see
1031750397Sobrien	that the entity declared to be a member template can be one.
1031850397Sobrien	(check_classfn): Allow redeclaration of member template functions
1031950397Sobrien	with different types; the new functions can be specializations or
1032050397Sobrien	explicit instantiations.
1032152284Sobrien
1032250397Sobrien	* error.c (dump_decl): Handle multiple levels of template
1032352284Sobrien	parameters.
1032452284Sobrien	(dump_function_decl): Update to handle function templates.
1032518334Speter
1032650397Sobrien	* lex.c (do_pending_inlines): Set up template parameter context
1032750397Sobrien	for member templates.
1032850397Sobrien	(process_next_inline): Likewise.
1032918334Speter
1033052284Sobrien	* method.c (build_overload_identifier): Adjust for multiple levels
1033150397Sobrien	of template parameters.
1033252284Sobrien
1033350397Sobrien	* parse.y (fn.def2): Add member templates.
1033450397Sobrien	(component_decl_1): Likewise.
1033518334Speter
1033650397Sobrien	* pt.c (begin_member_template_processing): New function.
1033750397Sobrien	(end_member_template_processing): Likewise.
1033850397Sobrien	(is_member_template): Likewise.
1033950397Sobrien	(fn_type_unification): Likewise.
1034050397Sobrien	(current_template_parms): Return a vector of all the template
1034150397Sobrien	parms, not just the innermost level of parms.
1034250397Sobrien	(push_template_decl): Deal with the possibility of member
1034352284Sobrien	templates.
1034450397Sobrien	(lookup_template_class): Likewise.
1034550397Sobrien	(uses_template_parms): Likewise.
1034650397Sobrien	(tsubst): Modify processing to TEMPLATE_TYPE_PARM and
1034750397Sobrien	TEMPLATE_CONST_PARM to deal with multiple levels of template
1034850397Sobrien	arguments.   Add processing of TEMPLATE_DECL to produce new
1034950397Sobrien	TEMPLATE_DECLs from old ones.
1035050397Sobrien	(do_decl_instantiation): Handle member templates.
1035118334Speter
1035250397Sobrien	* search.c (lookup_fnfields_1): Handle member template conversion
1035352284Sobrien	operators.
1035418334Speter
1035550397Sobrien	* tree.c (cp_tree_equal): Check the levels, as well as the
1035650397Sobrien	indices, of TEMPLATE_CONST_PARMs.
1035718334Speter
1035850397Sobrien	* typeck.c (comptypes): Check the levels, as well as the indices,
1035950397Sobrien	fo TEMPLATE_TYPE_PARMs.
1036050397Sobrien	(build_x_function_call): Treat member templates like member
1036152284Sobrien	functions.
1036252284Sobrien
1036350397SobrienWed Sep  3 11:09:25 1997  Jason Merrill  <jason@yorick.cygnus.com>
1036418334Speter
1036550397Sobrien	* typeck.c (c_expand_return): Always convert_for_initialization
1036652284Sobrien	before checking for returning a pointer to local.
1036718334Speter
1036850397Sobrien	* pt.c (type_unification): If strict and the function parm doesn't
1036950397Sobrien	use template parms, just compare types.
1037018334Speter
1037150397SobrienWed Sep  3 10:35:49 1997  Klaus Espenlaub  <kespenla@student.informatik.uni-ulm.de>
1037218334Speter
1037350397Sobrien	* method.c (build_overloaded_value): Replace direct call
1037450397Sobrien	to the floating point emulator with REAL_VALUE_TO_DECIMAL macro.
1037518334Speter
1037650397SobrienWed Sep  3 00:02:53 1997  Jason Merrill  <jason@yorick.cygnus.com>
1037718334Speter
1037850397Sobrien	* typeck.c (convert_arguments): Don't arbitrarily choose the first
1037952284Sobrien	of a set of overloaded functions.
1038018334Speter
1038150397SobrienTue Sep  2 12:09:13 1997  Jason Merrill  <jason@yorick.cygnus.com>
1038218334Speter
1038350397Sobrien	* lex.c (real_yylex): Don't elide __FUNCTION__.
1038418334Speter
1038550397Sobrien	* method.c (build_overload_value): Add in_template parm.
1038650397Sobrien	(build_overload_int): Likewise.
1038750397Sobrien	(build_overload_identifier): Pass it.
1038818334Speter
1038950397Sobrien	* decl.c (duplicate_decls): Don't bash a previous template
1039052284Sobrien	definition with a redeclaration.
1039118334Speter
1039250397Sobrien	* pt.c (unify): float doesn't match double.
1039318334Speter
1039450397Sobrien	* pt.c (do_type_instantiation): Handle getting a _TYPE or a
1039552284Sobrien	TYPE_DECL.  Handle getting non-template types.
1039650397Sobrien	* parse.y (explicit_instantiation): Use typespec instead of
1039750397Sobrien	aggr template_type.
1039818334Speter
1039950397SobrienTue Sep  2 10:27:08 1997  Richard Henderson  <rth@cygnus.com>
1040018334Speter
1040150397Sobrien	* typeck.c (build_ptrmemfunc1): Clean up ptr->int cast warnings.
1040218334Speter
1040352284SobrienMon Sep  1 13:19:04 1997  Eugene Mamchits  <eugin@ips.ras.ru>
1040418334Speter
1040550397Sobrien	* call.c (add_builtin_candidate): Add missing TREE_TYPE.
1040650397Sobrien	(compare_ics): Likewise.
1040718334Speter
1040850397SobrienMon Sep  1 13:19:04 1997  Jason Merrill  <jason@yorick.cygnus.com>
1040918334Speter
1041050397Sobrien	* call.c (joust): Warn about choosing one conversion op over
1041152284Sobrien	another because of 'this' argument when the other return type is
1041252284Sobrien	better.
1041350397Sobrien	(source_type): New fn.
1041418334Speter
1041550397Sobrien	* call.c (build_new_op): Strip leading REF_BIND from first operand
1041650397Sobrien	to builtin operator.
1041718334Speter
1041850397Sobrien	* decl2.c (mark_vtable_entries): Mark abort_fndecl as used when we
1041950397Sobrien	use its RTL.
1042018334Speter
1042150397SobrienThu Aug 28 09:45:23 1997  Jason Merrill  <jason@yorick.cygnus.com>
1042218334Speter
1042350397Sobrien	* call.c (null_ptr_cst_p): Remove support for (void*)0.
1042418334Speter
1042552284SobrienWed Aug 27 02:03:34 1997  Jeffrey A Law  <law@cygnus.com>
1042618334Speter
1042750397Sobrien	* typeck.c (expand_target_expr): Make definition match declaration.
1042818334Speter
1042950397Sobrien	* class.c (get_basefndecls): Make definition match declaration.
1043018334Speter
1043150397SobrienMon Aug 25 14:30:02 1997  Jason Merrill  <jason@yorick.cygnus.com>
1043218334Speter
1043350397Sobrien	* input.c (sub_getch): Eventually give up and release the input file.
1043418334Speter
1043550397Sobrien	* decl.c (cp_finish_decl): If #p i/i, put inline statics in the
1043650397Sobrien	right place.
1043718334Speter
1043850397Sobrien	* call.c (joust): Tweak message.
1043918334Speter
1044050397SobrienSat Aug 23 18:02:59 1997  Mark Mitchell  <mmitchell@usa.net>
1044118334Speter
1044250397Sobrien	* error.c (type_as_string): Put const/volatile on template type
1044350397Sobrien	parameters where appropriate.
1044418334Speter
1044552284SobrienSat Aug 23 17:47:22 1997  Jeffrey A Law  <law@cygnus.com>
1044618334Speter
1044750397Sobrien	* call.c (strictly_better): Make arguments unsigned ints.
1044818334Speter
1044950397SobrienThu Aug 21 18:48:44 1997  Jason Merrill  <jason@yorick.cygnus.com>
1045018334Speter
1045150397Sobrien	* lex.c (real_yylex): Refer to __complex instead of complex.
1045218334Speter
1045352284SobrienThu Aug 21 22:25:46 1997  J"orn Rennecke  <amylaar@cygnus.co.uk>
1045418334Speter
1045550397Sobrien	* lex.c (real_yylex): Don't use getc directly.
1045618334Speter
1045750397SobrienWed Aug 20 17:25:08 1997  Jason Merrill  <jason@yorick.cygnus.com>
1045818334Speter
1045950397Sobrien	* call.c (is_subseq): Don't try to be clever.
1046018334Speter
1046150397SobrienWed Aug 20 03:13:36 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
1046218334Speter
1046350397Sobrien	* parse.y, pt.c: Include "except.h".
1046450397Sobrien	* call.c, class.c, class.h, cp-tree.h, cvt.c, decl.c, decl2.c,
1046552284Sobrien	error.c, except.c, expr.c, friend.c, g++spec.c, init.c, input.c,
1046652284Sobrien	lex.c, lex.h, method.c, parse.y, pt.c, repo.c, rtti.c, search.c,
1046752284Sobrien	sig.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: Finish
1046852284Sobrien	prototyping.
1046918334Speter
1047050397SobrienWed Aug 20 01:34:40 1997  Jason Merrill  <jason@yorick.cygnus.com>
1047118334Speter
1047250397Sobrien	* decl2.c (mark_vtable_entries): Instead of replacing pure
1047350397Sobrien	virtuals with a reference to __pure_virtual, copy the decl and
1047450397Sobrien	change the RTL.
1047518334Speter
1047650397SobrienTue Aug 19 02:26:07 1997  Jason Merrill  <jason@yorick.cygnus.com>
1047718334Speter
1047850397Sobrien	* pt.c (lookup_nested_type_by_name): Handle typedef wierdness.
1047918334Speter
1048050397Sobrien	* typeck2.c (my_friendly_abort): Report bugs to egcs-bugs@cygnus.com.
1048118334Speter
1048250397Sobrien	* pt.c (instantiate_class_template): Call repo_template_used
1048350397Sobrien	before finish_prevtable_vardecl.
1048418334Speter
1048550397Sobrien	* call.c (is_subseq): New fn.
1048650397Sobrien	(compare_ics): Use it.
1048718334Speter
1048850397Sobrien	* repo.c (finish_repo): Don't crash on no args.
1048918334Speter
1049050397Sobrien	* parse.y (named_complex_class_head_sans_basetype): Handle
1049152284Sobrien	explicit global scope.
1049250397Sobrien	* decl2.c (handle_class_head): New fn.
1049318334Speter
1049450397Sobrien	* pt.c (unify): Add CONST_DECL case.
1049518334Speter
1049650397SobrienThu Aug 14 10:05:13 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1049718334Speter
1049850397Sobrien	* rtti.c (permanent_obstack): Fix decl to not be a pointer.
1049918334Speter
1050050397Sobrien	* cp-tree.h (report_type_mismatch): Add prototype.
1050150397Sobrien	* call.c (build_overload_call_real): Remove erroneous fourth
1050250397Sobrien	argument to report_type_mismatch.
1050350397Sobrien	(build_user_type_conversion_1): Remove erroneous second arg to
1050450397Sobrien	tourney.
1050550397Sobrien	(build_new_function_call): Likewise.
1050650397Sobrien	(build_object_call): Likewise.
1050750397Sobrien	(build_new_op): Likewise.
1050850397Sobrien	(build_new_method_call): Likewise.
1050918334Speter
1051050397SobrienWed Aug 13 19:19:25 1997  Jason Merrill  <jason@yorick.cygnus.com>
1051118334Speter
1051250397Sobrien	* error.c (dump_decl): Don't bother processing a function with no
1051350397Sobrien	DECL_LANG_SPECIFIC.
1051418334Speter
1051550397Sobrien	* method.c (emit_thunk): Call init_function_start in the macro case.
1051618334Speter
1051750397SobrienWed Aug 13 10:46:19 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
1051818334Speter
1051950397Sobrien	* decl2.c (DEFAULT_VTABLE_THUNKS): Define to be 0 if not
1052050397Sobrien	defined and used to set flag_vtable_thunks.
1052118334Speter
1052250397SobrienTue Aug 12 20:13:57 1997  Jason Merrill  <jason@yorick.cygnus.com>
1052318334Speter
1052452284Sobrien	* parse.y: Don't clear the inlines from their obstack until they've
1052550397Sobrien	all been processed.
1052618334Speter
1052750397Sobrien	* decl.c (duplicate_decls): Don't complain about exception
1052852284Sobrien	specification mismatch if flag_exceptions is off.
1052918334Speter
1053052284SobrienMon Aug 11 15:01:56 1997  Marc Lehmann  <pcg@goof.com>
1053118334Speter
1053250397Sobrien	* Make-lang.in (c++.distclean): Remove g++.c on make distclean.
1053318334Speter
1053450397SobrienSun Aug 10 12:06:09 1997  Paul Eggert  <eggert@twinsun.com>
1053518334Speter
1053650397Sobrien	* cp-tree.h: Replace STDIO_PROTO with PROTO in include files.
1053750397Sobrien	* cvt.c, error.c, except.c, expr.c, friend.c, init.c, rtti.c:
1053852284Sobrien	Include <stdio.h> before include files that formerly used STDIO_PROTO.
1053918334Speter
1054050397Sobrien	* decl.c, g++spec.c, lex.c, method.c, repo.c:
1054152284Sobrien	Include "config.h" first, as per autoconf manual.
1054218334Speter
1054350397SobrienFri Aug  8 11:47:48 1997  Jason Merrill  <jason@yorick.cygnus.com>
1054418334Speter
1054550397Sobrien	* decl.c (duplicate_decls): Tweak wording.
1054650397Sobrien	* lex.c (do_pending_defargs): Don't die if we see a default arg
1054750397Sobrien	that isn't a DEFAULT_ARG.
1054850397Sobrien	* error.c (dump_expr): Handle DEFAULT_ARG.
1054918334Speter
1055050397Sobrien	* decl2.c (lang_decode_option): Handle -fhandle-exceptions.
1055150397Sobrien	* lang-options.h: Add -fhandle-exceptions.
1055218334Speter
1055352284Sobrien	* class.c (build_vtable): Vtables are artificial.
1055450397Sobrien	(prepare_fresh_vtable): Likewise.
1055518334Speter
1055650397SobrienWed Aug  6 11:02:36 1997  Jason Merrill  <jason@yorick.cygnus.com>
1055718334Speter
1055850397Sobrien	* cvt.c (ocp_convert): After converting to the target type, set
1055952284Sobrien	LOOKUP_NO_CONVERSION.
1056018334Speter
1056150397Sobrien	* call.c (joust): Warn about potentially confusing promotion rules
1056250397Sobrien	with -Wsign-promo.
1056350397Sobrien	* cp-tree.h, lang-options.h, decl2.c: Support -Wsign-promo.
1056418334Speter
1056550397SobrienTue Aug  5 15:15:07 1997  Michael Meissner  <meissner@cygnus.com>
1056618334Speter
1056750397Sobrien	* exception.cc: Declare __terminate_func with noreturn attribute.
1056818334Speter
1056950397SobrienFri Aug  1 03:18:15 1997  Jason Merrill  <jason@yorick.cygnus.com>
1057018334Speter
1057150397Sobrien	* parse.y: Break out eat_saved_input, handle errors.
1057250397Sobrien	(function_try_block): Use compstmt instead of compstmt_or_error.
1057318334Speter
1057450397SobrienThu Jul 31 17:14:04 1997  Jason Merrill  <jason@yorick.cygnus.com>
1057518334Speter
1057650397Sobrien	* tree.c (build_cplus_new): Don't set TREE_ADDRESSABLE.
1057718334Speter
1057850397SobrienFri Jul  4 01:45:16 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
1057918334Speter
1058050397Sobrien	* Make-lang.in (cplib2.txt, cplib2.ready): Instead of checking for
1058150397Sobrien	existence of cc1plus check whether $(LANGUAGES) contains C++.
1058218334Speter
1058350397SobrienWed Jul 30 13:04:21 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
1058418334Speter
1058550397Sobrien	* method.c (do_build_copy_constructor): When copying an anonymous
1058650397Sobrien	union member loop around to handle nested anonymous unions.  Use
1058750397Sobrien	the offset of the member relative to the outer structure, not the
1058850397Sobrien	union.
1058918334Speter
1059050397SobrienTue Jul 29 21:17:29 1997  Jason Merrill  <jason@yorick.cygnus.com>
1059118334Speter
1059250397Sobrien	* call.c (resolve_args): New fn.
1059350397Sobrien	(build_new_function_call): Use it.
1059450397Sobrien	(build_object_call): Likewise.
1059550397Sobrien	(build_new_method_call): Likewise.
1059618334Speter
1059750397SobrienMon Jul 28 16:02:36 1997  Jason Merrill  <jason@yorick.cygnus.com>
1059818334Speter
1059950397Sobrien	* call.c (build_over_call): tsubst all default parms from templates.
1060018334Speter
1060150397SobrienWed Jul 23 13:36:25 1997  Jason Merrill  <jason@yorick.cygnus.com>
1060218334Speter
1060350397Sobrien	* decl.c (struct cp_function): Add static_labelno.
1060450397Sobrien	(push_cp_function_context): Save it.
1060550397Sobrien	(pop_cp_function_context): Restore it.
1060618334Speter
1060750397SobrienTue Jul 22 14:43:29 1997  Jason Merrill  <jason@yorick.cygnus.com>
1060818334Speter
1060950397Sobrien	* typeck.c (build_component_ref_1): Convert from reference.
1061018334Speter
1061150397SobrienTue Jul 22 11:06:23 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1061218334Speter
1061350397Sobrien	* parse.y (current_declspecs, prefix_attributes): Initialize to
1061450397Sobrien	NULL_TREE.
1061518334Speter
1061650397Sobrien	* parse.y (initdcl0): Make sure CURRENT_DECLSPECS is non-nil
1061750397Sobrien	before we try to force it to be a TREE_LIST.
1061850397Sobrien	(decl): Make sure $1.t is non-nil.
1061918334Speter
1062050397SobrienSun Jul 20 11:53:07 1997  Jason Merrill  <jason@yorick.cygnus.com>
1062118334Speter
1062250397Sobrien	* pt.c (uses_template_parms): Handle template first-parse codes.
1062318334Speter
1062450397Sobrien	* decl.c (cp_finish_decl): Only warn about user-defined statics.
1062518334Speter
1062650397SobrienFri Jul 18 17:56:08 1997  Jason Merrill  <jason@yorick.cygnus.com>
1062718334Speter
1062850397Sobrien	* pt.c (unify): Handle BOOLEAN_TYPE.
1062918334Speter
1063050397Sobrien	* cp-tree.h: Lose PARM_DEFAULT_FROM_TEMPLATE.
1063150397Sobrien	* pt.c (tsubst): Don't set it.
1063250397Sobrien	* call.c (build_over_call): Use uses_template_parms.
1063318334Speter
1063450397SobrienThu Jul 17 18:06:30 1997  Jason Merrill  <jason@yorick.cygnus.com>
1063518334Speter
1063650397Sobrien	* method.c (build_overload_nested_name): Use static_labelno
1063752284Sobrien	instead of var_labelno.
1063850397Sobrien	(build_qualified_name): New fn.
1063950397Sobrien	(build_overload_name): Split out from here.
1064050397Sobrien	(build_static_name): Use build_qualified_name.
1064152284Sobrien	* decl.c (cp_finish_decl): Statics in extern inline functions
1064250397Sobrien	have comdat linkage.
1064350397Sobrien	(start_function): Initialize static_labelno.
1064418334Speter
1064550397SobrienThu Jul 17 11:20:17 1997  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
1064618334Speter
1064752284Sobrien	* class.c (finish_struct_methods): Add check of warn_ctor_dtor_privacy
1064852284Sobrien	before "all member functions in class [] are private".
1064918334Speter
1065050397SobrienWed Jul 16 23:47:08 1997  Jason Merrill  <jason@yorick.cygnus.com>
1065118334Speter
1065250397Sobrien	* lex.c (do_scoped_id): convert_from_reference.
1065350397Sobrien	* init.c (build_offset_ref): Likewise.
1065418334Speter
1065550397SobrienWed Jul 16 12:34:29 1997  Benjamin Kosnik  <bkoz@lisa.cygnus.com>
1065618334Speter
1065750397Sobrien	* error.c (dump_expr): Check TREE_OPERAND before dump_expr_list.
1065818334Speter
1065950397SobrienMon Jul 14 03:23:46 1997  Jason Merrill  <jason@yorick.cygnus.com>
1066018334Speter
1066150397Sobrien	* typeck.c (get_member_function_from_ptrfunc): Promote index
1066252284Sobrien	before saving it.
1066318334Speter
1066450397SobrienSun Jul 13 00:11:52 1997  Jason Merrill  <jason@yorick.cygnus.com>
1066518334Speter
1066650397Sobrien	* tree.c (layout_basetypes): Move non-virtual destructor warning.
1066750397Sobrien	* decl.c (xref_basetypes): Remove non-virtual destructor warning.
1066818334Speter
1066950397SobrienSat Jul 12 12:47:12 1997  Jason Merrill  <jason@yorick.cygnus.com>
1067018334Speter
1067150397Sobrien	* decl.c (grokdeclarator): Call add_defarg_fn for the function
1067250397Sobrien	type, too.
1067350397Sobrien	* lex.c (add_defarg_fn): Adjust.
1067450397Sobrien	(do_pending_defargs): Adjust.  Don't skip the first parm.
1067518334Speter
1067650397SobrienFri Jul 11 01:39:50 1997  Jason Merrill  <jason@yorick.cygnus.com>
1067718334Speter
1067850397Sobrien	* decl.c (build_enumerator): Global enumerators are also readonly.
1067918334Speter
1068050397Sobrien	* rtti.c (build_dynamic_cast_1): Renamed from build_dynamic_cast.
1068150397Sobrien	(build_dynamic_cast): Call it and convert_from_reference.
1068218334Speter
1068350397Sobrien	* lex.c (add_defarg_fn): New fn.
1068450397Sobrien	(snarf_defarg): Don't add to defarg_types.
1068550397Sobrien	(do_pending_defargs): Lose defarg_types.  All fns we process now
1068650397Sobrien	have defargs.
1068750397Sobrien	* decl.c (grokfndecl): Call add_defarg_fn.
1068818334Speter
1068950397Sobrien	* Makefile.in (CONFLICTS): Expect 18 s/r conflicts.
1069050397Sobrien	* cp-tree.def: Add DEFAULT_ARG.
1069150397Sobrien	* spew.c (yylex): Call snarf_defarg as appropriate.
1069250397Sobrien	* parse.y: New tokens DEFARG and DEFARG_MARKER.
1069350397Sobrien	(defarg_again, pending_defargs, defarg, defarg1): New rules.
1069450397Sobrien	(structsp): Use pending_defargs.
1069550397Sobrien	(parms, full_parm): Use defarg.
1069650397Sobrien	* lex.c (init_lex): Initialize inline_text_firstobj.
1069750397Sobrien	(do_pending_inlines): Never pass the obstack to feed_input.
1069850397Sobrien	(process_next_inline): Call end_input instead of restore_pending_input.
1069950397Sobrien	(clear_inline_text_obstack, reinit_parse_for_expr, do_pending_defargs,
1070050397Sobrien	finish_defarg, feed_defarg, snarf_defarg, maybe_snarf_defarg): New fns.
1070150397Sobrien	* input.c (end_input): New fn.
1070250397Sobrien	(sub_getch): At the end of some fed input, just keep returning EOF
1070350397Sobrien	until someone calls end_input.
1070450397Sobrien	Remove 'obstack' field from struct input_source.
1070550397Sobrien	* decl.c (grokparms): Handle DEFAULT_ARG.
1070650397Sobrien	(replace_defarg): New fn.
1070750397Sobrien	* cp-tree.h (DEFARG_LENGTH, DEFARG_POINTER): New macros.
1070818334Speter
1070950397SobrienWed Jul  9 13:44:12 1997  Jason Merrill  <jason@yorick.cygnus.com>
1071018334Speter
1071150397Sobrien	* call.c (implicit_conversion): If nothing else works, try binding
1071250397Sobrien	an rvalue to a reference.
1071318334Speter
1071450397SobrienWed Jul  9 13:04:38 1997  Geoffrey Noer  <noer@cygnus.com>
1071518334Speter
1071652284Sobrien	* decl.c (init_decl_processing): Fix Jun 30 patch -- move
1071750397Sobrien	ifndef for Cygwin32 to include SIGSEGV.
1071818334Speter
1071950397SobrienThu Jul  3 01:44:05 1997  Jason Merrill  <jason@yorick.cygnus.com>
1072018334Speter
1072150397Sobrien	* class.c (finish_struct_1): Only complain about pointers without
1072250397Sobrien	copy stuff if there are any constructors.
1072318334Speter
1072450397Sobrien	* rtti.c (build_dynamic_cast): Call complete_type on the types.
1072518334Speter
1072650397Sobrien	* decl.c (grokfndecl): If the function we chose doesn't actually
1072752284Sobrien	match, die.
1072818334Speter
1072950397Sobrien	* decl2.c (grokclassfn): Don't specify 'const int' for the
1073052284Sobrien	artificial destructor parm.
1073118334Speter
1073252284Sobrien	* pt.c (type_unification): If we are called recursively, nothing
1073350397Sobrien	decays.
1073418334Speter
1073550397SobrienMon Jun 30 17:53:21 1997  Geoffrey Noer  <noer@cygnus.com>
1073618334Speter
1073752284Sobrien	* decl.c (init_decl_processing): Stop trying to catch signals
1073850397Sobrien	other than SIGABRT since the Cygwin32 library doesn't support
1073950397Sobrien	them correctly yet.  This fixes a situation in which g++ causes
1074050397Sobrien	a hang on SIGSEGVs and other such signals in our Win32-hosted
1074150397Sobrien	tools.
1074218334Speter
1074350397SobrienMon Jun 30 14:50:01 1997  Jason Merrill  <jason@yorick.cygnus.com>
1074418334Speter
1074550397Sobrien	* tree.c (mapcar, case CALL_EXPR): Handle all the parse node data.
1074618334Speter
1074750397SobrienFri Jun 27 15:18:49 1997  Jason Merrill  <jason@yorick.cygnus.com>
1074818334Speter
1074952284Sobrien	* typeck2.c (store_init_value): Always return the value if our
1075050397Sobrien	type needs constructing.
1075118334Speter
1075250397Sobrien	* method.c (hack_identifier): Convert class statics from
1075352284Sobrien	reference, too.
1075418334Speter
1075550397SobrienThu Jun 26 11:44:46 1997  Jason Merrill  <jason@yorick.cygnus.com>
1075618334Speter
1075750397Sobrien	* Make-lang.in (cplib2.ready): Add $(LANGUAGES) dependency.
1075818334Speter
1075950397SobrienThu Jun 19 16:49:28 1997  Mike Stump  <mrs@cygnus.com>
1076018334Speter
1076150397Sobrien	* typeck.c (c_expand_return): Make sure we clean up temporaries at
1076250397Sobrien	the end of return x;
1076318334Speter
1076450397SobrienThu Jun 19 12:28:43 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1076518334Speter
1076650397Sobrien	* lex.c (check_for_missing_semicolon): Also check for CV_QUALIFIER.
1076718334Speter
1076850397SobrienTue Jun 17 18:35:57 1997  Mike Stump  <mrs@cygnus.com>
1076918334Speter
1077050397Sobrien	* except.c (expand_builtin_throw): Add support
1077152284Sobrien	-fno-sjlj-exceptions -fPIC exception handling on the SPARC.
1077218334Speter
1077350397SobrienMon Jun 16 01:24:37 1997  Jason Merrill  <jason@yorick.cygnus.com>
1077418334Speter
1077550397Sobrien	* repo.c (extract_string): Null-terminate.
1077618334Speter
1077750397Sobrien	* cp-tree.h (TI_SPEC_INFO): New macro.
1077850397Sobrien	(CLASSTYPE_TI_SPEC_INFO): New macro.
1077952284Sobrien	* pt.c (push_template_decl): Correctly determine # of template parms
1078050397Sobrien	for partial specs.
1078118334Speter
1078250397Sobrien	* call.c (compare_ics): Really fix 'this' conversions.
1078318334Speter
1078450397Sobrien	* pt.c (do_decl_instantiation): Don't crash on explicit inst of
1078550397Sobrien	non-template fn.
1078618334Speter
1078750397Sobrien	* pt.c (push_template_decl): Complain about mismatch in # of
1078852284Sobrien	template parms between a class template and a member template.
1078918334Speter
1079050397SobrienSun Jun 15 02:38:20 1997  Jason Merrill  <jason@yorick.cygnus.com>
1079118334Speter
1079250397Sobrien	* method.c (synthesize_method): You can't call
1079352284Sobrien	function_cannot_inline_p after finish_function.
1079450397Sobrien	* decl.c (finish_function): Turn on flag_inline_functions and turn
1079552284Sobrien	off DECL_INLINE before handing a synthesized method to the
1079652284Sobrien	backend.
1079718334Speter
1079850397SobrienThu Jun 12 17:35:28 1997  Jason Merrill  <jason@yorick.cygnus.com>
1079918334Speter
1080050397Sobrien	* method.c (synthesize_method): Remove July 30 change to never set
1080152284Sobrien	DECL_INLINE if at_eof.
1080218334Speter
1080350397SobrienThu Jun 12 15:25:08 1997  Mike Stump  <mrs@cygnus.com>
1080418334Speter
1080550397Sobrien	* xref.c (GNU_xref_member): Ensure that the node has a
1080650397Sobrien	decl_lang_specific part before checking DECL_FRIEND_P.
1080718334Speter
1080850397SobrienThu Jun 12 12:36:05 1997  Jason Merrill  <jason@yorick.cygnus.com>
1080918334Speter
1081050397Sobrien	* pt.c (instantiate_class_template): Diagnose non-class types used
1081150397Sobrien	as bases.
1081218334Speter
1081350397SobrienWed Jun 11 17:33:40 1997  Jason Merrill  <jason@yorick.cygnus.com>
1081418334Speter
1081550397Sobrien	* typeck.c (build_conditional_expr): Use convert_for_initialization
1081650397Sobrien	instead of convert_and_check.
1081718334Speter
1081850397SobrienWed Jun 11 12:31:33 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1081918334Speter
1082050397Sobrien	* parse.y (typespec): Don't pedwarn for typeof.
1082118334Speter
1082250397SobrienTue Jun 10 00:22:09 1997  Jason Merrill  <jason@yorick.cygnus.com>
1082318334Speter
1082450397Sobrien	* repo.c (finish_repo): Only check changes if we would write a
1082550397Sobrien	repo file.
1082618334Speter
1082750397Sobrien	* call.c (compare_ics): Fix handling of 'this' conversions.
1082818334Speter
1082950397Sobrien	* pt.c (do_decl_instantiation): Support static data too.  Rename
1083050397Sobrien	from do_function_instantiation.
1083150397Sobrien	* cp-tree.h: Adjust.
1083250397Sobrien	* parse.y: Adjust.
1083318334Speter
1083450397Sobrien	* repo.c (extract_string): New fn.
1083550397Sobrien	(get_base_filename): Use it.
1083650397Sobrien	(init_repo): Compare old args with current args.
1083718334Speter
1083850397SobrienMon Jun  9 14:25:30 1997  Mike Stump  <mrs@cygnus.com>
1083918334Speter
1084050397Sobrien	* Makefile.in, Make-lang.in: Protect C-ls with a comment
1084152284Sobrien	character, idea from Paul Eggert <eggert@twinsun.com>.
1084218334Speter
1084350397SobrienMon Jun  9 01:52:03 1997  Jason Merrill  <jason@yorick.cygnus.com>
1084418334Speter
1084550397Sobrien	* typeck.c (c_expand_return): Be more persistent in looking for
1084652284Sobrien	returned temps.
1084718334Speter
1084850397Sobrien	* cvt.c (build_up_reference): Use NOP_EXPR for switching from
1084952284Sobrien	pointer to reference.
1085018334Speter
1085150397Sobrien	* class.c (build_vbase_path): Don't do anything if PATH has no steps.
1085218334Speter
1085350397SobrienSun Jun  8 03:07:05 1997  Jason Merrill  <jason@yorick.cygnus.com>
1085418334Speter
1085550397Sobrien	* init.c (build_member_call, build_offset_ref):
1085652284Sobrien	Use do_scoped_id instead of do_identifier.
1085718334Speter
1085850397Sobrien	* cvt.c (convert): Remove bogosity.
1085918334Speter
1086050397SobrienSat Jun  7 20:50:17 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1086118334Speter
1086250397Sobrien	* cvt.c (build_up_reference): Do checks of ARGTYPE and
1086350397Sobrien	TARGET_TYPE before trying to use get_binfo.
1086418334Speter
1086550397SobrienFri Jun  6 17:36:39 1997  Jason Merrill  <jason@yorick.cygnus.com>
1086618334Speter
1086750397Sobrien	* cvt.c (build_up_reference): Call get_binfo to get access control.
1086818334Speter
1086950397Sobrien	* decl2.c (import_export_decl): If we don't support weaks, leave
1087052284Sobrien	statics undefined.
1087118334Speter
1087250397SobrienFri Jun  6 15:55:49 1997  Mike Stump  <mrs@cygnus.com>
1087318334Speter
1087450397Sobrien	* except.c (expand_builtin_throw): Add support for machines that
1087552284Sobrien	cannot access globals after throw's epilogue when
1087652284Sobrien	-fno-sjlj-exceptions is used.
1087718334Speter
1087850397SobrienThu Jun  5 16:28:43 1997  Jason Merrill  <jason@yorick.cygnus.com>
1087918334Speter
1088050397Sobrien	* parse.y: 'std::' becomes '::'.
1088150397Sobrien	* lex.c (real_yylex): Remove 'namespace' warning.
1088250397Sobrien	* init.c (build_member_call): Ignore 'std::'.
1088350397Sobrien	(build_offset_ref): Likewise.
1088450397Sobrien	* decl2.c (do_using_directive): Ignore 'using namespace std;'.
1088550397Sobrien	(do_toplevel_using_decl): Ignore 'using std::whatever'.
1088650397Sobrien	* decl.c (push_namespace): Just sorry.
1088750397Sobrien	(pop_namespace): Nop.
1088850397Sobrien	(init_decl_processing): Declare std namespace.
1088918334Speter
1089050397SobrienTue Jun  3 18:08:23 1997  Jason Merrill  <jason@yorick.cygnus.com>
1089118334Speter
1089250397Sobrien	* search.c (push_class_decls): A name which ambiguously refers to
1089352284Sobrien	several instantiations of the same template just refers to the
1089452284Sobrien	template.
1089518334Speter
1089650397SobrienTue Jun  3 12:30:40 1997  Benjamin Kosnik  <bkoz@cirdan.cygnus.com>
1089718334Speter
1089852284Sobrien	* decl.c (build_enumerator): Fix problem with unsigned long
1089950397Sobrien	enumerated values being smashed to ints, causing overflow
1090052284Sobrien	when computing next enumerated value (for enum values around
1090150397Sobrien	MAX_VAL).
1090218334Speter
1090350397SobrienMon Jun  2 17:40:56 1997  Jason Merrill  <jason@yorick.cygnus.com>
1090418334Speter
1090550397Sobrien	* typeck.c (build_component_ref): Only call mark_used on a decl.
1090618334Speter
1090750397SobrienThu May 29 15:54:17 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1090818334Speter
1090950397Sobrien	* typeck.c (build_c_cast): Make the check for a ptr to function
1091050397Sobrien	more specific before possible default_conversion call.
1091118334Speter
1091250397SobrienThu May 29 13:02:06 1997  Mike Stump  <mrs@cygnus.com>
1091318334Speter
1091450397Sobrien	* except.c (expand_exception_blocks): Simplify and fix and make
1091550397Sobrien	sure we don't end a region in a sequence, as expand_end_bindings
1091650397Sobrien	doesn't like it.
1091718334Speter
1091850397SobrienWed May 28 17:08:03 1997  Mike Stump  <mrs@cygnus.com>
1091918334Speter
1092050397Sobrien	* except.c (init_exception_processing): Mark terminate as not
1092150397Sobrien	returning so that the optimizer can optimize better.
1092218334Speter
1092350397SobrienTue May 27 19:49:19 1997  Mike Stump  <mrs@cygnus.com>
1092418334Speter
1092550397Sobrien	* cvt.c (convert): Don't do any extra work, if we can avoid it
1092650397Sobrien	easily.
1092718334Speter
1092850397SobrienTue May 27 18:21:47 1997  Mike Stump  <mrs@cygnus.com>
1092918334Speter
1093050397Sobrien	* *.[chy]: Change cp_convert to ocp_convert, change convert to
1093150397Sobrien	cp_convert.  convert is now reserved for the backend, and doesn't
1093250397Sobrien	have the semantics a frontend person should ever want.
1093318334Speter
1093450397SobrienFri May 23 10:58:31 1997  Jason Merrill  <jason@yorick.cygnus.com>
1093518334Speter
1093650397Sobrien	* lang-specs.h: Define __EXCEPTIONS if exceptions are enabled.
1093750397Sobrien	Lose -traditional support.
1093818334Speter
1093950397SobrienThu May 22 15:41:28 1997  Jason Merrill  <jason@yorick.cygnus.com>
1094018334Speter
1094150397Sobrien	* rtti.c (get_tinfo_var): Use TYPE_PRECISION (sizetype).
1094218334Speter
1094350397Sobrien	* parse.y (self_reference): Do it for templates, too.
1094450397Sobrien	* class.c (pushclass): Don't overload_template_name; the alias
1094550397Sobrien	generated by build_self_reference serves the same purpose.
1094618334Speter
1094750397Sobrien	* tree.c (list_hash): Make static, take more args.
1094850397Sobrien	(list_hash_lookup): Likewise.
1094950397Sobrien	(list_hash_add): Make static.
1095050397Sobrien	(list_hash_canon): Lose.
1095150397Sobrien	(hash_tree_cons): Only build a new node if one isn't already in the
1095250397Sobrien	hashtable.
1095350397Sobrien	(hash_tree_chain): Use hash_tree_cons.
1095450397Sobrien	* cp-tree.h: Adjust.
1095550397Sobrien	* decl.c (grokfndecl): Just check IDENTIFIER_GLOBAL_VALUE instead
1095650397Sobrien	of calling lookup_name.
1095718334Speter
1095850397SobrienWed May 21 18:24:19 1997  Jason Merrill  <jason@yorick.cygnus.com>
1095918334Speter
1096050397Sobrien	* pt.c (instantiate_class_template): TYPE_VALUES for an enum
1096150397Sobrien	doesn't refer to the CONST_DECLs.
1096218334Speter
1096350397SobrienTue May 20 21:09:32 1997  Bob Manson  <manson@charmed.cygnus.com>
1096418334Speter
1096550397Sobrien	* rtti.c (get_tinfo_var): Either INT_TYPE_SIZE or 32, whichever
1096650397Sobrien	is bigger.
1096750397Sobrien	(expand_class_desc): Convert the last argument to a sizetype.
1096818334Speter
1096950397SobrienTue May 20 13:55:57 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1097018334Speter
1097150397Sobrien	* gxx.gperf (__complex, __complex__, __imag, __imag__, __real,
1097250397Sobrien	__real__): Add reswords.
1097350397Sobrien	* hash.h: Regenerate.
1097450397Sobrien	* lex.h (rid): Add RID_COMPLEX.
1097550397Sobrien	(RID_LAST_MODIFIER): Set to RID_COMPLEX.
1097650397Sobrien	* lex.c (init_lex): Add building of RID_COMPLEX.
1097750397Sobrien	(real_yylex): General cleanup in line with what c-lex.c also has,
1097850397Sobrien	sans the cruft for traditional; add handling of SPEC_IMAG, complex
1097950397Sobrien	types, and imaginary numeric constants.
1098050397Sobrien	* parse.y (REALPART, IMAGPART): Add tokens.
1098150397Sobrien	(unary_expr): Add REALPART and IMAGPART rules.
1098250397Sobrien	* cp-tree.h (complex_{integer,float,double,long}_type_node): Declare.
1098350397Sobrien	* decl.c (complex_{integer,float,double,long}_type_node): Define
1098450397Sobrien	types.
1098550397Sobrien	(init_decl_processing): Set up the types.
1098650397Sobrien	(grokdeclarator): Add handling of RID_COMPLEX.  Set and use
1098750397Sobrien	DEFAULTED_INT instead of EXPLICIT_INT when we default to int type.
1098850397Sobrien	* call.c (build_new_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
1098950397Sobrien	* cvt.c (cp_convert): Handle COMPLEX_TYPE.
1099050397Sobrien	* error.c (dump_type_prefix, dump_type, dump_type_suffix): Add
1099150397Sobrien	COMPLEX_TYPE case.
1099250397Sobrien	* method.c (build_overload_name): Add handling of the different
1099350397Sobrien	COMPLEX_TYPEs, prefixing them with `J'.
1099450397Sobrien	* pt.c (process_template_parm): Don't let them use a COMPLEX_TYPE
1099550397Sobrien	as a template parm.
1099650397Sobrien	(uses_template_parms, tsubst, unify): Add COMPLEX_TYPE case.
1099750397Sobrien	* tree.c (lvalue_p): Add REALPART_EXPR and IMAGPART_EXPR cases.
1099850397Sobrien	(mapcar): Handle COMPLEX_CST.
1099950397Sobrien	* typeck.c (build_binary_op_nodefault): Handle COMPLEX_TYPE.
1100050397Sobrien	(common_type): Add code for complex types.
1100150397Sobrien	(build_unary_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
1100250397Sobrien	(convert_for_assignment): Likewise.
1100350397Sobrien	(mark_addressable): Add REALPART_EXPR and IMAGPART_EXPR cases.
1100418334Speter
1100550397SobrienMon May 19 12:26:27 1997  Jason Merrill  <jason@yorick.cygnus.com>
1100618334Speter
1100750397Sobrien	* pt.c (tsubst): Don't pass the MINUS_EXPR for an array domain to
1100850397Sobrien	tsubst_expr, as it might try to do overload resolution.
1100918334Speter
1101050397SobrienSat May 17 10:48:31 1997  Jason Merrill  <jason@yorick.cygnus.com>
1101118334Speter
1101250397Sobrien	* pt.c (instantiate_class_template): Oops.
1101318334Speter
1101450397SobrienFri May 16 14:23:57 1997  Jason Merrill  <jason@yorick.cygnus.com>
1101518334Speter
1101650397Sobrien	* cp-tree.def: Add TAG_DEFN.
1101750397Sobrien	* pt.c (tsubst_enum): New fn.
1101850397Sobrien	(instantiate_class_template): Use it.
1101950397Sobrien	(tsubst_expr): Support TAG_DEFN.
1102050397Sobrien	(tsubst): Support local enums.
1102150397Sobrien	(tsubst_copy): Likewise.
1102250397Sobrien	* decl.c (finish_enum): Likewise.
1102350397Sobrien	(start_enum): If this is a local enum, switch to permanent_obstack.
1102418334Speter
1102550397SobrienWed May 14 19:08:28 1997  Mike Stump  <mrs@cygnus.com>
1102618334Speter
1102750397Sobrien	* decl.c (store_parm_decls): Set last_parm_cleanup_insn here.
1102850397Sobrien	(finish_function): Put the base init code for constructors just
1102950397Sobrien	after the parm cleanup insns.
1103050397Sobrien	(struct cp_function): Add last_parm_cleanup_insn.
1103150397Sobrien	(push_cp_function_context): Likewise.
1103250397Sobrien	(pop_cp_function_context): Likewise.
1103352284Sobrien
1103450397SobrienTue May 13 15:51:20 1997  Jason Merrill  <jason@yorick.cygnus.com>
1103518334Speter
1103650397Sobrien	* pt.c (tsubst_copy): Handle BIT_NOT_EXPR.
1103718334Speter
1103850397SobrienWed May  7 11:17:59 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1103918334Speter
1104050397Sobrien	* method.c (emit_thunk) [ASM_OUTPUT_MI_THUNK]: Build up the RTL
1104150397Sobrien	for THUNK_FNDECL before we switch to temporary allocation.
1104218334Speter
1104350397SobrienMon May  5 14:46:53 1997  Jason Merrill  <jason@yorick.cygnus.com>
1104418334Speter
1104550397Sobrien	* call.c (build_new_op): Handle null arg2 for ?:.
1104618334Speter
1104750397SobrienThu May  1 18:26:37 1997  Mike Stump  <mrs@cygnus.com>
1104818334Speter
1104950397Sobrien	* except.c (expand_exception_blocks): Ensure that we flow through
1105050397Sobrien	the end of the exception region for the exception specification.
1105150397Sobrien	Move exception region for the exception specification in, so that
1105250397Sobrien	it doesn't protect the parm cleanup.  Remove some obsolete code.
1105350397Sobrien	* decl.c (store_parm_decls): Likewise.
1105450397Sobrien	(finish_function): Likewise.
1105518334Speter
1105650397SobrienTue Apr 29 15:38:54 1997  Jason Merrill  <jason@yorick.cygnus.com>
1105718334Speter
1105850397Sobrien	* init.c (build_new): Fix nothrow handling.
1105918334Speter
1106050397SobrienTue Apr 29 14:29:50 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1106118334Speter
1106250397Sobrien	* init.c (emit_base_init): Don't warn about the initialization
1106350397Sobrien	list for an artificial member.
1106418334Speter
1106550397SobrienFri Apr 25 17:47:59 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1106618334Speter
1106750397Sobrien	* expr.c (do_case): Handle !START case for the error msg.
1106818334Speter
1106950397SobrienFri Apr 25 11:55:23 1997  Jason Merrill  <jason@yorick.cygnus.com>
1107018334Speter
1107150397Sobrien	* decl2.c, lang-options.h: New option -Weffc++.
1107250397Sobrien	* class.c, decl.c, init.c, typeck.c: Move Effective C++ warnings
1107350397Sobrien	to -Weffc++.
1107418334Speter
1107550397Sobrien	* decl2.c (finish_prevtable_vardecl): Change NO_LINKAGE_HEURISTICS
1107650397Sobrien	to MULTIPLE_SYMBOL_SPACES.
1107718334Speter
1107850397SobrienWed Apr 23 18:06:50 1997  Jason Merrill  <jason@yorick.cygnus.com>
1107918334Speter
1108050397Sobrien	* method.c (emit_thunk, generic case): Set current_function_is_thunk.
1108118334Speter
1108250397Sobrien	* method.c (emit_thunk, macro case): Set up DECL_RESULT.
1108318334Speter
1108450397Sobrien	* typeck.c (c_expand_return): Don't complain about returning void
1108550397Sobrien	to void in an artificial function.
1108652284Sobrien	* method.c (make_thunk): Change settings of READONLY/VOLATILE,
1108750397Sobrien	don't set DECL_RESULT, set DECL_ARTIFICIAL.
1108852284Sobrien	(emit_thunk, generic code): Also set up DECL_LANG_SPECIFIC.
1108918334Speter
1109050397SobrienWed Apr 23 14:43:06 1997  Mike Stump  <mrs@cygnus.com>
1109118334Speter
1109252284Sobrien	* init.c (init_decl_processing): Add support for setjmp/longjmp based
1109350397Sobrien	exception handling.
1109450397Sobrien	* except.c (init_exception_processing): Likewise.
1109550397Sobrien	(expand_end_catch_block): Likewise.
1109650397Sobrien	(expand_exception_blocks): Likewise.
1109750397Sobrien	(expand_throw): Likewise.
1109850397Sobrien	* exception.cc (__default_terminate): Likewise.
1109918334Speter
1110050397Sobrien	* init.c (perform_member_init): Use new method of expr level
1110150397Sobrien	cleanups, instead of cleanups_this_call and friends.
1110250397Sobrien	(emit_base_init): Likewise.
1110350397Sobrien	(expand_aggr_vbase_init_1): Likewise.
1110450397Sobrien	(expand_vec_init): Likewise.
1110550397Sobrien	* decl.c (cp_finish_decl): Likewise.
1110650397Sobrien	(expand_static_init): Likewise.
1110750397Sobrien	(store_parm_decls): Likewise.
1110850397Sobrien	(cplus_expand_expr_stmt): Likewise.
1110950397Sobrien	* decl2.c (finish_file): Likewise.
1111052284Sobrien
1111150397Sobrien	* Make-lang.in (exception.o): Ok to compile with -O now.
1111218334Speter
1111350397Sobrien	* decl.c (maybe_build_cleanup_1): We no longer have to unsave, as
1111450397Sobrien	we know it will be done later by the backend.
1111518334Speter
1111650397Sobrien	* decl2.c (lang_f_options): Remove support for short temps.
1111750397Sobrien	* lang-options.h: Likewise.
1111852284Sobrien
1111950397SobrienWed Apr 23 04:12:06 1997  Jason Merrill  <jason@yorick.cygnus.com>
1112018334Speter
1112150397Sobrien	* tree.c (varargs_function_p): New fn.
1112250397Sobrien	* method.c (emit_thunk): Replace broken generic code with code to
1112350397Sobrien	generate a heavyweight thunk function.
1112418334Speter
1112550397SobrienTue Apr 22 02:45:18 1997  Jason Merrill  <jason@yorick.cygnus.com>
1112618334Speter
1112750397Sobrien	* pt.c (process_template_parm): pedwarn about floating-point parms.
1112818334Speter
1112950397Sobrien	* decl.c (grokdeclarator): inline no longer implies static.
1113018334Speter
1113150397Sobrien	* spew.c (yylex): Always return the TYPE_DECL if we got a scope.
1113218334Speter
1113350397SobrienMon Apr 21 15:42:27 1997  Jason Merrill  <jason@yorick.cygnus.com>
1113418334Speter
1113550397Sobrien	* class.c (check_for_override): The signature of an overriding
1113650397Sobrien	function is not changed.
1113718334Speter
1113850397Sobrien	* call.c (build_over_call): Move setting of conv into the loop.
1113950397Sobrien	Note: this change, along with the related changes of the 18th thru
1114050397Sobrien	the 20th of April, fix an infinite loop problem in conversions.
1114118334Speter
1114250397SobrienSun Apr 20 16:24:29 1997  Jason Merrill  <jason@yorick.cygnus.com>
1114318334Speter
1114450397Sobrien	* call.c (build_user_type_conversion_1): Really ignore rvalue
1114550397Sobrien	conversions when looking for a REFERENCE_TYPE.
1114618334Speter
1114750397Sobrien	* cvt.c (build_up_reference): Eviscerate, use build_unary_op.
1114850397Sobrien	* cp-tree.h (TREE_REFERENCE_EXPR): #if 0.
1114950397Sobrien	* typeck.c (decay_conversion): Don't set TREE_REFERENCE_EXPR.
1115050397Sobrien	(build_unary_op): Likewise.
1115150397Sobrien	* call.c (build_over_call): See through a CONVERT_EXPR around the
1115250397Sobrien	ADDR_EXPR for on a temporary.
1115350397Sobrien	* typeck.c (c_expand_return): See through a CONVERT_EXPR around
1115450397Sobrien	the ADDR_EXPR for a local variable.
1115518334Speter
1115650397SobrienFri Apr 18 12:11:33 1997  Jason Merrill  <jason@yorick.cygnus.com>
1115718334Speter
1115850397Sobrien	* call.c (build_user_type_conversion_1): If we're trying to
1115950397Sobrien	convert to a REFERENCE_TYPE, only consider lvalue conversions.
1116050397Sobrien	(build_new_function_call): Print candidates.
1116150397Sobrien	(implicit_conversion): Try a temp binding if the lvalue conv is BAD.
1116250397Sobrien	(reference_binding): Binding a temporary of a reference-related type
1116350397Sobrien	is BAD.
1116418334Speter
1116550397SobrienThu Apr 17 14:37:22 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1116618334Speter
1116750397Sobrien	* inc/typeinfo (type_info::before): Add cv-qualifier-seq.
1116850397Sobrien	* tinfo2.cc (type_info::before): Likewise.
1116918334Speter
1117050397SobrienMon Apr 14 12:38:17 1997  Jason Merrill  <jason@yorick.cygnus.com>
1117118334Speter
1117250397Sobrien	* call.c (implicit_conversion): Oops.
1117318334Speter
1117450397SobrienFri Apr 11 02:18:30 1997  Jason Merrill  <jason@yorick.cygnus.com>
1117518334Speter
1117650397Sobrien	* call.c (implicit_conversion): Try to find a reference conversion
1117750397Sobrien	before binding a const reference to a temporary.
1117818334Speter
1117950397SobrienWed Apr  2 12:51:36 1997  Mike Stump  <mrs@cygnus.com>
1118018334Speter
1118150397Sobrien	* exception.cc (__default_unexpected): Call terminate by default,
1118250397Sobrien	so that if the user overrides terminate, the correct function will
1118350397Sobrien	be called.
1118452284Sobrien
1118550397SobrienWed Mar 19 14:14:45 1997  Mike Stump  <mrs@cygnus.com>
1118618334Speter
1118750397Sobrien	* parse.y (left_curly): Avoid trying to use any fields of
1118850397Sobrien	error_mark_node, as there aren't any.
1118918334Speter
1119050397SobrienThu Mar 13 16:33:22 1997  Jason Merrill  <jason@yorick.cygnus.com>
1119118334Speter
1119250397Sobrien	* lex.c (do_identifier): Avoid breaking on overloaded methods
1119350397Sobrien	as default arguments.
1119418334Speter
1119550397SobrienWed Mar 12 13:55:10 1997  Hans-Peter Nilsson  <Hans-Peter.Nilsson@axis.se>
1119618334Speter
1119750397Sobrien	* call.c (add_template_candidate): Initialize the variable "dummy".
1119818334Speter
1119950397SobrienMon Mar 10 15:13:14 1997  Brendan Kehoe  <brendan@canuck.cygnus.com>
1120018334Speter
1120150397Sobrien	* decl.c (start_decl): Make sure TYPE isn't an error_mark_node
1120250397Sobrien	before we try to use TYPE_SIZE and TREE_CONSTANT on it.
1120318334Speter
1120450397SobrienFri Mar  7 13:19:36 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1120518334Speter
1120650397Sobrien	* cp-tree.h (comp_ptr_ttypes, more_specialized): Add decl.
1120750397Sobrien	(debug_binfo): Delete decl, not needed.
1120818334Speter
1120950397Sobrien	* tree.c (fnaddr_from_vtable_entry, function_arg_chain,
1121050397Sobrien	promotes_to_aggr_type): Delete fns.
1121150397Sobrien	* cp-tree.h (FNADDR_FROM_VTABLE_ENTRY,
1121250397Sobrien	SET_FNADDR_FROM_VTABLE_ENTRY, FUNCTION_ARG_CHAIN,
1121350397Sobrien	PROMOTES_TO_AGGR_TYPE): Delete alternates to #if 1.
1121418334Speter
1121550397Sobrien	* decl.c (pending_invalid_xref{,_file,_line}): Delete unused vars.
1121618334Speter
1121750397Sobrien	* friend.c (is_friend_type): Delete fn.
1121850397Sobrien	* cp-tree.h (is_friend_type): Delete decl.
1121918334Speter
1122050397Sobrien	* decl.c (original_result_rtx, double_ftype_double,
1122150397Sobrien	double_ftype_double_double, int_ftype_int, long_ftype_long,
1122250397Sobrien	float_ftype_float, ldouble_ftype_ldouble, last_dtor_insn): Make static.
1122350397Sobrien	* typeck.c (original_result_rtx, warn_synth): Delete extern decls.
1122418334Speter
1122550397Sobrien	* decl.c (push_overloaded_decl{,_top_level}): Make static, adding
1122650397Sobrien	fwd decls.
1122750397Sobrien	* cp-tree.h (push_overloaded_decl{,_top_level}): Delete decls.
1122818334Speter
1122950397Sobrien	* decl.c (pushdecl_nonclass_level): #if 0, unused.
1123050397Sobrien	* cp-tree.h (pushdecl_nonclass_level): #if 0 decl.
1123118334Speter
1123250397Sobrien	* lex.c (reinit_lang_specific): #if 0, unused.
1123350397Sobrien	* cp-tree.h (reinit_lang_specific): #if 0 decl.
1123418334Speter
1123550397Sobrien	* decl.c (revert_static_member_fn): Make static, adding fwd decl.
1123650397Sobrien	* cp-tree.h (revert_static_member_fn): Delete decl.
1123718334Speter
1123850397Sobrien	* class.c (root_lang_context_p): Delete fn.
1123950397Sobrien	* cp-tree.h (root_lang_context_p): Delete decl.
1124018334Speter
1124150397Sobrien	* decl.c (set_current_level_tags_transparency): #if 0, unused.
1124250397Sobrien	* cp-tree.h (set_current_level_tags_transparency): #if 0 decl.
1124318334Speter
1124450397Sobrien	* lex.c (set_vardecl_interface_info): Make static.
1124550397Sobrien	* cp-tree.h (set_vardecl_interface_info): Delete decl.
1124618334Speter
1124750397Sobrien	* call.c (find_scoped_type): Make static.
1124850397Sobrien	* cp-tree.h (find_scoped_type): Delete decl.
1124918334Speter
1125050397Sobrien	* search.c (convert_pointer_to_vbase): Make static.
1125150397Sobrien	* cp-tree.h (convert_pointer_to_vbase): Delete decl.
1125218334Speter
1125350397Sobrien	* decl.c (const_ptr_type_node): Likewise.
1125450397Sobrien	* cp-tree.h (const_ptr_type_node): Delete decl.
1125518334Speter
1125650397Sobrien	* typeck.c (common_base_type): Make static.
1125750397Sobrien	* cp-tree.h (common_base_types): Delete erroneous decl.
1125818334Speter
1125950397Sobrien	* pt.c (classtype_mangled_name): Make static.
1126050397Sobrien	* cp-tree.h (classtype_mangled_name): Delete decl.
1126118334Speter
1126250397Sobrien	* lex.c (check_newline): Make static.
1126350397Sobrien	* cp-tree.h (check_newline): Delete decl.
1126418334Speter
1126550397Sobrien	* typeck.c (build_x_array_ref): Delete fn, same idea as
1126650397Sobrien	grok_array_decl.
1126750397Sobrien	* cp-tree.h (build_x_array_ref): Delete decl.
1126818334Speter
1126950397Sobrien	* lex.c (copy_decl_lang_specific): Delete fn, same idea as
1127050397Sobrien	copy_lang_decl.
1127150397Sobrien	* cp-tree.h (copy_decl_lang_specific): #if 0 decl.
1127218334Speter
1127350397Sobrien	* class.c (build_vtable_entry): Make static.
1127450397Sobrien	* cp-tree.h (build_vtable_entry): Delete decl.
1127518334Speter
1127650397Sobrien	* class.c (build_vbase_pointer): Make static.
1127750397Sobrien	* cp-tree.h (build_vbase_pointer): Delete decl.
1127818334Speter
1127950397Sobrien	* sig.c (build_sptr_ref): Add forward decl and make static.
1128050397Sobrien	* cp-tree.h (build_sptr_ref): Delete decl.
1128118334Speter
1128250397Sobrien	* call.c (build_new_method_call): Add forward decl and make static.
1128350397Sobrien	* cp-tree.h (build_new_method_call): Delete decl.
1128418334Speter
1128550397Sobrien	* call.c (build_object_call): Make static.
1128650397Sobrien	* class.c (check_for_override, complete_type_p, mark_overriders):
1128750397Sobrien	Likewise.
1128850397Sobrien	* decl.c (cp_function_chain): Likewise.
1128950397Sobrien	* lex.c (set_typedecl_interface_info, reinit_parse_for_block):
1129050397Sobrien	Likewise.
1129150397Sobrien	* pt.c (comp_template_args, get_class_bindings, push_tinst_level):
1129250397Sobrien	Likewise.
1129350397Sobrien	* tree.c (build_cplus_array_type_1): Likewise.
1129450397Sobrien	* typeck.c (comp_ptr_ttypes_{const,real,reinterpret}): Likewise.
1129550397Sobrien	(comp_target_parms): Likewise.
1129618334Speter
1129750397Sobrien	* init.c (build_builtin_call): Make static.
1129850397Sobrien	* cp-tree.h (build_builtin_call): Delete decl.
1129918334Speter
1130050397Sobrien	* typeck.c (binary_op_error): Delete decl.
1130150397Sobrien	* cp-tree.h (binary_op_error): Likewise.
1130218334Speter
1130350397SobrienThu Mar  6 16:13:52 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1130418334Speter
1130550397Sobrien	* call.c (build_method_call): Compare against error_mark_node
1130650397Sobrien	directly, rather than the ERROR_MARK tree code.
1130750397Sobrien	* cvt.c (cp_convert): Likewise.
1130850397Sobrien	* decl.c (print_binding_level): Likewise.
1130950397Sobrien	(duplicate_decls): Likewise.
1131050397Sobrien	(grokdeclarator): Likewise.
1131150397Sobrien	(grokdeclarator): Likewise.
1131250397Sobrien	* init.c (expand_aggr_init_1): Likewise.
1131350397Sobrien	(decl_constant_value): Likewise.
1131450397Sobrien	* method.c (build_opfncall): Likewise.
1131550397Sobrien	(hack_identifier): Likewise.
1131650397Sobrien	* typeck.c (build_modify_expr): Likewise.
1131718334Speter
1131850397Sobrien	* typeck.c (build_c_cast): Don't decl TYPE as register tree.
1131918334Speter
1132050397SobrienSun Mar  2 02:54:36 1997  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
1132118334Speter
1132250397Sobrien	* pt.c (unify): Strip NOP_EXPR wrappers before unifying integer values.
1132318334Speter
1132450397Sobrien	* pt.c (coerce_template_parms): Add new error message.
1132518334Speter
1132650397Sobrien	* method.c (build_overload_value): Implement name mangling for
1132750397Sobrien	floating-point template arguments.
1132818334Speter
1132950397Sobrien	* method.c (build_overload_int, icat, dicat): Fix mangling of template
1133050397Sobrien	arguments whose absolute value doesn't fit in a signed word.
1133118334Speter
1133250397SobrienMon Mar  3 12:14:54 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1133318334Speter
1133450397Sobrien	* friend.c: New file; put all of the friend stuff in here.
1133550397Sobrien	* init.c: Instead of here.
1133650397Sobrien	* Makefile.in (CXX_OBJS): Add friend.o.
1133750397Sobrien	(friend.o): Add dependencies.
1133850397Sobrien	* Make-lang.in (CXX_SRCS): Add $(srcdir)/cp/friend.c.
1133918334Speter
1134050397SobrienSun Mar  2 11:04:43 1997  Jason Merrill  <jason@yorick.cygnus.com>
1134118334Speter
1134250397Sobrien	* call.c (build_scoped_method_call): Complain if the scope isn't a
1134350397Sobrien	base.
1134418334Speter
1134550397SobrienWed Feb 26 11:31:06 1997  Jason Merrill  <jason@yorick.cygnus.com>
1134618334Speter
1134750397Sobrien	* parse.y (left_curly): Don't crash on erroneous type.
1134818334Speter
1134950397Sobrien	* init.c (build_delete): Fix type of ref.
1135018334Speter
1135150397SobrienTue Feb 25 12:41:48 1997  Jason Merrill  <jason@yorick.cygnus.com>
1135218334Speter
1135350397Sobrien	* search.c (get_vbase_1): Renamed from get_vbase.
1135450397Sobrien	(get_vbase): Wrapper, now non-static.
1135550397Sobrien	(convert_pointer_to_vbase): Now static.
1135618334Speter
1135750397Sobrien	* call.c (build_scoped_method_call): Accept a binfo for BASETYPE.
1135850397Sobrien	* init.c (build_delete): Pass one.
1135950397Sobrien	(build_partial_cleanup_for): Use build_scoped_method_call.
1136050397Sobrien	* decl.c (finish_function): Pass a binfo.
1136118334Speter
1136250397SobrienMon Feb 24 15:00:12 1997  Jason Merrill  <jason@yorick.cygnus.com>
1136318334Speter
1136450397Sobrien	* call.c (build_over_call): Only synthesize non-trivial copy ctors.
1136518334Speter
1136650397Sobrien	* typeck.c (build_c_cast): Lose other reference to flag.
1136718334Speter
1136850397Sobrien	* call.c (build_field_call): Don't look for [cd]tor_identifier.
1136950397Sobrien	* decl2.c (delete_sanity): Remove meaningless use of
1137050397Sobrien	LOOKUP_HAS_IN_CHARGE.
1137150397Sobrien	* decl.c (finish_function): Use build_scoped_method_call instead
1137250397Sobrien	of build_delete for running vbase dtors.
1137350397Sobrien	* init.c (build_delete): Call overload resolution code instead of
1137450397Sobrien	duplicating it badly.
1137518334Speter
1137650397SobrienThu Feb 20 15:12:15 1997  Jason Merrill  <jason@yorick.cygnus.com>
1137718334Speter
1137850397Sobrien	* call.c (build_over_call): Call mark_used before trying to elide
1137950397Sobrien	the call.
1138018334Speter
1138150397Sobrien	* decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL.
1138218334Speter
1138350397SobrienWed Feb 19 11:18:53 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1138418334Speter
1138550397Sobrien	* typeck.c (build_modify_expr): Always pedwarn for a cast to
1138650397Sobrien	non-reference used as an lvalue.
1138718334Speter
1138850397SobrienWed Feb 19 10:35:37 1997  Jason Merrill  <jason@yorick.cygnus.com>
1138918334Speter
1139050397Sobrien	* cvt.c (cp_convert_to_pointer): Convert from 0 to a pmf properly.
1139118334Speter
1139250397SobrienTue Feb 18 15:40:57 1997  Jason Merrill  <jason@yorick.cygnus.com>
1139318334Speter
1139450397Sobrien	* parse.y (handler): Fix template typo.
1139518334Speter
1139650397SobrienSun Feb 16 02:12:28 1997  Jason Merrill  <jason@yorick.cygnus.com>
1139718334Speter
1139850397Sobrien	* error.c (lang_decl_name): New fn.
1139950397Sobrien	* tree.c (lang_printable_name): Use it.
1140018334Speter
1140150397SobrienFri Feb 14 16:57:05 1997  Mike Stump  <mrs@cygnus.com>
1140218334Speter
1140350397Sobrien	* g++spec.c: Include config.h so that we can catch bzero #defines
1140450397Sobrien	from the config file.
1140518334Speter
1140650397SobrienTue Feb 11 13:50:48 1997  Mike Stump  <mrs@cygnus.com>
1140718334Speter
1140850397Sobrien	* new1.cc: Include a declaration for malloc, to avoid warning, and
1140950397Sobrien	avoid lossing on systems that require one (ones that define malloc
1141050397Sobrien	in xm.h).
1141118334Speter
1141252284SobrienMon Feb 10 22:51:13 1997  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
1141318334Speter
1141450397Sobrien	* decl2.c (max_tinst_depth): New variable.
1141550397Sobrien	(lang_decode_option): Parse "-ftemplate-depth-NN" command line
1141650397Sobrien	option.
1141750397Sobrien	* pt.c (max_tinst_depth): Variable moved.
1141850397Sobrien	* lang-options.h: Declare "-ftemplate-depth-NN" command line option
1141950397Sobrien	as legal.
1142018334Speter
1142150397SobrienFri Feb  7 15:43:34 1997  Jason Merrill  <jason@yorick.cygnus.com>
1142218334Speter
1142350397Sobrien	* decl.c (xref_basetypes): Allow a base class that depends on
1142450397Sobrien	template parms to be incomplete.
1142518334Speter
1142650397Sobrien	* decl2.c (build_expr_from_tree): Support typeid(type).
1142750397Sobrien	* rtti.c (get_typeid): Support templates.
1142850397Sobrien	(expand_si_desc, expand_class_desc): Fix string length.
1142950397Sobrien	(expand_ptr_desc, expand_attr_desc, expand_generic_desc): Likewise.
1143018334Speter
1143150397SobrienTue Feb  4 11:28:24 1997  Jason Merrill  <jason@yorick.cygnus.com>
1143218334Speter
1143350397Sobrien	* pt.c (unify, case TEMPLATE_CONST_PARM): Use cp_tree_equal.
1143418334Speter
1143550397Sobrien	* pt.c (tsubst): Put it back for -fno-ansi-overloading.
1143618334Speter
1143750397SobrienMon Feb  3 18:41:12 1997  Jason Merrill  <jason@yorick.cygnus.com>
1143818334Speter
1143950397Sobrien	* pt.c (tsubst, case FUNCTION_DECL): Lose obsolete code that
1144050397Sobrien	smashes together template and non-template decls of the same
1144150397Sobrien	signature.
1144218334Speter
1144350397SobrienThu Jan 30 19:18:00 1997  Jason Merrill  <jason@yorick.cygnus.com>
1144418334Speter
1144550397Sobrien	* pt.c (tsubst): Don't recurse for the type of a TYPENAME_TYPE.
1144618334Speter
1144750397SobrienWed Jan 29 11:40:35 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1144818334Speter
1144950397Sobrien	* decl.c (duplicate_decls): Next route, pedwarn about different
1145050397Sobrien	exceptions if -pedantic *or* olddecl !DECL_IN_SYSTEM_HEADER.
1145118334Speter
1145250397SobrienTue Jan 28 20:43:29 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1145318334Speter
1145450397Sobrien	* cp-tree.h (HAS_DEFAULT_IMPLEMENTATION): Delete macro.
1145550397Sobrien	(struct lang_type): Delete has_default_implementation member.
1145650397Sobrien	Increase dummy to 21.
1145750397Sobrien	* decl.c (start_method): Delete usage.
1145818334Speter
1145950397Sobrien	* cp-tree.h (build_call, null_ptr_cst_p, in_function_p,
1146050397Sobrien	store_after_parms, start_decl_1, auto_function): Add decls.
1146150397Sobrien	(get_arglist_len_in_bytes, declare_implicit_exception,
1146250397Sobrien	have_exceptions_p, make_type_decl, typedecl_for_tag,
1146350397Sobrien	store_in_parms, pop_implicit_try_blocks, push_exception_cleanup,
1146450397Sobrien	build_component_type_expr, cplus_exception_name,
1146550397Sobrien	{make,clear}_anon_parm_name, dont_see_typename): Removed decls.
1146650397Sobrien	* call.c (build_this): Make static.
1146750397Sobrien	(is_complete): Likewise.
1146850397Sobrien	(implicit_conversion): Likewise.
1146950397Sobrien	(reference_binding): Likewise.
1147050397Sobrien	(standard_conversion): Likewise.
1147150397Sobrien	(strip_top_quals): Likewise.
1147250397Sobrien	(non_reference): Likewise.
1147350397Sobrien	(build_conv): Likewise.
1147450397Sobrien	(user_harshness): Likewise.
1147550397Sobrien	(rank_for_ideal): Likewise.
1147650397Sobrien	* decl.c (start_decl_1): Delete forward decl.
1147750397Sobrien	(push_decl_level): Make static.
1147850397Sobrien	(resume_binding_level): Make static.
1147950397Sobrien	(namespace_bindings_p): Make static.
1148050397Sobrien	(declare_namespace_level): Make static.
1148150397Sobrien	(lookup_name_real): Make static.
1148250397Sobrien	(duplicate_decls): Make static.  Take register off NEWDECL and
1148350397Sobrien	OLDDECL parm decls.
1148450397Sobrien	* decl2.c (get_sentry): Make static.
1148550397Sobrien	(temp_name_p): Delete fn.
1148650397Sobrien	* except.c (auto_function): Delete decl.
1148750397Sobrien	* lex.c (handle_{cp,sysv}_pragma): Make static.
1148850397Sobrien	(handle_sysv_pragma) [HANDLE_SYSV_PRAGMA]: Add forward decl.
1148950397Sobrien	* method.c (do_build_{copy_constructor,assign_ref}): Make static.
1149050397Sobrien	* pt.c (tsubst_expr_values): Make static.
1149150397Sobrien	* rtti.c (combine_strings): Delete decl.
1149218334Speter
1149350397SobrienTue Jan 28 16:40:40 1997  Jason Merrill  <jason@yorick.cygnus.com>
1149418334Speter
1149550397Sobrien	* pt.c (push_template_decl): Handle getting a typedef.
1149618334Speter
1149750397Sobrien	* call.c (build_new_function_call): Complain about void arg.
1149818334Speter
1149950397SobrienTue Jan 28 15:25:09 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1150018334Speter
1150150397Sobrien	* decl.c (duplicate_decls): Give pedwarn of different exceptions
1150250397Sobrien	if -pedantic, instead of olddecl !DECL_IN_SYSTEM_HEADER.
1150318334Speter
1150450397SobrienMon Jan 27 19:21:29 1997  Mike Stump  <mrs@cygnus.com>
1150518334Speter
1150650397Sobrien	* except.c (expand_throw): Don't expand the cleanup tree here,
1150750397Sobrien	since we are not going to write the rtl out.  Fixes problem with
1150850397Sobrien	-g -O on SPARC.
1150918334Speter
1151050397SobrienMon Jan 27 16:24:35 1997  Sean McNeil  <sean@mcneil.com>
1151118334Speter
1151250397Sobrien	* Make-lang.in: Add $(exeext) as necessary.
1151318334Speter
1151450397SobrienMon Jan 27 13:20:39 1997  Mike Stump  <mrs@cygnus.com>
1151518334Speter
1151650397Sobrien	* parse.y (handler_seq): Must have at least one catch clause.
1151718334Speter
1151850397SobrienSat Jan 25 12:00:05 1997  Jason Merrill  <jason@yorick.cygnus.com>
1151918334Speter
1152050397Sobrien	* call.c (add_builtin_candidate): Restore ?: hack.
1152118334Speter
1152250397Sobrien	* decl.c (grok_op_properties): More warnings.
1152318334Speter
1152450397SobrienSat Jan 25 08:50:03 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1152518334Speter
1152650397Sobrien	* decl.c (duplicate_decls): On second thought, do it as a pedwarn
1152750397Sobrien	still but only if !DECL_IN_SYSTEM_HEADER (olddecl).
1152818334Speter
1152950397Sobrien	* decl.c (duplicate_decls): Scale back to a warning, and only do
1153050397Sobrien	'em if -pedantic.
1153118334Speter
1153250397SobrienFri Jan 24 17:52:54 1997  Mike Stump  <mrs@cygnus.com>
1153318334Speter
1153450397Sobrien	* decl.c (duplicate_decls): pedwarn mismatched exception
1153550397Sobrien	specifications.
1153618334Speter
1153750397SobrienThu Jan 23 18:18:54 1997  Mike Stump  <mrs@cygnus.com>
1153818334Speter
1153950397Sobrien	* call.c (build_new_method_call): Don't display the invisible
1154050397Sobrien	argument for controlling virtual bases.
1154118334Speter
1154250397SobrienThu Jan 23 16:48:10 1997  Mike Stump  <mrs@cygnus.com>
1154318334Speter
1154450397Sobrien	* new: Add nothrow new and delete, bad_alloc and throw specifications
1154550397Sobrien	for delete.
1154650397Sobrien	* decl.c (init_decl_processing): Add throw specification for delete.
1154750397Sobrien	* new.cc (nothrow): Define.
1154850397Sobrien	* lex.c (real_yylex): Removing warning that throw and friends are
1154950397Sobrien	keywords.
1155050397Sobrien	* new1.cc (operator new (size_t sz, const nothrow_t&)): Define.
1155150397Sobrien	* new2.cc (operator new[] (size_t sz, const nothrow_t&): Define.
1155250397Sobrien	* Make-lang.in: Add new{1,2}.{cc,o}.
1155318334Speter
1155450397SobrienThu Jan 23 16:39:06 1997  Jason Merrill  <jason@yorick.cygnus.com>
1155518334Speter
1155650397Sobrien	* lex.c (cons_up_default_function): Fix return type of synth op=.
1155718334Speter
1155850397Sobrien	* init.c (emit_base_init): Add warnings for uninitialized members
1155950397Sobrien	and bases.
1156018334Speter
1156150397Sobrien	* decl.c (xref_basetypes): Add warning for non-polymorphic type
1156250397Sobrien	with destructor used as base type.
1156318334Speter
1156450397Sobrien	* decl.c (grok_op_properties): Add warning for op= returning void.
1156550397Sobrien	* typeck.c (c_expand_return): Add warning for op= returning anything
1156650397Sobrien	other than *this.
1156718334Speter
1156850397Sobrien	* class.c (finish_struct_1): Add warning for class with pointers
1156950397Sobrien	but not copy ctor or copy op=.
1157018334Speter
1157150397Sobrien	* cp-tree.h (TI_PENDING_TEMPLATE_FLAG): New macro.
1157250397Sobrien	* pt.c (add_pending_template): Use it instead of LANG_FLAG_0.
1157350397Sobrien	(instantiate_template): If -fexternal-templates, add this
1157450397Sobrien	instantiation to pending_templates.
1157518334Speter
1157650397Sobrien	* decl2.c (copy_assignment_arg_p): Disable old hack to support
1157750397Sobrien	Booch components.
1157818334Speter
1157950397SobrienTue Jan 21 18:32:04 1997  Mike Stump  <mrs@cygnus.com>
1158018334Speter
1158152284Sobrien	* cvt.c (cp_convert): pedwarn enum to pointer conversions.
1158218334Speter
1158350397SobrienMon Jan 20 17:59:51 1997  Jason Merrill  <jason@yorick.cygnus.com>
1158418334Speter
1158550397Sobrien	* call.c (standard_conversion): Handle getting references.  Tack
1158650397Sobrien	on RVALUE_CONV here.  Do it for non-class types, too.
1158750397Sobrien	(reference_binding): Pass references to standard_conversion.
1158850397Sobrien	(implicit_conversion): Likewise.
1158950397Sobrien	(add_builtin_candidate): Disable one ?: kludge.
1159050397Sobrien	(convert_like): Handle RVALUE_CONVs for non-class types.
1159150397Sobrien	(joust): Disable the other ?: kludge.
1159218334Speter
1159350397SobrienMon Jan 20 14:53:13 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1159418334Speter
1159550397Sobrien	* decl.c (init_decl_processing): Add code to build up common
1159650397Sobrien	function types beforehand, to avoid creation then removal of
1159750397Sobrien	things already in the hash table.
1159818334Speter
1159950397SobrienMon Jan 20 14:43:49 1997  Jason Merrill  <jason@yorick.cygnus.com>
1160018334Speter
1160150397Sobrien	* decl.c (finish_function): Also zero out DECL_INCOMING_RTL for
1160250397Sobrien	the arguments.
1160318334Speter
1160450397Sobrien	* error.c (dump_expr, TEMPLATE_CONST_PARM): Don't require
1160550397Sobrien	current_template_parms.
1160618334Speter
1160750397SobrienFri Jan 17 10:25:42 1997  Jason Merrill  <jason@yorick.cygnus.com>
1160818334Speter
1160950397Sobrien	* search.c (lookup_field): Don't return a function, check want_type.
1161018334Speter
1161150397SobrienThu Jan 16 18:14:35 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1161218334Speter
1161350397Sobrien	* init.c (build_new): Make sure PLACEMENT has a type.
1161418334Speter
1161550397SobrienThu Jan 16 17:40:28 1997  Jason Merrill  <jason@yorick.cygnus.com>
1161618334Speter
1161750397Sobrien	* init.c (build_new): Support new (nothrow).
1161818334Speter
1161950397SobrienWed Jan 15 12:38:14 1997  Jason Merrill  <jason@yorick.cygnus.com>
1162018334Speter
1162150397Sobrien	* pt.c (instantiate_decl): Also do push_to_top_level before setting
1162250397Sobrien	up DECL_INITIAL.
1162318334Speter
1162450397Sobrien	* cp-tree.h (PARM_DEFAULT_FROM_TEMPLATE): New macro.
1162550397Sobrien	* pt.c (tsubst): Defer instantiation of default args.
1162650397Sobrien	* call.c (build_over_call): Until here.
1162718334Speter
1162850397SobrienWed Jan 15 10:08:10 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1162918334Speter
1163050397Sobrien	* search.c (lookup_field): Make sure we have an
1163150397Sobrien	IDENTIFIER_CLASS_VALUE before we try to return it.
1163218334Speter
1163350397SobrienThu Jan  9 07:19:01 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1163418334Speter
1163550397Sobrien	* call.c (build_method_call): Delete unused var PARM.
1163650397Sobrien	(build_overload_call_real): Likewise.
1163750397Sobrien	(build_object_call): Delete unused var P.
1163850397Sobrien	(build_new_op): Likewise.
1163950397Sobrien	* decl.c (builtin_type_tdescs_{arr, len, max}): #if 0 out static
1164050397Sobrien	var definitions, which are never used.
1164150397Sobrien	(shadow_tag): Delete unused var FN.
1164250397Sobrien	* expr.c (cplus_expand_expr): Delete unused var ORIGINAL_TARGET.
1164350397Sobrien	* init.c (build_new): Delete unused var ALLOC_TEMP.
1164450397Sobrien	* method.c (hack_identifier): Delete unused var CONTEXT.
1164550397Sobrien	(do_build_copy_constructor): Delete unused var NAME.
1164650397Sobrien	(synthesize_method): Delete unused var BASE.
1164750397Sobrien	* pt.c (lookup_template_class): Delete unused var CODE_TYPE_NODE.
1164850397Sobrien	* rtti.c (build_headof): Delete unused var VPTR.
1164950397Sobrien	(get_typeid): Delete unused var T.
1165050397Sobrien	* typeck.c (build_conditional_expr): Delete unused vars ORIG_OP1
1165150397Sobrien	and ORIG_OP2.
1165250397Sobrien	(build_ptrmemfunc): Delete unused vars U and NINDEX.
1165350397Sobrien	* typeck2.c (build_functional_cast): Delete unused var BINFO.
1165418334Speter
1165550397SobrienWed Jan  8 13:09:54 1997  Jason Merrill  <jason@yorick.cygnus.com>
1165618334Speter
1165750397Sobrien	* search.c (lookup_field): Use IDENTIFIER_CLASS_VALUE to look up
1165850397Sobrien	things in a type being defined.
1165950397Sobrien	* decl.c (finish_enum): Reverse the values so that they are in
1166050397Sobrien	the correct order.
1166118334Speter
1166250397Sobrien	* pt.c (instantiate_class_template): Don't initialize
1166350397Sobrien	BINFO_BASETYPES until the vector is filled out.
1166450397Sobrien	(unify): Don't abort on conflicting bindings, just fail.
1166550397Sobrien	(instantiate_decl): Do push_tinst_level before any tsubsting.
1166618334Speter
1166750397Sobrien	* method.c (build_overload_value): Handle getting a
1166850397Sobrien	TEMPLATE_CONST_PARM for a pointer.
1166918334Speter
1167050397SobrienTue Jan  7 14:00:58 1997  Jason Merrill  <jason@yorick.cygnus.com>
1167118334Speter
1167250397Sobrien	* init.c (expand_member_init): Don't give 'not a base' error for
1167350397Sobrien	templates.
1167418334Speter
1167550397Sobrien	* pt.c (instantiate_decl): Call import_export_decl later.
1167618334Speter
1167750397Sobrien	* pt.c (instantiate_class_template): Return a value.
1167818334Speter
1167950397Sobrien	* parse.y (extension): New rule for __extension__.
1168050397Sobrien	(extdef, unary_expr, decl, component_decl): Use it.
1168118334Speter
1168250397SobrienTue Jan  7 09:20:28 1997  Mike Stump  <mrs@cygnus.com>
1168318334Speter
1168450397Sobrien	* class.c (base_binfo): Remove unused base_has_virtual member.
1168550397Sobrien	(finish_base_struct): Likewise.
1168650397Sobrien	(finish_struct_1): Likewise.
1168718334Speter
1168850397SobrienTue Dec 31 20:25:50 1996  Mike Stump  <mrs@cygnus.com>
1168918334Speter
1169050397Sobrien	* search.c (expand_upcast_fixups): Fix bogus code generation
1169150397Sobrien	problem where the generated code uses the wrong index into the
1169250397Sobrien	runtime built vtable on the stack.  Old code could clobber random
1169350397Sobrien	stack values.
1169418334Speter
1169550397SobrienTue Dec 31 15:16:56 1996  Mike Stump  <mrs@cygnus.com>
1169618334Speter
1169750397Sobrien	* init.c (perform_member_init): Make sure the partial EH cleanups
1169850397Sobrien	live on the function_obstack.
1169918334Speter
1170050397SobrienFri Dec 27 10:31:40 1996  Paul Eggert  <eggert@twinsun.com>
1170118334Speter
1170250397Sobrien	* Make-lang.in (g++spec.o): Don't use $< with an explicit target;
1170350397Sobrien	this isn't portable to some versions of `make' (e.g. Solaris 2.5.1).
1170418334Speter
1170552284SobrienTue Dec 24 10:24:03 1996  Jeffrey A Law  <law@cygnus.com>
1170618334Speter
1170750397Sobrien	* decl.c (grokvardecl): Avoid ANSI style initialization.
1170818334Speter
1170950397SobrienSun Dec 22 04:22:06 1996  Jason Merrill  <jason@yorick.cygnus.com>
1171018334Speter
1171150397Sobrien	* pt.c (tsubst): Tweak arg types for a FUNCTION_TYPE.
1171218334Speter
1171350397SobrienFri Dec 20 17:09:25 1996  Jason Merrill  <jason@yorick.cygnus.com>
1171418334Speter
1171550397Sobrien	* pt.c (instantiate_class_template): Call grok_{ctor,op}_properties.
1171618334Speter
1171750397SobrienFri Dec 20 12:17:12 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1171818334Speter
1171950397Sobrien	* g++spec.c (lang_specific_driver): Put missing hyphen in front of
1172050397Sobrien	arguments we compare against.  Start the count of I at 1, not 0,
1172150397Sobrien	since argv[0] is still the command.
1172218334Speter
1172350397SobrienThu Dec 19 11:53:57 1996  Stan Shebs  <shebs@andros.cygnus.com>
1172418334Speter
1172550397Sobrien	* lang-specs.h: Accept .cp as an C++ extension.
1172618334Speter
1172750397SobrienMon Dec 16 22:43:31 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1172818334Speter
1172950397Sobrien	* cp-tree.h (ptr_reasonably_similar): Add decl.
1173018334Speter
1173150397SobrienThu Dec 12 15:00:35 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1173218334Speter
1173350397Sobrien	* decl.c (grokvardecl): Change SPECBITS parm to be the SPECBITS_IN
1173450397Sobrien	pointer.  New local SPECBITS with the parm's value.
1173550397Sobrien	(grokdeclarator): Pass &specbits down.
1173618334Speter
1173750397Sobrien	* parse.y (expr_no_commas): Make sure $$ is not an error_mark_node
1173850397Sobrien	before we try to do C_SET_EXP_ORIGINAL_CODE on it.
1173918334Speter
1174050397Sobrien	* search.c (envelope_add_decl): Check that the CLASSTYPE_CID of
1174150397Sobrien	CONTEXT is not 0 before we try to use TYPE_DERIVES_FROM.
1174218334Speter
1174350397Sobrien	* decl.c (cplus_expand_expr_stmt): Only expand the expr if EXP is
1174450397Sobrien	not an error_mark_node.
1174518334Speter
1174650397SobrienSat Dec  7 17:20:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
1174718334Speter
1174850397Sobrien	* cp-tree.h (TYPE_MAIN_DECL): Use TYPE_STUB_DECL.
1174950397Sobrien	* *.c: Use TYPE_MAIN_DECL instead of TYPE_NAME where appropriate.
1175052284Sobrien
1175150397SobrienFri Dec  6 14:40:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
1175218334Speter
1175350397Sobrien	* decl.c (grokdeclarator): When giving an anonymous struct a name,
1175450397Sobrien	replace TYPE_NAME instead of TYPE_IDENTIFIER (so TYPE_STUB_DECL is
1175550397Sobrien	not affected).
1175618334Speter
1175750397Sobrien	* typeck2.c (build_m_component_ref): If component is a pointer
1175850397Sobrien	to data member, resolve the OFFSET_REF now.
1175918334Speter
1176050397Sobrien	* call.c (convert_like): Don't go into infinite recursion.
1176118334Speter
1176250397Sobrien	* pt.c (coerce_template_parms): Use tsubst_expr for non-type args.
1176318334Speter
1176450397Sobrien	* class.c (finish_struct_1): Set DECL_ARTIFICIAL on the vptr.
1176550397Sobrien	* tree.c (layout_basetypes): And on the vbase ptr.
1176618334Speter
1176750397SobrienThu Dec  5 02:11:28 1996  Jason Merrill  <jason@yorick.cygnus.com>
1176818334Speter
1176950397Sobrien	* decl.c (BOOL_TYPE_SIZE): Define in terms of POINTER_SIZE or
1177050397Sobrien	CHAR_TYPE_SIZE so bool is always the same size as another type.
1177118334Speter
1177250397Sobrien	* decl.c (pushtag): Set DECL_IGNORED_P for DWARF, too.
1177318334Speter
1177450397SobrienTue Dec  3 23:18:37 1996  Jason Merrill  <jason@yorick.cygnus.com>
1177518334Speter
1177650397Sobrien	* decl2.c (grok_x_components): Remove synthesized methods from
1177750397Sobrien	TYPE_METHODS of an anonymous union, complain about member
1177850397Sobrien	functions.
1177950397Sobrien	* decl.c (shadow_tag): Wipe out memory of synthesized methods in
1178050397Sobrien	anonymous unions.
1178150397Sobrien	(finish_function): Just clear the DECL_RTL of our arguments.
1178250397Sobrien
1178350397SobrienFri Nov 29 21:54:17 1996  Jason Merrill  <jason@yorick.cygnus.com>
1178450397Sobrien
1178550397Sobrien	* decl2.c (finish_file): Emit DWARF debugging info for static data
1178618334Speter	members.
1178718334Speter
1178850397Sobrien	* pt.c (tsubst): If t is a stub decl, return the stub decl for type.
1178918334Speter
1179050397SobrienWed Nov 27 14:47:15 1996  Bob Manson  <manson@charmed.cygnus.com>
1179118334Speter
1179250397Sobrien	* typeck.c (build_component_ref): Don't die if COMPONENT isn't a
1179350397Sobrien	IDENTIFIER_NODE.
1179418334Speter
1179550397SobrienWed Nov 27 16:05:19 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
1179618334Speter
1179750397Sobrien	* Make-lang.in (g++-cross$(exeext)): Fix typo.
1179818334Speter
1179950397SobrienWed Nov 27 08:14:00 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1180018334Speter
1180150397Sobrien	Make the g++ driver now be a standalone program, rather than one
1180250397Sobrien	that tries to run the gcc driver after munging up the options.
1180350397Sobrien	* Make-lang.in (g++.c, g++spec.o): New rules.
1180450397Sobrien	(g++.o): New rule, based on gcc.o with -DLANG_SPECIFIC_DRIVER
1180550397Sobrien	added.
1180650397Sobrien	(g++$(exeext)): New rule, based on xgcc rule.
1180750397Sobrien	(g++-cross$(exeext)): Now just copies g++$(exeext) over.
1180850397Sobrien	* g++spec.c: New file.
1180950397Sobrien	* g++.c: Removed file.
1181018334Speter
1181150397SobrienTue Nov 26 19:01:09 1996  Mike Stump  <mrs@cygnus.com>
1181218334Speter
1181350397Sobrien	* cvt.c (build_up_reference): Arrange for any temporary values
1181450397Sobrien	that have been keep in registers until now to be put into memory.
1181518334Speter
1181650397SobrienMon Nov 25 15:16:41 1996  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1181718334Speter
1181850397Sobrien	* Make-lang.in (c++.stage[1234]): Depend upon stage[1-4]-start, so
1181950397Sobrien	that make -j3 bootstrap works better.
1182018334Speter
1182150397SobrienSun Nov 24 02:09:39 1996  Jason Merrill  <jason@yorick.cygnus.com>
1182218334Speter
1182350397Sobrien	* decl.c (pushtag): Do pushdecl for anon tags.
1182418334Speter
1182550397SobrienThu Nov 21 16:30:24 1996  Jason Merrill  <jason@yorick.cygnus.com>
1182618334Speter
1182750397Sobrien	* typeck.c (c_expand_return): Fix logic.
1182850397Sobrien	(unary_complex_lvalue): Avoid unused warning on address of INIT_EXPR.
1182918334Speter
1183050397SobrienWed Nov 20 18:47:31 1996  Bob Manson  <manson@charmed.cygnus.com>
1183118334Speter
1183250397Sobrien	* g++.c (main): Make sure arglist has a final NULL entry.  Add
1183350397Sobrien	PEXECUTE_LAST to the flags passed to pexecute, as otherwise
1183450397Sobrien	stdin/stdout of the invoked program are redirected to
1183550397Sobrien	nowheresville.
1183618334Speter
1183750397SobrienTue Nov 19 16:12:44 1996  Jason Merrill  <jason@yorick.cygnus.com>
1183818334Speter
1183950397Sobrien	* decl.c (implicitly_declare): Set DECL_ARTIFICIAL.
1184018334Speter
1184150397SobrienTue Nov 19 15:48:19 1996  Mike Stump  <mrs@cygnus.com>
1184218334Speter
1184350397Sobrien	* init.c (resolve_offset_ref): Handle obj.vfn better.
1184450397Sobrien	* typeck.c (build_component_ref): Set TREE_TYPE on result from
1184550397Sobrien	build_vfn_ref.
1184618334Speter
1184750397SobrienTue Nov 19 13:14:33 1996  Mike Stump  <mrs@cygnus.com>
1184818334Speter
1184950397Sobrien	* typeck.c (convert_for_assignment): Also handle anachronistic
1185050397Sobrien	implicit conversions from (::*)() to cv void*.
1185150397Sobrien	* cvt.c (cp_convert_to_pointer): Likewise.
1185218334Speter
1185350397SobrienMon Nov 18 17:05:26 1996  Jason Merrill  <jason@yorick.cygnus.com>
1185418334Speter
1185550397Sobrien	* lex.c (handle_cp_pragma): Fix bogus warning.
1185618334Speter
1185750397SobrienMon Nov 18 16:10:43 1996  Mike Stump  <mrs@cygnus.com>
1185818334Speter
1185950397Sobrien	* cvt.c (cp_convert_to_pointer): Avoid thinking a POINTER_TYPE
1186050397Sobrien	(METHOD_TYPE) is a TYPE_PTRMEMFUNC_P.
1186118334Speter
1186250397SobrienThu Nov 14 23:18:17 1996  Jason Merrill  <jason@yorick.cygnus.com>
1186318334Speter
1186450397Sobrien	* class.c (finish_struct_1): Support DWARF2_DEBUG.
1186550397Sobrien	* search.c (dfs_debug_mark): Likewise.
1186650397Sobrien	* decl2.c (finish_vtable_vardecl): Likewise.
1186750397Sobrien	* decl.c (pushtag, finish_enum): Likewise.
1186850397Sobrien	* lex.c (check_newline): Use debug_* instead of calling *out
1186950397Sobrien	functions directly.
1187018334Speter
1187150397SobrienThu Nov 14 15:21:46 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1187218334Speter
1187350397Sobrien	* Make-lang.in (cplib2.ready): Add else clause to avoid problems
1187450397Sobrien	on some picky hosts.
1187518334Speter
1187650397SobrienWed Nov 13 12:32:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
1187718334Speter
1187850397Sobrien	* class.c (finish_struct_1): A class has a non-trivial copy
1187950397Sobrien	constructor if it has virtual functions.
1188018334Speter
1188150397Sobrien	* cvt.c (cp_convert): Always call a constructor.
1188218334Speter
1188350397Sobrien	* call.c (reference_binding): Still tack on a REF_BIND
1188450397Sobrien	for bad conversions.
1188550397Sobrien	(build_user_type_conversion_1): Propagate ICS_BAD_FLAG.
1188618334Speter
1188750397Sobrien	* typeck.c (convert_arguments): Pass LOOKUP_ONLYCONVERTING.
1188850397Sobrien	(c_expand_return): Likewise.
1188950397Sobrien	* typeck2.c (digest_init): Likewise for { }.
1189050397Sobrien	* init.c (expand_aggr_init_1): Keep the CONSTRUCTOR handling.
1189150397Sobrien	* cvt.c (cp_convert): Handle failure better.
1189218334Speter
1189350397SobrienWed Nov 13 11:51:20 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1189418334Speter
1189550397Sobrien	* g++.c (main): Also set PEXECUTE_SEARCH, to make the invocation
1189652284Sobrien	of GCC be path-relative.
1189718334Speter
1189850397SobrienWed Nov 13 11:27:16 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
1189918334Speter
1190050397Sobrien	* Make-lang.in (g++-cross): G++-cross doesn't need version.o, but
1190150397Sobrien	it does need choose-temp.o and pexecute.o.
1190218334Speter
1190350397SobrienWed Nov 13 07:53:38 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1190418334Speter
1190550397Sobrien	* g++.c (error) [!HAVE_VPRINTF]: Put error back for the only time
1190650397Sobrien	that we still use it.
1190750397Sobrien	(P_tmpdir, R_OK, W_OK, X_OK) [__MSDOS__]: Delete unnecessary macros.
1190818334Speter
1190950397SobrienWed Nov 13 02:00:26 1996  Jason Merrill  <jason@yorick.cygnus.com>
1191018334Speter
1191152284Sobrien	* init.c (expand_default_init): Avoid calling constructors to
1191250397Sobrien	initialize reference temps.
1191318334Speter
1191450397Sobrien	* cvt.c (convert_to_reference): Fix.
1191518334Speter
1191650397SobrienTue Nov 12 19:10:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
1191718334Speter
1191850397Sobrien	* cvt.c (cp_convert): Simplify for flag_ansi_overloading.
1191950397Sobrien	(convert_to_reference): Likewise.
1192050397Sobrien	* typeck.c (convert_for_initialization): Likewise.
1192150397Sobrien	* init.c (expand_default_init): Likewise.
1192250397Sobrien	(expand_aggr_init_1): Likewise.
1192350397Sobrien	* cp-tree.h (CONV_NONCONVERTING): Lose.
1192450397Sobrien	* typeck.c (build_c_cast): Lose allow_nonconverting parm.
1192550397Sobrien	* *.c: Adjust.
1192650397Sobrien	* call.c (build_user_type_conversion_1): Assume LOOKUP_ONLYCONVERTING.
1192718334Speter
1192850397SobrienTue Nov 12 16:29:04 1996  Brendan Kehoe  <brendan@canuck.cygnus.com>
1192918334Speter
1193050397Sobrien	* pt.c (tsubst_expr): Reverse args to expand_start_catch_block.
1193118334Speter
1193250397SobrienTue Nov 12 15:26:17 1996  Jason Merrill  <jason@yorick.cygnus.com>
1193318334Speter
1193450397Sobrien	* init.c (expand_aggr_init_1): Don't crash on non-constructor
1193550397Sobrien	TARGET_EXPR.
1193618334Speter
1193750397SobrienTue Nov 12 14:00:50 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1193818334Speter
1193950397Sobrien	* g++.c: Include gansidecl.h.
1194050397Sobrien	(VPROTO, PVPROTO, VA_START): Delete.
1194150397Sobrien	(choose_temp_base_try, choose_temp_base, perror_exec,
1194250397Sobrien	run_dos) [__MSDOS__]: Delete fns.
1194350397Sobrien	(pfatal_with_name): Delete fn.
1194450397Sobrien	(temp_filename): Declare like in gcc.c.
1194550397Sobrien	(pexecute, pwait, choose_temp_base): Declare from gcc.c.
1194650397Sobrien	(error_count, signal_count): Define.
1194750397Sobrien	(error): Delete both definitions.
1194850397Sobrien	(PEXECUTE_{FIRST,LAST,SEARCH,VERBOSE}): Define from gcc.c.
1194950397Sobrien	(pfatal_pexecute): Add fn from gcc.c.
1195050397Sobrien	(main): Rename local VERBOSE var to VERBOSE_FLAG.  Rewrite the
1195150397Sobrien	code to use the pexecute stuff also used by gcc.c.
1195250397Sobrien	(MIN_FATAL_STATUS): Define.
1195350397Sobrien	* Make-lang.in (g++): Add dependency on and linking with
1195450397Sobrien	choose-temp.o and pexecute.o.
1195518334Speter
1195650397Sobrien	* cp-tree.h: Include gansidecl.h.
1195750397Sobrien	(STDIO_PROTO): Delete #undef/#define.
1195850397Sobrien	* cvt.c (NULL): Delete #undef/#define.
1195950397Sobrien	* expr.c (NULL): Likewise.
1196050397Sobrien	* init.c (NULL): Likewise.
1196150397Sobrien	* rtti.c (NULL): Likewise.
1196250397Sobrien	* xref.c (NULL): Likewise.
1196318334Speter
1196450397Sobrien	* cp-tree.h (build_user_type_conversion): Add prototype.
1196550397Sobrien	* call.c (build_user_type_conversion): Delete prototype.  Correct
1196650397Sobrien	decl of FLAGS arg to be an int.
1196750397Sobrien	* cvt.c (build_user_type_conversion): Likewise.
1196818334Speter
1196950397SobrienTue Nov 12 12:16:20 1996  Jason Merrill  <jason@yorick.cygnus.com>
1197018334Speter
1197150397Sobrien	* cp-tree.def: Add TRY_BLOCK and HANDLER.
1197250397Sobrien	* except.c (expand_start_catch_block): Support templates.
1197350397Sobrien	* parse.y (try_block, handler_seq): Likewise.
1197450397Sobrien	* pt.c (tsubst_expr): Support TRY_BLOCK and HANDLER.
1197518334Speter
1197650397SobrienMon Nov 11 13:57:31 1996  Jason Merrill  <jason@yorick.cygnus.com>
1197718334Speter
1197850397Sobrien	* pt.c (current_template_args): New fn.
1197950397Sobrien	(push_template_decl): Use it.
1198050397Sobrien	* decl.c (grokdeclarator): Use it.
1198118334Speter
1198250397Sobrien	* decl2.c (build_expr_from_tree): Dereference ref vars.
1198318334Speter
1198450397Sobrien	* decl.c (grokdeclarator): Generalize handling of TYPENAME_TYPEs in
1198550397Sobrien	the decl-specifier-seq.
1198618334Speter
1198750397Sobrien	* decl.c (grok_op_properties): Don't force the type of a conversion
1198850397Sobrien	op to be complete.  Don't warn about converting to the same type
1198950397Sobrien	for template instantiations.
1199018334Speter
1199150397Sobrien	* decl2.c (finish_file): Don't call instantiate_decl on synthesized
1199250397Sobrien	methods.
1199318334Speter
1199450397SobrienMon Nov 11 13:20:34 1996  Bob Manson  <manson@charmed.cygnus.com>
1199518334Speter
1199650397Sobrien	* typeck.c (get_delta_difference): Remove previous bogusness.
1199750397Sobrien	Don't give errors if force is set.
1199818334Speter
1199950397SobrienFri Nov  8 17:38:44 1996  Jason Merrill  <jason@yorick.cygnus.com>
1200018334Speter
1200150397Sobrien	* decl2.c (finish_file): Don't emit debug info.
1200250397Sobrien	* decl.c (pushdecl): Lose obsolete code.
1200350397Sobrien	(grokdeclarator): Still do the long long thing after complaining.
1200452284Sobrien	* search.c (note_debug_info_needed): Don't do anything if we're in a
1200550397Sobrien	template.
1200650397Sobrien	* method.c (synthesize_method): For non-local classes,
1200750397Sobrien	push_to_top_level first.
1200818334Speter
1200950397SobrienFri Nov  8 11:52:28 1996  Bob Manson  <manson@charmed.cygnus.com>
1201018334Speter
1201150397Sobrien	* typeck.c (get_delta_difference): Add no_error parameter.
1201250397Sobrien	(build_ptrmemfunc): Call get_delta_difference with no_error set;
1201350397Sobrien	we don't want error messages when converting unrelated
1201450397Sobrien	pointer-to-member functions.
1201518334Speter
1201650397SobrienThu Nov  7 11:16:24 1996  Mike Stump  <mrs@cygnus.com>
1201718334Speter
1201850397Sobrien	* error.c (dump_expr): Improve the wording on error messages that
1201950397Sobrien	involve pointer to member functions.
1202018334Speter
1202150397SobrienTue Nov  5 17:12:05 1996  Mike Stump  <mrs@cygnus.com>
1202218334Speter
1202350397Sobrien	* cvt.c (cp_convert_to_pointer): Move code for conversions from
1202450397Sobrien	(::*)() to void* or (*)() up a bit, so that we can convert from
1202550397Sobrien	METHOD_TYPEs as well.
1202618334Speter
1202750397SobrienTue Nov  5 14:54:17 1996  Jason Merrill  <jason@yorick.cygnus.com>
1202818334Speter
1202950397Sobrien	* rtti.c (get_tinfo_fn): Make sure 'type' is permanent.
1203050397Sobrien	There are no 'member' types.
1203150397Sobrien	(get_tinfo_fn_dynamic): Diagnose typeid of overloaded fn.
1203250397Sobrien	(build_x_typeid): Handle errors.
1203318334Speter
1203450397SobrienMon Nov  4 17:43:12 1996  Mike Stump  <mrs@cygnus.com>
1203518334Speter
1203650397Sobrien	* typeck.c (convert_for_assignment): Handle anachronistic implicit
1203750397Sobrien	conversions from (::*)() to void* or (*)().
1203850397Sobrien	* cvt.c (cp_convert_to_pointer): Likewise.
1203950397Sobrien	(cp_convert_to_pointer_force): Remove cp_convert_to_pointer
1204050397Sobrien	conversions from here.
1204150397Sobrien	* decl2.c (lang_decode_option): Add -W{no-,}pmf-conversions.
1204250397Sobrien	* lang-options.h: Likewise.
1204350397Sobrien	* decl2.c (warn_pmf2ptr): Define.
1204450397Sobrien	* cp-tree.h: Declare it.
1204550397Sobrien	* typeck2.c (digest_init): Allow pmfs down into
1204650397Sobrien	convert_for_initialization.
1204718334Speter
1204850397SobrienSun Nov  3 09:43:00 1996  Jason Merrill  <jason@yorick.cygnus.com>
1204918334Speter
1205050397Sobrien	* typeck.c (c_expand_return): Fix for returning overloaded fn.
1205118334Speter
1205250397SobrienFri Nov  1 08:53:17 1996  Jason Merrill  <jason@yorick.cygnus.com>
1205318334Speter
1205450397Sobrien	* cp-tree.h (DIRECT_BIND): Change from INDIRECT_BIND.
1205550397Sobrien	* decl.c (grok_reference_init): Pass DIRECT_BIND.
1205650397Sobrien	* cvt.c (build_up_reference): Don't mark 'this' addressable.  Use
1205750397Sobrien	DIRECT_BIND.
1205850397Sobrien	* call.c (convert_like): Don't pass INDIRECT_BIND.
1205950397Sobrien	* typeck.c (convert_arguments): Likewise.
1206050397Sobrien	* typeck.c (mark_addressable): Allow &this if flag_this_is_variable.
1206118334Speter
1206250397SobrienThu Oct 31 17:08:49 1996  Jason Merrill  <jason@yorick.cygnus.com>
1206318334Speter
1206450397Sobrien	* typeck.c (mark_addressable): Support TARGET_EXPR, unify with
1206550397Sobrien	similar code in build_up_ref.
1206650397Sobrien	* cvt.c (build_up_reference): Drastically simplify.
1206718334Speter
1206852284SobrienMon Oct 28 12:45:05 1996  Jeffrey A Law  <law@cygnus.com>
1206918334Speter
1207050397Sobrien	* typeck.c (signed_or_unsigned_type): If the given type already
1207150397Sobrien	as the correct signedness, then just return it.
1207218334Speter
1207350397Sobrien	* typeck.c ({un,}signed_type): If can't do anything, call
1207450397Sobrien	signed_or_unsigned_type.
1207518334Speter
1207650397SobrienThu Oct 24 14:21:59 1996  Bob Manson  <manson@charmed.cygnus.com>
1207718334Speter
1207850397Sobrien	* decl2.c (copy_assignment_arg_p): Don't buy the farm if
1207950397Sobrien	current_class_type is NULL.
1208018334Speter
1208150397SobrienWed Oct 23 00:43:10 1996  Jason Merrill  <jason@gerbil.cygnus.com>
1208218334Speter
1208350397Sobrien	* class.c (finish_struct_1): Avoid empty structs by adding a field
1208450397Sobrien	so layout_type gets the mode right.
1208518334Speter
1208650397Sobrien	* typeck.c (c_expand_return): Drastically simplify.
1208718334Speter
1208850397SobrienMon Oct 21 22:34:02 1996  Jason Merrill  <jason@yorick.cygnus.com>
1208918334Speter
1209050397Sobrien	* typeck.c (decay_conversion): Handle overloaded methods.
1209118334Speter
1209250397SobrienFri Oct 18 16:03:48 1996  Jason Merrill  <jason@yorick.cygnus.com>
1209318334Speter
1209450397Sobrien	* call.c (build_over_call): A TARGET_EXPR has side-effects.
1209518334Speter
1209650397SobrienThu Oct 17 11:31:59 1996  Mike Stump  <mrs@cygnus.com>
1209718334Speter
1209850397Sobrien	* cvt.c (convert_to_pointer_force): Add code to support pointer to
1209950397Sobrien	member function to pointer to function conversions.
1210050397Sobrien	* init.c (resolve_offset_ref): Add code to allow faked up objects,
1210150397Sobrien	ignoring them if they are not used, and giving an error, if they
1210250397Sobrien	are needed.
1210350397Sobrien	* typeck.c (get_member_function_from_ptrfunc): Fold e1 to improve
1210450397Sobrien	code, and so that we can give an error, if we needed an object,
1210550397Sobrien	and one was not provided.
1210650397Sobrien	(build_c_cast): Don't call default_conversion when we want to
1210750397Sobrien	convert to pointer to function from a METHOD_TYPE.
1210818334Speter
1210950397SobrienMon Oct 14 00:28:51 1996  Jason Merrill  <jason@yorick.cygnus.com>
1211018334Speter
1211150397Sobrien	* Make-lang.in (cplib2.ready): Fix logic.
1211218334Speter
1211350397Sobrien	* decl.c (shadow_tag): Only complain about non-artificial function
1211450397Sobrien	members.
1211518334Speter
1211650397Sobrien	* class.c (finish_struct_1): Add synthesized methods to TYPE_METHODS.
1211718334Speter
1211850397SobrienFri Oct 11 16:12:40 1996  Jason Merrill  <jason@yorick.cygnus.com>
1211918334Speter
1212050397Sobrien	* expr.c (cplus_expand_expr): Pre-tweak call_target like
1212150397Sobrien	expand_inline_function would.
1212218334Speter
1212350397Sobrien	* pt.c (mark_decl_instantiated): If extern_p, call
1212450397Sobrien	mark_inline_for_output.
1212518334Speter
1212650397SobrienThu Oct 10 15:58:08 1996  Mike Stump  <mrs@cygnus.com>
1212718334Speter
1212850397Sobrien	* typeck.c (unary_complex_lvalue): Add code to handle intermediate
1212950397Sobrien	pmd conversions.
1213018334Speter
1213150397Sobrien	* typeck.c (get_delta_difference): Fix wording, as we can be used
1213250397Sobrien	for pointer to data members.
1213318334Speter
1213450397SobrienTue Oct  8 12:43:51 1996  Bob Manson  <manson@charmed.cygnus.com>
1213518334Speter
1213650397Sobrien	* pt.c (tsubst): If the function decl isn't a member of this
1213750397Sobrien	template, return a copy of the decl (including copying the
1213850397Sobrien	lang-specific part) so we don't hose ourselves later.
1213918334Speter
1214050397SobrienThu Oct  3 16:24:28 1996  Jason Merrill  <jason@yorick.cygnus.com>
1214118334Speter
1214250397Sobrien	* class.c (finish_struct): Remove DWARF-specific tag handling.
1214350397Sobrien	* decl.c (pushtag): Likewise.
1214450397Sobrien	(finish_function): Always clear DECL_ARGUMENTS on function decls with
1214550397Sobrien	no saved RTX.
1214650397Sobrien	* decl2.c (finish_file): Emit DWARF debugging info for static data
1214750397Sobrien	members.
1214818334Speter
1214950397SobrienWed Oct  2 21:58:01 1996  Bob Manson  <manson@charmed.cygnus.com>
1215018334Speter
1215150397Sobrien	* decl.c (duplicate_decls): Make sure the old DECL_LANG_SPECIFIC
1215250397Sobrien	isn't the same as the new one before we whack it.
1215318334Speter
1215450397SobrienMon Sep 30 13:38:24 1996  Jason Merrill  <jason@yorick.cygnus.com>
1215518334Speter
1215650397Sobrien	* class.c, cp-tree.h, cvt.c, decl.c, decl2.c, gxx.gperf, hash.h,
1215750397Sobrien	lex.c, method.c, parse.y, typeck.c, typeck2.c: Remove
1215850397Sobrien	warn_traditional and warn_strict_prototypes; remove ancient
1215950397Sobrien	'overload' code; remove references to flag_traditional.
1216018334Speter
1216150397SobrienMon Sep 30 12:58:40 1996  Mike Stump  <mrs@cygnus.com>
1216218334Speter
1216350397Sobrien	* input.c (sub_getch): Handle 8-bit characters in string literals.
1216418334Speter
1216550397SobrienSun Sep 29 03:12:01 1996  Jason Merrill  <jason@yorick.cygnus.com>
1216618334Speter
1216750397Sobrien	* tree.c (mapcar): Handle CONSTRUCTORs.
1216850397Sobrien	(copy_to_permanent): Handle expression_obstack properly.
1216918334Speter
1217050397Sobrien	* Make-lang.in (cplib2.txt): Also depend on the headers.
1217118334Speter
1217250397Sobrien	* rtti.c (get_tinfo_var): Don't assume that POINTER_SIZE ==
1217350397Sobrien	INT_TYPE_SIZE.
1217450397Sobrien	(expand_class_desc): Use USItype for offset field.
1217550397Sobrien	* tinfo.h (struct __class_type_info): Likewise.
1217618334Speter
1217750397Sobrien	* method.c (build_overload_int): TYPE_PRECISION should be applied
1217850397Sobrien	to types.
1217918334Speter
1218050397SobrienSat Sep 28 14:44:50 1996  Jason Merrill  <jason@yorick.cygnus.com>
1218118334Speter
1218250397Sobrien	* call.c (build_new_op): A COND_EXPR involving void must be a
1218350397Sobrien	builtin.
1218418334Speter
1218550397SobrienFri Sep 27 16:40:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
1218618334Speter
1218750397Sobrien	* typeck.c (build_x_component_ref): New fn.
1218850397Sobrien	(build_object_ref): Use it.
1218950397Sobrien	* parse.y (primary): Use it.
1219050397Sobrien	* decl2.c (build_expr_from_tree): Use it.
1219150397Sobrien	* cp-tree.h: Declare it.
1219218334Speter
1219352284Sobrien	* decl.c (start_decl): Variable-sized arrays cannot be initialized.
1219450397Sobrien	* error.c (dump_type_suffix): Handle variable arrays.
1219518334Speter
1219650397SobrienFri Sep 27 13:14:05 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1219718334Speter
1219850397Sobrien	* Make-lang.in (exception.o): Put back compiling it with -fPIC.
1219918334Speter
1220050397SobrienFri Sep 27 03:00:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
1220118334Speter
1220250397Sobrien	* decl.c (lookup_name_real): Don't try to look up anything in a
1220350397Sobrien	TYPENAME_TYPE.
1220418334Speter
1220550397Sobrien	* tinfo2.cc (__throw_type_match_rtti): Oops.
1220618334Speter
1220750397SobrienThu Sep 26 22:11:05 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1220818334Speter
1220950397Sobrien	* Make-lang.in (exception.o): Use -fno-PIC for now.
1221018334Speter
1221150397SobrienThu Sep 26 10:59:00 1996  Jason Merrill  <jason@yorick.cygnus.com>
1221218334Speter
1221350397Sobrien	* rtti.c (build_dynamic_cast): Pass tinfo fns rather than
1221450397Sobrien	calling them.
1221550397Sobrien	(get_tinfo_fn_dynamic): Extracted from build_typeid.
1221650397Sobrien	* tinfo2.cc (__dynamic_cast): Adjust.
1221752284Sobrien
1221850397Sobrien	* rtti.c (build_typeid): Use resolves_to_fixed_type_p.
1221950397Sobrien	(build_x_typeid): Likewise.
1222018334Speter
1222150397Sobrien	* parse.y: Call build_x_typeid instead of build_typeid.
1222250397Sobrien	* cp-tree.def: Add TYPEID_EXPR.
1222350397Sobrien	* pt.c (tsubst_copy): Handle typeid.
1222450397Sobrien	* decl2.c (build_expr_from_tree): Likewise.
1222550397Sobrien	* rtti.c (build_x_typeid): Throw bad_typeid from here.
1222650397Sobrien	(build_typeid): Not here.
1222750397Sobrien	* cp-tree.h: Declare build_x_typeid.
1222818334Speter
1222950397SobrienWed Sep 25 17:26:16 1996  Jason Merrill  <jason@yorick.cygnus.com>
1223018334Speter
1223150397Sobrien	* call.c (convert_like): Pull out constant values.
1223218334Speter
1223350397Sobrien	* tree.c (mapcar): Use build_cplus_array_type, not build_array_type.
1223418334Speter
1223550397SobrienWed Sep 25 17:28:53 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
1223618334Speter
1223750397Sobrien	* decl.c (init_decl_processing): Create short int types before
1223850397Sobrien	creating size_t in case a machine description needs to use
1223950397Sobrien	unsigned short for size_t.
1224018334Speter
1224150397SobrienTue Sep 24 18:18:44 1996  Jason Merrill  <jason@yorick.cygnus.com>
1224218334Speter
1224350397Sobrien	* Make-lang.in (exception.o): Turn off pic.
1224418334Speter
1224550397Sobrien	* tinfo2.cc (__throw_type_match_rtti): Fix cv-variants of the same
1224650397Sobrien	type, multi-level ptr conversions.
1224718334Speter
1224850397Sobrien	* rtti.c (call_void_fn): Renamed and genericized from throw_bad_cast.
1224950397Sobrien	(throw_bad_cast): Use it.
1225050397Sobrien	(throw_bad_typeid): New fn.
1225150397Sobrien	(build_typeid): Throw bad_typeid as needed.
1225250397Sobrien	Use build_call.
1225350397Sobrien	(synthesize_tinfo_fn): Handle functions and arrays before checking
1225450397Sobrien	for cv-quals.
1225518334Speter
1225650397Sobrien	* Remove .h from standard C++ headers, add new.h, move into inc
1225750397Sobrien	subdirectory.
1225818334Speter
1225950397Sobrien	* exception*: Remove pointer from object, constructors.  Add
1226050397Sobrien	default exception::what that uses type_info::name.  Add
1226150397Sobrien	__throw_bad_typeid.
1226218334Speter
1226350397Sobrien	* init.c (build_new): Don't add a cookie to new (void *) T[2].
1226418334Speter
1226550397SobrienMon Sep 23 15:21:53 1996  Jason Merrill  <jason@yorick.cygnus.com>
1226618334Speter
1226750397Sobrien	* Make-lang.in: Building C++ code depends on cc1plus.
1226818334Speter
1226950397SobrienMon Sep 23 12:38:40 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1227018334Speter
1227150397Sobrien	* decl.c (struct saved_scope): Declare PROCESSING_TEMPLATE_DECL as
1227250397Sobrien	a HOST_WIDE_INT, not a tree.
1227318334Speter
1227450397SobrienMon Sep 23 12:36:02 1996  Jason Merrill  <jason@yorick.cygnus.com>
1227518334Speter
1227650397Sobrien	* exception.cc: Don't include <stdlib.h>.
1227718334Speter
1227850397Sobrien	* Make-lang.in (c++.clean): Remove cplib2.*.
1227918334Speter
1228050397SobrienMon Sep 23 09:42:19 1996  Doug Evans  <dje@canuck.cygnus.com>
1228118334Speter
1228250397Sobrien	* parse.y (component_decl_1, component_costructor_declarator case):
1228350397Sobrien	Pass attributes/prefix_attributes in tree list.
1228418334Speter
1228550397SobrienMon Sep 23 01:18:50 1996  Jason Merrill  <jason@yorick.cygnus.com>
1228618334Speter
1228750397Sobrien	* tinfo{,2}.cc: #include <stddef.h> instead of <stdlib.h>.
1228818334Speter
1228950397SobrienSun Sep 22 05:31:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
1229018334Speter
1229150397Sobrien	* lex.c (do_identifier): Don't do deferred lookup in a template
1229250397Sobrien	header.
1229318334Speter
1229450397Sobrien	* typeck2.c (store_init_value): Oops.
1229518334Speter
1229652284Sobrien	* new.{h,cc}, exception.{h,cc}, typeinfo.h, tinfo{2.cc,.cc,.h}:
1229750397Sobrien	New files for C++ lang-support library.
1229850397Sobrien	* Make-lang.in (CXX_EXTRA_HEADERS): Define.
1229950397Sobrien	(CXX_LIB2FUNCS): Define.
1230050397Sobrien	And rules for building the C++ lang-support code.
1230150397Sobrien	* config-lang.in (headers): Define.
1230250397Sobrien	(lib2funcs): Define.
1230318334Speter
1230450397SobrienSat Sep 21 19:17:28 1996  Jason Merrill  <jason@yorick.cygnus.com>
1230518334Speter
1230650397Sobrien	* decl2.c (build_expr_from_tree): If CONSTRUCTOR has a type, call
1230750397Sobrien	digest_init.
1230850397Sobrien	* pt.c (tsubst_copy): Compute type for CONSTRUCTOR.
1230950397Sobrien	* typeck2.c (store_init_value): Check for initializing pmf with { }
1231050397Sobrien	here.
1231150397Sobrien	(process_init_constructor): Not here.
1231218334Speter
1231350397SobrienThu Sep 19 16:41:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
1231418334Speter
1231550397Sobrien	* pt.c (begin_template_parm_list): Increment
1231650397Sobrien	processing_template_decl here.
1231750397Sobrien	(end_template_parm_list): Not here.
1231850397Sobrien	(process_template_parm): No need to add 1 to it now.
1231950397Sobrien	* *.c: Use processing_template_decl instead of current_template_parms
1232050397Sobrien	to check for being in a template.
1232118334Speter
1232250397Sobrien	* pt.c (uses_template_parms): Handle SCOPE_REF.  Fix CONSTRUCTOR.
1232350397Sobrien	(tsubst_copy): Handle CONSTRUCTOR.
1232450397Sobrien	(instantiate_decl): Set up context properly for variables.
1232550397Sobrien	* decl2.c (build_expr_from_tree): Handle CONSTRUCTOR.
1232650397Sobrien	* class.c (finish_struct): Reverse CLASSTYPE_TAGS.
1232718334Speter
1232850397SobrienWed Sep 18 13:30:20 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1232918334Speter
1233050397Sobrien	* lex.c (enum tree_node_kind) [GATHER_STATISTICS]: Put the enum back.
1233118334Speter
1233250397SobrienWed Sep 18 04:24:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
1233318334Speter
1233450397Sobrien	* method.c (make_thunk): Call comdat_linkage before setting the
1233550397Sobrien	TREE_CODE.
1233618334Speter
1233750397Sobrien	* decl2.c (comdat_linkage): Use make_decl_one_only.
1233850397Sobrien	(import_export_decl): Likewise.
1233950397Sobrien	* decl.c (init_decl_processing): Check supports_one_only instead of
1234050397Sobrien	SUPPORTS_WEAK.
1234118334Speter
1234250397SobrienSat Sep 14 08:34:41 1996  Jason Merrill  <jason@yorick.cygnus.com>
1234318334Speter
1234450397Sobrien	* decl2.c (grokfield): Tighten checking for access decls.
1234518334Speter
1234650397Sobrien	* decl.c (make_typename_type): Resolve references to
1234750397Sobrien	current_class_type.  Set CLASSTYPE_GOT_SEMICOLON.
1234850397Sobrien	(lookup_name_real): Types that depend on a template parameter get
1234950397Sobrien	an implicit 'typename' unless they're in the current scope.
1235050397Sobrien	(start_decl_1): We don't care about incomplete types that depend
1235150397Sobrien	on a template parm.
1235250397Sobrien	(grokdeclarator): Resolve 'typename's in the type specifier that
1235350397Sobrien	refer to members of the current scope.
1235418334Speter
1235550397Sobrien	* call.c (build_over_call): Remove 'inline called before
1235650397Sobrien	definition' diagnostic.
1235750397Sobrien	(build_method_call): Likewise.
1235850397Sobrien	* decl.c (duplicate_decls): Downgrade 'used before declared
1235950397Sobrien	inline' to a warning, only with -Winline.
1236018334Speter
1236150397SobrienFri Sep 13 17:31:40 1996  Stan Shebs  <shebs@andros.cygnus.com>
1236218334Speter
1236350397Sobrien	* mpw-make.sed: Fix include paths, add @DASH_C_FLAG@ to compile.
1236418334Speter
1236550397SobrienWed Sep 11 22:38:13 1996  Gerald Baumgartner  <gb@cs.purdue.edu>
1236618334Speter
1236750397Sobrien	* call.c (build_method_call): When calling a signature
1236850397Sobrien	default implementation, as in other cases, let instance_ptr simply
1236950397Sobrien	be instance.
1237018334Speter
1237150397SobrienWed Sep 11 22:14:44 1996  Mike Stump  <mrs@cygnus.com>
1237218334Speter
1237350397Sobrien	* parse.y (simple_stmt): Cleanup and use do_poplevel ().
1237418334Speter
1237550397SobrienWed Sep 11 22:10:48 1996  Mike Stump  <mrs@cygnus.com>
1237618334Speter
1237750397Sobrien	* except.c (expand_start_catch_block): Add a pushlevel so that -g
1237850397Sobrien	works on hppa and SPARC.
1237918334Speter
1238050397SobrienWed Sep 11 10:18:06 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1238118334Speter
1238250397Sobrien	* typeck.c (build_indirect_ref): Catch PTR being an error_mark_node.
1238318334Speter
1238450397SobrienMon Sep  9 19:51:14 1996  Gerald Baumgartner  <gb@cs.purdue.edu>
1238518334Speter
1238650397Sobrien	* call.c (build_over_call): Check first whether DECL_CONTEXT exists
1238750397Sobrien	before testing whether it's a signature.
1238818334Speter
1238950397SobrienSun Sep  8 16:06:57 1996  Gerald Baumgartner  <gb@cs.purdue.edu>
1239018334Speter
1239150397Sobrien	* call.c (build_new_method_call): Don't complain about signature
1239250397Sobrien	pointers and references not being an aggr type.
1239350397Sobrien	(build_this): If a signature pointer or reference was passed in,
1239450397Sobrien	just return it.
1239550397Sobrien	(build_new_method_call): If instance is a signature pointer, set
1239650397Sobrien	basetype to the signature type of instance.
1239750397Sobrien	* sig.c (build_signature_method_call): Deleted basetype and
1239850397Sobrien	instance parameters, they can be found as the DECL_CONTEXT of
1239950397Sobrien	function and as the first argument passed in.
1240050397Sobrien	* cp-tree.h: Changed declaration of build_signature_method_call.
1240150397Sobrien	* call.c (build_method_call): Deleted first two arguments in call
1240250397Sobrien	of build_signature_method_call.
1240350397Sobrien	(build_over_call): Added call to build_signature_method_call.
1240418334Speter
1240550397SobrienThu Sep  5 16:51:28 1996  Jason Merrill  <jason@yorick.cygnus.com>
1240618334Speter
1240750397Sobrien	* typeck.c (build_c_cast): Don't tack a non_lvalue_expr onto a
1240850397Sobrien	target_expr.
1240918334Speter
1241050397SobrienThu Sep  5 10:05:38 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1241118334Speter
1241250397Sobrien	* cvt.c (convert_to_reference): Use %#T, not %#D, for error.
1241318334Speter
1241450397SobrienWed Sep  4 17:16:09 1996  Bob Manson  <manson@charmed.cygnus.com>
1241518334Speter
1241650397Sobrien	* except.c (expand_start_try_stmts): Move to except.c in the backend.
1241750397Sobrien	(expand_end_try_stmts): Remove.
1241818334Speter
1241950397Sobrien	* init.c (perform_member_init): Use add_partial_entry () instead
1242050397Sobrien	of directly manipulating lists.
1242152284Sobrien	(emit_base_init): Likewise.
1242218334Speter
1242350397SobrienWed Sep  4 12:14:36 1996  Mike Stump  <mrs@cygnus.com>
1242418334Speter
1242550397Sobrien	* except.c (expand_exception_blocks): Always make sure USE and
1242650397Sobrien	CLOBBER insns that came at the end still do, the backend relies
1242750397Sobrien	upon this.
1242818334Speter
1242950397SobrienWed Sep  4 07:44:48 1996  Jason Merrill  <jason@yorick.cygnus.com>
1243018334Speter
1243150397Sobrien	* call.c (build_over_call): We can only use a TARGET_EXPR of the
1243250397Sobrien	right type.
1243318334Speter
1243450397SobrienTue Sep  3 19:26:05 1996  Jason Merrill  <jason@yorick.cygnus.com>
1243518334Speter
1243650397Sobrien	* cvt.c (convert_to_reference): Revert last change, don't complain
1243750397Sobrien	about temp without target decl.
1243818334Speter
1243950397SobrienTue Sep  3 10:22:56 1996  Mike Stump  <mrs@cygnus.com>
1244018334Speter
1244150397Sobrien	* decl.c (grokdeclarator): Don't core dump when void() is given.
1244218334Speter
1244350397SobrienTue Sep  3 02:38:56 1996  Jason Merrill  <jason@yorick.cygnus.com>
1244418334Speter
1244550397Sobrien	* decl.c (copy_args_p): Don't crash.
1244650397Sobrien
1244750397SobrienFri Aug 30 14:26:57 1996  Mike Stump  <mrs@cygnus.com>
1244850397Sobrien
1244950397Sobrien	* pt.c (tsubst): And support template args inside the exception
1245050397Sobrien	specification.
1245150397Sobrien
1245250397Sobrien	* pt.c (tsubst): Add support for exception specifications in
1245350397Sobrien	template functions.
1245450397Sobrien
1245550397SobrienFri Aug 30 10:01:55 1996  Mike Stump  <mrs@cygnus.com>
1245650397Sobrien
1245750397Sobrien	* cp-tree.def (DECL_STMT): Eliminate the throw spec field, only 3
1245850397Sobrien	fields now.
1245950397Sobrien	* cp-tree.h (start_decl): Eliminate the throw spec parameter.
1246050397Sobrien	(start_function): Likewise.
1246150397Sobrien	(start_method): Likewise.
1246250397Sobrien	(grokfield): Likewise.
1246350397Sobrien	(make_call_declarator): Add throw spec parameter.
1246450397Sobrien	(set_quals_and_spec): Add routine.
1246550397Sobrien	* lex.c (set_quals_and_spec): Likewise.
1246650397Sobrien	* decl.h (grokdeclarator): Eliminate the throw spec parameter.
1246750397Sobrien	* decl.c (shadow_tag): Eliminate the throw spec parameter to
1246850397Sobrien	grokdeclarator.
1246950397Sobrien	(groktypename): Likewise.
1247050397Sobrien	(start_decl): Eliminate the throw spec parameter.  Eliminate the
1247150397Sobrien	throw spec parameter to grokdeclarator.  Eliminate the throw spec
1247250397Sobrien	field in DECL_STMT.
1247350397Sobrien	(cp_finish_decl): Eliminate the throw spec field in DECL_STMT.
1247450397Sobrien	(grokfndecl): Remove useless set of raises.
1247550397Sobrien	(grokdeclarator): Eliminate the throw spec parameter.  Eliminate
1247650397Sobrien	the throw spec parameter to start_decl.  Pull the throw spec out
1247750397Sobrien	of the call declarator.
1247850397Sobrien	(grokparms): Eliminate the throw spec parameter to grokdeclarator.
1247950397Sobrien	(start_function): Eliminate the throw spec parameter.  Eliminate
1248050397Sobrien	the throw spec parameter to grokdeclarator.
1248150397Sobrien	(start_method): Likewise.
1248250397Sobrien	* decl2.c (grokfield): Likewise.
1248350397Sobrien	(grokbitfield): Eliminate the throw spec parameter to grokdeclarator.
1248450397Sobrien	(grokoptypename): Likewise.
1248550397Sobrien	(finish_file): Eliminate the throw spec parameter to
1248650397Sobrien	start_function.  Add throw spec to make_call_declarator.
1248750397Sobrien	* except.c (init_exception_processing): Add throw spec to
1248850397Sobrien	make_call_declarator.  Eliminate the throw spec parameter to
1248950397Sobrien	start_decl.
1249050397Sobrien	(expand_start_catch_block): Eliminate the throw spec parameter to
1249150397Sobrien	grokdeclarator.
1249250397Sobrien	(expand_builtin_throw): Add throw spec to make_call_declarator.
1249350397Sobrien	Eliminate the throw spec parameter to start_function.
1249450397Sobrien	(start_anon_func): Likewise.
1249550397Sobrien	* lex.c (make_call_declarator): Add throw spec parameter.
1249650397Sobrien	(set_quals_and_spec): New routine.
1249750397Sobrien	(cons_up_default_function): Add throw spec to make_call_declarator.
1249850397Sobrien	Eliminate the throw spec parameter to grokfield.
1249950397Sobrien	* method.c (synthesize_method): Eliminate the throw spec parameter
1250050397Sobrien	to start_function.
1250150397Sobrien	* pt.c (process_template_parm): Eliminate the throw spec parameter
1250250397Sobrien	to grokdeclarator.
1250350397Sobrien	(tsubst): Add throw spec to make_call_declarator.
1250450397Sobrien	(tsubst_expr): Eliminate the throw spec parameter to start_decl.
1250550397Sobrien	(do_function_instantiation): Eliminate the throw spec parameter to
1250650397Sobrien	grokdeclarator.  Eliminate the throw spec parameter to
1250750397Sobrien	start_function.
1250850397Sobrien	* rtti.c (synthesize_tinfo_fn): Eliminate the throw spec parameter
1250950397Sobrien	to start_function.
1251050397Sobrien	* parse.y (datadef): Remove non-winning optimization.
1251150397Sobrien	(decl): Likewise.
1251252284Sobrien	(fndef): Remove ambiguous error productions uncovered by grammar
1251350397Sobrien	fixing.
1251450397Sobrien	(constructor_declarator): Add exception_specification_opt here.
1251550397Sobrien	(component_constructor_declarator): Likewise.
1251650397Sobrien	(direct_after_type_declarator): Likewise.
1251750397Sobrien	(complex_direct_notype_declarator): Likewise.
1251850397Sobrien	(direct_abstract_declarator): Likewise.
1251950397Sobrien	(fn.def1): Remove exception_specification_opt.
1252050397Sobrien	(fn.def2): Likewise.
1252150397Sobrien	(condition): Likewise.
1252250397Sobrien	(initdcl0): Likewise.
1252350397Sobrien	(initdcl): Likewise.
1252450397Sobrien	(notype_initdcl0): Likewise.
1252550397Sobrien	(nomods_initdcl0): Likewise.
1252650397Sobrien	(component_decl_1): Likewise.
1252750397Sobrien	(component_declarator): Likewise.
1252850397Sobrien	(after_type_component_declarator0): Likewise.
1252950397Sobrien	(after_type_component_declarator): Likewise.
1253050397Sobrien	(notype_component_declarator): Likewise.
1253150397Sobrien
1253250397SobrienWed Aug 28 01:40:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
1253350397Sobrien
1253450397Sobrien	* call.c (build_over_call): Also use an INIT_EXPR when
1253550397Sobrien	initializing anything from an rvalue.
1253650397Sobrien
1253750397Sobrien	* call.c (build_over_call): Call stabilize_reference when building
1253850397Sobrien	an INIT_EXPR instead of calling the copy ctor.
1253950397Sobrien
1254050397Sobrien	* call.c (joust): Extend the previous change to all comparisons.
1254150397Sobrien
1254252284Sobrien	* decl2.c, method.c, lex.c: Use MAKE_DECL_ONE_ONLY and
1254350397Sobrien	NO_LINKAGE_HEURISTICS.
1254450397Sobrien
1254550397Sobrien	* decl2.c (finish_file): Emit any statics that weren't already.
1254650397Sobrien
1254750397Sobrien	* typeck.c (build_static_cast): Implement.
1254850397Sobrien	* tree.c (build_cplus_new): Handle getting a TARGET_EXPR.
1254950397Sobrien	* decl.c (grokparms): Use can_convert_arg instead of
1255050397Sobrien	implicit_conversion directly.
1255150397Sobrien	(copy_args_p): New fn.
1255250397Sobrien	* cvt.c (convert_to_reference): Don't complain about temp with
1255350397Sobrien	static_cast.
1255450397Sobrien	(build_up_reference): Handle TARGET_EXPRs.
1255550397Sobrien	* call.c (build_over_call): Elide unnecessary temps.
1255650397Sobrien	(can_convert*): Use new overloading code.
1255750397Sobrien
1255850397SobrienTue Aug 27 13:12:21 1996  Jason Merrill  <jason@yorick.cygnus.com>
1255950397Sobrien
1256050397Sobrien	* call.c: Move TYPE_PTR*_MACROS ...
1256150397Sobrien	* cp-tree.h: To here.
1256250397Sobrien	* typeck.c (build_reinterpret_cast): Implement.
1256350397Sobrien
1256450397Sobrien	* call.c (add_builtin_candidate): Use TYPE_PTROB_P instead of
1256550397Sobrien	ptr_complete_ob.
1256650397Sobrien	(joust): If we're comparing a function to a builtin and the worst
1256750397Sobrien	conversion for the builtin is worse than the worst conversion for the
1256850397Sobrien	function, take the function.
1256950397Sobrien
1257050397Sobrien	* typeck.c (build_const_cast): Implement.
1257150397Sobrien	(comp_ptr_ttypes_const): Like comp_ptr_ttypes, for const_cast.
1257250397Sobrien	(comp_ptr_ttypes_reinterpret): Like cpt, for reinterpret_cast.
1257350397Sobrien
1257450397SobrienTue Aug 27 13:14:58 1996  Bob Manson  <manson@charmed.cygnus.com>
1257550397Sobrien
1257650397Sobrien	* rtti.c (build_dynamic_cast): Don't try to dereference exprtype
1257752284Sobrien	too early.  Make sure we explode if exprtype turns out to be a
1257850397Sobrien	NULL_TREE when it shouldn't be.
1257950397Sobrien
1258050397SobrienTue Aug 27 10:56:21 1996  Mike Stump  <mrs@cygnus.com>
1258150397Sobrien
1258250397Sobrien	* cp-tree.h: New routine make_call_declarator.
1258350397Sobrien	* lex.c (make_call_declarator): Define it.
1258450397Sobrien	* except.c (init_exception_processing): Use it.
1258550397Sobrien	(expand_builtin_throw): Likewise.
1258650397Sobrien	(start_anon_func): Likewise.
1258750397Sobrien	* decl2.c (finish_file): Likewise.
1258850397Sobrien	* lex.c (cons_up_default_function): Likewise.
1258950397Sobrien	* parse.y: Likewise.
1259050397Sobrien	* pt.c (tsubst): Likewise.
1259152284Sobrien
1259250397SobrienMon Aug 26 17:40:03 1996  Mike Stump  <mrs@cygnus.com>
1259318334Speter
1259450397Sobrien	* decl2.c (groktypefield): Remove unused code.
1259518334Speter
1259650397SobrienMon Aug 26 17:00:33 1996  Mike Stump  <mrs@cygnus.com>
1259718334Speter
1259850397Sobrien	* gxx.gperf: Change TYPE_QUAL into CV_QUALIFIER.
1259950397Sobrien	* parse.y: Likewise.  Change maybe_type_qual into maybe_cv_qualifier.
1260050397Sobrien	Change type_quals into cv_qualifiers.  Change nonempty_type_quals into
1260150397Sobrien	nonempty_cv_qualifiers.
1260250397Sobrien	* hash.h: Rebuild.
1260352284Sobrien
1260450397Sobrien	* lex.c (make_pointer_declarator): Change type_quals into
1260550397Sobrien	cv_qualifiers.
1260650397Sobrien	(make_reference_declarator): Likewise.
1260752284Sobrien
1260850397SobrienThu Aug 22 01:09:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
1260918334Speter
1261050397Sobrien	* decl.c (start_function): Only check interface_* for templates
1261150397Sobrien	with flag_alt_external_templates.
1261218334Speter
1261350397Sobrien	* call.c (build_new_op): Check for comparison of different enum types.
1261450397Sobrien	(build_over_call): Fix arg # output.
1261518334Speter
1261650397Sobrien	* typeck.c (build_component_ref): Handle pre-found TYPE_DECL.
1261718334Speter
1261850397SobrienWed Aug 21 00:13:15 1996  Jason Merrill  <jason@yorick.cygnus.com>
1261918334Speter
1262050397Sobrien	* call.c (build_new_op): Check for erroneous args.
1262118334Speter
1262250397Sobrien	* call.c (build_new_method_call): Add missing args to cp_error.
1262318334Speter
1262452284Sobrien	* tree.c (error_type): Don't print reference-to-array.
1262518334Speter
1262650397Sobrien	* typeck.c (convert_for_assignment): Don't say contravariance for
1262750397Sobrien	removing const.
1262818334Speter
1262950397SobrienTue Aug 20 13:23:00 1996  Jason Merrill  <jason@yorick.cygnus.com>
1263018334Speter
1263150397Sobrien	* call.c (build_over_call): Diagnose bad convs for `this'.
1263218334Speter
1263350397Sobrien	* lex.c (cons_up_default_function): Set DECL_ARTIFICIAL
1263450397Sobrien	on _ctor_arg.
1263518334Speter
1263650397Sobrien	* call.c (convert_like): Handle bad convs.
1263750397Sobrien	(build_over_call): Handle bad convs better.
1263818334Speter
1263950397Sobrien	* decl2.c: -fansi-overloading is now the default.
1264018334Speter
1264150397Sobrien	* call.c (build_new_method_call): Check for erroneous args.
1264218334Speter
1264350397Sobrien	* pt.c (instantiate_class_template): Propagate
1264450397Sobrien	TYPE_USES_MULTIPLE_INHERITANCE.
1264518334Speter
1264650397SobrienTue Aug 20 13:09:57 1996  Mike Stump  <mrs@cygnus.com>
1264718334Speter
1264850397Sobrien	* call.c (enforce_access): Add static to routine.
1264918334Speter
1265050397SobrienSun Aug 18 14:35:54 1996  Jason Merrill  <jason@yorick.cygnus.com>
1265118334Speter
1265250397Sobrien	* call.c (build_user_type_conversion_1): Fix bad handling.
1265350397Sobrien	(compare_ics): Likewise.
1265418334Speter
1265550397SobrienSat Aug 17 21:54:11 1996  Jason Merrill  <jason@yorick.cygnus.com>
1265618334Speter
1265750397Sobrien	* call.c (standard_conversion): Oops.
1265818334Speter
1265950397SobrienSat Aug 17 16:28:11 1996  Geoffrey Noer  <noer@cygnus.com>
1266018334Speter
1266150397Sobrien	* g++.c: Update test for win32 (&& ! cygwin32).
1266218334Speter
1266350397SobrienSat Aug 17 03:45:31 1996  Jason Merrill  <jason@yorick.cygnus.com>
1266418334Speter
1266550397Sobrien	* typeck.c (comp_ptr_ttypes_real): Handle OFFSET_TYPEs properly.
1266650397Sobrien	(ptr_reasonably_similar): New fn.
1266750397Sobrien	* call.c (BAD_RANK): New rank.
1266850397Sobrien	(ICS_BAD_FLAG): New macro.
1266950397Sobrien	(standard_conversion): Handle almost-right pointer conversions.
1267050397Sobrien	(reference_binding): Handle bad rvalue bindings.
1267150397Sobrien	(add_*_candidate): Stuff.
1267250397Sobrien	(build_over_call): Pass bad conversions to convert_for_initialization.
1267350397Sobrien	(compare_ics): Handle bad convs.
1267450397Sobrien	(joust): Likewise.
1267518334Speter
1267650397SobrienFri Aug 16 15:02:19 1996  Bob Manson  <manson@charmed.cygnus.com>
1267718334Speter
1267850397Sobrien	* init.c (expand_vec_init): Use ptrdiff_type_node instead of
1267950397Sobrien	integer_type_node when computing pointer offsets.
1268018334Speter
1268150397SobrienFri Aug 16 01:28:32 1996  Jason Merrill  <jason@yorick.cygnus.com>
1268218334Speter
1268350397Sobrien	* tree.c (lvalue_type): New fn.
1268450397Sobrien	(error_type): New fn.
1268550397Sobrien	* call.c (op_error): Use error_type.
1268650397Sobrien	(add_conv_candidate): Use lvalue_type.
1268750397Sobrien	(add_builtin_candidates): Likewise.
1268850397Sobrien	* error.c (args_as_string): Use error_type.
1268918334Speter
1269050397SobrienThu Aug 15 17:27:13 1996  Jason Merrill  <jason@yorick.cygnus.com>
1269118334Speter
1269250397Sobrien	* pt.c (instantiate_decl): Evaluate DECL_INITIAL of a VAR_DECL here.
1269350397Sobrien	(tsubst): Not here.
1269418334Speter
1269550397Sobrien	* decl.c (init_decl_processing): With -ansi, __null's type is the
1269650397Sobrien	signed integral type with the same number of bits as a pointer.
1269750397Sobrien	Introduce a new variable null_node for it.
1269850397Sobrien	* cp-tree.h: Adjust.
1269950397Sobrien	* call.c (null_ptr_cst_p): Adjust.
1270018334Speter
1270150397SobrienThu Aug 15 17:09:54 1996  Mike Stump  <mrs@cygnus.com>
1270218334Speter
1270350397Sobrien	* except.c (do_unwind): Mark %i7 as used on the SPARC so we can
1270450397Sobrien	optimize.
1270518334Speter
1270650397SobrienThu Aug 15 01:36:49 1996  Jason Merrill  <jason@yorick.cygnus.com>
1270718334Speter
1270850397Sobrien	* decl2.c (import_export_decl): Ignore #pragma interface for tinfo
1270950397Sobrien	fns of classes without virtual functions.
1271018334Speter
1271150397Sobrien	* call.c (add_function_candidate): Handle `this' specially.
1271250397Sobrien	(compare_ics): Likewise.
1271318334Speter
1271450397SobrienTue Aug 13 12:16:10 1996  Jason Merrill  <jason@yorick.cygnus.com>
1271518334Speter
1271650397Sobrien	* typeck.c (build_conditional_expr): Fix handling of __null.
1271718334Speter
1271850397Sobrien	* decl2.c (comdat_linkage): New fn.
1271950397Sobrien	(import_export_vtable): Use it.
1272050397Sobrien	(import_export_decl): Use it.
1272150397Sobrien	* method.c (make_thunk): Use it.
1272218334Speter
1272350397SobrienMon Aug 12 00:09:18 1996  Jason Merrill  <jason@yorick.cygnus.com>
1272418334Speter
1272550397Sobrien	* pt.c (end_template_decl): If we don't actually have parms, return.
1272650397Sobrien	* parse.y (template_header): Accept 'template <>'.
1272718334Speter
1272850397Sobrien	* errfn.c: Allow 5 args.
1272918334Speter
1273050397SobrienSun Aug 11 15:20:58 1996  Jason Merrill  <jason@yorick.cygnus.com>
1273118334Speter
1273250397Sobrien	* tree.c (make_temp_vec): New fn.
1273350397Sobrien	* pt.c (push_template_decl): Handle partial specs.
1273450397Sobrien	(instantiate_class_template): Likewise.
1273550397Sobrien	(more_specialized): Use get_bindings.
1273650397Sobrien	(more_specialized_class): New fn.
1273750397Sobrien	(get_class_bindings): New fn.
1273850397Sobrien	(most_specialized_class): New fn.
1273950397Sobrien	(do_function_instantiation): List candidates for ambiguous case.
1274050397Sobrien	* decl.c (duplicate_decls): Lose reference to DECL_TEMPLATE_MEMBERS.
1274150397Sobrien	(shadow_tag): Call push_template_decl for partial specializations.
1274250397Sobrien	* parse.y: Likewise.
1274350397Sobrien	* cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Replaces
1274450397Sobrien	DECL_TEMPLATE_MEMBERS.
1274550397Sobrien	* call.c (print_z_candidates): Reduce duplication.
1274618334Speter
1274750397SobrienFri Aug  9 14:36:08 1996  Jason Merrill  <jason@yorick.cygnus.com>
1274818334Speter
1274950397Sobrien	* decl2.c (lang_decode_option): Allow -fansi-overloading.
1275018334Speter
1275150397SobrienThu Aug  8 17:04:18 1996  Jason Merrill  <jason@yorick.cygnus.com>
1275218334Speter
1275350397Sobrien	* pt.c (get_bindings): New fn.
1275450397Sobrien	(most_specialized): Likewise.
1275550397Sobrien	(do_function_instantiation): Use them.
1275650397Sobrien	(add_maybe_template): New fn.
1275750397Sobrien	* cp-tree.h (DECL_MAYBE_TEMPLATE): New macro.
1275850397Sobrien	* call.c (build_new_op): Handle guiding decls.
1275950397Sobrien	(build_new_function_call): Likewise.
1276050397Sobrien	* decl2.c (finish_file): Likewise.
1276118334Speter
1276250397Sobrien	* decl2.c (mark_used): Do synthesis here.
1276350397Sobrien	* call.c (build_method_call): Not here.
1276450397Sobrien	(build_over_call): Or here.
1276550397Sobrien	* typeck.c (build_function_call_real): Or here.
1276650397Sobrien	* tree.c (bot_manip): Call mark_used on functions used in default
1276750397Sobrien	args.
1276818334Speter
1276950397SobrienThu Aug  8 17:48:16 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
1277018334Speter
1277150397Sobrien	* decl2.c (import_export_vtable): Delete code that disabled vtable
1277250397Sobrien	heuristic on systems with ASM_OUTPUT_EXTERNAL.
1277318334Speter
1277450397SobrienWed Aug  7 12:44:11 1996  Jason Merrill  <jason@yorick.cygnus.com>
1277518334Speter
1277650397Sobrien	* typeck.c (build_x_function_call): Handle static call context
1277750397Sobrien	better.
1277818334Speter
1277950397Sobrien	* decl.c (finish_function): Set the DECL_CONTEXT of the result to
1278050397Sobrien	the function, not its outer block.
1278118334Speter
1278250397Sobrien	* call.c (build_field_call): Pass fields on to build_opfncall
1278350397Sobrien	regardless of TYPE_OVERLOADS_CALL_EXPR.
1278450397Sobrien	(build_method_call): Pass on to build_new_method_call sooner.
1278518334Speter
1278650397Sobrien	* typeck.c (build_ptrmemfunc): Just return what instantiate_type
1278750397Sobrien	gives us.
1278850397Sobrien	* class.c (instantiate_type): Don't put a POINTER_TYPE to
1278950397Sobrien	METHOD_TYPE on an expression.  Also make a copy of rhs instead of
1279050397Sobrien	modifying it.
1279118334Speter
1279250397SobrienTue Aug  6 12:58:46 1996  Jason Merrill  <jason@yorick.cygnus.com>
1279318334Speter
1279450397Sobrien	* call.c (compare_ics): Handle qual_conv after lvalue_conv.
1279550397Sobrien	(add_builtin_candidate): Don't take enums for ++.
1279650397Sobrien	(build_new_method_call): Handle non-aggregates and field calls.
1279750397Sobrien	Move new overloading code from...
1279850397Sobrien	* cvt.c: Here.
1279918334Speter
1280050397Sobrien	* decl.c (grokparms): Don't check default args in templates.
1280118334Speter
1280250397SobrienMon Aug  5 17:17:06 1996  Jason Merrill  <jason@yorick.cygnus.com>
1280318334Speter
1280450397Sobrien	* cvt.c (build_new_op): Fix args to build_unary_op.
1280550397Sobrien	(add_builtin_candidates): Don't call type_promotes_to on float.
1280618334Speter
1280750397Sobrien	* decl.c (grokparms): Check the type of the default arg.
1280818334Speter
1280950397Sobrien	* cvt.c (build_new_op): Pass non-overloaded cases on rather than
1281050397Sobrien	returning NULL_TREE.
1281118334Speter
1281250397Sobrien	* typeck.c (build_x_binary_op): Avoid doing extra work.
1281350397Sobrien	(build_x_unary_op): Likewise.
1281450397Sobrien	(build_x_conditional_expr): Likewise.
1281550397Sobrien	* cvt.c (build_over_call): Return.
1281650397Sobrien	(add_builtin_candidate): Fix MEMBER_REF.
1281750397Sobrien	(build_new_op): Likewise.
1281818334Speter
1281950397SobrienMon Aug  5 17:07:47 1996  Mike Stump  <mrs@cygnus.com>
1282018334Speter
1282150397Sobrien	* method.c (build_overload_name): Put bug fix into code but leave
1282250397Sobrien	disabled for now so we can be bug compatible with older releases
1282350397Sobrien	that do repeats incorrectly.  In the future, we can enable it.
1282418334Speter
1282550397SobrienMon Aug  5 13:46:28 1996  Jason Merrill  <jason@yorick.cygnus.com>
1282618334Speter
1282750397Sobrien	* cvt.c (convert_like): Don't call build_cplus_new twice.
1282818334Speter
1282950397Sobrien	* call.c, cp-tree.h, cvt.c, decl2.c, init.c, method.c, pt.c, typeck.c:
1283050397Sobrien	Control new overloading code with -fansi-overloading.
1283118334Speter
1283250397SobrienSun Aug  4 15:29:11 1996  Jason Merrill  <jason@yorick.cygnus.com>
1283318334Speter
1283450397Sobrien	* cvt.c (build_over_call): Call build_cplus_new.
1283550397Sobrien	* call.c (build_method_call): Likewise.
1283650397Sobrien	* typeck.c (build_function_call_real): Likewise.
1283750397Sobrien	(build_conditional_expr): If both operands are TARGET_EXPRs, wrap
1283850397Sobrien	the COND_EXPR in a TARGET_EXPR so they use the same slot.
1283918334Speter
1284052284Sobrien	* cvt.c (build_up_reference): Propagate INDIRECT_BIND to
1284150397Sobrien	recursive calls.
1284250397Sobrien	* typeck.c (complete_type): Propagate
1284350397Sobrien	TYPE_NEEDS_{CONSTRUCTING,DESTRUCTOR}.
1284418334Speter
1284550397SobrienSat Aug  3 14:05:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
1284618334Speter
1284750397Sobrien	* cvt.c (joust): More ?: kludging.  Sigh.
1284850397Sobrien	(build_over_call): Don't try to synthesize global fns.
1284918334Speter
1285050397Sobrien	* search.c (lookup_conversions): Use binfo marking.
1285118334Speter
1285250397SobrienSat Aug  3 12:33:42 1996  Bob Manson  <manson@charmed.cygnus.com>
1285318334Speter
1285450397Sobrien	* search.c (build_mi_matrix): Use the correct value of cid
1285550397Sobrien	when determining the new mi_size.
1285618334Speter
1285750397SobrienSat Aug  3 01:27:41 1996  Jason Merrill  <jason@yorick.cygnus.com>
1285818334Speter
1285950397Sobrien	* cvt.c (add_builtin_candidates): Do consider type conversion ops
1286050397Sobrien	for the first parms of += et al.
1286150397Sobrien	(strip_top_quals): New fn.
1286250397Sobrien	(reference_binding): Use it instead of TYPE_MAIN_VARIANT.
1286350397Sobrien	(implicit_conversion): Likewise.
1286450397Sobrien	(add_builtin_candidates): Be careful about arrays.
1286550397Sobrien	(build_new_method_call): Handle vtable optimization.
1286618334Speter
1286750397SobrienFri Aug  2 01:26:59 1996  Jason Merrill  <jason@yorick.cygnus.com>
1286818334Speter
1286950397Sobrien	* cp-tree.h (LOOKUP_NO_TEMP_BIND): New flag.
1287050397Sobrien	* cvt.c (reference_binding): Use it.
1287150397Sobrien	(implicit_conversion): Use it.
1287250397Sobrien	(add_builtin_candidate, COND_EXPR): Use it.
1287318334Speter
1287450397Sobrien	* cvt.c (build_new_function_call): Check for error args.
1287518334Speter
1287650397Sobrien	* typeck.c (comptypes): Just check DERIVED_FROM_P, not UNIQUELY.
1287718334Speter
1287850397Sobrien	* gxx.gperf: Add __null.
1287950397Sobrien	* hash.h: Regenerate.
1288050397Sobrien	* lex.h: Add RID_NULL.
1288150397Sobrien	* lex.c (init_lex): Create null_pointer_node here, stick it in
1288250397Sobrien	RID_NULL.
1288350397Sobrien	* decl.c (init_decl_processing): Still set its type here.
1288450397Sobrien	* cvt.c (cp_convert_to_pointer): Don't produce null_pointer_node.
1288550397Sobrien	(convert_to_pointer_force): Likewise.
1288650397Sobrien	(null_ptr_cst_p): Check for null_pointer_node; only accept (void*)0
1288750397Sobrien	if (! pedantic).
1288850397Sobrien	* call.c (convert_harshness): Use null_ptr_cst_p.
1288950397Sobrien	* typeck.c (convert_for_assignment): Likewise.  Don't produce
1289050397Sobrien	null_pointer_node.
1289118334Speter
1289250397Sobrien	* error.c (args_as_string): Handle lists of actual args, too.
1289350397Sobrien	* cvt.c (null_ptr_cst): Support (void*)0 for now.
1289450397Sobrien	(build_user_type_conversion_1): Improve diagnostics.
1289550397Sobrien	(build_new_function_call): Likewise.
1289650397Sobrien	(build_object_call): Likewise.
1289750397Sobrien	(build_new_method_call): Likewise.  Move call before def diagnostic...
1289850397Sobrien	(build_over_call): Here.
1289918334Speter
1290050397Sobrien	* cvt.c (build_new_method_call): Don't complain about no match if
1290150397Sobrien	LOOKUP_SPECULATIVELY.
1290250397Sobrien	(build_over_call): Fix 'this' for virtual fn.
1290350397Sobrien	(build_new_method_call): Add diagnostic.
1290418334Speter
1290550397SobrienThu Aug  1 16:45:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
1290618334Speter
1290750397Sobrien	* cvt.c (add_function_candidate): Expect 'this' and 'in_chrg' for
1290850397Sobrien	constructors to be passed in.
1290950397Sobrien	(build_over_call): Likewise.
1291050397Sobrien	(build_user_type_conversion_1): Pass them in.
1291150397Sobrien	(convert_like): Likewise.
1291250397Sobrien	(build_object_call): Handle overloaded conversions.
1291350397Sobrien	(build_over_call): Pass the right args to build_vfn_ref.
1291450397Sobrien	(standard_conversion): Fix pmf convs.
1291550397Sobrien	(joust): Handle comparing statics and non-statics.
1291650397Sobrien	(build_new_method_call): New fn.
1291750397Sobrien	* call.c (build_method_call): Call it if NEW_OVER.
1291818334Speter
1291950397SobrienThu Aug  1 16:06:14 1996  Mike Stump  <mrs@cygnus.com>
1292018334Speter
1292150397Sobrien	* lex.c (do_identifier): Don't use %O on IDENTIFIER_OPNAME_Ps, use
1292250397Sobrien	%D instead.
1292318334Speter
1292450397SobrienThu Aug  1 15:24:02 1996  Mike Stump  <mrs@cygnus.com>
1292518334Speter
1292650397Sobrien	* except.c (expand_throw): Use maybe_build_cleanup_and_delete
1292750397Sobrien	instead of just maybe_build_cleanup so that we deallocate the
1292850397Sobrien	thrown object.
1292918334Speter
1293050397SobrienThu Aug  1 15:18:00 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1293118334Speter
1293250397Sobrien	* decl2.c (finish_prevtable_vardecl): Make non-static for pt.c's use.
1293350397Sobrien	* cp-tree.h (finish_prevtable_vardecl): Add decl.
1293418334Speter
1293550397SobrienThu Aug  1 11:53:51 1996  Bob Manson  <manson@charmed.cygnus.com>
1293618334Speter
1293752284Sobrien	* pt.c (instantiate_class_template): Call complete_type.  Also, if
1293850397Sobrien	we're at the end of the file and we just instantiated a template
1293950397Sobrien	class with a vtable, call finish_prevtable_vardecl.
1294018334Speter
1294150397Sobrien	* error.c (dump_decl): Don't explode (or explode more gracefully
1294250397Sobrien	as appropriate) if the object being dumped has a null type.
1294350397Sobrien	(dump_expr): Likewise.
1294418334Speter
1294550397Sobrien	* search.c (build_mi_matrix): Ensure that mi_size is large enough,
1294650397Sobrien	by counting the number of nodes that we'll need before allocating
1294750397Sobrien	the array.
1294850397Sobrien	(lookup_fnfields): Fix comment.
1294950397Sobrien	(breadth_first_search): Fix comment.
1295018334Speter
1295150397SobrienWed Jul 31 09:57:05 1996  Jason Merrill  <jason@yorick.cygnus.com>
1295218334Speter
1295350397Sobrien	* pt.c (instantiate_class_template): Propagate TYPE_PACKED and
1295450397Sobrien	TYPE_ALIGN.
1295550397Sobrien	* class.c (finish_struct): Call cplus_decl_attributes here.
1295650397Sobrien	(finish_struct_1): Not here.
1295750397Sobrien	* cp-tree.h: Adjust.
1295818334Speter
1295950397Sobrien	* pt.c (type_unification): New parameter STRICT.
1296050397Sobrien	(unify): If STRICT, don't allow cv addition or base deduction.
1296150397Sobrien	* call.c, class.c, cvt.c, cp-tree.h: Adjust.
1296218334Speter
1296350397SobrienTue Jul 30 13:06:13 1996  Jason Merrill  <jason@yorick.cygnus.com>
1296418334Speter
1296550397Sobrien	* search.c (get_template_base{_recursive}): New fns.
1296650397Sobrien	* pt.c (more_specialized): New fn.
1296750397Sobrien	(do_function_instantiation): Use it.
1296850397Sobrien	(unify): Handle base deduction.
1296950397Sobrien	* cvt.c (joust): Use more_specialized.
1297050397Sobrien	Don't arbitrarily choose between non-builtin candidates.
1297150397Sobrien	(build_over_call): Call require_complete_type.
1297218334Speter
1297350397Sobrien	* decl.c (start_function): Statics are static even in a #pragma
1297450397Sobrien	interface file.
1297518334Speter
1297650397Sobrien	* decl2.c (import_export_vtable): Disable vtable heuristic on
1297750397Sobrien	systems with ASM_OUTPUT_EXTERNAL.
1297818334Speter
1297950397Sobrien	* cvt.c (compare_ics): Fix comparison of PMEM_CONV and BASE_CONV.
1298050397Sobrien	(standard_conversion): No std conv to enum type.
1298118334Speter
1298250397Sobrien	* cvt.c (standard_conversion): Fix order of args to DERIVED_FROM_P
1298350397Sobrien	for ptm's.
1298418334Speter
1298550397Sobrien	* cvt.c (reference_binding): Bind directly to a base subobject of
1298650397Sobrien	a class rvalue.
1298718334Speter
1298850397Sobrien	* cvt.c (build_new_op): Enforce access control.
1298918334Speter
1299050397SobrienTue Jul 30 09:22:53 1996  Bob Manson  <manson@charmed.cygnus.com>
1299118334Speter
1299250397Sobrien	* typeck2.c (process_init_constructor): When scanning the
1299350397Sobrien	union for a named field, skip things that aren't FIELD_DECLs.
1299418334Speter
1299550397Sobrien	* method.c (synthesize_method): Don't scan fndecl's rtl if
1299650397Sobrien	we're at the end of the file; just assume the function can't
1299750397Sobrien	be inlined.
1299818334Speter
1299950397SobrienMon Jul 29 15:48:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
1300018334Speter
1300150397Sobrien	* cvt.c (build_builtin_candidate): Stick a dummy conversion in if
1300250397Sobrien	it failed.
1300318334Speter
1300450397Sobrien	* cvt.c (build_user_type_conversion_1): Handle overloaded
1300550397Sobrien	conversion ops.
1300618334Speter
1300750397Sobrien	* cvt.c (add_builtin_candidates): Don't consider type conversion
1300850397Sobrien	operators for the first parameter of operator=.
1300918334Speter
1301050397SobrienMon Jul 29 15:33:55 1996  Bob Manson  <manson@charmed.cygnus.com>
1301118334Speter
1301250397Sobrien	* typeck.c (complete_type): Only call layout_type if we're not
1301350397Sobrien	expanding a template.
1301418334Speter
1301550397SobrienMon Jul 29 14:40:38 1996  Jason Merrill  <jason@yorick.cygnus.com>
1301618334Speter
1301750397Sobrien	* cvt.c (compare_ics): Oops.
1301818334Speter
1301950397Sobrien	* cvt.c (op_error): Oops.
1302018334Speter
1302150397Sobrien	* cp-tree.def: Add RVALUE_CONV, rename EXACT_CONV to IDENTITY_CONV.
1302250397Sobrien	* cvt.c: Add IDENTITY_RANK before others.  Use real_lvalue_p.
1302350397Sobrien	(build_conv): Use them.
1302450397Sobrien	(implicit_conversion): Use them.
1302550397Sobrien	(convert_like): Handle them.
1302650397Sobrien	(build_new_op): Handle builtin COND_EXPR again.
1302750397Sobrien	(add_builtin_candidates): Strip cv-quals.  Fix oops.  Include enums
1302850397Sobrien	in lists of types for COND_EXPR.
1302950397Sobrien	(add_builtin_candidate): Add enum candidates for COND_EXPR.
1303018334Speter
1303150397SobrienMon Jul 29 12:05:40 1996  Bob Manson  <manson@charmed.cygnus.com>
1303218334Speter
1303350397Sobrien	* typeck.c (build_modify_expr): Always attempt to build a call to
1303450397Sobrien	the assignment operator, even if we're using a default one.
1303550397Sobrien	(convert_for_initialization): Call complete_type.
1303618334Speter
1303750397SobrienMon Jul 29 11:25:08 1996  Jason Merrill  <jason@yorick.cygnus.com>
1303818334Speter
1303950397Sobrien	* cvt.c (reference_binding): A REF_BIND gets the reference type.
1304050397Sobrien	(implicit_conversion): Likewise.
1304150397Sobrien	(convert_like): Likewise.
1304250397Sobrien	(compare_ics): Likewise.
1304350397Sobrien	(compare_qual): Likewise.
1304450397Sobrien	(print_z_candidates): Handle no candidates.
1304550397Sobrien	(build_new_op): Don't handle builtin COND_EXPR for now.
1304618334Speter
1304750397SobrienSat Jul 27 11:27:47 1996  Stan Shebs  <shebs@andros.cygnus.com>
1304818334Speter
1304950397Sobrien	* cvt.c (build_builtin_candidate): Init local var in an ANSI way.
1305018334Speter
1305150397SobrienFri Jul 26 01:07:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
1305218334Speter
1305350397Sobrien	* cvt.c (joust): If the candidates are the same, arbitrarily pick one.
1305418334Speter
1305550397Sobrien	* cvt.c (build_builtin_candidate): Oops.
1305650397Sobrien	(build_new_op): Oops.
1305718334Speter
1305850397Sobrien	* method.c (build_opfncall): Pass COND_EXPR on.
1305950397Sobrien	* cvt.c (build_builtin_candidate): Reorganize, support COND_EXPR.
1306050397Sobrien	(add_builtin_candidate{,s}): Likewise.
1306150397Sobrien	(add_builtin_candidates): Likewise.
1306250397Sobrien	(print_z_candidates, op_error, build_new_op): Likewise.
1306350397Sobrien	(type_decays_to): New fn.
1306450397Sobrien	* lex.c (init_lex): Just say ?: for COND_EXPR.
1306518334Speter
1306650397SobrienThu Jul 25 09:33:33 1996  Jason Merrill  <jason@yorick.cygnus.com>
1306718334Speter
1306850397Sobrien	* typeck.c (complete_type): Call layout_type rather than building
1306950397Sobrien	a new array type.
1307018334Speter
1307150397Sobrien	* cvt.c (add_builtin_candidate): Pointer arithmetic candidates
1307250397Sobrien	only use ptrdiff_t.
1307318334Speter
1307450397SobrienWed Jul 24 12:45:08 1996  Jason Merrill  <jason@yorick.cygnus.com>
1307518334Speter
1307650397Sobrien	* cvt.c: Always compile the new overloading code (but don't use it).
1307750397Sobrien	(implicit_conversion): Add a BASE_CONV when converting to
1307850397Sobrien	the same class type.
1307950397Sobrien	(convert_like): Handle BASE_CONV.
1308018334Speter
1308150397SobrienTue Jul 23 12:46:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
1308218334Speter
1308350397Sobrien	* cvt.c (build_new_op): Support {MAX,MIN}_EXPR.
1308450397Sobrien	(add_builtin_candidate): Likewise.
1308518334Speter
1308650397Sobrien	NEW_OVER changes:
1308750397Sobrien	* typeck.c (build_x_function_call): Try an operator function
1308850397Sobrien	whenever we call an object of class type.
1308950397Sobrien	* method.c (build_opfncall): Pass CALL_EXPRs through.
1309050397Sobrien	* cvt.c (implicit_conversion): Do const-ref case first.
1309150397Sobrien	(add_conv_candidate, build_object_call, op_error): New fns.
1309250397Sobrien	(ptr_complete_ob, TYPE_PTROB_P): void is not an object type.
1309352284Sobrien	({add,build}_builtin_candidate{,s}, print_z_candidates): Display
1309450397Sobrien	builtin candidates.
1309550397Sobrien	(build_new_op): Handle CALL_EXPR.  Don't try to decay void.
1309652284Sobrien	Fall back on preincrement handling.  Use op_error.
1309750397Sobrien	Handle warn_synth.
1309852284Sobrien	(convert_like): Pass INDIRECT_BIND.  Don't try to do anything with
1309950397Sobrien	an error_mark_node.
1310050397Sobrien	(build_over_call): Handle PROMOTE_PROTOTYPES and ellipsis promotions
1310150397Sobrien	properly.
1310218334Speter
1310350397SobrienMon Jul 22 16:21:55 1996  Bob Manson  <manson@charmed.cygnus.com>
1310418334Speter
1310550397Sobrien	* pt.c (tsubst_expr): Handle CONTINUE_STMT.
1310618334Speter
1310750397SobrienMon Jul 22 15:38:58 1996  Mike Stump  <mrs@cygnus.com>
1310818334Speter
1310950397Sobrien	* typeck.c (build_component_ref_1): Use build_component_ref
1311050397Sobrien	instead of open coding it here.
1311118334Speter
1311250397SobrienMon Jul 22 12:18:54 1996  Jason Merrill  <jason@yorick.cygnus.com>
1311318334Speter
1311450397Sobrien	* g++.c (main): Don't link with -lg++.
1311518334Speter
1311650397Sobrien	NEW_OVER changes:
1311752284Sobrien	* cvt.c (convert_to_reference): Don't use convert_from_reference on
1311850397Sobrien	result of build_type_conversion.
1311950397Sobrien	(cp_convert): Only call build_method_call for ctors if
1312050397Sobrien	build_type_conversion failed.
1312150397Sobrien	(ptr_complete_ob): New function.
1312250397Sobrien	(TYPE_PTR{,OB,MEM}_P): New macros.
1312350397Sobrien	({add,build}_builtin_candidate{,s}): New functions.
1312450397Sobrien	(print_z_candidates): Handle builtins.
1312552284Sobrien	(build_user_type_conversion_1): Don't use conversion fns for
1312650397Sobrien	converting to a base type.
1312750397Sobrien	(build_user_type_conversion_1): Set ICS_USER_FLAG on AMBIG_CONVs.
1312850397Sobrien	(build_user_type_conversion): Use convert_from_reference.
1312950397Sobrien	(build_new_op): New function.
1313050397Sobrien	(build_over_call): Fix handling of methods.
1313150397Sobrien	(compare_ics): Handle AMBIG_CONV properly.
1313250397Sobrien	* typeck2.c: Increment abort count.
1313350397Sobrien	* method.c (build_opfncall): Forward most requests to build_new_op.
1313450397Sobrien	* cp-tree.h (IS_OVERLOAD_TYPE): Tweak.
1313518334Speter
1313650397SobrienFri Jul 19 17:59:29 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1313718334Speter
1313850397Sobrien	* error.c (dump_expr, case CONSTRUCTOR, case CAST_EXPR): Take out
1313950397Sobrien	invalid second argument to dump_expr_list.
1314018334Speter
1314150397SobrienFri Jul 19 14:04:05 1996  Mike Stump  <mrs@cygnus.com>
1314218334Speter
1314350397Sobrien	* decl.c (lookup_name_real): Make sure we do obj->X::i correctly.
1314418334Speter
1314550397SobrienThu Jul 18 14:48:23 1996  Bob Manson  <manson@charmed.cygnus.com>
1314618334Speter
1314750397Sobrien	* decl2.c (import_export_vtable): ASM_OUTPUT_EXTERNAL, not
1314850397Sobrien	ASSEMBLE_EXTERNAL.
1314918334Speter
1315050397SobrienMon Jul 15 17:48:43 1996  Mike Stump  <mrs@cygnus.com>
1315118334Speter
1315250397Sobrien	* typeck2.c (process_init_constructor): New pedwarn for using { }
1315350397Sobrien	to initialize a pointer to member function.
1315450397Sobrien	* typeck.c (build_ptrmemfunc1): Avoid use of digest_init so that
1315550397Sobrien	we can avoid the new error.
1315618334Speter
1315750397SobrienMon Jul 15 15:42:03 1996  Mike Stump  <mrs@cygnus.com>
1315818334Speter
1315950397Sobrien	* typeck.c (build_ptrmemfunc1): New function to hide details of
1316050397Sobrien	pointer to member functions better.
1316118334Speter
1316250397SobrienMon Jul 15 14:23:02 1996  Mike Stump  <mrs@cygnus.com>
1316318334Speter
1316450397Sobrien	* init.c (resolve_offset_ref): Resolve OFFSET_REFs that are
1316550397Sobrien	methods into the actual method, as we know the implied object is
1316650397Sobrien	not used.
1316718334Speter
1316850397SobrienMon Jul 15 13:08:29 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1316918334Speter
1317050397Sobrien	* parse.y (maybecomma_warn): Only emit the pedwarn if we're not
1317150397Sobrien	inside a system header.
1317218334Speter
1317350397SobrienFri Jul 12 16:30:05 1996  Bob Manson  <manson@charmed.cygnus.com>
1317418334Speter
1317550397Sobrien	* call.c (build_method_call): Call complete_type on the
1317650397Sobrien	instance type.
1317750397Sobrien
1317850397SobrienThu Jul 11 17:16:40 1996  Mike Stump  <mrs@cygnus.com>
1317950397Sobrien
1318050397Sobrien	* typeck.c (build_component_ref): Always build up an OFFSET_REF
1318150397Sobrien	for obj_ptr->func so that we can know which object to use in a
1318250397Sobrien	method call.
1318350397Sobrien
1318450397SobrienWed Jul 10 19:36:37 1996  Mike Stump  <mrs@cygnus.com>
1318550397Sobrien
1318650397Sobrien	* typeck.c (build_ptrmemfunc): Remove sorry, now we can cast
1318750397Sobrien	around things.  Also improve maintainability.
1318850397Sobrien
1318950397SobrienWed Jul 10 18:20:11 1996  Bob Manson  <manson@charmed.cygnus.com>
1319050397Sobrien
1319150397Sobrien	* decl.c (grokdeclarator): Check for overflow when evaluating an
1319250397Sobrien	array dimension.
1319350397Sobrien
1319450397SobrienWed Jul 10 17:26:19 1996  Jason Merrill  <jason@yorick.cygnus.com>
1319550397Sobrien
1319650397Sobrien	* cvt.c (cp_convert): Don't check for ambiguity with constructor
1319750397Sobrien	if NEW_OVER.
1319850397Sobrien
1319950397Sobrien	* typeck.c (build_x_function_call): Pass function overload
1320050397Sobrien	questions to new overloading code if NEW_OVER.
1320150397Sobrien	* init.c (expand_aggr_init_1): Only check for type conversion ops
1320250397Sobrien	if we're doing copy-initialization (i.e. LOOKUP_ONLYCONVERTING).
1320350397Sobrien	Don't check for ambiguity with constructor if NEW_OVER.
1320450397Sobrien	* cvt.c (convert_to_reference): Dereference the result of a type
1320518334Speter	conversion operator.
1320650397Sobrien	(build_conv): Propagate ICS_USER_FLAG.
1320750397Sobrien	(implicit_conversion): Call instantiate_type.
1320850397Sobrien	Pass LOOKUP_ONLYCONVERTING instead of LOOKUP_NORMAL.
1320950397Sobrien	(add_function_candidate): Fix cv-quals on argtype.
1321050397Sobrien	(print_z_candidates): New function.
1321150397Sobrien	(build_new_function_call): Call it.
1321250397Sobrien	(build_user_type_conversion_1): If LOOKUP_ONLYCONVERTING, don't
1321350397Sobrien	consider non-converting constructors.
1321450397Sobrien	Call print_z_candidates.
1321550397Sobrien	Return an AMBIG_CONV for an ambiguous conversion.
1321650397Sobrien	(build_user_type_conversion): Handle AMBIG_CONV.
1321750397Sobrien	(convert_like): Fix test for building TARGET_EXPR.
1321850397Sobrien	Call instantiate_type.
1321950397Sobrien	Handle AMBIG_CONV and LVALUE_CONV.
1322050397Sobrien	(build_over_call): Handle 0 args and ellipsis.
1322150397Sobrien	* cp-tree.def: Add AMBIG_CONV.
1322218334Speter
1322350397SobrienTue Jul  9 17:48:48 1996  Mike Stump  <mrs@cygnus.com>
1322418334Speter
1322550397Sobrien	* decl.c (lookup_name_real): If we find mem in obj when parsing
1322650397Sobrien	`obj->mem', make sure we return the right value.
1322718334Speter
1322850397SobrienTue Jul  9 16:11:28 1996  Bob Manson  <manson@charmed.cygnus.com>
1322918334Speter
1323050397Sobrien	* search.c (get_base_distance): Call complete_type.
1323118334Speter
1323250397SobrienTue Jul  9 12:46:34 1996  Mike Stump  <mrs@cygnus.com>
1323318334Speter
1323450397Sobrien	* decl.c (store_bindings): Make static.
1323518334Speter
1323650397SobrienMon Jul  8 16:42:31 1996  Jason Merrill  <jason@yorick.cygnus.com>
1323718334Speter
1323850397Sobrien	* init.c (expand_aggr_init_1): Don't check type conversions if
1323950397Sobrien	NEW_OVER.
1324018334Speter
1324150397Sobrien	* cvt.c (z_candidate): Put back template field.
1324250397Sobrien	(add_function_candidate): Set it.
1324350397Sobrien	(add_template_candidate): Likewise.
1324450397Sobrien	(joust): Use it.
1324550397Sobrien	(compare_qual): Handle references and pointers to members.
1324650397Sobrien	(compare_ics): Handle reference bindings.
1324718334Speter
1324850397Sobrien	* decl.c (duplicate_decls): Propagate DECL_ONE_ONLY.
1324918334Speter
1325050397SobrienMon Jul  8 16:18:56 1996  Bob Manson  <manson@charmed.cygnus.com>
1325118334Speter
1325250397Sobrien	* call.c (compute_conversion_costs): Call complete_type.
1325318334Speter
1325450397Sobrien	* tree.c (vec_binfo_member): Use comptypes instead of comparing
1325550397Sobrien	pointers, so we can handle template parameters.
1325618334Speter
1325750397SobrienFri Jul  5 16:51:53 1996  Bob Manson  <manson@charmed.cygnus.com>
1325818334Speter
1325950397Sobrien	* cvt.c (cp_convert_to_pointer): We have to call complete_type
1326050397Sobrien	here; let's make it explicit instead of a side effect of an
1326150397Sobrien	error check.
1326218334Speter
1326350397SobrienWed Jul  3 16:29:51 1996  Jason Merrill  <jason@yorick.cygnus.com>
1326418334Speter
1326550397Sobrien	* cvt.c (z_candidate): Remove template field.
1326650397Sobrien	(reference_binding): Handle binding to temporary.
1326750397Sobrien	(implicit_conversion): Likewise.
1326850397Sobrien	(add_function_candidate): Handle artificial constructor parms.
1326950397Sobrien	Handle functions with too few parms.
1327050397Sobrien	(add_template_candidate): New function.
1327150397Sobrien	(build_user_type_conversion_1): Handle constructors.
1327250397Sobrien	(convert_like): Likewise.
1327350397Sobrien	(build_over_call): Likewise.
1327450397Sobrien	(build_new_function_call): Support templates.
1327550397Sobrien	(compare_ics): Fix reference, inheritance handling.
1327618334Speter
1327750397SobrienMon Jul  1 22:58:18 1996  Bob Manson  <manson@charmed.cygnus.com>
1327818334Speter
1327950397Sobrien	* decl.c: Add signed_size_zero_node.
1328050397Sobrien	(init_decl_processing): Build it.
1328150397Sobrien	* class.c (prepare_fresh_vtable): Use it instead of size_zero_node
1328250397Sobrien	when we're trying to make a negative delta.
1328318334Speter
1328450397SobrienMon Jul  1 17:56:19 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1328518334Speter
1328650397Sobrien	Stop doing this damn index==strchr variable name confusion.
1328750397Sobrien	* class.c (add_virtual_function): Change local var INDEX to be
1328850397Sobrien	named IDX.
1328950397Sobrien	(add_method): Likewise.
1329050397Sobrien	* lex.c (print_parse_statistics): Likewise.
1329150397Sobrien	* search.c (make_memoized_table_entry): Likewise.
1329250397Sobrien	(lookup_fnfields_here): Likewise.
1329350397Sobrien	(lookup_field): Likewise.
1329450397Sobrien	(lookup_fnfields): Likewise.
1329550397Sobrien	(get_baselinks): Likewise.
1329650397Sobrien	* sig.c (build_signature_table_constructor): Likewise.
1329750397Sobrien	(build_signature_method_call): Likewise.
1329850397Sobrien	* typeck.c (build_x_array_ref): Change INDEX parm to be named IDX.
1329950397Sobrien	(get_member_function_from_ptrfunc): Likewise.
1330050397Sobrien	(build_ptrmemfunc): Change local var INDEX to be IDX.
1330150397Sobrien	(c_expand_start_case): Likewise.
1330218334Speter
1330350397SobrienSat Jun 29 14:05:46 1996  Jason Merrill  <jason@yorick.cygnus.com>
1330418334Speter
1330550397Sobrien	* cvt.c (cp_convert_to_pointer): Move user-defined type conversion
1330650397Sobrien	handling to before extraction of TYPE_PTRMEMFUNC_FN_TYPE.
1330750397Sobrien	(convert_to_reference): Use build_type_conversion to convert to
1330850397Sobrien	the reference type directly.
1330950397Sobrien	(standard_conversion): Fix void* case, non-conversions.
1331050397Sobrien	(reference_binding): Fix expr == 0 case, non-conversions.
1331150397Sobrien	(convert_like): Support REF_BIND.
1331250397Sobrien	(compare_qual): Split out from compare_ics.
1331350397Sobrien	(compare_ics): Use it, handle icses with only a qual_conv.
1331418334Speter
1331550397Sobrien	* init.c (expand_vec_init): Don't crash if decl is NULL.
1331618334Speter
1331750397SobrienFri Jun 28 11:52:51 1996  Stan Shebs  <shebs@andros.cygnus.com>
1331818334Speter
1331950397Sobrien	* mpw-config.in: New file, configury for Mac MPW.
1332050397Sobrien	* mpw-make.sed: New file, makefile editing for MPW.
1332118334Speter
1332250397SobrienThu Jun 27 15:18:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
1332318334Speter
1332450397Sobrien	* pt.c (instantiate_class_template): Call repo_template_used.
1332518334Speter
1332650397Sobrien	* search.c (lookup_conversions): Only lookup conversions in
1332750397Sobrien	complete types.
1332818334Speter
1332950397SobrienThu Jun 27 12:59:53 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1333018334Speter
1333150397Sobrien	* cp-tree.def: Renamed from tree.def, to avoid confusion with
1333250397Sobrien	gcc's tree.def.
1333350397Sobrien	* cp-tree.h, lex.c: Include cp-tree.def.
1333450397Sobrien	* Makefile.in (CXX_TREE_H): Reference cp-tree.def.
1333518334Speter
1333650397SobrienWed Jun 26 18:29:47 1996  Bob Manson  <manson@charmed.cygnus.com>
1333718334Speter
1333850397Sobrien	* init.c (build_vec_delete_1): Call complete_type.
1333918334Speter
1334050397SobrienMon Jun 24 17:17:32 1996  Mike Stump  <mrs@cygnus.com>
1334118334Speter
1334250397Sobrien	* except.c (start_anon_func): Make sure anonymous functions are
1334350397Sobrien	never external.
1334418334Speter
1334550397SobrienFri Jun 21 15:10:58 1996  Jason Merrill  <jason@yorick.cygnus.com>
1334618334Speter
1334750397Sobrien	* decl.c (finish_function): If function_depth > 1, set nested.
1334818334Speter
1334950397Sobrien	* decl2.c (grokbitfield): Revert Bob's change.
1335050397Sobrien	* class.c (finish_struct_1): Fix handling of named bitfield widths.
1335118334Speter
1335250397SobrienThu Jun 20 23:35:38 1996  Jason Merrill  <jason@yorick.cygnus.com>
1335318334Speter
1335450397Sobrien	* pt.c (add_pending_template): Handle types.
1335550397Sobrien	(lookup_template_class): With -fexternal-templates, just add the class
1335650397Sobrien	to pending_templates instead of instantiating it now.
1335750397Sobrien	* decl2.c (finish_file): Handle types in pending_templates.
1335818334Speter
1335950397SobrienThu Jun 20 14:08:40 1996  Bob Manson  <manson@charmed.cygnus.com>
1336018334Speter
1336150397Sobrien	* decl2.c (grokbitfield): Handle constant decls appropriately.
1336250397Sobrien	Give an appropriate error message now instead of spewing core
1336350397Sobrien	later.
1336418334Speter
1336550397SobrienThu Jun 20 13:01:51 1996  Jason Merrill  <jason@yorick.cygnus.com>
1336618334Speter
1336750397Sobrien	* decl2.c: Don't turn on thunks by default for now.
1336818334Speter
1336950397SobrienWed Jun 19 11:37:04 1996  Jason Merrill  <jason@yorick.cygnus.com>
1337018334Speter
1337150397Sobrien	* typeck.c (complete_type): Handle error_mark_node.
1337250397Sobrien	(common_type, OFFSET_TYPE): Handle template_type_parms.
1337318334Speter
1337450397SobrienTue Jun 18 10:02:15 1996  Jason Merrill  <jason@yorick.cygnus.com>
1337518334Speter
1337650397Sobrien	* pt.c (instantiate_decl): If at_eof, call import_export_decl
1337750397Sobrien	regardless of DECL_INLINE.
1337818334Speter
1337950397Sobrien	* typeck.c (mark_addressable): Set TREE_ADDRESSABLE on CONSTRUCTORs.
1338018334Speter
1338150397Sobrien	* class.c (finish_struct_bits): Copy TYPE_SIZE.
1338218334Speter
1338350397Sobrien	* rtti.c (build_dynamic_cast): Support templates.
1338450397Sobrien	* tree.def: Support DYNAMIC_CAST_EXPR.
1338550397Sobrien	* pt.c (tsubst_copy): Likewise.
1338650397Sobrien	* decl2.c (build_expr_from_tree): Likewise.
1338718334Speter
1338850397SobrienMon Jun 17 15:23:36 1996  Jason Merrill  <jason@yorick.cygnus.com>
1338918334Speter
1339050397Sobrien	* typeck.c (build_static_cast): Support templates.
1339150397Sobrien	(build_const_cast): Likewise.
1339250397Sobrien	* tree.def: Support CONST/STATIC_CAST_EXPR.
1339350397Sobrien	* pt.c (tsubst_copy): Likewise.
1339450397Sobrien	* decl2.c (build_expr_from_tree): Likewise.
1339518334Speter
1339650397SobrienSun Jun 16 12:33:57 1996  Jason Merrill  <jason@yorick.cygnus.com>
1339718334Speter
1339850397Sobrien	* decl2.c (finish_vtable_vardecl): Don't trust
1339950397Sobrien	TREE_SYMBOL_REFERENCED for vtables of local classes.
1340018334Speter
1340150397SobrienFri Jun 14 18:13:36 1996  Jason Merrill  <jason@yorick.cygnus.com>
1340218334Speter
1340350397Sobrien	* pt.c (tsubst_copy): Handle operator T.
1340418334Speter
1340550397SobrienWed Jun 12 17:52:40 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1340618334Speter
1340750397Sobrien	* init.c (build_delete): Move creation of PARMS inside test of
1340850397Sobrien	TYPE_HAS_DESTRUCTOR, since it's never used outside of that block.
1340918334Speter
1341050397SobrienTue Jun 11 15:09:18 1996  Bob Manson  <manson@charmed.cygnus.com>
1341118334Speter
1341250397Sobrien	* typeck.c (build_conditional_expr): Don't assume that
1341350397Sobrien	the arguments to ?: are always pointers or records.
1341418334Speter
1341550397SobrienTue Jun 11 13:56:23 1996  Jason Merrill  <jason@yorick.cygnus.com>
1341618334Speter
1341750397Sobrien	* decl2.c (import_export_decl): Still emit static/weak/comdat
1341850397Sobrien	copies of inline template functions with -fno-implicit-templates.
1341918334Speter
1342050397SobrienTue Jun 11 11:42:13 1996  Bob Manson  <manson@charmed.cygnus.com>
1342118334Speter
1342250397Sobrien	* init.c (build_delete): Determine the complete basetype
1342350397Sobrien	path to the destructor we're calling.
1342418334Speter
1342550397SobrienFri Jun  7 15:30:10 1996  Bob Manson  <manson@charmed.cygnus.com>
1342618334Speter
1342750397Sobrien	* decl.c (build_enumerator): Always copy the INTEGER_CST used to
1342850397Sobrien	initialize the enum, because we really and truly don't know where
1342950397Sobrien	it came from.
1343050397Sobrien	(start_enum): Don't copy integer_zero_node because
1343150397Sobrien	build_enumerator will do it.
1343218334Speter
1343350397SobrienFri Jun  7 11:11:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
1343418334Speter
1343550397Sobrien	* decl.c (finish_function): Do access control on base destructors.
1343618334Speter
1343750397Sobrien	* pt.c (tsubst, case FUNCTION_DECL): Set up
1343850397Sobrien	IDENTIFIER_GLOBAL_VALUE for member functions so pushdecl doesn't
1343950397Sobrien	hose us.
1344018334Speter
1344150397SobrienFri Jun  7 10:37:33 1996  Mike Stump  <mrs@cygnus.com>
1344218334Speter
1344350397Sobrien	* cvt.c (build_up_reference): If we have already extended the
1344450397Sobrien	lifetime of the temporary, don't try it again.
1344550397Sobrien	* typeck.c (c_expand_return): Don't try and convert the return
1344650397Sobrien	value twice when we want a reference, once is enough.
1344752284Sobrien
1344850397SobrienTue Jun  4 15:41:45 1996  Jason Merrill  <jason@yorick.cygnus.com>
1344918334Speter
1345050397Sobrien	* pt.c (tsubst_expr, case DECL_STMT): Don't pass
1345150397Sobrien	LOOKUP_ONLYCONVERTING at all for now.
1345218334Speter
1345350397Sobrien	* search.c (add_conversions): Put the conversion function in
1345450397Sobrien	TREE_VALUE, the basetype in TREE_PURPOSE.
1345550397Sobrien	* cvt.c (build_type_conversion): Adjust.
1345650397Sobrien	* cvt.c (build_expr_type_conversion): Adjust.
1345750397Sobrien	* call.c (user_harshness): Adjust.
1345818334Speter
1345950397SobrienMon Jun  3 15:30:52 1996  Jason Merrill  <jason@yorick.cygnus.com>
1346018334Speter
1346150397Sobrien	* method.c (emit_thunk): Pretend this is a FUNCTION_DECL for the
1346250397Sobrien	backend's benefit.
1346318334Speter
1346450397SobrienMon Jun 10 18:58:19 1996  Mike Stump  <mrs@cygnus.com>
1346518334Speter
1346650397Sobrien	* except.c (expand_start_catch_block): Add a dummy region, if we
1346750397Sobrien	get an error, so that we can avoid core dumping later.
1346818334Speter
1346950397SobrienFri May 31 14:56:13 1996  Mike Stump  <mrs@cygnus.com>
1347018334Speter
1347150397Sobrien	* cp-tree.h (OFFSET_REF): Remove.
1347250397Sobrien	* tree.def (CP_OFFSET_REF): Rename to OFFSET_REF.
1347350397Sobrien	* expr.c (cplus_expand_expr): Cleanup callers of expand_expr.
1347450397Sobrien	* init.c (expand_aggr_init_1): Likewise.
1347550397Sobrien	(build_new): Likewise.
1347650397Sobrien	* typeck.c (expand_target_expr): Likewise.
1347718334Speter
1347850397SobrienFri May 31 14:22:08 1996  Jason Merrill  <jason@yorick.cygnus.com>
1347918334Speter
1348050397Sobrien	* typeck.c (build_modify_expr): Don't use TREE_VALUE on a
1348150397Sobrien	TARGET_EXPR.
1348218334Speter
1348350397SobrienWed May 29 17:04:33 1996  Mike Stump  <mrs@cygnus.com>
1348418334Speter
1348550397Sobrien	* cvt.c (build_up_reference): Redo how and when temporaries are
1348650397Sobrien	created.
1348750397Sobrien	* decl.c (grok_reference_init): Don't try and be smart about
1348850397Sobrien	running cleanups.
1348918334Speter
1349050397SobrienWed May 29 16:02:08 1996  Mike Stump  <mrs@cygnus.com>
1349118334Speter
1349250397Sobrien	* cvt.c (build_up_reference): Add NULL_TREE to all calls to build
1349350397Sobrien	(TARGET_EXPR...), now that it has 4 arguments.
1349450397Sobrien	* tree.c (build_cplus_new): Likewise.
1349518334Speter
1349650397SobrienThu May 23 16:40:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
1349718334Speter
1349850397Sobrien	* error.c (dump_expr, case CAST_EXPR): Handle T() properly.
1349918334Speter
1350050397Sobrien	* pt.c (instantiate_decl): Don't call push/pop_cp_function_context.
1350150397Sobrien	* decl.c (struct saved_scope): Remove named_labels,
1350250397Sobrien	{base,member}_init_list.
1350350397Sobrien	(maybe_push_to_top_level): Don't set them.  Call
1350450397Sobrien	push_cp_function_context if appropriate.
1350550397Sobrien	(pop_from_top_level): Likewise.
1350618334Speter
1350750397Sobrien	* method.c (do_build_assign_ref): Remove obsolete check of
1350850397Sobrien	TYPE_HAS_ASSIGN_REF (basetype).
1350918334Speter
1351050397Sobrien	* decl.c (grokfndecl): Diagnose user definition of
1351150397Sobrien	implicitly-declared methods.
1351218334Speter
1351350397SobrienThu May 23 12:13:08 1996  Bob Manson  <manson@charmed.cygnus.com>
1351418334Speter
1351550397Sobrien	* method.c (do_build_copy_constructor): Add code to give
1351650397Sobrien	meaningful error messages instead of crashing.
1351750397Sobrien	(do_build_assign_ref): Don't synthesize assignment operators for
1351850397Sobrien	classes containing reference or const members.
1351918334Speter
1352050397Sobrien	* class.c (struct base_info): Remove cant_synth_copy_ctor
1352150397Sobrien	and cant_synth_asn_ref.
1352250397Sobrien	(finish_base_struct): Remove the code that tries to conditionalize
1352350397Sobrien	synthesis of copy constructors & assignment operators based on
1352452284Sobrien	access permissions.  Instead, let it fail when it tries to
1352552284Sobrien	synthesize the copy constructor.  This will give meaningful error
1352650397Sobrien	messages instead of silently generating code to perform a bitcopy.
1352718334Speter
1352850397SobrienWed May 22 11:45:19 1996  Bob Manson  <manson@charmed.cygnus.com>
1352918334Speter
1353050397Sobrien	* lex.c (real_yylex): Remove old-n-crufty #if 0 code for
1353150397Sobrien	determining types for constant values.
1353218334Speter
1353350397Sobrien	* decl.c (struct named_label_list): Use instead of stuffing
1353450397Sobrien	random items into a TREE_LIST node.
1353550397Sobrien	(named_label_uses): Use the new struct.
1353650397Sobrien	(poplevel): Likewise.
1353750397Sobrien	(lookup_label): Likewise.
1353850397Sobrien	(define_label): Add an error message to tell the user the line
1353950397Sobrien	where the goto is located in addition to the destination of the
1354050397Sobrien	goto.
1354150397Sobrien	(init_decl_processing): Use NULL instead of NULL_TREE to initialize
1354250397Sobrien	named_label_uses.
1354350397Sobrien	(finish_function): Likewise.
1354452284Sobrien
1354550397Sobrien	(start_decl): Complain about defining a static data member
1354650397Sobrien	in a different type from which it was declared.
1354718334Speter
1354850397SobrienWed May 22 09:33:23 1996  Jason Merrill  <jason@yorick.cygnus.com>
1354918334Speter
1355050397Sobrien	* cvt.c (build_expr_type_conversion): Adjust.
1355118334Speter
1355250397SobrienTue May 21 11:21:56 1996  Jason Merrill  <jason@yorick.cygnus.com>
1355318334Speter
1355450397Sobrien	* call.c (build_method_call): Always convert 'this' to the
1355550397Sobrien	appropriate type.
1355618334Speter
1355750397Sobrien	* search.c (add_conversions): Put the conversion function in
1355850397Sobrien	TREE_VALUE, the type in TREE_PURPOSE.
1355950397Sobrien	* cvt.c (build_type_conversion): Adjust.
1356050397Sobrien	* call.c (user_harshness): Adjust.
1356118334Speter
1356250397Sobrien	* method.c (emit_thunk): Call temporary_allocation and
1356350397Sobrien	permanent_allocation around the ASM_OUTPUT_MI_THUNK case, too.
1356418334Speter
1356550397Sobrien	* tree.c (build_cplus_array_type): Handle tweaking of
1356650397Sobrien	TYPE_MAIN_VARIANT here.
1356750397Sobrien	* typeck.c (common_type): Not here.
1356818334Speter
1356950397Sobrien	* typeck.c (complete_type): Only try to complete an array type if
1357050397Sobrien	it has a domain.
1357118334Speter
1357250397SobrienMon May 20 14:55:59 1996  Jason Merrill  <jason@yorick.cygnus.com>
1357318334Speter
1357450397Sobrien	* decl.c (grokvardecl): Call complete_type.
1357550397Sobrien	(grokdeclarator): Call complete_type for PARM_DECLs.
1357618334Speter
1357750397SobrienFri May 17 16:41:17 1996  Jason Merrill  <jason@yorick.cygnus.com>
1357818334Speter
1357950397Sobrien	* pt.c (instantiate_class_template): Re-set
1358050397Sobrien	CLASSTYPE_GOT_SEMICOLON after calling finish_struct_1.
1358118334Speter
1358250397SobrienFri May 17 14:56:55 1996  Mike Stump  <mrs@cygnus.com>
1358318334Speter
1358450397Sobrien	* cp-tree.h (cp_expand_decl_cleanup): Remove, the backend is now
1358550397Sobrien	smart enough to do it right.
1358650397Sobrien	* tree.c (cp_expand_decl_cleanup): Likewise.
1358750397Sobrien	* decl.c (cp_finish_decl): Use expand_decl_cleanup instead of
1358850397Sobrien	cp_expand_decl_cleanup.
1358950397Sobrien	(store_parm_decls): Likewise.
1359050397Sobrien	(hack_incomplete_structures): Likewise.
1359150397Sobrien	* except.c (push_eh_cleanup): Likewise.
1359218334Speter
1359350397SobrienFri May 17 13:13:51 1996  Mike Stump  <mrs@cygnus.com>
1359418334Speter
1359550397Sobrien	* expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++
1359650397Sobrien	frontend to the backend where it belongs.
1359750397Sobrien	* tree.c (unsave_expr): Likewise.
1359850397Sobrien	(unsave_expr_now): Likewise.
1359950397Sobrien	* tree.def (UNSAVE_EXPR): Likewise.
1360050397Sobrien	* cp-tree.h (unsave_expr): Likewise.
1360150397Sobrien	(unsave_expr_now): Likewise.
1360218334Speter
1360350397SobrienFri May 17 11:02:41 1996  Mike Stump  <mrs@cygnus.com>
1360418334Speter
1360550397Sobrien	* init.c (emit_base_init): Make sure the partial EH cleanups live
1360650397Sobrien	on the function_obstack.
1360718334Speter
1360850397SobrienThu May 16 15:29:33 1996  Bob Manson  <manson@charmed.cygnus.com>
1360918334Speter
1361050397Sobrien	* expr.c (do_case): Don't try to dereference null TREE_TYPEs
1361150397Sobrien	when checking for pointer types.
1361218334Speter
1361350397SobrienThu May 16 13:38:58 1996  Jason Merrill  <jason@yorick.cygnus.com>
1361418334Speter
1361550397Sobrien	* pt.c (instantiate_class_template): Remove obsolete check for
1361650397Sobrien	access declarations.
1361718334Speter
1361850397SobrienThu May 16 13:34:15 1996  Mike Stump  <mrs@cygnus.com>
1361918334Speter
1362050397Sobrien	* call.c (build_overload_call): Simplify calls to
1362150397Sobrien	build_overload_call by removing last parameter.
1362250397Sobrien	(build_method_call): Likewise.
1362350397Sobrien	* cp-tree.h: Likewise.
1362450397Sobrien	* method.c (build_opfncall): Likewise.
1362550397Sobrien	* typeck.c (build_x_function_call): Likewise.
1362618334Speter
1362750397SobrienThu May 16 13:15:43 1996  Mike Stump  <mrs@cygnus.com>
1362818334Speter
1362950397Sobrien	* call.c (default_parm_conversions): Factor out common code.
1363050397Sobrien	(build_method_call): Use it.
1363150397Sobrien	(build_overload_call_real): Use it.
1363218334Speter
1363350397SobrienWed May 15 14:46:14 1996  Mike Stump  <mrs@cygnus.com>
1363418334Speter
1363550397Sobrien	* call.c (build_method_call): Allow implicit & on METHOD_TYPEs,
1363650397Sobrien	but pedwarn as the code is bogus.
1363750397Sobrien	* typeck.c (decay_conversion): Likewise.
1363850397Sobrien	(build_function_call_real): Use build_addr_func instead of
1363950397Sobrien	default_conversion.  Don't allow pointer-to-method functions down
1364050397Sobrien	here.
1364150397Sobrien	(build_unary_op): Use real pointer-to-member functions instead of
1364250397Sobrien	fake ones.
1364350397Sobrien	(build_ptrmemfunc): Use build_addr_func instead of build_unary_op.
1364450397Sobrien	(convert_for_assignment): Removed some obsolete code.
1364550397Sobrien	* decl2.c (reparse_absdcl_as_expr): Pass current_class_ref to
1364650397Sobrien	build_x_function_call instead of current_class_ptr.  Only call
1364750397Sobrien	digest_init once on an initializer, we do this just checking
1364850397Sobrien	TREE_TYPE.
1364950397Sobrien	(build_expr_from_tree): Pass current_class_ref to
1365050397Sobrien	build_x_function_call instead of current_class_ptr.
1365150397Sobrien	* init.c (build_member_call): Likewise.
1365250397Sobrien	* pase.y: Likewise.
1365350397Sobrien	* error.c (dump_expr): Handle OFFSET_REFs better.
1365450397Sobrien	* pt.c (unify): Handle pointer-to-member functions better.
1365550397Sobrien	* decl.c (finish_function): Clear out current_class_ref just like
1365650397Sobrien	we do for current_class_ptr.
1365718334Speter
1365850397Sobrien	* typeck.c (get_delta_difference): Handle virtual bases better.
1365918334Speter
1366050397SobrienTue May 14 16:37:37 1996  Jason Merrill  <jason@yorick.cygnus.com>
1366118334Speter
1366250397Sobrien	* sig.c (build_signature_table_constructor): Use the delta for
1366350397Sobrien	the original basetype for this virtual function with thunks.
1366450397Sobrien	(build_signature_method_call): We still need to adjust 'this'
1366550397Sobrien	with thunks.
1366618334Speter
1366750397SobrienTue May 14 16:27:25 1996  Mike Stump  <mrs@cygnus.com>
1366818334Speter
1366950397Sobrien	* call.c (build_addr_func): New routine.  Used to get the `real'
1367050397Sobrien	address of a function or a method.  Needed to avoid getting a
1367150397Sobrien	pointer-to-member function.
1367250397Sobrien	(build_call): New routine to build CALL_EXPRs.
1367350397Sobrien	(build_method_call): Use it.
1367450397Sobrien	* cvt.c (convert_to_aggr): Likewise.
1367550397Sobrien	* typeck.c (build_function_call_real): Likewise.
1367650397Sobrien	* sig.c (build_signature_table_constructor): Use build_addr_func.
1367750397Sobrien	* cp-tree.h (build_call, build_addr_func): Declare them.
1367818334Speter
1367950397SobrienTue May 14 12:47:47 1996  Mike Stump  <mrs@cygnus.com>
1368018334Speter
1368150397Sobrien	* cp-tree.h (LOOKUP_AGGR): Remove, unused.
1368250397Sobrien	* parse.y: Remove uses of LOOKUP_AGGR.
1368318334Speter
1368450397SobrienTue May 14 12:07:51 1996  Mike Stump  <mrs@cygnus.com>
1368518334Speter
1368650397Sobrien	* *.[chy]: Rename current_class_decl to current_class_ptr, and
1368750397Sobrien	C_C_D to current_class_ref.
1368818334Speter
1368950397SobrienMon May 13 16:55:23 1996  Jason Merrill  <jason@yorick.cygnus.com>
1369018334Speter
1369150397Sobrien	* call.c (convert_harshness): Tighten up pointer conversions.
1369218334Speter
1369350397SobrienSat May 11 04:33:50 1996  Doug Evans  <dje@canuck.cygnus.com>
1369418334Speter
1369550397Sobrien	* decl2.c (finish_vtable_vardecl): Surround DECL_ONE_ONLY with ifdef.
1369650397Sobrien	(finish_file): Likewise.
1369718334Speter
1369850397SobrienFri May 10 11:09:57 1996  Jason Merrill  <jason@yorick.cygnus.com>
1369918334Speter
1370050397Sobrien	* cvt.c (convert_fn_ptr): We don't use thunks for pmfs.
1370118334Speter
1370250397Sobrien	* method.c (emit_thunk): Set flag_omit_frame_pointer in default
1370350397Sobrien	code.
1370418334Speter
1370550397SobrienThu May  9 18:18:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
1370618334Speter
1370750397Sobrien	* decl2.c: Turn on thunks by default where supported.
1370818334Speter
1370950397SobrienTue May  7 20:39:57 1996  Mike Stump  <mrs@cygnus.com>
1371018334Speter
1371150397Sobrien	* cp-tree.h (build_overload_call_maybe): Removed.
1371250397Sobrien	* call.c (build_overload_call_real): Invert meaning of last arg to
1371350397Sobrien	be require_complete.
1371450397Sobrien	(build_overload_call): Likewise.
1371550397Sobrien	* typeck.c (build_x_function_call): Use build_overload_call_real
1371650397Sobrien	instead of build_overload_call_maybe.
1371718334Speter
1371850397SobrienMon May  6 01:23:32 1996  Jason Merrill  <jason@yorick.cygnus.com>
1371918334Speter
1372050397Sobrien	* decl2.c (finish_file): Don't try to emit functions that haven't
1372150397Sobrien	been compiled.
1372218334Speter
1372350397SobrienFri May  3 09:30:13 1996  Jason Merrill  <jason@yorick.cygnus.com>
1372418334Speter
1372550397Sobrien	* decl2.c (finish_vtable_vardecl): Oops.
1372618334Speter
1372750397Sobrien	* decl.c (maybe_push_to_top_level): Do save previous_class_*.
1372850397Sobrien	Also store the bindings from previous_class_values.
1372950397Sobrien	(pop_from_top_level): Restore them.
1373018334Speter
1373150397SobrienThu May  2 21:56:49 1996  Jason Merrill  <jason@yorick.cygnus.com>
1373218334Speter
1373350397Sobrien	* decl2.c (finish_vtable_vardecl): Only write out vtable if its
1373450397Sobrien	symbol has been referenced.
1373550397Sobrien	(finish_file): Re-join synthesis/vtable loop with inline emission
1373650397Sobrien	loop, disable inlining when an inline is output.
1373718334Speter
1373850397SobrienThu May  2 17:20:02 1996  Mike Stump  <mrs@cygnus.com>
1373918334Speter
1374050397Sobrien	* except.c (init_exception_processing): Setup saved_in_catch.
1374150397Sobrien	(push_eh_cleanup): Reset __eh_in_catch.
1374250397Sobrien	(expand_start_catch_block): Set __eh_in_catch.
1374318334Speter
1374450397SobrienThu May  2 16:21:17 1996  Mike Stump  <mrs@cygnus.com>
1374518334Speter
1374650397Sobrien	* except.c (push_eh_cleanup): Add tracking for whether or not we
1374750397Sobrien	have an active exception object.
1374850397Sobrien	(expand_builtin_throw): Use it to make sure a rethrow without an
1374950397Sobrien	exception object is caught.
1375018334Speter
1375150397SobrienThu May  2 11:26:41 1996  Jason Merrill  <jason@yorick.cygnus.com>
1375218334Speter
1375350397Sobrien	* decl.c (maybe_push_to_top_level): Clear out class-level bindings
1375450397Sobrien	cache.
1375518334Speter
1375650397SobrienWed May  1 11:26:52 1996  Jason Merrill  <jason@yorick.cygnus.com>
1375718334Speter
1375850397Sobrien	* decl2.c (finish_file): Also use sentries for vars with
1375950397Sobrien	DECL_ONE_ONLY or DECL_WEAK set (should any such happen to be
1376050397Sobrien	created).
1376118334Speter
1376250397Sobrien	* lex.c (handle_cp_pragma): Disable #pragma
1376350397Sobrien	interface/implementation if SUPPORTS_ONE_ONLY > 1.
1376418334Speter
1376550397SobrienTue Apr 30 11:25:46 1996  Jason Merrill  <jason@yorick.cygnus.com>
1376618334Speter
1376750397Sobrien	* method.c (emit_thunk): Wrap default case in
1376850397Sobrien	temporary/permanent_allocation.
1376918334Speter
1377050397Sobrien	* method.c (make_thunk): Use DECL_ONE_ONLY.
1377150397Sobrien	(emit_thunk): Call assemble_end_function.
1377218334Speter
1377350397SobrienMon Apr 29 15:38:29 1996  Jason Merrill  <jason@yorick.cygnus.com>
1377418334Speter
1377550397Sobrien	* decl2.c (import_export_vtable): Use DECL_ONE_ONLY.
1377650397Sobrien	(import_export_decl): Likewise.
1377750397Sobrien	(finish_prevtable_vardecl): Disable vtable hack if
1377850397Sobrien	SUPPORTS_ONE_ONLY > 1.
1377918334Speter
1378050397SobrienMon Apr 29 14:32:47 1996  Mike Stump  <mrs@cygnus.com>
1378118334Speter
1378250397Sobrien	* typeck.c (build_modify_expr): PREINCREMENT_EXPR and
1378350397Sobrien	PREDECREMENT_EXPRs take two arguments, not one.
1378418334Speter
1378550397SobrienMon Apr 29 00:27:53 1996  Jason Merrill  <jason@yorick.cygnus.com>
1378618334Speter
1378750397Sobrien	* class.c (build_vtable_entry): Don't build thunks for abstract
1378850397Sobrien	virtuals.
1378918334Speter
1379050397Sobrien	* lex.c (real_yylex): Fix handling of __PRETTY_FUNCTION__ like C
1379150397Sobrien	frontend.
1379218334Speter
1379350397SobrienSat Apr 27 16:45:35 1996  Jason Merrill  <jason@yorick.cygnus.com>
1379418334Speter
1379550397Sobrien	* class.c (set_rtti_entry): Use size_zero_node.
1379650397Sobrien	(build_vtable): Likewise.
1379718334Speter
1379850397SobrienSat Apr 27 14:48:57 1996  Jason Merrill  <jason@phydeaux.cygnus.com>
1379918334Speter
1380050397Sobrien	* class.c (finish_struct_1): Pass size_zero_node to set_rtti_entry.
1380150397Sobrien	(prepare_fresh_vtable): Likewise.
1380218334Speter
1380350397SobrienFri Apr 26 13:14:14 1996  Jason Merrill  <jason@yorick.cygnus.com>
1380418334Speter
1380550397Sobrien	* method.c (emit_thunk): Call mark_used on the target function.
1380618334Speter
1380750397Sobrien	* call.c (build_method_call): Don't warn about pending templates.
1380818334Speter
1380950397SobrienThu Apr 25 14:55:44 1996  Jason Merrill  <jason@yorick.cygnus.com>
1381018334Speter
1381150397Sobrien	* decl2.c (finish_file): Fix list walking logic.
1381218334Speter
1381350397Sobrien	* typeck2.c (check_for_new_type): Only warn if -pedantic.
1381418334Speter
1381550397SobrienWed Apr 24 15:41:15 1996  Bob Manson  <manson@charmed.cygnus.com>
1381618334Speter
1381750397Sobrien	* class.c (finish_struct_1): Remove old code for
1381850397Sobrien	dont_allow_type_definitions.
1381950397Sobrien	* cp-tree.h: Likewise.
1382050397Sobrien	* spew.c: Make sure cp-tree.h is included before parse.h, so the
1382150397Sobrien	definition of flagged_type_tree is found before it is used.
1382250397Sobrien	* lex.c: Likewise.
1382350397Sobrien	* parse.y: Added the ftype member to the type union, and changed a
1382452284Sobrien	number of rules to use it instead of ttype.  Added calls to
1382550397Sobrien	check_for_new_type() as appropriate.
1382650397Sobrien	* typeck2.c (check_for_new_type): New function for checking
1382750397Sobrien	if a newly defined type appears in the specified tree.
1382852284Sobrien	* cp-tree.h: Add new type flagged_type_tree.  Add a prototype
1382950397Sobrien	for check_for_new_type().
1383018334Speter
1383150397SobrienWed Apr 24 00:36:21 1996  Jason Merrill  <jason@yorick.cygnus.com>
1383218334Speter
1383350397Sobrien	* decl2.c (finish_file): Only use a sentry if the decl is public.
1383418334Speter
1383550397Sobrien	* pt.c (tsubst_expr, DECL_STMT): If we don't have an initializer,
1383650397Sobrien	don't pass LOOKUP_ONLYCONVERTING.
1383718334Speter
1383850397SobrienTue Apr 23 17:18:47 1996  Bob Manson  <manson@charmed.cygnus.com>
1383918334Speter
1384050397Sobrien	* typeck.c (common_type): Fix the ARRAY_TYPE case so it
1384150397Sobrien	properly keeps track of const and volatile type modifiers.
1384218334Speter
1384350397SobrienTue Apr 23 10:52:56 1996  Jason Merrill  <jason@yorick.cygnus.com>
1384418334Speter
1384550397Sobrien	* tree.c (cp_tree_equal): C++ version of simple_cst_equal.
1384650397Sobrien	* pt.c (comp_template_args): Use it.
1384718334Speter
1384850397Sobrien	* rtti.c (get_tinfo_fn, build_dynamic_cast, expand_*_desc): Call
1384950397Sobrien	assemble_external for artificial function decls.
1385018334Speter
1385150397Sobrien	* decl.c (cp_finish_decl): Oops.
1385218334Speter
1385350397SobrienMon Apr 22 17:28:27 1996  Jason Merrill  <jason@yorick.cygnus.com>
1385418334Speter
1385550397Sobrien	* decl2.c (import_export_decl): Put static data member templates
1385650397Sobrien	into common storage, or make them weak, depending on whether they
1385750397Sobrien	are dynamically or statically initialized.
1385850397Sobrien	(get_sentry): New function.
1385950397Sobrien	(finish_file): Do import_export_decl for static data members before
1386050397Sobrien	building the init/fini functions.  Don't init/fini a variable that's
1386150397Sobrien	EXTERNAL.  Use a sentry for variables in common.  Fix mismatching
1386250397Sobrien	push/pop_temp_slots.
1386350397Sobrien	* decl.c (cp_finish_decl): If DECL_NOT_REALLY_EXTERN, do the
1386450397Sobrien	expand_static_init thang.
1386550397Sobrien	* method.c (get_id_2): New function.
1386618334Speter
1386750397SobrienMon Apr 22 15:32:45 1996  Bob Manson  <manson@charmed.cygnus.com>
1386818334Speter
1386950397Sobrien	* parse.y (empty_parms): Make sure we use C++-style prototypes
1387050397Sobrien	when we're declaring member functions.
1387118334Speter
1387250397SobrienSun Apr 21 10:08:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
1387318334Speter
1387450397Sobrien	* Makefile.in (CONFLICTS): 16 s/r conflicts.
1387550397Sobrien	* parse.y (self_template_type): New nonterminal.
1387618334Speter
1387750397SobrienThu Apr 18 08:56:54 1996  Jason Merrill  <jason@yorick.cygnus.com>
1387818334Speter
1387950397Sobrien	* decl.c (make_typename_type): Handle getting a TYPE_DECL for a
1388050397Sobrien	name.
1388150397Sobrien	* parse.y (base_class.1): Allow 'typename foo::bar'.
1388218334Speter
1388350397Sobrien	* lex.c (check_newline): Remove #pragma code that plays with the
1388450397Sobrien	input stream, since we now deal with tokens.  Clear nextchar when
1388550397Sobrien	we're done.
1388650397Sobrien	(handle_cp_pragma): Use real_yylex.
1388750397Sobrien	(handle_sysv_pragma): Don't do skipline here.  Only call real_yylex
1388850397Sobrien	in one place.
1388918334Speter
1389050397Sobrien	* lex.c (check_for_missing_semicolon): Handle SELFNAME.
1389118334Speter
1389250397Sobrien	* lex.c (handle_cp_pragma): Fix "#pragma implementation".
1389318334Speter
1389450397SobrienWed Apr 17 16:51:33 1996  Jason Merrill  <jason@yorick.cygnus.com>
1389518334Speter
1389650397Sobrien	* parse.y: New token SELFNAME for potential constructor.
1389750397Sobrien	* spew.c (yylex): Handle it.
1389850397Sobrien	* lex.c (identifier_type): Produce it.
1389918334Speter
1390050397Sobrien	* parse.y (complete_type_name): In :: case, don't push class binding.
1390150397Sobrien	(complex_type_name): Likewise.
1390218334Speter
1390350397SobrienWed Apr 17 15:02:40 1996  Mike Stump  <mrs@cygnus.com>
1390418334Speter
1390550397Sobrien	* typeck.c (build_reinterpret_cast): Handle pointer to member
1390650397Sobrien	functions.
1390718334Speter
1390850397SobrienWed Apr 17 12:28:26 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1390918334Speter
1391050397Sobrien	* lex.c (handle_cp_pragma): New function, with decl, doing the cc1plus
1391150397Sobrien	pragmas.
1391250397Sobrien	(check_newline): Put the vtable/unit/implementation/interface pragma
1391350397Sobrien	code into handle_cp_pragma, replacing it with a call.
1391450397Sobrien	(handle_sysv_pragma): Give int return type, and take FINPUT and TOKEN
1391550397Sobrien	args.  Get the next token after handling the pragma token.
1391618334Speter
1391750397SobrienWed Apr 17 10:28:34 1996  Jason Merrill  <jason@yorick.cygnus.com>
1391818334Speter
1391950397Sobrien	* cvt.c (cp_convert_to_pointer): Avoid doing base analysis on pmfs.
1392050397Sobrien	(convert_to_pointer_force): Likewise.
1392118334Speter
1392250397Sobrien	* init.c (build_new): Fix array new without -fcheck-new.
1392318334Speter
1392450397SobrienTue Apr 16 13:44:58 1996  Jason Merrill  <jason@yorick.cygnus.com>
1392518334Speter
1392650397Sobrien	* cp-tree.h, call.c, class.c, decl.c, parse.y, pt.c, rtti.c,
1392750397Sobrien	tree.c: Lose TYPE_NESTED_NAME.
1392818334Speter
1392950397Sobrien	* parse.y (nested_name_specifier_1): Don't treat non-identifiers
1393050397Sobrien	as identifiers.
1393118334Speter
1393250397Sobrien	* tree.def: Add VEC_INIT_EXPR.
1393350397Sobrien	* expr.c (cplus_expand_expr): Handle it.
1393450397Sobrien	* init.c (build_new): Use it instead of the RTL_EXPR nastiness and
1393550397Sobrien	the extra file-scope symbol nastiness.
1393618334Speter
1393750397SobrienMon Apr 15 16:21:29 1996  Jason Merrill  <jason@yorick.cygnus.com>
1393818334Speter
1393950397Sobrien	* method.c (make_thunk): Thunks are static.
1394050397Sobrien	(emit_thunk): Use ASM_OUTPUT_MI_THUNK if it's defined.
1394118334Speter
1394250397Sobrien	* decl2.c (mark_vtable_entries): Emit thunks as needed.
1394350397Sobrien	(finish_file): Don't emit them here.
1394418334Speter
1394550397SobrienSun Apr 14 11:34:39 1996  Jason Merrill  <jason@yorick.cygnus.com>
1394618334Speter
1394750397Sobrien	* rtti.c (build_dynamic_cast): Handle null pointers.
1394850397Sobrien	(ifnonnull): New function.
1394918334Speter
1395050397SobrienFri Apr 12 09:08:27 1996  Bob Manson  <manson@charmed.cygnus.com>
1395118334Speter
1395250397Sobrien	* call.c (build_method_call): Remember the original basetype we
1395352284Sobrien	were called with.  Give an error message instead of trying
1395450397Sobrien	(incorrectly) to call a non-static member function through a
1395550397Sobrien	non-inherited class.
1395618334Speter
1395750397Sobrien	* search.c (expand_upcast_fixups): Mark the new fixup as
1395850397Sobrien	DECL_ARTIFICIAL.
1395918334Speter
1396050397SobrienThu Apr 11 03:57:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
1396118334Speter
1396250397Sobrien	* init.c (build_new): Use a TARGET_EXPR for alloc_expr.
1396318334Speter
1396450397Sobrien	* class.c (set_rtti_entry): Fix for thunks.
1396518334Speter
1396650397Sobrien	* decl2.c (import_export_decl): Still emit typeinfo fns for
1396750397Sobrien	cv-variants of builtin types.
1396818334Speter
1396950397Sobrien	* rtti.c (expand_class_desc): Set up base_info_type_node here.
1397050397Sobrien	(init_rtti_processing): Instead of here.
1397118334Speter
1397250397SobrienWed Apr 10 14:17:13 1996  Jason Merrill  <jason@yorick.cygnus.com>
1397318334Speter
1397450397Sobrien	* rtti.c (init_rtti_processing): Do init regardless of -frtti.
1397550397Sobrien	(build_typeid): Only complain about taking dynamic typeid without
1397650397Sobrien	-frtti.
1397718334Speter
1397850397Sobrien	* decl2.c: flag_rtti defaults to 1.
1397918334Speter
1398050397Sobrien	* rtti.c (get_tinfo_var): The general class case is now smaller.
1398150397Sobrien	(init_rtti_processing): Pack the latter three fields of base_info
1398250397Sobrien	into 32 bits.
1398318334Speter
1398450397SobrienWed Apr 10 13:50:14 1996  Mike Stump  <mrs@cygnus.com>
1398518334Speter
1398650397Sobrien	* init.c (expand_member_init): Don't dump if name is NULL_TREE.
1398718334Speter
1398850397SobrienWed Apr 10 12:56:02 1996  Mike Stump  <mrs@cygnus.com>
1398918334Speter
1399050397Sobrien	* search.c (make_memoized_table_entry): Undefer the pop, if necessary.
1399150397Sobrien	(push_memoized_context): Split out code to undefer pop_type_level to
1399250397Sobrien	(clear_memoized_cache): here.
1399350397Sobrien	(pop_memoized_context): We can only handle one layer of deferral of
1399450397Sobrien	pop_type_level so clear the cache, if there was a previous level.
1399518334Speter
1399650397SobrienTue Apr  9 23:06:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
1399718334Speter
1399850397Sobrien	* rtti.c (init_rtti_processing): Build up base_info_type_node.
1399950397Sobrien	(expand_class_desc): Use one pointer to an array of base_info
1400050397Sobrien	structs, passed using a CONSTRUCTOR.
1400118334Speter
1400250397SobrienTue Apr  9 14:20:57 1996  Mike Stump  <mrs@cygnus.com>
1400318334Speter
1400450397Sobrien	* class.c (build_vbase_path): Remove block extern for
1400550397Sobrien	flag_assume_nonnull_objects here.
1400650397Sobrien	(build_vfn_ref): Split out functionality into build_vtbl_ref.
1400750397Sobrien	(build_vtbl_ref): New routine.
1400850397Sobrien	(build_vtable): Set up rtti info here.
1400950397Sobrien	(add_virtual_function): Note in CLASSTYPE_RTTI the best
1401050397Sobrien	place where we can get the rtti pointers from to avoid having to
1401150397Sobrien	search around for a place.
1401250397Sobrien	(finish_base_struct): Likewise.
1401350397Sobrien	(finish_struct_1): Likewise.  Never create totally new vtables
1401450397Sobrien	with totally new vtable pointers for rtti.  Disable code to layout
1401550397Sobrien	vtable pointers better until we want to break binary
1401650397Sobrien	compatibility.
1401750397Sobrien	* rtti.c (build_headof_sub): New routine to convert down to a
1401850397Sobrien	sub-object that has an rtti pointer in the vtable.
1401950397Sobrien	(build_headof): Use it.  Also, use build_vtbl_ref now to be more
1402050397Sobrien	maintainable.
1402150397Sobrien	(build_dynamic_cast): Make sure we have saved it, if we need to.
1402250397Sobrien	* search.c (dfs_init_vbase_pointers): Disable code that deals with
1402350397Sobrien	a more efficient vtable layout, enable later.
1402450397Sobrien	* call.c (flag_assume_nonnull_objects): Moved declaration to
1402550397Sobrien	* cp-tree.h: here.  Declare build_vtbl_ref.
1402650397Sobrien	* pt.c (instantiate_class_template): Use NULL_TREE instead of 0 in
1402750397Sobrien	function calls that want a tree.
1402818334Speter
1402950397SobrienTue Apr  9 12:10:26 1996  Jason Merrill  <jason@yorick.cygnus.com>
1403018334Speter
1403150397Sobrien	* rtti.c (build_dynamic_cast): Handle downcasting to X* given
1403250397Sobrien	other X subobjects in the most derived type.  Ack.
1403318334Speter
1403450397Sobrien	* rtti.c (build_dynamic_cast): No need to strip cv-quals here,
1403550397Sobrien	get_typeid will do it for us.
1403650397Sobrien	(get_typeid_1): Break out call-building for expand_*_desc to use.
1403750397Sobrien	(get_typeid): Call it.
1403850397Sobrien	(expand_*_desc): Likewise.
1403950397Sobrien	* decl.c (init_decl_processing): Don't set TYPE_BUILT_IN on char *
1404050397Sobrien	and void *.
1404150397Sobrien	(init_decl_processing): Lose builtin_type_tdescs lossage.
1404250397Sobrien	* decl2.c (finish_vtable_vardecl): Remove obsolete code.
1404318334Speter
1404450397SobrienMon Apr  8 17:23:23 1996  Bob Manson  <manson@charmed.cygnus.com>
1404518334Speter
1404650397Sobrien	* pt.c (tsubst): When calling set_nested_typename, use
1404750397Sobrien	TYPE_NESTED_NAME (current_class_type) instead of
1404850397Sobrien	current_class_name.
1404918334Speter
1405050397Sobrien	* decl.c (pushdecl): Likewise.
1405150397Sobrien	(pushdecl_class_level): Likewise.
1405250397Sobrien	(grokdeclarator): Use NULL_TREE instead of 0 in the call to
1405350397Sobrien	set_nested_typename.
1405418334Speter
1405550397SobrienSun Apr  7 10:44:31 1996  Jason Merrill  <jason@yorick.cygnus.com>
1405618334Speter
1405750397Sobrien	* rtti.c (synthesize_tinfo_fn): Handle arrays.
1405818334Speter
1405950397Sobrien	* cp-tree.h (DECL_REALLY_EXTERN): New macro.
1406018334Speter
1406150397SobrienSat Apr  6 13:56:27 1996  Jason Merrill  <jason@yorick.cygnus.com>
1406218334Speter
1406350397Sobrien	* rtti.c (throw_bad_cast): Use entry point __throw_bad_cast.
1406450397Sobrien	(init_rtti_processing): Lose bad_cast_type.
1406550397Sobrien	(build_dynamic_cast): Use throw_bad_cast.
1406618334Speter
1406750397Sobrien	* rtti.c (synthesize_tinfo_fn): Handle enums and pmfs.
1406818334Speter
1406950397Sobrien	* decl2.c (finish_file): Don't synthesize artificial functions
1407050397Sobrien	that are external and not inline.
1407118334Speter
1407250397Sobrien	* rtti.c (get_tinfo_fn): If at_eof, call import_export_decl.
1407318334Speter
1407450397Sobrien	* decl2.c (finish_file): Handle having new inlines added to
1407550397Sobrien	saved_inlines by synthesis.
1407618334Speter
1407750397Sobrien	* rtti.c (get_bad_cast_node): Don't require <typeinfo>.
1407818334Speter
1407950397SobrienFri Apr  5 17:02:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
1408018334Speter
1408150397Sobrien	RTTI rewrite to initialize nodes as needed, not require that
1408252284Sobrien	users #include <typeinfo>, complete functionality and reduce wasted
1408350397Sobrien	space.
1408450397Sobrien	* rtti.c (init_rtti_processing): New fn.
1408550397Sobrien	(build_typeid): The vtable entry is now a function.
1408650397Sobrien	(get_tinfo_var): New fn.
1408750397Sobrien	(get_tinfo_fn): Likewise.
1408850397Sobrien	(get_typeid): Use it.
1408950397Sobrien	(build_dynamic_cast): Declare and use entry point __dynamic_cast.
1409050397Sobrien	(build_*_desc): Rename to expand_*_desc and rewrite to use entry
1409150397Sobrien	points __rtti_*.
1409250397Sobrien	(add_uninstantiated_desc, get_def_to_follow, build_t_desc): Lose.
1409350397Sobrien	(synthesize_tinfo_fn): New fn.
1409450397Sobrien	* method.c (build_t_desc_overload): Lose.
1409550397Sobrien	(build_overload_with_type): More generic.
1409650397Sobrien	* decl.c (init_decl_processing): Call init_rtti_processing.
1409750397Sobrien	* class.c (set_rtti_entry): Use get_tinfo_fn.
1409850397Sobrien	* decl2.c (mark_vtable_entries): Mark the rtti function.
1409950397Sobrien	(finish_prevtable_vardecl): Don't build_t_desc.
1410050397Sobrien	(import_export_decl): Handle tinfo functions.
1410150397Sobrien	(finish_file): Likewise.
1410250397Sobrien	* typeck.c (inline_conversion): New fn.
1410350397Sobrien	(build_function_call_real): Use it.
1410450397Sobrien	* cp-tree.h: Add decls.
1410518334Speter
1410650397Sobrien	* method.c (hack_identifier): Also convert component_refs from
1410750397Sobrien	references.
1410818334Speter
1410950397Sobrien	* lex.c (cons_up_default_function): Use the type, not the name, in
1411050397Sobrien	declspecs.
1411118334Speter
1411250397Sobrien	* decl2.c (import_export_vtable): Fix weak vtables.
1411318334Speter
1411450397SobrienFri Apr  5 13:30:17 1996  Bob Manson  <manson@charmed.cygnus.com>
1411518334Speter
1411650397Sobrien	* search.c (get_base_distance_recursive): Fix access checks for
1411750397Sobrien	protected bases.
1411818334Speter
1411950397SobrienFri Apr  5 11:02:06 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1412018334Speter
1412150397Sobrien	* call.c (unary_complex_lvalue): Delete unneeded decl, it's in
1412250397Sobrien	cp-tree.h.
1412350397Sobrien	(convert_harshness): Add prototypes wrapped by PROTO.
1412450397Sobrien	* decl2.c (grok_function_init): Likewise.
1412550397Sobrien	(do_toplevel_using_decl): Change to void return type.
1412650397Sobrien	* class.c (build_vtable_entry): Remove decl of make_thunk.
1412750397Sobrien	(merge_overrides): Fix order of arg definitions.
1412850397Sobrien	(finish_vtbls): Likewise.
1412950397Sobrien	(fixup_vtable_deltas): Likewise.
1413050397Sobrien	(modify_all_direct_vtables): Likewise.
1413150397Sobrien	(modify_all_indirect_vtables): Likewise.
1413250397Sobrien	* search.c (get_base_distance_recursive): Likewise.
1413350397Sobrien	(get_abstract_virtuals_1): Likewise.
1413450397Sobrien	(fixup_virtual_upcast_offsets): Likewise.
1413550397Sobrien	(lookup_fnfields_1): Add prototypes wrapped by PROTO.
1413650397Sobrien	* init.c (perform_member_init): Fix order of arg definitions.
1413750397Sobrien	(expand_aggr_init_1): Add prototypes wrapped by PROTO.
1413850397Sobrien	* cp-tree.h (make_thunk): Add decl.
1413950397Sobrien	(overload_template_name, push_template_decl): Add decls.
1414050397Sobrien	(do_toplevel_using_decl): Change to void return type.
1414150397Sobrien	(vec_binfo_member): Add decl.
1414218334Speter
1414350397SobrienThu Apr  4 13:33:10 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1414418334Speter
1414550397Sobrien	* typeck.c (mark_addressable, convert_for_assignment,
1414650397Sobrien	convert_for_initialization, pointer_int_sum, pointer_diff,
1414750397Sobrien	unary_complex_lvalue): Add prototypes wrapped by PROTO.
1414850397Sobrien	(convert_sequence): #if 0 fn decl, since definition also is.
1414918334Speter
1415050397SobrienThu Apr  4 11:00:53 1996  Mike Stump  <mrs@cygnus.com>
1415118334Speter
1415250397Sobrien	* rtti.c (build_dynamic_cast): Make sure we strip qualifiers on
1415350397Sobrien	cast to pointer types for type searching.
1415418334Speter
1415550397SobrienWed Apr  3 17:10:57 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1415618334Speter
1415750397Sobrien	* typeck.c (get_delta_difference): Use cp_error, not error, in the
1415850397Sobrien	case where BINFO == 0.
1415918334Speter
1416050397SobrienWed Apr  3 12:01:02 1996  Mike Stump  <mrs@cygnus.com>
1416118334Speter
1416250397Sobrien	* call.c (build_method_call): Fix wording of error messages so
1416350397Sobrien	constructors come out right.
1416418334Speter
1416550397SobrienTue Apr  2 16:06:59 1996  Bob Manson  <manson@charmed.cygnus.com>
1416618334Speter
1416750397Sobrien	* decl.c (push_overloaded_decl): Don't warn about hidden
1416850397Sobrien	constructors when both the type and the function are declared
1416950397Sobrien	in a system header file.
1417018334Speter
1417150397SobrienMon Apr  1 09:03:13 1996  Bob Manson  <manson@charmed.cygnus.com>
1417218334Speter
1417350397Sobrien	* class.c (finish_struct_1): Propagate the TYPE_PACKED
1417450397Sobrien	flag for the type to the type's fields.
1417518334Speter
1417650397SobrienSat Mar 30 12:14:33 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1417718334Speter
1417850397Sobrien	* parse.y (complex_parmlist, ELLIPSES): Take out ARM-based warning.
1417918334Speter
1418050397SobrienFri Mar 29 15:51:36 1996  Bob Manson  <manson@charmed.cygnus.com>
1418118334Speter
1418252284Sobrien	* class.c (base_info, finish_base_struct): Replace
1418350397Sobrien	needs_virtual_dtor with base_has_virtual.
1418418334Speter
1418550397Sobrien	(finish_struct_1): Remove the old code that tried to make default
1418652284Sobrien	destructors virtual.  Use base_has_virtual when checking if we need
1418750397Sobrien	to add a vtable entry for the rtti code.
1418818334Speter
1418950397SobrienFri Mar 29 14:02:36 1996  Jason Merrill  <jason@yorick.cygnus.com>
1419018334Speter
1419150397Sobrien	* pt.c (push_template_decl): Complain about template decl with
1419250397Sobrien	inappropriate declaration.
1419318334Speter
1419450397SobrienFri Mar 29 12:15:35 1996  Bob Manson  <manson@charmed.cygnus.com>
1419518334Speter
1419650397Sobrien	* typeck.c (build_x_unary_op): Remove bogus check for taking
1419750397Sobrien	the address of a member function.
1419818334Speter
1419950397SobrienFri Mar 29 11:56:02 1996  Jason Merrill  <jason@yorick.cygnus.com>
1420018334Speter
1420150397Sobrien	* parse.y (constructor_declarator): Only push the class if
1420250397Sobrien	we are not already in the class.
1420318334Speter
1420450397SobrienFri Mar 29 09:41:02 1996  Jeffrey A. Law  <law@cygnus.com>
1420518334Speter
1420650397Sobrien	* method.c (emit_thunk): Remove current_call_is_indirect nonsense.
1420750397Sobrien	Add additional argument to INIT_CUMULATIVE_ARGS.
1420818334Speter
1420950397SobrienThu Mar 28 16:41:39 1996  Jason Merrill  <jason@yorick.cygnus.com>
1421018334Speter
1421150397Sobrien	* decl.c (shadow_tag): Fix error about anon union with methods.
1421218334Speter
1421350397Sobrien	* parse.y (self_reference): Only generate a self-reference if this
1421450397Sobrien	is a non-template class.
1421550397Sobrien	(opt.component_decl_list): Only use it if it was generated.
1421618334Speter
1421750397Sobrien	* parse.y (component_decl_1): Use constructor_declarator.
1421850397Sobrien	(fn.def2): Likewise.
1421950397Sobrien	(notype_component_declarator0): Likewise.
1422018334Speter
1422150397SobrienThu Mar 28 15:11:35 1996  Bob Manson  <manson@charmed.cygnus.com>
1422218334Speter
1422350397Sobrien	* typeck.c (build_x_unary_op): Add checks for taking the address
1422450397Sobrien	of a TARGET_EXPR or of a member function, and give appropriate
1422550397Sobrien	warnings.
1422618334Speter
1422750397SobrienThu Mar 28 14:49:26 1996  Jason Merrill  <jason@yorick.cygnus.com>
1422818334Speter
1422950397Sobrien	* pt.c (process_template_parm): Allow template type parms to be
1423050397Sobrien	used as types for template const parms.
1423118334Speter
1423250397SobrienWed Mar 27 15:51:19 1996  Mike Stump  <mrs@cygnus.com>
1423318334Speter
1423450397Sobrien	* init.c (expand_vec_init): Ensure the eh cleanups are on the
1423550397Sobrien	function_obstack.
1423618334Speter
1423750397SobrienWed Mar 27 10:14:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
1423818334Speter
1423950397Sobrien	* decl.c (lookup_name_real): Be even more picky about the
1424050397Sobrien	ambiguous lookup warning.
1424150397Sobrien	(grokdeclarator): Tweak SCOPE_REF constructor declarators here.
1424250397Sobrien	* parse.y (constructor_declarator): Rather than here.
1424318334Speter
1424450397Sobrien	* parse.y (constructor_declarator): New nonterminal.
1424550397Sobrien	(fn.def1): Use it.
1424650397Sobrien	(explicit_instantiation): Likewise.
1424718334Speter
1424850397SobrienTue Mar 26 13:41:33 1996  Jason Merrill  <jason@yorick.cygnus.com>
1424918334Speter
1425050397Sobrien	Add implicit declaration of class name at class scope.
1425150397Sobrien	* decl.c (lookup_name_real): Restrict pedwarn about ambiguous lookup.
1425250397Sobrien	* parse.y (self_reference): New nonterminal.
1425350397Sobrien	(opt.component_decl_list): Use it.
1425450397Sobrien	(fn.def1): Add nested_name_specifier type_name cases.
1425550397Sobrien	* class.c (build_self_reference): New function.
1425650397Sobrien	(finish_struct): Handle access_default later, move self-reference
1425750397Sobrien	decl to the end.
1425850397Sobrien	* pt.c (lookup_template_class): Handle getting a TYPE_DECL.
1425950397Sobrien	* cp-tree.h: Adjust.
1426018334Speter
1426150397Sobrien	* pt.c (do_function_instantiation): Separate handling of member
1426250397Sobrien	functions and non-member functions properly.
1426318334Speter
1426450397SobrienMon Mar 25 14:23:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
1426518334Speter
1426650397Sobrien	* pt.c (process_template_parm): Improve error for 'volatile class K'.
1426718334Speter
1426850397Sobrien	* class.c (finish_struct_1): Check the right slot for destructors.
1426918334Speter
1427050397Sobrien	* decl.c (start_enum): Complain about enum templates.
1427118334Speter
1427250397SobrienMon Mar 25 13:25:31 1996  Mike Stump  <mrs@cygnus.com>
1427318334Speter
1427450397Sobrien	* init.c (resolve_offset_ref): Offset pointers to member data by one.
1427550397Sobrien	* typeck.c (unary_complex_lvalue): Likewise.
1427618334Speter
1427750397SobrienMon Mar 25 13:30:42 1996  Bob Manson  <manson@charmed.cygnus.com>
1427818334Speter
1427950397Sobrien	* typeck.c (c_expand_return): Check for a returned local
1428050397Sobrien	array name, similar to the check for an ADDR_EXPR.
1428118334Speter
1428250397SobrienMon Mar 25 13:07:19 1996  Jason Merrill  <jason@yorick.cygnus.com>
1428318334Speter
1428450397Sobrien	* decl.c (cp_finish_decl): Don't build cleanups for static
1428550397Sobrien	variables here.
1428618334Speter
1428750397SobrienFri Mar 22 17:57:55 1996  Mike Stump  <mrs@cygnus.com>
1428818334Speter
1428950397Sobrien	* typeck.c (build_modify_expr): Fix error messages to be more
1429050397Sobrien	accurate.
1429150397Sobrien	* cp-tree.h (assop_as_string): Parallel to op_as_string, but for
1429250397Sobrien	assignment operators.
1429350397Sobrien	* error.c (assop_as_string): Likewise.  Add support for `%Q' for
1429450397Sobrien	assignment operators.
1429518334Speter
1429650397SobrienFri Mar 22 13:48:29 1996  Jason Merrill  <jason@yorick.cygnus.com>
1429718334Speter
1429850397Sobrien	* decl.c (grokdeclarator): Call bad_specifiers for typedefs.  Also
1429952284Sobrien	give an error if initialized.  pedwarn about nested type with the
1430050397Sobrien	same name as its enclosing class.
1430118334Speter
1430250397Sobrien	* pt.c (tsubst, case TYPE_DECL): Set DECL_CONTEXT.
1430318334Speter
1430450397Sobrien	* typeck.c (require_complete_type): Be sure to instantiate the
1430550397Sobrien	MAIN_VARIANT of the type.
1430618334Speter
1430750397Sobrien	* decl2.c (finish_file): Instantiate pending templates before
1430850397Sobrien	processing static constructors and destructors.
1430918334Speter
1431050397Sobrien	* pt.c (instantiate_decl): Don't instantiate functions at toplevel
1431150397Sobrien	unless at_eof.
1431218334Speter
1431350397SobrienFri Mar 22 09:30:17 1996  Bob Manson  <manson@beauty.cygnus.com>
1431418334Speter
1431550397Sobrien	* decl2.c (delete_sanity): If error_mark_node is passed
1431650397Sobrien	in as an expression, quit while we're ahead.
1431718334Speter
1431850397Sobrien	* decl.c (grokdeclarator): Give an error message if `friend'
1431950397Sobrien	is combined with any storage class specifiers.
1432018334Speter
1432150397SobrienWed Mar 20 14:51:55 1996  Jason Merrill  <jason@yorick.cygnus.com>
1432218334Speter
1432350397Sobrien	* parse.y (named_complex_class_head_sans_basetype): Don't crash on
1432450397Sobrien	definition of nonexistent nested type.
1432518334Speter
1432650397Sobrien	* error.c (dump_decl, case TYPE_DECL): Fix decision for whether or
1432750397Sobrien	not to say 'typedef'.
1432818334Speter
1432950397SobrienWed Mar 20 00:11:47 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1433018334Speter
1433150397Sobrien	* cp-tree.h (struct lang_type): Make search_slot a tree, not a char*.
1433250397Sobrien	* search.c (dfs_walk, dfs_init_vbase_pointers,
1433350397Sobrien	expand_upcast_fixups): Remove cast of CLASSTYPE_SEARCH_SLOT.
1433450397Sobrien	(dfs_find_vbases): Remove cast for CLASSTYPE_SEARCH_SLOT init.
1433518334Speter
1433650397SobrienTue Mar 19 17:56:03 1996  Jason Merrill  <jason@yorick.cygnus.com>
1433718334Speter
1433850397Sobrien	* except.c (build_throw): Support minimal parse.
1433950397Sobrien	* pt.c (tsubst_copy): Support THROW_EXPR.
1434050397Sobrien	* decl2.c (build_expr_from_tree): Likewise.
1434118334Speter
1434250397Sobrien	* pt.c (mangle_class_name_for_template): Always allocate
1434350397Sobrien	scratch_firstobj.
1434418334Speter
1434550397SobrienTue Mar 19 16:34:31 1996  Bob Manson  <manson@beauty.cygnus.com>
1434618334Speter
1434750397Sobrien	* cvt.c (cp_convert_to_pointer): Give an appropriate error
1434850397Sobrien	when trying to cast from an incomplete type.
1434918334Speter
1435050397SobrienTue Mar 19 16:00:33 1996  Jason Merrill  <jason@yorick.cygnus.com>
1435118334Speter
1435250397Sobrien	* pt.c (instantiate_class_template): Don't bother setting up
1435350397Sobrien	CLASSTYPE_TAGS explicitly, as the nested types will add
1435450397Sobrien	themselves.
1435518334Speter
1435650397SobrienTue Mar 19 15:48:43 1996  Bob Manson  <manson@beauty.cygnus.com>
1435718334Speter
1435850397Sobrien	* decl.c (shadow_tag): Remove old error check for usage of
1435950397Sobrien	an enum without a previous declaration.
1436050397Sobrien	(xref_tag): Add error message about usage of enums without a
1436150397Sobrien	previous declaration.
1436218334Speter
1436350397SobrienTue Mar 19 09:21:35 1996  Jason Merrill  <jason@yorick.cygnus.com>
1436418334Speter
1436550397Sobrien	* lex.c (do_identifier): Only do name consistency check if we're
1436650397Sobrien	parsing.
1436718334Speter
1436850397Sobrien	* pt.c (push_template_decl): Don't crash if we get a member defn
1436950397Sobrien	that doesn't match.
1437018334Speter
1437150397Sobrien	* decl.c (xref_tag_from_type): New function to do an xref without
1437250397Sobrien	always having to figure out code_type_node.
1437350397Sobrien	* cp-tree.h: Declare it.
1437450397Sobrien	* pt.c (instantiate_class_template): Use it for friend classes.
1437550397Sobrien	(lookup_template_class): Use it.
1437618334Speter
1437750397Sobrien	* typeck2.c (build_functional_cast): Pull out a single parm before
1437850397Sobrien	passing it to build_c_cast.
1437918334Speter
1438050397SobrienTue Mar 19 09:07:15 1996  Bob Manson  <manson@beauty.cygnus.com>
1438118334Speter
1438250397Sobrien	* expr.c (do_case): Give an error message if a pointer is
1438350397Sobrien	given as a case value.
1438418334Speter
1438550397SobrienMon Mar 18 21:57:54 1996  Jason Merrill  <jason@yorick.cygnus.com>
1438618334Speter
1438750397Sobrien	* typeck.c (build_c_cast): Don't pull single TEMPLATE_DECL out of
1438850397Sobrien	an overload list.
1438918334Speter
1439050397Sobrien	* lex.c (cons_up_default_function): Really, now, interface hackery
1439150397Sobrien	does not apply to synthesized methods.
1439218334Speter
1439350397SobrienMon Mar 18 18:20:57 1996  Mike Stump  <mrs@cygnus.com>
1439418334Speter
1439550397Sobrien	* call.c (build_method_call): Ctors and dtors now have special names
1439650397Sobrien	with respect to lookups.
1439750397Sobrien	* class.c (add_method): Likewise.
1439850397Sobrien	(grow_method): Likewise.
1439950397Sobrien	(finish_struct_methods): Likewise.
1440050397Sobrien	(warn_hidden): Likewise.
1440150397Sobrien	(finish_struct_1): Likewise.
1440250397Sobrien	* cvt.c (convert_to_reference): Likewise.
1440350397Sobrien	(convert_to_aggr): Likewise.
1440450397Sobrien	(cp_convert): Likewise.
1440550397Sobrien	* decl2.c (check_classfn): Likewise.
1440650397Sobrien	* init.c (expand_member_init): Likewise.
1440750397Sobrien	(expand_default_init): Likewise.
1440850397Sobrien	(expand_aggr_init_1): Likewise.
1440950397Sobrien	(build_offset_ref): Likewise.
1441050397Sobrien	(build_new): Likewise.
1441150397Sobrien	(build_delete): Likewise.
1441250397Sobrien	* lex.c (do_inline_function_hair): Likewise.
1441350397Sobrien	* search.c (lookup_field_1): Likewise.
1441450397Sobrien	(lookup_fnfields_here): Likewise.
1441550397Sobrien	(lookup_field): Likewise.
1441650397Sobrien	(lookup_fnfields): Likewise.
1441750397Sobrien	(get_virtual_destructor): Likewise.
1441850397Sobrien	(dfs_debug_mark): Likewise.
1441950397Sobrien	(dfs_pushdecls): Likewise.
1442050397Sobrien	(dfs_compress_decls): Likewise.
1442150397Sobrien	* tree.c (layout_basetypes): Likewise.
1442250397Sobrien	* typeck.c (build_component_ref): Likewise.
1442350397Sobrien	(build_x_function_call): Likewise.
1442450397Sobrien	(build_modify_expr): Likewise.
1442550397Sobrien	(convert_for_initialization): Likewise.
1442650397Sobrien	(build_functional_cast): Likewise.
1442750397Sobrien	* cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Likewise.
1442850397Sobrien	(CTOR_NAME): New.
1442950397Sobrien	(DTOR_NAME): New.
1443050397Sobrien	* decl.c (ctor_identifier): New.
1443150397Sobrien	(dtor_identifier): New.
1443250397Sobrien	(init_decl_processing): Set them.
1443318334Speter
1443450397SobrienMon Mar 18 18:00:51 1996  Mike Stump  <mrs@cygnus.com>
1443518334Speter
1443650397Sobrien	* typeck.c (build_component_ref): Don't get confused by fields whose
1443750397Sobrien	context has no type name, like pointer to member functions.
1443818334Speter
1443950397SobrienMon Mar 18 13:19:03 1996  Jason Merrill  <jason@yorick.cygnus.com>
1444018334Speter
1444150397Sobrien	* decl.c (grokdeclarator): Handle typedef without declarator.
1444218334Speter
1444350397Sobrien	* pt.c (tsubst): Handle SCOPE_REF in declarator.
1444418334Speter
1444550397Sobrien	* parse.y (bad_parm): Catch another case of missing `typename'.
1444618334Speter
1444750397Sobrien	* lex.c (yyprint): Handle TYPE_DECLs.
1444818334Speter
1444950397Sobrien	* decl.c (start_function): Don't try to be clever.
1445018334Speter
1445150397Sobrien	* lex.c: Lose compiler_error_with_decl.
1445250397Sobrien	* typeck2.c: Lose error_with_aggr_type.
1445350397Sobrien	(incomplete_type_error): Use cp_* instead of old functions.
1445450397Sobrien	(readonly_error): Likewise.
1445550397Sobrien	* typeck.c (convert_arguments): Likewise.
1445650397Sobrien	* search.c (lookup_nested_field): Likewise.
1445750397Sobrien	* method.c (make_thunk): Likewise.
1445850397Sobrien	* decl.c (grokparms): Likewise.
1445950397Sobrien	* cp-tree.h: Update.
1446018334Speter
1446150397Sobrien	* tree.c (min_tree_cons): Call copy_to_permanent for the purpose
1446250397Sobrien	and value.
1446318334Speter
1446450397SobrienMon Mar 18 11:25:52 1996  Bob Manson  <manson@beauty.cygnus.com>
1446518334Speter
1446650397Sobrien	* method.c (build_opfncall): When deleting a pointer to an
1446750397Sobrien	array, build a new pointer to the tree past any ARRAY_TYPE
1446850397Sobrien	nodes.
1446918334Speter
1447050397SobrienMon Mar 18 10:11:46 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1447118334Speter
1447250397Sobrien	* decl.c (lookup_name_real): Initialize local var TYPE to NULL_TREE.
1447318334Speter
1447450397SobrienFri Mar 15 11:03:57 1996  Jason Merrill  <jason@yorick.cygnus.com>
1447518334Speter
1447650397Sobrien	* pt.c (instantiate_decl): Only call import_export_decl if at_eof
1447750397Sobrien	and ! DECL_INLINE.
1447818334Speter
1447950397Sobrien	* decl.c (finish_function): Don't set nested based on
1448050397Sobrien	hack_decl_function_context.
1448150397Sobrien	* parse.y (function_try_block): Check for nested function.
1448250397Sobrien	(pending_inlines): Likewise.
1448318334Speter
1448450397Sobrien	* decl2.c (build_expr_from_tree): If a unary op already has a
1448550397Sobrien	type, just return it.
1448618334Speter
1448750397Sobrien	* decl2.c (finish_prevtable_vardecl): Use ADJUST_VTABLE_LINKAGE.
1448818334Speter
1448950397Sobrien	* decl2.c (walk_vtables): vardecl_fn returns int; return 1 if it does.
1449050397Sobrien	(finish_file): Check the return value of walk_vtables.
1449150397Sobrien	(finish_prevtable_vardecl): Return int.
1449250397Sobrien	(finish_vtable_vardecl): Likewise.
1449350397Sobrien	(prune_vtable_vardecl): Likewise.
1449450397Sobrien	* lex.c (set_vardecl_interface_info): Likewise.
1449550397Sobrien	* cp-tree.h: Adjust return types.
1449618334Speter
1449750397Sobrien	* class.c (delete_duplicate_fields_1): Don't complain about
1449850397Sobrien	duplicate nested types if they're the same type.
1449950397Sobrien	(finish_struct): Remove check for duplicate.
1450050397Sobrien	* decl2.c (grokfield): Don't check for typedef of anonymous type.
1450118334Speter
1450250397SobrienThu Mar 14 10:00:19 1996  Jason Merrill  <jason@yorick.cygnus.com>
1450318334Speter
1450450397Sobrien	* cp-tree.h: Lose SIGNATURE_GROKKING_TYPEDEF.
1450518334Speter
1450650397Sobrien	* decl.c (grokdeclarator): Lose special handling of class-level
1450750397Sobrien	typedef.  Lose SIGNATURE_GROKKING_TYPEDEF.  Set
1450850397Sobrien	SIGNATURE_HAS_OPAQUE_TYPEDECLS later.
1450918334Speter
1451050397Sobrien	* cvt.c (convert_pointer_to_real): Retain cv-quals in conversion.
1451118334Speter
1451250397Sobrien	* pt.c (tsubst_copy): Strip cv-quals from destructor name types.
1451318334Speter
1451450397Sobrien	* search.c (compute_access): Fix handling of anonymous union
1451550397Sobrien	members.
1451650397Sobrien	* class.c (finish_struct_anon): Propagate TREE_{PRIVATE,PROTECTED}
1451750397Sobrien	from anonymous unions to their members.
1451818334Speter
1451950397Sobrien	* typeck.c (build_x_function_call): For static member functions,
1452050397Sobrien	hand off to build_member_call.
1452118334Speter
1452250397SobrienWed Mar 13 14:03:34 1996  Jason Merrill  <jason@yorick.cygnus.com>
1452318334Speter
1452450397Sobrien	* typeck.c (build_component_ref): Handle OFFSET_REFs.
1452518334Speter
1452650397Sobrien	* init.c (expand_vec_init): Fix init == 0 case.
1452718334Speter
1452850397SobrienTue Mar 12 14:36:02 1996  Jason Merrill  <jason@yorick.cygnus.com>
1452918334Speter
1453052284Sobrien	* init.c (build_new): pedwarn about init and array new.
1453150397Sobrien	(expand_vec_init): Handle lists, use convert_for_initialization.
1453218334Speter
1453350397Sobrien	* typeck.c (convert_for_initialization): Pass LOOKUP_NO_CONVERSION
1453450397Sobrien	when converting to an aggregate type.
1453550397Sobrien	* cvt.c (cp_convert): Pass it through.
1453618334Speter
1453750397Sobrien	* typeck.c (build_conditional_expr): Handle user-defined
1453850397Sobrien	conversions to slightly different types.
1453918334Speter
1454050397Sobrien	* decl.c (grokdeclarator): Force an array type in a parm to be
1454150397Sobrien	permanent.
1454218334Speter
1454350397Sobrien	* decl2.c (do_using_directive): Sorry.
1454450397Sobrien	(do_namespace_alias): Likewise.
1454550397Sobrien	* lex.c (real_yylex): Warn about using the `namespace' keyword.
1454618334Speter
1454750397SobrienSun Mar 10 22:26:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
1454818334Speter
1454950397Sobrien	* parse.y (datadef): Move call to note_list_got_semicolon up.
1455018334Speter
1455150397SobrienFri Mar  8 11:47:26 1996  Mike Stump  <mrs@cygnus.com>
1455218334Speter
1455350397Sobrien	* tree.c (unsave_expr): Don't unsave, UNSAVE_EXPRs.
1455418334Speter
1455550397SobrienFri Mar  8 11:29:06 1996  Mike Stump  <mrs@cygnus.com>
1455618334Speter
1455750397Sobrien	* decl.c (cp_finish_decl): The exception regions have to be
1455850397Sobrien	nested, not overlapping.  We start the exception region for a
1455950397Sobrien	decl, after it has been fully built, and all temporaries for it
1456050397Sobrien	have been cleaned up.
1456118334Speter
1456250397SobrienThu Mar  7 17:46:06 1996  Mike Stump  <mrs@cygnus.com>
1456318334Speter
1456450397Sobrien	* tree.c (vec_binfo_member): Don't core dump if we have no bases.
1456518334Speter
1456650397SobrienThu Mar  7 14:11:49 1996  Jason Merrill  <jason@yorick.cygnus.com>
1456718334Speter
1456850397Sobrien	* tree.def: Add RETURN_INIT.
1456950397Sobrien	* pt.c (instantiate_decl): Handle RETURN_INIT.
1457050397Sobrien	* decl.c (store_return_init): Handle minimal_parse_mode.
1457118334Speter
1457250397Sobrien	* tree.c (cp_build_type_variant): Just return an error_mark_node.
1457350397Sobrien	* decl.c (make_typename_type): Don't try to get the file and line
1457450397Sobrien	of an identifier.
1457550397Sobrien	* typeck.c (comptypes): Handle TYPENAME_TYPE.
1457618334Speter
1457750397SobrienWed Mar  6 18:47:50 1996  Per Bothner  <bothner@kalessin.cygnus.com>
1457818334Speter
1457950397Sobrien	* decl.c (poplevel): Make sure we clear out and restore old local
1458050397Sobrien	non-VAR_DECL values by default when they go out of scope.
1458118334Speter
1458250397SobrienWed Mar  6 09:57:36 1996  Jason Merrill  <jason@yorick.cygnus.com>
1458318334Speter
1458450397Sobrien	* method.c (build_overload_value): Use DECL_ASSEMBLER_NAME in
1458550397Sobrien	referring to addresses of variables and functions.
1458618334Speter
1458750397Sobrien	* error.c (dump_expr): Support SIZEOF_EXPR.
1458818334Speter
1458950397Sobrien	* init.c (do_friend): Use the return value of check_classfn.
1459018334Speter
1459150397Sobrien	* typeck.c (convert_arguments): Call complete_type.
1459218334Speter
1459350397Sobrien	* method.c (hack_identifier): After giving an error, set value to
1459450397Sobrien	error_mark_node.
1459518334Speter
1459650397SobrienTue Mar  5 16:00:15 1996  Jason Merrill  <jason@yorick.cygnus.com>
1459718334Speter
1459850397Sobrien	* tree.c (hack_decl_function_context): Kludge around DECL_CONTEXT
1459950397Sobrien	lossage for local classes.
1460050397Sobrien	* cp-tree.h: Declare it.
1460150397Sobrien	* decl.c (lookup_name_real): Evil, painful hack for local classes.
1460250397Sobrien	(grokfndecl): Set DECL_CLASS_CONTEXT and DECL_NO_STATIC_CHAIN here.
1460350397Sobrien	Use hack_decl_function_context.
1460450397Sobrien	(grokdeclarator): Don't set DECL_NO_STATIC_CHAIN here.
1460550397Sobrien	(start_function): Use hack_decl_function_context.
1460650397Sobrien	(finish_function): Likewise.
1460750397Sobrien	* method.c (synthesize_method): Likewise.
1460850397Sobrien	* lex.c (process_next_inline): Likewise.
1460950397Sobrien	(do_pending_inlines): Likewise.
1461050397Sobrien	* decl2.c (finish_file): Unset DECL_STATIC_FUNCTION_P when we're
1461150397Sobrien	done with it.
1461218334Speter
1461350397SobrienMon Mar  4 22:38:39 1996  Gerald Baumgartner  <gb@alexander.cs.purdue.edu>
1461450397Sobrien
1461550397Sobrien	* sig.c (build_signature_pointer_or_reference_type): Align
1461650397Sobrien	signature pointers/references on 8-byte boundaries so they can be
1461750397Sobrien	grabbed 2 words at a time on a Sparc.
1461850397Sobrien
1461950397SobrienTue Mar  5 10:21:01 1996  Jason Merrill  <jason@yorick.cygnus.com>
1462050397Sobrien
1462150397Sobrien	* method.c (hack_identifier): Requiring a static chain is now a
1462250397Sobrien	hard error.
1462350397Sobrien	* decl.c (grokdeclarator): Set DECL_NO_STATIC_CHAIN on nested
1462450397Sobrien	functions.
1462550397Sobrien
1462650397SobrienMon Mar  4 20:03:33 1996  Jason Merrill  <jason@yorick.cygnus.com>
1462750397Sobrien
1462850397Sobrien	* init.c (build_offset_ref): Call complete_type.
1462950397Sobrien
1463050397Sobrien	* decl.c (pop_from_top_level): Always pop previous_class_type.
1463150397Sobrien
1463250397Sobrien	* parse.y: Handle multiple decls in a for-init-statement.
1463350397Sobrien	* pt.c (tsubst_expr): Likewise.
1463450397Sobrien
1463550397Sobrien	* pt.c (tsubst): Use tsubst_expr for the second operand of an
1463650397Sobrien	ARRAY_REF.
1463750397Sobrien
1463850397Sobrien	* decl.c (maybe_push_to_top_level): Don't save previous_class_type.
1463950397Sobrien	(poplevel_class): Set it here.
1464050397Sobrien	(pop_from_top_level): Pop it here if we're returning to class scope.
1464150397Sobrien	* class.c (pushclass): Don't set it here.
1464250397Sobrien
1464350397Sobrien	* decl.c (maybe_push_to_top_level): Save current_template_parms,
1464450397Sobrien	and clear it if !pseudo.
1464550397Sobrien	(pop_from_top_level): Restore it.
1464650397Sobrien
1464750397Sobrien	* decl2.c (finish_file): Push the dummy each time we walk the list
1464850397Sobrien	of vtables.
1464950397Sobrien
1465050397Sobrien	* error.c (dump_expr): Support LOOKUP_EXPR and actually do
1465150397Sobrien	something for CAST_EXPR.
1465252284Sobrien
1465350397SobrienMon Feb 19 14:49:18 1996  Rusty Russell  <rusty@adelaide.maptek.com.au>
1465418334Speter
1465550397Sobrien	* cvt.c (cp_convert): Warn about implicit conversion of the
1465650397Sobrien	address of a function to bool, as it is always true.
1465718334Speter
1465850397SobrienFri Feb 23 23:06:01 1996  Rusty Russell  <rusty@adelaide.maptek.com.au>
1465918334Speter
1466050397Sobrien	* typeck.c (c_expand_return): Fix warning for local externs returned.
1466118334Speter
1466250397SobrienMon Mar  4 15:03:11 1996  Jason Merrill  <jason@yorick.cygnus.com>
1466318334Speter
1466450397Sobrien	* tree.c (mapcar): Propagate const and volatile properly.
1466518334Speter
1466650397Sobrien	* typeck.c (complete_type): Be sure to instantiate the
1466750397Sobrien	MAIN_VARIANT of the type.
1466818334Speter
1466950397Sobrien	* method.c (synthesize_method): Class interface hackery does not
1467050397Sobrien	apply to synthesized methods.
1467118334Speter
1467250397SobrienMon Mar  4 14:05:23 1996  Jason Merrill  <jason@yorick.cygnus.com>
1467318334Speter
1467450397Sobrien	* pt.c (comp_template_args): Use comptypes rather than just
1467550397Sobrien	checking for TEMPLATE_TYPE_PARM equivalence.
1467618334Speter
1467750397Sobrien	* typeck.c (build_x_function_call): Call complete_type before
1467850397Sobrien	checking TYPE_OVERLOADS_CALL_EXPR.
1467918334Speter
1468050397SobrienMon Mar  4 18:48:30 1996  Manfred Hollstein   <manfred@lts.sel.alcatel.de>
1468118334Speter
1468250397Sobrien	* g++.c (main): Check also for new define ALT_LIBM.
1468318334Speter
1468450397SobrienFri Mar  1 13:09:33 1996  Jason Merrill  <jason@yorick.cygnus.com>
1468518334Speter
1468650397Sobrien	* pt.c (instantiate_class_template): If we don't have a pattern
1468750397Sobrien	yet, that's OK.
1468850397Sobrien	(coerce_template_parms): If we see a local class, bail.
1468918334Speter
1469050397Sobrien	* decl.c (grok_reference_init): Make sure there's a type before
1469150397Sobrien	checking its code.
1469218334Speter
1469350397Sobrien	* pt.c (do_function_instantiation): Avoid crashing on invalid decls.
1469450397Sobrien	(push_template_decl): Likewise.
1469518334Speter
1469650397Sobrien	* parse.y (named_class_head): Set
1469750397Sobrien	CLASSTYPE_TEMPLATE_SPECIALIZATION here if we have basetypes.
1469818334Speter
1469950397Sobrien	* decl.c (xref_tag): Diagnose redeclaration of template
1470050397Sobrien	type-parameter name.
1470118334Speter
1470250397Sobrien	* error.c (dump_type): Handle anonymous template type parms.
1470318334Speter
1470450397Sobrien	* pt.c (instantiate_template): Use TYPE_MAIN_DECL instead of
1470550397Sobrien	TYPE_STUB_DECL.
1470650397Sobrien	(coerce_template_parms): Likewise.
1470718334Speter
1470850397SobrienThu Feb 29 16:26:01 1996  Mike Stump  <mrs@cygnus.com>
1470918334Speter
1471050397Sobrien	* class.c (instantiate_type, case {ARRAY,INDIRECT}_REF,
1471150397Sobrien	case ADDR_EXPR): Don't modify rhs if a subinstantiation fails.
1471218334Speter
1471350397SobrienThu Feb 29 08:20:25 1996  Jason Merrill  <jason@yorick.cygnus.com>
1471418334Speter
1471550397Sobrien	* pt.c (instantiate_template): Take the MAIN_VARIANT of the type
1471650397Sobrien	before trying to get its STUB_DECL.
1471750397Sobrien	(coerce_template_parms): Likewise.
1471818334Speter
1471950397Sobrien	* parse.y (template_type_parm): If they didn't use 'class',
1472050397Sobrien	pretend they did after giving an error.
1472118334Speter
1472250397Sobrien	* pt.c (coerce_template_parms): Diagnose use of local class.
1472318334Speter
1472450397Sobrien	* decl.c (grok_reference_init): Use instantiate_type.
1472518334Speter
1472650397Sobrien	* error.c (dump_expr): Handle TEMPLATE_DECLs.
1472718334Speter
1472850397Sobrien	* parse.y (named_class_head): Diagnose mismatching types and tags.
1472918334Speter
1473050397Sobrien	* decl.c (pushdecl): Type decls and class templates clash with
1473150397Sobrien	artificial type decls, not hide them.
1473218334Speter
1473350397Sobrien	* decl.c (redeclaration_error_message): Diagnose redefinition of
1473450397Sobrien	templates properly.
1473550397Sobrien	(duplicate_decls): Diagnose disallowed overloads for template
1473650397Sobrien	functions, too.
1473718334Speter
1473850397Sobrien	* decl.c (start_decl): Call complete_type before checking for a
1473950397Sobrien	destructor.
1474018334Speter
1474150397Sobrien	* pt.c (tsubst): Use tsubst_expr on the elts of a VEC.
1474218334Speter
1474350397Sobrien	* decl.c (xref_tag): A TEMPLATE_TYPE_PARM is a match.
1474418334Speter
1474550397SobrienWed Feb 28 09:28:44 1996  Jason Merrill  <jason@yorick.cygnus.com>
1474650397Sobrien
1474750397Sobrien	* decl.c (grok_op_properties): Don't check for operator++(int) in
1474850397Sobrien	a template.
1474950397Sobrien
1475050397Sobrien	* tree.c (perm_manip): Return a copy of variable and function
1475150397Sobrien	decls with external linkage.
1475250397Sobrien
1475350397Sobrien	* tree.def: Change some of the min tree codes to type "1".
1475450397Sobrien	* pt.c (uses_template_parms): Handle 'e's, return 1 for LOOKUP_EXPRs.
1475550397Sobrien	* method.c (build_overload_int): Emit something arbitrary for
1475650397Sobrien	anything but an INTEGER_CST if we're in a template.
1475750397Sobrien
1475850397Sobrien	* decl.c (cp_finish_decl): Call complete_type before deciding
1475950397Sobrien	whether or not to lay out the decl.
1476050397Sobrien
1476150397Sobrien	* lex.c (do_identifier): Check for DECL_INITIAL before using it.
1476250397Sobrien
1476350397SobrienTue Feb 27 16:35:32 1996  Jason Merrill  <jason@yorick.cygnus.com>
1476450397Sobrien
1476550397Sobrien	* typeck2.c (build_x_arrow): Call complete_type.
1476650397Sobrien
1476750397Sobrien	* pt.c (add_pending_template): Broken out.
1476850397Sobrien	(lookup_template_class): If -fexternal-templates, call it for all
1476950397Sobrien	the methods of implemented types.
1477050397Sobrien	(instantiate_class_template): Instead of instantiating them here.
1477150397Sobrien	(instantiate_decl): Handle -fexternal-templates earlier.
1477250397Sobrien
1477350397SobrienTue Feb 27 15:51:32 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1477450397Sobrien
1477550397Sobrien	* search.c, lex.c, decl.c, class.c, cp-tree.h: Don't wrap the
1477650397Sobrien	memoized lookup stuff inside GATHER_STATISTICS.
1477750397Sobrien
1477850397SobrienTue Feb 27 10:38:08 1996  Jason Merrill  <jason@yorick.cygnus.com>
1477950397Sobrien
1478050397Sobrien	* decl.c (start_decl): Complain about array of incomplete type
1478118334Speter	here.
1478250397Sobrien	(grokdeclarator): Not here.
1478318334Speter
1478450397Sobrien	* parse.y (template_parm): Expand full_parm inline so we can set
1478550397Sobrien	the rule's precedence.
1478618334Speter
1478750397Sobrien	* pt.c (tsubst_expr): If we're in a template, just do tsubst_copy.
1478850397Sobrien	(tsubst): tsubst_expr the DECL_INITIAL of FIELD_DECLs.
1478950397Sobrien	* decl2.c (grokbitfield): Don't check for integer constant here.
1479050397Sobrien	* class.c (finish_struct_1): Check here.
1479118334Speter
1479250397Sobrien	* decl.c (define_label): Make the min decl go on permanent_obstack.
1479318334Speter
1479450397Sobrien	* pt.c (unify): Don't handle CONST_DECLs.
1479550397Sobrien	(uses_template_parms): Don't check DECL_INITIAL on a CONST_DECL.
1479650397Sobrien	(tsubst_copy): Likewise.
1479718334Speter
1479850397Sobrien	* lex.c (do_identifier): Do pull the DECL_INITIAL out of a
1479950397Sobrien	CONST_DECL for a template parm.
1480018334Speter
1480150397SobrienMon Feb 26 12:48:18 1996  Jason Merrill  <jason@yorick.cygnus.com>
1480218334Speter
1480350397Sobrien	* decl.c (grokdeclarator): Complain about array of incomplete type
1480450397Sobrien	here.
1480550397Sobrien	(start_decl_1): Not here.
1480618334Speter
1480750397Sobrien	* pt.c (tsubst): Handle pointer-to-function declarators.
1480818334Speter
1480950397Sobrien	* method.c (hack_identifier): If pedantic, diagnose local class
1481050397Sobrien	methods that require a static chain.
1481118334Speter
1481250397Sobrien	* decl.c (grok_op_properties): No longer static.
1481350397Sobrien	* cp-tree.h: Declare it.
1481450397Sobrien	* pt.c (tsubst): Call it for operators.
1481550397Sobrien	Use tsubst_copy for TREE_VECs.
1481618334Speter
1481750397Sobrien	* parse.y (template_arg): The expr has precedence like '>'.
1481818334Speter
1481950397SobrienFri Feb 23 14:51:52 1996  Jason Merrill  <jason@yorick.cygnus.com>
1482018334Speter
1482150397Sobrien	* pt.c (coerce_template_parms): Don't coerce an expression using
1482250397Sobrien	template parms.
1482350397Sobrien	(uses_template_parms): Also check DECL_INITIAL in CONST_DECLs.
1482450397Sobrien	(tsubst): Don't use build_index_2_type if the max_value uses template
1482550397Sobrien	parms.
1482650397Sobrien	* method.c (build_overload_int): Emit something arbitrary for an
1482750397Sobrien	expression using template parms.
1482818334Speter
1482950397Sobrien	* parse.y (template_close_bracket): New non-terminal to catch use
1483050397Sobrien	of '>>' instead of '> >' in template class names.
1483150397Sobrien	(template_type): Use it.
1483250397Sobrien	* Makefile.in (CONFLICTS): Causes one more r/r conflict.
1483318334Speter
1483450397Sobrien	* tree.def: Add CAST_EXPR.
1483550397Sobrien	* typeck2.c (build_functional_cast): Use CAST_EXPR instead of
1483650397Sobrien	CONVERT_EXPR for minimal_parse_mode.
1483750397Sobrien	* typeck.c (build_c_cast): Likewise.
1483850397Sobrien	* pt.c (tsubst_copy): Likewise.
1483950397Sobrien	* decl2.c (build_expr_from_tree): Likewise.
1484050397Sobrien	* error.c (dump_expr): Likewise.
1484118334Speter
1484250397SobrienFri Feb 23 10:36:46 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1484318334Speter
1484450397Sobrien	* except.c (SetTerminate, SetUnexpected): Put back global vars.
1484550397Sobrien	(init_exception_processing): Put back decl/init of
1484650397Sobrien	set_unexpected_fndecl and set_terminate_fndecl, needed to get the
1484750397Sobrien	fns from libstdc++.
1484818334Speter
1484950397Sobrien	* decl.c (struct binding_level): Delete ACCEPT_ANY bitfield.
1485050397Sobrien	(declare_uninstantiated_type_level, uninstantiated_type_level_p):
1485150397Sobrien	Delete unused fns.
1485250397Sobrien	* cp-tree.h (declare_uninstantiated_type_level,
1485350397Sobrien	uninstantiated_type_level_p): Delete prototypes.
1485418334Speter
1485550397SobrienThu Feb 22 19:36:15 1996  Jason Merrill  <jason@yorick.cygnus.com>
1485618334Speter
1485750397Sobrien	* pt.c (tsubst_expr): Add default return.
1485818334Speter
1485950397SobrienThu Feb 22 16:47:24 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1486018334Speter
1486150397Sobrien	* error.c (fndecl_as_string): Delete unused arg CNAME.
1486250397Sobrien	* sig.c (build_signature_table_constructor,
1486350397Sobrien	build_signature_method_call): Fix calls.
1486418334Speter
1486550397Sobrien	* class.c (the_null_vtable_entry): Delete var definition.
1486650397Sobrien	(init_class_processing): Delete tree the_null_vtable_entry init.
1486750397Sobrien	* decl.c (no_print_{functions, builtins}): Declare as static.
1486850397Sobrien	(__tp_desc_type_node): #if 0 var definition.
1486950397Sobrien	(init_type_desc): #if 0 init of __tp_desc_type_node.
1487050397Sobrien	(vb_off_identifier): Move var decl into init_decl_processing.
1487150397Sobrien	(current_function_assigns_this): Declare as static.
1487250397Sobrien	(int_ftype_ptr_ptr_int, void_ftype_ptr_int_int): Delete var decls.
1487350397Sobrien	(init_decl_processing): Delete init of void_ftype_ptr_ptr_int.
1487450397Sobrien	Move decls of string_ftype_ptr_ptr and int_ftype_string_string here.
1487550397Sobrien	* decl2.c (delete_sanity): Delete definition/mod of local var ELT_SIZE.
1487650397Sobrien	* init.c (BI_header_type, BI_header_size): Declare as static.
1487750397Sobrien	* pt.c (template_classes): Delete unused var.
1487850397Sobrien	(add_pending_template): Delete decl for non-existent fn.
1487950397Sobrien	(lookup_template_class): Delete vars CODE and TAG_CODE.
1488050397Sobrien	(instantiate_template): Delete unused var TARGS.
1488150397Sobrien	* cp-tree.h (vb_off_identifier, current_function_assigns_this):
1488250397Sobrien	Delete decls.
1488350397Sobrien	(__tp_desc_type_node): #if 0 var decl.
1488450397Sobrien	(fndecl_as_string): Fix prototype.
1488518334Speter
1488650397SobrienThu Feb 22 15:56:19 1996  Jason Merrill  <jason@yorick.cygnus.com>
1488718334Speter
1488850397Sobrien	* tree.def: Add GOTO_STMT.
1488950397Sobrien	* pt.c (tsubst_expr): Support goto and labels.
1489050397Sobrien	* decl.c (define_label): Support minimal parsing.
1489150397Sobrien	* parse.y (simple_stmt): Likewise.
1489218334Speter
1489350397SobrienThu Feb 22 15:30:12 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1489418334Speter
1489550397Sobrien	* xref.c (GNU_xref_member): Only define/set var I if
1489650397Sobrien	XREF_SHORT_MEMBER_NAMES is defined, to match when it's actually
1489750397Sobrien	used.
1489850397Sobrien	(GNU_xref_end_scope): Delete unused fifth arg TRNS.
1489950397Sobrien	(GNU_xref_end): Fix call.
1490050397Sobrien	* decl.c (poplevel, poplevel_class, finish_method): Fix calls.
1490150397Sobrien	* cp-tree.h (GNU_xref_end_scope): Fix prototype.
1490218334Speter
1490350397Sobrien	* tree.c (build_exception_variant): Delete unused vars I, A, T,
1490450397Sobrien	T2, and CNAME.
1490550397Sobrien	(layout_vbasetypes): Delete unused var NONVIRTUAL_VAR_SIZE.
1490650397Sobrien	(mapcar): Delete unused var CODE.
1490750397Sobrien	(build_cplus_new): Delete unused arg WITH_CLEANUP_P.
1490850397Sobrien	(break_out_cleanups): Fix call.
1490950397Sobrien	(bot_manip): Likewise.
1491050397Sobrien	* call.c (build_method_call): Likewise.
1491150397Sobrien	* cvt.c (build_up_reference, convert_to_reference, cp_convert):
1491250397Sobrien	Likewise.
1491350397Sobrien	* typeck.c (unary_complex_lvalue, build_modify_expr,
1491450397Sobrien	convert_for_initialization): Likewise.
1491550397Sobrien	* typeck2.c (build_functional_cast): Likewise.
1491650397Sobrien	* cp-tree.h (build_cplus_new): Fix prototype.
1491718334Speter
1491850397Sobrien	* repo.c (open_repo_file): Delete unused var Q.
1491950397Sobrien	(repo_compile_flags, repo_template_declared,
1492050397Sobrien	repo_template_defined, repo_class_defined, repo_inline_used,
1492150397Sobrien	repo_vtable_used, repo_tinfo_used): #if 0 unused fns.
1492252284Sobrien	(repo_get_id, repo_vtable_used): Declare as static.
1492350397Sobrien	* cp-tree.h (mark_{decl,class}_instantiated, finish_repo): Add
1492450397Sobrien	prototypes.
1492518334Speter
1492650397SobrienThu Feb 22 14:53:35 1996  Jason Merrill  <jason@yorick.cygnus.com>
1492718334Speter
1492850397Sobrien	* parse.y (pending_inlines): Add function_try_block case.
1492918334Speter
1493050397Sobrien	* pt.c (unify): Fix for template const parms.
1493118334Speter
1493250397SobrienThu Feb 22 13:24:15 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1493318334Speter
1493450397Sobrien	* lex.c (extract_interface_info): Delete forward decl.
1493550397Sobrien	(default_copy_constructor_body, default_assign_ref_body): Delete
1493650397Sobrien	decls for non-existent functions.
1493750397Sobrien	(synth_firstobj, inline_text_firstobjs): Delete unused vars.
1493850397Sobrien	(init_lex): Delete setting them.
1493950397Sobrien	(cons_up_default_function): Delete unused vars FUNC_BUF,
1494050397Sobrien	FUNC_LEN, and COMPLEX.  Delete code setting COMPLEX.  Delete old
1494150397Sobrien	#if 0'd synth code.
1494250397Sobrien	(toplevel, expression_obstack): Delete unused extern decls.
1494350397Sobrien	(tree_node_kind): Delete unused enum.
1494450397Sobrien	(tree_node_counts, tree_node_sizes): Wrap with #ifdef
1494550397Sobrien	GATHER_STATISTICS.
1494650397Sobrien	(tree_node_kind_names): Delete unused extern decl.
1494750397Sobrien	(synth_obstack): Delete unused var.
1494850397Sobrien	(init_lex): Don't set it.
1494950397Sobrien	(init_parse): Add decl before use.
1495050397Sobrien	(reduce_count): Only define #ifdef GATHER_STATISTICS && REDUCE_LENGTH.
1495152284Sobrien	(current_unit_{name, language}): Delete unused vars.
1495250397Sobrien	(check_newline): Don't bother setting them, just accept the #pragma.
1495350397Sobrien	* cp-tree.h (init_repo, peek_yylex): Add prototypes.
1495450397Sobrien	(current_unit_{name, language}): Delete decls.
1495518334Speter
1495650397Sobrien	* search.c: Wrap all of the memoized functions, macros, and
1495750397Sobrien	variables inside #ifdef GATHER_STATISTICS.
1495850397Sobrien	(lookup_field, lookup_fnfields): Likewise.
1495950397Sobrien	(init_search_processing): Likewise.
1496050397Sobrien	(reinit_search_statistics): Wrap whole function.
1496150397Sobrien	* lex.c (reinit_lang_specific): Wrap call to reinit_search_statistics.
1496218334Speter
1496350397Sobrien	* decl.c (finish_function): Only call pop_memoized_context if
1496450397Sobrien	GATHER_STATISTICS is defined.
1496550397Sobrien	(start_function): Likewise for push_memoized_context.
1496650397Sobrien	* class.c (pushclass, popclass): Likewise.
1496718334Speter
1496850397Sobrien	* cp-tree.h (CLASSTYPE_MTABLE_ENTRY): Move definition from here...
1496950397Sobrien	* search.c (CLASSTYPE_MTABLE_ENTRY): ... to here.
1497018334Speter
1497150397Sobrien	* cvt.c (cp_convert): Delete unused local var FORM.
1497250397Sobrien	* cp-tree.h (can_convert, can_convert_arg, real_lvalue_p): Add
1497350397Sobrien	prototypes.
1497418334Speter
1497550397SobrienThu Feb 22 13:19:44 1996  Jason Merrill  <jason@yorick.cygnus.com>
1497618334Speter
1497750397Sobrien	* pt.c (do_poplevel): Oops; really return what we get from
1497850397Sobrien	poplevel this time.
1497918334Speter
1498050397SobrienThu Feb 22 11:41:44 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1498118334Speter
1498250397Sobrien	* cp-tree.h (is_aggr_type): Add prototype.
1498318334Speter
1498450397Sobrien	* cp-tree.h ({push,pop}_cp_function_context): Add decls.
1498550397Sobrien	* method.c ({push,pop}_cp_function_context): Delete decls.
1498650397Sobrien	* except.c (start_eh_unwinder, end_eh_unwinder): Declare as void.
1498750397Sobrien	(SetUnexpected, SetTerminate): Delete unused vars.
1498850397Sobrien	(init_exception_processing): Don't set SetUnexpected or
1498950397Sobrien	SetTerminate.  Don't set SET_UNEXPECTED_FNDECL or SET_TERMINATE_FNDECL.
1499050397Sobrien	(output_exception_table_entry): Delete unused array LABEL.
1499150397Sobrien	(expand_internal_throw): Delete unused var PARAMS.
1499250397Sobrien	(expand_start_catch_block): Delete unused var CLEANUP.
1499350397Sobrien	(emit_exception_table): Delete unused var EH_NODE_DECL.
1499450397Sobrien	(expand_builtin_throw): Delete unused vars UNWIND_AND_THROW and
1499550397Sobrien	GOTO_UNWIND_AND_THROW.  Don't set them.
1499650397Sobrien	(end_eh_unwinder): Add top decl.
1499750397Sobrien	(pop_rtl_from_perm): Delete unused decl of PERMANENT_OBSTACK.
1499850397Sobrien	(exception_section, push_rtl_perm, do_function_call,
1499950397Sobrien	lang_interim_eh, push_eh_cleanup, eh_outer_context,
1500050397Sobrien	expand_end_eh_spec, end_eh_unwinder): Declare as static.
1500150397Sobrien	(saved_pc, saved_throw_type, saved_throw_value, saved_cleanup,
1500250397Sobrien	throw_used): Likewise.
1500350397Sobrien	* cp-tree.h (expand_end_eh_spec): Delete prototype.
1500418334Speter
1500550397Sobrien	* search.c (dfs_mark, dfs_mark_vtable_path,
1500650397Sobrien	dfs_unmark_vtable_path, dfs_mark_new_vtable,
1500750397Sobrien	dfs_unmark_new_vtable, dfs_clear_search_slot,
1500850397Sobrien	dfs_search_slot_nonempty_p, bfs_markedp, bfs_unmarkedp,
1500950397Sobrien	bfs_marked_vtable_pathp, bfs_unmarked_vtable_pathp,
1501050397Sobrien	bfs_marked_new_vtablep, bfs_unmarked_new_vtablep): #if 0 unused
1501150397Sobrien	functions.
1501250397Sobrien	(n_fields_searched, n_calls_lookup_field, n_calls_lookup_field_1,
1501350397Sobrien	n_calls_lookup_fnfields, n_calls_lookup_fnfields_1,
1501450397Sobrien	n_calls_get_base_type, n_outer_fields_searched, n_contexts_saved):
1501550397Sobrien	Only define #ifdef GATHER_STATISTICS.
1501650397Sobrien	(reinit_search_statistics): Only init some vars if GATHER_STATISTICS
1501750397Sobrien	is defined.
1501850397Sobrien	(vbase_decl): Delete var definition.
1501950397Sobrien	(init_search): Delete old decl.
1502050397Sobrien	(init_vbase_pointers): Delete building of VBASE_DECL, since it's
1502150397Sobrien	never actually used.
1502250397Sobrien	(expand_indirect_vtbls_init): Delete init of VBASE_DECL.
1502350397Sobrien	(get_base_distance_recursive): Delete unused fourth arg
1502450397Sobrien	BASETYPE_PATH.  Fix call .
1502550397Sobrien	(get_base_distance): Fix call.
1502650397Sobrien	(push_class_decls): Delete unused var ID.
1502750397Sobrien	(make_memoized_table_entry): Declare as static.
1502850397Sobrien	(breadth_first_search): Declare as static.
1502950397Sobrien	(tree_has_any_destructor_p): Declare as static.
1503050397Sobrien	(pop_class_decls): Delete unused arg pop_class_decls.
1503150397Sobrien	* class.c (popclass): Fix call to pop_class_decls.
1503250397Sobrien	* cp-tree.h (make_memoized_table_entry, breadth_first_search,
1503350397Sobrien	tree_has_any_destructor_p): Delete prototypes.
1503418334Speter
1503550397Sobrien	* rtti.c (build_ptmf_desc): Delete unused arg TYPE.
1503650397Sobrien	(build_t_desc): Fix call.  Delete unused vars ELEMS and TT.
1503750397Sobrien	(build_dynamic_cast): Delete unused local vars TMP1 and RETVAL.
1503850397Sobrien	(build_user_desc): Delete unused var T.
1503950397Sobrien	(build_class_desc): Delete unused vars T and OFF.
1504050397Sobrien	(build_t_desc): Delete unused var NAME_STRING.
1504150397Sobrien	(build_headof): Make static.
1504250397Sobrien	(get_bad_cast_node): Likewise.
1504350397Sobrien	(get_def_to_follow): Likewise.
1504450397Sobrien	* cp-tree.h (init_type_desc): Add prototype.
1504550397Sobrien	(build_headof): Remove prototype.
1504618334Speter
1504750397SobrienThu Feb 22 00:54:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
1504818334Speter
1504950397Sobrien	* pt.c (tsubst): Only look for matching decls at file scope for
1505050397Sobrien	non-member functions.
1505118334Speter
1505250397Sobrien	* call.c (build_scoped_method_call): Handle scoped destructor
1505350397Sobrien	calls in templates.
1505418334Speter
1505550397Sobrien	* decl.c (*_top_level): Also save previous_class_values.
1505618334Speter
1505750397Sobrien	* pt.c (tsubst_expr): Support do {} while loops.
1505850397Sobrien	* parse.y (simple_stmt): Likewise.
1505950397Sobrien	* tree.def: Likewise.
1506018334Speter
1506150397Sobrien	* method.c (build_overload_identifier): For a class nested in a
1506250397Sobrien	template class, don't mangle in the template parms from our
1506350397Sobrien	context.
1506418334Speter
1506550397Sobrien	* lex.c, cp-tree.h: Remove support for template instantiations in
1506650397Sobrien	the pending_inlines code.
1506750397Sobrien	* pt.c: Remove dead functions and unused arguments.
1506850397Sobrien	(uses_template_parms): TYPENAME_TYPEs always use template parms.
1506950397Sobrien	* parse.y: Stop passing anything to end_template_decl.
1507050397Sobrien	* tree.c (print_lang_statistics): Only print tinst info #ifdef
1507150397Sobrien	GATHER_STATISTICS.
1507218334Speter
1507350397SobrienWed Feb 21 16:57:33 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1507418334Speter
1507552284Sobrien	* init.c (expand_recursive_init{,_1}): Delete decls.
1507650397Sobrien	(sort_member_init): Delete unused var INIT.
1507750397Sobrien	(emit_base_init): Delete unused var X.
1507850397Sobrien	(build_offset_ref): Delete unused var CNAME.
1507950397Sobrien	(sort_member_init): Delete unused var FIELDS_TO_UNMARK.
1508050397Sobrien	(emit_base_init): Delete unused local var BASE.  Delete extern
1508150397Sobrien	decl of IN_CHARGE_IDENTIFIER.
1508250397Sobrien	(build_delete): Delete unused local var VIRTUAL_SIZE.
1508318334Speter
1508450397Sobrien	* init.c (build_vec_delete): Delete unused third arg ELT_SIZE.
1508550397Sobrien	(build_delete): Fix call.
1508650397Sobrien	* decl2.c (delete_sanity): Likewise.
1508750397Sobrien	* cp-tree.h (build_vec_delete): Update prototype.
1508818334Speter
1508950397Sobrien	* typeck.c (common_base_type): Delete unused var TMP.
1509050397Sobrien	(build_binary_op): Delete local var ARGS_SAVE.
1509150397Sobrien	(build_array_ref): Delete unused var ITYPE.
1509250397Sobrien	(c_expand_return): Delete unused var USE_TEMP.
1509318334Speter
1509450397Sobrien	* typeck.c (compexcepttypes): Delete unused arg STRICT.
1509550397Sobrien	(comptypes): Fix calls.
1509650397Sobrien	* decl.c (duplicate_decls): Likewise.
1509750397Sobrien	* cp-tree.h (compexcepttypes): Delete extra arg.
1509818334Speter
1509950397Sobrien	* decl2.c (check_classfn): Delete unused second arg CNAME.
1510050397Sobrien	* decl.c (start_decl, grokfndecl): Fix calls.
1510150397Sobrien	* init.c (do_friend): Likewise.
1510250397Sobrien	* cp-tree.h (check_classfn): Update prototype.
1510318334Speter
1510450397Sobrien	* cp-tree.h (signature_error, import_export_vtable,
1510550397Sobrien	append_signature_fields, id_in_current_class, mark_used,
1510650397Sobrien	copy_assignment_arg_p): Add decls.
1510750397Sobrien	* decl2.c (mark_used): Delete decl.
1510818334Speter
1510950397Sobrien	* class.c (n_*): Wrap with #ifdef GATHER_STATISTICS.
1511018334Speter
1511152284Sobrien	* class.c (get_vtable_entry): Disable unused function.
1511250397Sobrien	(doing_hard_virtuals): Delete unused static global var.
1511350397Sobrien	(finish_struct_1): Don't init DOING_HARD_VIRTUALS.
1511450397Sobrien	(prepare_fresh_vtable): Delete unused vars PATH and RESULT.
1511550397Sobrien	(overrides): Delete unused vars RETTYPE and BASE_RETTYPE.
1511650397Sobrien	(modify_one_vtable): Delete unused var OLD_RTTI.
1511750397Sobrien	(finish_struct_anon): Delete unused vars OFFSET and X.
1511850397Sobrien	(finish_struct_bits): Delete unused var METHOD_VEC.
1511950397Sobrien	(get_basefndecls): Delete unused var PURPOSE.  Delete unused
1512050397Sobrien	for-scope local variable METHODS.
1512118334Speter
1512250397Sobrien	* call.c (user_harshness): Delete unused/unneeded arg PARM.
1512350397Sobrien	(ideal_candidate): Delete unused args BASETYPE and PARMS.
1512450397Sobrien	(build_method_call): Delete unused args passed into ideal_candidate.
1512550397Sobrien	(build_overload_call_real): Likewise.  Delete unused var OVERLOAD_NAME.
1512650397Sobrien	* cp-tree.h (synthesize_method): Add decl.
1512718334Speter
1512850397Sobrien	* decl.c (note_level_for_for): Give void return type.
1512950397Sobrien	(pushdecl_nonclass_level): Likewise.
1513050397Sobrien	(finish_function): Delete unused vars VFIELDS and ALLOCATED_THIS.
1513150397Sobrien	(poplevel): Delete unused var IMPLICIT_TRY_BLOCK.
1513250397Sobrien	(suspend_binding_level): Delete unused var LEVEL.
1513350397Sobrien	(duplicate_decls): Delete unused var CTYPE.
1513450397Sobrien	(duplicate_decls): Delete unused var PREVIOUS_C_DECL.
1513550397Sobrien	(init_decl_processing): Delete unused vars FLOAT_ENDLINK and
1513650397Sobrien	PTR_ENDLINK.
1513750397Sobrien	(grokdeclarator): Delete unused var C.
1513850397Sobrien	(grokdeclarator): Delete unused var SIZE_VARIES.
1513950397Sobrien	(grokparms): Delete unused var SAW_VOID.
1514050397Sobrien	(start_function): Delete unused var OLDDECL.
1514150397Sobrien	(cplus_expand_expr_stmt): Delete unused var
1514252284Sobrien	REMOVE_IMPLICIT_IMMEDIATELY.
1514318334Speter
1514450397Sobrien	* cp-tree.h (pushdecl_nonclass_level): Fix prototype.
1514518334Speter
1514650397Sobrien	* Makefile.in (CONFLICTS): Update to 12 shift/reduce.
1514718334Speter
1514850397SobrienWed Feb 21 00:06:17 1996  Jason Merrill  <jason@yorick.cygnus.com>
1514918334Speter
1515050397Sobrien	* tree.c (build_min): Set TREE_COMPLEXITY to lineno.
1515150397Sobrien	(build_min_nt): Likewise.
1515250397Sobrien	* pt.c (do_pushlevel): Emit line note.
1515350397Sobrien	(do_poplevel): Return what we get from poplevel.
1515450397Sobrien	(tsubst_expr): Set lineno from TREE_COMPLEXITY in stmt nodes.
1515550397Sobrien	* parse.y: Use do_pushlevel and do_poplevel.
1515650397Sobrien	* cp-tree.h: Declare do_poplevel.
1515752284Sobrien
1515850397Sobrien	* cp-tree.h: Declare at_eof.
1515950397Sobrien	* decl.c (cp_finish_decl): Pass it to rest_of_decl_compilation.
1516050397Sobrien	* decl2.c (import_export_decl): Renamed from import_export_inline.
1516150397Sobrien	(finish_file): Call it to do interface handling for statics.
1516250397Sobrien	* pt.c (tsubst_copy): Call mark_used on variables and functions
1516350397Sobrien	used here.
1516418334Speter
1516550397Sobrien	* decl2.c (finish_file): Don't emit statics we can't generate.
1516650397Sobrien	* pt.c (instantiate_decl): Don't set interface on instantiations
1516750397Sobrien	we can't generate.
1516818334Speter
1516950397Sobrien	* cp-tree.h (struct tinst_level): Change 'classname' to 'decl'.
1517050397Sobrien	* tree.c (print_lang_statistics): Print max template depth.
1517150397Sobrien	* pt.c (push_tinst_level): Dump entire instantiation context.
1517250397Sobrien	(instantiate_class_template): Use it and pop_tinst_level.
1517350397Sobrien	(instantiate_decl): Likewise.
1517418334Speter
1517550397Sobrien	* call.c class.c cp-tree.h decl.c decl2.c error.c lex.c method.c
1517650397Sobrien	pt.c ptree.c tree.def: Remove all traces of UNINSTANTIATED_P_TYPE.
1517718334Speter
1517850397SobrienTue Feb 20 18:21:51 1996  Jason Merrill  <jason@yorick.cygnus.com>
1517918334Speter
1518050397Sobrien	* call.c class.c cp-tree.h cvt.c decl.c decl2.c error.c expr.c
1518150397Sobrien	init.c lex.c method.c parse.y pt.c repo.c search.c spew.c tree.c
1518250397Sobrien	tree.def typeck.c typeck2.c xref.c: Massive, systemic changes for
1518350397Sobrien	the new template implementation.
1518418334Speter
1518550397SobrienTue Feb 20 17:14:29 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1518618334Speter
1518750397Sobrien	* decl2.c (check_cp_case_value): Use STRIP_TYPE_NOPS.
1518818334Speter
1518950397SobrienThu Feb 15 18:44:42 1996  Mike Stump  <mrs@cygnus.com>
1519018334Speter
1519150397Sobrien	* decl.c (cp_finish_decl): Delay emitting the debug information for
1519250397Sobrien	a typedef that has been installed as the canonical typedef, if the
1519350397Sobrien	type has not yet been defined.
1519418334Speter
1519550397SobrienThu Feb 15 09:39:08 1996  Jason Merrill  <jason@yorick.cygnus.com>
1519618334Speter
1519750397Sobrien	* decl2.c (grokfield): Still call pop_nested_class for access decls.
1519818334Speter
1519950397SobrienWed Feb 14 17:30:04 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1520018334Speter
1520150397Sobrien	* decl.c (lookup_label): Call label_rtx.
1520218334Speter
1520350397Sobrien	* decl.c (make_binding_level): New function.
1520450397Sobrien	(pushlevel, pushlevel_class): Call it instead of explicit
1520550397Sobrien	duplicate calls to xmalloc.
1520618334Speter
1520750397Sobrien	* decl.c (init_decl_processing): Delete useless build_pointer_type
1520850397Sobrien	call.
1520918334Speter
1521050397Sobrien	* decl.c (float_ftype_float, ldouble_ftype_ldouble): Add definitions.
1521150397Sobrien	(sizet_ftype_string): Delete variable.
1521250397Sobrien	(init_decl_processing): Add built-in functions fabsf, fabsl,
1521350397Sobrien	sqrtf, sqrtl, sinf, sin, sinl, cosf, cos, cosl.  New local
1521450397Sobrien	variable strlen_ftype, used for strlen.
1521518334Speter
1521650397SobrienWed Feb 14 16:21:25 1996  Jason Merrill  <jason@yorick.cygnus.com>
1521718334Speter
1521850397Sobrien	* decl.c (push_to_top_level): Start from current_binding_level
1521950397Sobrien	again for now; the stl hacks depend on g++ being broken in this
1522050397Sobrien	way, and it'll be fixed in the template rewrite.
1522118334Speter
1522250397Sobrien	* tree.def: Add USING_DECL.
1522350397Sobrien	* decl2.c (do_class_using_decl): Implement.
1522450397Sobrien	(grokfield): Pass access decls off to do_class_using_decl instead of
1522550397Sobrien	grokdeclarator.
1522650397Sobrien	* error.c (dump_decl): Handle USING_DECLs.
1522750397Sobrien	* decl.c (grokdeclarator): Remove code for handling access decls.
1522850397Sobrien	* class.c (finish_struct_1): Adjust accordingly, treat using-decls
1522950397Sobrien	as access decls for now.
1523050397Sobrien	(finish_struct): Don't check USING_DECLs for other uses of the name.
1523118334Speter
1523250397Sobrien	* search.c (get_matching_virtual): Use cp_error_at.
1523318334Speter
1523450397SobrienWed Feb 14 10:36:58 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1523518334Speter
1523650397Sobrien	* typeck.c (comptypes): Default COMP_TYPE_ATTRIBUTES to 1, to
1523750397Sobrien	match c-typeck.c.
1523850397Sobrien	(self_promoting_args_p): Move the check that TYPE is non-nil
1523950397Sobrien	before trying to look at its main variant.
1524050397Sobrien	(unsigned_type, signed_type): Add checking of DI/SI/HI/QI nodes.
1524118334Speter
1524250397Sobrien	* cp-tree.h (DECL_WAITING_FRIENDS, SET_DECL_WAITING_FRIENDS):
1524350397Sobrien	Delete macros.
1524450397Sobrien	* init.c (xref_friend, embrace_waiting_friends): Delete functions.
1524550397Sobrien	(do_friend): Delete call to xref_friend.
1524650397Sobrien	* class.c (finish_struct_1): Delete call to embrace_waiting_friends.
1524718334Speter
1524850397Sobrien	* typeck.c (convert_sequence): #if 0 unused function.
1524918334Speter
1525050397Sobrien	* cp-tree.h (DECL_IN_MEMORY_P): New macro w/ the check that used to
1525150397Sobrien	be in decl_in_memory_p.
1525250397Sobrien	(decl_in_memory_p): Delete decl.
1525350397Sobrien	* expr.c (decl_in_memory_p): Delete fn.
1525450397Sobrien	* typeck.c (mark_addressable): Use DECL_IN_MEMORY_P.
1525518334Speter
1525650397Sobrien	* decl.c (cp_finish_decl): Use DECL_IN_MEMORY_P.
1525718334Speter
1525850397SobrienTue Feb 13 12:51:21 1996  Jason Merrill  <jason@yorick.cygnus.com>
1525918334Speter
1526050397Sobrien	* class.c (finish_struct_1): Check for a pure-specifier on a
1526150397Sobrien	non-virtual function here.
1526218334Speter
1526350397Sobrien	* decl2.c (grok_function_init): Don't check whether the function
1526450397Sobrien	is virtual here.
1526550397Sobrien	(grokfield): Don't call check_for_override here.
1526618334Speter
1526750397Sobrien	* decl.c (push_to_top_level): Start from inner_binding_level,
1526850397Sobrien	check class_shadowed in class levels.
1526918334Speter
1527050397SobrienMon Feb 12 17:46:59 1996  Mike Stump  <mrs@cygnus.com>
1527118334Speter
1527250397Sobrien	* decl.c (resume_level): Ignore things that don't have names, instead
1527350397Sobrien	of core dumping.
1527418334Speter
1527550397SobrienMon Feb 12 15:47:44 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1527618334Speter
1527750397Sobrien	* decl2.c (grokfield): Set DECL_VINDEX properly for FUNCTION_DECLs.
1527818334Speter
1527950397SobrienSat Feb 10 17:59:45 1996  Jason Merrill  <jason@yorick.cygnus.com>
1528018334Speter
1528150397Sobrien	* class.c (finish_struct_1): Set DECL_VINDEX properly on a
1528250397Sobrien	synthesized dtor.
1528318334Speter
1528450397Sobrien	* parse.y (complete_type_name): Bind global_scope earlier.
1528550397Sobrien	(complex_type_name): Likewise.
1528650397Sobrien	(qualified_type_name): Remove.
1528718334Speter
1528850397SobrienThu Feb  8 15:15:14 1996  Jason Merrill  <jason@yorick.cygnus.com>
1528918334Speter
1529050397Sobrien	* decl.c (grokfndecl): Move code that looks for virtuals in base
1529150397Sobrien	classes...
1529250397Sobrien	* class.c (check_for_override): ... to a new function.
1529350397Sobrien	(finish_struct_1): Call it.
1529418334Speter
1529550397Sobrien	* cp-tree.h: Declare warn_sign_compare.
1529618334Speter
1529750397Sobrien	* typeck.c (build_binary_op_nodefault): Check warn_sign_compare
1529850397Sobrien	rather than extra_warnings to decide whether to warn about
1529950397Sobrien	comparison of signed and unsigned.
1530018334Speter
1530150397Sobrien	* decl2.c (lang_decode_option): Handle warn_sign_compare.  -Wall
1530250397Sobrien	implies -Wsign-compare.  -Wall doesn't imply -W.
1530318334Speter
1530450397SobrienWed Feb  7 15:27:57 1996  Mike Stump  <mrs@cygnus.com>
1530518334Speter
1530650397Sobrien	* typeck.c (build_component_ref): Fix to handle anon unions in base
1530750397Sobrien	classes as well.
1530818334Speter
1530950397SobrienWed Feb  7 14:29:12 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1531018334Speter
1531150397Sobrien	* class.c (resolves_to_fixed_type_p): Delete code dealing with
1531250397Sobrien	a WITH_CLEANUP_EXPR, since we don't generate them any more.
1531350397Sobrien	* cvt.c (build_up_reference): Likewise.
1531450397Sobrien	* decl.c (grok_reference_init): Likewise.
1531550397Sobrien	(cp_finish_decl): Likewise.
1531650397Sobrien	* error.c (dump_expr): Likewise.
1531750397Sobrien	* tree.c (real_lvalue_p): Likewise.
1531850397Sobrien	(lvalue_p): Likewise.
1531950397Sobrien	(build_cplus_new): Likewise.
1532050397Sobrien	(unsave_expr_now): Likewise.
1532150397Sobrien	* typeck.c (unary_complex_lvalue, build_modify_expr,
1532250397Sobrien	c_expand_return): Likewise.
1532318334Speter
1532450397SobrienTue Feb  6 13:39:22 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1532518334Speter
1532650397Sobrien	Make the C++ front-end pay attention to attributes for structures.
1532750397Sobrien	* class.c (finish_struct): New argument ATTRIBUTES, passed down into
1532850397Sobrien	finish_struct_1.
1532950397Sobrien	(finish_struct_1): New argument ATTRIBUTES; call cplus_decl_attributes.
1533050397Sobrien	Take out old round_up_size use and setting the DECL_ALIGN possibly
1533150397Sobrien	using it.  Take out setting of TYPE_ALIGN to round_up_size, which
1533250397Sobrien	can override what the attribute set.
1533350397Sobrien	* cp-tree.h (finish_struct): Update prototype.
1533450397Sobrien	* parse.y (template_instantiate_once): Pass a NULL_TREE for the
1533550397Sobrien	attributes to finish_struct.
1533650397Sobrien	(structsp): For a CLASS decl, add maybe_attribute to rule and pass that
1533750397Sobrien	value down into finish_struct.
1533850397Sobrien	* Makefile.in (CONFLICTS): Switch to 7 shift/reduce conflicts.
1533918334Speter
1534050397SobrienTue Feb  6 13:12:15 1996  Per Bothner  <bothner@kalessin.cygnus.com>
1534118334Speter
1534250397Sobrien	* decl.c (poplevel):  Re-word dead for local handling.
1534350397Sobrien	(pushdecl):  Remove useless DECL_DEAD_FOR_LOCAL test.
1534450397Sobrien	(cp_finish_decl):  If is_for_scope, check for duplicates so
1534550397Sobrien	we can disable is_for_scope.  Otherwise, preserve_temp_slots.
1534618334Speter
1534750397Sobrien	* lex.c (do_identifier):  Use global binding in preference of
1534850397Sobrien	dead for local variable.
1534918334Speter
1535050397SobrienMon Feb  5 17:46:46 1996  Mike Stump  <mrs@cygnus.com>
1535118334Speter
1535250397Sobrien	* init.c (initializing_context): Handle anon union changes, the
1535350397Sobrien	context where fields of anon unions can be initialized now has to be
1535450397Sobrien	found by walking up the TYPE_CONTEXT chain.
1535518334Speter
1535650397SobrienFri Feb  2 14:54:04 1996  Doug Evans  <dje@charmed.cygnus.com>
1535718334Speter
1535850397Sobrien	* decl.c (start_decl): #ifdef out code to set DECL_COMMON
1535950397Sobrien	if ASM_OUTPUT{,_ALIGNED}_BSS is defined.
1536050397Sobrien	(obscure_complex_init): If bss is supported, always set
1536150397Sobrien	DECL_INITIAL to error_mark_node.
1536218334Speter
1536350397SobrienThu Feb  1 16:19:56 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1536418334Speter
1536550397Sobrien	* init.c (is_friend): Make sure there's a context before we see if
1536650397Sobrien	it's an aggr type.
1536718334Speter
1536850397SobrienThu Feb  1 15:44:53 1996  Mike Stump  <mrs@cygnus.com>
1536918334Speter
1537050397Sobrien	* init.c (is_friend): Classes are not friendly with nested classes.
1537118334Speter
1537250397SobrienThu Feb  1 15:27:37 1996  Doug Evans  <dje@charmed.cygnus.com>
1537318334Speter
1537450397Sobrien	* lex.c (check_newline): Pass last character read to HANDLE_PRAGMA,
1537550397Sobrien	and record its result.
1537618334Speter
1537750397SobrienThu Feb  1 09:27:01 1996  Mike Stump  <mrs@cygnus.com>
1537818334Speter
1537950397Sobrien	* class.c (finish_struct_anon): Switch around code to not move anon
1538050397Sobrien	union elements around, nor mess up their contexts, nor offsets,
1538150397Sobrien	instead we now build up the right number of COMPONENT_REFs for all
1538250397Sobrien	the anon unions that may be present at build_component_ref time.
1538350397Sobrien	* typeck.c (lookup_anon_field): New routine to handle field lookup
1538450397Sobrien	on fields without names.  We find them, based upon their unique type
1538550397Sobrien	instead.
1538650397Sobrien	* typeck.c (build_component_ref): Allow FIELD_DECL components.
1538750397Sobrien	Handle finding components in anonymous unions, and ensure that a
1538850397Sobrien	COMPONENT_REF is built for each level as necessary.
1538918334Speter
1539050397SobrienTue Jan 30 18:18:23 1996  Mike Stump  <mrs@cygnus.com>
1539118334Speter
1539250397Sobrien	* cvt.c (build_up_reference): Make the INDIRECT_BIND case come after
1539350397Sobrien	code that ensures that copy ctors are used if appropriate.
1539418334Speter
1539550397SobrienTue Jan 30 17:35:14 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1539618334Speter
1539750397Sobrien	* init.c (build_vec_delete): Only give an error if base isn't an
1539850397Sobrien	error_mark_node.
1539918334Speter
1540050397SobrienMon Jan 29 17:09:06 1996  Mike Stump  <mrs@cygnus.com>
1540118334Speter
1540250397Sobrien	* spew.c (do_aggr): `new struct S;' isn't a forward declaration.
1540350397Sobrien	(yylex): If we see `new', keep slurping.
1540418334Speter
1540550397SobrienThu Jan 25 18:31:36 1996  Mike Stump  <mrs@cygnus.com>
1540618334Speter
1540750397Sobrien	* class.c (finish_struct_1): Move code for handling anon unions...
1540850397Sobrien	(finish_struct_anon): to here.  Fixup so that we do the offset
1540950397Sobrien	calculations right, and so that the fields are physically moved to
1541050397Sobrien	the containers's chain.
1541118334Speter
1541250397SobrienThu Jan 25 18:27:37 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1541318334Speter
1541450397Sobrien	* decl.c (grokdeclarator): Avoid trying to get an operand off an
1541550397Sobrien	identifier node.
1541618334Speter
1541750397SobrienWed Jan 24 11:25:30 1996  Jim Wilson  <wilson@chestnut.cygnus.com>
1541818334Speter
1541950397Sobrien	* typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not
1542050397Sobrien	POINTER_SIZE to agree with expr.c.
1542118334Speter
1542250397SobrienThu Jan 25 13:01:23 1996  Mike Stump  <mrs@cygnus.com>
1542318334Speter
1542450397Sobrien	* search.c (lookup_field): Don't report ambiguities if protect is 0,
1542550397Sobrien	instead return NULL_TREE.
1542618334Speter
1542750397SobrienWed Jan 24 13:01:26 1996  Mike Stump  <mrs@cygnus.com>
1542818334Speter
1542950397Sobrien	* class.c (finish_struct_1): Call warn_hidden if we want warnings
1543050397Sobrien	about overloaded virtual functions.
1543150397Sobrien	(warn_hidden): New routine to warn of virtual functions that are
1543250397Sobrien	hidden by other virtual functions, that are not overridden.
1543350397Sobrien	(get_basefndecls): New routine, used by warn_hidden.
1543450397Sobrien	(mark_overriders): New routine, used by warn_hidden.
1543550397Sobrien	* search.c (get_matching_virtual): Remove old warning that just
1543650397Sobrien	isn't very useful.
1543718334Speter
1543850397SobrienTue Jan 23 12:26:10 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1543918334Speter
1544050397Sobrien	* decl.c (output_builtin_tdesc_entries): #if 0 the function definition.
1544118334Speter
1544250397Sobrien	* typeck.c (null_ptr_cst_p): Delete unused fn.
1544350397Sobrien	(build_function_call_maybe): Delete unused fn.
1544418334Speter
1544550397Sobrien	* expr.c (extract_init): #if 0 the code after unconditional return 0
1544650397Sobrien	for now.
1544718334Speter
1544850397Sobrien	Delete old cadillac code.
1544950397Sobrien	* edsel.c: Remove file.
1545050397Sobrien	* Make-lang.in (CXX_SRCS): Take edsel.c off the list.
1545150397Sobrien	* Makefile.in (CXX_OBJS): Delete edsel.o.
1545250397Sobrien	(edsel.o): Delete rule.
1545350397Sobrien	* cp-tree.h (flag_cadillac): Delete var decl.
1545450397Sobrien	* lang-options.h: Delete "-fcadillac" and "-fno-cadillac".
1545550397Sobrien	* decl2.c (flag_cadillac): Delete var definition.
1545650397Sobrien	(lang_decode_option): Delete handling of -fcadillac and -fno-cadillac.
1545750397Sobrien	(grokfield): Delete code depending on flag_cadillac.
1545850397Sobrien	(finish_anon_union): Likewise.
1545950397Sobrien	* class.c (finish_struct_1): Likewise.
1546050397Sobrien	(pushclass): Likewise.
1546150397Sobrien	(popclass): Likewise.
1546250397Sobrien	(push_lang_context): Likewise.
1546350397Sobrien	(pop_lang_context): Likewise.
1546450397Sobrien	* decl.c (init_decl_processing): Likewise.
1546550397Sobrien	(start_decl): Likewise.
1546650397Sobrien	(cp_finish_decl): Likewise.
1546750397Sobrien	(xref_tag): Likewise.
1546850397Sobrien	(finish_enum): Likewise.
1546950397Sobrien	(start_function): Likewise.
1547050397Sobrien	(finish_function): Likewise.
1547150397Sobrien	(finish_stmt): Likewise.
1547250397Sobrien	* lex.c (lang_init): Likewise.
1547350397Sobrien	(check_newline): Likewise.
1547418334Speter
1547550397Sobrien	* lex.c (do_pending_inlines): Delete synthesized method kludge.
1547618334Speter
1547750397Sobrien	Delete defunct, ancient garbage collection implementation.
1547850397Sobrien	* rtti.c: New file with the RTTI stuff from gc.c.
1547950397Sobrien	* gc.c: Removed file (moved the remaining stuff into rtti.c).
1548050397Sobrien	* Makefile.in (CXX_OBJS): Replace gc.o with rtti.o.
1548150397Sobrien	(rtti.o): New rule, replacing gc.o.
1548250397Sobrien	* Make-lang.in (CXX_SRCS): Replace gc.c with rtti.c.
1548350397Sobrien	* cp-tree.h: Delete gc-related fn decls.
1548450397Sobrien	(DECL_GC_OFFSET): Delete macro.
1548550397Sobrien	(flag_gc): Delete extern decl.
1548650397Sobrien	* decl.c (current_function_obstack_index): Delete var decl.
1548750397Sobrien	(current_function_obstack_usage): Delete var decl.
1548850397Sobrien	(start_function): Delete clearing of current_function_obstack_index
1548950397Sobrien	and current_function_obstack_usage.
1549050397Sobrien	(init_decl_processing): Delete code relying on -fgc.
1549150397Sobrien	Delete call to init_gc_processing.
1549250397Sobrien	(cp_finish_decl): Delete calls to build_static_gc_entry and
1549350397Sobrien	type_needs_gc_entry.  Delete gc code setting DECL_GC_OFFSET.
1549450397Sobrien	(store_parm_decls): Delete -fgc calls to cp_expand_decl_cleanup
1549550397Sobrien	and to expand_expr of a __gc_main call.
1549650397Sobrien	(maybe_gc_cleanup): Delete var decl.
1549750397Sobrien	(finish_function): Delete call to expand_gc_prologue_and_epilogue.
1549850397Sobrien	* decl2.c (flag_gc): Delete var decl.
1549950397Sobrien	(lang_f_options): Delete offering of -fgc.
1550050397Sobrien	(lang_decode_option): Delete -fgc and -fno-gc handling.
1550150397Sobrien	(get_temp_regvar): Delete gc code.
1550250397Sobrien	* init.c (build_new): Delete gc code.
1550350397Sobrien	* lex.c (init_lex): Delete checking of flag_gc.
1550418334Speter
1550550397Sobrien	* typeck.c (convert_arguments): Delete gc code.
1550650397Sobrien	(build_component_addr): Delete -fgc warning.
1550750397Sobrien	(build_modify_expr): Delete gc code.
1550818334Speter
1550950397Sobrien	* decl2.c (build_push_scope): Delete fn.
1551050397Sobrien	* cp-tree.h (build_push_scope): Delete decl.
1551118334Speter
1551250397Sobrien	* search.c (clear_search_slots): Delete fn.
1551350397Sobrien	* cp-tree.h (clear_search_slots): Delete decl.
1551418334Speter
1551550397Sobrien	* search.c (tree_needs_constructor_p): Delete fn.
1551650397Sobrien	* cp-tree.h (tree_needs_constructor_p): Delete decl.
1551718334Speter
1551850397Sobrien	* tree.c (id_cmp): Delete fn.
1551918334Speter
1552050397Sobrien	* tree.c (set_fnaddr_from_vtable_entry): Delete fn.
1552150397Sobrien	* cp-tree.h (set_fnaddr_from_vtable_entry): Delete decl.
1552218334Speter
1552350397Sobrien	* tree.c (decl_value_member): Delete fn.
1552450397Sobrien	* cp-tree.h (decl_value_member): Delete decl.
1552518334Speter
1552650397Sobrien	* tree.c (list_hash_lookup_or_cons): Delete fn.
1552750397Sobrien	* cp-tree.h (list_hash_lookup_or_cons): Delete decl.
1552818334Speter
1552950397Sobrien	* method.c (cplus_exception_name): Delete fn.
1553050397Sobrien	(EXCEPTION_NAME_{PREFIX, LENGTH}): Delete macros.
1553118334Speter
1553250397Sobrien	* spew.c (shift_tokens): Delete fn.
1553318334Speter
1553450397SobrienMon Jan 22 17:49:33 1996  Jason Merrill  <jason@yorick.cygnus.com>
1553518334Speter
1553650397Sobrien	* except.c (init_exception_processing): Pass 1 to needs_pop in calls
1553750397Sobrien	to cp_finish_decl.
1553850397Sobrien	* parse.y: Likewise.
1553918334Speter
1554050397SobrienMon Jan 22 17:34:29 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1554118334Speter
1554250397Sobrien	* tree.c (build_cplus_staticfn_type): Delete function definition;
1554350397Sobrien	never used.
1554450397Sobrien	* cp-tree.h (build_cplus_staticfn_type): Delete decl.
1554518334Speter
1554650397Sobrien	* tree.c (virtual_member): Delete function definition; never used.
1554750397Sobrien	* cp-tree.h (virtual_member): Delete decl.
1554818334Speter
1554950397SobrienFri Jan 19 18:03:14 1996  Mike Stump  <mrs@cygnus.com>
1555018334Speter
1555150397Sobrien	* typeck.c (build_component_ref): Handle getting vbase pointers
1555250397Sobrien	out of complex multiple inheritance better.
1555318334Speter
1555450397SobrienFri Jan 19 16:27:40 1996  Mike Stump  <mrs@cygnus.com>
1555518334Speter
1555650397Sobrien	* typeck.c (build_object_ref): Make sure we use the real type, not
1555750397Sobrien	any reference type.
1555818334Speter
1555950397SobrienFri Jan 19 16:01:47 1996  Mike Stump  <mrs@cygnus.com>
1556018334Speter
1556150397Sobrien	* tree.c (build_exception_variant): Don't create new types if we
1556250397Sobrien	don't have to, also build new types on the right obstack.
1556318334Speter
1556450397SobrienFri Jan 19 14:09:44 1996  Jason Merrill  <jason@yorick.cygnus.com>
1556518334Speter
1556650397Sobrien	* decl.c (store_bindings): Split out from push_to_top_level.
1556750397Sobrien	(push_to_top_level): Call it for b->type_shadowed on class binding
1556850397Sobrien	levels.
1556918334Speter
1557050397SobrienFri Jan 19 13:53:14 1996  Mike Stump  <mrs@cygnus.com>
1557118334Speter
1557250397Sobrien	* search.c (expand_upcast_fixups): Fix so that offsets stored in
1557350397Sobrien	vbase_offsets are always right.  Fixes a problem where virtual base
1557450397Sobrien	upcasting and downcasting could be wrong during conversions on this
1557550397Sobrien	during virtual function dispatch at ctor/dtor time when dynamic
1557650397Sobrien	vtable fixups for deltas are needed.  This only sounds easier than
1557750397Sobrien	it is.  :-)
1557850397Sobrien	(fixup_virtual_upcast_offsets): Change to reflect new calling
1557950397Sobrien	convention for expand_upcast_fixups.
1558018334Speter
1558150397SobrienFri Jan 19 12:23:08 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1558218334Speter
1558350397Sobrien	* decl2.c (grokbitfield): Strip the NOPs from WIDTH before we
1558450397Sobrien	check that it's usable as the bitfield width.
1558518334Speter
1558650397SobrienWed Jan 17 21:22:40 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1558718334Speter
1558850397Sobrien	* decl2.c (grokfield): Call cplus_decl_attributes with the attrlist.
1558950397Sobrien	Pass a null tree to grokdeclarator for its ATTRLIST arg, since it's
1559050397Sobrien	only ever used for functions in it.
1559118334Speter
1559250397SobrienWed Jan 17 12:10:38 1996  Jason Merrill  <jason@yorick.cygnus.com>
1559318334Speter
1559450397Sobrien	* parse.y (qualified_type_name): Use the TYPE_DECL, not the type.
1559550397Sobrien	(nested_type): Likewise.
1559650397Sobrien	(nested_name_specifier): Use lastiddecl.
1559718334Speter
1559850397Sobrien	* decl.c (grokdeclarator): Adjust accordingly.
1559950397Sobrien	* init.c (expand_member_init): Likewise.
1560050397Sobrien	* parse.y (base_class): Likewise.
1560150397Sobrien	* typeck2.c (build_functional_cast): Likewise.
1560218334Speter
1560350397Sobrien	* typeck2.c (build_functional_cast): Fill in name after we've
1560450397Sobrien	checked for non-aggr type.
1560518334Speter
1560650397SobrienWed Jan 17 10:18:01 1996  Mike Stump  <mrs@cygnus.com>
1560718334Speter
1560850397Sobrien	* decl2.c (warn_pointer_arith): Default to on.
1560918334Speter
1561050397SobrienTue Jan 16 12:45:38 1996  Jason Merrill  <jason@yorick.cygnus.com>
1561118334Speter
1561250397Sobrien	* lex.c (is_rid): New function.
1561350397Sobrien	* decl.c (grokdeclarator): Diagnose reserved words used as
1561450397Sobrien	declarator-ids.
1561518334Speter
1561650397SobrienTue Jan 16 11:39:40 1996  Jason Merrill  <jason@yorick.cygnus.com>
1561718334Speter
1561850397Sobrien	* tree.c (get_decl_list): Don't lose cv-quals.
1561918334Speter
1562050397Sobrien	* decl.c (grokdeclarator): Fix SCOPE_REF handling and diagnose
1562150397Sobrien	typespecs used as declarator-ids.
1562218334Speter
1562350397SobrienTue Jan 16 11:09:42 1996  Mike Stump  <mrs@cygnus.com>
1562418334Speter
1562550397Sobrien	* decl.c (poplevel): When poping a level, don't give a warning for
1562650397Sobrien	any subblocks that already exist.
1562718334Speter
1562850397SobrienTue Jan 16 00:25:33 1996  Jason Merrill  <jason@yorick.cygnus.com>
1562918334Speter
1563050397Sobrien	* typeck.c (build_object_ref): Finish what I started.
1563118334Speter
1563250397Sobrien	* parse.y (qualified_type_name): Don't check TYPE_BUILT_IN.
1563318334Speter
1563450397Sobrien	* decl2.c (constructor_name_full): Handle TEMPLATE_TYPE_PARMs.
1563518334Speter
1563650397Sobrien	* decl.c (grokdeclarator): Also accept TEMPLATE_TYPE_PARM as a
1563750397Sobrien	scope.
1563818334Speter
1563950397SobrienMon Jan 15 16:19:32 1996  Jason Merrill  <jason@yorick.cygnus.com>
1564018334Speter
1564150397Sobrien	* decl.c (xref_tag): Handle passing a type in directly.
1564218334Speter
1564350397Sobrien	* parse.y (qualified_type_name): Pull out the type.
1564450397Sobrien	(nested_type): Likewise.
1564550397Sobrien	Take types directly instead of as identifiers.
1564650397Sobrien	* call.c (build_scoped_method_call): Take types directly instead of
1564750397Sobrien	as identifiers.
1564850397Sobrien	* decl.c (xref_basetypes): Likewise.
1564950397Sobrien	* init.c (expand_member_init): Likewise.
1565050397Sobrien	(build_member_call): Likewise.
1565150397Sobrien	(build_offset_ref): Likewise.
1565250397Sobrien	* typeck2.c (build_scoped_ref): Likewise, remove bogus code.
1565350397Sobrien	* method.c (do_build_assign_ref): Likewise.
1565450397Sobrien	* decl.c (grokdeclarator): Handle a type appearing as the
1565550397Sobrien	declarator-id for constructors.
1565650397Sobrien	* method.c (do_build_copy_constructor): current_base_init_list now
1565750397Sobrien	uses the types directly, not their names.
1565850397Sobrien	* init.c (sort_base_init): Likewise.
1565950397Sobrien	(expand_member_init): Likewise.
1566050397Sobrien	* init.c (is_aggr_type): New function, like is_aggr_typedef.
1566118334Speter
1566250397SobrienMon Jan 15 08:45:01 1996  Jeffrey A Law  <law@cygnus.com>
1566318334Speter
1566450397Sobrien	* tree.c (layout_basetypes): Call build_lang_field_decl instead
1566550397Sobrien	of build_lang_decl if first arg is a FIELD_DECL.
1566618334Speter
1566750397SobrienThu Jan 11 14:55:07 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1566818334Speter
1566950397Sobrien	* decl.c (cp_finish_decl): Only clear TREE_USED if DECL_NAME is
1567050397Sobrien	non-empty.
1567150397Sobrien	* except.c (expand_start_catch_block): Set TREE_USED to avoid
1567250397Sobrien	warnings about the catch handler.
1567318334Speter
1567450397SobrienMon Jan  8 17:35:12 1996  Jason Merrill  <jason@yorick.cygnus.com>
1567518334Speter
1567650397Sobrien	* typeck.c (build_modify_expr): Use a COMPOUND_EXPR instead of
1567750397Sobrien	expand_target_expr.
1567818334Speter
1567950397SobrienThu Jan  4 12:30:32 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1568018334Speter
1568150397Sobrien	Fix access control to use trees rather than integers.
1568250397Sobrien	* class.c (access_{default, public, protected, private,
1568350397Sobrien	default_virtual, public_virtual, private_virtual}_node): Add
1568450397Sobrien	definitions.
1568550397Sobrien	(init_class_processing): Do creation of those nodes.
1568650397Sobrien	* cp-tree.h (access_type): Delete enum decl.
1568750397Sobrien	(access_{default, public, protected, private, default_virtual,
1568850397Sobrien	public_virtual, private_virtual}_node): Add decls.
1568950397Sobrien	(compute_access): Change return type.
1569050397Sobrien	* search.c (compute_access): Have tree return type, instead of enum.
1569150397Sobrien	(lookup_field): Declare THIS_V and NEW_V to be tree nodes.
1569250397Sobrien	* lex.c (real_yylex): Use yylval.ttype for giving the value of the
1569350397Sobrien	access_* node for each of RID_{PUBLIC, PRIVATE, PROTECTED}.
1569450397Sobrien	* parse.y (VISSPEC): Make ttype rather than itype.
1569550397Sobrien	(base_class_access_list): Likewise.
1569650397Sobrien	* *.[cy]: Change all refs of `access_public' to `access_public_node',
1569750397Sobrien	etc.
1569850397Sobrien	* call.c (build_method_call): Make ACCESS be a tree.
1569950397Sobrien	* class.c (alter_access, finish_struct_1, filter_struct): Likewise.
1570050397Sobrien	* cvt.c (convert_to_aggr): Likewise.
1570150397Sobrien	* init.c (build_offset_ref, resolve_offset_ref, build_delete):
1570250397Sobrien	Likewise.
1570350397Sobrien	* method.c (hack_identifier): Likewise.
1570450397Sobrien	* typeck.c (build_component_ref_1, build_component_ref): ): Likewise.
1570518334Speter
1570650397SobrienThu Jan  4 11:02:20 1996  Mike Stump  <mrs@cygnus.com>
1570718334Speter
1570850397Sobrien	* typeck.c (pointer_int_sum, pointer_diff): Make code agree with C
1570950397Sobrien	frontend, and make it more consistent with respect to
1571050397Sobrien	warn_pointer_arith.
1571118334Speter
1571250397SobrienTue Jan  2 00:13:38 1996  Rusty Russell  <rusty@adelaide.maptek.com.au>
1571318334Speter
1571450397Sobrien	* decl.c (pushdecl): Check for duplicate parameter names.
1571518334Speter
1571650397SobrienWed Jan  3 09:25:48 1996  Mike Stump  <mrs@cygnus.com>
1571718334Speter
1571850397Sobrien	* decl.c (expand_static_init): Call assemble_external for atexit.
1571918334Speter
1572050397SobrienWed Jan  3 07:55:19 1996  Mike Stump  <mrs@cygnus.com>
1572118334Speter
1572250397Sobrien	* except.c (do_unwind): Remove some generated dead code.
1572350397Sobrien	(eh_outer_context): New routine, factor out some common code from
1572450397Sobrien	expand_builtin_throw and end_eh_unwinder.  Add code to do return
1572550397Sobrien	address masking for the PA.
1572650397Sobrien	(expand_builtin_throw): Use eh_outer_context instead of open coding
1572750397Sobrien	it here.
1572850397Sobrien	(end_eh_unwinder): Likewise.
1572918334Speter
1573050397SobrienTue Jan  2 17:00:56 1996  Mike Stump  <mrs@cygnus.com>
1573118334Speter
1573250397Sobrien	* except.c (expand_throw): Call assemble_external for __empty, if we
1573350397Sobrien	use it.
1573418334Speter
1573550397SobrienThu Dec 28 11:13:15 1995  Mike Stump  <mrs@cygnus.com>
1573618334Speter
1573750397Sobrien	* except.c (expand_builtin_throw): Use RETURN_ADDR_OFFSET instead of
1573850397Sobrien	NORMAL_RETURN_ADDR_OFFSET.
1573950397Sobrien	(end_eh_unwinder): Likewise.
1574018334Speter
1574150397SobrienWed Dec 27 22:18:16 1995  Mike Stump  <mrs@cygnus.com>
1574218334Speter
1574350397Sobrien	* gc.c (build_dynamic_cast): Make sure we don't cast away const
1574450397Sobrien	when dealing with references, and make sure we handle dynamic
1574550397Sobrien	casting to a cv qualified reference.
1574618334Speter
1574750397SobrienThu Dec 21 23:50:35 1995  Mike Stump  <mrs@cygnus.com>
1574818334Speter
1574950397Sobrien	* except.c (struct eh_context): New structure top hold eh context
1575050397Sobrien	information.
1575150397Sobrien	(push_eh_context): New routine.
1575250397Sobrien	(pop_eh_context): Likewise.
1575350397Sobrien	* decl.c (push_cp_function_context): Use them.
1575450397Sobrien	(pop_cp_function_context): Likewise.
1575518334Speter
1575650397SobrienWed Dec 20 12:42:51 1995  Jason Merrill  <jason@yorick.cygnus.com>
1575718334Speter
1575850397Sobrien	* decl2.c (finish_file): Also prune uninteresting functions in the
1575950397Sobrien	inline emission loop.
1576018334Speter
1576150397SobrienWed Dec 20 02:32:07 1995  Jeffrey A Law  <law@cygnus.com>
1576218334Speter
1576350397Sobrien	* sig.c (build_signature_table_constructor): Mark functions
1576450397Sobrien	in the signature as referenced.
1576518334Speter
1576650397SobrienTue Dec 19 22:36:56 1995  Jason Merrill  <jason@yorick.cygnus.com>
1576718334Speter
1576850397Sobrien	* decl2.c (finish_file): Do all the vtable/synthesis stuff before
1576950397Sobrien	the inline emission stuff.
1577018334Speter
1577150397SobrienMon Dec 18 15:51:33 1995  Jason Merrill  <jason@yorick.cygnus.com>
1577218334Speter
1577350397Sobrien	* cp-tree.h, decl2.c (flag_weak): New flag to control the use of
1577452284Sobrien	weak symbols.
1577550397Sobrien	* lang-options.h: Add -f{no-,}weak.
1577650397Sobrien	* decl.c (init_decl_processing): If the target does not support weak
1577750397Sobrien	symbols, don't use them.
1577850397Sobrien	* decl2.c, pt.c: s/SUPPORTS_WEAK/flag_weak/.
1577918334Speter
1578050397SobrienSun Dec 17 21:13:23 1995  Rusty Russell  <rusty@adelaide.maptek.com.au>
1578118334Speter
1578250397Sobrien	* init.c (expand_member_init): warning for base init after members.
1578318334Speter
1578450397SobrienFri Dec 15 15:32:18 1995  Jason Merrill  <jason@yorick.cygnus.com>
1578518334Speter
1578650397Sobrien	* cvt.c (build_expr_type_conversion): Don't convert to a reference
1578750397Sobrien	type.
1578818334Speter
1578950397SobrienThu Dec 14 16:05:58 1995  Mike Stump  <mrs@cygnus.com>
1579018334Speter
1579150397Sobrien	* method.c (report_type_mismatch): Improve wording for volatile
1579250397Sobrien	mismatches.
1579318334Speter
1579450397SobrienThu Dec 14 14:16:26 1995  Mike Stump  <mrs@cygnus.com>
1579518334Speter
1579650397Sobrien	* init.c (expand_aggr_init_1): Use expand_aggr_init_1 instead of
1579750397Sobrien	expand_assignment, as the later doesn't handle things that have
1579850397Sobrien	copy constructors well.  The compiler would do bitwise copying,
1579950397Sobrien	instead of ctor calling in some cases.
1580018334Speter
1580152284SobrienWed Dec 13 17:05:54 1995  Paul Eggert  <eggert@twinsun.com>
1580218334Speter
1580350397Sobrien	* g++.c (my_strerror): Return "cannot access" if errno is 0.
1580450397Sobrien	(pfatal_with_name, perror_exec): Don't assume that
1580550397Sobrien	the returned value from my_strerror contains no '%'s.
1580650397Sobrien	(concat): Remove.
1580750397Sobrien	(sys_nerror): Declare only if HAVE_STRERROR is not defined.
1580818334Speter
1580950397SobrienWed Dec 13 16:22:38 1995  Jason Merrill  <jason@yorick.cygnus.com>
1581018334Speter
1581150397Sobrien	Lose CLASSTYPE_METHODS/DECL_NEXT_METHOD chain; make
1581252284Sobrien	TYPE_METHODS/TREE_CHAIN mean what they used to.
1581350397Sobrien	* decl2.c (constructor_name_full): Refer to CLASSTYPE_METHOD_VEC
1581450397Sobrien	instead of TYPE_METHODS.
1581550397Sobrien	* decl.c (duplicate_decls): Lose references to DECL_NEXT_METHOD.
1581650397Sobrien	* tree.c (tree_copy_lang_decl_for_deferred_output): Likewise.
1581750397Sobrien	* cp-tree.h (CLASSTYPE_METHODS): Lose.
1581850397Sobrien	(CLASSTYPE_METHOD_VEC): Point to lang_spec->methods instead of
1581950397Sobrien	TYPE_METHODS.
1582050397Sobrien	(struct lang_decl): Lose next_method field.
1582150397Sobrien	(DECL_NEXT_METHOD): Lose.
1582250397Sobrien	* class.c (finish_struct_methods): Don't mess with TYPE_METHODS.
1582350397Sobrien	(finish_struct): Just use TYPE_METHODS; we don't need fn_fields
1582450397Sobrien	anymore.
1582550397Sobrien	(finish_struct_methods): Don't mess with the TREE_CHAINs in
1582650397Sobrien	fn_fields.
1582718334Speter
1582850397Sobrien	* search.c (add_conversions): Don't use TREE_CHAIN to traverse method
1582950397Sobrien	vector.
1583018334Speter
1583150397Sobrien	* call.c (build_method_call): Synthesize here even when not inlining.
1583250397Sobrien	* typeck.c (build_function_call_real): Likewise.
1583318334Speter
1583450397SobrienWed Dec 13 15:02:39 1995  Ian Lance Taylor  <ian@cygnus.com>
1583518334Speter
1583650397Sobrien	* cp/lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols
1583750397Sobrien	== DBX_DEBUG, call dbxout_start_new_source_file and
1583850397Sobrien	dbxout_resume_previous_source_file when appropriate.
1583918334Speter
1584050397SobrienTue Dec 12 20:38:55 1995  Mike Stump  <mrs@cygnus.com>
1584118334Speter
1584250397Sobrien	* except.c (start_anon_func): Push to the top level.
1584350397Sobrien	(end_anon_func): Pop from the top level.
1584418334Speter
1584550397SobrienMon Dec 11 18:56:14 1995  Mike Stump  <mrs@cygnus.com>
1584618334Speter
1584750397Sobrien	* cp-tree.h (build_cleanup): New routine to build cleanups.
1584850397Sobrien	* decl.c (expand_static_init): Use build_cleanup to build a cleanup
1584950397Sobrien	call at ctor time and use atexit to run it later.
1585050397Sobrien	* decl2.c (build_cleanup): New routine, taken from finish_file.
1585150397Sobrien	(finish_file): Use build_cleanup instead, and don't put function
1585250397Sobrien	local statics in global dtor list.
1585352284Sobrien
1585450397SobrienWed Dec  6 14:34:29 1995  Mike Stump  <mrs@cygnus.com>
1585518334Speter
1585650397Sobrien	* except.c (expand_throw): Ensure that we have cleanups, if we try
1585750397Sobrien	and expand cleanups.
1585818334Speter
1585950397SobrienWed Dec  6 11:48:21 1995  Mike Stump  <mrs@cygnus.com>
1586018334Speter
1586150397Sobrien	* except.c (expand_throw): Add logic to manage dynamic cleanups for
1586250397Sobrien	the EH object.
1586350397Sobrien	(expand_end_catch_block): Use the magic of expand_goto, instead of
1586450397Sobrien	emit_jump so that we get the cleanup for any catch clause parameter
1586550397Sobrien	and the cleanup for the exception object.  Update to reflect label
1586650397Sobrien	changes.
1586750397Sobrien	(push_eh_cleanup): New routine to register a cleanup for an
1586850397Sobrien	exception object.
1586950397Sobrien	(empty_fndecl): Used to default cleanup actions to
1587050397Sobrien	nothing.
1587150397Sobrien	(init_exception_processing): Setup empty_fndecl.  Setup
1587250397Sobrien	saved_cleanup.
1587350397Sobrien	(expand_start_catch_block): Update to reflect label changes.  Call
1587450397Sobrien	push_eh_object to register the cleanup for the EH object.
1587550397Sobrien	(start_anon_func): New routine to start building lambda expressions
1587650397Sobrien	from trees.
1587750397Sobrien	(end_anon_func): New routine to end them.
1587850397Sobrien	(struct labelNode): Change so that we can use tree labels, or rtx
1587950397Sobrien	labels.
1588050397Sobrien	(saved_cleanup): Object to check for dynamic cleanups for the
1588150397Sobrien	exception handling object.
1588250397Sobrien	(push_label_entry): Change so that we can use tree labels, or rtx
1588350397Sobrien	labels.
1588450397Sobrien	(pop_label_entry): Likewise.
1588550397Sobrien	(top_label_entry): Likewise.
1588650397Sobrien	(expand_start_all_catch): Use tree label instead of rtx label, so
1588750397Sobrien	that we can get the magic of expand_goto.
1588850397Sobrien	(expand_end_all_catch): Update to reflect label changes.
1588918334Speter
1589050397Sobrien	* class.c (build_vfn_ref): Remove building_cleanup logic, as we now
1589150397Sobrien	use UNSAVE_EXPRs.
1589252284Sobrien	* typeck.c (get_member_function_from_ptrfunc): Remove remnants of
1589350397Sobrien	building_cleanup logic, as we now use UNSAVE_EXPRs.
1589450397Sobrien	* cp-tree.h (unsave_expr): Declare it.
1589550397Sobrien	* decl.c (building_cleanup): Remove.
1589650397Sobrien	(maybe_build_cleanup): Remove building_cleanup logic, and use
1589750397Sobrien	UNSAVE_EXPR instead.
1589818334Speter
1589950397SobrienSun Dec  3 01:34:58 1995  Mike Stump  <mrs@cygnus.com>
1590018334Speter
1590150397Sobrien	* gc.c (build_t_desc): Update error message to say <typeinfo>.
1590218334Speter
1590350397SobrienThu Nov 30 12:30:05 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1590418334Speter
1590550397Sobrien	* decl.c (pushdecl): Only warn about shadowing a local variable if
1590650397Sobrien	warn_shadow is true.
1590718334Speter
1590850397SobrienSun Nov 26 16:06:55 1995  Rusty Russell  <rusty@adelaide.maptek.com.au>
1590918334Speter
1591050397Sobrien	* typeck.c (build_binary_op_nodefault): Added warning about
1591150397Sobrien	comparisons between different enum types with -Wall, unless
1591250397Sobrien	-fenum-int-equiv set.
1591318334Speter
1591450397SobrienWed Nov 22 15:44:02 1995  Mike Stump  <mrs@cygnus.com>
1591518334Speter
1591650397Sobrien	* class.c (finish_struct_1): Skip down to the inner type in
1591750397Sobrien	multidimensional arrays.  Ensures ctors will be made for types that
1591850397Sobrien	need constructing.
1591918334Speter
1592050397SobrienWed Nov 22 14:19:22 1995  Mike Stump  <mrs@cygnus.com>
1592118334Speter
1592250397Sobrien	* decl.c (last_dtor_insn): New to track the last compiler generated
1592350397Sobrien	insn in a dtor.
1592450397Sobrien	(store_parm_decls): Set it.
1592550397Sobrien	(finish_function): Use it to see if the dtor is empty.  Avoid doing
1592650397Sobrien	vtable setup all the time, if we can.
1592750397Sobrien	(struct cp_function): Add last_dtor_insn.
1592850397Sobrien	(push_cp_function_context): Save it.
1592950397Sobrien	(pop_cp_function_context): Restore it.
1593018334Speter
1593150397SobrienWed Nov 22 11:52:19 1995  Paul Russell  <Rusty.Russell@adelaide.maptek.com.au>
1593218334Speter
1593350397Sobrien	* typeck.c (build_unary_op): Set TREE_NO_UNUSED_WARNING to avoid
1593450397Sobrien	warnings.
1593518334Speter
1593650397SobrienTue Nov 21 17:15:23 1995  Mike Stump  <mrs@cygnus.com>
1593718334Speter
1593850397Sobrien	* typeck.c (expand_target_expr): Make sure targets get put into the
1593950397Sobrien	current temp_slot_level, so that the free_temp_slots call will reuse
1594050397Sobrien	them.
1594118334Speter
1594250397SobrienTue Nov 21 13:32:03 1995  Mike Stump  <mrs@cygnus.com>
1594318334Speter
1594450397Sobrien	* class.c (finish_struct_1): Delay delta fixups for virtual bases
1594550397Sobrien	until after we have done the hard virtuals, to avoid a bogus `every
1594650397Sobrien	virtual function must have a unique final overrider' for virtual
1594750397Sobrien	functions that are only overridden by hard virtuals.
1594818334Speter
1594950397SobrienThu Nov  9 13:35:30 1995  Jason Merrill  <jason@yorick.cygnus.com>
1595018334Speter
1595150397Sobrien	* pt.c (do_function_instantiation): Don't try to find a file-scope
1595250397Sobrien	template for a member function.
1595318334Speter
1595450397SobrienTue Nov 14 06:20:35 1995  Mike Stump  <mrs@cygnus.com>
1595518334Speter
1595650397Sobrien	* g++.c (main): Add handling of -nodefaultlibs.
1595718334Speter
1595850397SobrienMon Nov 13 15:45:34 1995  Mike Stump  <mrs@cygnus.com>
1595918334Speter
1596050397Sobrien	* cp-tree.h (INDIRECT_BIND): Add a way for the frontend to
1596150397Sobrien	distinguish between direct bindings of reference variables, and
1596250397Sobrien	indirect bindings of reference variables.
1596350397Sobrien	* cvt.c (build_up_reference): Use it.
1596450397Sobrien	* typeck.c (convert_arguments): Use it to indicate this is an
1596550397Sobrien	indirect binding.
1596650397Sobrien	* decl.c (cp_finish_decl): Ensure that we reuse stack slots as fast
1596750397Sobrien	as they are unused.
1596850397Sobrien	(expand_static_init): Likewise.
1596950397Sobrien	(cplus_expand_expr_stmt): Likewise.
1597050397Sobrien	* decl2.c (finish_file): Likewise.
1597150397Sobrien	* init.c (perform_member_init): Likewise.
1597250397Sobrien	(emit_base_init): Likewise.
1597350397Sobrien	(expand_aggr_vbase_init_1): Likewise.
1597418334Speter
1597550397SobrienFri Nov 10 09:18:09 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1597618334Speter
1597750397Sobrien	* decl.c (push_namespace): Rewrite to use build_lang_decl, so we
1597850397Sobrien	get a DECL_LANG_SPECIFIC node.
1597950397Sobrien	* cp-tree.h (lang_decl_flags): Add new member `level'.
1598050397Sobrien	(NAMESPACE_LEVEL): Don't use decl.arguments, instead use the
1598150397Sobrien	decl_flags level member.
1598218334Speter
1598350397SobrienMon Nov  6 18:36:13 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1598418334Speter
1598550397Sobrien	* call.c (build_method_call): Make sure instance has a
1598652284Sobrien	TYPE_LANG_SPECIFIC node before we dive into it.
1598718334Speter
1598850397SobrienSat Nov  4 20:01:52 1995  Jason Molenda  <crash@phydeaux.cygnus.com>
1598918334Speter
1599052284Sobrien	* method.c (make_thunk): Use TREE_SET_CODE to set thunk's tree code.
1599118334Speter
1599250397SobrienThu Nov  2 17:56:57 1995  Mike Stump  <mrs@cygnus.com>
1599318334Speter
1599450397Sobrien	* decl.c (duplicate_decls): When smashing decls, smash staticness in
1599550397Sobrien	the usual way.
1599618334Speter
1599750397SobrienThu Nov  2 16:44:02 1995  Mike Stump  <mrs@cygnus.com>
1599818334Speter
1599950397Sobrien	* decl.c (poplevel): Handle the merging of subblocks of cleanups
1600050397Sobrien	when finishing blocks that have already been created (usually due to
1600150397Sobrien	the fixup goto code).  Fixes bad debugging information.
1600218334Speter
1600350397SobrienWed Nov  1 12:33:53 1995  Jason Merrill  <jason@yorick.cygnus.com>
1600418334Speter
1600550397Sobrien	* method.c (hack_identifier): Don't abort when we get a TREE_LIST
1600650397Sobrien	that's not a list of overloaded functions.
1600718334Speter
1600850397SobrienWed Nov  1 11:38:58 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1600918334Speter
1601050397Sobrien	* decl2.c (mark_vtable_entries): Check DECL_LANG_SPECIFIC on fn
1601150397Sobrien	before trying to use DECL_ABSTRACT_VIRTUAL_P.
1601218334Speter
1601350397SobrienTue Oct 31 11:56:55 1995  Jason Merrill  <jason@yorick.cygnus.com>
1601418334Speter
1601550397Sobrien	* decl2.c (mark_used): New function for hooking into setting of
1601650397Sobrien	TREE_USED on decls.
1601750397Sobrien	* call.c (build_method_call): Use it.
1601850397Sobrien	* class.c (instantiate_type): Likewise.
1601950397Sobrien	* init.c (build_offset_ref): Likewise.  Don't call assemble_external
1602050397Sobrien	for all like-named functions.
1602150397Sobrien	* method.c (hack_identifier): Likewise.
1602250397Sobrien	(emit_thunk): Don't call assemble_external.
1602350397Sobrien	(make_thunk): Create thunk as a FUNCTION_DECL so that it
1602450397Sobrien	gets the right mode and ENCODE_SECTION_INFO works.
1602552284Sobrien
1602650397Sobrien	* parse.y: Use mark_used.  Pass operator names to do_identifier.
1602750397Sobrien	* lex.c (do_identifier): Handle operator names.
1602818334Speter
1602950397Sobrien	* decl2.c (grokclassfn): Tweak __in_chrg attributes.
1603018334Speter
1603150397SobrienThu Oct 26 16:45:58 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1603218334Speter
1603350397Sobrien	* errfn.c: Include stdio.h.
1603450397Sobrien	(cp_sprintf): Take out decl of sprintf, and cast sprintf to errorfn*.
1603518334Speter
1603650397SobrienWed Oct 25 18:58:41 1995  Mike Stump  <mrs@cygnus.com>
1603718334Speter
1603850397Sobrien	* typeck2.c (digest_init): Always convert initializers to the
1603950397Sobrien	right type.
1604018334Speter
1604150397SobrienWed Oct 25 13:25:24 1995  Mike Stump  <mrs@cygnus.com>
1604218334Speter
1604350397Sobrien	* init.c (member_init_ok_or_else): Don't allow member initializers
1604450397Sobrien	for indirect members, as it is invalid.
1604518334Speter
1604650397SobrienWed Oct 25 11:35:28 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1604718334Speter
1604850397Sobrien	* decl.c (grokdeclarator): Don't allow `friend signed ()'.
1604918334Speter
1605050397SobrienFri Oct 20 10:30:59 1995  Mike Stump  <mrs@cygnus.com>
1605118334Speter
1605250397Sobrien	* parse.y (for.init.statement): Catch compound statements inside for
1605350397Sobrien	initializations, if we're being pedantic.
1605418334Speter
1605550397SobrienFri Oct 20 10:03:42 1995  Mike Stump  <mrs@cygnus.com>
1605618334Speter
1605750397Sobrien	* decl.c (lookup_tag): Return NULL_TREE if we don't find what we are
1605850397Sobrien	looking for.
1605918334Speter
1606050397SobrienThu Oct 19 14:26:10 1995  Mike Stump  <mrs@cygnus.com>
1606118334Speter
1606250397Sobrien	* error.c (dump_expr): Don't core dump when a boolean expression is
1606350397Sobrien	used as a default argument.
1606418334Speter
1606550397SobrienThu Oct 19 10:36:30 1995  Jason Merrill  <jason@yorick.cygnus.com>
1606650397Sobrien
1606750397Sobrien	* class.c (finish_struct_bits): Check aggregate_value_p instead of
1606850397Sobrien	RETURN_IN_MEMORY.
1606950397Sobrien
1607050397SobrienWed Oct 18 18:12:32 1995  Jason Merrill  <jason@yorick.cygnus.com>
1607150397Sobrien
1607250397Sobrien	* class.c (finish_struct_bits): Also set TREE_ADDRESSABLE on a
1607350397Sobrien	BLKmode type that would otherwise be returned in registers.
1607450397Sobrien
1607550397SobrienMon Oct 16 12:32:19 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1607650397Sobrien
1607750397Sobrien	* g++.c (WITHLIBC): New macro.
1607850397Sobrien	(main): Declare saw_libc.  Use WITHLIBC if `-lc' was used; set
1607950397Sobrien	saw_libc and pass it at the end if it was set.
1608050397Sobrien
1608150397SobrienWed Oct 11 16:30:34 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1608250397Sobrien
1608350397Sobrien	* parse.y (fn.def1): Call split_specs_attrs in
1608450397Sobrien	declmods notype_declarator case.
16085