ChangeLog revision 57844
170635Sobrien2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
270635Sobrien
370635Sobrien	* typeck2.c (my_friendly_abort): Use GCCBUGURL.
470635Sobrien
570635Sobrien1999-11-01  Jason Merrill  <jason@yorick.cygnus.com>
670635Sobrien
770635Sobrien	* decl2.c (maybe_make_one_only): Always make things comdat on
870635Sobrien	ELF targets, too.
970635Sobrien
1070635SobrienSun Oct 24 23:54:10 PDT 1999 Jeff Law  (law@cygnus.com)
1170635Sobrien
1270635Sobrien	* gcc-2.95.2 Released.
1370635Sobrien
1470635Sobrien1999-09-06  Mark Mitchell  <mark@codesourcery.com>
1570635Sobrien
1670635Sobrien	* pt.c (tsubst): Back out 1999-08-06 patch.  Use fold and
1760967Sobrien	decl_constant_value to simplify array bounds.
1860967Sobrien
1960967Sobrien1999-08-19  Jason Merrill  <jason@yorick.cygnus.com>
2060967Sobrien
2160967Sobrien	* cp-tree.h: Declare flag_use_repository.
2260967Sobrien	* pt.c (do_decl_instantiation): Don't complain about duplicate
2360967Sobrien	instantiation with -frepo.
2460967Sobrien	(do_type_instantiation): Likewise.
2560967Sobrien
2660967Sobrien1999-08-14  Jason Merrill  <jason@yorick.cygnus.com>
2760967Sobrien
2860967Sobrien	* decl2.c (lookup_arg_dependent): Note that we've already checked
2960967Sobrien	the current namespace.
3060967Sobrien
3160967SobrienMon Aug 16 01:29:24 PDT 1999 Jeff Law  (law@cygnus.com)
3260967Sobrien
3360967Sobrien	* gcc-2.95.1 Released.
3460967Sobrien
3560967Sobrien1999-08-12  Mark Mitchell  <mark@codesourcery.com>
3660967Sobrien
3760967Sobrien	* decl2.c (lang_decode_option): Deprecate signatures.
3860967Sobrien
3960967Sobrien1999-08-11  Martin v. Loewis  <martin@mira.isdn.cs.tu-berlin.de>
4060967Sobrien
4160967Sobrien	* lex.c (do_identifier): If we find a hidden type after a global
4260967Sobrien	was selected already, continue using the global.
4360967Sobrien
4460967Sobrien1999-08-10  Martin v. Loewis  <martin@mira.isdn.cs.tu-berlin.de>
4560967Sobrien
4660967Sobrien	* decl2.c (set_decl_namespace): Do not complain about non-matching
4760967Sobrien	decls if processing a template.
4860967Sobrien
4960967Sobrien1999-08-09  Jason Merrill  <jason@yorick.cygnus.com>
5060967Sobrien
5160967Sobrien	* parse.y (function_try_block): Call end_protect_partials
5260967Sobrien	before expand_start_all_catch.
5360967Sobrien
5460967Sobrien1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
5560967Sobrien
5660967Sobrien	* pt.c (maybe_get_template_decl_from_type_decl): Make sure that
5760967Sobrien	we're looking at a class.
5860967Sobrien
5960967Sobrien	* decl.c (lookup_name_real): Set the complain flag if we're
6060967Sobrien	looking for a namespace member.
6160967Sobrien
6260967Sobrien	* decl.c (pushdecl): Only give an error for shadowing a parm 
6360967Sobrien	from *this* function.
6460967Sobrien
6560967Sobrien	* decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Only
6660967Sobrien	build_expr_from_tree on the args of a TEMPLATE_ID_EXPR.
6760967Sobrien
6860967Sobrien	* class.c (mark_overriders): Fix order of args to overrides.
6960967Sobrien	(warn_hidden): Likewise.  Fix for having virtual and non-virtual
7060967Sobrien	functions with the same name.
7160967Sobrien
7260967Sobrien	* cp-tree.h (DECL_VIRTUAL_CONTEXT): New macro.
7360967Sobrien	* typeck.c (expand_ptrmemfunc_cst): Calculate delta correctly for
7460967Sobrien	virtual functions and MI.  Simplify.
7560967Sobrien
7660967Sobrien	* typeck.c (c_expand_return): Downgrade pedwarn about returning NULL
7760967Sobrien	from op new to warning.
7860967Sobrien
7960967Sobrien	* decl2.c (reparse_absdcl_as_casts): Don't warn about old-style
8060967Sobrien	casts in system headers or extern "C" blocks.
8160967Sobrien
8260967Sobrien	* pt.c (do_decl_instantiation): Downgrade duplicate instantiation
8360967Sobrien	errors to pedwarn.
8460967Sobrien
8560967Sobrien	* error.c (dump_type_real): Handle TREE_LIST again.
8660967Sobrien
8760967Sobrien	* typeck.c (comp_target_parms): Don't complain about 
8860967Sobrien	converting from () to (...) if !flag_strict_prototype.
8960967Sobrien
9060967Sobrien	* class.c (instantiate_type): Downgrade errors for object-dependent
9160967Sobrien	memfn refs to pedwarn.
9260967Sobrien
9360967Sobrien1999-08-06  Alexandre Oliva  <oliva@dcc.unicamp.br>
9460967Sobrien
9560967Sobrien	* pt.c (tsubst): Use build_index_type to build in-template array
9660967Sobrien	index type.  Fixes g++.oliva/dwarf1.C.
9760967Sobrien	* decl.c (grokdeclarator): Likewise, just for consistency, as it
9860967Sobrien	doesn't seem to trigger the bug without it.
9960967Sobrien
10060967SobrienThu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
10160967Sobrien
10260967Sobrien        * typeck2.c: Update URLs and mail addresses.
10360967Sobrien
10460967Sobrien1999-08-03  Mumit Khan  <khan@xraylith.wisc.edu>
10560967Sobrien
10660967Sobrien	* decl.c (start_decl): Set attributes before duplicate_decls call.
10760967Sobrien
10860967SobrienWed Jul 28 21:39:31 PDT 1999 Jeff Law  (law@cygnus.com)
10960967Sobrien
11060967Sobrien	* gcc-2.95 Released.
11160967Sobrien
11260967SobrienSun Jul 25 15:24:21 1999  Jeffrey A Law  (law@cygnus.com)
11360967Sobrien
11460967Sobrien	* g++FAQ.texi: Deleted per Joe Buck's request.
11560967Sobrien	* Makefile.in: Corresponding changes.
11660967Sobrien
11760967SobrienSat Jul 17 23:50:47 1999  Jeffrey A Law  (law@cygnus.com)
11860967Sobrien
11960967Sobrien	* Makefile.in (INTERFACE): Bump to 2.
12060967Sobrien
12160967Sobrien1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
12260967Sobrien        
12360967Sobrien	* typeck2.c (my_friendly_abort): Updated URL with bug reporting
12460967Sobrien	instructions to gcc.gnu.org.  Removed e-mail address.
12560967Sobrien
12660967Sobrien1999-07-15  Mark Mitchell  <mark@codesourcery.com>
12760967Sobrien
12860967Sobrien        * pt.c (check_default_tmpl_args): Handle friends defined in the
12960967Sobrien        class just like member functions defined in the class.
13060967Sobrien
13157844SobrienThu Jul 15 01:26:49 1999  H.J. Lu  <hjl@gnu.org>
13257844Sobrien
13357844Sobrien	* decl.c (duplicate_decls): Relax restriction for exception
13457844Sobrien	checks on duplicate symbols.
13556385Sobrien
13656385Sobrien1999-07-07  Jason Merrill  <jason@yorick.cygnus.com>
13756385Sobrien
13856385Sobrien	* decl.c (grokdeclarator): Update the names of all variants when
13956385Sobrien	de-anonymizing.
14052750Sobrien
14152750SobrienWed Jul  7 01:26:47 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
14252750Sobrien
14352750Sobrien	* decl2.c (mark_vtable_entries): Fix check for rtti offset.
14452750Sobrien
14552750Sobrien1999-06-26  Richard Henderson  <rth@cygnus.com>
14652750Sobrien
14752750Sobrien	* decl.c (cp_finish_decl): Fix typo in cp_warning_at call.
14852750Sobrien
14952750Sobrien1999-06-21  Mark Mitchell  <mark@codesourcery.com>
15052750Sobrien
15152750Sobrien	* init.c (expand_aggr_vbase_init): Rename to
15252750Sobrien	construct_virtual_bases.  Conditionalize construction here, 
15352750Sobrien	rather than ...
15452750Sobrien	(emit_base_init): Here.
15552750Sobrien
15652750Sobrien1999-06-19  Mark Mitchell  <mark@codesourcery.com>
15752750Sobrien
15852750Sobrien        * semantics.c (finish_asm_statement): Apply decay conversions to
15952750Sobrien        input operands.
16052750Sobrien
16152284Sobrien	* decl.c (expand_static_init): When building an anonymous function
16248743Sobrien	for use with atexit, compute its body before and after entering
16352284Sobrien	the function.
16448743Sobrien
16552284Sobrien1999-06-18  Mark Mitchell  <mark@codesourcery.com>
16652284Sobrien
16752284Sobrien	* init.c (expand_aggr_vbase_init): Add flag parameter.
16852284Sobrien	(build_partial_cleanup_for): Remove, inlining into ..
16952284Sobrien	(expand_cleanup_for_base): ... here.  Take flag parameter.
17052284Sobrien	(emit_base_init): Pass the in_chrg parameter to
17152284Sobrien	emit_aggr_vbase_init. 
17252284Sobrien	(emit_aggr_vbase_init): Pass it to expand_cleanup_for_base.
17352284Sobrien	
17452284Sobrien1999-06-16  Mark Mitchell  <mark@codesourcery.com>
17552284Sobrien
17652284Sobrien	* decl2.c (import_export_decl): Use same_type_p, rather than
17752284Sobrien	relying on pointer-equality for types.
17852284Sobrien
17952284Sobrien	* method.c (do_build_copy_constructor): Simplify.
18052284Sobrien
18152284Sobrien	* call.c (build_method_call): Remove bogus code for two-argument
18252284Sobrien	delete.
18352284Sobrien	* init.c (build_new_1): Expand on comment, and remove dead code.
18452284Sobrien
18552284Sobrien	* init.c (expand_cleanup_for_base): New function, split out
18652284Sobrien	from ...
18752284Sobrien	(emit_base_init): Here.
18852284Sobrien	(expand_aggr_vbase_init): Use it.
18952284Sobrien
19052284Sobrien1999-06-15  Mark Mitchell  <mark@codesourcery.com>
19152284Sobrien
19252284Sobrien	* cp-tree.h (class_cache_firstobj): Declare.
19352284Sobrien	(maybe_push_cache_obstack): Rename to push_cache_obstack.
19452284Sobrien	* class.c (permanent_obstack): Remove declaration.
19552284Sobrien	(class_cache_firstobj): Make it global.
19652284Sobrien	(add_method): Don't use permanent_obstack directly.
19752284Sobrien	(pushclass): Only free the class_cache_obstack if we know how far
19852284Sobrien	back to free it.
19952284Sobrien	(maybe_push_cache_obstack): Rename to push_cache_obstack.
20052284Sobrien	* decl.c: Remove dead comment.
20152284Sobrien	(saved_scope): Add class_cache_firstobj.
20252284Sobrien	(push_to_top_level): Save it.
20352284Sobrien	(pop_from_top_level): Restore it.
20452284Sobrien	(push_class_level_binding): Use push_cache_obstack, not
20552284Sobrien	maybe_push_cache_obstack.
20652284Sobrien	* search.c (push_class_decls): Likewise.
20752284Sobrien
20852284Sobrien1999-06-14  Nathan Sidwell  <nathan@acm.org>
20952284Sobrien
21052284Sobrien	* call.c (build_new_op): Remove REF_BIND from all operands.
21152284Sobrien
21252284Sobrien1999-06-07  Mark Mitchell  <mark@codesourcery.com>
21352284Sobrien
21452284Sobrien	* search.c (convert_pointer_to_single_level): Reimplement without
21552284Sobrien	using get_binfo.
21652284Sobrien
21752284Sobrien1999-06-06  Mark Mitchell  <mark@codesourcery.com>
21852284Sobrien
21952284Sobrien	* method.c (is_back_referenceable_type): Back-reference bools when
22052284Sobrien	not squangling.
22152284Sobrien
22252284Sobrien1999-06-04  Jason Merrill  <jason@yorick.cygnus.com>
22352284Sobrien
22452284Sobrien	* semantics.c (finish_if_stmt_cond): Copy cond to permanent_obstack.
22552284Sobrien	(finish_while_stmt_cond, finish_do_stmt, finish_for_cond): Likewise.
22652284Sobrien
22752284Sobrien1999-05-30  Mark Mitchell  <mark@codesourcery.com>
22852284Sobrien
22952284Sobrien	* lex.c (make_lang_type): Create TYPE_BINFO for
23052284Sobrien	TEMPLATE_TYPE_PARMs just like for non-template types.
23152284Sobrien
23252284Sobrien1999-05-28  Nathan Sidwell  <nathan@acm.org>
23352284Sobrien
23452284Sobrien	* decl.c (complete_array_type): Allocate off same obstack. Fix
23552284Sobrien	DO_DEFAULT comment to match reality.
23652284Sobrien
23752284Sobrien1999-05-22  Mark Mitchell  <mark@codesourcery.com>
23852284Sobrien
23952284Sobrien	* tree.c (mapcar): Handle NON_LVALUE_EXPR.
24052284Sobrien
24152284Sobrien1999-05-21  Mark Mitchell  <mark@codesourcery.com>
24252284Sobrien
24352284Sobrien	* typeck.c (build_ptrmemfunc): Handle PTRMEM_CSTs carefully to
24452284Sobrien	reveal optimization opportunities.
24552284Sobrien
24652284Sobrien1999-05-20  Mark Mitchell  <mark@codesourcery.com>
24752284Sobrien
24852284Sobrien	* decl.c (grokdeclarator): Don't treat [] as indicating a
24952284Sobrien	zero-sized array in a typedef.
25052284Sobrien
25152284Sobrien	* call.c (build_object_call): Don't look at DECL_NAME for a type.
25252284Sobrien	(pt.c): Or CP_TYPE_QUALS for an ERROR_MARK.
25352284Sobrien	(typeck.c): Or TYPE_MAIN_VARIANT for a type.
25452284Sobrien
25552284Sobrien1999-05-20  Jason Merrill  <jason@yorick.cygnus.com>
25652284Sobrien
25752284Sobrien	* tree.c (lvalue_p_1): A NOP_EXPR can be an lvalue.
25852284Sobrien	(build_cplus_new): Make sure that what we return is of the right type.
25952284Sobrien
26052284Sobrien1999-05-20  Mark Mitchell  <mark@codesourcery.com>
26152284Sobrien
26252284Sobrien	* cp-tree.h (make_ptrmem_cst): New function.
26352284Sobrien	* expr.c (cplus_expand_constant): Split out from ...
26452284Sobrien	(cplus_expand_expr): Here.  Use cplus_expand_constant.
26552284Sobrien	(init_cplus_expand): Set lang_expand_constant.
26652284Sobrien	* pt.c (convert_nontype_argument): Use make_ptrmem_cst.
26752284Sobrien	* tree.c (make_ptrmem_cst): Define.
26852284Sobrien	* typeck.c (unary_complex_lvalue): Use make_ptrmem_cst.
26952284Sobrien	* typeck2.c (initializer_constant_valid_p): Use make_ptrmem_cst.
27052284Sobrien
27152284Sobrien1999-05-19  Mark Mitchell  <mark@codesourcery.com>
27252284Sobrien
27352284Sobrien	* decl2.c (start_static_storage_duration_function): Fix comment.
27452284Sobrien	(finish_file): Create static storage duration functions lazily.
27552284Sobrien
27652284SobrienWed May 19 02:50:53 1999  Arvind Sankar <arvinds@mit.edu>
27752284Sobrien
27852284Sobrien	* gxxint.texi: Fix typo.
27952284Sobrien
28052284Sobrien1999-05-18  Jason Merrill  <jason@yorick.cygnus.com>
28152284Sobrien
28252284Sobrien	* call.c (joust): Compare the types of the conv ops, not the
28352284Sobrien	target types of the conversions.
28452284Sobrien
28552284SobrienTue May 18 00:21:34 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
28652284Sobrien
28752284Sobrien	* lang-specs.h: Define __GNUC__ and __GNUC_MINOR__ only if -no-gcc
28852284Sobrien	was not given.
28952284Sobrien
29052284Sobrien1999-05-17  Mark Mitchell  <mark@codesourcery.com>
29152284Sobrien
29252284Sobrien	* cp-tree.def (TEMPLATE_ID_EXPR): Update documentation.
29352284Sobrien	* decl.c (grokfndecl): Don't allow inline declarations of friend
29452284Sobrien	template specializations, or friend template specializations with
29552284Sobrien	default arguments.
29652284Sobrien	* pt.c (tsubst): Handle substitution into array types that does
29752284Sobrien	not yield a fixed upper bound, even when not processing a
29852284Sobrien	template.
29952284Sobrien	(tsubst_copy): Deal with the fact that the second operand to a
30052284Sobrien	TEMPLATE_ID_EXPR may be NULL_TREE, a TREE_LIST, or a TREE_VEC.
30152284Sobrien	* search.c (marked_pushdecls_p): Don't descend into
30252284Sobrien	TEMPLATE_TYPE_PARMs and the like.
30352284Sobrien	(unmarked_pushdecls_p): Likewise.
30452284Sobrien	
30552284Sobrien	* call.c (build_over_call): Don't throw away
30652284Sobrien	initializations/copies of empty classes; use MODIFY_EXPR and
30752284Sobrien	INIT_EXPR as for non-empty classes.
30852284Sobrien	* class.c (finish_struct_1): Put the padding byte for an empty
30952284Sobrien	class on the TYPE_NONCOPIED_PARTS list for the class.
31052284Sobrien
31152284Sobrien1999-05-16  Mark Mitchell  <mark@codesourcery.com>
31252284Sobrien
31352284Sobrien	* decl2.c (build_expr_from_tree): Handle COMPONENT_REFs that
31452284Sobrien	indicate a reference to a field that is a qualified name.
31552284Sobrien
31652284Sobrien1999-05-16  Jason Merrill  <jason@yorick.cygnus.com>
31752284Sobrien
31852284Sobrien	* decl2.c (finish_objects): Don't use .?tors.* if we don't have
31952284Sobrien	ASM_OUTPUT_CONSTRUCTOR.
32052284Sobrien
32152284Sobrien	* friend.c (do_friend): Add attrlist arg.  Remove support for
32252284Sobrien	getting a non-decl as 'decl'.
32352284Sobrien	* decl.c (grokfndecl): Remove attrlist arg.  Don't set attrs or
32452284Sobrien	rtl.
32552284Sobrien	(grokdeclarator): Adjust.
32652284Sobrien	* cp-tree.h: Adjust.
32752284Sobrien
32852284Sobrien1999-05-16  Mark Mitchell  <mark@codesourcery.com>
32952284Sobrien
33052284Sobrien	* cp-tree.h (permanent_p): New function.
33152284Sobrien	* init.c (build_new_1): Use mapcar, not copy_node, to copy a
33252284Sobrien	possibly complex tree node.
33352284Sobrien	* tree.c (mapcar): Adjust comments, and follow coding standards in
33452284Sobrien	conditional.
33552284Sobrien	(permanent_p): New function.
33652284Sobrien
33752284Sobrien1999-05-13  Per Bothner  <bothner@cygnus.com>
33852284Sobrien
33952284Sobrien	* class.c (push_lang_context):  Turn off DECL_IGNORED_P for
34052284Sobrien	primitive Java types, if we actually see `extern "Java"'.
34152284Sobrien
34252284Sobrien1999-05-10 18:21 -0400  Zack Weinberg  <zack@rabi.phys.columbia.edu>
34352284Sobrien
34452284Sobrien	* lang-specs.h: Pass -$ to the preprocessor.
34552284Sobrien
34652284Sobrien1999-05-10  Jason Merrill  <jason@yorick.cygnus.com>
34752284Sobrien
34852284Sobrien	* init.c (build_offset_ref): Wrap baselinks in OFFSET_REF, too.
34952284Sobrien	Don't bother wrapping an OFFSET_TYPE around unknown_type_node.
35052284Sobrien	(resolve_offset_ref): Don't handle a raw baselink.
35152284Sobrien	* cvt.c (build_expr_type_conversion): Likewise.
35252284Sobrien	* typeck.c (decay_conversion, build_c_cast, convert_for_assignment,
35352284Sobrien	convert_for_initialization): Likewise.
35452284Sobrien	* class.c (instantiate_type): Handle seeing a baselink under an
35552284Sobrien	OFFSET_REF.
35652284Sobrien	* error.c (dump_expr): Likewise.	
35752284Sobrien	* pt.c (for_each_template_parm): Likewise.
35852284Sobrien	(resolve_overloaded_unification): Likewise.
35952284Sobrien	* tree.c (is_overloaded_fn, really_overloaded_fn): Likewise.
36052284Sobrien	* typeck.c (expr_sizeof): Also complain about other permutations
36152284Sobrien	of overloaded functions.
36252284Sobrien
36352284Sobrien1999-05-07  Jason Merrill  <jason@yorick.cygnus.com>
36452284Sobrien
36552284Sobrien	* init.c (resolve_offset_ref): Don't return a raw method.
36652284Sobrien	Use BASELINK_P.
36752284Sobrien	* typeck.c (decay_conversion): Don't handle a raw method.
36852284Sobrien	Resolve all OFFSET_REFs.
36952284Sobrien	(get_member_function_from_ptrfunc): 0 is a valid vtable index.
37052284Sobrien	(build_binary_op_nodefault): Handle resolving overloaded fns.  Use
37152284Sobrien	same_type_p for pmf bits.  Don't use build_binary_op to compare
37252284Sobrien	raw pointers to methods.
37352284Sobrien	(convert_for_assignment): Check for OFFSET_REF, not OFFSET_TYPE,
37452284Sobrien	to decide when to call resolve_offset_ref.
37552284Sobrien	(build_c_cast, convert_for_initialization): Likewise.
37652284Sobrien	* cvt.c (build_expr_type_conversion): Likewise.
37752284Sobrien
37852284Sobrien1999-05-06  Nathan Sidwell  <nathan@acm.org>
37952284Sobrien
38052284Sobrien	* call.c (build_new_method_call): Use TYPE_MAIN_VARIANT of class.
38152284Sobrien
38252284Sobrien1999-05-05  Mark Mitchell  <mark@codesourcery.com>
38352284Sobrien
38452284Sobrien	* decl2.c (start_objects): Don't let static constructors and
38552284Sobrien	destructors get inlined.
38652284Sobrien
38752284Sobrien	* parse.y (nested_name_specifier): Make sure ordinary types are
38852284Sobrien	complete, just like template types.
38952284Sobrien	* parse.c: Regenerated.
39052284Sobrien
39152284Sobrien	* pt.c (check_explicit_specialization): Improve error messages.
39252284Sobrien
39352284Sobrien1999-05-04  Martin von L�wis  <loewis@informatik.hu-berlin.de>
39452284Sobrien
39552284Sobrien	* typeck.c (string_conv_p): Use same_type_p to check whether we
39652284Sobrien	try to convert between char and wchar_t.
39752284Sobrien
39852284Sobrien1999-05-03  Mark Mitchell  <mark@codesourcery.com>
39952284Sobrien
40052284Sobrien	* search.c (lookup_field_r): Set the TREE_TYPE of an ambiguous
40152284Sobrien	lookup to error_mark_node here.
40252284Sobrien	(lookup_member): Revise documentation.  Add comments.  Don't set
40352284Sobrien	the TREE_TYPE to error_mark_node here, and don't build up an extra
40452284Sobrien	TREE_LIST for ambiguous lookups.
40552284Sobrien	(setup_class_bindings): Adjust accordingly.
40652284Sobrien	(push_class_decls): Revise out-of-date comments.
40752284Sobrien	
40852284Sobrien	* typeck.c (build_const_cast): Tighten checks for legality.
40952284Sobrien
41052284Sobrien1999-05-02  Martin von L�wis  <loewis@informatik.hu-berlin.de>
41152284Sobrien
41252284Sobrien	* init.c (build_member_call): Lookup names coming from
41352284Sobrien	namespace-scoped LOOKUP_EXPR.
41452284Sobrien
41552284Sobrien1999-05-03  Jim Blandy  <jimb@zwingli.cygnus.com>
41652284Sobrien
41752284Sobrien	* gxxint.texi: Add documentation for 'I'.
41852284Sobrien
41952284Sobrien1999-05-02  Martin von L�wis  <loewis@informatik.hu-berlin.de>
42052284Sobrien
42152284Sobrien	* tinfo.cc (operator==): Qualify type_info with std::.
42252284Sobrien
42352284Sobrien1999-05-02  Mark Mitchell  <mark@codesourcery.com>
42452284Sobrien
42552284Sobrien	* cp-tree.h (lang_decl_flags): Remove comdat.  Updated dummy.
42652284Sobrien	(DECL_COMDAT): Remove definition.
42752284Sobrien
42852284Sobrien1999-05-01  Mark Mitchell  <mark@codesourcery.com>
42952284Sobrien
43052284Sobrien	* decl.c (wrapup_globals_for_namespace): Fix thinko in previous
43152284Sobrien	change.
43252284Sobrien
43352284Sobrien1999-04-30  Mark Mitchell  <mark@codesourcery.com>
43452284Sobrien
43552284Sobrien	* class.c (build_vtable): Use build_lang_decl when building
43652284Sobrien	vtables, not just build_decl.
43752284Sobrien	(prepare_fresh_vtable): Likewise.
43852284Sobrien	* decl.c (wrapup_globals_for_namespace): Mark vtables as
43952284Sobrien	DECL_EXTERNAL when calling wrapup_global_declarations.
44052284Sobrien	* decl2.c (priority_info_s): Add initializations_p and
44152284Sobrien	destructions_p members.
44252284Sobrien	(finish_vtable_vardecl): Use TREE_SYMBOL_REFERENCED, not TREE_USED,
44352284Sobrien	when deciding what vtables to write out.
44452284Sobrien	(ssdf_decls): New variable.
44552284Sobrien	(ssdf_decls_used): Likewise.
44652284Sobrien	(start_static_storage_duration_function): Deal with being called
44752284Sobrien	multiple times.  Avoid inlining this function.
44852284Sobrien	(generate_inits_for_priority): Deal with reuse of priority map.
44952284Sobrien	(get_priority_info): Clear initializations_p and destructions_p.
45052284Sobrien	(do_static_initialization): Tweak comment.
45152284Sobrien	(do_static_destruction): Likewise.  Fix condition on sentries for
45252284Sobrien	destruction. 
45352284Sobrien	(generate_ctor_or_dtor_function): Call all of the static storage
45452284Sobrien	duration functions.
45552284Sobrien	(generate_ctor_or_dtor_function_for_priority): Check
45652284Sobrien	initializations_p and destructions_p to see what priorities need
45752284Sobrien	initialization functions.
45852284Sobrien	(finish_file): Rework to generate multiple static storage duration
45952284Sobrien	functions, rather than just one.
46052284Sobrien	
46152284Sobrien	* typeck.c (build_const_cast): Tweak last change to handle
46252284Sobrien	templates correctly.
46352284Sobrien
46452284Sobrien	* typeck.c (build_const_cast): Disallow use of const_cast to
46552284Sobrien	anything but a pointer or reference type.
46652284Sobrien
46752284Sobrien1999-04-30  Nathan Sidwell  <nathan@acm.org>
46852284Sobrien
46952284Sobrien	* decl.c (cp_finish_decl): Don't permit arrays of abstract or
47052284Sobrien	signature type.
47152284Sobrien
47252284Sobrien1999-04-29  Mark Mitchell  <mark@codesourcery.com>
47352284Sobrien
47452284Sobrien	* decl2.c (do_static_destruction): Remove obsolete FIXME comment.
47552284Sobrien	(finish_file): Indent comments properly.
47652284Sobrien
47752284Sobrien1999-04-29  Richard Henderson  <rth@cygnus.com>
47852284Sobrien
47952284Sobrien	* decl2.c (do_static_initialization): Call do_pending_stack_adjust.
48052284Sobrien	(do_static_destruction): Likewise.
48152284Sobrien
48252284Sobrien1999-04-29  Nathan Sidwell  <nathan@acm.org>
48352284Sobrien
48452284Sobrien	* cp-tree.h (TYPE_NOTHROW_P): New macro.
48552284Sobrien	* decl2.c (delete_sanity): Warn on deleting void *.
48652284Sobrien	* init.c (build_new_1): Use TYPE_NOTHROW_P.
48752284Sobrien	* typeck.c (c_expand_return): cp_pedwarn on returning NULL from
48852284Sobrien	throwing operator new.
48952284Sobrien
49052284Sobrien1999-04-28  Nathan Sidwell  <nathan@acm.org>
49152284Sobrien
49252284Sobrien	* cp-tree.h (build_component_addr): Remove prototype.
49352284Sobrien	* typeck.c (build_component_addr): Make static. Remove MSG
49452284Sobrien	argument.
49552284Sobrien	(build_component_addr): Remove MSG parameter, clean up
49652284Sobrien	comment.
49752284Sobrien	(build_x_function_call): Use cp_error.
49852284Sobrien	(build_unary_op): Adjust call of build_component_addr.
49952284Sobrien	
50052284Sobrien1999-04-28  Mark Mitchell  <mark@codesourcery.com>
50152284Sobrien
50252284Sobrien	* pt.c (tsubst_friend_class): Check for NULL.
50352284Sobrien
50452284SobrienWed Apr 28 11:42:22 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
50552284Sobrien
50652284Sobrien	* search.c (binfo_for_vtable): Initialize bfvi.var.
50752284Sobrien
50852284Sobrien1999-04-27  Nathan Sidwell  <nathan@acm.org>
50952284Sobrien
51052284Sobrien	* rtti.c (build_x_typeid): Check rtti is enabled.
51152284Sobrien
51252284Sobrien1999-04-26  Mark Mitchell  <mark@codesourcery.com>
51352284Sobrien
51452284Sobrien	* search.c (is_subobject_of_p): Make sure we're looking at the
51552284Sobrien	right baseclasses.
51652284Sobrien
51752284Sobrien1999-04-26  Marc Espie  <espie@cvs.openbsd.org>
51852284Sobrien
51952284Sobrien	* Make-lang.in (cplib2.ready): Don't depend on phony targets.
52052284Sobrien
52152284Sobrien1999-04-23  Mark Mitchell  <mark@codesourcery.com>
52252284Sobrien
52352284Sobrien	* decl2.c (finish_file): Tweak handling of extern inlines so that
52452284Sobrien	they are not unnecessarily put out.
52552284Sobrien
52652284Sobrien	* search.c (is_subobject_of_p): Handle TEMPLATE_TYPE_PARMs and
52752284Sobrien	such as base classes.
52852284Sobrien
52952284Sobrien1999-04-22  Brendan Kehoe  <brendan@cygnus.com>
53052284Sobrien
53152284Sobrien	* tree.c (build_exception_variant): Fix typo: use the chain of U,
53252284Sobrien	not trying V, while cycling through U.
53352284Sobrien
53452284Sobrien1999-04-22  Mark Mitchell  <mark@codesourcery.com>
53552284Sobrien
53652284Sobrien	* cp-tree.h (lang_decl_flags): Remove returns_first_arg and
53752284Sobrien	preserves_first_arg.  Enlarge dummy accordingly.
53852284Sobrien	(DECL_TINFO_FN_P): New macro.
53952284Sobrien	(SET_DECL_TINFO_FN_P): Likeiwse.
54052284Sobrien	(DECL_RETURNS_FIRST_ARG): Remove.
54152284Sobrien	(DECL_PRESERVES_THIS): Likewise.
54252284Sobrien	(DECL_INIT_PRIORITY): New macro.
54352284Sobrien	(finish_struct_1): Change prototype.
54452284Sobrien	(cat_namespace_levels): Remove prototype.
54552284Sobrien	(vtable_decl_p): New prototype.
54652284Sobrien	(vtype_decl_p): Likewise.
54752284Sobrien	(sigtable_decl_p): Likewise.
54852284Sobrien	(walk_globals_pred): New typedef.
54952284Sobrien	(walk_globals_fn): Likewise.
55052284Sobrien	(walk_globals): New prototype.
55152284Sobrien	(walk_namespaces_fn): New typedef.
55252284Sobrien	(walk_namespaces): New prototype.
55352284Sobrien	(wrapup_globals_for_namespace): Likewise.
55452284Sobrien	(walk_vtables): Remove prototype.
55552284Sobrien	(walk_sigtables): Likewise.
55652284Sobrien	(instantiate_pending_templates): New prototype.
55752284Sobrien	* class.c (finish_struct_1): Don't return a value.
55852284Sobrien	* decl.h (pending_statics): Remove declaration.
55952284Sobrien	* decl.c (walk_namespaces_r): New function.
56052284Sobrien	(walk_globals_r): Likewise.
56152284Sobrien	(vtable_decl_p): Likewise.
56252284Sobrien	(vtype_decl_p): Likewise.
56352284Sobrien	(sigtable_decl_p): Likewise.
56452284Sobrien	(walk_namespaces): Likewise.
56552284Sobrien	(walk_globals_data): New type.
56652284Sobrien	(walk_globals): New function.
56752284Sobrien	(wrapup_globals_for_namespace): Likewise.
56852284Sobrien	(expand_static_init): Remove assertion.  Remove redundancy in
56952284Sobrien	conditional.  Don't put static data members in static_aggregates
57052284Sobrien	Tidy.
57152284Sobrien	(finish_function): Remove redundancy in conditional.  Don't set
57252284Sobrien	DECL_RETURNS_FIRST_ARG.
57352284Sobrien	(cat_namespace_levels): Remove.
57452284Sobrien	* decl2.c: Include splay-tree.h and varray.h.
57552284Sobrien	(priority_info_s): New structure.
57652284Sobrien	(finish_vtable_vardecl): Change prototype.  Adjust for new calling
57752284Sobrien	conventions.
57852284Sobrien	(prune_vtable_vardecl): Likewise.
57952284Sobrien	(finish_sigtable_vardecl): Likewise.
58052284Sobrien	(setup_initp): Remove.
58152284Sobrien	(do_dtors): Remove.
58252284Sobrien	(do_ctors): Remove.
58352284Sobrien	(start_static_storage_duration_function): New function.
58452284Sobrien	(generate_inits_for_priority): Likewise.
58552284Sobrien	(finish_static_storage_duration_function): Likewise.
58652284Sobrien	(get_priority_info): Likewise.
58752284Sobrien	(do_static_initialization): Likewise.
58852284Sobrien	(do_static_destruction): Likewise.
58952284Sobrien	(do_static_initialization_and_destruction): Likewise.
59052284Sobrien	(generate_ctor_or_dtor_function): Likewise.
59152284Sobrien	(generate_ctor_and_dtor_functions_for_priority): Likewise.
59252284Sobrien	(pending_statics): Make it a varray.
59352284Sobrien	(pending_statics_used): New variable.
59452284Sobrien	(saved_inlines): Make it a varray.
59552284Sobrien	(saved_inlines_used): New variable.
59652284Sobrien	(finish_static_data_member): Change method of updating
59752284Sobrien	pending_statics. 
59852284Sobrien	(mark_inline_for_output): Remove #if 0'd code.  Change method of
59952284Sobrien	updating saved_inlines.
60052284Sobrien	(walk_vtables): Remove.
60152284Sobrien	(walk_sigtables): Likewise.
60252284Sobrien	(import_export_decl): Use DECL_TINFO_FN_P.
60352284Sobrien	(pending_templates): Remove declaration.
60452284Sobrien	(maybe_templates): Likewise.
60552284Sobrien	(static_aggregates_initp): Likewise.
60652284Sobrien	(setup_initp): Likewise.
60752284Sobrien	(finish_objects): Simplify.
60852284Sobrien	(INITIALIZE_P_IDENTIFIER): New macro.
60952284Sobrien	(PRIORITY_IDENTIFIER): New macro.
61052284Sobrien	(SSDF_IDENTIFIER): New macro.
61152284Sobrien	(initialize_p_decl): New variable.
61252284Sobrien	(priority_decl): Likewise.
61352284Sobrien	(ssdf_decl): Likewise.
61452284Sobrien	(priority_info_map): Likewise.
61552284Sobrien	(finish_file): Recode output of static intializers and other
61652284Sobrien	file-scope finalization tasks.
61752284Sobrien	* error.c (OB_END_TEMPLATE_ID): New macro.
61852284Sobrien	(dump_type_real): Use it.
61952284Sobrien	(dump_decl): Likewise.
62052284Sobrien	(dump_function_name): Likewise.
62152284Sobrien	* lex.c (set_typedecl_interface_info): Adjust for new walk_globals
62252284Sobrien	interface.
62352284Sobrien	(check_newline): Use walk_globals, not walk_vtables.
62452284Sobrien	* pt.c (pending_tempalte_expansions): Remove.
62552284Sobrien	(set_vardecl_interface_info): Likewise.
62652284Sobrien	(pending_templates): Make static.
62752284Sobrien	(maybe_templates): Likewise.
62852284Sobrien	(instantiate_class_template): Adjust call to finish_struct_1.
62952284Sobrien	(instantiate_pending_templates): New function.
63052284Sobrien	* rtti.c (get_tinfo_fn): Use SET_DECL_TINFO_FN_P.
63152284Sobrien	* tree.c (static_aggregates_initp): Remove.
63252284Sobrien	(cp_valid_lang_attribute): Don't use it; use DECL_INIT_PRIORITY
63352284Sobrien	instead.
63452284Sobrien	* Makefile.in (decl2.o): Depend on varray.h and splay-tree.h.
63552284Sobrien
63652284Sobrien	* gxx.gperf (RETURN): Rename to RETURN_KEYWORD to avoid clashes
63752284Sobrien	with the RTL code RETURN.
63852284Sobrien	* hash.h: Regenerated.
63952284Sobrien	* lex.c (reinit_parse_for_block): Use RETURN_KEYWORD.
64052284Sobrien	* parse.y: Replace RETURN with RETURN_KEYWORD throughout.
64152284Sobrien	* parse.c: Regenerated.
64252284Sobrien	* pt.c: Include varray.h.  Include rtl.h since varray.h requires
64352284Sobrien	it.
64452284Sobrien	(inline_parm_levels): New variable.
64552284Sobrien	(inline_parm_levels_used): Likewise.
64652284Sobrien	(maybe_begin_member_template_processing): Update them.
64752284Sobrien	(maybe_end_member_template_processing): Use them, rather than
64852284Sobrien	guessing how many levels to pop.
64952284Sobrien	
65052284Sobrien	* decl.c (make_typename_type): Tighten error-checking.
65152284Sobrien
65252284Sobrien1999-04-20  Mark Mitchell  <mark@codesourcery.com>
65352284Sobrien
65452284Sobrien	* cp-tree.h (build_binary_op): Remove unneeded parameter.
65552284Sobrien	* class.c (build_vrable_entry_ref): Adjust call to
65652284Sobrien	build_binary_op.
65752284Sobrien	* decl.c (expand_static_init): Likewise.
65852284Sobrien	(grokdeclarator): Likewise.
65952284Sobrien	(finish_function): Likewise.
66052284Sobrien	* decl2.c (delete_sanity): Likewise.
66152284Sobrien	(do_dtors): Likewise.
66252284Sobrien	(do_ctors): Likewise.
66352284Sobrien	* error.c (dump_type_suffix): Likewise.
66452284Sobrien	* expr.c (cplus_expand_expr): Likewise.
66552284Sobrien	* init.c (resolve_offset_ref): Likewise.
66652284Sobrien	(build_new): Likewise.
66752284Sobrien	(build_new_1): Likewise.
66852284Sobrien	(build_vec_delete_1): Likewise.
66952284Sobrien	(expand_vec_init_catch_clause): Likewise.
67052284Sobrien	(build_delete): Likewise.
67152284Sobrien	* pt.c (tsubst): Likewise.
67252284Sobrien	* rtti.c (synthesize_tinfo_fn): Likewise.
67352284Sobrien	* search.c (expand_upcast_fixups): Likewise.
67452284Sobrien	(expand_direct_vtbls_init): Likewise.
67552284Sobrien	* typeck.c (get_member_function_from_ptrfunc): Likewise.
67652284Sobrien	(build_binary_op_nodefault): Likewise.
67752284Sobrien	(point_int_sum): Likewise.
67852284Sobrien	(pointer_diff): Likewise.
67952284Sobrien	(build_unary_op): Likewise.
68052284Sobrien	(build_modify_expr): Likewise.
68152284Sobrien	(get_delta_difference): Likewise.
68252284Sobrien	(build_ptrmemfunc): Likewise.
68352284Sobrien	(expand_ptrmemfunc_cst): Likewise.
68452284Sobrien	
68552284Sobrien1999-04-20  Jason Merrill  <jason@yorick.cygnus.com>
68652284Sobrien
68752284Sobrien	* decl.c (grokfndecl): Always call cplus_decl_attributes.
68852284Sobrien	* decl2.c (grokfield): Pass attrlist to grokdeclarator.
68952284Sobrien
69052284Sobrien1999-04-19  Mark Mitchell  <mark@codesourcery.com>
69152284Sobrien
69252284Sobrien	* cp-tree.h (finish_static_data_member_decl): New function.
69352284Sobrien	* decl2.c (finish_static_data_member_decl): Split out from ...
69452284Sobrien	(grokfield): Here.
69552284Sobrien	* pt.c (instantiate_class_template): Use it here instead of 
69652284Sobrien	trying to fake it.
69752284Sobrien	(tsubst_decl): Don't set DECL_ASSEMBLER_NAME;
69852284Sobrien	finish_static_data_member_decl will do that.  Explicit set
69952284Sobrien	DECL_EXTERNAL to match non-template processing.
70052284Sobrien	
70152284Sobrien1999-04-18  Mark Mitchell  <mark@codesourcery.com>
70252284Sobrien
70352284Sobrien	* cp-tree.h (finish_class_definition): Add parameter.
70452284Sobrien	* parse.y (structsp): Use it.  Don't call pop_scope here.
70552284Sobrien	* parse.c: Regenerated.
70652284Sobrien	* semantics.c (finish_class_definition): Pop it here.
70752284Sobrien
70852284Sobrien1999-04-17  Mark Mitchell  <mark@codesourcery.com>
70952284Sobrien
71052284Sobrien	* decl.c (xref_tag): Revise handling of nested template
71152284Sobrien	declarations.
71252284Sobrien	* pt.c (check_explicit_specialization): Tweak handling of friend
71352284Sobrien	templates in template classes.
71452284Sobrien	(tsubst_friend_class): Handle friend declarations for nested
71552284Sobrien	member template classes.
71652284Sobrien	
71752284Sobrien1999-04-16  Mark Mitchell  <mark@codesourcery.com>
71852284Sobrien
71952284Sobrien	* class.c (finish_struct): Remove unused variable.
72052284Sobrien	(pushclass): Likewise.
72152284Sobrien	(invalidate_class_lookup_cache): Likewise.
72252284Sobrien	* cp-tree.def (TYPENAME_TYPE): Improve documentation.
72352284Sobrien	* decl.c (build_typename_type): Make sure TYPENAME_TYPE_FULLNAME
72452284Sobrien	doesn't get obliterated.
72552284Sobrien	(make_typename_type): Handle template classes correctly.
72652284Sobrien
72752284Sobrien	* cp-tree.h (TREE_NONLOCAL_FLAG): Remove.
72852284Sobrien	(storetags): Declare.
72952284Sobrien	* class.c (finish_struct): Don't use TREE_NONLOCAL_FLAG.
73052284Sobrien	(pushclass): Likewise.  Use storetags to install tag declarations,
73152284Sobrien	not pushtag.
73252284Sobrien	(invalidate_class_lookup_cache): Don't use TREE_NONLOCAL_FLAG.
73352284Sobrien	* decl.c (storetags): Make it global.
73452284Sobrien	(push_class_binding): Set INHERITED_VALUE_BINDING_P for an
73552284Sobrien	implicit typename declaration.
73652284Sobrien	(pushtag): Tidy.  Don't use TREE_NONLOCAL_FLAG.
73752284Sobrien	* method.c (hack_identifier): Likewise.
73852284Sobrien	* search.c (lookup_member): Likewise.
73952284Sobrien	
74052284Sobrien	* decl.c (warn_about_implicit_typename_lookup): New function.
74152284Sobrien	(lookup_name_real): Use it.  Rework handling of implicit typename
74252284Sobrien	extension.
74352284Sobrien
74452284Sobrien1999-04-15  Mark Mitchell  <mark@codesourcery.com>
74552284Sobrien
74652284Sobrien	* cp-tree.h (lookup_nested_field): Remove.
74752284Sobrien	* class.c (push_nested_class): Handle UNION_TYPEs.
74852284Sobrien	(pop_nested_class): Likewise.
74952284Sobrien	* decl.c (lookup_name_real): Don't call lookup_nested_field.
75052284Sobrien	(start_decl): Use push_nested_class, not just pushclass.
75152284Sobrien	(cp_finish_decl): Use pop_nested_class, not just popclass.
75252284Sobrien	* search.c (lookup_nested_field): Remove.
75352284Sobrien	
75452284Sobrien	* cp-tree.h (lang_type): Add documentation.
75552284Sobrien	* decl2.c (handle_class_head): Create template declarations here,
75652284Sobrien	as appropriate.
75752284Sobrien	* parse.y (class_head): Return whether or not we entered a new
75852284Sobrien	scope, as well as the type named.
75952284Sobrien	(named_class_head): Likewise.
76052284Sobrien	(named_complex_class_head_sans_basetype): Likewise.
76152284Sobrien	(structsp): Adjust accordingly.  Pop scope when required.
76252284Sobrien	* parse.c: Regenerated.
76352284Sobrien	* pt.c (check_default_tmpl_args): Robustify.
76452284Sobrien	(redeclare_class_template): Likewise.
76552284Sobrien	(instantiate_class_template): An instantiation of an
76652284Sobrien	anonymous union is itself an anonymous union.
76752284Sobrien	* semantics.c (begin_class_definition): Don't create template
76852284Sobrien	declarations here.
76952284Sobrien	
77052284Sobrien1999-04-15  Jason Merrill  <jason@yorick.cygnus.com>
77152284Sobrien
77252284Sobrien	* parse.y (after_type_declarator_intern): New nonterminal.
77352284Sobrien	(after_type_declarator): Use it.
77452284Sobrien	(direct_after_type_declarator): Likewise.  Move above 
77552284Sobrien	nonnested_type to fix reduce/reduce conflict resolution.
77652284Sobrien	(declmods): Reducing from just 'attributes' has EMPTY precedence.
77752284Sobrien	* Makefile.in (CONFLICTS): Update.
77852284Sobrien
77952284Sobrien	* decl.c (define_label): Downgrade error for jumping over a
78052284Sobrien	non-POD decl to pedwarn.
78152284Sobrien
78252284Sobrien1999-04-14  Mark Mitchell  <mark@codesourcery.com>
78352284Sobrien
78452284Sobrien	* cp-tree.h (popclass): Change declaration.
78552284Sobrien	(pop_nested_class): Likewise.
78652284Sobrien	(poplevel_class): Remove declaration.
78752284Sobrien	* call.c (convert_default_argument): Pass no arguments to
78852284Sobrien	popclass.
78952284Sobrien	* class.c (finish_struct_1): Likewise.
79052284Sobrien	(finish_struct): Likewise.
79152284Sobrien	(popclass): Remove argument.  Simplify code accordingly.
79252284Sobrien	(pop_nested_class): Likewise.
79352284Sobrien	* decl.c (poplevel_class): Declare it here, and make it static.
79452284Sobrien	(poplevel): Handle class scopes.
79552284Sobrien	(poplevel_class): Don't take an rgument.  Simplify.
79652284Sobrien	(pop_everything): Pass no arguments to pop_nested_class.
79752284Sobrien	(cp_finish_decl): Pass no arguments to popclass.
79852284Sobrien	(grokdeclarator): Pass no arguments to pop_nested_class.
79952284Sobrien	(finish_function): Likewise.
80052284Sobrien	* decl2.c (grokfield): Likewise.
80152284Sobrien	(pop_scope): Pass no arguments to popclass.
80252284Sobrien	* lex.c (do_pending_defargs): Pass no arguments to pop_nested_class.
80352284Sobrien	* pt.c (instantiate_class_template): Move call to pushclass, and
80452284Sobrien	document.  Pass no arguments to popclass.
80552284Sobrien	(regenerate_decl_from_template): Likewise.
80652284Sobrien	
80752284Sobrien1999-04-14  Jason Merrill  <jason@yorick.cygnus.com>
80852284Sobrien
80952284Sobrien	* typeck.c (build_unary_op): Handle taking the address of a unique
81052284Sobrien	bound non-static member function.
81152284Sobrien
81252284Sobrien1999-04-13  Martin von Loewis  <loewis@informatik.hu-berlin.de>
81352284Sobrien
81452284Sobrien	* lang-options.h (-Wdeprecated): New flag.
81552284Sobrien	* decl2.c (warn_deprecated): New flag.
81652284Sobrien	(lang_decode_option): Deprecated this-is-variable,
81752284Sobrien	external-templates, alt-external-templates.
81852284Sobrien	Support -Wdeprecated.
81952284Sobrien	* errfn.c (cp_deprecated): New function.
82052284Sobrien
82152284Sobrien1999-04-13  Jason Merrill  <jason@yorick.cygnus.com>
82252284Sobrien
82352284Sobrien	* decl2.c (setup_initp): Compare DECL_ASSEMBLER_NAME instead
82452284Sobrien	of the decls themselves.
82552284Sobrien
82652284Sobrien	* pt.c (tsubst_function_type): Copy attributes over.
82752284Sobrien
82852284Sobrien	* tree.c (cp_valid_lang_attribute): New fn.  Handle init_priority
82952284Sobrien	and com_interface.
83052284Sobrien	* cp-tree.h: Add prototype.
83152284Sobrien	* decl.c (init_decl_processing): Set valid_lang_attribute.
83252284Sobrien
83352284Sobrien1999-04-13  Mark Mitchell  <mark@codesourcery.com>
83452284Sobrien
83552284Sobrien	* class.c (finish_struct_1): Look at the const-ness of the field's
83652284Sobrien	type, not the TREE_READONLY-ness of the declaration.
83752284Sobrien	* method.c (synthesize_method): Likewise.
83852284Sobrien	* pt.c (tsubst_decl): Call c_apply_type_quals_to_decl when
83952284Sobrien	creating new declarations.
84052284Sobrien
84152284Sobrien1999-04-13  Mike Stump  <mrs@wrs.com>
84252284Sobrien
84352284Sobrien	* decl2.c (import_export_decl): Because vtables always reference
84452284Sobrien	virtual functions, even if they are inlined, don't allow
84552284Sobrien	-fno-implement-inlines to not emit them, instead, emit them with
84652284Sobrien	the vtable.
84752284Sobrien	* decl.c (start_function): Likewise.
84852284Sobrien
84952284Sobrien1999-04-12  Jason Merrill  <jason@yorick.cygnus.com>
85052284Sobrien
85152284Sobrien	* cp-tree.h (struct lang_type): Add com_interface.
85252284Sobrien	(CLASSTYPE_COM_INTERFACE): New macro.
85352284Sobrien	* class.c (set_rtti_entry): COM interface classes have no RTTI
85452284Sobrien	entries in their vtables; adjust.
85552284Sobrien	(add_virtual_function, finish_base_struct, skip_rtti_stuff,
85652284Sobrien	modify_one_vtable, fixup_vtable_deltas1, override_one_vtable,
85752284Sobrien	finish_struct_1): Likewise.
85852284Sobrien	* decl2.c (mark_vtable_entries): Likewise.
85952284Sobrien	* rtti.c (build_headof, get_tinfo_fn_dynamic): Likewise.
86052284Sobrien	* search.c (get_abstract_virtuals_1, get_abstract_virtuals,
86152284Sobrien	expand_upcast_fixups): Likewise.
86252284Sobrien	* tree.c (debug_binfo): Likewise.
86352284Sobrien
86452284Sobrien	* cp-tree.h (COMPARE_NO_ATTRIBUTES): New macro.
86552284Sobrien	* typeck.c (comptypes): If we get it, ignore attributes.
86652284Sobrien	* class.c (instantiate_type): Use BASELINK_P.  Change complain
86752284Sobrien	parameter to flags; 2 means ignore attributes.
86852284Sobrien	* call.c (build_op_delete_call): Pass it.
86952284Sobrien
87052284Sobrien	* decl.c (xref_tag): Only complain once about using a typedef-name
87152284Sobrien	with 'struct'.  Downgrade to pedwarn.
87252284Sobrien
87352284Sobrien	* decl.c (grokdeclarator): Allow [] syntax for zero-length array.
87452284Sobrien
87552284Sobrien	* parse.y (absdcl_intern): New nonterminal.
87652284Sobrien	(absdcl, direct_abstract_declarator): Use it.
87752284Sobrien
87852284Sobrien	* pt.c (lookup_template_class): Look through implict typename.
87952284Sobrien
88052284Sobrien1999-04-11  Mark Mitchell  <mark@codesourcery.com>
88152284Sobrien
88252284Sobrien	* friend.c (add_friend): Deal gracefully with error_mark_node.
88352284Sobrien	* method.c (build_overload_value): Handle pointers-to-members as
88452284Sobrien	template parameters.
88552284Sobrien
88652284Sobrien	* decl.c (push_binding): Fix typo in comment.
88752284Sobrien
88852284Sobrien1999-04-10  Mark Mitchell  <mark@codesourcery.com>
88952284Sobrien
89052284Sobrien	* error.c (dump_type_real): If a typename is a template-id, put
89152284Sobrien	out the template arguments.
89252284Sobrien	(dump_expr): Handle TEMPLATE_ID_EXPR.
89352284Sobrien	* pt.c (lookup_template_class): Now that full arguments are
89452284Sobrien	available everywhere, remove code that tried to guess them.
89552284Sobrien
89652284Sobrien1999-04-09  Mark Mitchell  <mark@codesourcery.com>
89752284Sobrien
89852284Sobrien	* decl.c (make_typename_type): Complain if we don't find a type
89952284Sobrien	when trying to make a typename type for a non-template type.
90052284Sobrien
90152284Sobrien1999-04-09  Jason Merrill  <jason@yorick.cygnus.com>
90252284Sobrien
90352284Sobrien	* decl.c (start_decl): Pass attributes to grokdeclarator.
90452284Sobrien	(grokdeclarator): Handle attributes on constructor-syntax
90552284Sobrien	initializers.
90652284Sobrien
90752284Sobrien1999-04-08  Mark Mitchell  <mark@codesourcery.com>
90852284Sobrien
90952284Sobrien	* error.c (dump_expr): Don't crash on INDIRECT_REFs whose operands
91052284Sobrien	don't have types.
91152284Sobrien
91252284Sobrien	* search.c (template_self_reference_p): Tweak.
91352284Sobrien
91452284Sobrien1999-04-07  Mark Mitchell  <mark@codesourcery.com>
91552284Sobrien
91652284Sobrien	* init.c (build_offset_ref): Don't build yet another weird data
91752284Sobrien	structure to describe overloaded functions.
91852284Sobrien
91952284Sobrien1999-04-06  Mark Mitchell  <mark@codesourcery.com>
92052284Sobrien
92152284Sobrien	* cp-tree.h (BASELINK_P): New macro.
92252284Sobrien	(SET_BASELINK_P): Likewise.
92352284Sobrien	* init.c (build_member_call): Remove needless assignment in if
92452284Sobrien	statement.
92552284Sobrien	* search.c (lookup_field_r): Fix handling when we are looking
92652284Sobrien	specifically for a type; these are not hidden by functions and
92752284Sobrien	variables.
92852284Sobrien	(lookup_member): Use SET_BASELINK_P.
92952284Sobrien	* tree.c (is_overloaded_fn): Use BASELINK_P.
93052284Sobrien	(really_overloaed_fn): Likewise.
93152284Sobrien	(get_first_fn): Likewise.
93252284Sobrien
93352284Sobrien1999-04-05  Mark Mitchell  <mark@codesourcery.com>
93452284Sobrien
93552284Sobrien	* decl.c (lookup_name_current_level): Tweak, and improve
93652284Sobrien	documentation.
93752284Sobrien
93852284Sobrien	* class.c (maybe_fixup_vptrs): Remove declaration.
93952284Sobrien	(build_class_init_list): Likewise.
94052284Sobrien	* decl.c (pushdecl_class_level): Call check_template_shadow here
94152284Sobrien	...
94252284Sobrien	(push_class_level_binding): ... not here.
94352284Sobrien	* search.c (dfs_push_type_decls): Only avoid
94452284Sobrien	template-self-reference TYPE_DECLs if they are from base classes.
94552284Sobrien
94652284Sobrien1999-04-04  Mark Mitchell  <mark@codesourcery.com>
94752284Sobrien
94852284Sobrien	* pt.c (check_template_shadow): Don't treat OVERLOADs as _DECL
94952284Sobrien	nodes.  Tidy.
95052284Sobrien
95152284Sobrien1999-04-03  Jason Merrill  <jason@yorick.cygnus.com>
95252284Sobrien
95352284Sobrien	* class.c (maybe_fixup_vptrs, build_class_init_list): Lose.
95452284Sobrien	(finish_struct_1): Don't call build_class_init_list.
95552284Sobrien
95652284Sobrien1999-04-02  Mark Mitchell  <mark@codesourcery.com>
95752284Sobrien
95852284Sobrien	* tinfo.h (__class_type_info): Fix illegal declaration.
95952284Sobrien
96052284Sobrien	* cp-tree.def (TEMPLATE_ID_EXPR): Update comment.
96152284Sobrien	* cp-tree.h (INHERITED_VALUE_BINDING_P): New macro.
96252284Sobrien	(IDENTIFIER_CLASS_VALUE): Improve documentation.
96352284Sobrien	(is_properly_derived_from): Declare.
96452284Sobrien	(invalidate_class_lookup_cache): Likewise.
96552284Sobrien	(maybe_maybe_note_name_used_in_class): Likewise.
96652284Sobrien	(note_name_declared_in_class): Likewise.
96752284Sobrien	(push_using_decl): Remove duplicate declaration.
96852284Sobrien	(id_in_current_class): Remove declaration.
96952284Sobrien	(push_class_binding): Change prototype.
97052284Sobrien	(clear_identitifer_class_values): Declare.
97152284Sobrien	* call.c (is_properly_derived_from): Make it global.
97252284Sobrien	(build_new_function_call): Be careful about updating candidates.
97352284Sobrien	(build_new_method_call): Handle COMPONENT_REFs.  Don't crash when
97452284Sobrien	asked to make illegal calls.
97552284Sobrien	* class.c: Include splay-tree.h.
97652284Sobrien	(class_stack_node): Add names_used slot.
97752284Sobrien	(check_member_decl_is_same_in_complete_scope): Remove.
97852284Sobrien	(add_method): Fix comment.  Push the declaration into class
97952284Sobrien	scope.
98052284Sobrien	(finish_struct_1): When popping the class, pop the bindings too.
98152284Sobrien	Remove check for data member/function member conflict.
98252284Sobrien	(finish_struct): Remove calls to
98352284Sobrien	check_member_decl_is_same_in_complete_scope.  Change calls to
98452284Sobrien	popclass.
98552284Sobrien	(pushclass): Clear names_used in the class stack entry.
98652284Sobrien	Use invalidate_class_lookup_cache to remove cached entries, rather
98752284Sobrien	than magic values with popclass.  Clear IDENTIFIER_CLASS_VALUE
98852284Sobrien	before entering a new class.  Remove dead code.  Don't mess with
98952284Sobrien	current_function_decl when pushing declarations.
99052284Sobrien	(invalidate_class_lookup_cache): New function, split out from ...
99152284Sobrien	(popclass): Here.  Clean up names_used on our way out.
99252284Sobrien	(instantiate_type): Adjust.
99352284Sobrien	(build_self_reference): Don't push the declaration here.
99452284Sobrien	(maybe_note_name_used_in_class): New function.
99552284Sobrien	(note_name_declared_in_class): Likewise.
99652284Sobrien	* decl.c (add_binding): Change prototype.
99752284Sobrien	(find_class_binding_level): New function.
99852284Sobrien	(innermost_nonclass_level): Likewise.
99952284Sobrien	(current_binding_level): Update documentation.
100052284Sobrien	(inner_binding_level): Remove.  Replace with current_binding_level
100152284Sobrien	throughout.
100252284Sobrien	(push_binding_level): Remove special handling of
100352284Sobrien	class_binding_level.
100452284Sobrien	(pop_binding_level): Likewise.  Use find_class_binding_level.
100552284Sobrien	(suspend_binding_level): Likewise.
100652284Sobrien	(global_bindings_p): Use innermost_nonclass_level.
100752284Sobrien	(toplevel_bindings_p): Likewise.
100852284Sobrien	(namespace_bindings_p): Likewise.
100952284Sobrien	(pseudo_global_level_p): Likewise.
101052284Sobrien	(push_binding): Clear INHERITED_VALUE_BINDING_P.
101152284Sobrien	(add_binding): Check for illegal multiple declarations.  Return a
101252284Sobrien	value indicating whether or not the new binding was legal.
101352284Sobrien	(push_local_binding): Skip over class binding levels.  Check
101452284Sobrien	return value from add_binding.
101552284Sobrien	(push_class_binding): Set INHERITED_VALUE_BINDING_P.  Call
101652284Sobrien	note_name_declared_in_class.
101752284Sobrien	(pushlevel_class): Remove "fake out the rest of the compiler"
101852284Sobrien	code.
101952284Sobrien	(poplevel_class): Reset IDENTIFIER_CLASS_VALUEs.
102052284Sobrien	(clear_identifier_class_values): New function.
102152284Sobrien	(pop_from_top_level): Use it.
102252284Sobrien	(pop_everything): Tweak.
102352284Sobrien	(maybe_process_template_type_declaration): Don't push the
102452284Sobrien	declaration for the template here.
102552284Sobrien	(pushtag): Don't push tag declarations into class scope here.
102652284Sobrien	(pushdecl): Apply DeMorgan's law for readability.
102752284Sobrien	(pushdecl_class_level): Remove special-case code for
102852284Sobrien	TYPE_BEING_DEFINED.  Handle OVERLOADs and anonymous unions.
102952284Sobrien	(push_class_level_bindng): Deal with inherited bindings.
103052284Sobrien	(lookup_name_real): Remove special-case code for
103152284Sobrien	TYPE_BEING_DEFINED, and some implicit typename magic.
103252284Sobrien	(grokdeclarator): Handle COMPONENT_REF for a template function.
103352284Sobrien	(build_enumerator): Don't call pushdecl_class_level here.
103452284Sobrien	(id_in_current_class): Remove.
103552284Sobrien	* decl2.c (grokfield): Don't call pushdecl_class_level or
103652284Sobrien	check_template_shadow.
103752284Sobrien	* errfn.c (cp_file_of): Don't declare.
103852284Sobrien	(cp_line_of): Likewise.
103952284Sobrien	* error.c (dump_decl): Handle an OVERLOAD.
104052284Sobrien	(cp_file_of): Likewise.
104152284Sobrien	(cp_line_of): Likewise.
104252284Sobrien	* init.c (build_member_call): Handle a COMPONENT_REF.
104352284Sobrien	* lex.c (do_identifier): Call maybe_note_name_used_in_class, not
104452284Sobrien	pushdecl_class_level.
104552284Sobrien	* method.c (hack_identifier): Build COMPONENT_REFs for references
104652284Sobrien	to member templates as well as member functions.  Remove dead
104752284Sobrien	code.
104852284Sobrien	* parse.y (left_curly): Remove.
104952284Sobrien	(nonnested_type): Call maybe_note_name_used_in_class, not
105052284Sobrien	pushdecl_class_level.
105152284Sobrien	* parse.c: Regenerated.
105252284Sobrien	(nested_name_specifier_1): Likewise.
105352284Sobrien	* pt.c (check_explicit_specialization): Adjust, for robustness.
105452284Sobrien	(check_template_shadow): Handle OVERLOADs.
105552284Sobrien	(build_template_decl): Set DECL_CONSTRUCTOR_P on the
105652284Sobrien	TEMPLATE_DECL, if appropriate.
105752284Sobrien	* search.c (envelope_add_decl): Remove.
105852284Sobrien	(dfs_pushdecls): Likewise.
105952284Sobrien	(dfs_compress_decls): Likewise.
106052284Sobrien	(dfs_push_decls): New function.
106152284Sobrien	(dfs_push_type_decls): Likewise.
106252284Sobrien	(setup_class_bindings): Likewise.
106352284Sobrien	(template_self_reference_p): Likewise.
106452284Sobrien	(lookup_field_r): Use it.
106552284Sobrien	(looup_member): Remove old comment.  Deal with ambiguity.
106652284Sobrien	(push_class_decls): Use dfs_push_decls and dfs_push_type_decls,
106752284Sobrien	and remove envelope processing.
106852284Sobrien	* semantics.c (begin_class_definition): Let pushclass push
106952284Sobrien	declarations for base classes.
107052284Sobrien	(finish_member_declaration): Push declarations into class scope.
107152284Sobrien	* typeck.c (build_component_ref): Just put an OVERLOAD into the
107252284Sobrien	COMPONENT_REF, not a TREE_LIST of an OVERLOAD.
107352284Sobrien	(build_x_function_call): Deal with OVERLOAD.  Handle template-ids.
107452284Sobrien	* Makefile.in (class.o): Depend on splay-tree.h.
107552284Sobrien
107652284SobrienWed Mar 31 11:30:43 1999  Nathan Sidwell  <nathan@acm.org>
107752284Sobrien
107852284Sobrien	* cvt.c (convert_pointer_to_real): Use same_type_p.
107952284Sobrien	* typeck.c (comp_target_types): Use same_type_p.
108052284Sobrien
108152284Sobrien1999-03-31  Jason Merrill  <jason@yorick.cygnus.com>
108252284Sobrien
108352284Sobrien	* semantics.c (begin_inline_definitions,
108452284Sobrien	finish_inline_definitions): Rename from finish_default_args and
108552284Sobrien	begin_inline_definitions, respectively, to something that isn't a
108652284Sobrien	total lie.  :)
108752284Sobrien	* parse.y (structsp): Adjust.
108852284Sobrien
108952284Sobrien	* tree.c (hash_tree_cons): Remove obsolete via_* parms.
109052284Sobrien	(list_hash_lookup): Likewise.
109152284Sobrien	(hash_tree_chain): Adjust.
109252284Sobrien	* pt.c (tsubst): Adjust.
109352284Sobrien	(tsubst_arg_types): Use plain hash_tree_cons.
109452284Sobrien	* cp-tree.h (hash_tree_cons_simple): Lose.
109552284Sobrien	* parse.y (declmods, nonempty_cv_qualifiers): Use hash_tree_cons.
109652284Sobrien
109752284SobrienWed Mar 31 10:48:29 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
109852284Sobrien
109952284Sobrien	* Makefile.in (hash.h): Generate using gperf language 'C', not
110052284Sobrien	'KR-C', so gperf uses the `const' keyword on strings.
110152284Sobrien
110252284Sobrien	* gxx.gperf (resword): Const-ify a char*.
110352284Sobrien
110452284Sobrien1999-03-30  Jason Merrill  <jason@yorick.cygnus.com>
110552284Sobrien
110652284Sobrien	* cp-tree.h (IDENTIFIER_AS_DESC, IDENTIFIER_AS_LIST,
110752284Sobrien	CLASSTYPE_BASELINK_VEC, CLASSTYPE_N_SUPERCLASSES,
110852284Sobrien	CLASSTYPE_N_BASECLASSES, CLASSTYPE_MAX_DEPTH,
110952284Sobrien	CLASSTYPE_BASE_INIT_LIST, CLASSTYPE_AS_LIST, CLASSTYPE_ID_AS_LIST,
111052284Sobrien	CLASSTYPE_BINFO_AS_LIST): Remove cruft.
111152284Sobrien	* class.c, lex.c, parse.y, ptree.c, search.c, semantics.c,
111252284Sobrien	tree.c: Adjust.
111352284Sobrien
111452284Sobrien1999-03-29  Jason Merrill  <jason@yorick.cygnus.com>
111552284Sobrien
111652284Sobrien	* decl2.c (lang_decode_option): Remove -Wsign-promo from -Wall.
111752284Sobrien
111852284Sobrien1999-03-28  Jason Merrill  <jason@yorick.cygnus.com>
111952284Sobrien
112052284Sobrien	* pt.c (fn_type_unification): Ignore 'this' parm from conversion ops.
112152284Sobrien
112252284Sobrien1999-03-27  Mark Mitchell  <mark@codesourcery.com>
112352284Sobrien
112452284Sobrien	* cp-tree.h (add_friend): Declare.
112552284Sobrien	(add_friends): Likewise.
112652284Sobrien	* friend.c (add_friend): Make it global.  Don't add to
112752284Sobrien	DECL_BEFRIENDING_CLASSES if the befriending class is a template.
112852284Sobrien	(add_friends): Make it global.
112952284Sobrien	(make_friend_class): Don't add to DECL_BEFRIENDING_CLASSES if the
113052284Sobrien	befriending class is a template.
113152284Sobrien	* parse.y (component_decl_1): Fix typo in comment.
113252284Sobrien	* parse.c: Regenerated.
113352284Sobrien	* pt.c (instantiate_class_template): Use add_friend and
113452284Sobrien	add_friends rather that duplicating some of their functionality
113552284Sobrien	here.
113652284Sobrien
113752284Sobrien1999-03-27  Jason Merrill  <jason@yorick.cygnus.com>
113852284Sobrien
113952284Sobrien	* call.c (build_field_call): Unify 'this' and non-'this' cases.
114052284Sobrien
114152284Sobrien	* typeck.c (build_indirect_ref): Check for 'this' sooner.
114252284Sobrien
114352284SobrienFri Mar 26 10:20:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
114452284Sobrien
114552284Sobrien	* call.c (op_error): Const-ify a char*.
114652284Sobrien	(add_candidate, source_type, add_warning): Add static prototype.
114752284Sobrien	(print_z_candidates): Const-ify a char*.
114852284Sobrien
114952284Sobrien	* class.c (resolve_address_of_overloaded_function,
115052284Sobrien	fixed_type_or_null, build_vtable_entry_ref): Add static prototype.
115152284Sobrien	(get_vtable_name, finish_struct_1): Const-ify a char*.
115252284Sobrien
115352284Sobrien	* cvt.c (convert_to_reference): Likewise.
115452284Sobrien
115552284Sobrien	* decl.c (redeclaration_error_message, record_builtin_type,
115652284Sobrien	record_unknown_type, member_function_or_else, bad_specifiers):
115752284Sobrien	Likewise.
115852284Sobrien	(find_binding, select_decl, unqualified_namespace_lookup,
115952284Sobrien	lookup_flags, qualify_lookup, record_builtin_java_type, tag_name):
116052284Sobrien	Add static prototype.
116152284Sobrien	(warn_extern_redeclared_static, duplicate_decls, pushdecl,
116252284Sobrien	implicitly_declare, record_builtin_java_type, define_function,
116352284Sobrien	grok_op_properties, tag_name): Const-ify a char*.
116452284Sobrien
116552284Sobrien	* cp-tree.h (FORMAT_VBASE_NAME): Allow parameter `BUF' to be const.
116652284Sobrien	(define_function, finish_builtin_type): Const-ify a char*.
116752284Sobrien	(cp_error, cp_error_at, cp_warning, cp_warning_at, cp_pedwarn,
116852284Sobrien	cp_pedwarn_at, cp_compiler_error, cp_sprintf): Add prototype args.
116952284Sobrien	(file_name_nondirectory): Const-ify a char*.
117052284Sobrien	(init_filename_times): Don't prototype.
117152284Sobrien	(compiler_error): Prototype.
117252284Sobrien	(yyerror, init_repo): Const-ify a char*.
117352284Sobrien	(build_srcloc): Don't prototype.
117452284Sobrien	(build_x_indirect_ref, build_indirect_ref, build_component_addr):
117552284Sobrien	Const-ify a char*.
117652284Sobrien	(warn_for_assignment): Don't prototype.
117752284Sobrien	(convert_for_initialization, readonly_error, check_for_new_type,
117852284Sobrien	GNU_xref_begin, GNU_xref_file, GNU_xref_ref, GNU_xref_call):
117952284Sobrien	Const-ify a char*.
118052284Sobrien
118152284Sobrien	* decl2.c (acceptable_java_type, output_vtable_inherit,
118252284Sobrien	setup_initp, start_objects, finish_objects, do_dtors, do_ctors,
118352284Sobrien	merge_functions, decl_namespace, validate_nonmember_using_decl,
118452284Sobrien	do_nonmember_using_decl): Add static prototype.
118552284Sobrien	(lang_f_options): Const-ify a char*.
118652284Sobrien	(finish_builtin_type): Likewise.
118752284Sobrien	(add_function, arg_assoc_namespace, arg_assoc_class): Add static
118852284Sobrien	prototype.
118952284Sobrien
119052284Sobrien	* errfn.c: Include cp-tree.h.
119152284Sobrien	(cp_thing): Add static prototype.
119252284Sobrien	(compiler_error): Don't protoptype.
119352284Sobrien	(cp_compiler_error): Cast `compiler_error' to `errorfn' before
119452284Sobrien	passing it to `cp_thing'.
119552284Sobrien
119652284Sobrien	* error.c (interesting_scope_p): Add static prototype.
119752284Sobrien
119852284Sobrien	* except.c (build_eh_type_type, build_eh_type_type_ref): Const-ify
119952284Sobrien	a char*.
120052284Sobrien
120152284Sobrien	* init.c (compiler_error): Don't prototype.
120252284Sobrien	(member_init_ok_or_else): Const-ify a char*.
120352284Sobrien	(build_java_class_ref): Add static prototype.
120452284Sobrien
120552284Sobrien	* lex.c (compiler_error): Don't prototype.
120652284Sobrien	(get_time_identifier, interface_strcmp, extend_token_buffer,
120752284Sobrien	handle_cp_pragma): Const-ify a char*.
120852284Sobrien	(is_global, init_filename_times): Add static prototype.
120952284Sobrien	(file_name_nondirectory, cplus_tree_code_name): Const-ify a char*.
121052284Sobrien	(compiler_error): Change from fixed args to variable args.
121152284Sobrien	(yyerror): Const-ify a char*.
121252284Sobrien
121352284Sobrien	* parse.y (cond_stmt_keyword): Const-ify a char*.
121452284Sobrien	(parse_decl): Add static prototype.
121552284Sobrien
121652284Sobrien	* pt.c (template_args_equal, print_template_context): Likewise.
121752284Sobrien	(print_candidates, check_default_tmpl_args): Const-ify a char*.
121852284Sobrien	(instantiate_class_template): Likewise.
121952284Sobrien
122052284Sobrien	* repo.c (get_base_filename, open_repo_file, init_repo): Likewise.
122152284Sobrien
122252284Sobrien	* rtti.c (call_void_fn, expand_generic_desc, expand_si_desc,
122352284Sobrien	expand_class_desc, expand_ptr_desc, expand_attr_desc): Likewise.
122452284Sobrien
122552284Sobrien	* search.c (lookup_field_info, lookup_member): Likewise.
122652284Sobrien	(lookup_member): Cast the first argument of `bzero' to a PTR.
122752284Sobrien
122852284Sobrien	* sig.c (compiler_error): Don't prototype.
122952284Sobrien	(build_signature_pointer_or_reference_nam): Const-ify a char*.
123052284Sobrien	(get_sigtable_name, build_member_function_pointer): Likewise.
123152284Sobrien
123252284Sobrien	* tree.c (compiler_error): Don't prototype.
123352284Sobrien	(no_linkage_helper, build_srcloc): Add static prototype.
123452284Sobrien	(build_vbase_pointer_fields): Const-ify a char*.
123552284Sobrien	(__eprintf): Don't unnecessarily handle `const' when !__STDC__.
123652284Sobrien
123752284Sobrien	* typeck.c (compiler_error): Don't prototype.
123852284Sobrien	(convert_for_assignment): Const-ify a char*.
123952284Sobrien	(comp_cv_target_types): Add static prototype.
124052284Sobrien	(build_x_indirect_ref, build_indirect_ref, convert_arguments,
124152284Sobrien	build_component_addr, build_unary_op, convert_for_initialization):
124252284Sobrien	Const-ify a char*.
124352284Sobrien
124452284Sobrien	* typeck2.c (ack): Add static prototype and change from fixed args
124552284Sobrien	to variable args.
124652284Sobrien	(readonly_error, check_for_new_type): Const-ify a char*.
124752284Sobrien
124852284Sobrien	* xref.c (_XREF_FILE, find_file, filename, fctname, declname,
124952284Sobrien	fixname, open_xref_file, classname, GNU_xref_begin): Likewise.
125052284Sobrien	(GNU_xref_file): Likewise.  Also use `xmalloc' instead of `malloc'.
125152284Sobrien	(GNU_xref_end_scope, GNU_xref_ref, GNU_xref_decl, GNU_xref_call,
125252284Sobrien	gen_assign, GNU_xref_member): Const-ify a char*.
125352284Sobrien
125452284Sobrien1999-03-25  Martin von L�wis  <loewis@informatik.hu-berlin.de>
125552284Sobrien
125652284Sobrien	* gxxint.texi: Remove old discussion on copying virtual bases.
125752284Sobrien
125852284Sobrien1999-03-25  Zack Weinberg  <zack@rabi.columbia.edu>
125952284Sobrien
126052284Sobrien	* Make-lang.in: Remove all references to g++.o/g++.c.
126152284Sobrien	Link g++ from gcc.o.
126252284Sobrien
126352284Sobrien1999-03-25  Jason Merrill  <jason@yorick.cygnus.com>
126452284Sobrien
126552284Sobrien	* decl2.c (comdat_linkage): Treat vtables like functions.
126652284Sobrien
126752284Sobrien1999-03-25  Mark Mitchell  <mark@codesourcery.com>
126852284Sobrien
126952284Sobrien	* pt.c (tsubst_decl): tsubst into DECL_BEFRIENDING_CLASSES.
127052284Sobrien
127152284Sobrien1999-03-25  Nathan Sidwell  <nathan@acm.org>
127252284Sobrien
127352284Sobrien	* decl.c (init_decl_processing): Add `signed' type as a synonym
127452284Sobrien	for `int'.
127552284Sobrien
127652284Sobrien1999-03-25  Jason Merrill  <jason@yorick.cygnus.com>
127752284Sobrien
127852284Sobrien	* typeck.c (common_type): Handle cv-qual unification for pointers
127952284Sobrien	to members.
128052284Sobrien
128152284Sobrien	* decl.c (unqualified_namespace_lookup): Return error_mark_node
128252284Sobrien	on error.
128352284Sobrien	(lookup_name_real): Set LOOKUP_COMPLAIN when *not* parsing.
128452284Sobrien	* lex.c (do_identifier): If we got error_mark_node, call
128552284Sobrien	lookup_name again.
128652284Sobrien
128752284Sobrien1999-03-24  Martin von L�wis  <loewis@informatik.hu-berlin.de>
128852284Sobrien
128952284Sobrien	* class.c (finish_struct_1): Always reset TYPE_FIELDS for empty
129052284Sobrien	classes.
129152284Sobrien
129252284Sobrien1999-03-24  Jason Merrill  <jason@yorick.cygnus.com>
129352284Sobrien
129452284Sobrien	* decl.c (lookup_name_real): Do nested field lookup regardless of
129552284Sobrien	TYPE_BEING_DEFINED.
129652284Sobrien
129752284Sobrien1999-03-24  Mark Mitchell  <mark@codesourcery.com>
129852284Sobrien
129952284Sobrien	* cp-tree.h (lang_type): Remove has_assignment and
130052284Sobrien	has_real_assignment.  Add befriending_classes.
130152284Sobrien	(TYPE_HAS_ASSIGNMENT): Remove.
130252284Sobrien	(TYPE_HAS_REAL_ASSIGNMENT): Likewise.
130352284Sobrien	(CLASSTYPE_BEFRIENDING_CLASSES): New macro.
130452284Sobrien	(lang_decl): Document.
130552284Sobrien	(DECL_BEFRIENDING_CLASSES): New macro.
130652284Sobrien	(FRIEND_NAME): Move declaration to more obvious location.
130752284Sobrien	(FRIEND_DECLS): Likewise.
130852284Sobrien	* class.c (finish_struct_1): Don't use TYPE_HAS_REAL_ASSIGNMENT.
130952284Sobrien	* decl.c (duplicate_decls): Copy DECL_BEFRIENDING_CLASSES.
131052284Sobrien	(fixup_anonymous_union): Don't use TYPE_HAS_ASSIGNMENT.
131152284Sobrien	(grok_op_properties): Likewise.
131252284Sobrien	* friend.c (is_friend): Use FRIEND_NAME and FRIEND_DECLS.
131352284Sobrien	(add_friend): Likewise.  Don't do weird things with assignment
131452284Sobrien	operators.  Update DECL_BEFRIENDING_CLASSES.
131552284Sobrien	(add_friends): Don't do weird things with assignment operators.
131652284Sobrien	(make_friend_class): Likewise.  Update
131752284Sobrien	CLASSTYPE_BEFRIENDING_CLASSES.
131852284Sobrien	* pt.c (instantiate_class_template): Don't set
131952284Sobrien	TYPE_HAS_ASSIGNMENT.
132052284Sobrien	(tsubst_copy): Substitute the TREE_TYPE for more unary
132152284Sobrien	expressions.
132252284Sobrien	* ptree.c (print_lang_type): Don't look at TYPE_HAS_ASSIGNMENT.
132352284Sobrien	* search.c (protected_accessible_p): New function.
132452284Sobrien	(friend_accessible_p): Likewise.
132552284Sobrien	(accessible_p): Use them.
132652284Sobrien
132752284Sobrien1999-03-23  Mark Mitchell  <mark@codesourcery.com>
132852284Sobrien
132952284Sobrien	* pt.c (convert_nontype_argument): Don't create things that aren't
133052284Sobrien	PTRMEM_CSTs when applying a qualification conversion to a
133152284Sobrien	PTRMEM_CST.
133252284Sobrien
133352284Sobrien1999-03-23  Mark Mitchell  <mark@codesourcery.com>
133452284Sobrien
133552284Sobrien	* Makefile.in (OBJS): Don't mention hash.o.
133652284Sobrien	(OBJDEPS): Likewise.
133752284Sobrien
133852284Sobrien1999-03-23  Jason Merrill  <jason@yorick.cygnus.com>
133952284Sobrien
134052284Sobrien	* decl2.c (finish_file): Set at_eof to 2 after expanding ctors.
134152284Sobrien	* decl.c (expand_static_init): Make sure we don't add any after
134252284Sobrien	then.
134352284Sobrien
134452284Sobrien	* decl.c (cp_finish_decl): Move intelligence about handling
134552284Sobrien	DECL_COMDAT for variables from here...
134652284Sobrien	* decl2.c (comdat_linkage): ...to here.
134752284Sobrien	(maybe_make_one_only): Tweak.
134852284Sobrien	(import_export_decl): Call comdat_linkage for variables, too.
134952284Sobrien	(finish_file): Handle template statics properly.
135052284Sobrien
135152284Sobrien1999-03-22  Mark Mitchell  <mark@codesourcery.com>
135252284Sobrien
135352284Sobrien	* cp-tree.h (TYPE_PTRMEMFUNC_P): Use TYPE_PTRMEMFUNC_FLAG.
135452284Sobrien	Document internals of pointer-to-member-functions.
135552284Sobrien	(DELTA2_FROM_PTRMEMFUNC): Make it call delta2_from_ptrmemfunc.
135652284Sobrien	(PFN_FROM_PTRMEMFUNC): Likewise.
135752284Sobrien	(build_type_conversion): Remove unused parameter.
135852284Sobrien	(build_ptrmemfunc1): Declare.
135952284Sobrien	(expand_ptrmemfunc_cst): New function.
136052284Sobrien	(delta2_from_ptrmemfunc): Likewise.
136152284Sobrien	(pfn_from_ptrmemfunc): Likewise.
136252284Sobrien	* cvt.c (cp_convert_to_pointer): Remove unused parameter to
136352284Sobrien	build_type_conversion.  Use TYPE_PTRMEM_P for readability.
136452284Sobrien	(convert_to_reference): Remove unused parameter to
136552284Sobrien	build_type_conversion.
136652284Sobrien	(ocp_convert): Likewise.
136752284Sobrien	(build_user_type_conversion): Likewise.
136852284Sobrien	* error.c (dump_expr): Handle NULL pointer-to-member functions.
136952284Sobrien	* expr.c (cplus_expand_expr): Handle PTRMEM_CSTs for functions.
137052284Sobrien	* method.c (build_overload_value): Don't go splitting CONSTRUCTORs
137152284Sobrien	open when handling pointer-to-member functions.
137252284Sobrien	* pt.c (convert_nontype_argument): Clean up error messages.  Be
137352284Sobrien	more stringent with pointers-to-members.
137452284Sobrien	* typeck.c (build_ptrmemfunc1): Don't declare.  Make it global.
137552284Sobrien	(build_unary_op): Tidy ever-so-slightly.
137652284Sobrien	(build_conditional_expr): Remove extra parameter to
137752284Sobrien	build_type_conversion.
137852284Sobrien	(build_ptrmemfunc): Build PTRMEM_CSTs if we know what function
137952284Sobrien	we're using.
138052284Sobrien	(expand_ptrmemfunc_cst): Define.
138152284Sobrien	(delta2_from_ptrmemfunc): Likewise.
138252284Sobrien	(pfn_from_ptrmemfunc): Likewise.
138352284Sobrien
138452284Sobrien1999-03-19  Mark Mitchell  <mark@codesourcery.com>
138552284Sobrien
138652284Sobrien	* init.c (build_member_call): Handle template-id expressions
138752284Sobrien	correctly.
138852284Sobrien	* typeck.c (build_x_function_call): Likewise.
138952284Sobrien
139052284Sobrien1999-03-19  Chip Salzenberg  <chip@perlsupport.com>
139152284Sobrien
139252284Sobrien	* friend.c (make_friend_class): Avoid core dump when
139352284Sobrien	not-yet-defined friend type lacks TYPE_LANG_SPECIFIC().
139452284Sobrien
139552284Sobrien1999-03-18  Jason Merrill  <jason@yorick.cygnus.com>
139652284Sobrien
139752284Sobrien	* decl.c (start_function): Suppress normal linkage heuristics
139852284Sobrien	for #pragma interface under MULTIPLE_SYMBOL_SPACES.
139952284Sobrien
140052284Sobrien1999-03-19  Alexandre Oliva  <oliva@dcc.unicamp.br>
140152284Sobrien
140252284Sobrien	* Make-lang.in: ($(INTL_TARGETS)): Depend on cp/parse.c.
140352284Sobrien	($(srcdir)/cp/parse.c): Moved from ../Makefile.in.
140452284Sobrien
140552284Sobrien1999-03-17  Martin von L�wis  <loewis@informatik.hu-berlin.de>
140652284Sobrien
140752284Sobrien	* parse.y (named_complex_class_head_sans_basetype):
140852284Sobrien	Do not push a scope for error_mark_node.
140952284Sobrien	(maybe_base_class_list): Likewise.
141052284Sobrien
141152284Sobrien	* decl.c (start_decl): Check for error_mark_node as a type.
141252284Sobrien	Detected by g++.brendan/array-refs.C.
141352284Sobrien	(start_decl_1): Likewise.  Detected by g++.bugs/900322_01.C.
141452284Sobrien	(maybe_build_cleanup_1): Likewise.  Detected by
141552284Sobrien	g++.jason/incomplete1.C.
141652284Sobrien
141752284Sobrien	* tree.c (build_dummy_object): Use void_zero_node instead of the
141852284Sobrien	error_mark_node.
141952284Sobrien	(is_dummy_object): Check for such a node.
142052284Sobrien	Detected by g++.bob/inherit1.C
142152284Sobrien
142252284Sobrien1999-03-16  Jason Merrill  <jason@yorick.cygnus.com>
142352284Sobrien
142452284Sobrien	* method.c (old_backref_index): Split out...
142552284Sobrien	(flush_repeats): From here.  Rename back from try_old_backref.
142652284Sobrien	(build_mangled_name): Put back some old-style repeat handling.
142752284Sobrien
142852284SobrienMon Mar 15 21:57:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
142952284Sobrien
143052284Sobrien	* lex.c: Don't include setjmp.h.
143152284Sobrien	(parse_float): New static function.
143252284Sobrien	(pf_args): New struct.
143352284Sobrien	(real_yylex): Use them in call to `do_float_handler'.
143452284Sobrien
143552284Sobrien1999-03-15  Mark Mitchell  <mark@markmitchell.com>
143652284Sobrien
143752284Sobrien	* decl.c (xref_basetypes): Set CLASSTYPE_VBASECLASSES here.
143852284Sobrien	* tree.c (layout_basetypes): Not here.
143952284Sobrien	* search.c (dfs_search): Remove; no longer used.
144052284Sobrien
144152284Sobrien1999-03-12  Mark Mitchell  <mark@markmitchell.com>
144252284Sobrien
144352284Sobrien	* decl2.c (validate_nonmember_using_decl): Issue sensible
144452284Sobrien	error-messages on bogus qualifiers.
144552284Sobrien
144652284Sobrien1999-03-14  Jason Merrill  <jason@yorick.cygnus.com>
144752284Sobrien
144852284Sobrien	* call.c (add_function_candidate): Fix uninitialized variable.
144952284Sobrien
145052284Sobrien	* Makefile.in (search.o): Add dependency on varray.h.
145152284Sobrien
145252284Sobrien1999-03-13  Jason Merrill  <jason@yorick.cygnus.com>
145352284Sobrien
145452284Sobrien	* decl.c (duplicate_decls): Use same_type_p.
145552284Sobrien	* method.c (try_old_backref): Renamed from flush_repeats.  Use
145652284Sobrien	same_type_p.  Don't try to handle repeats.  Return success.
145752284Sobrien	(is_back_referenceable_type): Return 0 if TYPE_FOR_JAVA.  Support
145852284Sobrien	calls from old-style code, too.
145952284Sobrien	(check_ktype): Use same_type_p.
146052284Sobrien	(check_btype): Use same_type_p.  Don't pull out TYPE_MAIN_VARIANT.
146152284Sobrien	(build_qualified_name): Simplify logic.
146252284Sobrien	(process_overload_item): Strip typedefs and quals at the top.
146352284Sobrien	(build_mangled_name_for_type_with_Gcode): Remove call to
146452284Sobrien	type_canonical_variant.
146552284Sobrien	(build_mangled_name): Likewise.  Remove support for old-style
146652284Sobrien	repeats, which have been disabled since 2.7.2.  Don't mess with
146752284Sobrien	TREE_USED.
146852284Sobrien	(build_decl_overload_real): Don't mess with TREE_USED.
146952284Sobrien
147052284Sobrien1999-03-13  Nathan Sidwell  <nathan@acm.org>
147152284Sobrien
147252284Sobrien	* error.c (cp_printers): Add 'F' escape character.
147352284Sobrien	(dump_type_real): Remove TREE_LIST (fnargs) printing.
147452284Sobrien	Functionality moved to dump_parameters.
147552284Sobrien	(dump_type_suffix): Use dump_parameters and dump_exception_spec.
147652284Sobrien	(dump_function_decl): Extend meaning of V parameter.  Use
147752284Sobrien	dump_parameters and dump_exception_spec.
147852284Sobrien	(dump_parameters): New static function.
147952284Sobrien	(dump_exception_spec): New static function.
148052284Sobrien	(fndecl_as_string): Change argument semantics.  Use
148152284Sobrien	dump_function_decl directly.
148252284Sobrien
148352284Sobrien	* sig.c (build_signature_table_constructor): Use cp_error.
148452284Sobrien
148552284Sobrien1999-03-13  Martin von L�wis  <loewis@informatik.hu-berlin.de>
148652284Sobrien
148752284Sobrien	* semantics.c (finish_switch_cond): Handle error cases gracefully.
148852284Sobrien	Detected by g++.law/enum5.C.
148952284Sobrien
149052284Sobrien	* typeck.c (build_modify_expr): Check for errors after resolving
149152284Sobrien	offsets.  Detected by g++.brendan/static1.C.
149252284Sobrien
149352284Sobrien	* decl.c (complete_array_type): Ignore initial_value if it is an
149452284Sobrien	error.  Detected by g++.benjamin/17930.C.
149552284Sobrien
149652284Sobrien	* typeck2.c (process_init_constructor): Return error if one argument
149752284Sobrien	is in error.  Detected by g++.benjamin/13478.C.
149852284Sobrien
149952284Sobrien1999-03-12  Martin von L�wis  <loewis@informatik.hu-berlin.de>
150052284Sobrien
150152284Sobrien	* decl.c (select_decl): Allow class templates when we need types.
150252284Sobrien	* decl2.c (ambiguous_decl): Likewise.
150352284Sobrien
150452284Sobrien1999-03-12  Mark Mitchell  <mark@markmitchell.com>
150552284Sobrien
150652284Sobrien	* lex.c (do_identifier): Correct call to enforce_access.
150752284Sobrien	* search.c (accessible_p): Tweak comment.
150852284Sobrien
150952284Sobrien1999-03-10  Mark Mitchell  <mark@markmitchell.com>
151052284Sobrien
151152284Sobrien	* semantics.c (begin_class_definition): Call build_self_reference.
151252284Sobrien	(finish_member_declaration): Set DECL_CONTEXT for TYPE_DECLs.
151352284Sobrien
151452284Sobrien	* search.c (assert_canonical_unmarked): Fix typo in prototype.
151552284Sobrien
151652284Sobrien	* search.c (dfs_canonical_queue): New function.
151752284Sobrien	(dfs_assert_unmarked_p): Likewise.
151852284Sobrien	(assert_canonical_unmarked): Likewise.
151952284Sobrien	(access_in_type): Use it.
152052284Sobrien	(accessible_p): Likewise.  Walk the whole tree when umarking.
152152284Sobrien
152252284Sobrien	* sig.c (build_signature_table_constructor): Use accessible_p
152352284Sobrien	instead of compute_access.
152452284Sobrien
152552284Sobrien1999-03-09  Jason Merrill  <jason@yorick.cygnus.com>
152652284Sobrien
152752284Sobrien	* call.c (add_builtin_candidates): Handle overloaded conversion ops.
152852284Sobrien
152952284Sobrien1999-03-09  Mark Mitchell  <mark@markmitchell.com>
153052284Sobrien
153152284Sobrien	* cp-tree.h (flag_access_control): Declare.
153252284Sobrien	(TREE_VIA_PPUBLIC): Document.
153352284Sobrien	(DECL_NONSTATIC_MEMBER_P): New macro.
153452284Sobrien	(enforce_access): Return an indication of whether or not access
153552284Sobrien	was permitted.
153652284Sobrien	(build_self_reference): Change prototype.
153752284Sobrien	(compute_access): Replace with ...
153852284Sobrien	(accessible_p): New function.
153952284Sobrien	(dfs_walk): Change prototype.
154052284Sobrien	(dfs_unmark): Likewise.
154152284Sobrien	(markedp): Likewise.
154252284Sobrien	* call.c (enforce_access): Use accessible_p.
154352284Sobrien	* class.c (build_self_reference): Insert the declaration into the
154452284Sobrien	list of members for this type, and make it public.
154552284Sobrien	* decl.c (xref_basetypes): Avoid ill-timed recursion.
154652284Sobrien	* init.c (build_offset_ref): Use lookup_member, not three separate
154752284Sobrien	name-lookups.  Call enforce_access rather than checking for
154852284Sobrien	illegal accesses here.
154952284Sobrien	(resolve_offset_ref): Likewise.
155052284Sobrien	* lex.c (do_identifier): Likewise.
155152284Sobrien	* method.c (hack_identifier): Likewise.
155252284Sobrien	* parse.y (self_reference): Remove.
155352284Sobrien	(opt_component_decl_list): Don't use it.
155452284Sobrien	* parse.c: Regenerated.
155552284Sobrien	* pt.c (print_candidates): Generalize to handle lists of
155652284Sobrien	overloaded functions.
155752284Sobrien	(instantiate_class_template): Don't rely on TREE_VIA_PRIVATE; it's
155852284Sobrien	not set.
155952284Sobrien	(get_template_base): Use new calling convention for dfs_walk.
156052284Sobrien	* search.c: Include varray.h.  Add prototypes.
156152284Sobrien	(dfs_walk): Accept a data pointer to pass to the work functions.
156252284Sobrien	All callers changed.  All work functions changed.
156352284Sobrien	(breadth_first_search): Rename to bfs_walk, and make consistent
156452284Sobrien	with dfs_walk.
156552284Sobrien	(dfs_walk_real): New function.
156652284Sobrien	(canonical_binfo): New function.
156752284Sobrien	(context_for_name_lookup): Likewise.
156852284Sobrien	(shared_marked_p): Likewise.
156952284Sobrien	(shared_unmarked_p): Likewise.
157052284Sobrien	(lokup_field_queue_p): Likewise.
157152284Sobrien	(lookup_field_r): Generalize to handle both functions and fields.
157252284Sobrien	(lookup_field): Just call lookup_member.
157352284Sobrien	(lookup_fnfields): Likewise.
157452284Sobrien	(lookup_member): Move body of lookup_field here and generalize.
157552284Sobrien	(dfs_accessible_queue_p): Likewise.
157652284Sobrien	(dfs_accessible_p): Likewise.
157752284Sobrien	(dfs_access_in_type): Likewise.
157852284Sobrien	(access_in_type): Likewise.
157952284Sobrien	(compute_access): Remove, and replace with ...
158052284Sobrien	(accessible_p): New function.
158152284Sobrien	(vbase_types): Remove.
158252284Sobrien	(vbase_decl_ptr_intermediate): Likewise.
158352284Sobrien	(vbase_decl_ptr): Likewise.
158452284Sobrien	(vbase_init_result): Likewise.
158552284Sobrien	(closed_envelopes): Likewise.
158652284Sobrien	(bvtable): Likewise.
158752284Sobrien
158852284Sobrien1999-03-09  Jason Merrill  <jason@yorick.cygnus.com>
158952284Sobrien
159052284Sobrien	* call.c (add_function_candidate): Check for proper number of args
159152284Sobrien	before checking the validity of those args.
159252284Sobrien
159352284Sobrien1999-03-06  Jason Merrill  <jason@yorick.cygnus.com>
159452284Sobrien
159552284Sobrien	* cp-tree.h (struct lang_type): Add anon_union field.
159652284Sobrien	(ANON_UNION_TYPE_P): Use it instead of examining type.
159752284Sobrien	(SET_ANON_UNION_TYPE_P): New macro.
159852284Sobrien	* decl.c (check_tag_decl): Use it.
159952284Sobrien
160052284Sobrien	* search.c (compute_access): Handle non-type contexts earlier, and
160152284Sobrien	handle NULL_TREE.
160252284Sobrien
160352284Sobrien	* tree.c (build_exception_variant): Use copy_to_permanent.
160452284Sobrien
160552284Sobrien	* decl2.c (setup_initp): Give statics with no priority the default
160652284Sobrien	priority here.
160752284Sobrien	(do_dtors, do_ctors, finish_file): Remove special handling of
160852284Sobrien	non-prioritized statics.
160952284Sobrien
161052284Sobrien1999-03-05  Mark Mitchell  <mark@markmitchell.com>
161152284Sobrien
161252284Sobrien	* cp-tree.h (ANON_UNION_TYPE_P): Robustify.
161352284Sobrien	* decl.c (make_typename_type): Don't issue an error if an
161452284Sobrien	immediate lookup fails; it migt be resolved later.
161552284Sobrien	* friend.c (is_friend): Add comment.
161652284Sobrien	* search.c (breadth_first_search): Add POSTFN and DATA
161752284Sobrien	parameters.  Tidy.  All callers changed.
161852284Sobrien	(lookup_field_queue_p): New function.
161952284Sobrien	(lookup_field_r): Likewise.
162052284Sobrien	(lookup_field_post): Likewise.
162152284Sobrien	(lookup_field): Use them, via breadth_first_search, instead of
162252284Sobrien	duplicating logic.
162352284Sobrien	(compute_access): Robustify.
162452284Sobrien	(lookup_fnfield_info): New structure.
162552284Sobrien
162652284Sobrien1999-03-05  Jason Merrill  <jason@yorick.cygnus.com>
162752284Sobrien
162852284Sobrien	* pt.c (tsubst, case ARRAY_REF): Use tsubst_expr again.
162952284Sobrien
163052284Sobrien1999-03-03  Jason Merrill  <jason@yorick.cygnus.com>
163152284Sobrien
163252284Sobrien	* class.c, decl2.c, method.c, pt.c: Add 'static' to make SunOS 4
163352284Sobrien	cc happy.
163452284Sobrien
163552284Sobrien	* decl2.c (import_export_class): Also return if
163652284Sobrien	CLASSTYPE_INTERFACE_ONLY is set.
163752284Sobrien
163852284Sobrien1999-03-03  Martin von L�wis  <loewis@informatik.hu-berlin.de>
163952284Sobrien
164052284Sobrien	* decl.c (push_overloaded_decl): Only overwrite the old binding if
164152284Sobrien	there was one.
164252284Sobrien	* decl2.c (do_local_using_decl): Fix loop termination.
164352284Sobrien
164452284Sobrien1999-03-02  Mark Mitchell  <mark@markmitchell.com>
164552284Sobrien
164652284Sobrien	* cp-tree.h (determine_specialization): Don't declare.
164752284Sobrien	* pt.c (determine_specialization): Make it static.  Eliminate
164852284Sobrien	complain parameter.  Note that decl is always non-NULL now, and
164952284Sobrien	simplify accordingly.
165052284Sobrien
165152284Sobrien	* decl.c (maybe_push_to_top_level): Always call
165252284Sobrien	push_cp_function_context.
165352284Sobrien	(pop_from_top_level): Always call pop_cp_function_context.
165452284Sobrien
165552284Sobrien1999-02-26  Nathan Sidwell  <nathan@acm.org>
165652284Sobrien
165752284Sobrien	* typeck.c (complete_type_or_else): Add VALUE arg, for helpful
165852284Sobrien	diagnostics.
165952284Sobrien	* cp-tree.h (complete_type_or_else): Added VALUE parameter.
166052284Sobrien	* init.c (build_new_1): Extra arg to complete_type_or_else.
166152284Sobrien	(build_delete): Likewise.
166252284Sobrien	* typeck.c (require_complete_type): Likewise.
166352284Sobrien	(pointer_int_sum): Likewise.
166452284Sobrien	(pointer_diff): Likewise.
166552284Sobrien	(build_component_ref): Likewise.
166652284Sobrien
166752284Sobrien	* typeck2.c (incomplete_type_error): Always use cp_error.
166852284Sobrien	Show declaration of undefined type, if appropriate.
166952284Sobrien	Deal with UNKNOWN_TYPE nodes.
167052284Sobrien
167152284Sobrien	* typeck.c (require_complete_type): Use TYPE_SIZE as
167252284Sobrien	size_zero_node to mean incomplete type.
167352284Sobrien	(require_complete_type_in_void): New function.
167452284Sobrien	(build_compound_expr): Call complete_type_in_void for LHS.
167552284Sobrien	(build_c_cast): Call complete_type_in_void for void cast.
167652284Sobrien	* cvt.c (ocp_convert): Call complete_type_in_void for void cast.
167752284Sobrien	* decl.c (cplus_expand_expr_stmt): Void expression checks moved to
167852284Sobrien	require_complete_type_in_void.  Call it.
167952284Sobrien	* cp-tree.h (require_complete_type_in_void): Prototype new function.
168052284Sobrien
168152284Sobrien	* typeck.c (convert_arguments): Use alternative format for
168252284Sobrien	function decls.  Don't require_complete_type here.  Simplify
168352284Sobrien	diagnostic printing.
168452284Sobrien	(convert_for_initialization): Don't require_complete_type on RHS yet.
168552284Sobrien	* call.c (convert_arg_to_ellipsis): Call require_complete_type.
168652284Sobrien
168752284Sobrien	* call.c (build_over_call): Cope with qualified void return type.
168852284Sobrien	* semantics.c (finish_call_expr): Likewise.
168952284Sobrien	* typeck.c (build_function_call_real): Likewise.
169052284Sobrien	(c_expand_return): Likewise.
169152284Sobrien	* decl2.c (reparse_absdcl_as_expr): Cope with qualified void type.
169252284Sobrien
169352284Sobrien	* call.c (print_z_candidates): Use alternate print format, to be
169452284Sobrien	consistent with (pt.c) print_candidates.
169552284Sobrien	* method.c (hack_identifier): List candidate members.
169652284Sobrien	* search.c (lookup_field): Build ambiguous list, and show it, if
169752284Sobrien	ambiguous.
169852284Sobrien
169952284Sobrien1999-02-26  Mark Mitchell  <mark@markmitchell.com>
170052284Sobrien
170152284Sobrien	* typeck.c (decay_conversion): Don't confuse constant array
170252284Sobrien	variables with their initializers.
170352284Sobrien
170452284Sobrien	* decl.c (duplicate_decls): Copy DECL_TEMPLATE_INSTANTIATED when
170552284Sobrien	merging decls.
170652284Sobrien	* pt.c (regenerate_decl_from_template): Tweak for clarity.
170752284Sobrien	(instantiate_decl): Mark a decl instantiated before regenerating
170852284Sobrien	it to avoid recursion.
170952284Sobrien	* tree.c (mapcar): Don't call decl_constant_value unless we know
171052284Sobrien	something is TREE_READONLY_DECL_P.
171152284Sobrien
171252284Sobrien	* class.c (check_for_override): Don't stop checking when we find
171352284Sobrien	the first overridden function.  Delete #if 0'd code.
171452284Sobrien	* search.c (get_matching_virtual): Likewise.
171552284Sobrien
171652284Sobrien1999-02-25  Richard Henderson  <rth@cygnus.com>
171752284Sobrien
171852284Sobrien	* lang-specs.h: Define __FAST_MATH__ when appropriate.
171952284Sobrien
172052284Sobrien1999-02-24  Mike Stump  <mrs@wrs.com>
172152284Sobrien
172252284Sobrien	* typeck.c (convert_for_assignment): Allow boolean integral constant
172352284Sobrien	expressions to convert to null pointer.
172452284Sobrien
172552284Sobrien1999-02-24  Martin von Loewis  <loewis@informatik.hu-berlin.de>
172652284Sobrien
172752284Sobrien	* decl.c (lookup_namespace_name): Resolve namespace aliases.
172852284Sobrien
172952284Sobrien	* class.c (push_nested_class): Allow namespaces.
173052284Sobrien
173152284Sobrien	* decl2.c (set_decl_namespace): Add friendp parameter.
173252284Sobrien	* decl.c (grokfndecl): Pass it.
173352284Sobrien	(grokvardecl): Likewise.
173452284Sobrien	* cp-tree.h: Change declaration.
173552284Sobrien
173652284Sobrien1999-02-24  Jason Merrill  <jason@yorick.cygnus.com>
173752284Sobrien
173852284Sobrien	* pt.c (tsubst): Allow an array of explicit size zero.
173952284Sobrien
174052284Sobrien1999-02-23  Jason Merrill  <jason@yorick.cygnus.com>
174152284Sobrien
174252284Sobrien	* errfn.c: Change varargs code to look like toplev.c.
174352284Sobrien
174452284Sobrien	* method.c (process_modifiers): Don't prepend 'U' for char or
174552284Sobrien	wchar_t.
174652284Sobrien
174752284Sobrien1999-02-20  Craig Burley  <craig@jcb-sc.com>
174852284Sobrien
174952284Sobrien	* Make-lang.in (cplib2.ready): Don't consider updating
175052284Sobrien	cplib2 stuff if the current directory isn't writable, as
175152284Sobrien	it won't work (such as during a `make install').
175252284Sobrien
175352284SobrienSun Feb 21 20:38:00 1999  H.J. Lu  (hjl@gnu.org)
175452284Sobrien
175552284Sobrien	* decl2.c (start_objects): Make file scope constructors and
175652284Sobrien	destructors local to the file if ASM_OUTPUT_CONSTRUCTOR and
175752284Sobrien	ASM_OUTPUT_DESTRUCTOR are defined.
175852284Sobrien
175952284Sobrien1999-02-19  Mark Mitchell  <mark@markmitchell.com>
176052284Sobrien
176152284Sobrien	* cp-tree.h (CLASSTYPE_METHOD_VEC): Adjust comment.
176252284Sobrien	(fn_type_unification): Adjust prototype.
176352284Sobrien	(lookup_fnfields_1): Declare.
176452284Sobrien	* call.c (add_template_candidate_real): Adjust call to
176552284Sobrien	fn_type_unification.
176652284Sobrien	* class.c (add_method): Don't allow duplicate declarations of
176752284Sobrien	constructors or destructors.
176852284Sobrien	(resolve_address_of_overloaded_function): Remove unused variable.
176952284Sobrien	Adjust call to fn_type_unification.
177052284Sobrien	* decl.c (grokfndecl): Be more robust in the face of illegal
177152284Sobrien	specializations.
177252284Sobrien	* decl2.c (check_classfn): Remove hokey handling of member
177352284Sobrien	templates.
177452284Sobrien	* pt.c (determine_specialization): Improve comments.  Adjust to
177552284Sobrien	handle template argument deduction as per the standard.
177652284Sobrien	(check_explicit_specialization): Fix comment spacing.  Handle
177752284Sobrien	type-conversion operators correctly.  Improve error-recovery.
177852284Sobrien	(fn_type_unification): Remove EXTRA_FN_ARG parameter.
177952284Sobrien	(get_bindings_real): Simplify handling of static members.
178052284Sobrien	* search.c (lookup_fnfields_1): Make it have external linkage.
178152284Sobrien	* typeck.c (compparms): Fix comment.
178252284Sobrien	(build_unary_op): Don't try to figure out which template
178352284Sobrien	specialization is being referred to when when the address-of
178452284Sobrien	operator is used with a template function.
178552284Sobrien
178652284SobrienThu Feb 18 23:40:01 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
178752284Sobrien
178852284Sobrien	* cp-tree.h (lvalue_or_else): Qualify a char* with the `const'
178952284Sobrien	keyword to match an analogous change at the top level.
179052284Sobrien
179152284Sobrien	* tree.c (lvalue_or_else): Likewise.
179252284Sobrien
179352284Sobrien1999-02-17  Mark Mitchell  <mark@markmitchell.com>
179452284Sobrien
179552284Sobrien	* decl.c (xref_basetypes): Comment.
179652284Sobrien	* pt.c (instantiate_class_template): Use xref_basetypes.
179752284Sobrien
179852284Sobrien1999-02-16  Mark Mitchell  <mark@markmitchell.com>
179952284Sobrien
180052284Sobrien	* cp-tree.h (tsubst): Change prototype.
180152284Sobrien	(tsubst_expr): Likewise.
180252284Sobrien	(tsubst_copy): Likewise.
180352284Sobrien	(type_unification): Remove prototype.
180452284Sobrien	* call.c (convert_default_arg): Adjust call to tsubst_expr.
180552284Sobrien	* class.c (resolve_address_of_overloaded_function): Just use
180652284Sobrien	fn_type_unification.
180752284Sobrien	* decl.c (grokdeclarator): Adjust call to tsubst.
180852284Sobrien	* method.c (build_template_parm_names): Likewise.
180952284Sobrien	* pt.c (GTB_VIA_VIRTUAL): New macro.
181052284Sobrien	(GTB_IGNORE_TYPE): Likewise.
181152284Sobrien	(resolve_overloaded_unification): Add `complain' parameter.
181252284Sobrien	(try_one_overload): Likewise.
181352284Sobrien	(tsubst_template_arg_vector): Likewise.
181452284Sobrien	(tsubst_template_parms): Likewise.
181552284Sobrien	(tsubst_aggr_type): Likewise.
181652284Sobrien	(tsubst_arg_types): Likewise.
181752284Sobrien	(tsubst_call_declarator_parms): Likewise.
181852284Sobrien	(unify): Remove explicit_mask.
181952284Sobrien	(type_unification_real): Likewise.
182052284Sobrien	(get_template_base_recursive): Likewise.
182152284Sobrien	(coerce_template_template_parms): Provide prototype.
182252284Sobrien	(tsubst_function_type): Likewise.
182352284Sobrien	(try_class_unification): New function.
182452284Sobrien	All callers changed to use new complain parameter.
182552284Sobrien	(get_template_base): Use try_class_unification.
182652284Sobrien	(unify): Adjust handling of classes derived from template types.
182752284Sobrien	(fn_type_unification): Substitute explicit arguments before
182852284Sobrien	unification.
182952284Sobrien
183052284Sobrien1999-02-16  Kriang Lerdsuwanakij  <lerdsuwa@scf-fs.usc.edu>
183152284Sobrien
183252284Sobrien	* decl.c (pushdecl): Remove dead code.
183352284Sobrien
183452284Sobrien1999-02-16  Jason Merrill  <jason@yorick.cygnus.com>
183552284Sobrien
183652284Sobrien	* decl2.c (finish_objects): Fix code I missed in previous change.
183752284Sobrien
183852284Sobrien1999-02-13  Jason Merrill  <jason@yorick.cygnus.com>
183952284Sobrien
184052284Sobrien	* decl.c (grokfndecl): Return NULL_TREE instead of error_mark_node.
184152284Sobrien	(grokdeclarator): Don't expect error_mark_node from grokfndecl.
184252284Sobrien
184352284Sobrien	* pt.c (maybe_process_partial_specialization): Complain about
184452284Sobrien	'template <>' on non-specialization.
184552284Sobrien
184652284Sobrien1999-02-10  Jason Merrill  <jason@yorick.cygnus.com>
184752284Sobrien
184852284Sobrien	* decl.c (grokdeclarator): Catch wierd declarators.
184952284Sobrien	* decl2.c (finish_file): Don't abort because of namespace parsing
185052284Sobrien	failure.
185152284Sobrien	(check_decl_namespace): Remove.
185252284Sobrien
185352284Sobrien1999-02-09  Mark Mitchell  <mark@markmitchell.com>
185452284Sobrien
185552284Sobrien	* cp-tree.h (get_template_base): Don't declare.
185652284Sobrien	(dfs_walk): Declare.
185752284Sobrien	(dfs_unmark): Likewise.
185852284Sobrien	(markedp): Likewise.
185952284Sobrien	* pt.c (unify): Remove duplicate declaration.  Pass tparms and
186052284Sobrien	targs to get_template_base.
186152284Sobrien	(get_template_base_recursive): Move here from search.c.  Check to
186252284Sobrien	see that the base found can be instantiated to form the desired
186352284Sobrien	type.
186452284Sobrien	(get_template_base): Likewise.
186552284Sobrien	(get_class_bindings): Simplify.
186652284Sobrien	* search.c (get_template_base_recursive): Move to pt.c.
186752284Sobrien	(get_template_base): Likewise.
186852284Sobrien	(markedp): Make it global.
186952284Sobrien	(dfs_walk): Likewise.
187052284Sobrien	(dfs_unmark): Likewise.
187152284Sobrien
187252284Sobrien1999-02-07  Jason Merrill  <jason@yorick.cygnus.com>
187352284Sobrien
187452284Sobrien	* pt.c (maybe_process_partial_specialization): Complain about
187552284Sobrien	specialization in wrong namespace.
187652284Sobrien	* tree.c (decl_namespace_context): New fn.
187752284Sobrien
187852284Sobrien1999-02-06  Kriang Lerdsuwanakij  <lerdsuwa@scf-fs.usc.edu>
187952284Sobrien
188052284Sobrien	* decl2.c (arg_assoc_type): Handle TEMPLATE_TEMPLATE_PARM.
188152284Sobrien	* pt.c (coerce_template_template_parms): Handle nested
188252284Sobrien	template template parameters.
188350397Sobrien
188448743SobrienSat Feb  6 18:08:40 1999  Jeffrey A Law  (law@cygnus.com)
188550397Sobrien
188650397Sobrien	* typeck2.c: Update email addresses.
188750397Sobrien
188848743Sobrien1999-02-04  Kriang Lerdsuwanakij  <lerdsuwa@scf-fs.usc.edu>
188952284Sobrien
189048743Sobrien	* pt.c (unify): Call coerce_template_parms with the COMPLAIN flag
189152284Sobrien	turned off.
189252284Sobrien
189352284Sobrien1999-02-04  Jason Merrill  <jason@yorick.cygnus.com>
189452284Sobrien
189552284Sobrien	* lex.c (retrofit_lang_decl): Split out...
189652284Sobrien	(build_lang_decl): From here.
189752284Sobrien	* decl.c (pushdecl): Call it for functions generated by the middle
189852284Sobrien	end that don't have DECL_LANG_SPECIFIC.
189952284Sobrien	* cp-tree.h: Declare it.
190052284Sobrien
190152284Sobrien	* decl2.c: Remove flag_init_priority.  Always enable initp stuff.
190252284Sobrien	(start_objects, finish_objects): Only use special
190352284Sobrien	init_priority code if the user specified a priority.
190452284Sobrien	(do_ctors, do_dtors): Use DEFAULT_INIT_PRIORITY for the non-initp
190552284Sobrien	objects.
190652284Sobrien
190752284SobrienWed Feb  3 22:50:17 1999  Marc Espie  <Marc.Espie@liafa.jussieu.fr>
190852284Sobrien
190952284Sobrien	* Make-lang.in (GXX_OBJS): Remove choose-temp.o, pexecute.o and
191052284Sobrien	mkstemp.o.  Get them from libiberty now.
191152284Sobrien	(DEMANGLER_PROG): Simlarly, remove getopt.o getopt1.o.
191252284Sobrien
191352284SobrienTue Feb  2 22:38:48 1999  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>
191452284Sobrien
191552284Sobrien	* decl2.c (lang_decode_option): Use read_integral_parameter.
191652284Sobrien
191752284Sobrien1999-02-01  Mark Mitchell  <mark@markmitchell.com>
191852284Sobrien
191952284Sobrien	* pt.c (tsubst, case TYPENAME_TYPE): Check TYPE_BEING_DEFINED
192052284Sobrien	before calling complete_type_or_else.
192152284Sobrien
192252284SobrienMon Feb  1 09:49:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
192352284Sobrien
192452284Sobrien	* input.c (inline): Don't define, its handled by system.h.
192552284Sobrien
192652284SobrienSun Jan 31 20:34:29 1999  Zack Weinberg  <zack@rabi.columbia.edu>
192752284Sobrien
192852284Sobrien	* decl2.c: Don't define flag_no_ident here.  Don't process
192952284Sobrien	-f(no-)ident here.
193052284Sobrien	* cp-tree.h: Don't declare flag_no_ident here.
193152284Sobrien	* lang-specs.h: Map -Qn to -fno-ident.
193252284Sobrien
193352284Sobrien1999-01-28  Jason Merrill  <jason@yorick.cygnus.com>
193452284Sobrien
193552284Sobrien	* cp-tree.h (struct tree_binding): Replace scope field with a union.
193652284Sobrien	(BINDING_SCOPE): Adjust.
193752284Sobrien	* decl.c (BINDING_LEVEL): Adjust.
193852284Sobrien
193952284Sobrien1999-01-26  Jason Merrill  <jason@yorick.cygnus.com>
194052284Sobrien
194152284Sobrien	* pt.c (instantiate_class_template): Set up the DECL_INITIAL of
194252284Sobrien	member constants.
194352284Sobrien
194452284Sobrien	* init.c (expand_member_init): Pull out TYPE_MAIN_VARIANT in
194552284Sobrien	a ctor initializer.
194652284Sobrien
194752284Sobrien	* tree.c (equal_functions): Fix name in prototype.
194852284Sobrien
194952284Sobrien	* decl.c (push_local_binding): Add FLAGS argument.
195052284Sobrien	(pushdecl, push_overloaded_decl): Pass it.
195152284Sobrien	* decl2.c (do_local_using_decl): Likewise.
195252284Sobrien	* cp-tree.h: Adjust prototype.
195352284Sobrien	* decl.c (poplevel): Fix logic.
195452284Sobrien
195552284Sobrien	* decl.c (push_local_binding): Also wrap used decls in a TREE_LIST.
195652284Sobrien	(poplevel): Handle that.  Fix logic for removing TREE_LISTs.
195752284Sobrien	(cat_namespace_levels): Don't loop forever.
195852284Sobrien
195952284Sobrien1999-01-25  Richard Henderson  <rth@cygnus.com>
196052284Sobrien
196152284Sobrien	* typeck.c (build_reinterpret_cast): Fix typo in duplicated test.
196252284Sobrien
196352284Sobrien1999-01-25  Jason Merrill  <jason@yorick.cygnus.com>
196452284Sobrien
196552284Sobrien	* class.c (resolve_address_of_overloaded_function): Mark the
196652284Sobrien	chosen function used.
196752284Sobrien
196852284Sobrien	* call.c (build_call): Make sure that a function coming in has
196952284Sobrien	been marked used already.
197052284Sobrien	* decl.c (expand_static_init): Call mark_used instead of
197152284Sobrien	assemble_external.
197252284Sobrien	* except.c (call_eh_info, do_pop_exception, expand_end_eh_spec,
197352284Sobrien	alloc_eh_object, expand_throw): Likewise.
197452284Sobrien	* init.c (build_builtin_delete_call): Likewise.
197552284Sobrien	* rtti.c (call_void_fn, get_tinfo_fn, build_dynamic_cast_1,
197652284Sobrien	expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc,
197752284Sobrien	expand_generic_desc): Likewise.
197852284Sobrien
197952284Sobrien1999-01-25  Martin von L�wis  <loewis@informatik.hu-berlin.de>
198052284Sobrien
198152284Sobrien	* tree.c (equal_functions): New function.
198252284Sobrien	(ovl_member): Call it.
198352284Sobrien
198452284Sobrien1999-01-24  Jason Merrill  <jason@yorick.cygnus.com>
198552284Sobrien
198652284Sobrien	* cvt.c (cp_convert_to_pointer): Fix conversion of 0 to pmf.
198752284Sobrien
198852284Sobrien1999-01-25  Martin von Loewis  <loewis@informatik.hu-berlin.de>
198952284Sobrien
199052284Sobrien	* decl.c (decls_match): Return 1 if old and new are identical.
199152284Sobrien	(push_overloaded_decl): Set OVL_USED when PUSH_USING.
199252284Sobrien
199352284Sobrien1999-01-24  Jason Merrill  <jason@yorick.cygnus.com>
199452284Sobrien
199552284Sobrien	* decl.c (start_function): Make member functions one_only on windows.
199652284Sobrien	* decl2.c (import_export_decl): Likewise.
199752284Sobrien
199852284Sobrien	* decl.c (grokdeclarator): Don't complain about implicit int in
199952284Sobrien	a system header.  Change same-name field check to not complain in
200052284Sobrien	a system header instead of within extern "C".
200152284Sobrien
200252284Sobrien1999-01-21  Mark Mitchell  <mark@markmitchell.com>
200352284Sobrien
200452284Sobrien	* cp-tree.h (PUSH_GLOBAL): New macro.
200552284Sobrien	(PUSH_LOCAL): Likewise.
200652284Sobrien	(PUSH_USING): Likewise.
200752284Sobrien	(namespace_bindings_p): Declare.
200852284Sobrien	(push_overloaded_decl): Likewise.
200952284Sobrien	* decl.c (push_overloaded_decl): Don't make it static.  Check for
201052284Sobrien	illegal declarations after using declarations here.
201152284Sobrien	(namespace_bindings_p): Likewise.
201252284Sobrien	(duplicate_decls): Don't consider declarations from different
201352284Sobrien	namespaces to be the same.
201452284Sobrien	(pushdecl): Use symbolic PUSH_ constants in calls to
201552284Sobrien	push_overloaded_decl.
201652284Sobrien	(push_overloaded_decl_1): Likewise.
201752284Sobrien	* decl2.c (validate_nonmember_using_decl): Tweak `std' handling.
201852284Sobrien	(do_nonmember_using_decl): Check for illegal using declarations
201952284Sobrien	after ordinary declarations here.
202052284Sobrien	(do_local_using_decl): Call pushdecl to insert declarations.
202152284Sobrien
202252284Sobrien1999-01-21  Jason Merrill  <jason@yorick.cygnus.com>
202352284Sobrien
202452284Sobrien	* decl.c (grokdeclarator): Fix lang_c -> lang_name_c typo.
202552284Sobrien
202652284Sobrien1999-01-21  Mark Mitchell  <mark@markmitchell.com>
202752284Sobrien
202852284Sobrien	* tree.c (build_cplus_array_type_1): Don't call build_array_type
202952284Sobrien	for types involving template parameters.
203052284Sobrien
203152284Sobrien	* cp-tree.h (PARM_DECL_EXPR): Delete.
203252284Sobrien	(convert_default_arg): Change prototype.
203352284Sobrien	(check_default_argument): Declare.
203452284Sobrien	(search_tree): Likewise.
203552284Sobrien	* call.c (convert_default_arg): Take the function to which the
203652284Sobrien	default argument belongs as a parameter, and do any necessary
203752284Sobrien	instantiation here, instead of ...
203852284Sobrien	(build_over_call): Here.
203952284Sobrien	* decl.c (local_variable_p): New function.
204052284Sobrien	(check_default_argument): Likewise, split out and tidied from ...
204152284Sobrien	(grokparms): Here.
204252284Sobrien	* error.c (dump_expr): Don't set PARM_DECL_EXPR.
204352284Sobrien	* pt.c (tsubst_call_declarator_parms): New function.
204452284Sobrien	(for_each_template_parm): Handle ARRAY_REFs.  Do the obvious thing
204552284Sobrien	with CALL_EXPRs, rather than trying to be clever.
204652284Sobrien	(tsubst): Use tsubst_call_declarator_parms.
204752284Sobrien	* tree.c (search_tree): Don't make it static.
204852284Sobrien	* typeck.c (convert_arguments): Use new interface to
204952284Sobrien	convert_default_arg.
205052284Sobrien
205152284Sobrien1999-01-20  Mark Mitchell  <mark@markmitchell.com>
205252284Sobrien
205352284Sobrien	* error.c (dump_function_decl): Don't print the argument types for
205452284Sobrien	a function when the verbosity level is negative.
205552284Sobrien
205652284Sobrien	* call.c (build_over_call): Check format attributes at call-time.
205752284Sobrien
205852284Sobrien	* pt.c (tsubst_copy): Fix comment.
205952284Sobrien	(unify): Don't allow unification with variable-sized arrays.
206052284Sobrien
206152284Sobrien	* semantics.c (finish_stmt_expr): When processing a template make
206252284Sobrien	the BIND_EXPR long-lived.
206352284Sobrien
206452284Sobrien1999-01-19  Jason Merrill  <jason@yorick.cygnus.com>
206552284Sobrien
206652284Sobrien	* decl2.c (finish_vtable_vardecl): Make vtables comdat here.
206752284Sobrien	(import_export_vtable): Not here.
206852284Sobrien
206952284Sobrien1999-01-18  Jason Merrill  <jason@yorick.cygnus.com>
207052284Sobrien
207152284Sobrien	* typeck.c (build_component_ref): Wrap an OVERLOAD around a unique
207252284Sobrien	non-static member function.
207352284Sobrien
207452284Sobrien1999-01-18  Nathan Sidwell  <nathan@acm.org>
207552284Sobrien
207652284Sobrien	* class.c (instantiate_type): Only diagnose illegal address of member
207752284Sobrien	function if complaining.
207852284Sobrien
207952284Sobrien	* decl.c (lookup_name_real): Remove duplicate code.
208052284Sobrien
208152284Sobrien1999-01-18  Jason Merrill  <jason@yorick.cygnus.com>
208252284Sobrien
208352284Sobrien	* tree.c (copy_template_template_parm): Use permanent_obstack.
208452284Sobrien
208552284Sobrien1999-01-18  Kriang Lerdsuwanakij  <lerdsuwa@scf-fs.usc.edu>
208652284Sobrien
208752284Sobrien	* pt.c (unify): Remove restrictions on deduction of argument
208852284Sobrien	of template template parameters.
208952284Sobrien
209052284Sobrien1999-01-18  Nathan Sidwell  <nathan@acm.org>
209152284Sobrien
209252284Sobrien	* rtti.c (build_dynamic_cast_1): Resolve OFFSET_REF exprs.
209352284Sobrien
209452284Sobrien	* class.c (resolve_address_of_overloaded_function): Show list of
209552284Sobrien	all candidates, when none of them match.
209652284Sobrien
209752284Sobrien1999-01-18  Chip Salzenberg  <chip@perlsupport.com>
209852284Sobrien
209952284Sobrien	* typeck.c (comp_ptr_ttypes_reinterpret): Per ANSI, tighten up
210052284Sobrien	definition of 'casting away const' in reinterpret_cast<>.
210152284Sobrien
210252284Sobrien1999-01-18  Graham  <grahams@rcp.co.uk>
210352284Sobrien
210452284Sobrien	* cvt.c: Add include for decl.h, remove extern for
210552284Sobrien	static_aggregates which is now provided by decl.h.
210652284Sobrien
210752284Sobrien	* Makefile.in (cvt.o): Add dependency for decl.h and missing
210852284Sobrien	dependencies for convert.h and flags.h.
210952284Sobrien
211052284Sobrien1999-01-18  Nathan Sidwell  <nathan@acm.org>
211150397Sobrien
211250397Sobrien	* decl2.c (do_dtors): Set current location to that of the
211348743Sobrien	decl, for sensible diagnostics and debugging.
211452284Sobrien	(check_classfn): Issue `incomplete type' error, if
211518334Speter	class is not defined.
211652284Sobrien
211718334Speter1999-01-16  Jason Merrill  <jason@yorick.cygnus.com>
211852284Sobrien
211952284Sobrien	* cp-tree.h: Add prototype for bound_pmf_p.
212052284Sobrien
212152284Sobrien1999-01-16  Jason Merrill  <jason@yorick.cygnus.com>
212252284Sobrien	    Manfred Hollstein <manfred@s-direktnet.de>
212352284Sobrien
212452284Sobrien	* decl.c (grokdeclarator): Don't make 'main(){}' an error with only
212552284Sobrien	-Wreturn-type.
212652284Sobrien
212752284Sobrien1999-01-16  Nathan Sidwell  <nathan@acm.org>
212852284Sobrien
212952284Sobrien	* cp-tree.h (struct lang_type): Added has_mutable flag.
213052284Sobrien	(CLASSTYPE_HAS_MUTABLE): New macro to access it.
213152284Sobrien	(TYPE_HAS_MUTABLE_P): New macro to read it.
213252284Sobrien	(cp_has_mutable_p): Prototype for new function.
213352284Sobrien	* class.c (finish_struct_1): Set has_mutable from members.
213452284Sobrien	* decl.c (cp_finish_decl): Clear decl's TREE_READONLY flag, if
213552284Sobrien	it contains a mutable.
213652284Sobrien	* typeck.c (cp_has_mutable_p): New function.
213752284Sobrien
213852284Sobrien1999-01-15  Mark Mitchell  <mark@markmitchell.com>
213952284Sobrien
214052284Sobrien	* pt.c (process_template_parm): Ignore top-level qualifiers on
214152284Sobrien	non-type parameters.
214252284Sobrien
214352284Sobrien	* decl.c (start_function): Use current_function_parms in the call
214452284Sobrien	to require_complete_type_for_parms, not the probably empty
214552284Sobrien	DECL_ARGUMENTS.
214652284Sobrien
214752284Sobrien1999-01-14  Jason Merrill  <jason@yorick.cygnus.com>
214852284Sobrien
214952284Sobrien	* semantics.c (finish_asm_stmt): Don't warn about redundant volatile.
215052284Sobrien
215152284Sobrien	* decl2.c (import_export_class): MULTIPLE_SYMBOL_SPACES only means
215252284Sobrien	that we don't suppress the other copies.
215352284Sobrien	* lex.c (handle_cp_pragma): Likewise.
215452284Sobrien
215552284Sobrien1999-01-13  Mark Mitchell  <mark@markmitchell.com>
215652284Sobrien
215752284Sobrien	* decl.c (grokdeclarator): Undo 1998-12-14 change.
215852284Sobrien	* tree.c (build_cplus_array_type_1): Likewise.
215952284Sobrien	* pt.c (instantiate_class_template): Remove misleading comment.
216052284Sobrien	(tsubst_aggr_type): Substitute if there are template parameters,
216152284Sobrien	regardless of whether or not they use template arguments.
216252284Sobrien	(unify): Likewise, but for unification.
216352284Sobrien
216452284Sobrien1999-01-12  Richard Henderson  <rth@cygnus.com>
216552284Sobrien
216652284Sobrien	* cp-tree.h (flag_permissive): Declare extern.
216752284Sobrien
216852284Sobrien1999-01-06  Mark Mitchell  <mark@markmitchell.com>
216952284Sobrien
217052284Sobrien	* cp-tree.h (IDENTIFIER_TYPENAME_P): Use OPERATOR_TYPENAME_FORMAT
217152284Sobrien	here.
217252284Sobrien	(lang_type): Add is_partial_instantiation.  Decrease width of
217352284Sobrien	dummy.
217452284Sobrien	(PARTIAL_INSTANTIATION_P): New macro.
217552284Sobrien	(OPERATOR_TYPENAME_P): Remove.
217652284Sobrien	* decl.c (unary_op_p): Use IDENTIFIER_TYPENAME_P, not
217752284Sobrien	OPERATOR_TYPENAME_P.
217852284Sobrien	(grok_op_properties): Likewise.
217952284Sobrien	* friend.c (do_friend): Handle friends that are member functions
218052284Sobrien	correctly.
218152284Sobrien	* lex.c (init_parse): Use OPERATOR_TYPENAME_FORMAT.
218252284Sobrien	* pt.c (instantiate_class_template): Rework for clarity.  Avoid
218352284Sobrien	leaving TYPE_BEING_DEFINED set in obscure cases.  Don't do
218452284Sobrien	any more partial instantiation than is absolutely necessary for
218552284Sobrien	implicit typename.  Set PARTIAL_INSTANTIATION_P.
218652284Sobrien	(tsubst_decl): Use IDENTIFIER_TYPENAME_P.
218752284Sobrien	* semantics.c (begin_class_definition): Handle partial
218852284Sobrien	specializations of a type that was previously partially
218952284Sobrien	instantiated.
219052284Sobrien
219152284SobrienWed Jan  6 03:18:53 1999  Mark Elbrecht  <snowball3@usa.net.
219252284Sobrien
219352284Sobrien	* g++spec.c (LIBSTDCXX): Provide default definition.
219452284Sobrien	(lang_specific_driver): Use LIBSTDCXX instead of "-lstdc++".
219552284Sobrien
219652284SobrienTue Jan  5 22:11:25 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
219752284Sobrien
219852284Sobrien	* Make-lang.in (g++.o): Depend on prefix.h.
219952284Sobrien
220052284Sobrien1999-01-04  Jason Merrill  <jason@yorick.cygnus.com>
220152284Sobrien
220252284Sobrien	* tree.c (bound_pmf_p): New fn.
220352284Sobrien	* typeck.c (build_c_cast): Use it.
220452284Sobrien
220552284Sobrien	* decl.c (grok_op_properties): Use same_type_p.
220652284Sobrien
220752284SobrienTue Dec 22 15:09:25 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
220852284Sobrien
220952284Sobrien	* Makefile.in (cvt.o): Depend on toplev.h.
221052284Sobrien
221152284Sobrien	* cp-tree.h (check_template_shadow, pod_type_p): Add prototypes.
221252284Sobrien
221352284Sobrien	* cvt.c: Include toplev.h.
221452284Sobrien
221552284Sobrien	* except.c (get_eh_caught, get_eh_handlers): Hide prototypes and
221652284Sobrien	definitions.
221752284Sobrien
221852284Sobrien	* init.c (expand_vec_init): Initialize variable `itype'.
221952284Sobrien
222052284Sobrien	* lex.c (yyerror): Cast the argument passed to a ctype function to
222152284Sobrien	an unsigned char.
222252284Sobrien
222352284Sobrien	* method.c (build_mangled_C9x_name): Wrap prototype and definition
222452284Sobrien	in "HOST_BITS_PER_WIDE_INT >= 64".
222552284Sobrien
222652284Sobrien	* typeck.c (build_binary_op): Mark parameter `convert_p' with
222752284Sobrien	ATTRIBUTE_UNUSED.
222852284Sobrien
222952284Sobrien1998-12-22  Mark Mitchell  <mark@markmitchell.com>
223052284Sobrien
223152284Sobrien	* cp-tree.h (TYPE_RAISES_EXCEPTIONS): Improve documentation.
223252284Sobrien	* tree.c (build_exception_variant): Don't crash on empty throw
223352284Sobrien	specs.
223452284Sobrien
223552284Sobrien1998-12-18  DJ Delorie  <dj@cygnus.com>
223652284Sobrien
223752284Sobrien	* cvt.c (convert_to_reference): Check for both error_mark_node
223852284Sobrien	and NULL_NODE after call to convert_for_initialization.
223952284Sobrien
224052284Sobrien1998-12-17  Jason Merrill  <jason@yorick.cygnus.com>
224152284Sobrien
224252284Sobrien	* error.c (interesting_scope_p): New fn.
224352284Sobrien	(dump_simple_decl): Use it.
224452284Sobrien	(dump_expr, case CONSTRUCTOR): Force a & for a PMF.
224552284Sobrien	(dump_expr, case OFFSET_REF): Print ->* if appropriate.
224652284Sobrien
224752284Sobrien1998-12-16  Mark Mitchell  <mark@markmitchell.com>
224852284Sobrien
224952284Sobrien	* class.c (resolve_address_of_overloaded_function): Do conversion
225052284Sobrien	to correct type here, rather than ...
225152284Sobrien	(instantiate_type): Here.
225252284Sobrien
225352284Sobrien	* cp-tree.h (DECL_TEMPLATE_PARM_P): New macro.
225452284Sobrien	(DECL_TEMPLATE_TEMPLATE_PARM_P): Use it.
225552284Sobrien	(decl_template_parm_p): Remove.
225652284Sobrien	* decl.c (pushdecl): Don't set DECL_CONTEXT for a template
225752284Sobrien	parameter.
225852284Sobrien	* lex.c (do_identifier): Use DECL_TEMPLATE_PARM_P.
225952284Sobrien	* pt.c (push_inline_template_parms_recursive): Set it.
226052284Sobrien	(decl_template_parm_p): Remove.
226152284Sobrien	(check_template_shadow): Use DECL_TEMPLATE_PARM_P.
226252284Sobrien	(process_template_parm): Set it.
226352284Sobrien
226452284SobrienWed Dec 16 16:33:58 1998  Dave Brolley  <brolley@cygnus.com>
226552284Sobrien
226652284Sobrien	* lang-specs.h (default_compilers): Pass -MD, -MMD and -MG to cc1plus
226752284Sobrien	if configured with cpplib.
226852284Sobrien
226952284Sobrien1998-12-15  Mark Mitchell  <mark@markmitchell.com>
227052284Sobrien
227152284Sobrien	* decl.c (poplevel): Make sure ns_binding is initialized.
227252284Sobrien
227352284Sobrien	* decl.c (finish_function): Undo inadvertent change in previous
227452284Sobrien	patch.
227552284Sobrien
227652284Sobrien1998-12-14  Mark Mitchell  <mark@markmitchell.com>
227752284Sobrien
227852284Sobrien	* class.c (pushclass): Tweak handling of class-level bindings.
227952284Sobrien	(resolve_address_of_overloaded_function): Update pointer-to-member
228052284Sobrien	handling.
228152284Sobrien	(instantiate_type): Likewise.
228252284Sobrien	* cvt.c (cp_convert_to_pointer): Likewise.
228352284Sobrien	* decl.c (pop_binding): Take the DECL to pop, not just the name.
228452284Sobrien	Deal with `struct stat' hack.
228552284Sobrien	(binding_level): Add to documentation.
228652284Sobrien	(push_binding): Clear BINDING_TYPE.
228752284Sobrien	(add_binding): New function.
228852284Sobrien	(push_local_binding): Use it.
228952284Sobrien	(push_class_binding): Likewise.
229052284Sobrien	(poplevel): Adjust calls to pop_binding.
229152284Sobrien	(poplevel_class): Likewise.
229252284Sobrien	(pushdecl): Adjust handling of TYPE_DECLs; add bindings for hidden
229352284Sobrien	declarations to current binding level.
229452284Sobrien	(push_class_level_binding): Likewise.
229552284Sobrien	(push_overloaded_decl): Adjust handling of OVERLOADs in local
229652284Sobrien	bindings.
229752284Sobrien	(lookup_namespace_name): Don't crash when confronted with a
229852284Sobrien	TEMPLATE_DECL.
229952284Sobrien	(lookup_name_real): Do `struct stat' hack in local binding
230052284Sobrien	contexts.
230152284Sobrien	(build_ptrmemfunc_type): Adjust documentation.
230252284Sobrien	(grokdeclarator): Don't avoid building real array types when
230352284Sobrien	processing templates unless really necessary.
230452284Sobrien	(finish_method): Adjust calls to pop_binding.
230552284Sobrien	* decl2.c (reparse_absdcl_as_expr): Recursively call ourselves,
230652284Sobrien	not reparse_decl_as_expr.
230752284Sobrien	(build_expr_from_tree): Deal with a template-id as the function to
230852284Sobrien	call in a METHOD_CALL_EXPR.
230952284Sobrien	* pt.c (convert_nontype_argument): Tweak pointer-to-member handling.
231052284Sobrien	(maybe_adjust_types_For_deduction): Don't do peculiar things with
231152284Sobrien	METHOD_TYPEs here.
231252284Sobrien	(resolve_overloaded_unification): Handle COMPONENT_REFs.  Build
231352284Sobrien	pointer-to-member types where necessary.
231452284Sobrien	* tree.c (build_cplus_array_type_1): Don't avoid building real
231552284Sobrien	array types when processing templates unless really necessary.
231652284Sobrien	(build_exception_variant): Compare the exception lists correctly.
231752284Sobrien
231852284Sobrien1998-12-13  Mark Mitchell  <mark@markmitchell.com>
231952284Sobrien
232052284Sobrien	* cp-tree.def (CPLUS_BINDING): Update documentation.
232152284Sobrien	* cp-tree.h (LOCAL_BINDING_P): New macro.
232252284Sobrien	(lang_identifier): Rename local_value to bindings.
232352284Sobrien	(tree_binding): Make `scope' of type `void*', not `tree'.
232452284Sobrien	(BINDING_SCOPE): Update documentation.
232552284Sobrien	(IDENTIFIER_LOCAL_VALUE): Remove.
232652284Sobrien	(IDENTIFIER_CLASS_VALUE): Document.
232752284Sobrien	(IDENTIFIER_BINDING): New macro.
232852284Sobrien	(IDENTIFIER_VALUE): Likewise.
232952284Sobrien	(TIME_IDENTIFIER_TIME): Likewise.
233052284Sobrien	(TIME_IDENTIFIER_FILEINFO): Likewise.
233152284Sobrien	(IMPLICIT_TYPENAME_P): Likewise.
233252284Sobrien	(set_identifier_local_value): Remove.
233352284Sobrien	(push_local_binding): New function.
233452284Sobrien	(push_class_binding): Likewise.
233552284Sobrien	* class.c (pushclass): Update comments; use push_class_binding.
233652284Sobrien	* decl.c (set_identifier_local_value_with_scope): Remove.
233752284Sobrien	(set_identifier_local_value): Likewise.
233852284Sobrien	(push_binding): New function.
233952284Sobrien	(pop_binding): Likewise.
234052284Sobrien	(binding_level): Update documentation.  Remove shadowed.
234152284Sobrien	(BINDING_LEVEL): New macro.
234252284Sobrien	(free_binding_nodes): New variable.
234352284Sobrien	(poplevel): Adjust for new name-lookup scheme.  Don't mess up
234452284Sobrien	BLOCK_VARs when doing for-scope extension.  Remove effectively
234552284Sobrien	dead code.
234652284Sobrien	(pushlevel_class): Tweak formatting.
234752284Sobrien	(poplevel_class): Adjust for new name-lookup scheme.
234852284Sobrien	(print_binding_level): Likewise.
234952284Sobrien	(store_bindings): Likewise.
235052284Sobrien	(pushdecl): Likewise.
235152284Sobrien	(pushdecl_class_level): Likewise.
235252284Sobrien	(push_class_level_binding): Likewise.
235352284Sobrien	(push_overloaded_decl): Update comments.  Adjust for new
235452284Sobrien	name-lookup scheme.
235552284Sobrien	(lookup_name_real): Likewise.
235652284Sobrien	(lookup_name_current_level): Likewise.
235752284Sobrien	(cp_finish_decl): Likewise.
235852284Sobrien	(require_complete_types_for_parms): Likewise.  Remove misleading
235952284Sobrien	#if 0'd code.
236052284Sobrien	(grok_parms): Likewise.  Don't call
236152284Sobrien	require_complete_types_for_parms here.
236252284Sobrien	(grok_ctor_properties): Don't treat templates as copy
236352284Sobrien	constructors.
236452284Sobrien	(grop_op_properties): Or as assignment operators.
236552284Sobrien	(start_function): Document.  Adjust for new name-lookup scheme.
236652284Sobrien	(finish_function): Likewise.
236752284Sobrien	* decl2.c (do_local_using_decl): Use push_local_binding.
236852284Sobrien	* lex.c (begin_definition_of_inclass_inline): New function, split
236952284Sobrien	out from ...
237052284Sobrien	(do_pending_inlines): Here, and ...
237152284Sobrien	(process_next_inline): Here.
237252284Sobrien	(get_time_identifier): Use TIME_IDENTIFIER_* macros.
237352284Sobrien	(init_filename_times): Likewise.
237452284Sobrien	(extract_interface_info): Likewise.
237552284Sobrien	(ste_typedecl_interface_info): Likewise.
237652284Sobrien	(check_newline): Likewise.
237752284Sobrien	(dump_time_statistics): Likewise.
237852284Sobrien	(handle_cp_pragma): Likewise.
237952284Sobrien	(do_identifier): Adjust for new name-lookup scheme.
238052284Sobrien	* parse.y (function_try_block): Return ctor_initializer_opt value.
238152284Sobrien	(fndef): Use it.
238252284Sobrien	(fn.defpen): Pass appropriate values to start_function.
238352284Sobrien	(pending_inline): Use functor_try_block value, and pass
238452284Sobrien	appropriate values to finish_function.
238552284Sobrien	* pt.c (is_member_template): Update documentation; remove handling
238652284Sobrien	of FUNCTION_DECLs.  As per name, this function should deal only in
238752284Sobrien	TEMPLATE_DECLs.
238852284Sobrien	(decl_template_parm_p): Change name of olddecl parameter to decl.
238952284Sobrien	(check_template_shadow): Adjust for new name-lookup scheme.
239052284Sobrien	(lookup_template_class): Likewise.
239152284Sobrien	(tsubst_decl): Tweak so as not to confuse member templates with
239252284Sobrien	copy constructors and assignment operators.
239352284Sobrien	(unify): Handle UNION_TYPEs.
239452284Sobrien	* ptree.c (print_lang_identifier): Adjust for new name-lookup scheme.
239552284Sobrien	(lang_print_xnode): Adjust for new name-lookup scheme.
239652284Sobrien	* typeck.c (mark_addressable): Likewise.
239752284Sobrien	(c_expand_return): Likewise.
239852284Sobrien
239952284Sobrien1998-12-08  Jason Merrill  <jason@yorick.cygnus.com>
240052284Sobrien
240152284Sobrien	* decl.c (grokdeclarator): Allow field with same name as class
240252284Sobrien	in extern "C".
240352284Sobrien
240452284Sobrien	* decl.c (lookup_name_real): Don't limit field lookup to types.
240552284Sobrien	* class.c (check_member_decl_is_same_in_complete_scope): No error
240652284Sobrien	if icv and x are the same.
240752284Sobrien	* lex.c (do_identifier): Tweak error message.
240852284Sobrien
240952284Sobrien1998-12-10  Mark Mitchell  <mark@markmitchell.com>
241052284Sobrien
241152284Sobrien	* decl.c (start_enum): Use push_obstacks, not
241252284Sobrien	end_temporary_allocation.
241352284Sobrien	(finish_enum): Call pop_obstacks.
241452284Sobrien
241552284Sobrien1998-12-10  Mark Mitchell  <mark@markmitchell.com>
241652284Sobrien
241752284Sobrien	* class.c (instantiate_type): Return error_mark_node rather than
241852284Sobrien	junk.
241952284Sobrien
242052284Sobrien1998-12-09  Mark Mitchell  <mark@markmitchell.com>
242152284Sobrien
242252284Sobrien	* cp-tree.h (most_specialized_instantiation): New function.
242352284Sobrien	(print_candidates): Likewise.
242452284Sobrien	* class.c (validate_lhs): Remove.
242552284Sobrien	(resolve_address_of_overloaded_function): New function, split out
242652284Sobrien	and then substantially reworked, from ...
242752284Sobrien	(instantiate_type): Use it.  Simplify.
242852284Sobrien	* cvt.c (convert_to_reference): Complain when caller has indicated
242952284Sobrien	that's the right thing to do.  Don't crash if instantiate_type
243052284Sobrien	fails.
243152284Sobrien	* pt.c: Substitute `parameters' for `paramters' throughout.
243252284Sobrien	(print_candidates): Don't make it static.
243352284Sobrien	(most_specialized_instantiation): Split out from ...
243452284Sobrien	(most_specialized): Here.
243552284Sobrien
243652284SobrienWed Dec  9 15:33:01 1998  Dave Brolley  <brolley@cygnus.com>
243752284Sobrien
243852284Sobrien	* lex.c (lang_init_options): Initialize cpplib.
243952284Sobrien	* decl2.c (parse_options,cpp_initialized): Removed.
244052284Sobrien	(lang_decode_option): Move initialization of cpplib to
244152284Sobrien	lang_init_options.
244252284Sobrien
244352284Sobrien1998-12-09  Mark Mitchell  <mark@markmitchell.com>
244452284Sobrien
244552284Sobrien	* decl.c (grokdeclarator): Update the name of the TEMPLATE_DECL, as
244652284Sobrien	well as the TYPE_DECL, when a typedef name is assigned to a
244752284Sobrien	previously anonymous type.
244852284Sobrien
244952284Sobrien1998-12-08  Andrew MacLeod  <amacleod@cygnus.com>
245052284Sobrien
245152284Sobrien	* cp/except.c (call_eh_info): Use __start_cp_handler instead of
245252284Sobrien	__cp_eh_info for getting the eh info pointer.  Add table_index to
245352284Sobrien	field list.
245452284Sobrien	(push_eh_cleanup): Don't increment 'handlers' data field.
245552284Sobrien	(process_start_catch_block): Don't set the 'caught' field.
245652284Sobrien
245752284Sobrien	* cp/exception.cc (CP_EH_INFO): New macro for getting the
245852284Sobrien	exception info pointer within library routines.
245952284Sobrien	(__cp_eh_info): Use CP_EH_INFO.
246052284Sobrien	(__start_cp_handler): Get exception info pointer, set caught field,
246152284Sobrien	and increment the handlers field.  Avoids this being done by handlers.
246252284Sobrien	(__uncatch_exception, __check_eh_spec): Use CP_EH_INFO macro.
246352284Sobrien	(uncaught_exception): Use CP_EH_INFO macro.
246452284Sobrien
246552284SobrienTue Dec  8 10:48:21 1998  Jeffrey A Law  (law@cygnus.com)
246652284Sobrien
246752284Sobrien	* Make-lang.in (cxxmain.o): Depend on $(DEMANGLE_H), not demangle.h
246852284Sobrien
246952284SobrienMon Dec  7 17:56:06 1998  Mike Stump  <mrs@wrs.com>
247052284Sobrien
247152284Sobrien	* lex.c (check_newline): Add support for \ as `natural'
247252284Sobrien	characters in file names in #line to be consistent with #include
247352284Sobrien	handling.  We support escape processing in the # 1 "..." version of
247452284Sobrien	the command.  See also support in cp/lex.c.
247552284Sobrien
247652284Sobrien1998-12-07  Zack Weinberg  <zack@rabi.phys.columbia.edu>
247752284Sobrien
247852284Sobrien	* cp/decl2.c: s/data/opts/ when initializing cpp_reader
247952284Sobrien	structure.
248052284Sobrien
248152284Sobrien1998-12-07  Jason Merrill  <jason@yorick.cygnus.com>
248252284Sobrien
248352284Sobrien	* decl.c (build_typename_type): Set DECL_ARTIFICIAL.
248452284Sobrien
248552284Sobrien	* error.c (dump_simple_decl): Also print namespace context.
248652284Sobrien	(dump_function_decl): Likewise.
248752284Sobrien
248852284Sobrien	* decl2.c (ambiguous_decl): Don't print old value if it's
248952284Sobrien	error_mark_node.
249052284Sobrien
249152284Sobrien	* decl.c (lookup_name_real): Fix handling of local types shadowed
249252284Sobrien	by a non-type decl.  Remove obsolete code.
249352284Sobrien	* cp-tree.h (DECL_FUNCTION_SCOPE_P): New macro.
249452284Sobrien
249552284Sobrien	* lang-options.h: Add -fpermissive.
249652284Sobrien	* decl2.c: Likewise.
249752284Sobrien	* cp-tree.h: Add flag_permissive.
249852284Sobrien	* decl.c (init_decl_processing): If neither -fpermissive or -pedantic
249952284Sobrien	were specified, set flag_pedantic_errors.
250052284Sobrien	* call.c (build_over_call): Turn dropped qualifier messages
250152284Sobrien	back into pedwarns.
250252284Sobrien	* cvt.c (convert_to_reference): Likewise.
250352284Sobrien	* typeck.c (convert_for_assignment): Likewise.
250452284Sobrien
250552284Sobrien1998-12-05  Jason Merrill  <jason@yorick.cygnus.com>
250652284Sobrien
250752284Sobrien	* decl2.c (coerce_new_type): Use same_type_p.
250852284Sobrien	(coerce_delete_type): Likewise.
250952284Sobrien
251052284Sobrien	* call.c (check_dtor_name): Return 1, not error_mark_node.
251152284Sobrien
251252284Sobrien1998-12-04  Jason Merrill  <jason@yorick.cygnus.com>
251352284Sobrien
251452284Sobrien	* lex.c (handle_cp_pragma): Disable #pragma interface/implementation
251552284Sobrien	if MULTIPLE_SYMBOL_SPACES.
251652284Sobrien
251752284Sobrien	* pt.c (check_template_shadow): New fn.
251852284Sobrien	* decl2.c (grokfield): Use it.
251952284Sobrien	* decl.c (pushdecl): Likewise.
252052284Sobrien	(pushdecl_class_level): Likewise.
252152284Sobrien	(start_method): Likewise.
252252284Sobrien	(xref_tag): Don't try to use 't' if we're defining.
252352284Sobrien
252452284Sobrien	* call.c (check_dtor_name): Just return an error_mark_node.
252552284Sobrien	* pt.c (lookup_template_class): Complain about using non-template here.
252652284Sobrien	* parse.y (apparent_template_type): Not here.
252752284Sobrien
252852284Sobrien	* pt.c (check_explicit_specialization): Complain about specialization
252952284Sobrien	with C linkage.
253052284Sobrien
253152284Sobrien	* lang-options.h: Add -f{no-,}implicit-inline-templates.
253252284Sobrien
253352284Sobrien	* pt.c (convert_nontype_argument): Don't assume that any integer
253452284Sobrien	argument is intended to be a constant-expression.
253552284Sobrien
253652284Sobrien1998-12-03  Mark Mitchell  <mark@markmitchell.com>
253752284Sobrien
253852284Sobrien	* class.c (handle_using_decl): Fix comment.  Don't lookup
253952284Sobrien	constructors in base classes.
254052284Sobrien	(validate_lhs): Fix typo in comment.
254152284Sobrien	* search.c (lookup_field_1): Don't return a USING_DECL.
254252284Sobrien
254352284Sobrien	* cp-tree.h (DECL_ACCESS): Improve documentation.
254452284Sobrien
254552284Sobrien	* decl.c (expand_static_init): Don't set the initialization-done
254652284Sobrien	flag until the initialization is done.
254752284Sobrien
254852284Sobrien1998-12-02  Mark Mitchell  <mark@markmitchell.com>
254952284Sobrien
255052284Sobrien	* decl2.c (validate_nonmember_using_decl): Complain about using
255152284Sobrien	declarations for class members.
255252284Sobrien
255352284Sobrien1998-11-29  Jason Merrill  <jason@yorick.cygnus.com>
255452284Sobrien
255552284Sobrien	* typeck2.c (process_init_constructor): Use same_type_p.
255652284Sobrien
255752284Sobrien	* decl.c (check_tag_decl): Don't warn about null decl inside a
255852284Sobrien	class.
255952284Sobrien
256052284Sobrien	* pt.c (unify, case OFFSET_TYPE): Pass down 'strict' rather than
256152284Sobrien	UNIFY_ALLOW_NONE.
256252284Sobrien	(convert_nontype_argument): Use TYPE_PTRMEMFUNC_FN_TYPE.
256352284Sobrien	(resolve_overloaded_unification): Strip baselinks.
256452284Sobrien
256552284SobrienFri Nov 27 13:07:23 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
256652284Sobrien
256752284Sobrien	* g++spec.c: Don't prototype xmalloc.
256852284Sobrien
256952284Sobrien1998-11-25  Jason Merrill  <jason@yorick.cygnus.com>
257052284Sobrien
257152284Sobrien	* except.c (expand_throw): Use TYPE_PTR_P to check for pointers.
257252284Sobrien
257352284Sobrien	* decl.c (check_tag_decl): Do complain about null friend decl at
257452284Sobrien	file scope.
257552284Sobrien
257652284Sobrien1998-11-25  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
257752284Sobrien
257852284Sobrien	* lex.c (make_lang_type): Clear the whole struct lang_type, not
257952284Sobrien	only the first multiple of sizeof (int).
258052284Sobrien
258152284Sobrien1998-11-24  Jason Merrill  <jason@yorick.cygnus.com>
258252284Sobrien
258352284Sobrien	* decl.c (start_decl): An explicit specialization of a static data
258452284Sobrien	member is only a definition if it has an initializer.
258552284Sobrien
258652284Sobrien	* except.c (expand_throw): Use cp_finish_decl for the throw temp.
258752284Sobrien	* cvt.c (build_up_reference): Pass DIRECT_BIND down into
258852284Sobrien	cp_finish_decl.
258952284Sobrien	* init.c (expand_default_init): Check for DIRECT_BIND instead of
259052284Sobrien	DECL_ARTIFICIAL.
259152284Sobrien
259252284Sobrien	* call.c (build_over_call): Use build_decl.
259352284Sobrien
259452284Sobrien	* except.c (expand_throw): Just use convert, not
259552284Sobrien	build_reinterpret_cast.
259652284Sobrien
259752284Sobrien	* lex.c (handle_generic_pragma): Use token_buffer.
259852284Sobrien
259952284Sobrien	* decl.c (check_tag_decl): Don't complain about null friend decl.
260052284Sobrien
260152284Sobrien1998-11-24  Dave Pitts  <dpitts@cozx.com>
260252284Sobrien
260352284Sobrien	* Make-lang.in (DEMANGLER_PROG): Move the output arguments to the
260452284Sobrien	first position.
260552284Sobrien	* lex.c (check_newline): Use ISALPHA.
260652284Sobrien	(readescape): Use ISGRAPH.
260752284Sobrien	(yyerror): Use ISGRAPH.
260852284Sobrien
260952284Sobrien1998-11-24  Nathan Sidwell  <nathan@acm.org>
261052284Sobrien
261152284Sobrien	* search.c (get_abstract_virtuals): Do not use initial
261252284Sobrien	CLASSTYPE_ABSTRACT_VIRTUALS.
261352284Sobrien	* typeck2.c (abstract_virtuals_error): Show location of abstract
261452284Sobrien	declaration.
261552284Sobrien	* call.c (build_new_method_call): Use
261652284Sobrien	CLASSTYPE_ABSTRACT_VIRTUAL, rather than recalculate.
261752284Sobrien	* class.c (finish_struct_bits): Don't bother working out whether
261852284Sobrien	get_abstract_virtuals will do anything, just do it.
261952284Sobrien
262052284Sobrien1998-11-24  Graham  <grahams@rcp.co.uk>
262152284Sobrien
262252284Sobrien	* typeck.c (build_component_ref): Remove unused statement.
262352284Sobrien
262452284Sobrien1998-11-24  Jason Merrill  <jason@yorick.cygnus.com>
262552284Sobrien
262652284Sobrien	* class.c (add_method): Catch invalid overloads.
262752284Sobrien
262852284Sobrien	* class.c (add_method): Build up OVERLOADs properly for conversion ops.
262952284Sobrien	* search.c (lookup_conversions): Handle getting real OVERLOADs.
263052284Sobrien	(add_conversions): Likewise.  Revert last change.
263152284Sobrien	* call.c (add_conv_candidate): Pass totype to add_candidate instead
263252284Sobrien	of fn.  Don't add a new candidate if the last one was for the same
263352284Sobrien	type.
263452284Sobrien	(print_z_candidates): Handle getting a type as a function.
263552284Sobrien	(joust): If we got two conversion candidates to the same type,
263652284Sobrien	just pick one.
263752284Sobrien	(build_object_call): Lose 'templates'.
263852284Sobrien	(build_user_type_conversion_1): Handle getting real OVERLOADs.
263952284Sobrien
264052284Sobrien1998-11-23  Jason Merrill  <jason@yorick.cygnus.com>
264152284Sobrien
264252284Sobrien	* typeck2.c (process_init_constructor): If there are elements
264352284Sobrien	that don't have initializers and they need to have constructors
264452284Sobrien	run, supply them with initializers.
264552284Sobrien
264652284Sobrien	* class.c (finish_struct_1): A class with a 0-width bitfield is
264752284Sobrien	still empty.
264852284Sobrien
264952284Sobrien1998-11-23  Mark Mitchell  <mark@markmitchell.com>
265052284Sobrien
265152284Sobrien	* pt.c (instantiate_class_template): Don't try to figure out what
265252284Sobrien	specialization to use for a partial instantiation.  Correct
265352284Sobrien	typos in a couple of comments.  Avoid calling uses_template_parms
265452284Sobrien	multiple times.
265552284Sobrien
265652284Sobrien1998-11-23  Benjamin Kosnik  <bkoz@cygnus.com>
265752284Sobrien
265852284Sobrien	* method.c (process_overload_item): Add call to
265952284Sobrien	build_mangled_C9x_name for intTI_type_nodes.
266052284Sobrien	(build_mangled_C9x_name): Add prototype, define.
266152284Sobrien	* decl.c (init_decl_processing): Add names for
266252284Sobrien	TImode_type_node.
266352284Sobrien
266452284Sobrien1998-11-23  Jason Merrill  <jason@yorick.cygnus.com>
266552284Sobrien
266652284Sobrien	* parse.y (named_class_head): Update CLASSTYPE_DECLARED_CLASS.
266752284Sobrien
266852284Sobrien	* class.c (finish_struct_1): Set things up for 0-width bitfields
266952284Sobrien	like we do for others.
267052284Sobrien
267152284Sobrien	* decl.c (check_tag_decl): New fn.
267252284Sobrien	(shadow_tag): Split out from here.
267352284Sobrien	* decl2.c (grok_x_components): Call it.
267452284Sobrien
267552284Sobrien1998-11-22  Jason Merrill  <jason@yorick.cygnus.com>
267652284Sobrien
267752284Sobrien	* decl.c: Lose warn_about_return_type.
267852284Sobrien	(grokdeclarator): Always complain about implicit int, except for
267952284Sobrien	`main () { ... }'.
268052284Sobrien
268152284Sobrien	* decl.c (tag_name): New fn.
268252284Sobrien	(xref_tag): Complain about using typedef-name after class-key.
268352284Sobrien
268452284Sobrien	* init.c (expand_vec_init): Also keep going if from_array.
268552284Sobrien
268652284Sobrien	* tree.c (is_overloaded_fn): Also handle the output of
268752284Sobrien	build_offset_ref.
268852284Sobrien
268952284Sobrien	* decl.c (grokdeclarator): Use constructor_name when comparing
269052284Sobrien	field name against enclosing class.
269152284Sobrien	* class.c (finish_struct_anon): Likewise.
269252284Sobrien
269352284Sobrien1998-11-22  Mark Mitchell  <mark@markmitchell.com>
269452284Sobrien
269552284Sobrien	* decl.c (poplevel): Remove code to handle KEEP == 2.
269652284Sobrien	(finish_function): Don't confuse BLOCK-order when
269752284Sobrien	processing a destructor.
269852284Sobrien
269952284Sobrien1998-11-21  Jason Merrill  <jason@yorick.cygnus.com>
270052284Sobrien
270152284Sobrien	* decl.c (require_complete_types_for_parms): Call layout_decl
270252284Sobrien	after we've completed the type.
270352284Sobrien
270452284Sobrien1998-11-21  Martin von L�wis  <loewis@informatik.hu-berlin.de>
270552284Sobrien
270652284Sobrien	* decl2.c (validate_nonmember_using_decl): Allow using templates
270752284Sobrien	from the global namespace.
270852284Sobrien
270952284Sobrien1998-11-21  Jason Merrill  <jason@yorick.cygnus.com>
271052284Sobrien
271152284Sobrien	Handle specifying template args to member function templates.
271252284Sobrien	* tree.c (build_overload): Always create an OVERLOAD for a template.
271352284Sobrien	* search.c (add_conversions): Handle finding an OVERLOAD.
271452284Sobrien	* decl2.c (check_classfn): Likewise.
271552284Sobrien	* lex.c (identifier_type): See through a baselink.
271652284Sobrien	* parse.y (do_id): Don't call do_identifier if we got a baselink.
271752284Sobrien	* class.c (instantiate_type, case TREE_LIST): Recurse.
271852284Sobrien
271952284Sobrien	* decl.c (grokdeclarator): Allow a boolean constant for array
272052284Sobrien	bounds, odd as that sounds.
272152284Sobrien
272252284Sobrien	* pt.c (unify): Be more strict about non-type parms, except for
272352284Sobrien	array bounds.
272452284Sobrien	(UNIFY_ALLOW_INTEGER): New macro.
272552284Sobrien
272652284Sobrien1998-11-19  Manfred Hollstein  <manfred@s-direktnet.de>
272752284Sobrien
272852284Sobrien	* Make-lang.in (mandir): Replace all uses of $(mandir) by $(man1dir).
272952284Sobrien
273052284Sobrien1998-11-19  Jason Merrill  <jason@yorick.cygnus.com>
273152284Sobrien
273252284Sobrien	* semantics.c (begin_class_definition): Call
273352284Sobrien	maybe_process_partial_specialization before push_template_decl.
273452284Sobrien	Don't call push_template_decl for a specialization.
273552284Sobrien	* search.c (lookup_field): Do return a member template class.
273652284Sobrien	* decl2.c (handle_class_head): Handle member template classes.
273752284Sobrien
273852284Sobrien	* decl.c (grokdeclarator): A parm type need not be complete.
273952284Sobrien
274052284Sobrien	* pt.c (convert_nontype_argument): Fix thinko.
274152284Sobrien
274252284Sobrien1998-11-18  Mark Mitchell  <mark@markmitchell.com>
274352284Sobrien
274452284Sobrien	* cp-tree.h (PTRMEM_CST_CLASS): Fix typo.
274552284Sobrien	(global_delete_fndecl): New variable.
274652284Sobrien	* decl.c (global_delete_fndecl): Define it.
274752284Sobrien	(init_decl_processing): Set it.
274852284Sobrien	* init.c (build_builtin_delete_call): Use it.
274952284Sobrien	* tree.c (mapcar): Recursively call mapcar for the type of EXPR
275052284Sobrien	nodes.
275152284Sobrien
275252284Sobrien1998-11-18  Jason Merrill  <jason@yorick.cygnus.com>
275352284Sobrien
275452284Sobrien	* decl.c (cplus_expand_expr_stmt): Always complain about unresolved
275552284Sobrien	type.
275652284Sobrien
275752284Sobrien	* tree.c (lvalue_p_1): An INDIRECT_REF to a function is an lvalue.
275852284Sobrien	* call.c (build_object_call): Also support references to functions.
275952284Sobrien	* typeck.c (convert_for_initialization): Don't decay a function
276052284Sobrien	if the target is a reference to function.
276152284Sobrien
276252284Sobrien	* search.c (add_conversions): Get all the overloads from a class.
276352284Sobrien
276452284Sobrien	* decl.c (grok_ctor_properties): Complain about any constructor
276552284Sobrien	that will take a single arg of the class type by value.
276652284Sobrien
276752284Sobrien	* typeck2.c (build_functional_cast): Can't create objects of
276852284Sobrien	abstract classes this way.
276952284Sobrien	* cvt.c (ocp_convert): Likewise.
277052284Sobrien
277152284Sobrien	* decl.c (grokfndecl): Member functions of local classes are not
277252284Sobrien	public.
277352284Sobrien
277452284Sobrien1998-11-18  Mark Mitchell  <mark@markmitchell.com>
277552284Sobrien
277652284Sobrien	* Make-lang.in (cc1plus): Add dependency on hash.o.
277752284Sobrien
277852284Sobrien1998-11-18  Jason Merrill  <jason@yorick.cygnus.com>
277952284Sobrien
278052284Sobrien	* search.c (get_abstract_virtuals): Complain about virtuals with
278152284Sobrien	no final overrider.
278252284Sobrien	* typeck2.c (abstract_virtuals_error): Remove handling for virtuals
278352284Sobrien	with no final overrider.
278452284Sobrien	* class.c (override_one_vtable): Don't set DECL_ABSTRACT_VIRTUAL_P
278552284Sobrien	on virtuals with no final overrider.
278652284Sobrien
278752284Sobrien	* lex.c (reinit_parse_for_block): Add a space after the initial ':'.
278852284Sobrien
278952284Sobrien	* class.c (finish_struct_1): Don't remove zero-width bit-fields until
279052284Sobrien	after layout_type.
279152284Sobrien
279252284Sobrien	* friend.c (do_friend): Don't set_mangled_name_for_decl.
279352284Sobrien
279452284Sobrien	* class.c (finish_struct_anon): Complain about non-fields.
279552284Sobrien	* decl2.c (build_anon_union_vars): Likewise.
279652284Sobrien
279752284Sobrien	* decl.c (grokdeclarator): Normal data members can't have the same
279852284Sobrien	name as the class, either.
279952284Sobrien	* class.c (finish_struct_anon): Neither can members of an
280052284Sobrien	anonymous union.
280152284Sobrien
280252284Sobrien1998-11-17  Mark Mitchell  <mark@markmitchell.com>
280352284Sobrien
280452284Sobrien	* cp-tree.h (TYPE_ALIAS_SET): Document language-dependent uses.
280552284Sobrien	(TYPE_BINFO): Likewise.
280652284Sobrien	(IS_AGGR_TYPE): Tweak.
280752284Sobrien	(SET_IS_AGGR_TYPE): New macro.
280852284Sobrien	(CLASS_TYPE_P): Tweak.
280952284Sobrien	(lang_type): Group mark bitfields together.  Remove linenum.
281052284Sobrien	(CLASSTYPE_SOURCE_LINE): Remove macro.
281152284Sobrien	(CLASSTYPE_MARKED_N): New macro.
281252284Sobrien	(SET_CLASSTYPE_MARKED_N): Likewise.
281352284Sobrien	(CLEAR_CLASSTYPE_MARKED_N): Likewise.
281452284Sobrien	(CLASS_TYPE_MARKED_*): Use them.
281552284Sobrien	(SET_CLASSTYPE_MARKED_*): Likewise.
281652284Sobrien	(CLEAR_CLASSTYPE_MARKED_*): Likewise.
281752284Sobrien	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise.
281852284Sobrien	(TYPE_TEMPLATE_INFO): Handle TEMPLATE_TEMPLATE_PARMs as well.
281952284Sobrien	(TYPENAME_TYPE_FULLNAME): Use TYPE_BINFO rather than CLASSTYPE_SIZE.
282052284Sobrien	* class.c (class_cache_obstack): New variable.
282152284Sobrien	(class_cache_firstobj): Likewise.
282252284Sobrien	(finish_struct): Don't set CLASSTYPE_SOURCE_LINE.
282352284Sobrien	(pushclass): Free the cache, when appropriate.
282452284Sobrien	(popclass): Tidy.
282552284Sobrien	(maybe_push_cache_obstack): Use class_cache_obstack.
282652284Sobrien	* decl.c (include hash.h).
282752284Sobrien	(typename_hash): New function.
282852284Sobrien	(typename_compare): Likewise.
282952284Sobrien	(build_typename_type): Check the hash table to avoid creating
283052284Sobrien	duplicates.
283152284Sobrien	(build_ptrmemfunc_type): Use SET_IS_AGGR_TYPE.
283252284Sobrien	(grokdeclarator): Use CLASS_TYPE_P.
283352284Sobrien	(xref_basetypes): Likewise.
283452284Sobrien	(start_function): Likewise.  Don't put current_class_ref on the
283552284Sobrien	permanent obstack.
283652284Sobrien	* error.c (dump_type_real): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO
283752284Sobrien	and TYPE_TI_ARGS.
283852284Sobrien	* lex.c (note_got_semicolon): Use CLASS_TYPE_P.
283952284Sobrien	(make_lang_type): Don't create TYPE_LANG_SPECIFIC and associated
284052284Sobrien	fields for types other than class types.  Do clear TYPE_ALIAS_SET
284152284Sobrien	for types other than class types, though.
284252284Sobrien	* method.c (build_overload_identifier): Use CLASS_TYPE_P and
284352284Sobrien	TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
284452284Sobrien	* pt.c (process_template_parm): Don't set
284552284Sobrien	CLASSTYPE_GOT_SEMICOLON.
284652284Sobrien	(lookup_template_class): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
284752284Sobrien	Coerce arguments on the momentary obstack.
284852284Sobrien	(for_each_template_parm): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
284952284Sobrien	(instantiate_class_template): Calculate template arguments on the
285052284Sobrien	momentary obstack.  Tidy.
285152284Sobrien	(tsubst_template_arg_vector): Use make_temp_vec.
285252284Sobrien	(tsubst_aggr_type): Put template arguments on the momentary
285352284Sobrien	obstack.
285452284Sobrien	(tsubst_decl): Likewise.
285552284Sobrien	(tsubst): Copy the array bounds index to the permanent obstack
285652284Sobrien	before building index types.  Use new macros.
285752284Sobrien	(unify): Use new macros.
285852284Sobrien	(do_type_instantiation): Likewise.
285952284Sobrien	* search.c (lookup_fnfields_1): Use new macros.
286052284Sobrien	(dfs_pushdecls): Build envelopes on the cache obstack.
286152284Sobrien	(dfs_compress_decls): Use new macros.
286252284Sobrien	(push_class_decls): Build on the cache obstack.
286352284Sobrien	* semantics.c (finish_typeof): Don't set CLASSTYPE_GOT_SEMICOLON.
286452284Sobrien	* sign.c (build_signature_pointer_or_reference_type): Use
286552284Sobrien	SET_IS_AGGR_TYPE.
286652284Sobrien	* tree.c (make_binfo): Check CLASS_TYPE_P.
286752284Sobrien	(copy_template_template_parm): Adjust.
286852284Sobrien	(make_temp_vec): Use push_expression_obstack.
286952284Sobrien	* typeck.c (complete_type): Use new macros.
287052284Sobrien	(comptypes): Likewise.
287152284Sobrien
287252284Sobrien1998-11-17  Jason Merrill  <jason@yorick.cygnus.com>
287352284Sobrien
287452284Sobrien	* pt.c (tsubst): Add diagnostics for invalid array, reference
287552284Sobrien	and pointer to member types.
287652284Sobrien
287752284Sobrien1998-11-16  Jason Merrill  <jason@yorick.cygnus.com>
287852284Sobrien
287952284Sobrien	* typeck2.c (my_friendly_abort): Don't fatal twice in a row.
288052284Sobrien
288152284Sobrien	* typeck.c (c_expand_start_case): Use build_expr_type_conversion.
288252284Sobrien	Simplify.
288352284Sobrien
288452284Sobrien	* parse.y (structsp): Fix cut-and-paste error.
288552284Sobrien
288652284Sobrien	* init.c (build_new): Complain about non-integral size.
288752284Sobrien
288852284Sobrien	* parse.y (unary_expr): Complain about defining types in sizeof.
288952284Sobrien
289052284Sobrien	* typeck.c (expr_sizeof): Complain about sizeof an overloaded fn.
289152284Sobrien
289252284Sobrien	* rtti.c (build_x_typeid): Complain about typeid without
289352284Sobrien	including <typeinfo>.
289452284Sobrien	(get_typeid): Likewise.  Complain about typeid of incomplete type.
289552284Sobrien	(get_tinfo_fn_dynamic): Likewise.
289652284Sobrien	(get_typeid_1): Not static anymore.
289752284Sobrien	* except.c (build_eh_type_type): Use get_typeid_1.
289852284Sobrien
289952284Sobrien	* rtti.c (build_dynamic_cast_1): Give errors for dynamic_cast to
290052284Sobrien	ambiguous or private bases.  Fix warning for reference cast.
290152284Sobrien
290252284Sobrien1998-11-16  Mark Mitchell  <mark@markmitchell.com>
290352284Sobrien
290452284Sobrien	* cp-tree.h (DECL_TEMPLATE_INSTANTIATED): New macro.
290552284Sobrien	* decl.c (duplicate_decls): Remove special-case code to deal with
290652284Sobrien	template friends, and just do the obvious thing.
290752284Sobrien	* pt.c (register_specialization): Tweak for clarity, and also to
290852284Sobrien	clear DECL_INITIAL for an instantiation before it is merged with a
290952284Sobrien	specialization.
291052284Sobrien	(check_explicit_specialization): Fix indentation.
291152284Sobrien	(tsubst_friend_function): Handle both definitions in friend
291252284Sobrien	declaration and outside friend declarations.
291352284Sobrien	(tsubst_decl): Don't clear DECL_INITIAL for an instantiation.
291452284Sobrien	(regenerate_decl_from_template): Tweak accordingly.
291552284Sobrien	(instantiate_decl): Likewise.
291652284Sobrien
291752284Sobrien1998-11-16  Jason Merrill  <jason@yorick.cygnus.com>
291852284Sobrien
291952284Sobrien	* decl.c (cplus_expand_expr_stmt): Promote warning about naked
292052284Sobrien	member function reference to error.
292152284Sobrien	* cvt.c (ocp_convert): Complain about converting an overloaded
292252284Sobrien	function to void.
292352284Sobrien
292452284Sobrien	* init.c (build_offset_ref): Just return a lone static member
292552284Sobrien	function.
292652284Sobrien
292752284Sobrien	* decl.c (cp_finish_decl): Only complain about real CONSTRUCTORs,
292852284Sobrien	not internal ones.
292952284Sobrien
293052284Sobrien	* typeck.c (build_binary_op_nodefault): Improve error handling.
293152284Sobrien
293252284Sobrien	* decl.c (grokfndecl): Complain about making 'main' a template.
293352284Sobrien
293452284Sobrien	* typeck.c (string_conv_p): Don't convert from wchar_t[] to char*.
293552284Sobrien
293652284Sobrien	* call.c (build_method_call): Handle a BIT_NOT_EXPR around a
293752284Sobrien	TYPE_DECL in a template.
293852284Sobrien
293952284Sobrien1998-11-15  Jason Merrill  <jason@yorick.cygnus.com>
294052284Sobrien
294152284Sobrien	* typeck2.c (my_friendly_abort): Add URL in the other case, too.
294252284Sobrien
294352284Sobrien	* decl.c (struct cp_function): Add named_label_uses.
294452284Sobrien	(push_cp_function_context): Save it.
294552284Sobrien	(pop_cp_function_context): Restore it.
294652284Sobrien	(define_label): Also complain about jumping into the scope of
294752284Sobrien	non-POD objects that don't have constructors.
294852284Sobrien	* tree.c (pod_type_p): New fn.
294952284Sobrien
295052284Sobrien	* pt.c (instantiate_class_template): Clear TYPE_BEING_DEFINED sooner.
295152284Sobrien	* rtti.c (synthesize_tinfo_fn): Call import_export_decl here.
295252284Sobrien	(get_tinfo_fn): Not here.
295352284Sobrien	* repo.c (repo_get_id): Abort if we get called for an incomplete
295452284Sobrien	type.
295552284Sobrien
295652284Sobrien1998-11-13  Mark Mitchell  <mark@markmitchell.com>
295752284Sobrien
295852284Sobrien	* except.c (expand_throw): Make sure first argument to
295952284Sobrien	__cp_push_exception is of type `void*' to avoid spurious error
296052284Sobrien	messages.
296152284Sobrien
296252284Sobrien1998-11-11  Jason Merrill  <jason@yorick.cygnus.com>
296352284Sobrien
296452284Sobrien	* pt.c (try_one_overload): Take orig_targs again.  Only check for
296552284Sobrien	mismatches against them; we don't care what a previous call found.
296652284Sobrien	(resolve_overloaded_unification): Adjust.
296752284Sobrien
296852284Sobrien	* search.c (lookup_field): Don't return anything for a non-type
296952284Sobrien	field from a dependent type.
297052284Sobrien	* decl.c (grokdeclarator): Resolve SCOPE_REFs of the current class
297152284Sobrien	in an array declarator.
297252284Sobrien	(start_decl): Push into the class before looking for the field.
297352284Sobrien
297452284Sobrien1998-11-08  Mark Mitchell  <mark@markmitchell.com>
297552284Sobrien
297652284Sobrien	* method.c (build_overload_value): Handle REFERENCE_TYPE.
297752284Sobrien
297852284Sobrien1998-11-08  Martin von L�wis  <loewis@informatik.hu-berlin.de>
297952284Sobrien
298052284Sobrien	* decl.c (grokdeclarator): Allow namespace-scoped members if they
298152284Sobrien	are friends.
298252284Sobrien
298352284Sobrien1998-11-08  Jason Merrill  <jason@yorick.cygnus.com>
298452284Sobrien
298552284Sobrien	* pt.c (tsubst_decl): Don't mess with the global value of an
298652284Sobrien	un-mangled DECL_ASSEMBLER_NAME.
298752284Sobrien
298852284Sobrien1998-11-03  Christopher Faylor  <cgf@cygnus.com>
298952284Sobrien
299052284Sobrien	* decl.c (init_decl_processing): Remove CYGWIN conditional
299152284Sobrien	since CYGWIN is now able to deal with trapping signals.
299252284Sobrien
299352284SobrienSat Nov  7 15:48:02 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
299452284Sobrien
299552284Sobrien	* cp-tree.h: Don't include gansidecl.h.
299652284Sobrien	* exception.cc: Include gansidecl.h (since we don't include config.h)
299752284Sobrien	* g++spec.c: Don't include gansidecl.h.
299852284Sobrien
299952284Sobrien1998-11-06  Mark Mitchell  <mark@markmitchell.com>
300052284Sobrien
300152284Sobrien	* cp-tree.h (lang_decl_flags): Add defined_in_class.  Decrease
300252284Sobrien	size of dummy.
300352284Sobrien	(DECL_DEFINED_IN_CLASS_P): New macro.
300452284Sobrien	(TEMPLATE_PARMS_FOR_INLINE): Document.
300552284Sobrien	(check_static_variable_definition): New function.
300652284Sobrien	* decl.c (cp_finish_decl): Set DECL_DEFINED_IN_CLASS_P, if
300750397Sobrien	appropriate.
300818334Speter	(check_static_variable_definition): Split out from ...
300950397Sobrien	(grokdeclarator): Here.
301018334Speter	* pt.c (check_default_tmpl_args): New function, split out from ...
301152284Sobrien	(push_template_decl_real): Here.
301252284Sobrien	(instantiate_template): Fix comment.
301352284Sobrien
301452284Sobrien1998-11-04  Mark Mitchell  <mark@markmitchell.com>
301552284Sobrien
301652284Sobrien	* cp-tree.h (CP_TYPE_CONST_P): Make {0,1}-valued.
301752284Sobrien	(CP_TYPE_VOLATILE_P): Likewise.
301852284Sobrien	(CP_TYPE_RESTRICT_P): Likewise.
301952284Sobrien
302052284Sobrien1998-11-03  Mark Mitchell  <mark@markmitchell.com>
302152284Sobrien
302252284Sobrien	* pt.c (tsubst): Use build_index_type, not build_index_2_type.
302352284Sobrien
302452284Sobrien1998-11-02  Jason Merrill  <jason@yorick.cygnus.com>
302552284Sobrien
302652284Sobrien	* class.c (instantiate_type): Be more helpful.
302752284Sobrien
302852284Sobrien	* decl2.c (import_export_decl): Call import_export_class.
302952284Sobrien
303052284Sobrien	* cp-tree.h (EMPTY_CONSTRUCTOR_P): Check !TREE_HAS_CONSTRUCTOR.
303152284Sobrien	* decl2.c (build_expr_from_tree): Propagate TREE_HAS_CONSTRUCTOR.
303252284Sobrien	* pt.c (tsubst_copy): Likewise.
303352284Sobrien
303452284Sobrien1998-11-02  Mark Mitchell  <mark@markmitchell.com>
303552284Sobrien
303652284Sobrien	* init.c (expand_vec_init): Fix off-by-one error.
303752284Sobrien
303852284Sobrien1998-11-02  Alexandre Oliva  <oliva@dcc.unicamp.br>
303952284Sobrien
304052284Sobrien	* parse.y (apparent_template_type): New type.
304152284Sobrien	(named_complex_class_head_sans_basetype): Use it.
304252284Sobrien	* Makefile.in (CONFLICTS): One new conflict.
304352284Sobrien	* parse.c: Regenerated.
304452284Sobrien
304552284Sobrien1998-11-01  Mark Mitchell  <mark@markmitchell.com>
304652284Sobrien
304752284Sobrien	* cp-tree.h (COMPARE_STRICT): New macro.
304852284Sobrien	(COMPARE_BASE): Likewise.
304952284Sobrien	(COMPARE_RELAXED): Likewise.
305052284Sobrien	(COMPARE_REDECLARATION): Likewise.
305152284Sobrien	(same_type_p): Likewise.
305252284Sobrien	(same_or_base_type_p): Likewise.
305352284Sobrien	* call.c (standard_conversion): Use them, in place of comptypes
305452284Sobrien	with numeric arguments.
305552284Sobrien	(reference_binding): Likewise.
305652284Sobrien	(convert_like): Likewise.
305752284Sobrien	(build_over_call): Likewise.
305852284Sobrien	(is_subseq): Likewise.
305952284Sobrien	(is_properly_derived_from): Likewise.
306052284Sobrien	(compare_ics): Likewise.
306152284Sobrien	(joust): Likewise.
306252284Sobrien	* class.c (delete_duplicate_fields_1): Likewise.
306352284Sobrien	(resolves_to_fixed_type_p): Likewise.
306452284Sobrien	(instantiate_type): Likewise.  Remove #if 0'd code.
306552284Sobrien	* decl.c (decls_match): Likewise.  Use COMPARE_REDECLARATION here.
306652284Sobrien	(pushdecl): Likewise.
306752284Sobrien	(lookup_name_real): Likewise.
306852284Sobrien	(grokdeclarator): Likewise.  Check for illegal array declarations.
306950397Sobrien	(grokparms): Likewise.
307018334Speter	(grok_op_properties): Likewise.
307150397Sobrien	* decl2.c (check_classfn): Likewise.
307218334Speter	* friend.c (is_friend): Likewise.
307352284Sobrien	(make_friend_class): Likewise.
307452284Sobrien	* init.c (expand_aggr_init): Likewise.
307552284Sobrien	(expand_vec_init): Likewise.
307652284Sobrien	* pt.c (is_member_template_class): Remove declaration.
307752284Sobrien	(is_specialization_of): Use COMPARE_* and new macros.
307852284Sobrien	(comp_template_parms): Likewise.
307918334Speter	(convert_nontype_argument): Likewise.
308052284Sobrien	(coerce_template_template_parms): Likewise.
308150397Sobrien	(template_args_equal): Likewise.
308250397Sobrien	(lookup_template_class): Likewise.
308352284Sobrien	(type_unification_real): Likewise.
308452284Sobrien	(unify): Likewise.
308518334Speter	(get_bindings_real): Likewise.
308652284Sobrien	* search.c (covariant_return_p): Likewise.
308752284Sobrien	(get_matching_virtual): Likewise.
308852284Sobrien	* sig.c (match_method_types): Likewise.
308952284Sobrien	* tree.c (vec_binfo_member): Likewise.
309052284Sobrien	(cp_tree_equal): Likewise.
309152284Sobrien	* typeck.c (common_type): Likewise.
309252284Sobrien	(comp_array_types): Likewise.  Get issues involving unknown array
309352284Sobrien	bounds right.
309452284Sobrien	(comptypes): Update comments.  Use new flags.
309552284Sobrien	(comp_target_types): Use new macros.
309652284Sobrien	(compparms): Likewise.
309752284Sobrien	(comp_target_parms): Likewise.
309852284Sobrien	(string_conv_p): Likewise.
309952284Sobrien	(build_component_ref): Likewise.
310052284Sobrien	(build_indirect_ref): Likewise.
310152284Sobrien	(build_conditional_expr): Likewise.
310252284Sobrien	(build_static_cast): Likewise.
310352284Sobrien	(build_reinterpret_cast): Likewise.
310450397Sobrien	(build_const_cast): Likewise.
310518334Speter	(build_modify_expr): Likewise.
310652284Sobrien	(convert_for_assignment): Likewise.
310718334Speter	(comp_ptr_ttypes_real): Likewise.
310852284Sobrien	(ptr_reasonably_similar): Likewise.
310952284Sobrien	(comp_ptr_ttypes_const): Likewise.
311052284Sobrien
311152284Sobrien1998-10-31  Jason Merrill  <jason@yorick.cygnus.com>
311252284Sobrien
311352284Sobrien	* rtti.c (build_dynamic_cast_1): Fix cut-and-paste error.
311452284Sobrien
311552284Sobrien1998-10-30  Mark Mitchell  <mark@markmitchell.com>
311652284Sobrien
311752284Sobrien	* decl2.c (delete_sanity): Pass integer_zero_node, not
311852284Sobrien	integer_two_node, to build_vec_delete.
311952284Sobrien	* init.c (build_array_eh_cleanup): Remove.
312052284Sobrien	(expand_vec_init_try_block): New function.
312152284Sobrien	(expand_vec_init_catch_clause): Likewise.
312252284Sobrien	(build_vec_delete_1): Don't deal with case that auto_delete_vec
312352284Sobrien	might be integer_two_node anymore.
312452284Sobrien	(expand_vec_init): Rework for initialization-correctness and
312552284Sobrien	exception-correctness.
312652284Sobrien	* typeck2.c (process_init_constructor): Make mutual exclusivity
312752284Sobrien	of cases more obvious.
312852284Sobrien
312952284Sobrien1998-10-29  Jason Merrill  <jason@yorick.cygnus.com>
313052284Sobrien
313152284Sobrien	* decl.c (lookup_name_real): OK, only warn if not lexing.
313252284Sobrien	Simplify suggested fix.
313352284Sobrien
313452284Sobrien	* cp-tree.h (IDENTIFIER_MARKED): New macro.
313552284Sobrien	* search.c (lookup_conversions): Use breadth_first_search.
313652284Sobrien	(add_conversions): Avoid adding two conversions to the same type.
313752284Sobrien	(breadth_first_search): Work with base binfos, rather
313852284Sobrien	than binfos and base indices.
313952284Sobrien	(get_virtual_destructor): Adjust.
314052284Sobrien	(tree_has_any_destructor_p): Adjust.
314152284Sobrien	(get_matching_virtual): Adjust.
314252284Sobrien
314352284Sobrien	* pt.c (push_template_decl_real): Generalize check for incorrect
314452284Sobrien	number of template parms.
314552284Sobrien	(is_member_template_class): #if 0.
314652284Sobrien
314752284Sobrien1998-10-29  Richard Henderson  <rth@cygnus.com>
314852284Sobrien
314952284Sobrien	* Makefile.in (cc1plus): Put CXX_OBJS, and thence @extra_cxx_objs@,
315052284Sobrien	last.
315152284Sobrien
315252284Sobrien1998-10-28  Zack Weinberg  <zack@rabi.phys.columbia.edu>
315352284Sobrien
315450397Sobrien	* lex.c: Call check_newline from lang_init always.  After
315518334Speter	calling cpp_start_read, set yy_cur and yy_lim to read from the
315652284Sobrien	cpplib token buffer.
315752284Sobrien
315850397Sobrien1998-10-28  Jason Merrill  <jason@yorick.cygnus.com>
315918334Speter
316052284Sobrien	* class.c (instantiate_type): Don't consider templates for a normal
316152284Sobrien	match.
316252284Sobrien
316352284Sobrien	* class.c (finish_struct_1): Don't complain about non-copy
316452284Sobrien	assignment ops in union members.
316552284Sobrien
316652284Sobrien	* class.c (build_vtable): Don't pass at_eof to import_export_vtable.
316752284Sobrien	(prepare_fresh_vtable): Likewise.
316852284Sobrien	(finish_struct_1): Don't call import_export_class.
316952284Sobrien	* decl2.c (finish_vtable_vardecl): Do import/export stuff.
317052284Sobrien	(finish_prevtable_vardecl): Lose.
317152284Sobrien	(finish_file): Don't call it.
317252284Sobrien	* pt.c (instantiate_class_template): Likewise.
317352284Sobrien	* cp-tree.h: Remove it.
317452284Sobrien
317552284Sobrien	* init.c (build_delete): Reset TYPE_HAS_DESTRUCTOR here.
317652284Sobrien	* decl.c (finish_function): Not here.
317752284Sobrien	(start_function): Do set DECL_INITIAL.
317852284Sobrien
317952284Sobrien	* pt.c (push_template_decl_real): Complain about default template
318052284Sobrien	args for enclosing classes.
318152284Sobrien
318252284Sobrien	* call.c (add_function_candidate): Treat conversion functions
318352284Sobrien	as coming from the argument's class.
318452284Sobrien	* cp-tree.h (DECL_CONV_FN_P): New fn.
318552284Sobrien	(DECL_DESTRUCTOR_P): Also check DECL_LANGUAGE.
318652284Sobrien	* class.c (add_method): Use DECL_CONV_FN_P.
318752284Sobrien	* decl2.c (check_classfn): Likewise.
318852284Sobrien	* error.c (dump_function_name): Likewise.
318952284Sobrien	(dump_function_decl): Likewise.
319052284Sobrien	* pt.c (fn_type_unification): Likewise.
319152284Sobrien	* search.c (add_conversions): Likewise.
319252284Sobrien
319352284Sobrien1998-10-27  Jason Merrill  <jason@yorick.cygnus.com>
319452284Sobrien
319552284Sobrien	* lex.c (do_identifier): Also generate LOOKUP_EXPR for RESULT_DECL.
319652284Sobrien	* method.c (hack_identifier): Also check for using RESULT_DECL
319752284Sobrien	from outer context.
319852284Sobrien
319952284Sobrien1998-10-27  Mark Mitchell  <mark@markmitchell.com>
320052284Sobrien
320152284Sobrien	* decl.c (grokdeclarator): Use type_quals, rather than constp,
320252284Sobrien	consistently.
320352284Sobrien
320452284Sobrien1998-10-27  Jason Merrill  <jason@yorick.cygnus.com>
320552284Sobrien
320652284Sobrien	* call.c (standard_conversion): instantiate_type here.
320752284Sobrien	(reference_binding): And here.
320852284Sobrien	(implicit_conversion): Not here.
320952284Sobrien	(build_op_delete_call): No need to cons up an OVERLOAD.
321052284Sobrien	* cvt.c (cp_convert_to_pointer): instantiate_type here.
321152284Sobrien	(convert_to_reference): And here.
321252284Sobrien	* decl.c (grok_reference_init): Not here.
321352284Sobrien	(grokparms): Or here.
321452284Sobrien	* typeck2.c (digest_init): Or here.
321552284Sobrien	* typeck.c (decay_conversion): Take the address of overloaded
321652284Sobrien	functions, too.
321752284Sobrien	(require_instantiated_type): Lose.
321852284Sobrien	(convert_arguments): Don't handle unknown types here.
321952284Sobrien	(build_c_cast): Likewise.
322052284Sobrien	(build_binary_op): Gut.
322152284Sobrien	(build_conditional_expr): Don't require_instantiated_type.
322252284Sobrien	(build_modify_expr): Likewise.
322352284Sobrien	(build_static_cast): Don't instantiate_type.
322452284Sobrien	(build_reinterpret_cast): Likewise.
322552284Sobrien	(build_const_cast): Likewise.
322652284Sobrien	(convert_for_initialization): Likewise.
322752284Sobrien	(build_ptrmemfunc): Use type_unknown_p.
322852284Sobrien	(convert_for_assignment): Also do default_conversion on overloaded
322952284Sobrien	functions.  Hand them off to ocp_convert.
323052284Sobrien
323152284Sobrien1998-10-26  Mark Mitchell  <mark@markmitchell.com>
323252284Sobrien
323352284Sobrien	* error.c (dump_decl): Deal with TEMPLATE_DECLs that are
323452284Sobrien	VAR_DECLs.  Handle vtables whose DECL_CONTEXT is not a type.
323552284Sobrien
323652284Sobrien	* class.c (finish_struct_1): Use build_cplus_array_type to build
323752284Sobrien	array types.
323852284Sobrien	* decl.c (init_decl_processing): Likewise.
323952284Sobrien	* except.c (expand_end_eh_spec): Likewise.
324052284Sobrien	* search.c (expand_upcast_fixups): Simplify very slightly.
324152284Sobrien
324252284Sobrien1998-10-26  Jason Merrill  <jason@yorick.cygnus.com>
324352284Sobrien
324452284Sobrien	* decl.c (grokdeclarator): Complain about a variable using
324552284Sobrien	constructor syntax coming back null from start_decl.
324652284Sobrien
324752284Sobrien	* friend.c (make_friend_class): Complain about trying to make
324852284Sobrien	a non-class type a friend.
324952284Sobrien
325052284Sobrien	* decl.c (grokfndecl): Set DECL_INITIAL for a defn here.
325152284Sobrien	(start_function): Not here.
325252284Sobrien
325352284Sobrien1998-10-26  Brendan Kehoe  <brendan@cygnus.com>
325452284Sobrien
325552284Sobrien	* decl.c (grokdeclarator): Disallow `explicit' in a friend declaration.
325652284Sobrien
325752284Sobrien1998-10-26  Jason Merrill  <jason@yorick.cygnus.com>
325852284Sobrien
325952284Sobrien	* typeck2.c (process_init_constructor): Only skip anonymous fields
326052284Sobrien	if they are bitfields.
326152284Sobrien
326252284Sobrien	* cp-tree.def (TYPEOF_TYPE): New code.
326352284Sobrien	* error.c (dump_type_real): Handle it.
326452284Sobrien	* pt.c (tsubst): Likewise.
326552284Sobrien	* tree.c (search_tree): Likewise.
326652284Sobrien	* semantics.c (finish_typeof): New fn.
326752284Sobrien	* parse.y (typespec): Use it.
326852284Sobrien	* cp-tree.h: Declare it.
326952284Sobrien
327052284Sobrien1998-10-26  Manfred Hollstein  <manfred@s-direktnet.de>
327152284Sobrien
327252284Sobrien	* cp-tree.h (FORMAT_VBASE_NAME): Make definition unconditional.
327352284Sobrien
327452284Sobrien1998-10-26  Jason Merrill  <jason@yorick.cygnus.com>
327552284Sobrien
327652284Sobrien	* typeck.c (convert_arguments): Don't handle pmf references
327752284Sobrien	specially.
327852284Sobrien
327952284Sobrien	* init.c (build_member_call): Don't try to convert to the base type
328052284Sobrien	if it's ambiguous or pedantic.
328152284Sobrien
328252284Sobrien	* typeck2.c (check_for_new_type): Only depend on pedantic for
328352284Sobrien	C-style casts.
328452284Sobrien
328552284Sobrien1998-10-25  Mark Mitchell  <mark@markmitchell.com>
328652284Sobrien
328752284Sobrien	* decl.c (grokdeclarator): Set DECL_NONCONVERTING_P for all
328850397Sobrien	non-converting constructors.
328918334Speter
329052284Sobrien1998-10-24  Martin von L�wis  <loewis@informatik.hu-berlin.de>
329152284Sobrien
329252284Sobrien	* gxxint.texi: Correct documentation for n, N, Q, and B.
329350397Sobrien
329450397Sobrien1998-10-23  Martin von L�wis  <loewis@informatik.hu-berlin.de>
329518334Speter
329650397Sobrien	* parse.y (condition): Convert VAR_DECL from reference to indirect
329750397Sobrien	reference.
329850397Sobrien
329950397Sobrien1998-10-23  Andrew MacLeod  <amacleod@cygnus.com>
330050397Sobrien
330150397Sobrien	* exception.cc (__cp_pop_exception): Free the original exception
330250397Sobrien	value, not the potentially coerced one.
330352284Sobrien
330418334Speter1998-10-23  Mark Mitchell  <mark@markmitchell.com>
330552284Sobrien
330652284Sobrien	* Makefile.in (hash.h): Run gperf when necessary.
330752284Sobrien
330852284Sobrien	* cp-tree.h (CP_TYPE_READONLY): Remove.
330952284Sobrien	(CP_TYPE_VOLATILE): Likewise.
331052284Sobrien	(CP_TYPE_QUALS): New macro.
331152284Sobrien	(CP_TYPE_CONST_P): Likewise.
331252284Sobrien	(CP_TYPE_VOLATILE_P): Likewise.
331352284Sobrien	(CP_TYPE_RESTRICT_P): Likewise.
331452284Sobrien	(CP_TYPE_CONST_NON_VOLATILE_P): Likewise.
331552284Sobrien	(cp_build_type_variant): Rename to ...
331652284Sobrien	(cp_build_qualified_type): New function.
331752284Sobrien	(c_apply_type_quals_to_decl): Declare.
331852284Sobrien	(SIGNATURE_POINTER_NAME_FORMAT): Modify to allow `restrict'.
331952284Sobrien	(SIGNATURE_REFERENCE_NAME_FORMAT): Likewise.
332052284Sobrien	(cp_type_qual_from_rid): New function.
332152284Sobrien	(compparms): Remove unused parameter.  All callers changed.
332252284Sobrien	(cp_type_quals): New function.
332352284Sobrien	(at_least_as_qualified_p): Likewise.
332452284Sobrien	(more_qualified_p): Likewise.
332552284Sobrien
332652284Sobrien	* call.c (standard_conversion): Replace calls to
332752284Sobrien	cp_build_type_variant with cp_build_qualified_type.  Use
332852284Sobrien	CP_TYPE_QUALS to get qualifiers and at_least_as_qualified_p to
332952284Sobrien	compare them.  Use CP_TYPE_* macros to check qualifiers.
333052284Sobrien	(reference_binding): Likewise.
333152284Sobrien	(implicit_conversion): Likewise.
333252284Sobrien	(add_builtin_candidates): Likewise.
333352284Sobrien	(build_over_call): Likewise.
333452284Sobrien	* class.c (overrides): Compare all qualifiers, not just `const',
333552284Sobrien	on method declarations.
333652284Sobrien	* cvt.c (convert_to_reference): More CP_TYPE_QUALS conversion, etc.
333752284Sobrien	(convert_pointer_to_real): Likewise.
333852284Sobrien	(type_promotes_to): Likewise.
333952284Sobrien	* decl.c (check_for_uninitialized_const_var): New function.
334052284Sobrien	(init_decl_processing): More CP_TYPE_QUALS conversion, etc.
334152284Sobrien	(cp_finish_decl): Use check_for_uninitialized_const_var.
334252284Sobrien	(grokdeclarator): More CP_TYPE_QUALS conversion, etc.  Update to
334352284Sobrien	handle `restrict'.
334452284Sobrien	(grok_ctor_properties): Likewise.
334552284Sobrien	(grok_op_properties): Likewise.
334652284Sobrien	(start_function): Likewise.
334752284Sobrien	(rever_static_member_fn): Likewise.
334852284Sobrien	* decl2.c (grok_method_quals): Likewise.
334952284Sobrien	(grokfield): Likewise.
335052284Sobrien	* error.c (dump_readonly_or_volatile): Rename to ...
335152284Sobrien	(dump_qualifiers): New function.  Handle `restrict'.
335252284Sobrien	(dump_type_real): Use it.
335352284Sobrien	(dump_aggr_type): Likewise.
335452284Sobrien	(dump_type_prefix): Likewise.
335552284Sobrien	(dump_type_suffix): Likewise.
335652284Sobrien	(dump_function_decl): Likewise.
335752284Sobrien	(cv_as_string): Likewise.
335852284Sobrien	* gxx.gperf: Add __restrict and __restrict__.
335952284Sobrien	* gxxint.texi: Document `u' as used for `__restrict', and a few
336052284Sobrien	other previously undocumented codes.
336152284Sobrien	* hash.h: Regenerated.
336252284Sobrien	* init.c (expand_aggr_init): More CP_TYPE_QUALS conversion, etc.
336352284Sobrien	(build_member_call): Likewise.
336452284Sobrien	(build_new_1): Likewise.
336552284Sobrien	* lex.c (init_parse): Add entry for RID_RESTRICT.
336652284Sobrien	(cons_up_default_function): More CP_TYPE_QUALS conversion, etc.
336752284Sobrien	(cp_type_qual_from_rid): Define.
336852284Sobrien	* lex.h (enum rid): Add RID_RESTRICT.
336952284Sobrien	* method.c (process_modifiers): Deal with `restrict'.
337052284Sobrien	* parse.y (primary): More CP_TYPE_QUALS conversion, etc.
337152284Sobrien	* parse.c: Regenerated.
337252284Sobrien	* pt.c (convert_nontype_argument): More CP_TYPE_QUALS conversion, etc.
337352284Sobrien	(tsubst_aggr_type): Likewise.
337452284Sobrien	(tsubst): Likewise.
337552284Sobrien	(check_cv_quals_for_unify): Likewise.
337652284Sobrien	(unify): Likewise.
337752284Sobrien	* rtti.c (init_rtti_processing): Likewise.
337852284Sobrien	(build_headof): Likewise.
337952284Sobrien	(get_tinfo_var): Likewise.
338052284Sobrien	(buidl_dynamic_cast_1): Likewise.  Fix `volatile' handling.
338152284Sobrien	(expand_class_desc): Likewise.
338252284Sobrien	(expand_attr_desc): Likewise.
338352284Sobrien	(synthesize_tinfo_fn): Likewise.
338452284Sobrien	* search.c (covariant_return_p): Likewise.  Fix `volatile' handling.
338552284Sobrien	(get_matching_virtual): Likewise.
338652284Sobrien	(expand_upcast_fixups): Likewise.
338752284Sobrien	* sig.c (build_signature_pointer_or_reference_name): Take
338852284Sobrien	type_quals, not constp and volatilep.
338952284Sobrien	(build_signature_pointer_or_reference_type): Likewise.
339052284Sobrien	(match_method_types): More CP_TYPE_QUALS conversion, etc.
339152284Sobrien	(build_signature_pointer_constructor): Likewise.
339252284Sobrien	(build_signature_method_call): Likewise.
339352284Sobrien	* tree.c (build_cplus_array_type): Likewise.
339452284Sobrien	(cp_build_type_variant): Rename to ...
339552284Sobrien	(cp_build_qualified_type): New function.  Deal with `__restrict'.
339652284Sobrien	(canonical_type_variant): More CP_TYPE_QUALS conversion, etc.
339752284Sobrien	(build_exception_variant): Likewise.
339852284Sobrien	(mapcar): Likewise.
339952284Sobrien	* typeck.c (qualif_type): Likewise.
340052284Sobrien	(common_type): Likewise.
340152284Sobrien	(comptypes): Likewise.
340252284Sobrien	(comp_cv_target_types): Likewise.
340352284Sobrien	(at_least_as_qualified_p): Define.
340452284Sobrien	(more_qualified_p): Likewise.
340552284Sobrien	(comp_cv_qualification): More CP_TYPE_QUALS conversion, etc.
340652284Sobrien	(compparms): Likewise.
340752284Sobrien	(inline_conversion): Likewise.
340852284Sobrien	(string_conv_p): Likewise.
340952284Sobrien	(build_component_ref): Likewise.
341052284Sobrien	(build_indirect_ref): Likewise.
341152284Sobrien	(build_array_ref): Likewise.
341252284Sobrien	(build_unary_op): Likewise.
341352284Sobrien	(build_conditional_expr): Likewise.
341452284Sobrien	(build_static_cast): Likewise.
341552284Sobrien	(build_c_cast): Likewise.
341652284Sobrien	(build_modify_expr): Likewise.
341752284Sobrien	(convert_For_assignment): Likewise.
341852284Sobrien	(comp_ptr_ttypes_real): Likewise.
341952284Sobrien	(cp_type_quals): New function.
342052284Sobrien
342152284Sobrien1998-10-23  Jason Merrill  <jason@yorick.cygnus.com>
342252284Sobrien
342352284Sobrien	* cp-tree.h (CP_TYPE_READONLY): New macro to handle arrays.
342450397Sobrien	(CP_TYPE_VOLATILE): Likewise.
342518334Speter	* decl.c (grokdeclarator): Use them.
342650397Sobrien	* tree.c (canonical_type_variant): Likewise.
342750397Sobrien
342818334Speter1998-10-22  Martin von L�wis  <loewis@informatik.hu-berlin.de>
342952284Sobrien
343018334Speter	* parse.y (named_class_head): Push into class while parsing the
343152284Sobrien	base class list.
343252284Sobrien	* decl2.c (push_scope, pop_scope): New functions.
343318334Speter	* cp-tree.h: Declare them.
343452284Sobrien	* init.c (build_new_1): Delay cleanup until end of full expression.
343552284Sobrien
343652284Sobrien1998-10-21  Jason Merrill  <jason@yorick.cygnus.com>
343752284Sobrien
343852284Sobrien	* typeck.c (build_component_ref): Use of a type here is an error.
343952284Sobrien
344052284Sobrien1998-10-19  Jason Merrill  <jason@yorick.cygnus.com>
344152284Sobrien
344252284Sobrien	Revamp references to member functions.
344352284Sobrien	* method.c (hack_identifier): Call build_component_ref for a
344452284Sobrien	reference to a member function.
344552284Sobrien	* typeck.c (build_component_ref): Only return a single function
344652284Sobrien	if it's static.  Otherwise, return a COMPONENT_REF.
344752284Sobrien	(build_x_function_call): Handle a COMPONENT_REF.
344852284Sobrien	(build_unary_op): Handle all unknown-type things.
344952284Sobrien	* decl2.c (arg_assoc): Handle COMPONENT_REF.
345052284Sobrien	* class.c (instantiate_type): Complain if the function we get is a
345152284Sobrien	nonstatic member function.  Remove code for finding "compatible"
345252284Sobrien	functions.
345352284Sobrien	* pt.c (tsubst_copy): Handle NOP_EXPR.
345452284Sobrien	* tree.c (build_dummy_object): New fn.
345552284Sobrien	(maybe_dummy_object): New fn.
345652284Sobrien	(is_dummy_object): New fn.
345752284Sobrien	* cp-tree.h: Declare them.
345852284Sobrien	* cvt.c (cp_convert_to_pointer): Use maybe_dummy_object.
345952284Sobrien	* error.c (dump_expr, case OFFSET_REF): Use is_dummy_object.
346052284Sobrien	* init.c (build_member_call): Use maybe_dummy_object and
346152284Sobrien	is_dummy_object.
346252284Sobrien	(build_offset_ref): Use maybe_dummy_object.
346352284Sobrien	(resolve_offset_ref): Use is_dummy_object.
346452284Sobrien	* typeck.c (build_x_function_call): Call build_dummy_object.
346552284Sobrien	(unary_complex_lvalue): Call is_dummy_object.
346652284Sobrien
346752284Sobrien	* typeck.c (build_component_addr): Make sure field is a field.
346852284Sobrien
346952284Sobrien	* call.c (build_new_op): Delete obsolete code.
347052284Sobrien
347152284Sobrien	* pt.c (tsubst, TEMPLATE*PARM*): Abort if we don't have any args.
347252284Sobrien
347352284Sobrien1998-10-18  Martin von L�wis  <loewis@informatik.hu-berlin.de>
347452284Sobrien
347552284Sobrien	* decl2.c (validate_nonmember_using_decl): Fix using-directives of
347652284Sobrien	std if std is ignored.
347752284Sobrien
347852284Sobrien1998-10-18  Jason Merrill  <jason@yorick.cygnus.com>
347952284Sobrien
348052284Sobrien	* decl.c (grokvardecl): Fix thinko.
348152284Sobrien
348252284Sobrien	* decl.c (grokdeclarator): Embedded attrs bind to the right,
348352284Sobrien	not the left.
348452284Sobrien
348552284Sobrien	* parse.y (fn.def2): Fix 'attrs' format.
348652284Sobrien
348752284Sobrien1998-10-18  Alastair J. Houghton  <ajh8@doc.ic.ac.uk>
348852284Sobrien
348952284Sobrien	* Makefile.in (CONFLICTS): Update.
349052284Sobrien	* parse.y (expr_or_declarator_intern): New rule.
349152284Sobrien	(expr_or_declarator, direct_notype_declarator, primary,
349252284Sobrien	functional_cast): Use it.
349352284Sobrien	(notype_declarator_intern): New rule.
349452284Sobrien	(notype_declarator, complex_notype_declarator): Use it.
349552284Sobrien
349652284Sobrien1998-10-17  Jason Merrill  <jason@yorick.cygnus.com>
349752284Sobrien
349852284Sobrien	* decl.c (grokfndecl): Set DECL_CONTEXT to namespace if appropriate.
349952284Sobrien	(grokvardecl): Likewise.
350052284Sobrien
350152284SobrienSat Oct 17 23:27:20 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
350252284Sobrien
350352284Sobrien	* class.c (make_method_vec): Cast 1st argument of `bzero' to (PTR).
350452284Sobrien	(add_method): Likewise for arguments 1 & 2 of `bcopy'.
350552284Sobrien
350652284Sobrien	* decl.c (signal_catch): Mark with ATTRIBUTE_NORETURN.
350752284Sobrien
350852284Sobrien	* pt.c (process_partial_specialization): Cast 1st argument of
350952284Sobrien	`bzero' to (PTR).
351052284Sobrien
351152284Sobrien	* tree.c (build_base_fields): Cast `base_align' to (int) when
351252284Sobrien	comparing against one.
351352284Sobrien
351452284Sobrien1998-10-16  Mark Mitchell  <mark@markmitchell.com>
351552284Sobrien
351652284Sobrien	* decl.c (lookup_name_real): Handle template parameters for member
351752284Sobrien	templates where said parameters have the same name as the
351852284Sobrien	surrounding class.
351952284Sobrien
352052284Sobrien	* decl.c (expand_static_init): Build cleanups before entering the
352152284Sobrien	anonymous function used to do them to avoid access-checking
352252284Sobrien	confusion.
352352284Sobrien
352452284Sobrien	* decl.c (grokfndecl): Add back call to cplus_decl_attributes
352552284Sobrien	accidentally removed by previous change, and make DECL_RTL here.
352652284Sobrien	* class.c (add_method): Don't make DECL_RTL here.
352752284Sobrien
352852284Sobrien	* pt.c (for_each_template_parm): Don't examine uninstantiated
352952284Sobrien	default arguments.
353052284Sobrien
353152284Sobrien1998-10-16  Dave Brolley  <brolley@cygnus.com>
353252284Sobrien
353352284Sobrien	* lex.c (real_yylex): Fix unaligned access of wchar_t.
353452284Sobrien
353552284Sobrien1998-10-16  Mark Mitchell  <mark@markmitchell.com>
353652284Sobrien
353752284Sobrien	* class.c (add_method): Fix documentation to reflect previous
353852284Sobrien	changes.  Check for duplicate method declarations here.
353952284Sobrien	* decl.c (decls_match): Handle FUNCTION_DECL vs TEMPLATE_DECL
354052284Sobrien	correctly; such things never match.
354152284Sobrien	(grokfndecl): Don't look for duplicate methods here.
354252284Sobrien	* decl2.c (check_classfn): Don't assume names are mangled.
354352284Sobrien	Don't add bogus member function declarations to a class before the
354452284Sobrien	class type is complete.
354552284Sobrien	(grokfield): Reformat error message.
354652284Sobrien	* method.c (set_mangled_name_for_decl): Don't mangle names while
354752284Sobrien	processing_template_decl.
354852284Sobrien
354952284Sobrien1998-10-16  Jason Merrill  <jason@yorick.cygnus.com>
355052284Sobrien
355152284Sobrien	* typeck.c (build_indirect_ref): Complain about a pointer to data
355252284Sobrien	member, too.
355352284Sobrien	* typeck2.c (build_m_component_ref): Don't indirect a pointer to
355452284Sobrien	data member.
355552284Sobrien	* init.c (resolve_offset_ref): Don't undo the above.
355652284Sobrien
355752284Sobrien	* cp-tree.h (DECL_C_BIT_FIELD, SET_DECL_C_BIT_FIELD): New macros.
355852284Sobrien	(struct lang_decl_flags): Add `bitfield'.
355952284Sobrien	* class.c (finish_struct_1): Use DECL_C_BIT_FIELD instead of
356052284Sobrien	DECL_BIT_FIELD.
356152284Sobrien	* decl2.c (grokbitfield, grok_alignof): Likewise.
356252284Sobrien	* init.c (build_offset_ref): Likewise.
356352284Sobrien	* typeck.c (build_component_addr, expr_sizeof): Likewise.
356452284Sobrien	* cvt.c (build_up_reference): Don't crash if taking the address
356552284Sobrien	returns error_mark_node.
356652284Sobrien
356752284Sobrien	* decl.c (grokfndecl): Also check ctype when checking for ::main().
356852284Sobrien
356952284Sobrien1998-10-15  Jason Merrill  <jason@yorick.cygnus.com>
357052284Sobrien
357152284Sobrien	* decl.c (grokfndecl): ::main and __builtin_* get C linkage.
357252284Sobrien	Do mangling here.
357352284Sobrien	(grokdeclarator): Instead of here.
357452284Sobrien	* friend.c (do_friend): Lose special handling of ::main and
357552284Sobrien	__builtin_*.
357652284Sobrien	* cp-tree.h (DECL_MAIN_P): Check for C linkage.
357752284Sobrien
357852284Sobrien	* spew.c (yylex): Clear looking_for_typename if we got
357952284Sobrien	'enum { ... };'.
358052284Sobrien
358152284Sobrien1998-10-15  Mark Mitchell  <mark@markmitchell.com>
358252284Sobrien
358352284Sobrien	* class.c (maybe_warn_about_overly_private_class): Improve error
358452284Sobrien	messages for class with only private constructors.
358552284Sobrien
358652284Sobrien	* cp-tree.def (TYPENAME_TYPE): Add to documentation.
358752284Sobrien	* cp-tree.h (TYPENAME_TYPE_FULLNAME): Document.
358852284Sobrien	(build_typename_type): New function.
358952284Sobrien	* decl.c (build_typename_type): Broken out from ...
359052284Sobrien	(make_typename_type): Use it.
359152284Sobrien	* search.c (lookup_field): Likewise.
359252284Sobrien
359352284Sobrien1998-10-14  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
359452284Sobrien
359552284Sobrien	* pt.c (convert_nontype_argument): Check against type_referred_to.
359652284Sobrien	* decl.c (grokvardecl): Check for declarator name before building
359752284Sobrien	DECL_ASSEMBLER_NAME.
359852284Sobrien
359952284Sobrien1998-10-14  Mark Mitchell  <mark@markmitchell.com>
360052284Sobrien
360152284Sobrien	* pt.c (lookup_template_class): Add comment.
360252284Sobrien	(instantiate_class_template): Don't mark the _TYPE node for
360350397Sobrien	member class templates as an instantiation.
360418334Speter
360550397Sobrien1998-10-14  Jason Merrill  <jason@yorick.cygnus.com>
360650397Sobrien
360718334Speter	* decl.c (grokfndecl): Fix my thinko.
360852284Sobrien
360918334Speter1998-10-13  Jason Merrill  <jason@yorick.cygnus.com>
361052284Sobrien
361152284Sobrien	* tinfo2.cc (fast_compare): Remove.
361252284Sobrien	(before): Just use strcmp.
361352284Sobrien	* tinfo.cc (operator==): Just use strcmp.
361452284Sobrien
361552284Sobrien1998-10-13  Klaus-Georg Adams  <Klaus-Georg.Adams@chemie.uni-karlsruhe.de>
361652284Sobrien
361752284Sobrien	* decl.c (grokfndecl): Don't check for linkage in `extern "C"'
361852284Sobrien	declarations.
361952284Sobrien
362052284Sobrien1998-10-13  Mark Mitchell  <mark@markmitchell.com>
362152284Sobrien
362252284Sobrien	* cp-tree.h (specializations_of_same_template_p): Remove.
362352284Sobrien	* search.c (get_template_base): Don't use it.
362452284Sobrien	(get_template_base_recursive): Likewise.
362552284Sobrien	* pt.c (specializations_of_same_template_p): Remove.
362652284Sobrien	(unify): Don't use it.
362752284Sobrien	(lookup_template_class): Find the correct parent when setting
362852284Sobrien	CLASSTYPE_TI_TEMPLATE.
362952284Sobrien
363052284Sobrien1998-10-12  Jason Merrill  <jason@yorick.cygnus.com>
363152284Sobrien
363252284Sobrien	* tinfo.cc (operator==): Always compare names.
363352284Sobrien
363452284Sobrien1998-10-12  Herman ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
363552284Sobrien
363652284Sobrien	* decl.c (start_function): Fix cut-and-paste error.
363752284Sobrien
363852284Sobrien1998-10-12  Jason Merrill  <jason@yorick.cygnus.com>
363952284Sobrien
364052284Sobrien	* inc/typeinfo: Add #pragma interface.
364152284Sobrien	(operator!=): Just call operator==.
364252284Sobrien	* tinfo.cc: Add #pragma implementation.
364352284Sobrien	(operator==): Move from inc/typeinfo and tinfo2.cc.
364452284Sobrien	Check __COMMON_UNRELIABLE instead of _WIN32.
364552284Sobrien
364652284Sobrien	* typeck2.c (my_friendly_abort): Add URL.
364752284Sobrien
364852284Sobrien1998-10-12  Alastair J. Houghton  <ajh8@doc.ic.ac.uk>
364952284Sobrien
365052284Sobrien	* decl.c (start_method): Added extra parameter for attributes.
365152284Sobrien	* cp-tree.h (start_method): Update prototype.
365252284Sobrien	* parse.y (fn.def2): Update start_method parameter list.
365352284Sobrien
365452284Sobrien1998-10-11  Mark Mitchell  <mark@markmitchell.com>
365552284Sobrien
365652284Sobrien	* cp-tree.h (specializations_of_same_template_p): Declare.
365752284Sobrien	* pt.c (specializations_of_same_template_p): New function.
365852284Sobrien	(unify): Use it.
365952284Sobrien	* search.c (get_template_base): Use it.
366052284Sobrien	(get_template_base_recursive): Likewise.
366152284Sobrien
366252284Sobrien1998-10-10  Manfred Hollstein  <manfred@s-direktnet.de>
366352284Sobrien
366452284Sobrien	* decl2.c (start_objects): Add new variable `joiner' and
366552284Sobrien	initialize it properly.
366652284Sobrien
366752284Sobrien1998-10-09  Mark Mitchell  <mark@markmitchell.com>
366852284Sobrien
366952284Sobrien	* search.c (expand_upcast_fixups): Tweak to match 1998-10-07
367052284Sobrien	change to vtable types.
367152284Sobrien
367252284Sobrien	* cvt.c (ocp_convert): Avoid infinite recursion caused by
367352284Sobrien	1998-10-03 change.
367452284Sobrien
367552284Sobrien1998-10-08  Jason Merrill  <jason@yorick.cygnus.com>
367652284Sobrien
367752284Sobrien	* pt.c (resolve_overloaded_unification): New fn.
367852284Sobrien	(try_one_overload): Likewise.
367952284Sobrien	(unify): Don't fail on unknown type.
368052284Sobrien	(type_unification_real): Likewise.  Use resolve_overloaded_unification
368152284Sobrien	to handle an overloaded argument.
368252284Sobrien	(template_args_equal): Split out...
368352284Sobrien	(comp_template_args): From here.
368452284Sobrien	(determine_specialization): Also allow a template with more
368552284Sobrien	parms than were explicitly specified.
368652284Sobrien	* cp-tree.h: Add template_args_equal.
368752284Sobrien	* call.c (resolve_args): Remove TEMPLATE_ID_EXPR code.
368852284Sobrien
368952284SobrienThu Oct  8 15:58:30 1998  Anthony Green  <green@cygnus.com>
369052284Sobrien
369152284Sobrien	* semantics.c (finish_asm_stmt): Revert my 1998-09-28
369252284Sobrien	change.
369352284Sobrien
369452284SobrienThu Oct  8 06:00:19 1998  Jeffrey A Law  (law@cygnus.com)
369552284Sobrien
369652284Sobrien	* typeck.c (unsigned_type): Only return TItype nodes when
369752284Sobrien	HOST_BITS_PER_WIDE_INT is >= 64 bits.
369852284Sobrien	(signed_type): Likewise.
369952284Sobrien	* decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare
370052284Sobrien	when HOST_BITS_PER_WIDE_INT is >= 64 bits.
370152284Sobrien	(init_decl_processing): Only create TItype nodes when
370252284Sobrien	HOST_BITS_PER_WIDE_INT is >= 64 bits.
370352284Sobrien	* cp-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare
370452284Sobrien	when HOST_BITS_PER_WIDE_INT is >= 64 bits.
370552284Sobrien
370652284SobrienWed Oct  7 12:32:44 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
370752284Sobrien
370850397Sobrien	* Makefile.in (hash.h): Add -L KR-C -F ', 0, 0' flags to gperf.
370950397Sobrien	(gxx.gperf): Update comments describing invocation flags.
371018334Speter	(hash.h): Regenerate using gperf 2.7.1 (19981006 egcs).
371152284Sobrien
371252284Sobrien1998-10-07  Mark Mitchell  <mark@markmitchell.com>
371352284Sobrien
371452284Sobrien	* class.c (finish_struct_1): Add commentary on previous change.
371552284Sobrien
371652284Sobrien	* cp-tree.h (vtbl_ptr_type_node): New variable.
371752284Sobrien	* class.c (build_vtbl_ref): Don't indirect through the vptr; it's
371852284Sobrien	already of the right type.
371952284Sobrien	(finish_struct_1): Make the vptr be of type vtbl_ptr_type_node.
372052284Sobrien	Simplify code to grow vtable.
372152284Sobrien	* decl.c (vtbl_ptr_type_node): Define.
372252284Sobrien	(init_decl_processing): Initialize it.
372352284Sobrien
372452284Sobrien1998-10-06  Mark Mitchell  <mark@markmitchell.com>
372552284Sobrien
372652284Sobrien	* cp-tree.def (PTRMEM_CST): New tree node.
372752284Sobrien	* cp-tree.h (ptrmem_cst): New type.
372852284Sobrien	(lang_type): Remove local_typedecls.
372952284Sobrien	(dummy): Increase to 12 bits from 11.
373052284Sobrien	(CLASSTYPE_LOCAL_TYPEDECLS): Remove.
373152284Sobrien	(PTRMEM_CST_CLASS): New macro.
373252284Sobrien	(PTRMEM_CST_MEMBER): Likewise.
373352284Sobrien	(current_access_specifier): New variable.
373452284Sobrien	(current_class_type): Remove duplicate declaration.
373552284Sobrien	(finish_struct): Change prototype.
373652284Sobrien	(unreverse_member_declarations): New function.
373752284Sobrien	(pushdecl_class_level): Change prototype.
373852284Sobrien	(grok_enum_decls): Remove.
373950397Sobrien	(fixup_anonymous_union): New function.
374018334Speter	(grok_x_components): Change prototype.
374150397Sobrien	(tsubst_chain): Remove.
374250397Sobrien	(finish_member_template_decl): Likewise.
374350397Sobrien	(check_explicit_specialization): Fix indentation.
374418334Speter	(finish_class_definition): Change prototype.
374552284Sobrien	(finish_member_class_template): Likewise.
374652284Sobrien	(finish_member_declaration): New function.
374752284Sobrien	(check_multiple_declarators): Likewise.
374852284Sobrien	* class.c (class_stack_node_t): New type.
374952284Sobrien	(current_class_base): Remove.
375052284Sobrien	(current_class_stack): Change type.
375152284Sobrien	(current_access_specifier): New variable.
375252284Sobrien	(grow_method): Remove.
375352284Sobrien	(check_member_decl_is_same_in_complete_scope): Break out from
375452284Sobrien	finish_struct.
375552284Sobrien	(make_method_vec): New function.
375652284Sobrien	(free_method_vec): Likewise.
375752284Sobrien	(add_implicitly_declared_members): Break out from finish_struct_1.
375852284Sobrien	(free_method_vecs): New variable.
375952284Sobrien	(add_method): Rework for direct use from parser.
376050397Sobrien	(handle_using_decl): Watch for NULL_TREE while iterating through
376118334Speter	CLASSTYPE_METHOD_VEC.
376250397Sobrien	(finish_struct_methods): Don't build CLASSTYPE_METHOD_VEC here;
376318334Speter	just do some error-checking.
376452284Sobrien	(warn_hidden): Change iteration through CLASSTYPE_METHOD_VEC.
376552284Sobrien	(finish_struct_1): Simplify.  Use add_implicitly_declared_members.
376652284Sobrien	(finish_struct): Change prototype.  Simplify; fields and methods
376752284Sobrien	are already set up at this point.
376850397Sobrien	(init_class_processing): Set up current_class_stack.
376918334Speter	(pushclass): Save current_access_specifier.
377050397Sobrien	(popclass): Restore it.
377150397Sobrien	(currently_open_class): Simplify.
377250397Sobrien	(build_self_reference): Remove use of CLASSTYPE_LOCAL_TYPEDECLS.
377350397Sobrien	* decl.c (saved_scope): Add access_specifier.
377452284Sobrien	(maybe_push_to_top_level): Save it.
377518334Speter	(pop_from_top_level): Restore it.
377650397Sobrien	(maybe_process_template_type_declaration): Use
377718334Speter	finish_member_declaration.
377852284Sobrien	(pushtag): Likewise.
377952284Sobrien	(pushdecl_class_level): Don't return a value.
378052284Sobrien	(fixup_anonymous_union): Break out from grok_x_components.
378152284Sobrien	(shadow_tag): Use it.
378252284Sobrien	(xref_tag): Complain about using an elaborated type specifier to
378352284Sobrien	reference a template type parameter or typedef name.
378452284Sobrien	(xref_basetypes): Don't set CLASSTYPE_LOCAL_TYPEDECLS.
378552284Sobrien	(current_local_enum): Remove.
378652284Sobrien	(build_enumerator): Call finish_member_declaration.
378752284Sobrien	(grok_enum_decls): Remove.
378852284Sobrien	* decl2.c (grok_x_components): Simplify.
378952284Sobrien	(check_classfn): Change iteration through CLASSTYPE_METHOD_VEC.
379052284Sobrien	(grokfield): Don't set CLASSTYPE_LOCAL_TYPEDECLS.
379152284Sobrien	(merge_functions): Add to comment.
379252284Sobrien	(arg_assoc_type): Prototype.
379352284Sobrien	(arg_assoc): Pass as many arguments as there are parameters.
379452284Sobrien	* error.c (dump_expr): Handle PTRMEM_CST.  Improve handling of
379552284Sobrien	OFFSET_REF.
379652284Sobrien	* expr.c (cpls_expand_expr): Remove dead code.  Handle
379752284Sobrien	PTRMEM_CST.
379852284Sobrien	* friend.c (do_friend): Lookup friends when in nested classes.
379952284Sobrien	Change comments.
380052284Sobrien	* init.c (build_offset_ref): Do lookup even for classes that are
380152284Sobrien	only partially defined.
380252284Sobrien	(decl_constant_value): Remove dead code.
380352284Sobrien	* method.c (build_overload_value): Remove hack where by TYPE was
380452284Sobrien	not a TYPE.  Handle PTRMEM_CST.
380552284Sobrien	(build_template_parm_names): Don't pass a PARM_DECL where a TYPE
380652284Sobrien	should go.
380752284Sobrien	* parse.y (components, notype_components, component_decl,
380852284Sobrien	component_decl_1, component_declarator, component_declarator0):
380952284Sobrien	Now all are itype rather than ttype.  Rework to add members to
381052284Sobrien	classes on the fly.
381152284Sobrien	(typesqpecqual_reserved): Use check_multiple_declarators.
381252284Sobrien	(structsp): Update class to finish_class_definition.
381352284Sobrien	(do_xref_defn): Unsplit into named_class_head.
381452284Sobrien	(access_specifier): Set current_access_specifier.
381552284Sobrien	* pt.c (set_current_access_from_decl): New function.
381652284Sobrien	(finish_member_template_decl): Don't take the parameters.
381752284Sobrien	(comp_template_args): Make more robust.
381852284Sobrien	(lookup_template_class): Don't use current_local_enum.
381952284Sobrien	(for_each_template_parm): Handle PTRMEM_CST.
382052284Sobrien	(instantiate_class_template): Use set_current_access_from_decl,
382152284Sobrien	finish_member_declaration and unreverse_member_declarations.  Set
382252284Sobrien	lineno/input_filename before generating implicit member functions.
382352284Sobrien	(type_unification_real): Don't assume back-unification happens
382452284Sobrien	only for the last argument.
382552284Sobrien	(regenerate_decl_from_template): Call pushclass a bit earlier.
382652284Sobrien	(tsubst_chain): Remove.
382752284Sobrien	(tsubst_enum): Use set_current_access_from_decl.
382852284Sobrien	(set_mangled_name_for_template_decl): Fix indentation.
382952284Sobrien	* search.c (lookup_fnfields_1): Change iteration through
383052284Sobrien	CLASSTYPE_METHOD_VEC.
383152284Sobrien	(dfs_pushdecls): Likewise.
383252284Sobrien	(dfs_compress_decls): Likewise.
383352284Sobrien	(add_conversions): Likewise.
383452284Sobrien	* semantics.c (finish_class_definition): Don't take components.
383552284Sobrien	Change call to finish_struct.
383652284Sobrien	(finish_member_declaration): New function.
383752284Sobrien	(finish_member_class_template): Don't take template parameters.
383852284Sobrien	Change call to grok_x_components.  Call finish_member_template_decl.
383952284Sobrien	(check_multiple_declarators): New function.
384052284Sobrien	* sig.c (append_signature_fields): Work from the TYPE_METHODS, not
384152284Sobrien	a passed in fieldlist.
384252284Sobrien	* tree.c (search_tree): Handle PTRMEM_CST.
384352284Sobrien	(mapcar): Likewise.
384452284Sobrien	* typeck.c (unary_complex_lvalue): Build PTRMEM_CSTs, not
384552284Sobrien	INTEGER_CSTs, for pointer-to-data members.
384652284Sobrien
384752284Sobrien	* call.c (resolve_args): Resolve template specializations, if
384852284Sobrien	possible.
384952284Sobrien
385052284SobrienTue Oct  6 07:57:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
385152284Sobrien
385252284Sobrien	* Makefile.in (spew.o): Depend on toplev.h.
385352284Sobrien
385452284Sobrien	* call.c (compare_ics): Initialize variables `deref_from_type2',
385552284Sobrien	`deref_to_type1' and `deref_to_type2'.
385652284Sobrien
385752284Sobrien	* except.c (get_eh_type): Hide prototype and definition.
385852284Sobrien	(process_start_catch_block_old): Remove unused static prototype.
385952284Sobrien
386052284Sobrien	* pt.c (tsubst_decl): Initialize variable `argvec'.
386152284Sobrien
386252284Sobrien	* spew.c: Include toplev.h.
386352284Sobrien
386452284Sobrien1998-10-05  Jason Merrill  <jason@yorick.cygnus.com>
386552284Sobrien
386652284Sobrien	* pt.c (instantiate_decl): Do save and restore file position.
386752284Sobrien
386852284Sobrien1998-10-05  Martin von L�wis  <loewis@informatik.hu-berlin.de>
386952284Sobrien
387052284Sobrien	* method.c (build_decl_overload_real): Clear
387152284Sobrien	numeric_output_need_bar after __.
387252284Sobrien
387352284Sobrien1998-10-05  Nathan Sidwell  <nathan@acm.org>
387452284Sobrien
387552284Sobrien	* call.c (build_new_method_call): Issue 'incomplete type' error,
387652284Sobrien	if class is not defined.
387752284Sobrien
387852284Sobrien1998-10-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
387952284Sobrien
388052284Sobrien	* call.c (build_object_call): Move declaration of variable
388152284Sobrien	`fn' into the scope where it is used.  Don't access variable
388252284Sobrien	`fn' when it is uninitialized, instead use `fns'.
388352284Sobrien
388452284Sobrien1998-10-04  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>
388552284Sobrien
388652284Sobrien	* errfn.c (cp_thing): Print buf as a string not as a printf format
388752284Sobrien	to avoid problems with the operator%.  Consequently, `%%' sequences
388852284Sobrien	in format are copied as `%' in buf.
388952284Sobrien
389052284Sobrien1998-10-04  Jason Merrill  <jason@yorick.cygnus.com>
389152284Sobrien
389252284Sobrien	* pt.c (pop_tinst_level): Call extract_interface_info.
389352284Sobrien	(instantiate_decl): Don't save and restore file position.
389452284Sobrien
389552284Sobrien	* decl.c (cp_finish_decl): Make statics in extern inlines and
389652284Sobrien	templates common, if possible and the target doesn't support weak
389752284Sobrien	symbols.
389852284Sobrien
389952284Sobrien	* decl.c (grokdeclarator): Remove redundant calls to
390052284Sobrien	build_type_variant and some duplicated code.
390152284Sobrien	* sig.c (build_signature_reference_type): Only take the type parm.
390252284Sobrien	(build_signature_pointer_type): Likewise.
390352284Sobrien	* tree.c (build_cplus_method_type): Adjust.
390452284Sobrien	* cp-tree.h: Update.
390552284Sobrien
390652284Sobrien1998-10-04  Mark Mitchell  <mark@markmitchell.com>
390752284Sobrien
390852284Sobrien	* call.c (build_over_call): Make pedwarns about dropped qualifiers
390952284Sobrien	into full-fledged errors.
391052284Sobrien	* cvt.c (convert_to_reference): Likewise.
391152284Sobrien	* typeck.c (convert_for_assignment): Likewise.
391252284Sobrien
391352284Sobrien	* search.c (expand_upcast_vtables): In addition to unsetting
391452284Sobrien	TREE_READONLY, remove top-level const type qualifier.
391552284Sobrien
391652284Sobrien1998-10-03  Mark Mitchell  <mark@markmitchell.com>
391752284Sobrien
391852284Sobrien	* class.c (current_class_ptr, current_class_ref): Clarify
391952284Sobrien	documentation.
392052284Sobrien	* cvt.c (ocp_convert): Don't expect fold to remove all trivial
392152284Sobrien	NOP type conversions.
392252284Sobrien	* decl.c (decls_match): Use comptypes directly; ignore
392352284Sobrien	qualifiers on the DECL.
392452284Sobrien	(duplicate_decls): Remove qualifier checks on DECL.
392552284Sobrien	(grokdeclarator): Make the type built up include top-level
392652284Sobrien	qualifiers.
392752284Sobrien	* decl2.c (do_dtors): Fix spelling error.
392852284Sobrien	* error.c (dump_simple_decl): Don't look at qualifiers on the decl
392952284Sobrien	when printing type information.
393052284Sobrien	* init.c (build_new_1): Add documentation.  Deal with the fact
393152284Sobrien	that type of allocated memory now contains qualifiers.
393252284Sobrien	* lex.c (is_global): Improve error-recovery.
393352284Sobrien	* sig.c (build_member_function_pointer): Don't cast away const
393452284Sobrien	on fields of sigtable_entry_type.
393552284Sobrien	* tree.c (lvalue_type): Don't look at top-level qualifiers on
393652284Sobrien	expressions.
393752284Sobrien	* typeck.c (decay_conversion): Likewise.
393852284Sobrien	(build_component_ref): Make sure the type of the COMPONENT_REF
393952284Sobrien	contains top-level qualifiers, as appropriate.  Improve
394052284Sobrien	error-handling.
394152284Sobrien	(build_indirect_ref): Simplify.  Don't strip top-level qualifiers.
394252284Sobrien	(build_array_ref): Likewise.
394352284Sobrien	(build_unary_op): Improve error-recovery.
394452284Sobrien	(unary_complex_lvalue): Make taking the address a bound member
394552284Sobrien	function an error, not a sorry.
394652284Sobrien	(build_conditional_expr): Look at the type qualifiers, not the
394752284Sobrien	qualifiers on the expression itself.
394852284Sobrien
394952284Sobrien1998-10-03  Jason Merrill  <jason@yorick.cygnus.com>
395052284Sobrien
395152284Sobrien	* decl2.c (merge_functions): Remove duplicates.
395252284Sobrien
395352284Sobrien	* decl2.c: Add -f{no-,}implicit-inline-templates.
395452284Sobrien	(import_export_decl): Check it.
395552284Sobrien
395652284Sobrien	* decl.c (lookup_name_real): Template parms also take precedence
395752284Sobrien	over implicit typename.  Only warn if yylex.
395852284Sobrien
395952284Sobrien	* typeck.c (build_conditional_expr): Only fold if ifexp is an
396052284Sobrien	INTEGER_CST.
396152284Sobrien
396252284Sobrien	* decl2.c (finish_vtable_vardecl): Check DECL_INTERFACE_KNOWN
396352284Sobrien	instead of linkage.
396452284Sobrien
396552284Sobrien1998-10-01  Jason Merrill  <jason@yorick.cygnus.com>
396652284Sobrien
396752284Sobrien	* cp-tree.h (FORMAT_VBASE_NAME): New macro.
396852284Sobrien	* class.c (build_vbase_pointer): Use it.
396952284Sobrien	* rtti.c (expand_class_desc): Likewise.
397052284Sobrien	* tree.c (build_vbase_pointer_fields): Likewise.
397152284Sobrien
397252284SobrienThu Oct  1 10:43:45 1998  Nick Clifton  <nickc@cygnus.com>
397352284Sobrien
397452284Sobrien	* decl.c (start_decl): Add invocation of
397552284Sobrien	SET_DEFAULT_DECL_ATTRIBUTES, if defined.
397652284Sobrien	(start_function): Add invocation of
397752284Sobrien	SET_DEFAULT_DECL_ATTRIBUTES, if defined.
397852284Sobrien
397952284Sobrien	* lex.c: Replace occurrences of HANDLE_SYSV_PRAGMA with
398052284Sobrien	HANDLE_GENERIC_PRAGMAS.
398152284Sobrien
398252284Sobrien1998-09-28  Anthony Green  <green@cygnus.com>
398352284Sobrien
398452284Sobrien	* semantics.c (finish_asm_stmt): Always permit volatile asms.
398552284Sobrien
398652284Sobrien1998-09-28  Mark Mitchell  <mark@markmitchell.com>
398752284Sobrien
398852284Sobrien	* decl.c (grokdeclarator): Tighten checks for invalid
398952284Sobrien	destructors.  Improve error-messages and error-recovery.
399052284Sobrien	* decl2.c (check_classfn): Don't assume that mangled destructor
399152284Sobrien	names contain type information.
399252284Sobrien
399352284Sobrien1998-09-25  Jason Merrill  <jason@yorick.cygnus.com>
399452284Sobrien
399552284Sobrien	* search.c (get_base_distance): Remove assert.
399652284Sobrien
399752284Sobrien	* decl2.c (build_anon_union_vars): Don't process a field with no
399850397Sobrien	name.
399918334Speter	(finish_anon_union): Also complain about local anon unions with no
400050397Sobrien	members.
400150397Sobrien
400218334Speter1998-09-25  Martin von L�wis  <loewis@informatik.hu-berlin.de>
400352284Sobrien
400452284Sobrien	* decl.c (lookup_namespace_name): If the name is a namespace,
400552284Sobrien	return it immediately.
400652284Sobrien
400752284SobrienFri Sep 25 11:45:38 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
400852284Sobrien
400952284Sobrien	* cp-tree.h (define_case_label): Remove unused parameter.
401052284Sobrien	(check_java_method): Likewise.
401152284Sobrien	(grokclassfn): Likewise.
401252284Sobrien	(expand_aggr_init): Likewise.
401352284Sobrien	(build_x_delete): Likewise.
401452284Sobrien	(maybe_end_member_template_processing): Likewise.
401552284Sobrien	(unshare_base_binfos): Add prototype.
401652284Sobrien	(string_conv_p): Likewise.
401752284Sobrien	(my_friendly_abort): Mark with ATTRIBUTE_NORETURN.
401852284Sobrien
401952284Sobrien	* cvt.c (build_up_reference): Remove unused parameter
402050397Sobrien	`checkconst', all callers changed.
402118334Speter	(build_type_conversion): Mark parameter `code' with
402252284Sobrien	ATTRIBUTE_UNUSED.
402352284Sobrien	(build_expr_type_conversion): Initialize variable `conv'.
402452284Sobrien
402550397Sobrien	* decl.c (push_namespace): Initialize variable `d'.
402650397Sobrien	(define_case_label): Remove unused parameter `decl', all callers
402750397Sobrien	changed.
402818334Speter
402952284Sobrien	* decl2.c (lang_decode_option): If !USE_CPPLIB, mark parameter
403052284Sobrien	`argc' with ATTRIBUTE_UNUSED.
403152284Sobrien	(grokclassfn): Remove unused parameter `cname', all callers
403252284Sobrien	changed.
403352284Sobrien	(check_java_method): Likewise for parameter `ctype'.
403452284Sobrien	(copy_assignment_arg_p): Mark parameter `virtualp' with
403552284Sobrien	ATTRIBUTE_UNUSED.
403652284Sobrien	(finish_prevtable_vardecl): Likewise for parameter `prev'.
403752284Sobrien
403852284Sobrien	* expr.c (extract_init): Likewise for parameters `decl' and `init'.
403952284Sobrien
404052284Sobrien	* init.c (expand_aggr_init_1): Remove unused parameter
404152284Sobrien	`alias_this', all callers changed.
404252284Sobrien	(expand_aggr_init): Likewise.
404352284Sobrien	(expand_default_init): Likewise.
404452284Sobrien	(build_new_1): Initialize variable `susp'.
404552284Sobrien	(build_x_delete): Remove unused parameter `type', all callers
404652284Sobrien	changed.
404752284Sobrien
404852284Sobrien	* lex.c (set_typedecl_interface_info): Mark parameter `prev' with
404952284Sobrien	ATTRIBUTE_UNUSED.
405052284Sobrien	(readescape): Use (unsigned) value in shift.
405152284Sobrien	(real_yylex): Likewise.  Likewise.  Also cast `sizeof' to int when
405252284Sobrien	comparing to a signed quantity.
405352284Sobrien
405452284Sobrien	* pt.c (maybe_end_member_template_processing): Remove unused
405552284Sobrien	parameter `decl', all callers changed.
405652284Sobrien	(check_explicit_specialization): Add braces around empty body in
405752284Sobrien	an else-statement.
405852284Sobrien	(current_template_args): Initialize variable `args'.
405952284Sobrien	(lookup_template_class): Likewise for variable `prev_local_enum'.
406052284Sobrien	(tsubst_decl): Likewise for variable `r'.
406152284Sobrien	(set_mangled_name_for_template_decl): Initialize variable
406252284Sobrien	`context'.
406352284Sobrien
406452284Sobrien	* spew.c (scan_tokens): Change type of parameter `n' to unsigned.
406552284Sobrien	Likewise for variable `i'.
406652284Sobrien	(yylex): Initialize variable `trrr'.
406752284Sobrien
406852284Sobrien	* typeck.c (compparms): Mark variable `strict' with
406952284Sobrien	ATTRIBUTE_UNUSED.
407052284Sobrien
407152284Sobrien	* xref.c (simplify_type): Cast argument of ctype function to
407252284Sobrien	`unsigned char'.
407352284Sobrien
407452284Sobrien1998-09-24  Mark Mitchell  <mark@markmitchell.com>
407552284Sobrien
407652284Sobrien	* cp-tree.h (language_lvalue_valid): Remove.
407752284Sobrien	* decl.c (grokdeclarator): Don't disallow references to functions.
407852284Sobrien	* tree.c (lvalue_p_1): New function, combining duplicated
407950397Sobrien	code from ...
408018334Speter	(lvalue_p): Use it.
408150397Sobrien	(real_lvalue_p): Likewise.
408250397Sobrien	* typeck.c (language_lvalue_valid): Remove.
408352284Sobrien	(build_modify_expr): Treat FUNCTION_TYPEs as readonly, even though
408452284Sobrien	they don't have TREE_READONLY set.
408552284Sobrien	* typeck2.c (readonly_error): Add case for FUNCTION_DECLs.
408652284Sobrien
408752284Sobrien1998-09-24  Benjamin Kosnik  <bkoz@loony.cygnus.com>
408852284Sobrien
408950397Sobrien	* spew.c (yylex): Give diagnostic.
409050397Sobrien	* hash.h (is_reserved_word): Add export.
409150397Sobrien	* gxx.gperf: Likewise.
409252284Sobrien	* lex.h (rid): Add RID_EXPORT.
409352284Sobrien	* lex.c (init_parse): Likewise.
409450397Sobrien
409552284SobrienTue Sep 22 21:01:19 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
409652284Sobrien
409752284Sobrien	* friend.c (do_friend): Make warning a full sentence.
409852284Sobrien
409952284Sobrien1998-09-22  Mark Mitchell  <mark@markmitchell.com>
410052284Sobrien
410152284Sobrien	* parse.y (component_decl_list): Improve error-recovery.
410252284Sobrien
410352284Sobrien1998-09-22  Benjamin Kosnik  <bkoz@loony.cygnus.com>
410452284Sobrien
410552284Sobrien	* decl.c (make_typename_type): Move error to point where name
410652284Sobrien	variable can be used by dump_type.
410752284Sobrien
410852284Sobrien1998-09-22  Mark Mitchell  <mark@markmitchell.com>
410952284Sobrien
411052284Sobrien	* decl.c (grokfndecl): Improve error-recovery.
411152284Sobrien	* decl2.c (grokfield): Likewise.
411252284Sobrien	* pt.c (finish_member_template_decl): Likewise.
411352284Sobrien
411452284Sobrien1998-09-20  Martin von L�wis  <loewis@informatik.hu-berlin.de>
411552284Sobrien
411652284Sobrien	* method.c (hack_identifier): Finding multiple members is always
411752284Sobrien	an error.
411852284Sobrien
411952284Sobrien1998-09-21  Per Bothner  <bothner@cygnus.com>
412052284Sobrien
412152284Sobrien	* Make-lang.in (c++-filt):  Link libiberty.a after cxxmain.o.
412252284Sobrien
412352284SobrienMon Sep 21 01:53:05 1998  Felix Lee  <flee@cygnus.com>
412452284Sobrien
412552284Sobrien	* lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT ().
412652284Sobrien
412752284Sobrien1998-09-20  Mark Mitchell  <mark@markmitchell.com>
412852284Sobrien
412952284Sobrien	* class.c (maybe_warn_about_overly_private_class): Reformat.
413052284Sobrien
413152284Sobrien1998-09-17  Andrew MacLeod  <amacleod@cygnus.com>
413252284Sobrien
413352284Sobrien	* exception.cc (__cplus_type_matcher): Realign some code.
413452284Sobrien
413552284Sobrien1998-09-16  Mark Mitchell  <mark@markmitchell.com>
413652284Sobrien
413752284Sobrien	* Make-lang.in (tinfo.o): Use CXXFLAGS when compiling.
413852284Sobrien	(tinfo2.o): Likewise.
413952284Sobrien	(exception.o): Likewise.
414052284Sobrien	(new.o): Likewise.
414152284Sobrien	(opnew.o): Likewise.
414252284Sobrien	(opnewnt.o): Likewise.
414352284Sobrien	(opvnew.o): Likewise.
414452284Sobrien	(opvnewnt.o): Likewise.
414552284Sobrien	(opdel.o): Likewise.
414652284Sobrien	(opdelnt.o): Likewise.
414752284Sobrien	(opvdel.o): Likewise.
414852284Sobrien	(opvdelnt.o): Likewise.
414952284Sobrien
415052284Sobrien1998-09-16  Richard Henderson  <rth@cygnus.com>
415152284Sobrien
415252284Sobrien	* decl.c (init_decl_processing): Kill __builtin_fp and __builtin_sp.
415352284Sobrien
415452284Sobrien1998-09-15  Alexandre Oliva  <oliva@dcc.unicamp.br>
415552284Sobrien
415652284Sobrien	* call.c (build_field_call): Handle static data members too.
415752284Sobrien
415852284Sobrien	* typeck.c (comptypes): When comparing pointer types, check
415952284Sobrien	whether referred types match even in strictest modes.
416052284Sobrien
416152284Sobrien1998-09-15  Mark Mitchell  <mark@markmitchell.com>
416252284Sobrien
416352284Sobrien	* cp-tree.h: Revert previous change.
416452284Sobrien	(finish_struct_methods): Remove declaration.
416552284Sobrien	* class.c: Revert previous change.
416652284Sobrien	(maybe_warn_about_overly_private_class): New function.
416752284Sobrien	(finish_struct_methods): Declare here, and make static.  Remove
416852284Sobrien	unnecessary parameters.  Tidy slightly.  Use
416952284Sobrien	maybe_warn_about_overly_private_class.
417052284Sobrien	(finish_struct_1): Adjust.  Remove check for private constructors,
417152284Sobrien	now done elsewhere.
417252284Sobrien	(finish_struct): Adjust.
417352284Sobrien
417452284Sobrien1998-09-15  Andrew MacLeod  <amacleod@cygnus.com>
417552284Sobrien
417652284Sobrien	* except.c (expand_start_catch_block): No need to check for new
417752284Sobrien	exception model.
417852284Sobrien	(process_start_catch_block_old): Deleted.
417952284Sobrien	(process_start_catch_block): Add call to start_decl_1().
418052284Sobrien	(expand_end_catch_block): Add call to end_catch_handler().
418152284Sobrien	* exception.cc (__cplus_type_matcher): Only check the exception
418252284Sobrien	language if there is an exception table.
418352284Sobrien
418452284Sobrien1998-09-15  Andrew MacLeod  <amacleod@cygnus.com>
418552284Sobrien
418652284Sobrien	* search.c (expand_indirect_vtbls_init): Mark temporary stack slots
418752284Sobrien	as used to prevent conflicts with virtual function tables.
418852284Sobrien
418952284Sobrien1998-09-14  Mark Mitchell  <mark@markmitchell.com>
419052284Sobrien
419152284Sobrien	* cp-tree.h (lang_type): Add has_non_private_static_mem_fn.
419252284Sobrien	(CLASSTYPE_HAS_NON_PRIVATE_STATIC_MEM_FN): New macro, to access it.
419352284Sobrien	* class.c (maybe_class_too_private_p): New function.
419452284Sobrien	(finish_struct_methods): Use it.
419552284Sobrien	(finish_struct_1): Likewise.
419652284Sobrien	(finish_struct): Set CLASSTYPE_HAS_NON_PRIVATE_STATIC_MEM_FN if
419752284Sobrien	appropriate.
419852284Sobrien
419952284Sobrien	* pt.c (check_specialization_scope): Fix spelling error.
420052284Sobrien	(check_explicit_specialization): Remove code to handle explicit
420152284Sobrien	specializations in class scope; they are now correctly diagnosed
420252284Sobrien	as errors.
420352284Sobrien
420452284Sobrien1998-09-10  Mark Mitchell  <mark@markmitchell.com>
420552284Sobrien
420652284Sobrien	* decl.c (pushdecl): Don't copy types if the
420752284Sobrien	DECL_ABSTRACT_ORIGIN of the new decl matches the TYPE_NAME of the
420852284Sobrien	type.
420952284Sobrien
421052284Sobrien1998-09-09  Kriang Lerdsuwanakij  <lerdsuwa@scf-fs.usc.edu>
421152284Sobrien
421252284Sobrien	* class.c (get_enclosing_class): New function.
421352284Sobrien	(is_base_of_enclosing_class): Likewise.
421452284Sobrien	* cp-tree.h (get_enclosing_class): Declare.
421552284Sobrien	(is_base_of_enclosing_class): Likewise.
421652284Sobrien	* pt.c (coerce_template_parms): Use them.
421752284Sobrien
421852284Sobrien1998-09-09  Jason Merrill  <jason@yorick.cygnus.com>
421952284Sobrien
422052284Sobrien	* g++spec.c (lang_specific_driver): Check whether MATH_LIBRARY is
422152284Sobrien	null to decide whether to use it.
422252284Sobrien
422352284Sobrien	* error.c (dump_type_real): Handle NAMESPACE_DECL.
422452284Sobrien	* parse.y (base_class.1): Avoid crash on error.
422552284Sobrien
422652284Sobrien1998-09-08  Martin von L�wis  <loewis@informatik.hu-berlin.de>
422752284Sobrien
422852284Sobrien	* decl.c (make_typename_type): If context is a namespace, the code
422952284Sobrien	is in error.
423052284Sobrien
423152284Sobrien1998-09-08  Mumit Khan  <khan@xraylith.wisc.edu>
423252284Sobrien
423352284Sobrien	* parse.y (nomods_initdcl0): Set up the parser stack correctly.
423452284Sobrien
423552284Sobrien1998-09-08  Mark Mitchell  <mark@markmitchell.com>
423652284Sobrien
423752284Sobrien	* cp-tree.h (anonymous_namespace_name): Declare.
423852284Sobrien	* decl.c: Define it.
423952284Sobrien	(push_namespace): Use anonymous_namespace_name, rather than local
424052284Sobrien	static anon_name.
424152284Sobrien	* error.c (dump_decl): If a namespace is named
424252284Sobrien	anonymous_namespace_name, call it {anonymous}.
424352284Sobrien
424452284Sobrien	* decl.c (grokparms): Distinguish between references and pointers
424552284Sobrien	in error message.
424652284Sobrien
424752284Sobrien1998-09-08  Richard Henderson  <rth@cygnus.com>
424852284Sobrien	    Mark Mitchell  <mark@markmitchell.com>
424952284Sobrien
425052284Sobrien	* pt.c (process_partial_specialization): Consistently allocate
425152284Sobrien	and zero tpd.parms based on ntparms.  Use tpd2.parms, not
425252284Sobrien	tpd.parms, where appropriate.
425352284Sobrien
425452284SobrienSun Sep  6 00:00:51 1998  Jeffrey A Law  (law@cygnus.com)
425552284Sobrien
425652284Sobrien	* Makefile.in (INCLUDES): Update after recent toplevel gcc
425752284Sobrien	reorganizations.
425852284Sobrien
425952284Sobrien1998-09-05  Mark Mitchell  <mark@markmitchell.com>
426052284Sobrien
426152284Sobrien	* cp-tree.h (TI_PENDING_SPECIALIZATION_FLAG): Remove.
426252284Sobrien	* class.c (finish_struct): Remove hackery to deal with explicit
426352284Sobrien	specializations in class scope.
426452284Sobrien	* decl.c (grokfndecl): Improve error-recovery.
426552284Sobrien	* decl2.c (grokfield): Likewise.
426652284Sobrien	* pt.c (check_specialization_scope): New function.
426752284Sobrien	(begin_specialization): Call it.
426852284Sobrien	(process_partial_specialization): New function, split out from
426952284Sobrien	push_template_decl.  Check partial specializations more
427052284Sobrien	stringently.
427152284Sobrien	(push_template_decl): Call it.
427252284Sobrien	(check_explicit_specialization): Don't attempt to handle explicit
427352284Sobrien	specializations in class scope.
427452284Sobrien	(template_parm_data): Document.  Add current_arg and
427552284Sobrien	arg_uses_template_parms.
427652284Sobrien	(mark_template_parm): Set it.
427752284Sobrien	(tsubst_arg_types): Remove unused variable.
427852284Sobrien	* semantics.c (begin_class_definition): Tweak.
427952284Sobrien
428052284Sobrien1998-09-04  Mark Mitchell  <mark@markmitchell.com>
428152284Sobrien
428252284Sobrien	* inc/typeinfo (type_info::type_info(const char*)): Make
428352284Sobrien	`explicit'.
428452284Sobrien
428552284Sobrien	* cp-tree.h (hash_tree_cons_simple): New macro.
428652284Sobrien	* pt.c (tsubst_arg_types): New function.  Use hash_tree_cons.
428752284Sobrien	(coerce_template_parms): Use make_temp_vec, instead of
428852284Sobrien	make_tree_vec.  Document this behavior.
428952284Sobrien	(lookup_template_class): Likewise.
429052284Sobrien	(tsubst, cases METHOD_TYPE, FUNCTION_TYPE): Use tsubst_arg_types.
429152284Sobrien	Remove dead code (and add assertion to check its deadness).  Fix
429252284Sobrien	bug w.r.t. exception specifications.
429352284Sobrien
429452284Sobrien1998-09-03  Jason Merrill  <jason@yorick.cygnus.com>
429552284Sobrien
429652284Sobrien	* decl2.c (import_export_vtable): Always make artificials comdat.
429752284Sobrien	(import_export_decl): Likewise.
429852284Sobrien	* pt.c (mark_decl_instantiated): Likewise.
429952284Sobrien
430052284Sobrien1998-09-03  Mark Mitchell  <mark@markmitchell.com>
430152284Sobrien
430252284Sobrien	* cp-tree.h (finish_globally_qualified_member_call_expr):
430352284Sobrien	Rename to ...
430452284Sobrien	(finish_qualified_call_expr).
430552284Sobrien	* semantics.c: Likewise.
430652284Sobrien	* parse.y (primary): Use it.
430752284Sobrien	* method.c (hack_identifier): Remove redundant code.
430852284Sobrien
430952284Sobrien	* init.c (resolve_offset_ref): Call convert_from_reference to
431052284Sobrien	handle members of reference type.  Improve error recovery.
431152284Sobrien
431252284Sobrien1998-09-03  Benjamin Kosnik  <bkoz@cygnus.com>
431352284Sobrien
431452284Sobrien	* cp-tree.h: Declare warn_nontemplate_friend.
431552284Sobrien	* decl2.c (lang_decode_option): Set.
431652284Sobrien	* lang-options.h: Add -Wnon-template-friend.
431752284Sobrien	* friend.c (do_friend): Use to toggle non-template function warning.
431852284Sobrien
431952284Sobrien1998-09-03  Mark Mitchell  <mark@markmitchell.com>
432052284Sobrien
432152284Sobrien	* decl.c (finish_enum): Don't resolve CONST_DECLs to their
432252284Sobrien	corresponding INTEGER_CSTs when processing_template_decl.
432352284Sobrien	* pt.c (tsubst_enum): Tweak accordingly.
432452284Sobrien
432552284Sobrien1998-09-03  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
432652284Sobrien
432752284Sobrien	* decl.c (pushdecl_class_level): Add warning here.
432852284Sobrien	(pushdecl): Tweak.
432952284Sobrien
433052284Sobrien1998-09-02  Jason Merrill  <jason@yorick.cygnus.com>
433152284Sobrien
433252284Sobrien	* cvt.c (convert_pointer_to_real): Tidy.
433352284Sobrien	* search.c (get_base_distance_recursive): Simplify.
433452284Sobrien	(get_base_distance): Likewise.
433552284Sobrien
433652284Sobrien	* pt.c (unify): Only special-case INTEGER_TYPE if it uses template
433752284Sobrien	parms.
433852284Sobrien
433952284SobrienWed Sep 02 09:25:29 1998  Nick Clifton  <nickc@cygnus.com>
434052284Sobrien
434152284Sobrien	* lex.c (check_newline):  Call HANDLE_PRAGMA before
434252284Sobrien	HANDLE_SYSV_PRAGMA if both are defined.  Generate warning messages
434352284Sobrien	if unknown pragmas are encountered.
434452284Sobrien	(handle_sysv_pragma): Interpret return code from
434552284Sobrien	handle_pragma_token ().  Return success/failure indication rather
434652284Sobrien	than next unprocessed character.
434752284Sobrien	(pragma_getc): New function: retrieves characters from the
434852284Sobrien	input stream.  Defined when HANDLE_PRAGMA is defined.
434952284Sobrien	(pragma_ungetc): New function: replaces characters back into the
435052284Sobrien	input stream.  Defined when HANDLE_PRAGMA is defined.
435152284Sobrien
435252284Sobrien1998-09-01  Jason Merrill  <jason@yorick.cygnus.com>
435352284Sobrien
435452284Sobrien	* decl2.c (output_vtable_inherit): Use %cDIGIT in the operands.
435552284Sobrien	* class.c (build_vtable_entry_ref): Likewise.
435652284Sobrien
435752284Sobrien1998-09-01  Mark Mitchell  <mark@markmitchell.com>
435852284Sobrien
435952284Sobrien	* cp-tree.h (DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION): New macro.
436052284Sobrien	* decl2.c (import_export_decl): Likewise.
436152284Sobrien	* pt.c (instantiate_decl): Use it.
436252284Sobrien
436350397Sobrien1998-09-01  Jason Merrill  <jason@yorick.cygnus.com>
436450397Sobrien
436552284Sobrien	* decl.c (lookup_name_real): Also do implicit typename thing for
436652284Sobrien	artificial TYPE_DECLs.
436752284Sobrien	* search.c (lookup_field): Likewise.
436852284Sobrien	(lookup_fnfields, lookup_field): Adjust for implicit typename kludge.
436952284Sobrien	* semantics.c (begin_constructor_declarator): Use enter_scope_of.
437052284Sobrien	(enter_scope_of): Extract type from implicit typename.
437152284Sobrien	(begin_class_definition): Likewise.
437252284Sobrien	* lex.c (identifier_type): Handle implicit typename when checking
437352284Sobrien	for SELFNAME.
437452284Sobrien
437552284Sobrien	* cp-tree.h: Declare flag_strict_prototype.
437652284Sobrien	* lex.c (do_scoped_id, do_identifier): Don't implicitly_declare if
437752284Sobrien	-fstrict-prototype.
437852284Sobrien	* decl.c (init_decl_processing): If -f{no,-}strict-prototype wasn't
437952284Sobrien	specified, set it to the value of pedantic.
438052284Sobrien
438152284Sobrien1998-09-01  Mark Mitchell  <mark@markmitchell.com>
438252284Sobrien
438352284Sobrien	* decl2.c (arg_assoc): Handle template-id expressions as arguments.
438452284Sobrien
438552284Sobrien1998-08-31  Mark Mitchell  <mark@markmitchell.com>
438652284Sobrien
438752284Sobrien	* decl.c (finish_enum): Handle member enums of classes declared in
438852284Sobrien	template functions.
438952284Sobrien
439052284Sobrien	* decl2.c (grok_x_components): Strip attributes before calling
439152284Sobrien	groktypename.
439252284Sobrien
439352284Sobrien1998-08-31  Jason Merrill  <jason@yorick.cygnus.com>
439452284Sobrien
439552284Sobrien	* cp-tree.h, decl2.c: Remove support for -fall-virtual,
439652284Sobrien	-fenum-int-equivalence and -fno-nonnull-objects.
439752284Sobrien	* class.c (check_for_override): Remove support for -fall-virtual.
439852284Sobrien	(finish_struct_1): Likewise.
439952284Sobrien	* call.c (build_new_op): Remove support for -fenum-int-equivalence.
440052284Sobrien	* typeck.c (build_binary_op_nodefault): Likewise.
440152284Sobrien	* cvt.c (ocp_convert): Likewise.
440252284Sobrien	* call.c (build_vfield_ref): Remove support for -fno-nonnull-objects.
440352284Sobrien	* class.c (build_vbase_path): Likewise.
440452284Sobrien
440552284SobrienSun Aug 30 22:16:31 1998  H.J. Lu  (hjl@gnu.org)
440652284Sobrien
440752284Sobrien	* Makefile.in (INTERFACE): New, set to 1.
440852284Sobrien
440952284Sobrien1998-08-30  Mark Mitchell  <mark@markmitchell.com>
441052284Sobrien
441152284Sobrien	* error.c (dump_decl): Use CP_DECL_CONTEXT, not DECL_CONTEXT, when
441252284Sobrien	comparing with global_namespace.
441352284Sobrien	(dump_aggr_type): Likewise.
441452284Sobrien
441552284Sobrien	* decl.c (grokfndecl): Issue error on declaration of friend
441652284Sobrien	templates with explicit template arguments.
441752284Sobrien
441852284Sobrien	* pt.c (convert_template_argument): New function, split out
441952284Sobrien	from...
442052284Sobrien	(coerce_template_parms): Here.
442152284Sobrien	(tsubst): Attempt better error-recovery.
442252284Sobrien
442352284Sobrien1998-08-28  Benjamin Kosnik  <bkoz@loony.cygnus.com>
442452284Sobrien
442552284Sobrien	* pt.c (decl_template_parm_p): Add checks for
442652284Sobrien	TEMPLATE_TEMPLATE_PARM.
442752284Sobrien
442852284Sobrien1998-08-28  Mark Mitchell  <mark@markmitchell.com>
442952284Sobrien
443052284Sobrien	* lex.c (do_identifier): Fix thinko in previous change.
443152284Sobrien
443252284Sobrien1998-08-28  Jason Merrill  <jason@yorick.cygnus.com>
443352284Sobrien
443452284Sobrien	* search.c (dfs_search, binfo_for_vtable, dfs_bfv_helper): New fns.
443552284Sobrien	* decl2.c (output_vtable_inherit): Call binfo_for_vtable.
443652284Sobrien
443752284Sobrien1998-08-28  Richard Henderson  <rth@cygnus.com>
443852284Sobrien
443952284Sobrien	Add support for discarding unused virtual functions.
444052284Sobrien	* lang-options.h: Add -fvtable-gc.
444152284Sobrien	* cp-tree.h: Add flag_vtable_gc.
444252284Sobrien	* decl2.c (output_vtable_inherit): New fn.
444352284Sobrien	(finish_vtable_vardecl): Call it.
444452284Sobrien	* class.c (build_vtable_entry_ref): New fn.
444552284Sobrien	(build_vtbl_ref): Call it.
444652284Sobrien
444752284Sobrien1998-08-28  Mark Mitchell  <mark@markmitchell.com>
444852284Sobrien
444952284Sobrien	* cp-tree.h (build_enumerator): Take the enumeration type as a
445052284Sobrien	parameter.
445152284Sobrien	* decl.c (finish_enum): Don't set the TREE_TYPE for the
445252284Sobrien	enumeration constant values if we're processing_template_decls.
445352284Sobrien	Don't set the type for the CONST_DECLs either; that's done in
445452284Sobrien	build_enumerator.
445552284Sobrien	(build_enumerator): Take the enumeration type as a
445652284Sobrien	parameter.
445752284Sobrien	* lex.c (do_identifier): Don't resolve enumeration constants while
445852284Sobrien	processing template declarations, even if they happen to be
445952284Sobrien	TEMPLATE_PARM_INDEXs.
446052284Sobrien
446152284Sobrien	* parse.y (current_enum_type): New variable.
446252284Sobrien	(primary): Don't allow statement-expression in local classes just
446352284Sobrien	as we don't in global classes.
446452284Sobrien	(structsp): Use current_enum_type.
446552284Sobrien	(enum_list): Likewise.
446652284Sobrien	* pt.c (tsubst_enum): Don't check for NOP_EXPRs introduced by
446752284Sobrien	finish_enum; they no longer occur.
446852284Sobrien
446952284Sobrien	* cp-tree.h (finish_base_specifier): New function.
447052284Sobrien	* parse.y (base_class): Use it.
447152284Sobrien	* semantics.c (finish_base_specifier): Define it.
447252284Sobrien
447352284Sobrien	* parse.y (structsp): Warn on use of typename outside of template
447452284Sobrien	declarations.
447552284Sobrien
447652284Sobrien1998-08-27  Jason Merrill  <jason@yorick.cygnus.com>
447752284Sobrien
447852284Sobrien	* lex.c (handle_cp_pragma): Remove #pragma vtable.
447952284Sobrien	* lang-options.h: Remove +e options.
448052284Sobrien	* decl2.c (lang_decode_option): Likewise.
448152284Sobrien	(import_export_vtable): Don't check write_virtuals.
448252284Sobrien	(finish_vtable_vardecl, finish_file): Likewise.
448352284Sobrien	* search.c (dfs_debug_mark): Likewise.
448452284Sobrien	* semantics.c (begin_class_definition): Likewise.
448552284Sobrien	* class.c (build_vtable, finish_vtbls, finish_struct_1): Likewise.
448652284Sobrien
448752284Sobrien	* call.c (build_over_call): Check flag_elide_constructors.
448852284Sobrien	* decl2.c: flag_elide_constructors defaults to 1.
448952284Sobrien	* typeck.c (convert_arguments): Remove return_loc parm.
449052284Sobrien	(build_function_call_real): Adjust.
449152284Sobrien
449252284Sobrien	* search.c: Tear out all mi_matrix and memoize code.
449352284Sobrien	(lookup_field, lookup_fnfields): Use scratch_tree_cons.
449452284Sobrien	* lang-options.h: Remove documentation for -fhandle-exceptions,
449552284Sobrien	-fmemoize-lookups and -fsave-memoized.
449652284Sobrien	* cp-tree.h: Lose mi_matrix and memoize support.
449752284Sobrien	* decl2.c: Ignore -fmemoize-lookups and -fsave-memoized.
449852284Sobrien	* class.c: Lose struct class_level.
449952284Sobrien	(pushclass, popclass): Lose memoize support.
450052284Sobrien	* init.c (build_offset_ref): Likewise.
450152284Sobrien
450252284Sobrien	Never change BINFO_INHERITANCE_CHAIN.
450352284Sobrien	* init.c (emit_base_init): Change modification of
450452284Sobrien	BINFO_INHERITANCE_CHAIN to an assert.
450552284Sobrien	* search.c (get_base_distance_recursive): Likewise.
450652284Sobrien	(get_base_distance): Likewise.
450752284Sobrien	(lookup_member): Likewise.
450852284Sobrien	(convert_pointer_to_single_level): Likewise.
450952284Sobrien	(lookup_field): Likewise.  Lose setting TREE_VIA_* on TREE_LISTs.
451052284Sobrien	(lookup_fnfields): Likewise.
451152284Sobrien	* tree.c (propagate_binfo_offsets): Don't call unshare_base_binfos.
451252284Sobrien	(unshare_base_binfos): Don't call propagate_binfo_offsets.
451352284Sobrien	(layout_basetypes): Call propagate_binfo_offsets instead of
451452284Sobrien	unshare_base_binfos.
451552284Sobrien	* decl.c (xref_basetypes): Call unshare_base_binfos.
451652284Sobrien	* pt.c (instantiate_class_template): Likewise.
451752284Sobrien	* tree.c (reverse_path): Remove 'copy' parm; always make a
451852284Sobrien	temporary copy.
451952284Sobrien	* class.c (build_vbase_path): Just call it.
452052284Sobrien	* search.c (compute_access): Likewise.  Don't re-reverse.
452152284Sobrien
452252284Sobrien1998-08-27  Mark Mitchell  <mark@markmitchell.com>
452352284Sobrien
452452284Sobrien	* class.c (build_vbase_path): Use reverse_path.
452552284Sobrien	(finish_base_struct): Move warnings for inaccessible bases to
452652284Sobrien	layout_basetypes.
452752284Sobrien	(modify_one_vtable): Remove check of TREE_USED (binfo).
452852284Sobrien	(fixup_vtable_deltas1): Likewise.
452952284Sobrien	* cp-tree.h (BINFO_INHERITANCE_CHAIN): Document here.
453052284Sobrien	(xref_tag): Remove binfos parameter.
453152284Sobrien	(make_binfo): Remove chain parameter.
453252284Sobrien	(reverse_path): Add copy parameter.
453352284Sobrien	* decl.c (init_decl_processing): Change calls to xref_tag.
453452284Sobrien	(xref_tag): Remove binfos parameter.
453552284Sobrien	(xref_basetypes): Change calls to make_binfo.
453652284Sobrien	* decl2.c (grok_x_components): Change calls to xref_tag.
453752284Sobrien	(handle_class_head): Likewise.
453852284Sobrien	* friend.c (do_friend): Likewise.
453952284Sobrien	* lex.c (make_lang_type): Change calls to make_binfo.
454052284Sobrien	* parse.y (structsp): Change calls to xref_tag.
454152284Sobrien	(named_complex_class_head_sans_basetype): Likewise.
454252284Sobrien	(named_class_head): Likewise.
454352284Sobrien	* rtti.c (init_rtti_processing): Likewise.
454452284Sobrien	* search.c (compute_access): Change calls to reverse_path.
454552284Sobrien	(dfs_get_vbase_types): Change calls to make_binfo.
454652284Sobrien	(get_vbase_types): Remove dead code.
454752284Sobrien	* tree.c (unshare_base_binfos): Change calls to make_binfo.
454852284Sobrien	(layout_basetypes): Warn here about inaccessible bases.
454952284Sobrien	(make_binfo): Remove chain parameter.
455052284Sobrien	(reverse_path): Add copy parameter.
455152284Sobrien
455252284Sobrien1998-08-27  Jason Merrill  <jason@yorick.cygnus.com>
455352284Sobrien
455452284Sobrien	* class.c: #if 0 complete_type_p.
455552284Sobrien	* init.c (build_java_class_ref, build_new_1): Remove unused locals.
455652284Sobrien	* method.c (process_overload_item): Likewise.
455752284Sobrien	* typeck.c (comp_target_types): Likewise.
455852284Sobrien
455952284Sobrien	Stop sharing binfos for indirect virtual bases.
456052284Sobrien	* tree.c (propagate_binfo_offsets): Unshare vbases, too.
456152284Sobrien	(layout_basetypes): Likewise.
456252284Sobrien	(unshare_base_binfos): Copy vbases, too.
456352284Sobrien	* cp-tree.h (BINFO_VIA_PUBLIC, BINFO_BASEINIT_MARKED,
456452284Sobrien	BINFO_VBASE_INIT_MARKED): Remove obsolete macros.
456552284Sobrien	(BINFO_PUSHDECLS_MARKED, SET_BINFO_PUSHDECLS_MARKED,
456652284Sobrien	CLEAR_BINFO_PUSHDECLS_MARKED): New macros.
456752284Sobrien	* search.c (lookup_field, lookup_fnfields, lookup_member): Remove
456852284Sobrien	reference to BINFO_VIA_PUBLIC.
456952284Sobrien	(marked_pushdecls_p, unmarked_pushdecls_p): New fns.
457052284Sobrien	(push_class_decls): Use them.
457152284Sobrien	(dfs_pushdecls): Use SET_BINFO_PUSHDECLS_MARKED.
457252284Sobrien	(dfs_compress_decls): Use CLEAR_BINFO_PUSHDECLS_MARKED.
457352284Sobrien
457452284Sobrien1998-08-27  Mark Mitchell  <mark@markmitchell.com>
457552284Sobrien
457652284Sobrien	* decl.c (build_enumerator): Set DECL_CONTEXT for the
457752284Sobrien	CONST_DECLs.
457852284Sobrien
457952284Sobrien1998-08-26  Mark Mitchell  <mark@markmitchell.com>
458052284Sobrien
458152284Sobrien	* cp-tree.h (finish_enum): Change prototype.
458252284Sobrien	* decl.c (finish_enum): Use TYPE_VALUES, rather than taking a
458352284Sobrien	VALUES parameter.  Don't try to compute mins/maxs if
458452284Sobrien	processing_template_decl.
458552284Sobrien	* parse.y (structsp): Use new calling sequence for finish_enum.
458652284Sobrien	* pt.c (tsubst_enum): Likewise.  Take the new type as input.
458752284Sobrien	(lookup_template_class): Remove unused variables.  Tweak.
458852284Sobrien	Register enums on instantiation list before substituting
458952284Sobrien	enumeration constants.
459052284Sobrien	(tsubst_decl): Remove unused variables.
459152284Sobrien	(regenerate_decl_from_template): Likewise.
459252284Sobrien
459352284Sobrien	* decl.c (duplicate_decls): Don't obliterate the
459452284Sobrien	DECL_TEMPLATE_INFO for a template if we're not replacing it with
459552284Sobrien	anything.
459652284Sobrien
459752284Sobrien	* lex.c (do_identifier): Fix typo in comment.
459852284Sobrien
459952284SobrienWed Aug 26 10:54:51 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
460052284Sobrien
460152284Sobrien	* errfn.c: Remove stdarg.h/varargs.h.
460252284Sobrien	* tree.c: Likewise.
460352284Sobrien
460452284Sobrien1998-08-25  Brendan Kehoe  <brendan@cygnus.com>
460552284Sobrien
460652284Sobrien	* pt.c (tsubst_copy): Only do typename overloading on an
460752284Sobrien	IDENTIFIER_NODE that happens to look like a typename if it actually
460852284Sobrien	has a type for us to use.
460952284Sobrien
461052284Sobrien1998-08-25  Jason Merrill  <jason@yorick.cygnus.com>
461152284Sobrien
461252284Sobrien	* typeck.c (comp_cv_target_types): Split out...
461352284Sobrien	(comp_target_types): From here.  Don't allow cv-qual changes under
461452284Sobrien	a pointer if nptrs == 0.  Fix OFFSET_TYPE handling.
461552284Sobrien	(build_ptrmemfunc): Pass 1 to nptrs.
461652284Sobrien	* cvt.c (perform_qualification_conversions): Use comp_ptr_ttypes.
461752284Sobrien
461852284Sobrien1998-08-25  Mark Mitchell  <mark@markmitchell.com>
461952284Sobrien
462052284Sobrien	* search.c (dependent_base_p): Don't compare a binfo to
462152284Sobrien	current_class_type; use the TREE_TYPE of the binfo instead.
462252284Sobrien
462352284Sobrien	* cp-tree.h (CLASS_TYPE_P): Revise definition.
462452284Sobrien
462552284Sobrien1998-08-25  Jason Merrill  <jason@yorick.cygnus.com>
462652284Sobrien
462752284Sobrien	* decl.c (duplicate_decls): Don't complain about different
462852284Sobrien	exceptions from an internal decl even if pedantic.
462952284Sobrien
463052284Sobrien	* typeck.c (convert_for_assignment): Converting from pm of vbase
463152284Sobrien	to derived is an error, not a sorry.
463252284Sobrien
463352284Sobrien	* call.c (build_over_call): Use convert_pointer_to_real for 'this'.
463452284Sobrien	* class.c (fixed_type_or_null): Rename from
463552284Sobrien	resolves_to_fixed_type_p.  Return the dynamic type of the
463652284Sobrien	expression, if fixed, or null.
463752284Sobrien	(resolves_to_fixed_type_p): Use it.  Return 0 if the dynamic type
463852284Sobrien	does not match the static type.
463952284Sobrien	(build_vbase_path): Rename 'alias_this' to 'nonnull'.  Use
464052284Sobrien	resolves_to_fixed_type_p again.
464152284Sobrien
464252284Sobrien1998-08-24  Mark Mitchell  <mark@markmitchell.com>
464352284Sobrien
464452284Sobrien	* pt.c (tsubst_decl): Move special case code for dealing with
464552284Sobrien	tricky friend templates here from ...
464652284Sobrien	(regenerate_decl_from_template): Here.
464752284Sobrien
464852284Sobrien1998-08-24  Jason Merrill  <jason@yorick.cygnus.com>
464952284Sobrien
465052284Sobrien	* decl.c (start_decl): Remove redundant linkage check.
465152284Sobrien
465252284Sobrien1998-08-24  Gavin Romig-Koch  <gavin@cygnus.com>
465352284Sobrien
465452284Sobrien	* typeck.c (c_expand_return): Handle the case that valtype
465552284Sobrien	is wider than the functions return type.
465652284Sobrien
465752284Sobrien1998-08-24  Mark Mitchell  <mark@markmitchell.com>
465852284Sobrien
465952284Sobrien	* cp-tree.h (CLASS_TYPE_P): New macro.
466052284Sobrien	* decl.c (grokdeclarator): Use it instead of IS_AGGR_TYPE.
466152284Sobrien	* pt.c (process_template_parm): Undo previous change.
466252284Sobrien
466352284Sobrien1998-08-24  Benjamin Kosnik  <bkoz@cygnus.com>
466452284Sobrien
466552284Sobrien	* cp-tree.h: Declare.
466652284Sobrien	* pt.c (decl_template_parm_p): New function.
466752284Sobrien	* decl.c (pushdecl): Check decls for redeclaring template parms.
466852284Sobrien	(xref_tag): Make redeclaration an error, print decl.
466952284Sobrien	* decl2.c (grokfield): Check field_decls for redeclaration as well.
467052284Sobrien
467152284Sobrien1998-08-24  Jason Merrill  <jason@yorick.cygnus.com>
467252284Sobrien
467352284Sobrien	* parse.y (primary): Fix up the type of string constants.
467452284Sobrien
467552284Sobrien1998-08-24  Mark Mitchell  <mark@markmitchell.com>
467652284Sobrien
467752284Sobrien	* typeck.c (convert_for_initialization): Move check for odd uses
467852284Sobrien	of NULL to avoid duplicate warnings.
467952284Sobrien
468052284Sobrien1998-08-24  Jason Merrill  <jason@yorick.cygnus.com>
468152284Sobrien
468252284Sobrien	* tree.c (lvalue_type): Fix for arrays.
468352284Sobrien	* typeck.c (string_conv_p): New fn.
468452284Sobrien	(convert_for_assignment): Use it.
468552284Sobrien	(build_unary_op): Use lvalue_type.
468652284Sobrien	* call.c (standard_conversion, convert_like): Use string_conv_p.
468752284Sobrien	(add_function_candidate): Use lvalue_type.
468852284Sobrien	* cvt.c (convert_to_reference): Likewise.
468952284Sobrien	* decl2.c (lang_decode_option): Ignore -traditional.
469052284Sobrien	* decl.c (init_decl_processing): flag_writable_strings inhibits
469152284Sobrien	flag_const_strings.
469252284Sobrien
469352284Sobrien1998-08-24  Andrew MacLeod  <amacleod@cygnus.com>
469452284Sobrien
469552284Sobrien	* lang-options.h (lang_options): Add fconst-strings to the list
469652284Sobrien	of valid options.
469752284Sobrien	* decl2.c (lang_f_options, lang_decode_option): Likewise.
469852284Sobrien
469952284Sobrien1998-08-24  Nathan Sidwell  <nathan@acm.org>
470052284Sobrien
470152284Sobrien	* lex.c (real_yylex): Don't warn about long long constants if
470252284Sobrien	we're allowing long long.
470352284Sobrien
470452284Sobrien1998-08-24  Martin von L�wis  <loewis@informatik.hu-berlin.de>
470552284Sobrien
470652284Sobrien	* decl.c (pushdecl): Use IDENTIFIER_NAMESPACE_VALUE instead of
470752284Sobrien	accessing bindings directly.
470852284Sobrien
470952284Sobrien	* search.c (my_tree_cons): Reimplement.
471052284Sobrien
471152284Sobrien	* lang-specs.h: Remove __HONOR_STD.
471252284Sobrien	* inc/exception, inc/new, inc/new.h, inc/typeinfo: Likewise.
471352284Sobrien
471452284Sobrien1998-08-23  Mark Mitchell  <mark@markmitchell.com>
471552284Sobrien
471652284Sobrien	* decl.c (grokdeclarator): Complain about in-class initialization
471752284Sobrien	of aggregates and/or references.
471852284Sobrien	* pt.c (process_template_parm): Clear IS_AGGR_TYPE for
471952284Sobrien	TEMPLATE_TYPE_PARMs.
472052284Sobrien
472152284Sobrien	* decl2.c (grok_array_decl): Add comment.
472252284Sobrien	(mark_used): Don't instantiate an explicit instantiation.
472352284Sobrien	* friend.c (make_friend_class): Remove bogus comment.  Fix check
472452284Sobrien	for partial specializations.
472552284Sobrien	* pt.c (check_explicit_specialization): Don't
472652284Sobrien	SET_DECL_EXPLICIT_INSTANTIATION here.
472752284Sobrien	(mark_decl_instantiated): Or here.
472852284Sobrien	(do_decl_instantiation): Do it here, instead.  Add checks for
472952284Sobrien	duplicate explicit instantiations, etc.  Tidy.
473052284Sobrien	(do_type_instantiation): Likewise.
473152284Sobrien	(instantiate_decl): Improve comments.  Complain about explicit
473252284Sobrien	instantiations where no definition is available.
473352284Sobrien
473452284Sobrien	* cp-tree.h (ansi_null_node): Remove.
473552284Sobrien	* call.c (build_over_call): Warn about converting NULL to an
473652284Sobrien	arithmetic type.
473752284Sobrien	* cvt.c (build_expr_type_conversion): Likewise.  Use
473852284Sobrien	null_ptr_cst_p instead of expanding it inline.
473952284Sobrien	* decl.c (ansi_null_node): Remove.
474050397Sobrien	(init_decl_processing): Make null_node always have integral type.
474150397Sobrien	* except.c (build_throw): Warn about converting NULL to an
474252284Sobrien	arithmetic type.
474352284Sobrien	* lex.c (init_parse): Remove handling of ansi_null_node.
474452284Sobrien	* pt.c (type_unification_real): Don't convert NULL to void* type.
474552284Sobrien	* typeck.c (build_binary_op_nodefault): Fix NULL warnings.
474652284Sobrien	(convert_for_assignment): Warn about converting NULL to an
474752284Sobrien	arithmetic type.
474852284Sobrien	(convert_for_initialization): Likewise.
474952284Sobrien
475052284Sobrien1998-08-20  Jason Merrill  <jason@yorick.cygnus.com>
475152284Sobrien
475252284Sobrien	* tree.c (search_tree, no_linkage_helper, no_linkage_check): New fn.
475352284Sobrien	* pt.c (coerce_template_parms): Use no_linkage_check.
475452284Sobrien	* decl.c (grokvardecl): Likewise.
475552284Sobrien	(grokfndecl): Likewise.  Members of anonymous types have no linkage.
475652284Sobrien
475750397Sobrien	* method.c (process_overload_item): Remove useless code.
475850397Sobrien
475950397Sobrien1998-08-20  Per Bothner  <bothner@cygnus.com>
476052284Sobrien
476152284Sobrien	Handle new'ing of Java classes.
476252284Sobrien	* init.c (build_class_classref):  New function.
476352284Sobrien	(build_new_1):  If type is TYPE_FOR_JAVA:  Call _Jv_AllocObject;
476452284Sobrien	constructor does not return this;  don't need to exception-protect.
476552284Sobrien
476652284Sobrien	* pt.c (lookup_template_class):  Copy TYPE_FOR_JAVA flag.
476752284Sobrien	* decl2.c (acceptable_java_type):  Handle template-derived types.
476852284Sobrien
476952284Sobrien1998-08-20  Per Bothner  <bothner@cygnus.com>
477052284Sobrien
477152284Sobrien	* decl2.c (import_export_vtable):  Suppress vtables for Java classes.
477252284Sobrien
477352284Sobrien1998-08-20  Mark Mitchell  <mark@markmitchell.com>
477452284Sobrien
477552284Sobrien	* decl.c (duplicate_decls): Always merge the old and new patterns
477652284Sobrien	for templates, regardless of whether or not the new one has
477752284Sobrien	DECL_INITIAL.  Don't throw away specializations.  Merge
477852284Sobrien	DECL_SAVED_TREE.
477952284Sobrien	* pt.c (tsubst_decl): Use the right pattern when calculating the
478052284Sobrien	complete args for a new template instance.
478152284Sobrien	(do_decl_instantiation): Fix typo in comment.
478250397Sobrien	(regenerate_decl_from_template): Deal with tricky friend template
478350397Sobrien	case.
478450397Sobrien	(instantiate_decl): Likewise.
478550397Sobrien
478650397SobrienThu Aug 20 09:09:45 1998  Jeffrey A Law  (law@cygnus.com)
478752284Sobrien
478852284Sobrien	* init.c (build_builtin_delete_call): Add missing assemble_external
478952284Sobrien	call.
479052284Sobrien
479152284Sobrien1998-08-20  Jason Merrill  <jason@yorick.cygnus.com>
479252284Sobrien
479352284Sobrien	* parse.y (notype_unqualified_id): Also accept ~A<int>.
479452284Sobrien
479552284Sobrien1998-08-19  Mark Mitchell  <mark@markmitchell.com>
479652284Sobrien
479752284Sobrien	* typeck.c (build_binary_op_nodefault): Warn on use of NULL in
479852284Sobrien	arithmetic.
479952284Sobrien	* except.c (build_throw): Warn when NULL is thrown, even with
480052284Sobrien	-ansi.  Use ansi_null_node, rather than integer_zero_node, in the
480152284Sobrien	thrown expression.
480252284Sobrien
480352284Sobrien	* cp-tree.h (ansi_null_node): New variable.
480452284Sobrien	* decl.c (ansi_null_node): New variable.
480552284Sobrien	(init_decl_processing): Initialize its type.
480652284Sobrien	* lex.c (init_parse): Initialize its value.  Use ansi_null_node
480752284Sobrien	for null_node in non-ANSI mode.
480852284Sobrien	* typeck.c (build_binary_op_nodefault): Use ansi_null_node in
480952284Sobrien	place of null_node to avoid spurious errors.
481052284Sobrien
481152284Sobrien1998-08-17  Mark Mitchell  <mark@markmitchell.com>
481252284Sobrien
481352284Sobrien	* cp-tree.h (enter_scope_of): New function.
481452284Sobrien	* parse.y (complex_direct_notype_declarator): Use it.
481552284Sobrien	* semantics.c (enter_scope_of): New function.
481652284Sobrien
481752284Sobrien1998-08-17  Jason Merrill  <jason@yorick.cygnus.com>
481852284Sobrien
481952284Sobrien	* decl.c (grokparms): No, here.
482052284Sobrien
482152284Sobrien	* decl.c (grokdeclarator): Catch parm with pointer to array of
482252284Sobrien	unknown bound here...
482352284Sobrien	* method.c (process_overload_item): ...not here.
482452284Sobrien
482552284Sobrien	* gxxint.texi: Remove obsolete documentation of overloading code.
482652284Sobrien
482752284Sobrien	* decl.c (finish_enum): Also set TYPE_SIZE_UNIT.
482852284Sobrien	* class.c (finish_struct_bits): Likewise.
482952284Sobrien
483052284Sobrien	* tree.c (lvalue_type): Fix for arrays.
483152284Sobrien	* typeck.c (build_unary_op): Use lvalue_type.
483252284Sobrien	* call.c (add_function_candidate): Likewise.
483352284Sobrien	* cvt.c (convert_to_reference): Likewise.
483450397Sobrien
483550397Sobrien	* decl2.c (lang_decode_option): Ignore -traditional.
483652284Sobrien
483752284Sobrien	* init.c (build_offset_ref): Don't mess with error_mark_node.
483852284Sobrien	* lex.c (do_scoped_id): Use cp_error.
483950397Sobrien
484050397Sobrien	* rtti.c (get_tinfo_fn): Don't mess with the context for now.
484152284Sobrien
484252284Sobrien1998-08-17  Benjamin Kosnik  <bkoz@loony.cygnus.com>
484352284Sobrien
484452284Sobrien	* decl.c (grokdeclarator): Allow anonymous types to be cv-qualified.
484552284Sobrien
484652284SobrienMon Aug 17 10:40:18 1998  Jeffrey A Law  (law@cygnus.com)
484752284Sobrien
484852284Sobrien	* cp-tree.h (set_identifier_local_value): Provide prototype.
484952284Sobrien
485052284Sobrien	* decl2.c (do_namespace_alias): Remove unused variables `binding'
485152284Sobrien	and `old'.
485252284Sobrien
485352284SobrienFri Aug 14 16:42:27 1998  Nick Clifton  <nickc@cygnus.com>
485452284Sobrien
485552284Sobrien	* Makefile.in: Rename BBISON to BISON so that it can be properly
485652284Sobrien	inherited from the parent makefile.
485752284Sobrien
485852284Sobrien1998-08-13  Jason Merrill  <jason@yorick.cygnus.com>
485952284Sobrien
486052284Sobrien	* lang-options.h: Add -finit-priority.
486152284Sobrien	* decl2.c: Likewise.  Check flag_init_priority instead of
486252284Sobrien	USE_INIT_PRIORITY.
486352284Sobrien
486452284Sobrien	* decl2.c (setup_initp): New fn.
486552284Sobrien	(start_objects, finish_objects, do_ctors): Handle init_priority.
486652284Sobrien	(do_dtors, finish_file): Likewise.
486752284Sobrien
486852284Sobrien1998-08-13  Jason Merrill  <jason@yorick.cygnus.com>
486952284Sobrien
487052284Sobrien	* pt.c (tsubst_copy): Hush warning.
487152284Sobrien
487252284Sobrien	* rtti.c (get_tinfo_fn): Also set DECL_IGNORED_P.
487352284Sobrien
487452284Sobrien1998-08-12  Mark Mitchell  <mark@markmitchell.com>
487552284Sobrien
487652284Sobrien	* pt.c (print_template_context): Don't abort when instantiating a
487752284Sobrien	synthesized method.
487852284Sobrien
487952284Sobrien	* decl.c (grokdeclarator): Issue errors on namespace qualified
488052284Sobrien	declarators in parameter lists or in class scope.
488152284Sobrien
488252284Sobrien1998-08-09  Mark Mitchell  <mark@markmitchell.com>
488352284Sobrien
488452284Sobrien	* pt.c (check_explicit_specialization): Don't abort on bogus
488552284Sobrien	explicit instantiations.
488652284Sobrien
488752284Sobrien1998-08-07  Mark Mitchell  <mark@markmitchell.com>
488852284Sobrien
488952284Sobrien	* typeck.c (require_complete_type): Use complete_type_or_else.
489052284Sobrien	(complete_type_or_else): Always return NULL_TREE on failure, as
489152284Sobrien	documented.
489252284Sobrien
489352284Sobrien	* pt.c (tsubst_aggr_type): Prototype.
489452284Sobrien	(tsubst_decl): New function, split out from tsubst.  Set
489552284Sobrien	input_filename and lineno as appropriate.
489652284Sobrien	(pop_tinst_level): Restore the file and line number saved in
489752284Sobrien	push_tinst_level.
489852284Sobrien	(instantiate_class_template): Set input_filename and lineno as
489952284Sobrien	appropriate.
490052284Sobrien	(tsubst): Move _DECL processing to tsubst_decl.  Make sure the
490152284Sobrien	context for a TYPENAME_TYPE is complete.
490252284Sobrien
490352284Sobrien	* decl2.c (grokbitfield): Issue errors on bitfields declared with
490452284Sobrien	function type.
490552284Sobrien	(do_dtors): As in do_ctors, pretend to be a member of the same
490652284Sobrien	class as a static data member while generating a call to its
490752284Sobrien	destructor.
490852284Sobrien
490952284Sobrien	* cvt.c (cp_convert_to_pointer): Handle NULL pointer
491052284Sobrien	conversions, even in complex virtual base class hierarchies.
491152284Sobrien
491252284Sobrien1998-08-06  Mark Mitchell  <mark@markmitchell.com>
491352284Sobrien
491452284Sobrien	* cp-tree.h (ENUM_TEMPLATE_INFO): New macro.
491552284Sobrien	(TYPE_TEMPLATE_INFO): Likewise.
491652284Sobrien	(SET_TYPE_TEMPLATE_INFO): Likewise.
491752284Sobrien	(ENUM_TI_TEMPLATE): Likewise.
491852284Sobrien	(ENUM_TI_ARGS): Likewise.
491952284Sobrien	(lookup_nested_type_by_name): Remove.
492052284Sobrien	* decl.c (maybe_process_template_type_declaration): Handle enums.
492152284Sobrien	(start_enum): Don't check for primary-template enum declarations
492252284Sobrien	here.
492352284Sobrien	(finish_enum): Clean up, document.  Make sure template enum
492452284Sobrien	constants get the correct type.
492552284Sobrien	(build_enumerator): Copy initializers for template enumerations,
492652284Sobrien	too.
492752284Sobrien	(grok_enum_decls): Document.
492852284Sobrien	* lex.c (do_identifier): Document use of LOOKUP_EXPR a bit
492952284Sobrien	better.  Build LOOKUP_EXPRs for local variables, even if they are
493052284Sobrien	TREE_PERMANENT.
493152284Sobrien	* pt.c (tsubst_enum): Remove field_chain parameter.
493252284Sobrien	(template_class_depth): Include the depth of surrounding function
493352284Sobrien	contexts.
493452284Sobrien	(push_template_decl): Check for primary-template enum declarations
493552284Sobrien	here.  Deal with enumeration templates.
493652284Sobrien	(lookup_template_class): Likewise.
493752284Sobrien	(for_each_template_parm): Likewise.
493852284Sobrien	(instantiate_class_template): Don't call tsubst_enum directly,
493952284Sobrien	call tsubst instead, to instantiate enums.  Deal with all
494052284Sobrien	field_chain issues here, not in tsubst_enum.
494152284Sobrien	(lookup_nested_type_by_name): Remove.
494252284Sobrien	(tsubst_aggr_type): Revise handling of enumeration types.
494352284Sobrien	(tsubst): Likewise.
494452284Sobrien	(tsubst_copy): Likewise.
494552284Sobrien	(tsubst_expr): Call tsubst, not tsubst_enum for TAG_DEFNs.
494652284Sobrien
494750397Sobrien1998-08-04  Mark Mitchell  <mark@markmitchell.com>
494850397Sobrien
494952284Sobrien	* decl.c (pushtag): Don't mangle the name of a TYPE_DECL if it
495052284Sobrien	uses template parameters.
495152284Sobrien	* method.c (build_template_parm_names): Use the full set of
495252284Sobrien	template arguments for tsubst'ing.
495352284Sobrien	(build_overload_identifier): Pass the full set of template
495452284Sobrien	arguments to build_template_parm_names, not just the
495552284Sobrien	innermost_args.
495652284Sobrien	* pt.c (TMPL_ARGS_DEPTH): Define using
495750397Sobrien	TMPL_ARGS_HAVE_MULTIPLE_LEVELS, for clarity.
495850397Sobrien	(NUM_TMPL_ARGS): New macro.
495950397Sobrien	(add_outermost_template_args): Deal with the case where the outer
496052284Sobrien	args will be completely discarded.
496152284Sobrien	(coerce_template_parms): Use the full set of template arguments
496252284Sobrien	for tsubst'ing.  Simplify.  Add some asserts.  Improve
496352284Sobrien	error messages.
496450397Sobrien	(lookup_template_class): Pass the full set of template arguments
496552284Sobrien	to coerce_template_parms.
496652284Sobrien	(tsubst): Add assertion.
496752284Sobrien	(do_type_instantiation): Don't instantiate member template
496852284Sobrien	classes.
496952284Sobrien
497052284Sobrien	* init.c (build_offset_ref): Deal with a TEMPLATE_ID_EXPR whose
497152284Sobrien	name is a LOOKUP_EXPR, rather than an IDENTIFIER_NODE.
497252284Sobrien
497352284Sobrien1998-08-03  Jason Merrill  <jason@yorick.cygnus.com>
497452284Sobrien
497552284Sobrien	* method.c (set_mangled_name_for_decl): Change return type to void.
497652284Sobrien
497752284Sobrien	* decl.c (lookup_name_real): A namespace-level decl takes priority
497852284Sobrien	over implicit typename.  Avoid doing the same lookup twice.
497952284Sobrien
498052284Sobrien	* search.c (dependent_base_p): New fn.
498152284Sobrien	(dfs_pushdecls, dfs_compress_decls): Use it.
498252284Sobrien
498352284Sobrien	* typeck.c (get_member_function_from_ptrfunc): Don't try to handle
498452284Sobrien	virtual functions if the type doesn't have any.
498552284Sobrien
498652284Sobrien1998-08-03  Mark Mitchell  <mark@markmitchell.com>
498752284Sobrien
498852284Sobrien	* decl2.c (grokfield): Don't mangle the name of a TYPE_DECL if it
498952284Sobrien	uses template parameters.
499052284Sobrien
499152284Sobrien1998-08-02  Mark Mitchell  <mark@markmitchell.com>
499252284Sobrien
499352284Sobrien	* cp-tree.def (LOOKUP_EXPR): Document.  Remove second argument.
499452284Sobrien	* cp-tree.h (DECL_TI_TEMPLATE): Improve documentation.
499552284Sobrien	* lex.c (do_identifier): Don't use a second argument, or a type,
499652284Sobrien	when building LOOKUP_EXPRs.
499752284Sobrien	(do_identifier): Likewise.
499852284Sobrien	(do_scoped_id): Likewise.
499952284Sobrien	* method.c (hack_identifier): Improve error message.
500052284Sobrien	* pt.c (lookup_template_function): Don't needlessly call
500152284Sobrien	copy_to_permanent or build_min.
500252284Sobrien	(tsubst_copy): Remove #if 0'd code.  tsubst into LOOKUP_EXPRs if
500352284Sobrien	necessary.
500452284Sobrien	(do_decl_instantiation): Improve error message.
500552284Sobrien	* tree.c (mapcar, case LOOKUP_EXPR): Don't be sorry; make a copy.
500652284Sobrien	(build_min): Copy the type to the permanent obstack, too.
500752284Sobrien
500852284Sobrien1998-08-01  Jason Merrill  <jason@yorick.cygnus.com>
500952284Sobrien
501052284Sobrien	* init.c (init_init_processing): Remove BI* handling.
501152284Sobrien	(build_builtin_call): Remove.
501252284Sobrien	(build_builtin_delete_call): New fn.
501352284Sobrien	(build_delete): Use it.
501450397Sobrien
501550397Sobrien1998-07-31  Mark Mitchell  <mark@markmitchell.com>
501650397Sobrien
501752284Sobrien	* cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): New macro.
501850397Sobrien	(maybe_check_template_type): New function.
501952284Sobrien	* decl.c (maybe_process_template_type_declaration): New function,
502052284Sobrien	split out from pushtag  Call maybe_check_template_type.
502152284Sobrien	(pushtag): Use it.  Use PROCESSING_REAL_TEMPLATE_DECL_P.
502250397Sobrien	(xref_tag): Use PROCESSING_REAL_TEMPLATE_DECL_P.
502352284Sobrien	* friend.c (do_friend): Use PROCESSING_REAL_TEMPLATE_DECL_P.
502452284Sobrien	* pt.c (template_class_depth_real): Generalization of ...
502552284Sobrien	(template_class_depth): Use it.
502652284Sobrien	(register_specialization): Use duplicate_decls for duplicate
502752284Sobrien	declarations of specializations.
502852284Sobrien	(maybe_check_template_type): New function.
502952284Sobrien	(push_template_decl_real): Fix comment.
503052284Sobrien	(convert_nontype_argument): Likewise.
503152284Sobrien	(lookup_template_class): Likewise.  Avoid an infinite loop on
503250397Sobrien	erroneous code.
503352284Sobrien	(tsubst_friend_function): Fix comment.
503452284Sobrien	(tsubst, case FUNCTION_DECL): Deal with a DECL_TI_TEMPLATE that is
503552284Sobrien	an IDENTIFIER_NODE.
503652284Sobrien	* semantics.c (begin_function_definition): Use
503752284Sobrien	reset_specialization to note that template headers don't apply
503850397Sobrien	directly to declarations after the opening curly for a function.
503952284Sobrien
504052284Sobrien1998-07-29  Jason Merrill  <jason@yorick.cygnus.com>
504152284Sobrien
504252284Sobrien	* decl.c (push_overloaded_decl): Use current_namespace instead of
504352284Sobrien	DECL_CONTEXT (decl) to determine where we go.
504452284Sobrien
504552284Sobrien	* decl.c (lookup_name_real): Fix typo.
504652284Sobrien
504752284Sobrien1998-07-28  Mark Mitchell  <mark@markmitchell.com>
504852284Sobrien
504952284Sobrien	* friend.c (is_friend): Be lenient with member functions to deal
505052284Sobrien	with nested friends.
505152284Sobrien
505252284Sobrien1998-07-28  Jason Merrill  <jason@yorick.cygnus.com>
505352284Sobrien
505452284Sobrien	* class.c (finish_struct_1): Convert integer_zero_node to
505552284Sobrien	ssizetype before passing it to set_rtti_entry.
505652284Sobrien	* typeck2.c (initializer_constant_valid_p): Allow conversion of 0
505752284Sobrien	of any size to a pointer.
505852284Sobrien
505952284Sobrien1998-07-27  Mark Mitchell  <mark@markmitchell.com>
506052284Sobrien
506152284Sobrien	* cp-tree.h (TI_USES_TEMPLATE_PARMS): Remove.
506252284Sobrien	(build_template_decl_overload): Remove.
506352284Sobrien	(set_mangled_name_for_decl): New function.
506452284Sobrien	(innermost_args): Remove is_spec parameter.
506552284Sobrien	(most_specialized, most_specialized_class): Remove declarations.
506652284Sobrien	(lookup_template_class): Add entering_scope parameter.
506752284Sobrien	(maybe_process_partial_specialization): New function.
506852284Sobrien	(finish_template_decl): Likewise.
506952284Sobrien	(finish_template_type): Likewise.
507052284Sobrien	* class.c (finish_struct): Clean up processing of member template
507152284Sobrien	specializations.
507252284Sobrien	* decl.c (pushtag): Fix formatting.
507352284Sobrien	(lookup_tag): Improve handling of pseudo-global levels.
507452284Sobrien	(make_typename_type): Adjust call to lookup_template_class.
507552284Sobrien	(shadow_tag): Use maybe_process_partial_specialization.
507652284Sobrien	(xref_tag): Improve handling of member friends.
507752284Sobrien	(start_function): Call push_nested_class before
507852284Sobrien	push_template_decl.  Don't call push_template_decl for
507952284Sobrien	specializations.
508052284Sobrien	* decl2.c (grok_x_components): Don't call xref_tag for
508152284Sobrien	template instantiations.  Handle UNION_TYPEs like RECORD_TYPEs.
508252284Sobrien	(grokclassfn): Use set_mangled_name_for_decl.
508352284Sobrien	(arg_assoc_class): Adjust call to innermost_args.
508452284Sobrien	(mark_used): Don't call instantiate_decl for a TEMPLATE_DECL.
508552284Sobrien	* error.c (dump_function_name): Improve printing of template
508652284Sobrien	function names.
508752284Sobrien	* friend.c (is_friend): Don't compare types of decls to determine
508852284Sobrien	friendship, unless flag_guiding_decls.
508952284Sobrien	(make_friend_class): Partial specializations cannot be friends.
509052284Sobrien	(do_friend): Use set_mangled_name_for_decl.  Call
509152284Sobrien	push_template_decl_real instead of push_template_decl.
509252284Sobrien	* method.c (build_decl_overload_real): Remove prototype.  Give it
509352284Sobrien	external linkage.
509452284Sobrien	(build_overload_identififer): Adjust call to innermost_args.
509552284Sobrien	(build_template_decl_overload): Remove.
509652284Sobrien	(set_mangled_name_for_decl): New function.
509752284Sobrien	* parse.y (.finish_template_type): New non-terminal.
509852284Sobrien	(template_def): Use finish_template_decl.  Use template_extdef
509952284Sobrien	instead of extdef.
510052284Sobrien	(template_extdef, template_datadef): New non-terminals, containing
510152284Sobrien	only those rules for things which can be templates.
510252284Sobrien	(datadef): Tidy.
510352284Sobrien	(template_type, self_template_type): Use .finish_template_type.
510452284Sobrien	(named_class_head): Use maybe_process_partial_specialization.
510552284Sobrien	* pt.c (mangle_class_name_for_template): Remove context parameter.
510652284Sobrien	(get_class_bindings): Remove outer_args parameter.
510752284Sobrien	(complete_template_args): Remove.
510852284Sobrien	(add_outermost_template_args): New function.
510952284Sobrien	(register_specialization): Return the specialization.
511052284Sobrien	(unregister_specialization): New function.
511152284Sobrien	(tsubst_template_parms): Likewise.
511252284Sobrien	(most_specialized, most_specialized_class): Prototype here as
511352284Sobrien	static.
511452284Sobrien	(original_template): Rename to most_general_template.
511552284Sobrien	(tsubst_template_parms): New function.
511652284Sobrien	(set_mangled_name_for_template_decl): Likewise.
511752284Sobrien	(TMPL_ARGS_DEPTH): New macro.
511852284Sobrien	(TMPL_ARGS_HAVE_MULTIPLE_LEVELS): Adjust.
511952284Sobrien	(TMPL_ARGS_LEVEL): New macro.
512052284Sobrien	(SET_TMPL_ARGS_LEVEL): Likewise.
512152284Sobrien	(TMPL_ARG): Likewise.
512252284Sobrien	(SET_TMPL_ARG): Likewise.
512352284Sobrien	(TMPL_ARGS_DEPTH): Likewise.
512452284Sobrien	(finish_member_template_decl): Use finish_template_decl.
512552284Sobrien	(maybe_process_partial_specialization): New function, split out
512652284Sobrien	from tsubst.
512752284Sobrien	(inline_needs_template_parms): Use TMPL_PARMS_DEPTH.
512852284Sobrien	(maybe_begin_member_template_processing): Use new macros.
512952284Sobrien	(is_member_template): Likewise.
513052284Sobrien	(is_member_template_class): Likewise.
513152284Sobrien	(add_to_template_args): Likewise.  Deal with multiple levels of
513252284Sobrien	args.
513352284Sobrien	(maybe_process_partial_specialization): New function.
513452284Sobrien	(retrieve_specialization): Add consistency check.
513552284Sobrien	(determine_specialization): Return full argument list.
513652284Sobrien	(check_explicit_specialization): Tweak friend handling.  Use full
513752284Sobrien	argument lists.  Simplify.
513852284Sobrien	(current_template_args): Use new macros.
513952284Sobrien	(push_template_decl_real): Change ill-named mainargs to specargs.
514052284Sobrien	Check that a partial specialization actually specializes at least
514152284Sobrien	one parameter.   Improve friend handling.  Modify for full
514252284Sobrien	template arguments.
514352284Sobrien	(classtype_mangled_name): Don't mangle the names of
514452284Sobrien	specializations.
514552284Sobrien	(lookup_template_class): Add entering_scope parameter.  Use it to
514652284Sobrien	avoid finding a template type when an instantiation is required.
514752284Sobrien	Simplify.  Use full template arguments.
514852284Sobrien	(tsubst_friend_function): Use unregister_specialization.  Use new
514952284Sobrien	macros.  Use full template arguments.
515052284Sobrien	(tsubst_friend_class): Substitute, using tsubst_template_parms,
515152284Sobrien	into the template parameters before passing them to
515252284Sobrien	redeclare_class_template.
515352284Sobrien	(instantiate_class_template): Simplify.  Use full template
515452284Sobrien	arguments.  Adjust calls to get_class_bindings.  Use
515552284Sobrien	SET_IDENTIFIER_TYPE_VALUE where needed.  Improve friend handling.
515652284Sobrien	(innermost_args): Use new macros.
515752284Sobrien	(tsubst_aggr_type): New function, split out from tsubst.
515852284Sobrien	(tsubst): Use tsubst_aggr_type, tsubst_template_parms, new calling
515952284Sobrien	conventions for lookup_template_class.  Refine handling of partial
516052284Sobrien	instantiations.   Remove calls to complete_template_args.
516152284Sobrien	Simplify.  Add consistency checks.  Use set_mangled_name_for_decl
516252284Sobrien	and set_mangled_name_for_template_decl.
516352284Sobrien	(tsubst_copy): Use tsubst_aggr_type.
516452284Sobrien	(instantiate_template): Use full template arguments.
516552284Sobrien	(more_specialized): Improve formatting.
516652284Sobrien	(more_specialized_class): Adjust calls to get_class_bindings.
516752284Sobrien	(get_bindings_real): Don't call complete_template_args.
516852284Sobrien	(most_specialized): Don't overwrite input; create a new list.
516952284Sobrien	(most_specialized_class): Use most_general_template.
517050397Sobrien	(regenerate_decl_from_template): Use unregister_specialization.
517150397Sobrien	Use full template arguments.
517250397Sobrien	(instantiate_decl): Use full template arguments.
517350397Sobrien	(set_mangled_name_for_template_decl): New function.
517450397Sobrien	* semantics.c (begin_class_definition): Use
517550397Sobrien	maybe_process_partial_specialization.
517650397Sobrien	(finish_member_class_template): New function.
517752284Sobrien	(finish_template_decl): Likewise.
517852284Sobrien	(finish_template_type): Likewise.
517952284Sobrien	(typeck.c): Don't crash after issuing a compiler_error.
518052284Sobrien	* Makefile.in (CONFLICTS): Adjust; we removed a s/r conflict.
518152284Sobrien
518250397Sobrien1998-07-27  Jason Merrill  <jason@yorick.cygnus.com>
518350397Sobrien
518450397Sobrien	* typeck2.c (build_functional_cast): Handle default-initialization.
518552284Sobrien
518650397Sobrien	* call.c (build_over_call): Pass 1 to popclass.
518750397Sobrien
518850397Sobrien	* parse.y (direct_notype_declarator): Add precedence declaration
518952284Sobrien	to notype_unqualified_id case.
519052284Sobrien	* Makefile.in (EXPECT): Adjust.
519152284Sobrien
519252284Sobrien	* tree.c (ovl_member): Fix for single function in OVL.
519352284Sobrien
519452284Sobrien1998-07-27  Dave Brolley  <brolley@cygnus.com>
519552284Sobrien
519652284Sobrien	* c-lex.c (yylex): Fix boundary conditions in character literal and
519752284Sobrien	string literal loops.
519852284Sobrien
519952284Sobrien1998-07-24  Jason Merrill  <jason@yorick.cygnus.com>
520052284Sobrien
520152284Sobrien	* decl.c (lookup_name_real): OK, do return the from_obj value
520252284Sobrien	unless got_object depends on template parms.
520352284Sobrien
520452284Sobrien	* parse.y (nested_name_specifier_1): Pull out the TYPE_MAIN_VARIANT.
520552284Sobrien
520652284Sobrien	* pt.c (coerce_template_parms): Also complain about local enums.
520752284Sobrien
520852284Sobrien	* cp-tree.h: Add prototype for set_identifier_local_value.
520952284Sobrien	* decl.c (set_identifier_local_value_with_scope): Make static,
521052284Sobrien	prototype.
521152284Sobrien	* search.c (covariant_return_p): Likewise.
521252284Sobrien	* except.c (build_terminate_handler, alloc_eh_object): Likewise.
521352284Sobrien
521452284Sobrien	* call.c (build_method_call): Only pull out the type of a destructor
521552284Sobrien	if it's a template type parm.
521652284Sobrien	* decl.c (lookup_name_real): Never return the from_obj value.
521752284Sobrien
521852284Sobrien1998-07-23  Jason Merrill  <jason@yorick.cygnus.com>
521952284Sobrien
522052284Sobrien	* except.c (process_start_catch_block_old): Call start_decl_1 for
522152284Sobrien	catch parm.
522252284Sobrien	* decl.c (start_decl_1): Avoid duplicate error.
522352284Sobrien
522452284Sobrien	* init.c (expand_default_init): Only perform the initialization if
522552284Sobrien	it will do something.
522652284Sobrien
522752284Sobrien1998-07-23  H.J. Lu  (hjl@gnu.org)
522852284Sobrien
522952284Sobrien	* parse.y (base_class): Check for invalid base class.
523052284Sobrien
523152284Sobrien1998-07-23  Jason Merrill  <jason@yorick.cygnus.com>
523252284Sobrien
523352284Sobrien	* decl2.c (import_export_template): Fold in...
523452284Sobrien	(import_export_class): ...to here.  Handle dllimport/export.
523552284Sobrien
523652284Sobrien	* class.c (build_vtable): Pass at_eof to import_export_vtable.
523752284Sobrien	(prepare_fresh_vtable): Likewise.
523852284Sobrien	* decl2.c (import_export_class): Split out...
523952284Sobrien	(finish_prevtable_vardecl): From here.
524052284Sobrien	* class.c (finish_struct_1): Call import_export_class if at_eof.
524152284Sobrien
524252284Sobrien	* decl.c (start_function): #if 0 mysterious code I wrote and have
524352284Sobrien	forgotten why.
524452284Sobrien	* rtti.c (get_tinfo_fn): If this is for a class type, set
524552284Sobrien	DECL_CONTEXT.
524652284Sobrien
524752284Sobrien1998-07-22  Jason Merrill  <jason@yorick.cygnus.com>
524852284Sobrien
524952284Sobrien	* inc/exception: Change terminate and unexpected to ().
525052284Sobrien
525152284Sobrien	* parse.y (named_class_head_sans_basetype_defn): A
525252284Sobrien	named_class_head_sans_basetype followed by '{' or ':' is a defn.
525352284Sobrien
525452284Sobrien1998-07-21  Jason Merrill  <jason@yorick.cygnus.com>
525552284Sobrien
525652284Sobrien	* tree.c (canonical_type_variant): New fn to handle arrays.
525752284Sobrien	* cp-tree.h (CANONICAL_TYPE_VARIANT): Remove.
525852284Sobrien	* pt.c (unify, default case): Also fold arg.  Fix array bounds case.
525952284Sobrien	* method.c (process_overload_item): Use build_overload_value for
526052284Sobrien	arrays.
526152284Sobrien
526252284Sobrien1998-07-20  Dave Brolley  <brolley@cygnus.com>
526352284Sobrien
526452284Sobrien	* lex.c (mbchar.h): #include it.
526552284Sobrien	(GET_ENVIRONMENT): New macro.
526652284Sobrien	(init_parse): Set character set based on LANG environment variable.
526752284Sobrien	(real_yylex): Handle multibyte characters in character literals.
526852284Sobrien	(real_yylex): Handle multibyte characters in string literals.
526952284Sobrien
527052284Sobrien1998-07-19  Jason Merrill  <jason@yorick.cygnus.com>
527152284Sobrien
527252284Sobrien	* lex.c (do_identifier): Look for class value even if we don't
527352284Sobrien	have a global value.  Do implicit declaration if parsing is 2.
527452284Sobrien	* semantics.c (finish_call_expr): Pass 2 if we're doing Koenig
527552284Sobrien	lookup.
527652284Sobrien
527752284Sobrien1998-07-19  Mark Mitchell  <mark@markmitchell.com>
527852284Sobrien
527952284Sobrien	* decl.c (pushtag): Revert previous change.
528052284Sobrien	* pt.c (lookup_template_class): Don't put out debugging
528152284Sobrien	information for types that use template parameters.
528252284Sobrien
528352284Sobrien	* decl.c (pushtag): Don't put out debugging information for
528452284Sobrien	compiler-generated typedefs.
528552284Sobrien
528652284Sobrien	* error.c (dump_type_real): Don't crash when presented with
528752284Sobrien	intQI_type_node or the like.
528852284Sobrien
528952284Sobrien	* semantics.c (finish_translation_unit): Fix spelling error in
529052284Sobrien	comment.
529152284Sobrien
529252284Sobrien1998-07-17  Jason Merrill  <jason@yorick.cygnus.com>
529352284Sobrien
529452284Sobrien	* decl.c (lookup_name_real): Pull out single function here.
529552284Sobrien	(select_decl): Not here.
529652284Sobrien	(unqualified_namespace_lookup): Use CP_DECL_CONTEXT.
529752284Sobrien
529852284Sobrien	* decl.c (qualify_lookup): Tweak again.
529952284Sobrien
530052284Sobrien	* pt.c (lookup_template_class): Don't mess with the context of the
530152284Sobrien	instantiation.
530252284Sobrien	* decl2.c (current_decl_namespace): Remove special handling for
530352284Sobrien	templates.
530452284Sobrien
530552284Sobrien	* pt.c (tsubst, case FUNCTION_DECL): Fix getting complete args for
530652284Sobrien	a member template specialization.
530752284Sobrien
530852284Sobrien	* tree.c (ovl_member): Use decls_match to compare functions.
530952284Sobrien	* decl.c (decls_match): Check the context of a function.
531052284Sobrien
531152284Sobrien	* parse.y (primary): Use notype_unqualified_id instead of IDENTIFIER
531250397Sobrien	in Koenig lookup support rules.
531350397Sobrien	* semantics.c (finish_call_expr): Handle the new cases.
531450397Sobrien
531550397Sobrien	* typeck.c (build_x_function_call): Handle overloaded methods.
531650397Sobrien
531750397Sobrien	* decl.c (grokvardecl): Don't call build_static_name for extern "C".
531850397Sobrien
531950397Sobrien1998-07-16  Mark Mitchell  <mark@markmitchell.com>
532050397Sobrien
532150397Sobrien	* semantics.c (finish_object_call_expr): Revert previous change.
532250397Sobrien	* call.c (build_new_method_call): Likewise.  Instead, convert
532350397Sobrien	TYPE_DECLs to IDENTIFIERs here, in the presence of templates.
532452284Sobrien
532552284Sobrien1998-07-16  Jason Merrill  <jason@yorick.cygnus.com>
532652284Sobrien
532752284Sobrien	* decl.c (qualify_lookup): Handle templates.
532852284Sobrien
532950397Sobrien	* decl2.c (do_using_directive): Don't pass ancestor.
533050397Sobrien	* decl.c (push_using_directive): Calculate ancestor.
533150397Sobrien
533250397Sobrien	* decl2.c (do_nonmember_using_decl): Allow for type shadowing.
533350397Sobrien	* decl.c (pushdecl): Move type shadowing handling from here...
533450397Sobrien	(duplicate_decls): ...to here.
533550397Sobrien	* decl.c (set_identifier_local_value_with_scope): New fn.
533650397Sobrien	(pushdecl): Use it.
533750397Sobrien	(set_identifier_local_value, lookup_type_current_level): New fns.
533850397Sobrien	* decl2.c (do_local_using_decl): Handle types and binding level
533950397Sobrien	stuff properly.
534050397Sobrien
534150397Sobrien	* init.c (build_offset_ref): Don't call mark_used on an OVERLOAD.
534250397Sobrien	* decl.c (select_decl): Extract a lone function from an OVERLOAD.
534350397Sobrien	(lookup_namespace_name): Likewise.
534450397Sobrien	* typeck.c (build_unary_op): Not here anymore.
534550397Sobrien
534650397Sobrien	* decl2.c (do_class_using_decl): Make sure we get an identifier.
534750397Sobrien	* class.c (handle_using_decl): Ignore TYPE_DECLs.
534850397Sobrien
534950397Sobrien	* decl.c (qualify_lookup): New fn.
535050397Sobrien	(lookup_name_real): Use it.
535150397Sobrien
535250397Sobrien1998-07-16  Martin v. Loewis  <loewis@informatik.hu-berlin.de>
535350397Sobrien
535450397Sobrien	* decl2.c (add_using_namespace): When directly using a namespace
535550397Sobrien	that was indirect before, promote it.
535650397Sobrien
535750397Sobrien	* cp-tree.h (LOOKUP_PREFER_TYPES, LOOKUP_PREFER_NAMESPACES,
535850397Sobrien	LOOKUP_PREFER_BOTH, LOOKUP_NAMESPACES_ONLY, LOOKUP_TYPES_ONLY,
535950397Sobrien	LOOKUP_QUALIFIERS_ONLY, LOOKUP_TEMPLATES_EXPECTED): New macros.
536050397Sobrien	* decl.c (select_decl): Replace two flag parameters by one.
536150397Sobrien	(unqualified_namespace_lookup): Likewise, pass flag.
536250397Sobrien	(lookup_flags): New function.
536350397Sobrien	(lookup_name_real): Compute flags, pass them.
536450397Sobrien	(lookup_namespace_name): Call with zero-flag.
536550397Sobrien	* decl2.c (ambiguous_decl): Add flag parameter, complain only
536650397Sobrien	according to flags.
536750397Sobrien	(lookup_using_namespace, qualified_lookup_using_namespace):
536850397Sobrien	Add flag parameter, pass them through.
536950397Sobrien	* lex.c (do_scoped_id): Call with zero-flag.
537050397Sobrien
537150397Sobrien1998-07-16  Jason Merrill  <jason@yorick.cygnus.com>
537252284Sobrien
537350397Sobrien	* typeck.c (convert_for_assignment): Use comptypes.
537450397Sobrien
537550397Sobrien1998-07-16  Mark Mitchell  <mark@markmitchell.com>
537650397Sobrien
537750397Sobrien	* semantics.c (finish_object_call_expr): Move test for the
537850397Sobrien	function called being a TYPE_DECL to ...
537950397Sobrien	* call.c (build_new_method_call): Here.
538050397Sobrien
538150397Sobrien1998-07-15  Jason Merrill  <jason@yorick.cygnus.com>
538250397Sobrien
538350397Sobrien	* decl2.c (arg_assoc_class): Also look at template arguments, if any.
538450397Sobrien	(arg_assoc): Handle error_mark_node and multiple levels of TREE_LIST.
538550397Sobrien
538650397Sobrien	* lex.c (looking_for_typename): Don't initialize.
538750397Sobrien
538850397Sobrien	* decl2.c (ambiguous_decl): Clarify error message.
538950397Sobrien
539050397Sobrien	* decl.c (push_using_directive): Iterate over namespaces used
539150397Sobrien	indirectly.
539252284Sobrien
539352284Sobrien1998-07-15  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
539452284Sobrien
539552284Sobrien	* decl2.c (add_using_namespace): Iterate over namespaces used
539652284Sobrien	indirectly.
539752284Sobrien
539852284Sobrien	* decl.c (lookup_name_real): Accept namespace aliases as locals.
539952284Sobrien	(cat_namespace_levels): Ignore aliases.
540050397Sobrien	(duplicate_decls): Ignore duplicate aliases.
540150397Sobrien	* decl2.c (do_namespace_alias): Process block level namespace
540250397Sobrien	aliases.  Store alias with pushdecl.  Remove odr errors.
540350397Sobrien	* parse.y (namespace_alias): New non-terminal.
540450397Sobrien	(extdef): Use it.
540550397Sobrien
540650397Sobrien1998-07-15  Jason Merrill  <jason@yorick.cygnus.com>
540750397Sobrien
540850397Sobrien	* decl2.c (arg_assoc_type): Handle METHOD_TYPE like FUNCTION_TYPE.
540950397Sobrien	Handle TEMPLATE_TYPE_PARM.
541050397Sobrien	(arg_assoc): Rewrite.
541150397Sobrien
541250397Sobrien	* pt.c (complete_template_args): Don't look at the context unless
541350397Sobrien	we have to.
541450397Sobrien
541552284Sobrien	* method.c (build_decl_overload_real): Fix namespace handling.
541650397Sobrien
541750397Sobrien	* typeck.c (build_unary_op): Extract a lone function from an
541818334Speter	OVERLOAD.
541950397Sobrien
542050397Sobrien	* call.c (build_scoped_method_call): Handle getting a namespace
542118334Speter	for basetype in a destructor call.
542250397Sobrien	(check_dtor_name): Handle enums.
542318334Speter
542450397Sobrien	* parse.y (using_directive): New nonterminal.
542550397Sobrien	(extdef, simple_stmt): Use it.
542650397Sobrien
542718334Speter1998-07-14  Martin von L�wis  <loewis@informatik.hu-berlin.de>
542850397Sobrien
542918334Speter	* decl2.c (add_function): Move error message ...
543050397Sobrien	(arg_assoc_namespace): ... from here.
543150397Sobrien
543250397Sobrien1998-07-14  Jason Merrill  <jason@yorick.cygnus.com>
543350397Sobrien
543418334Speter	* parse.y (namespace_qualifier): Fix multiple level handling.
543550397Sobrien	* decl2.c (namespace_ancestor): Use CP_DECL_CONTEXT.
543650397Sobrien	(arg_assoc): Don't skip the first argument of a function.
543718334Speter
543850397SobrienTue Jul 14 20:09:22 1998  Jeffrey A Law  (law@cygnus.com)
543950397Sobrien
544018334Speter	* search.c (my_tree_cons): Clean up.
544150397Sobrien
544250397Sobrien1998-07-14  Jason Merrill  <jason@yorick.cygnus.com>
544350397Sobrien
544418334Speter	* call.c (joust): Don't warn about "confusing" conversions to the
544550397Sobrien	same type.
544618334Speter
544750397Sobrien1998-07-14  Martin von L�wis  <loewis@informatik.hu-berlin.de>
544818334Speter
544950397Sobrien	* class.c (push_nested_class): Complain about namespaces.
545018334Speter	* decl.c (start_decl): Enter the object's namespace.
545150397Sobrien	(cp_finish_decl): Leave it.
545250397Sobrien	(grokdeclarator): Likewise.
545350397Sobrien	* decl2.c (check_decl_namespace): New function.
545418334Speter	(finish_file): Call it.
545550397Sobrien	* parse.y (complex_direct_notype_declarator): Set complexity
545618334Speter	of namespace-qualified ids to -1, enter the namespace.
545750397Sobrien
545818334Speter	* method.c (build_template_decl_overload): Expect _DECL as first
545950397Sobrien	parameter.  Put context temporarily into current_namespace.
546050397Sobrien	* pt.c (check_explicit_specialization): Change caller.
546118334Speter	(tsubst): Likewise.
546250397Sobrien
546350397Sobrien	* init.c (build_offset_ref): Call mark_used and
546450397Sobrien	convert_from_reference for namespace members.
546550397Sobrien
546650397SobrienMon Jul 13 23:25:28 1998  Martin von L�wis  <loewis@informatik.hu-berlin.de>
546750397Sobrien
546850397Sobrien	* search.c (my_tree_cons): The bitfield is at index 2.
546950397Sobrien
547018334SpeterMon Jul 13 17:21:01 1998  Nick Clifton  <nickc@cygnus.com>
547150397Sobrien
547250397Sobrien	* lang-options.h: Format changed to work with new --help support
547350397Sobrien	in gcc/toplev.c
547450397Sobrien
547518334Speter1998-07-12  Martin von L�wis  <loewis@informatik.hu-berlin.de>
547650397Sobrien
547750397Sobrien	* decl2.c (build_expr_from_tree): Change calls of do_identifier.
547818334Speter	Do Koenig lookup in CALL_EXPR.
547950397Sobrien	(arg_assoc): Handle error_mark.
548050397Sobrien	* lex.c (is_global): New function.
548118334Speter	(do_identifier): Expect arguments for Koenig lookup.
548250397Sobrien	* parse.y (primary): Add rules for calls of unqualified function calls.
548318334Speter	(do_id): Change call of do_identifier.
548450397Sobrien	* pt.c (finish_stmt_expr): Likewise.
548550397Sobrien	* semantics.c (finish_id_expr): Likewise.
548618334Speter	(finish_call_expr): Add integer parameter to indicate
548750397Sobrien	argument-dependent lookup.
548850397Sobrien
548950397Sobrien	* decl.c (struct binding_level): New field using_directives.
549050397Sobrien	(push_using_decl): Not sorry anymore.
549150397Sobrien	(push_using_directive): New function.
549250397Sobrien	(lookup_tag): Use CP_DECL_CONTEXT to iterate.
549350397Sobrien	(unqualified_namespace_lookup): New function, code from ...
549450397Sobrien	(lookup_name_real): ... here.
549550397Sobrien	* decl2.c (lookup_using_namespace): Pass using list instead of
549650397Sobrien	initial scope.
549750397Sobrien	(validate_nonmember_using_decl): New function.
549850397Sobrien	(do_nonmember_using_decl): New function.
549950397Sobrien	(do_toplevel_using_decl): Use them.
550018334Speter	(do_local_using_decl): New function.
550150397Sobrien	(do_using_directive): Support block-level directives.
550218334Speter	* parse.y (simple_stmt): Support using declarations and
550350397Sobrien	directives.
550418334Speter	(namespace_qualifier, namespace_using_decl): New non-terminals.
550550397Sobrien
550618334Speter	* xref.c (classname): New function.
550750397Sobrien	(GNU_xref_hier): Change class and base parameters to tree.
550850397Sobrien	* decl.c (xref_baseypes): Change caller.
550950397Sobrien	* friend.c (make_friend_class): Likewise.
551018334Speter
551150397Sobrien1998-07-12  Kriang Lerdsuwanakij  <lerdsuwa@scf-fs.usc.edu>
551218334Speter
551350397Sobrien	* typeck.c (comptypes, case TEMPLATE_TEMPLATE_PARM): Add parameter
551450397Sobrien	comparison.
551518334Speter
551650397Sobrien	* pt.c (for_each_template_parm, case TEMPLATE_DECL): If it is a
551718334Speter	template template parameter, record its use.
551850397Sobrien	(for_each_template_parm, case TEMPLATE_TEMPLATE_PARM): Traverse
551918334Speter	its template arguments if exists.
552050397Sobrien
552150397Sobrien	* pt.c (coerce_template_template_parms): New function equivalent
552218334Speter	to coerce_template_parms when IS_TMPL_PARM is true.
552350397Sobrien	(coerce_template_parms): Use it.  Remove the IS_TMPL_PARM parameter,
552418334Speter	all callers changed.
552550397Sobrien
552650397Sobrien	(coerce_template_parms): Access ARGLIST properly when creating a
552718334Speter	new vector.  Only accept implicit TYPE_DECL as valid argument for
552850397Sobrien	a template template parameter when it is a base class of
552950397Sobrien	current_class_type.  Don't display error message when COMPLAIN is
553050397Sobrien	false.
553150397Sobrien
553252284Sobrien1998-07-12  Klaus Kaempf  (kkaempf@progis.de)
553350397Sobrien
553450397Sobrien	* repo.c (get_base_filename): Use file_name_nondirectory.
553518334Speter	(open_repo_file): Likewise.
553650397Sobrien	* cp-tree.h (file_name_nondirectory): Add prototype.
553718334Speter
553850397Sobrien1998-07-12  Jason Merrill  <jason@yorick.cygnus.com>
553950397Sobrien
554050397Sobrien	* friend.c (do_friend): Pull the identifier out of declarator.
554118334Speter	Use cp_error and friends.
554250397Sobrien	* decl2.c (qualified_lookup_using_namespace): Fix call to
554350397Sobrien	purpose_member.
554418334Speter	* decl.c (lookup_name_real): Don't call complete_type on a namespace.
554550397Sobrien	(grokvardecl): Use DECL_CLASS_SCOPE_P.
554618334Speter	* cvt.c (convert_pointer_to_real): Check for error_mark_node sooner.
554750397Sobrien	* class.c (warn_hidden): Fix for OVERLOAD.
554850397Sobrien	From grahams@rcp.co.uk:
554918334Speter	* cp-tree.h (DEFARG_NODE_CHECK): New macro.
555050397Sobrien	(DEFARG_LENGTH, DEFARG_POINTER): Use it.
555150397Sobrien
555250397SobrienSun Jul 12 01:20:57 1998  Jeffrey A Law  (law@cygnus.com)
555318334Speter
555450397Sobrien	* g++.1 (-traditional): Remove duplicated documentation.
555550397Sobrien
555618334Speter1998-07-11  Mark Mitchell  <mark@markmitchell.com>
555750397Sobrien
555818334Speter	* method.c (flush_repeats): Add nrepeats parameter.
555950397Sobrien	(issue_nrepeats): Likewise.
556050397Sobrien	(is_back_referenceable_type): New function.  Don't back-reference
556118334Speter	TEMPLATE_TYPE_PARMs as well as simple types like integers.
556250397Sobrien	(build_mangled_name_for_type): Likewise.
556318334Speter	(build_mangled_name_for_type_with_Gcode): Likewise.
556450397Sobrien	(lasttype): Remove.
556550397Sobrien	(nrepeats): Likewise.
556650397Sobrien	(Nrepeats): Likewise.
556718334Speter	(start_squangling): Don't clear the variables removed above.
556852284Sobrien	(end_squangling): Likewise.
556952284Sobrien	(flush_repeats): Tidy.  Use nrepeats parameter rather than
557052284Sobrien	Nrepeats global.
557152284Sobrien	(issue_nrepeats): Likewise, but with nrepeats global.  Use
557252284Sobrien	is_backreferenceable_type.
557352284Sobrien	(build_overload_nested_name): Tidy.  Add comment.  Use
557450397Sobrien	build_mangled_name_for_type.
557550397Sobrien	(build_underscore_int): Comment.
557618334Speter	(build_overload_scope_ref): Use build_mangled_name_for_type.
557750397Sobrien	(build_overload_int): Likewise.
557818334Speter	(build_template_template_parm_names): Tidy.
557950397Sobrien	(build_template_parm_names): Use build_mangled_name_for_type.
558050397Sobrien	(build_overload_identifier): Add comments.
558150397Sobrien	(build_mangled_name_for_type_with_Gcode): Split out from
558250397Sobrien	build_mangled_name.
558350397Sobrien	(build_mangled_name_for_type): Use it.
558450397Sobrien	(build_mangled_name): Rework to use build_mangled_name_for_type
558550397Sobrien	and to not use global nrepeats/Nrepeats.  Tidy.
558650397Sobrien	(process_modifiers): Tidy.
558718334Speter	(check_btype): Use is_backreferenceable_type.  Add comment.
558850397Sobrien	Rename `node' to `type'.
558952284Sobrien	(process_overload_item): Set numeric_output_need_bar here.
559050397Sobrien	Use build_mangled_name_for_type.  Tidy.
559150397Sobrien	(build_decl_overload_real): Tidy.  Don't use Nrepeats.  Use
559218334Speter	build_mangled_name_for_type.
559350397Sobrien
559450397Sobrien	* pt.c (push_template_decl_real): Don't look at DECL_TEMPLATE_INFO
559518334Speter	for TYPE_DECLs.
559652284Sobrien
559718334Speter1998-07-08  Vladimir N. Makarov  <vmakarov@cygnus.com>
559850397Sobrien
559918334Speter	* cp-tree.h (warn_long_long): Define.
560050397Sobrien	* decl.c (grokdeclarator): Add flag `warn_long_long' as guard for
560118334Speter	warning "ANSI C++ does not support `long long'".
560250397Sobrien	* decl2.c (warn_long_long): Define.
560350397Sobrien	(lang_decode_option): Parse -Wlong-long, -Wno-long-long options.
560452284Sobrien
560550397Sobrien1998-07-07  Jason Merrill  <jason@yorick.cygnus.com>
560618334Speter
560750397Sobrien	* decl.c (xref_tag): Handle attributes between 'class' and name.
560850397Sobrien	* parse.y (aggr): Likewise.
560950397Sobrien	* semantics.c (finish_class_definition): Likewise.
561050397Sobrien	* Makefile.in (EXPECTED): Adjust.
561150397Sobrien
561250397Sobrien	* cp-tree.h: Declare flag_optional_diags and warn_multichar.
561350397Sobrien	* decl2.c: Define them.
561450397Sobrien	(lang_decode_option): Handle them.
561550397Sobrien	* lang-options.h: Add -foptional-diags.
561650397Sobrien	* class.c (finish_struct): Don't complain about multiple meanings of
561750397Sobrien	name if -fno-optional-diags.
561818334Speter	* decl.c (pushdecl_class_level): Likewise.
561950397Sobrien	* lex.c (real_yylex): Check warn_multichar.
562050397Sobrien
562150397Sobrien1998-07-06  Jason Merrill  <jason@yorick.cygnus.com>
562250397Sobrien
562350397Sobrien	* decl.c (lookup_tag): Use CP_DECL_CONTEXT.
562450397Sobrien
562550397Sobrien	* tree.c (make_binfo): Fix length.
562650397Sobrien
562750397Sobrien1998-06-30  Benjamin Kosnik  <bkoz@bliss.nabi.net>
562850397Sobrien
562950397Sobrien	* decl2.c (lang_decode_option): Remove warn_template_debugging.
563050397Sobrien	* lang-options.h: Likewise.
563150397Sobrien
563250397SobrienMon Jun 29 20:17:40 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
563350397Sobrien
563450397Sobrien	* except.c (build_eh_type_type_ref): Remove unused variable `susp'.
563518334Speter	(process_start_catch_block): Likewise for variables
563650397Sobrien	`false_label_rtx', `call_rtx' and `return_value_rtx'.
563750397Sobrien
563850397Sobrien1998-06-29  Brendan Kehoe  <brendan@cygnus.com>
563950397Sobrien
564018334Speter	* tree.c (build_srcloc): Make sure we allocate this node on the
564152284Sobrien	permanent obstack.
564218334Speter
564352284SobrienSat Jun 27 23:34:18 1998  Fred Fish  <fnf@ninemoons.com>
564450397Sobrien
564518334Speter	* g++spec.c (NEED_MATH_LIBRARY): Define to 1 if not already defined.
564652284Sobrien	(lang_specific_driver): Initialize need_math with NEED_MATH_LIBRARY.
564750397Sobrien	(lang_specific_driver): Only add -lm automatically if need_math is
564852284Sobrien	nonzero.
564950397Sobrien
565018334SpeterSat Jun 27 12:22:56 1998  Jeffrey A Law  (law@cygnus.com)
565150397Sobrien
565250397Sobrien	* Make-lang.in (g++): Depend on mkstemp.o.  Link in mkstemp.o
565350397Sobrien
565450397SobrienSat Jun 27 07:36:09 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
565518334Speter
565650397Sobrien	* Makefile.in (EXPR_H): New dependency variable.
565750397Sobrien	(decl2.o): Depend on $(EXPR_H).
565850397Sobrien	(typeck.o): Likewise.
565950397Sobrien	(init.o): Likewise.
566050397Sobrien	(expr.o): Likewise.
566118334Speter
566252284Sobrien1998-06-25  Benjamin Kosnik  <bkoz@lisa.cygnus.com>
566318334Speter
566452284Sobrien	* decl.c (start_enum): Put local enums on permanent_obstack.
566552284Sobrien
566650397Sobrien1998-06-25  Mark Mitchell  <mark@markmitchell.com>
566718334Speter
566850397Sobrien	* cp-tree.h (c_get_alias_set): Declare.
566918334Speter	* decl.c (init_decl_processing): Set lang_get_alias_set.
567050397Sobrien
567150397Sobrien1998-06-25  Andrew MacLeod  <amacleod@cygnus.com>
567252284Sobrien
567350397Sobrien	* cp-tree.h (mark_all_runtime_matches): Add function prototype.
567450397Sobrien	* except.c (mark_all_runtime_matches): Set TREE_SYMBOL_REFERENCED
567550397Sobrien	flag for all function decls which are in the exception table.
567650397Sobrien	* exception.cc (__cplus_type_matcher): Check for CATCH_ALL_TYPE match.
567750397Sobrien	* decl2.c (finish_file): Call mark_all_runtime_matches to make sure
567850397Sobrien	code is emitted for any referenced rtti function.
567950397Sobrien
568052284Sobrien1998-06-25  Dave Brolley  <brolley@cygnus.com>
568118334Speter
568250397Sobrien	* lang-specs.h: Use new | syntax to eliminate
568318334Speter	string concatenation.
568450397Sobrien
568518334Speter1998-06-25  Jason Merrill  <jason@yorick.cygnus.com>
568650397Sobrien
568718334Speter	* cp-tree.h (CP_DECL_CONTEXT): New macro.
568850397Sobrien	* decl2.c (is_namespace_ancestor, lookup_using_namespace): Use it.
568950397Sobrien	* method.c (build_overload_nested_name): Likewise.
569050397Sobrien	* sig.c (build_signature_pointer_or_reference_type): Don't set
569150397Sobrien	DECL_CONTEXT.
569250397Sobrien
569350397Sobrien1998-06-24  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
569450397Sobrien
569550397Sobrien	Set DECL_CONTEXT for globals to NULL_TREE instead of global_namespace.
569650397Sobrien	* cp-tree.h (FROB_CONTEXT): New macro.
569750397Sobrien	(DECL_MAIN_P): ::main should have a DECL_CONTEXT of NULL_TREE.
569850397Sobrien	* decl.c (namespace_binding): Replace NULL_TREE with
569950397Sobrien	global_namespace.
570050397Sobrien	(set_namespace_binding, pop_namespace, lookup_name_real): Likewise.
570150397Sobrien	* decl2.c (is_namespace_ancestor, lookup_using_namespace):
570250397Sobrien	Likewise.
570350397Sobrien	* decl.c (pushtag): Use FROB_CONTEXT.
570450397Sobrien	(pushdecl, make_typename_type, define_function, grokdeclarator):
570550397Sobrien	Likewise.
570650397Sobrien	* decl2.c (set_decl_namespace, do_namespace_alias): Likewise.
570750397Sobrien	* pt.c (push_template_decl_real, lookup_template_class, tsubst):
570850397Sobrien	Likewise.
570950397Sobrien	* decl2.c (decl_namespace): Return global_namespace if no context.
571050397Sobrien	* method.c (build_overload_nested_name): Expect null as context.
571150397Sobrien	* pt.c (mangle_class_name_for_template): Do nothing for null
571250397Sobrien	contexts.
571350397Sobrien	(lookup_template_class): Allow for null id_context.
571450397Sobrien
571550397Sobrien1998-06-25  Richard Henderson  <rth@cygnus.com>
571650397Sobrien
571750397Sobrien	* method.c (emit_thunk): Set current_function_is_thunk for the
571850397Sobrien	ASM_OUTPUT_MI_THUNK case as well.
571950397Sobrien
572050397Sobrien1998-06-23  Andrew MacLeod  <amacleod@cygnus.com>
572150397Sobrien
572250397Sobrien	* exception.cc (__cplus_type_matcher): Get a match_info pointer
572318334Speter	instead of an exception table entry as a parameter.
572450397Sobrien
572550397Sobrien1998-06-23  Andrew MacLeod  <amacleod@cygnus.com>
572618334Speter
572750397Sobrien	* parse.y (function_try_block): Don't call start_catch_handler.
572818334Speter	* except.c (call_eh_info): Remove coerced field from declaration.
572950397Sobrien	(build_eh_type_type_ref): New function to create an address of a
573050397Sobrien	rtti function for the new style exception tables.
573150397Sobrien	(expand_start_catch_block): Split function, this contains the
573250397Sobrien	common part.
573350397Sobrien	(process_start_catch_block_old): New function to perform the rest
573418334Speter	of expand_start_catch_block under old style exceptions.
573550397Sobrien	(process_start_catch_block_old): New function to perform the rest
573618334Speter	of expand_start_catch_block under new style exceptions.
573750397Sobrien	(expand_end_catch_block): Only pop the false label off the stack under
573850397Sobrien	the old style of exceptions.
573950397Sobrien	* semantics.c (finish_try_block): Don't call start_catch_handler.
574050397Sobrien	* exception.cc (struct cp_eh_info): Add original_value field.
574118334Speter	(__cplus_type_matcher): Perform type matching on the original exception
574250397Sobrien	value, and if we have a match, set the current value.
574350397Sobrien	(__cp_push_exception): Set the original exception value.
574450397Sobrien
574550397Sobrien1998-06-23  Jason Merrill  <jason@yorick.cygnus.com>
574652284Sobrien
574750397Sobrien	* call.c (joust): Fix confusing conversion warning.
574850397Sobrien
574950397Sobrien	* call.c (build_op_delete_call): Add placement parm.  Check
575018334Speter	LOOKUP_SPECULATIVELY.
575150397Sobrien	* cp-tree.h, decl2.c, init.c: Adjust.
575218334Speter	* decl.c (finish_function): Use it.
575350397Sobrien
575418334Speter	* pt.c (tsubst): Diagnose creating void fields or variables.
575550397Sobrien
575618334SpeterMon Jun 22 08:50:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
575750397Sobrien
575818334Speter	* call.c (build_scoped_method_call): Remove unused variable `tmp'.
575952284Sobrien
576052284Sobrien	* cp-tree.h (check_dtor_name): Add prototype.
576118334Speter
576250397Sobrien	* init.c (expand_member_init): Remove unused variables
576318334Speter	`ptr_type_node', `parm' and `rval'.
576450397Sobrien
576550397Sobrien	* ptree.c (print_lang_type): Use HOST_WIDE_INT_PRINT_DEC specifier
576650397Sobrien	in call to fprintf.
576718334Speter	(lang_print_xnode): Likewise.
576850397Sobrien
576918334Speter	* typeck2.c (enum_name_string): Cast argument to sprintf to long
577050397Sobrien	and use %ld specifier.
577150397Sobrien
577218334Speter	* xref.c (GNU_xref_end_scope): Use HOST_WIDE_INT_PRINT_DEC
577350397Sobrien	specifier in call to fprintf.
577418334Speter	(GNU_xref_member): Cast argument to sprintf to int.
577550397Sobrien
577650397SobrienFri Jun 19 23:22:42 1998  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
577750397Sobrien
577850397Sobrien	* typeck2.c (pop_init_level): Warn about implicit zero initialization
577918334Speter	of struct members.
578050397Sobrien
578118334SpeterThu Jun 18 09:32:32 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
578252284Sobrien
578318334Speter	* cp-tree.h: Prototype function `check_java_method'.
578450397Sobrien
578518334Speter1998-06-17  Jason Merrill  <jason@yorick.cygnus.com>
578650397Sobrien
578750397Sobrien	* class.c (finish_struct): Make conflicting use of id a pedwarn.
578850397Sobrien	* decl.c (pushdecl_class_level): Likewise.
578950397Sobrien
579050397Sobrien1998-06-17  Mark Mitchell  <mark@markmitchell.com>
579118334Speter
579250397Sobrien	* pt.c (convert_nontype_argument): Issue an error when presented
579318334Speter	with an integer (real) constant that cannot be simplified to an
579450397Sobrien	INT_CST (REAL_CST).
579518334Speter
579650397Sobrien	* cp-tree.h (c_get_alias_set): Remove declaration added in
579718334Speter	1998-06-13 change that should never have been checked in.
579850397Sobrien
579950397Sobrien1998-06-17  Jason Merrill  <jason@yorick.cygnus.com>
580018334Speter
580150397Sobrien	* typeck.c (build_binary_op_nodefault): Change % in format strings
580218334Speter	to %%.
580350397Sobrien
580450397Sobrien	* decl.c (grokvardecl): Don't build_static_name for decls that
580552284Sobrien	aren't at namespace scope.
580650397Sobrien
580750397Sobrien	* init.c (perform_member_init): Catch default-initialization of
580850397Sobrien	references.
580918334Speter
581050397Sobrien1998-06-17  Mark Mitchell  <mark@markmitchell.com>
581118334Speter
581250397Sobrien	* errfn.c (cp_thing): Handle the `%%' formatting sequence.
581350397Sobrien
581418334Speter1998-06-17  Jason Merrill  <jason@yorick.cygnus.com>
581550397Sobrien
581618334Speter	* method.c (hack_identifier): Complain about getting a namespace
581750397Sobrien	or class template.
581850397Sobrien	* typeck.c (decay_conversion): Remove check for namespaces.
581950397Sobrien	* typeck2.c (incomplete_type_error): Likewise.
582050397Sobrien	* parse.y (template_arg): Add PTYPENAME expansion.
582150397Sobrien
582218334Speter1998-06-16  Andrew MacLeod  <amacleod@cygnus.com>
582350397Sobrien
582418334Speter	* decl.c (grokvardecl): Don't build external assembler names for
582550397Sobrien	TYPENAMEs in other namespaces as there is no declarator.
582650397Sobrien	* error.c (cp_file_of, cp_line_of): Don't extract file or line number
582750397Sobrien	info from DECL_CONTEXT if it is NULL.
582850397Sobrien
582950397Sobrien1998-06-16  Jason Merrill  <jason@yorick.cygnus.com>
583050397Sobrien
583150397Sobrien	* call.c (check_dtor_name): Split out.
583250397Sobrien	(build_scoped_method_call): Use it.
583350397Sobrien	(build_method_call): Use it.
583450397Sobrien	* init.c (build_offset_ref): Use it.
583550397Sobrien
583650397Sobrien	* typeck.c (build_static_cast): Fix handling of pointers to members.
583750397Sobrien
583850397Sobrien	* decl.c (finish_function): Just return nothing from a constructor.
583950397Sobrien	* typeck.c (c_expand_return): Complain about returning a void
584050397Sobrien	expression from a destructor.
584150397Sobrien
584250397Sobrien1998-06-13  Mark Mitchell  <mark@markmitchell.com>
584350397Sobrien
584418334Speter	* class.c (alter_access): Accept a BINFO explaining how to get
584550397Sobrien	from the entity whose accessed is being altered to the type doing
584618334Speter	the altering.
584750397Sobrien	(handle_using_decl): New function containing code split out from ...
584850397Sobrien	(finish_struct_1): Here.
584918334Speter
585050397Sobrien	* cp-tree.h (complete_type_or_else): Declare.
585118334Speter	* init.c (build_new_1, build_delete): Use it.
585250397Sobrien	* typeck.c (require_complete_type): Use complete_type, rather than
585350397Sobrien	expanding it inline.
585418334Speter	(complete_type_or_else): New function.
585550397Sobrien	(build_component_ref): Use it.
585618334Speter	(pointer_int_sum): Make sure the type pointed to is complete.
585750397Sobrien	(pointer_diff): Likewise.
585850397Sobrien
585950397Sobrien	* pt.c (for_each_template_parm): Traverse the TYPE_CONTEXT for
586050397Sobrien	types.
586150397Sobrien
586250397Sobrien	* search.c (get_matching_virtual): Note that member templates
586350397Sobrien	cannot override virtual functions.
586450397Sobrien
586550397Sobrien1998-06-12  Brendan Kehoe  <brendan@cygnus.com>
586650397Sobrien
586750397Sobrien	* pt.c (check_explicit_specialization): If DECLARATOR turned into
586850397Sobrien	an error_mark_node from lookup_template_function, return the same.
586950397Sobrien	(determine_specialization): Also make sure TEMPLATE_ID isn't an
587050397Sobrien	error_mark_node, before we try to read its operands.
587150397Sobrien	* decl.c (grokdeclarator): If we got an error_mark_node from
587250397Sobrien	check_explicit_specialization, just return it right back.
587352284Sobrien
587418334Speter1998-06-12  Mark Mitchell  <mark@markmitchell.com>
587550397Sobrien
587618334Speter	* class.c (instantiate_type): Don't treat template-ids that don't
587750397Sobrien	specify any template arguments as equivalent to ordinary
587818334Speter	identifiers.  Use OFFSET_REF instead of SCOPE_REF to refer to
587950397Sobrien	pointer-to-members for member templates.  Tidy slightly.
588050397Sobrien	* cp-tree.def (TEMPLATE_ID_EXPR): Revise documentation.
588150397Sobrien	* init.c (build_offset_ref): Handle template-ids like ordinary
588250397Sobrien	identifiers, for the most part, but store a TEMPLATE_ID_EXPR in the
588318334Speter	offset part of the OFFSET_REF.
588450397Sobrien	* typeck.c (build_unary_op): Change check for unknown types to
588518334Speter	look for OFFSET_REFs, not SCOPE_REFs.
588650397Sobrien
588718334Speter1998-06-11  Mark Mitchell  <mark@markmitchell.com>
588850397Sobrien
588918334Speter	* pt.c (is_member_template_class): New function.
589050397Sobrien	(push_template_decl_real): Use it.
589118334Speter
589250397Sobrien1998-06-11  Benjamin Kosnik  <bkoz@elmo.cygnus.com>
589350397Sobrien
589418334Speter	* friend.c (do_friend): Add support for nested classes using
589550397Sobrien	member functions of the enclosing class as friends.
589650397Sobrien
589750397Sobrien1998-06-10  Mark Mitchell  <mark@markmitchell.com>
589818334Speter
589950397Sobrien	* call.c (convert_default_arg): Make global, not static.
590050397Sobrien	(convert_arg_for_ellipsis): Split out from ...
590118334Speter	(build_over_call): Here.
590250397Sobrien	* cp-tree.h (convert_default_arg); Declare.
590350397Sobrien	(convert_arg_to_ellipsis): Likewise.
590450397Sobrien	(do_member_init): Remove.
590518334Speter	* init.c (do_member_init): Remove; this code is dead.
590650397Sobrien	(expand_member_init): Remove much of this code; it is dead.
590718334Speter	* typeck.c (convert_arguments): Use convert_default_arg and
590852284Sobrien	convert_arg_for_ellipsis, rather than duplicating here.
590952284Sobrien
591018334Speter	* call.c (convert_like): Don't fail silently if
591150397Sobrien	build_user_type_conversion fails.  Always return error_mark_node
591218334Speter	for failure.
591350397Sobrien
591418334Speter1998-06-10  Jason Merrill  <jason@yorick.cygnus.com>
591550397Sobrien
591618334Speter	* search.c (covariant_return_p): Complain about ambiguous base.
591750397Sobrien
591850397Sobrien	* typeck.c (build_component_ref): Diagnose ref to nested type.
591918334Speter
592050397Sobrien1998-06-10  Brendan Kehoe  <brendan@cygnus.com>
592118334Speter
592250397Sobrien	* decl.c (grokparms): Check that INIT isn't an error_mark_node
592350397Sobrien	before giving error about invalid type for default arg.
592450397Sobrien
592518334Speter1998-06-10  Jason Merrill  <jason@yorick.cygnus.com>
592650397Sobrien
592750397Sobrien	* call.c (build_method_call): Fix thinko.
592818334Speter
592950397Sobrien1998-06-10  Dave Brolley  <brolley@cygnus.com>
593018334Speter
593150397Sobrien	* decl2.c (lang_decode_option): New argc/argv interface.
593250397Sobrien	* cp-tree.h (lang_decode_option): New argc/argv interface.
593318334Speter	* lang-specs.h (default_compilers): Only call cpp if -E, -M or -MM is
593450397Sobrien	specified for cpplib-enabled compilers.
593550397Sobrien	* lex.c (lang_init): Don't check_newline for cpplib.
593618334Speter	(init_parse): Don't initialize cpplib here.
593750397Sobrien
593850397Sobrien1998-06-10  Brendan Kehoe  <brendan@cygnus.com>
593918334Speter
594050397Sobrien	* typeck.c (build_component_ref): Make sure FIELD has a lang_specific
594118334Speter	piece before checking DECL_MUTABLE_P.
594250397Sobrien
594318334Speter1998-06-10  John Carr  <jfc@mit.edu>
594450397Sobrien
594518334Speter	* tree.c (debug_binfo): Make printf format match arguments.
594650397Sobrien
594750397Sobrien	* error.c (OB_PUTI): Make printf format match arguments.
594850397Sobrien
594950397Sobrien1998-06-10  Jason Merrill  <jason@yorick.cygnus.com>
595050397Sobrien
595118334Speter	* init.c (perform_member_init): Handle default-initialization.
595250397Sobrien
595318334Speter	* except.c (build_throw): Handle throwing NULL.
595452284Sobrien
595550397Sobrien	* typeck.c (build_x_function_call): Use resolve_offset_ref.
595650397Sobrien
595750397Sobrien	* search.c (compute_access): Only strip an anonymous union
595818334Speter	for a FIELD_DECL.
595950397Sobrien
596018334Speter	* call.c (add_builtin_candidates): Tweak.
596150397Sobrien
596250397Sobrien	* cvt.c (build_expr_type_conversion): Restore code for conversion
596350397Sobrien	from class types.
596450397Sobrien	* decl2.c (delete_sanity): Use it.  Clean up.
596518334Speter
596650397Sobrien	* typeck.c (comp_ptr_ttypes_real): Fix cv-qual comparisons.
596718334Speter
596850397Sobrien1998-06-10  Branko Cibej  <branko.cibej@hermes.si>
596950397Sobrien
597050397Sobrien	* typeck.c (c_expand_return): Don't warn about void expressions on
597118334Speter	return statements in functions returning void.
597250397Sobrien
597318334Speter1998-06-09  Mark Mitchell  <mark@markmitchell.com>
597450397Sobrien
597550397Sobrien	* pt.c (fn_type_unification): Revise documentation.  Tidy.
597650397Sobrien	(type_unification): Likewise.
597750397Sobrien
597850397Sobrien1998-06-09  Andrew MacLeod  <amacleod@cygnus.com>
597918334Speter
598050397Sobrien	* semantics.c (finish_try_block): Rename expand_start_catch, and delete
598150397Sobrien	expand_end_catch.
598250397Sobrien	* parse.y (function_try_block): Rename expand_start_catch, and delete
598350397Sobrien	expand_end_catch.
598450397Sobrien	* except.c (expand_end_eh_spec): Rename expand_start_catch, and delete
598550397Sobrien	expand_end_catch.
598650397Sobrien
598750397Sobrien1998-06-09  Jason Merrill  <jason@yorick.cygnus.com>
598818334Speter
598950397Sobrien	* search.c (lookup_member): New fn.
599052284Sobrien	* class.c (finish_struct_1): Use it.
599118334Speter	* decl.c (lookup_name_real): Use it.
599250397Sobrien
599350397SobrienMon Jun  8 20:45:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
599418334Speter
599550397Sobrien	* Makefile.in (decl2.o): Depend on dwarf2out.h and dwarfout.h.
599618334Speter
599750397Sobrien	* cp-tree.h: Add prototype for `maybe_print_template_context' and
599850397Sobrien	`maybe_make_one_only'.
599950397Sobrien
600050397Sobrien	* decl.c (auto_function): Remove unused variable `decl'.
600150397Sobrien
600250397Sobrien	* decl2.c: Include dwarf2out.h and dwarfout.h.
600318334Speter
600450397Sobrien	* lex.c: Remove redundant declarations of `set_float_handler' and
600518334Speter	`asm_out_file'.
600650397Sobrien
600750397Sobrien1998-06-08  Andrew MacLeod  <amacleod@cygnus.com>
600850397Sobrien
600950397Sobrien	* except.c (init_exception_processing): Remove NEW_EH_MODEL compile
601050397Sobrien	time flag.  Call __cp_eh_info instead of __cp_exception_info.
601150397Sobrien	* exception.cc (struct cp_eh_info): Remove NEW_EH_MODEL flag.
601250397Sobrien	(__cp_exception_info): Return offset into cp_eh_info structure to
601350397Sobrien	match what use to be the start of this structure.
601450397Sobrien	(__cp_eh_info): New function to return a pointer to cp_eh_info struct.
601550397Sobrien	(__cplus_type_matcher, __cp_push_exception): Remove NEW_EH_MODEL
601618334Speter	compile time flag.
601750397Sobrien	(__uncatch_exception, __check_eh_spec, std::uncaught_exception): Call
601818334Speter	__cp_eh_info instead of __cp_exception_info.
601950397Sobrien
602050397Sobrien1998-06-08  Jason Merrill  <jason@yorick.cygnus.com>
602118334Speter
602250397Sobrien	* decl.c (cp_finish_decl): Disable inlining of extern inlines
602318334Speter	with static variables.
602450397Sobrien
602552284Sobrien1998-06-08  Mark Mitchell  <mark@markmitchell.com>
602618334Speter
602750397Sobrien	* init.c (build_offset_ref): Correct previous change to use build,
602818334Speter	not build_min.
602950397Sobrien
603050397Sobrien1998-06-07  Mark Mitchell  <mark@markmitchell.com>
603150397Sobrien
603250397Sobrien	* class.c (instantiate_type): Handle pointer-to-members where the
603350397Sobrien	member is a template.
603450397Sobrien	* init.c (build_offset_ref): Likewise.
603550397Sobrien	* typeck.c (build_unary_op): Likewise.
603650397Sobrien
603750397Sobrien1998-06-07  Richard Henderson  <rth@cygnus.com>
603850397Sobrien
603952284Sobrien	* lex.c (lang_init_options): New function.
604052284Sobrien	(lang_init): Remove flag_exceptions == 2 hack.
604152284Sobrien
604250397Sobrien1998-06-05  Jason Merrill  <jason@yorick.cygnus.com>
604318334Speter
604450397Sobrien	* search.c (envelope_add_decl): Tweak for implicit typename.
604518334Speter
604650397Sobrien	* call.c (joust): Also warn about confusing conversion op/constructor
604718334Speter	overload resolution.
604850397Sobrien
604918334Speter	* spew.c (yylex): Also return the TYPE_DECL if got_object.
605050397Sobrien	Don't clear got_object after '~'.
605118334Speter	* call.c (build_scoped_method_call): Tweak destructor handling.
605250397Sobrien	(build_method_call): Likewise.
605350397Sobrien	* pt.c (tsubst_copy, case METHOD_CALL_EXPR): Don't mess with
605418334Speter	TYPE_MAIN_VARIANT for destructors.
605550397Sobrien	* semantics.c (finish_object_call_expr): Complain about calling a
605618334Speter	TYPE_DECL.
605750397Sobrien
605818334Speter1998-06-05  Per Bothner  <bothner@cygnus.com>
605950397Sobrien
606018334Speter	* g++spec.c (lang_specific_pre_link, lang_specific_extra_ofiles):
606150397Sobrien	Define - update needed by gcc.c change.
606250397Sobrien
606350397Sobrien1998-06-05  Jason Merrill  <jason@yorick.cygnus.com>
606450397Sobrien
606550397Sobrien	* error.c (cp_printers): Use 'o' instead of '_' for the null entry.
606650397Sobrien
606718334Speter1998-06-05  Martin v. Loewis  <loewis@informatik.hu-berlin.de>
606850397Sobrien
606918334Speter	* cp-tree.h (DECL_NAMESPACE_ALIAS, ORIGINAL_NAMESPACE): Declare.
607050397Sobrien	* decl.c (lookup_name_real): Add namespaces_only parameter.
607150397Sobrien	If set, return only NAMESPACE_DECLs.
607218334Speter	(select_decl): Likewise.
607350397Sobrien	(identifier_type_value): Give additional parameter.
607418334Speter	(lookup_name_nonclass): Likewise.
607550397Sobrien	(lookup_name): Likewise.
607618334Speter	(find_binding): Skip namespace aliases.
607750397Sobrien	(binding_for_name): Likewise.
607818334Speter	(push_namespace): Check for namespace aliases.
607950397Sobrien	(lookup_name_namespace_only): New function.
608018334Speter	(begin_only_namespace_names, end_only_namespace_names): New functions.
608150397Sobrien	* decl2.c (set_decl_namespace): Skip namespace aliases.
608218334Speter	(do_using_directive): Likewise.
608350397Sobrien	(do_namespace_alias): Produce namespace aliases, fix alias
608418334Speter	redeclaration.
608550397Sobrien	* error.c (dump_decl): Support SCOPE_REF.
608618334Speter	* parse.y (extdef): Wrap lookup with namespace_only for namespace
608750397Sobrien	aliases and using declarations.
608850397Sobrien
608918334Speter1998-06-04  Jason Merrill  <jason@yorick.cygnus.com>
609050397Sobrien
609118334Speter	* tree.c (really_overloaded_fn): Only see through one TREE_LIST.
609250397Sobrien
609350397Sobrien	* error.c (dump_expr): Clean up NEW_EXPR case.
609450397Sobrien
609518334Speter1998-06-04  Martin von L�wis  <loewis@informatik.hu-berlin.de>
609650397Sobrien
609718334Speter	Suggested by Brendan Kehoe
609850397Sobrien	* decl2.c (do_toplevel_using_decl): When decl is a TYPE_DECL,
609918334Speter	treat it as using ::decl.
610052284Sobrien
610152284Sobrien	* decl2.c (arg_assoc_type): Process unknown_type_node and OFFSET_TYPE.
610218334Speter
610350397Sobrien	* tree.c (mapcar): Support NEW_EXPR.
610418334Speter
610550397Sobrien	* error.c (dump_expr): Support NEW_EXPR.
610650397Sobrien
610718334Speter1998-06-03  Jason Merrill  <jason@yorick.cygnus.com>
610850397Sobrien
610918334Speter	* method.c (make_thunk): Use overload machinery to make name.
611050397Sobrien	* search.c (covariant_return_p): New fn.
611150397Sobrien	(get_matching_virtual): Use it.
611250397Sobrien
611350397Sobrien	* init.c (build_new_1): Fix check for void.
611450397Sobrien
611550397Sobrien1998-06-01  Per Bothner  <bothner@cygnus.com>
611618334Speter
611750397Sobrien	* cp-tree.h (TYPE_FOR_JAVA):  New macro.
611818334Speter	* decl.c, cp-tree.h (java_byte_type_node, java_short_type_node,
611950397Sobrien	java_int_type_node, java_long_type_node, java_float_type_node,
612050397Sobrien	java_double_type_node, java_char_type_node, java_boolean_type_node):
612150397Sobrien	New "primitive" types, with predefined names __java_byte etc.
612218334Speter	(record_builtin_java_type):  New function.
612350397Sobrien	(init_decl_processing):  Make Java types with record_builtin_java_type.
612418334Speter	(pushtag, grokdeclarator):  Set TYPE_FOR_JAVA if in extern "JAVA".
612550397Sobrien	(xref_baseypes):  If base class was TYPE_FOR_JAVA, so is this class.
612618334Speter	(grokfndecl):  Call check_java_method for Java classes.
612750397Sobrien	* method.c (is_java_type):  Removed.  Replaced with TYPE_FOR_JAVA.
612852284Sobrien	(process_overload_item):  Match types against specific
612918334Speter	java_XX_type_node types, rather than using is_java_type.
613050397Sobrien	* class.c (finish_struct_1):  Don't add default copy constructor
613118334Speter	or operator= if TYPE_FOR_JAVA.
613250397Sobrien	(pop_lang_conext):  Restore strict_prototyp proper if Java.
613318334Speter	* decl2.c (acceptable_java_type, check_java_method):  New functions.
613450397Sobrien	* pt.c (instantiate_class_template):  Copy TYPE_FOR_JAVA from pattern.
613552284Sobrien	(tsubst):  Move common statement after if statement.
613618334Speter	* typeck.c (comptypes):  If strict, TYPE_FOR_JAVA must match.
613750397Sobrien
613818334Speter1998-06-01  Jason Merrill  <jason@yorick.cygnus.com>
613952284Sobrien
614050397Sobrien	* pt.c (for_each_template_parm): Use first_rtl_op.
614150397Sobrien
614252284Sobrien	* tree.c (build_cplus_array_type_1): Also check index_type for
614350397Sobrien	template parms.
614450397Sobrien
614550397Sobrien1998-05-31  Jason Merrill  <jason@yorick.cygnus.com>
614650397Sobrien
614752284Sobrien	* pt.c (tsubst): Always copy BINFO_BASETYPES.
614850397Sobrien
614918334Speter1998-05-29  scott snyder  <snyder@d0sgif.fnal.gov>
615050397Sobrien
615118334Speter	* tree.c (layout_basetypes): If we change TYPE_SIZE, change
615250397Sobrien	TYPE_SIZE_UNIT too.
615350397Sobrien
615418334Speter1998-05-29  Mark Mitchell  <mark@markmitchell.com>
615550397Sobrien
615618334Speter	* decl.c (grokdeclarator): Don't complain about in-class
615750397Sobrien	initialization of static consts if we don't really know the type
615850397Sobrien	of the variable.
615918334Speter
616050397Sobrien1998-05-29  Jason Merrill  <jason@yorick.cygnus.com>
616118334Speter
616250397Sobrien	* cp-tree.h (DECL_DESTRUCTOR_P): New macro.
616350397Sobrien	* method.c (build_destructor_name): New fn.
616450397Sobrien	* decl2.c (maybe_retrofit_in_chrg): Split out...
616550397Sobrien	(grokclassfn): From here.  Reorganize.
616618334Speter	* decl.c (grok_ctor_properties): Make sure ctors for types with
616750397Sobrien	vbases have the in_chrg parm.
616818334Speter	* pt.c (instantiate_class_template): Update
616950397Sobrien	TYPE_USES_VIRTUAL_BASECLASSES from tsubsted bases.  Don't call
617050397Sobrien	grok_*_properties.
617152284Sobrien	(tsubst): Call grok_ctor_properties and maybe_retrofit_in_chrg.
617250397Sobrien
617318334Speter1998-05-28  Mark Mitchell  <mark@markmitchell.com>
617450397Sobrien
617518334Speter	* pt.c (instantiate_decl): Make test for whether or not static
617650397Sobrien	variables should be instantiated early match its comment.
617750397Sobrien
617818334Speter1998-05-28  Jason Merrill  <jason@yorick.cygnus.com>
617950397Sobrien
618050397Sobrien	* decl.c (start_decl): Always pedwarn about vacuously redeclaring
618150397Sobrien	a member.
618250397Sobrien	(start_function): Call check_default_args.
618350397Sobrien	* decl2.c (grokfield): Don't call check_default_args.
618450397Sobrien	(check_default_args): Use cp_error_at.
618550397Sobrien	* lex.c (do_pending_defargs): Call check_default_args.
618650397Sobrien
618718334Speter1998-05-27  Brendan Kehoe  <brendan@cygnus.com>
618850397Sobrien
618918334Speter	* call.c (build_method_call): Make sure get_type_value returns
619050397Sobrien	something before we try to use its TYPE_MAIN_VARIANT.
619150397Sobrien	(build_scoped_method_call): Likewise.
619218334Speter
619350397Sobrien1998-05-27  Jason Merrill  <jason@yorick.cygnus.com>
619418334Speter
619550397Sobrien	* typeck2.c (digest_init): Complain about getting a TREE_LIST to
619618334Speter	initialize an array.
619750397Sobrien
619818334Speter	* search.c (expand_upcast_fixups): Don't set DECL_CONTEXT and
619950397Sobrien	DECL_VIRTUAL_P.
620050397Sobrien
620150397Sobrien	* friend.c (do_friend): Clarify template warning.
620250397Sobrien
620350397Sobrien1998-05-27  Mark Mitchell  <mark@markmitchell.com>
620450397Sobrien
620550397Sobrien	* decl.c (shadow_label): Don't treat decls as identifiers.
620650397Sobrien	(maybe_push_to_top_level): Clear shadowed_labels.
620750397Sobrien
620850397Sobrien	* pt.c (instantiate_decl): Reset lineno and filename after calling
620950397Sobrien	regenerate_decl_from_template.
621050397Sobrien
621150397Sobrien	* decl.c (grokdeclarator): Don't try to use TYPE_OBSTACK on an
621250397Sobrien	error_mark_node.
621352284Sobrien
621450397Sobrien1998-05-27  Kevin Buhr  <buhr@stat.wisc.edu>
621550397Sobrien
621650397Sobrien	* parse.y (base_class): Use is_aggr_type, not IS_AGGR_TYPE.
621750397Sobrien
621818334Speter1998-05-26  Kriang Lerdsuwanakij  <lerdsuwa@scf.usc.edu>
621950397Sobrien
622018334Speter	* pt.c (process_template_parm): Accept TYPENAME_TYPE nodes.
622150397Sobrien	(convert_nontype_argument): Handle cases when nontype template
622218334Speter	parameters become classes after substitution.
622350397Sobrien
622418334Speter1998-05-26  Mark Mitchell  <mark@markmitchell.com>
622550397Sobrien
622618334Speter	* friend.c (is_friend): Use comptypes, rather than == to compare
622750397Sobrien	types.  Modify for new representation of template friends.
622850397Sobrien	(make_friend_class): Likewise.
622950397Sobrien	* pt.c (tsubst_friend_class): Undo 1998-05-21 change.  Tweak.
623018334Speter	(instantiate_class_template): Deal with template friends.
623150397Sobrien
623218334Speter	* decl.c (store_parm_decls): Remove redundant call to
623350397Sobrien	expand_main_function.
623418334Speter
623550397Sobrien1998-05-26  Benjamin Kosnik  <bkoz@loony.cygnus.com>
623618334Speter
623750397Sobrien	* decl.c (start_decl): Check for DECL_LANG_SPECIFIC before
623818334Speter	DECL_USE_TEMPLATE.
623950397Sobrien
624050397Sobrien1998-05-26  Per Bothner  <bothner@cygnus.com>
624150397Sobrien
624218334Speter	* language_as_string:  Handle lang_java.
624350397Sobrien
624418334Speter1998-05-26  Jason Merrill  <jason@yorick.cygnus.com>
624550397Sobrien
624618334Speter	* decl.c (pushdecl): Don't copy the type_decl.
624750397Sobrien
624850397Sobrien1998-05-26  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
624950397Sobrien
625050397Sobrien	* class.c (pushclass): Always store TYPE_MAIN_VARIANT in
625150397Sobrien	current_class_type.
625250397Sobrien	* decl.c (grokdeclarator): Put typedefs on the type's obstack.
625350397Sobrien
625450397Sobrien	* parse.y (complex_direct_notype_declarator): Use $1 to access
625550397Sobrien	scope of notype_qualified_id.
625650397Sobrien
625750397Sobrien1998-05-26  Dave Brolley  <brolley@cygnus.com>
625850397Sobrien
625950397Sobrien	* lex.c (parse_options,yy_cur,yy_lim): Add for cpplib.
626050397Sobrien	(init_parse): Initialize cpplib interface.
626150397Sobrien
626250397Sobrien	* Makefile.in (CXX_OBJS): Make sure dependencies never end with an
626350397Sobrien	empty continuation.
626450397Sobrien
626550397Sobrien1998-05-26  Mark Mitchell  <mark@markmitchell.com>
626650397Sobrien
626718334Speter	* decl.c (pushtag): Avoid crashing on erroneous input.
626850397Sobrien
626918334Speter1998-05-25  Martin v. L�wis  <loewis@informatik.hu-berlin.de>
627050397Sobrien
627118334Speter	* decl.c (push_namespace): Only produce one unique name for
627250397Sobrien	anonymous namespaces.
627318334Speter	(get_unique_name): Remove.
627418334Speter
627550397Sobrien1998-05-25  Mark Mitchell  <mark@markmitchell.com>
627618334Speter
627750397Sobrien	* call.c (tourney): Don't do any extra comparisons.
627818334Speter
627950397Sobrien	* decl2.c (build_anon_union_vars): Don't crash on empty sub-unions.
628018334Speter
628150397Sobrien	* cp-tree.h (processing_template_parmlist): Declare.
628250397Sobrien	* decl.c (pushtag): Don't call push_template_decl when we
628318334Speter	shouldn't.
628450397Sobrien	* pt.c (processing_template_parmlist): New variable.
628518334Speter	(TMPL_ARGS_HAVE_MULTIPLE_LEVELS): New macro.
628650397Sobrien	(complete_template_args): Use it.
628750397Sobrien	(add_to_template_args): Likewise.
628850397Sobrien	(innermost_args): Likewise.
628918334Speter	(tsubst): Likewise.
629050397Sobrien	(begin_template_parm_list): Use processing_template_parmlist.
629118334Speter	(end_template_parm_list): Likewise.
629250397Sobrien
629350397Sobrien	* cp-tree.h (ANON_UNION_TYPE_P): New macro.
629450397Sobrien	* decl.c (grokdeclarator): Use it.
629550397Sobrien	* decl2.c (grok_x_components): Likewise.
629652284Sobrien	* init.c (initializing_context): Likewise.
629750397Sobrien	* method.c (do_build_copy_constructor): Likewise.
629852284Sobrien	(do_build_assign_ref): Likewise.
629950397Sobrien	* search.c (compute_access): Likewise.
630050397Sobrien	* typeck.c (build_component_ref): Likewise.
630150397Sobrien
630218334Speter	* decl.c (grokdeclarator): Don't give a cv-qualified version of an
630350397Sobrien	unnamed type a typedef name "for linkage purposes".
630418334Speter
630550397Sobrien	* pt.c (lookup_template_class): Don't look at
630650397Sobrien	IDENTIFIER_CLASS_VALUE when there's no current_class_type.
630718334Speter
630850397Sobrien	* method.c (build_overload_int): Handle error cases gracefully.
630918334Speter
631052284Sobrien	* pt.c (instantiate_decl): Handle static member variables
631150397Sobrien	correctly.
631250397Sobrien
631350397Sobrien	* pt.c (tsubst): Use the tsubst'd type when producing new
631450397Sobrien	TEMPLATE_PARM_INDEX nodes.
631550397Sobrien
631618334Speter1998-05-24  Mark Mitchell  <mark@markmitchell.com>
631750397Sobrien
631818334Speter	* tree.c (cp_tree_equal): Handle pointers to member functions.
631950397Sobrien
632050397Sobrien	* call.c (maybe_handle_implicit_object): Handle QUAL_CONVs.  Make
632150397Sobrien	sure the type of the REF_BIND is a reference type.
632218334Speter	(maybe_handle_ref_bind, compare_ics): Rename reference_type to
632350397Sobrien	target_type for clarity.
632418334Speter
632550397Sobrien	* parse.y (xcond): Move call to condition_conversion ...
632650397Sobrien	* semantics.c (finish_for_cond): Here.
632718334Speter	* parse.c: Regenerated.
632850397Sobrien
632950397Sobrien1998-05-24  Jason Merrill  <jason@yorick.cygnus.com>
633018334Speter
633150397Sobrien	* decl.c (push_namespace): Namespaces have type void.
633218334Speter	* typeck2.c (incomplete_type_error): Complain about namespace
633350397Sobrien	used as expression.
633418334Speter	* typeck.c (decay_conversion): Likewise.
633550397Sobrien
633650397Sobrien1998-05-24  Martin von L�wis  <loewis@informatik.hu-berlin.de>
633718334Speter
633850397Sobrien	* error.c (dump_expr): Support namespaces.
633952284Sobrien
634018334Speter1998-05-23  Jason Merrill  <jason@yorick.cygnus.com>
634150397Sobrien
634250397Sobrien	* cp-tree.def: Add SRCLOC.
634318334Speter	* cp-tree.h: Add struct tree_srcloc and accessor macros.
634450397Sobrien	* tree.c (build_srcloc, build_srcloc_here): New fns.
634518334Speter	* pt.c (add_pending_template): Use build_srcloc_here.
634650397Sobrien	(push_tinst_level): Update last_template_error_tick before erroring.
634718334Speter	(instantiate_decl): Restore lineno and input_filename before
634850397Sobrien	calling add_pending_template.
634918334Speter	* decl2.c (finish_file): Set up lineno and input_filename for
635050397Sobrien	pending templates.
635150397Sobrien
635250397Sobrien1998-05-22  Jason Merrill  <jason@yorick.cygnus.com>
635318334Speter
635450397Sobrien	* decl.c (lang_print_error_function): New fn.
635518334Speter	(init_decl_processing): Set print_error_function to use it.
635650397Sobrien	* errfn.c (cp_thing): Don't call maybe_print_template_context here.
635750397Sobrien
635850397Sobrien	* call.c (maybe_handle_ref_bind): Propagate ICS_USER_FLAG and
635950397Sobrien	ICS_BAD_FLAG.
636050397Sobrien
636118334Speter	* cvt.c (ocp_convert): Don't set LOOKUP_NO_CONVERSION for
636250397Sobrien	copy-initialization.
636350397Sobrien
636418334Speter	* class.c (build_vtable_entry): Use int_fits_type_p.
636550397Sobrien	(build_vtable): Pass a signed offset to build_vtable_entry.
636618334Speter	(prepare_fresh_vtable, modify_one_vtable, fixup_vtable_deltas1,
636750397Sobrien	set_rtti_entry): Likewise.
636852284Sobrien
636918334Speter1998-05-22  Per Bothner  <bothner@cygnus.com>
637050397Sobrien
637118334Speter	* cp-tree.h:  Add comments documenting which LANG_FLAGS are used.
637250397Sobrien	(C_TYPE_VARIABLE_SIZE, C_DECL_VARIABLE_SIZE):  Removed, not used.
637318334Speter
637450397Sobrien1998-05-22  Jason Merrill  <jason@yorick.cygnus.com>
637518334Speter
637650397Sobrien	* pt.c (print_template_context): Use fprintf instead of cp_error.
637718334Speter
637850397Sobrien	* pt.c (determine_specialization): Just return an error_mark_node.
637918334Speter	Also print the decl we want in error messages.  If we complain,
638050397Sobrien	return error_mark_node.
638150397Sobrien	(tsubst_friend_function): Set lineno and input_filename so
638250397Sobrien	error messages will be useful.
638318334Speter	(instantiate_template): Just return an error_mark_node.
638450397Sobrien	(check_explicit_specialization): Don't mess with a returned
638550397Sobrien	error_mark_node.
638618334Speter
638750397Sobrien	* pt.c (print_template_context): Add new argument.
638818334Speter	(maybe_print_template_context): New fn.
638950397Sobrien	(push_tinst_level): Increment tinst_level_tick.
639050397Sobrien	(pop_tinst_level): Likewise.
639118334Speter	* errfn.c (cp_thing): Call maybe_print_template_context.  Use
639250397Sobrien	xrealloc instead of xmalloc.
639350397Sobrien
639418334Speter	* typeck.c (build_unary_op, CONVERT_EXPR): Propagate TREE_CONSTANT.
639550397Sobrien
639618334Speter1998-05-21  Jason Merrill  <jason@yorick.cygnus.com>
639750397Sobrien
639818334Speter	* pt.c (tsubst_friend_class): Don't call redeclare_class_template
639950397Sobrien	if the template we looked up is the same as the one we already
640018334Speter	have.
640150397Sobrien
640250397SobrienThu May 21 11:54:44 1998  Dave Brolley  <brolley@cygnus.com>
640350397Sobrien
640418334Speter	* lex.c: (handle_sysv_pragma): FILE* parameter not used.
640550397Sobrien	(cpp_reader,parse_in): Add for cpplib.
640618334Speter	(check_newline): Call handle_sysv_pragma with new interface.
640750397Sobrien	(check_newline): Call GET_DIRECTIVE_LINE, not get_directive_line.
640818334Speter
640950397Sobrien	* input.c: (yy_cur,yy_lim,yy_get_token,GETC): Add for cpplib.
641018334Speter	(sub_getch): Call GETC for cpplib.
641150397Sobrien
641250397Sobrien	* cp-tree.h: (get_directive_line): Different prototype for cpplib.
641352284Sobrien	(GET_DIRECTIVE_LINE): Macro wrapper for get_directive_line.
641450397Sobrien
641550397Sobrien	* Makefile.in (CXX_OBJS): Add @extra_cxx_objs@ for cpplib.
641650397Sobrien
641750397Sobrien1998-05-21  Jason Merrill  <jason@yorick.cygnus.com>
641850397Sobrien
641950397Sobrien	* decl2.c (maybe_make_one_only): New fn.
642050397Sobrien	(import_export_vtable): Use it.
642150397Sobrien	(import_export_decl): Likewise.
642218334Speter	* pt.c (mark_decl_instantiated): Likewise.
642350397Sobrien
642450397Sobrien1998-05-21  Mark Mitchell  <mmitchell@usa.net>
642550397Sobrien
642650397Sobrien	* decl2.c (find_representative_member): Rename to ...
642750397Sobrien	(build_anon_union_vars): New function.
642850397Sobrien	(finish_anon_union): Fix stupidity of previous change.
642950397Sobrien
643050397Sobrien1998-05-20  Jason Merrill  <jason@yorick.cygnus.com>
643118334Speter
643250397Sobrien	* decl.c (grokfndecl): Handle definition of specialization in
643350397Sobrien	friend declaration.
643418334Speter
643550397Sobrien	* error.c (dump_decl): Fix LOOKUP_EXPR handling.
643650397Sobrien
643718334Speter1998-05-20  Mark Mitchell  <mmitchell@usa.net>
643850397Sobrien
643918334Speter	* class.c (delete_duplicate_fields_1): Use DECL_DECLARES_TYPE_P
644050397Sobrien	to look for type declarations.
644150397Sobrien	(finish_struct): Deal with templates on the CLASSTYPE_TAGS list.
644218334Speter	* cp-tree.h (DECL_DECLARES_TYPE_P): New macro.
644350397Sobrien	(finish_member_class_template): Declare.
644450397Sobrien	* decl.c (pushtag): Put member class templates on the
644518334Speter	CLASSTYPE_TAGS list, just as for ordinary member classes.
644650397Sobrien	(pushdecl_class_level): Use DECL_DECLARES_TYPE_P.
644718334Speter	(lookup_tag): Look for IDENTIFIER_CLASS_VALUEs, just as with
644850397Sobrien	IDENTIFIER_NAMESPACE_VALUEs.
644918334Speter	* parse.y (component_decl): Move code to ...
645050397Sobrien	* semantics.c (finish_member_class_template): New function.
645150397Sobrien	Don't put member class templates on the list of components for a
645250397Sobrien	class.
645350397Sobrien	* parse.c: Regenerated.
645418334Speter	* pt.c (classtype_mangled_name): Don't try DECL_CONTEXT on types.
645550397Sobrien	In fact, don't use DECL_CONTEXT at all here.
645650397Sobrien
645750397Sobrien1998-05-20  Martin von Loewis  <loewis@informatik.hu-berlin.de>
645852284Sobrien
645950397Sobrien	* decl.c (record_unknown_type): New function.
646018334Speter	(init_decl_processing): Call it for the unknown and global type
646150397Sobrien	nodes.
646250397Sobrien
646350397Sobrien1998-05-20  Mark Mitchell  <mmitchell@usa.net>
646450397Sobrien
646518334Speter	* decl2.c (find_representative_member): New function.
646650397Sobrien	(finish_anon_union): Use it.
646718334Speter
646850397Sobrien	* cp-tree.h (MAIN_NAME_P): New macro.
646918334Speter	(DECL_MAIN_P): Likwise.
647050397Sobrien	* decl.c (pushdecl): Avoid crashing on redefinitions of `main'.
647118334Speter	(grokfndecl): Use the new macros.
647250397Sobrien	(grokdeclarator): Likewise.
647350397Sobrien	(start_function): Likewise.
647450397Sobrien	(store_parm_decls): Likewise.
647550397Sobrien	(finsh_function): Likewise.
647650397Sobrien	* friend.c (do_friend): Likewise.
647752284Sobrien	* typeck.c (build_function_call_real): Likewise.
647850397Sobrien	(build_unary_op): Likewise.
647950397Sobrien
648050397SobrienWed May 20 02:16:01 1998  Jason Merrill  <jason@yorick.cygnus.com>
648118334Speter
648250397Sobrien	* decl2.c (start_objects, finish_objects, do_dtors,
648318334Speter	do_ctors): Split out from...
648452284Sobrien	(finish_file): ...here.
648550397Sobrien
648650397SobrienTue May 19 20:36:23 1998  Jason Merrill  <jason@yorick.cygnus.com>
648718334Speter
648850397Sobrien	* tree.c (is_overloaded_fn): Don't abort on placeholders from
648950397Sobrien	push_class_decls.
649018334Speter
649150397SobrienTue May 19 15:16:22 1998  Brendan Kehoe  <brendan@cygnus.com>
649250397Sobrien
649318334Speter	* class.c (is_empty_class): Return 0 if TYPE is an error_mark_node.
649450397Sobrien
649550397Sobrien	* error.c (dump_expr): Handle an ARROW_EXPR.
649650397Sobrien
649750397SobrienTue May 19 15:13:39 1998  Mark Mitchell  <mmitchell@usa.net>
649818334Speter
649950397Sobrien	* decl.c (saveable_obstack): Declare.
650018334Speter	(pushdecl): Copy TYPE_DECLs to the same obstack as the type they
650150397Sobrien	declare, if necessary.
650250397Sobrien
650318334SpeterTue May 19 14:50:27 1998  Mark Mitchell  <mmitchell@usa.net>
650450397Sobrien
650518334Speter	* call.c (compare_qual): Remove.
650650397Sobrien	(is_subseq): Tweak.
650718334Speter	(is_properly_derived_from): New function.
650850397Sobrien	(maybe_handle_ref_bind): Likewise.
650950397Sobrien	(maybe_handle_implicit_object): Likewise.
651050397Sobrien	(compare_ics): Modify substantially to bring into conformance with
651152284Sobrien	the standard.
651250397Sobrien	* cp-tree.h (TYPE_PTRMEMFUNC_OBJECT_TYPE): New macro.
651350397Sobrien	(comp_cv_qualification): Declare.
651450397Sobrien	(comp_cv_qual_signature): Likewise.
651550397Sobrien	* typeck.c (comp_cv_qualification): Likewise.
651618334Speter	(comp_cv_qual_signature): Likewise.
651750397Sobrien
651850397SobrienTue May 19 10:05:02 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
651950397Sobrien
652050397Sobrien	* Makefile.in (parse.o): Depend on toplev.h.
652150397Sobrien
652250397Sobrien	* class.c (typecode_p): Remove prototype and definition.
652318334Speter
652450397Sobrien	* cp-tree.h (currently_open_class, is_empty_class, member_p):
652518334Speter	Add prototype.
652650397Sobrien
652718334Speter	* decl.c (push_overloaded_decl_top_level): Remove prototype and
652850397Sobrien	definition.
652950397Sobrien
653050397Sobrien	* errfn.c (cp_error): Cast function pointer `error' to (errorfn *)
653118334Speter	in call to `cp_thing'.
653250397Sobrien	(cp_warning): Likewise for function pointer `warning'.
653318334Speter
653450397Sobrien	* except.c (do_function_call): Remove prototype and definition.
653550397Sobrien	(call_eh_info): Wrap variable `t1' in macro NEW_EH_MODEL.
653650397Sobrien
653750397Sobrien	* method.c (is_java_type): Add prototype and make it static.
653818334Speter
653950397Sobrien	* parse.y: Include toplev.h.
654050397Sobrien
654118334Speter	* pt.c (type_unification): Remove unused variable `arg'.
654250397Sobrien	(instantiate_decl): Likewise for `save_ti'.
654350397Sobrien
654418334Speter	* tree.c (propagate_binfo_offsets): Likewise for `base_binfos'.
654552284Sobrien
654618334SpeterTue May 19 02:43:25 1998  Jason Merrill  <jason@yorick.cygnus.com>
654750397Sobrien
654818334Speter	* init.c (build_member_call): Handle template_ids.
654950397Sobrien	* parse.y (primary): Add global_scope template_id.
655050397Sobrien
655150397SobrienMon May 18 23:22:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
655250397Sobrien
655318334Speter	* decl2.c (get_sentry): Use end_temporary_allocation.
655450397Sobrien	Don't declare permanent_obstack.
655518334Speter
655650397SobrienMon May 18 12:28:44 1998  Mark Mitchell  <mmitchell@usa.net>
655750397Sobrien
655850397Sobrien	* parse.y (.finish_new_placement): New non-terminal.
655918334Speter	(unary_expr, new_type_id): Use it.
656050397Sobrien	* parse.c: Regenerated.
656118334Speter
656250397SobrienMon May 18 12:20:27 1998  Brendan Kehoe  <brendan@cygnus.com>
656350397Sobrien
656418334Speter	* pt.c (redeclare_class_template): Say where the original definition
656550397Sobrien	of the template-parameter's default argument appeared.
656618334Speter
656750397SobrienMon May 18 03:00:57 1998  Jason Merrill  <jason@yorick.cygnus.com>
656818334Speter
656950397Sobrien	* call.c (build_over_call): Tweak empty class handling.
657050397Sobrien
657150397Sobrien	* decl.c (make_typename_type): Use currently_open_class.
657250397Sobrien
657350397Sobrien	* class.c (instantiate_type): Don't abort on TREE_NONLOCAL_FLAG.
657450397Sobrien
657550397SobrienMon May 18 01:43:01 1998  Martin v. Loewis  <loewis@informatik.hu-berlin.de>
657650397Sobrien
657750397Sobrien	* decl.c (lookup_name_real): Don't look at IDENTIFIER_LOCAL_VALUE
657852284Sobrien	for a type unless it is one.
657950397Sobrien
658052284Sobrien	* class.c (finish_struct_1): Use OVL_CURRENT in error message.
658150397Sobrien
658252284SobrienMon May 18 01:24:08 1998  Jeffrey A Law  (law@cygnus.com)
658350397Sobrien
658450397Sobrien	* Makefile.in (program_transform_name, objdir): Define.
658550397Sobrien
658618334Speter	* Makefile.in (BISON): Use bison from the build tree if it exists.
658750397Sobrien	(FLEX): Likewise.
658818334Speter
658950397SobrienSun May 17 14:52:08 1998  Martin v. Loewis  <loewis@informatik.hu-berlin.de>
659050397Sobrien
659150397Sobrien	* typeck.c (type_unknown_p): Return true for TREE_LIST also.
659218334Speter
659350397Sobrien	* call.c (build_method_call): Use TYPE_MAIN_VARIANT on typedefs.
659418334Speter
659550397SobrienSun May 17 14:51:41 1998  Jason Merrill  <jason@yorick.cygnus.com>
659650397Sobrien
659718334Speter	* call.c (build_scoped_method_call): Likewise.
659850397Sobrien
659950397SobrienSun May 17 13:53:48 1998  Mark Mitchell  <mmitchell@usa.net>
660050397Sobrien
660150397Sobrien	* init.c (build_new_1): Call suspend_momentary around the creation
660250397Sobrien	of values that must be saved for exception handling.
660350397Sobrien	* parse.y (.build_new_placement): New non-terminal.
660450397Sobrien	(unary_expr, new_placement): Use it.
660550397Sobrien	* parse.c: Regenerated.
660650397Sobrien
660750397SobrienSun May 17 12:32:08 1998  Jason Merrill  <jason@yorick.cygnus.com>
660850397Sobrien
660918334Speter	* decl.c (duplicate_decls): Use CANONICAL_TYPE_VARIANT to compare
661050397Sobrien	old and new types.
661118334Speter
661250397Sobrien	* pt.c (tsubst): Make sure that BINFO_TYPE of new binfos is the
661350397Sobrien	canonical type.
661450397Sobrien
661518334Speter	* call.c (build_over_call): Don't use IS_SIGNATURE on a namespace.
661650397Sobrien
661718334SpeterFri May 15 20:28:00 1998  Jason Merrill  <jason@yorick.cygnus.com>
661850397Sobrien
661950397Sobrien	* decl.c (start_decl): Revert problem change.
662018334Speter
662150397Sobrien	* Makefile.in (CONFLICTS): Fix.
662218334Speter
662350397SobrienFri May 15 15:34:02 1998  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
662418334Speter
662550397Sobrien	* decl.c (duplicate_decls): Clean up, add DECL_DATA_AREA bits.
662618334Speter
662750397SobrienFri May 15 00:46:05 1998  Jason Merrill  <jason@yorick.cygnus.com>
662818334Speter
662950397Sobrien	* class.c (finish_struct_1): Use BINFO_SIZE.
663050397Sobrien
663150397Sobrien	* decl.c (start_decl): Use 'tem'.
663218334Speter
663350397SobrienThu May 14 16:30:47 1998  Andrew MacLeod  <amacleod@cygnus.com>
663418334Speter
663550397Sobrien	* exception.cc: Include eh-common.h.
663650397Sobrien	(struct cp_eh_info): Add eh_info struct with NEW_EH_MODEL.
663750397Sobrien	(__cplus_type_matcher): First stab at new C++ runtime type matcher.
663850397Sobrien	(__cp_push_exception): Initialize eh_info struct as well.
663950397Sobrien	* except.c: Remove local structs and include eh-common.h.
664050397Sobrien	(init_exception_processing): Set language and version codes.
664150397Sobrien	(call_eh_info): Add presence of eh_info to runtime description of
664250397Sobrien	struct cp_eh_info.
664350397Sobrien	(expand_end_eh_spec): Call start_catch_block() and end_catch_block().
664450397Sobrien	* semantics.c (finish_try_block): Call start_catch_block() and
664550397Sobrien	end_catch_block().
664650397Sobrien	* parse.y (function_try_block): Call start_catch_block() and
664718334Speter	end_catch_block().
664850397Sobrien
664918334SpeterThu May 14 12:27:34 1998  Brendan Kehoe  <brendan@cygnus.com>
665050397Sobrien
665118334Speter	* typeck.c (original_type): New function.
665250397Sobrien	(common_type): Use it to get the DECL_ORIGINAL_TYPE for T1 and T2,
665318334Speter	to see if they're actually the same.
665450397Sobrien	* cp-tree.h (original_type): Declare.
665550397Sobrien
665618334SpeterWed May 13 12:54:30 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
665750397Sobrien
665850397Sobrien	* Makefile.in (lex.o): Depend on output.h.
665918334Speter
666050397Sobrien	* call.c (add_function_candidate): Remove unused variable `cand'.
666152284Sobrien	(add_conv_candidate): Likewise.
666250397Sobrien	(build_builtin_candidate): Likewise.
666318334Speter
666450397Sobrien	* cp-tree.h: Add prototype for `types_overlap_p'.
666550397Sobrien
666618334Speter	* decl.c (signal_catch): Mark parameter `sig' with ATTRIBUTE_UNUSED.
666750397Sobrien
666818334Speter	* decl2.c (merge_functions): Remove unused variables `tmp' and
666950397Sobrien	`tempn'.
667018334Speter
667150397Sobrien	* error.c (expr_as_string): Mark parameter `v' with ATTRIBUTE_UNUSED.
667252284Sobrien	(code_as_string): Likewise.
667318334Speter	(language_as_string): Likewise.
667450397Sobrien	(parm_as_string): Likewise.
667552284Sobrien	(op_as_string): Likewise.
667650397Sobrien	(assop_as_string): Likewise.
667718334Speter	(cv_as_string): Likewise.
667850397Sobrien
667950397Sobrien	* lex.c: Include output.h.
668018334Speter
668150397Sobrien	* pt.c (type_unification): Cast first argument of `bzero' to a char*.
668218334Speter
668350397Sobrien	* search.c (dfs_no_overlap_yet): Mark parameter `t' with
668450397Sobrien	ATTRIBUTE_UNUSED.
668518334Speter
668650397Sobrien	* tinfo.cc (__class_type_info::dcast): Change the type of variable
668718334Speter	`i' from int to size_t.
668850397Sobrien
668952284Sobrien	* typeck.c (language_lvalue_valid): Mark parameter `exp' with
669050397Sobrien	ATTRIBUTE_UNUSED.
669152284Sobrien
669250397SobrienTue May 12 21:37:49 1998  Jason Merrill  <jason@yorick.cygnus.com>
669318334Speter
669450397Sobrien	* error.c (dump_simple_decl): Use DECL_CLASS_SCOPE_P and/or
669550397Sobrien	DECL_NAMESPACE_SCOPE_P.
669618334Speter	(lang_decl_name): Likewise.
669750397Sobrien	* pt.c (tsubst_friend_function, tsubst): Likewise.
669818334Speter	* decl.c (pushdecl, redeclaration_error_message, start_decl,
669950397Sobrien	cp_finish_decl, start_function): Likewise.
670018334Speter	* class.c (finish_struct_1): Likewise.
670150397Sobrien	* call.c (build_over_call): Likewise.
670218334Speter	(compare_ics): Use DERIVED_FROM_P.
670350397Sobrien
670418334SpeterTue May 12 07:24:18 1998  Mark Mitchell  <mmitchell@usa.net>
670550397Sobrien
670618334Speter	* cp-tree.h (CANONICAL_TYPE_VARIANT): New macro.
670752284Sobrien	* method.c (build_mangled_name): Use it.
670850397Sobrien	(build_decl_overload_real): Likewise.
670918334Speter
671050397Sobrien	* error.c (dump_simple_decl): New function, broken out from ...
671118334Speter	(dump_decl): Use it.
671250397Sobrien
671318334SpeterMon May 11 11:38:07 1998  Mark Mitchell  <mmitchell@usa.net>
671450397Sobrien
671518334Speter	* ptree.c (lang_print_xnode): Add missing `break'.
671650397Sobrien
671752284Sobrien	* pt.c (tsubst): Remove duplicate check for IDENTIFIER_NODE.
671818334Speter
671950397Sobrien	* call.c (add_template_candidate): Adjust for changes to
672018334Speter	fn_type_unification.
672150397Sobrien	(add_template_candidate_real): Likewise.
672218334Speter	(add_template_conv_candidate): Likewise.
672350397Sobrien	(build_user_type_conversion_1): Likewise.
672418334Speter	(build_new_function_call): Likewise.
672550397Sobrien	(build_object_call): Likewise.
672618334Speter	(build_new_op): Likewise.
672750397Sobrien	(build_new_method_call): Likewise.
672818334Speter	* class.c (instantiate_type): Likewise.
672950397Sobrien	* cp-tree.h (unification_kind_t): New type.
673018334Speter	(fn_type_unification): Adjust prototype.
673150397Sobrien	(type_unificaiton): Likewise.
673250397Sobrien	* pt.c (UNIFY_ALLOW_NONE): New macro.
673350397Sobrien	(UNIFY_ALLOW_MORE_CV_QUAL): Likewise.
673450397Sobrien	(UNIFY_ALLOW_LESS_CV_QUAL): Likewise.
673550397Sobrien	(UNIFY_ALLOW_DERIVED): Likewise.
673652284Sobrien	(unify): Change prototype.
673750397Sobrien	(maybe_adjust_types_for_deduction): New function.
673818334Speter	(check_cv_quals_for_unify): Likewise.
673950397Sobrien	(determine_specialization): Adjust.
674050397Sobrien	(fn_type_unification): Likewise.
674118334Speter	(type_unification): Likewise.
674250397Sobrien	(type_unification_real): Likewise.  Use
674350397Sobrien	maybe_adjust_types_for_deduction.  Fix mishandling of
674418334Speter	back-unification of template functions passed as arguments.  Pass
674550397Sobrien	appropriate combination of UNIFY_ALLOW_* to unify.
674618334Speter	(unify): Remove unused NTPARMS parameter.  Use
674750397Sobrien	check_cv_quals_for_unify.  Remove bogus code that allowed
674818334Speter	too-generous unification in order to adhere more closely to standard.
674950397Sobrien	(get_bindings_real): Adjust.
675018334Speter	(get_class_bindings): Likewise.
675150397Sobrien
675218334Speter	* method.c (build_overload_identifier): Only use the innermost
675350397Sobrien	template arguments when mangling.
675418334Speter	* pt.c (tsubst_template_argument_vector): New function.
675552284Sobrien	(complete_template_args): Deal with the situation where the
675618334Speter	extra_args contain more than one level of arguments.
675750397Sobrien	(lookup_template_class): Deal with member template classes, which
675818334Speter	may have more than one level of arguments.
675950397Sobrien	(tsubst): Don't tsbust into the TREE_TYPE of an IDENTIFIER_NODE.
676018334Speter	Improve handling of member template classes.  Use
676150397Sobrien	DECL_PRIMARY_TEMPLATE instead of inline expansion.  Use
676218334Speter	tsubst_template_argument_vector where appropriate.
676352284Sobrien	(regenerate_decl_from_template): Break out from ...
676418334Speter	(instantiate_decl): Here.
676550397Sobrien
676652284Sobrien	* lex.c (yyprint): Remove TYPENAME_ELLIPSIS.
676750397Sobrien	* parse.h: Regenerated.
676850397Sobrien	* parse.c: Really regenerated.
676950397Sobrien
677050397Sobrien	* cp-tree.h (finish_unary_op_expr): New function.
677152284Sobrien	(finish_id_expr): Likewise.
677250397Sobrien	(begin_new_placement): Likewise.
677352284Sobrien	(finish_new_placement): Likewise.
677452284Sobrien	(finish_declarator): Likewise.
677550397Sobrien	(finish_translation_unit): Likewise.
677652284Sobrien	(finish_parmlist): Likewise.
677750397Sobrien	(begin_class_definition): Likewise.
677818334Speter	(finish_class_definition): Likewise.
677950397Sobrien	(finish_default_args): Likewise.
678018334Speter	(finish_inline_definitions): Likewise.
678150397Sobrien	* parse.y (GCC_ASM_KEYWORD): Remove.
678250397Sobrien	(TYPENAME_ELLIPSIS): Likewise.
678350397Sobrien	* parse.c: Regenerated.
678450397Sobrien	Use new functions in semantics.c in the actions for many rules.
678518334Speter	* gxx.gperf (GCC_ASM_KEYWORD): Just use ASM_KEYWORD.
678650397Sobrien	* hash.h: Regenerated.
678718334Speter	* semantics.c (finish_expr_stmt): Allow NULL expr.
678850397Sobrien	(finish_unary_op_expr): New function, containing
678952284Sobrien	code previously in parse.y.
679050397Sobrien	(finish_id_expr): Likewise.
679150397Sobrien	(begin_new_placement): Likewise.
679250397Sobrien	(finish_new_placement): Likewise.
679352284Sobrien	(finish_declarator): Likewise.
679450397Sobrien	(finish_translation_unit): Likewise.
679518334Speter	(finish_parmlist): Likewise.
679650397Sobrien	(begin_class_definition): Likewise.
679718334Speter	(finish_class_definition): Likewise.
679850397Sobrien	(finish_default_args): Likewise.
679950397Sobrien	(finish_inline_definitions): Likewise.
680018334Speter
680150397SobrienSun May 10 23:43:13 1998  Mark Mitchell  <mmitchell@usa.net>
680250397Sobrien
680350397Sobrien	* typeck.c (build_c_cast): Don't decay arrays and functions to
680450397Sobrien	pointer type when converting to a class type.
680550397Sobrien
680650397SobrienSun May 10 22:53:56 1998  Jason Merrill  <jason@yorick.cygnus.com>
680750397Sobrien
680818334Speter	* cp-tree.h (DECL_NAMESPACE_SCOPE_P): New macro.
680950397Sobrien	(DECL_CLASS_SCOPE_P): Likewise.
681018334Speter
681150397SobrienSun May 10 22:48:22 1998  H.J. Lu  (hjl@gnu.org)
681218334Speter
681350397Sobrien	* class.c (finish_struct_1): Use OVL_CURRENT on TREE_VEC_ELT.
681450397Sobrien	* decl2.c (constructor_name_full): Likewise.
681518334Speter
681650397SobrienSun May 10 22:48:12 1998  Mike Stump  <mrs@wrs.com>
681750397Sobrien
681818334Speter	* tree.c (mapcar): Add OVERLOAD support.
681950397Sobrien
682050397Sobrien	* init.c (resolve_offset_ref): We must use basetype_path before we
682118334Speter	destroy it with a call to convert_pointer_to.
682250397Sobrien
682318334SpeterSat May  9 14:44:37 1998  Jason Merrill  <jason@yorick.cygnus.com>
682450397Sobrien
682550397Sobrien	* class.c (currently_open_class): New fn.
682650397Sobrien	* decl.c (lookup_name_real): Use it.
682750397Sobrien	* search.c (lookup_field): Likewise.
682852284Sobrien
682950397SobrienFri May  8 23:32:42 1998  Martin von Loewis  <loewis@informatik.hu-berlin.de>
683050397Sobrien
683150397Sobrien	* cp-tree.def (OVERLOAD): New node.
683250397Sobrien	* cp-tree.h (BINDING_TYPE, SET_IDENTIFIER_GLOBAL_VALUE,
683318334Speter	SET_IDENTIFIER_NAMESPACE_VALUE): Define.
683450397Sobrien	(NAMESPACE_BINDING): Remove.
683518334Speter	(IDENTIFIER_GLOBAL_VALUE, IDENTIFIER_NAMESPACE_VALUE): Use
683650397Sobrien	namespace_binding.
683750397Sobrien	(OVL_FUNCTION, OVL_CHAIN, OVL_CURRENT, OVL_NEXT, OVL_USED):
683850397Sobrien	Define.
683918334Speter	(tree_overload): New struct.
684050397Sobrien	(IDENTIFIER_TYPE_VALUE): Use identifier_type_value.
684150397Sobrien	(REAL_IDENTIFIER_TYPE_VALUE): Define.
684218334Speter	(IDENTIFIER_HAS_TYPE_VALUE): Use IDENTIFIER_TYPE_VALUE.
684350397Sobrien	(lang_decl_flags): Remove in_namespace.
684418334Speter	(lang_decl): Remove chain.
684550397Sobrien	(DECL_CHAIN, DECL_NAMESPACE): Remove.
684618334Speter	(flag_honor_std): Declare extern.
684750397Sobrien	(identifier_type_value, pushdecl_namespace_level, push_using_decl,
684818334Speter	namespace_binding, set_namespace_binding,
684950397Sobrien	lookup_function_nonclass, cat_namespace_levels,
685052284Sobrien	set_decl_namespace, lookup_arg_dependent, binding_init, ovl_cons,
685150397Sobrien	scratch_ovl_cons, ovl_member, build_overload): Declare.
685250397Sobrien	(decl_list_length, get_namespace_id, current_namespace_id,
685350397Sobrien	overloaded_globals_p): Remove.
685450397Sobrien	(lookup_using_namespace, qualified_lookup_using_namespace): Change
685550397Sobrien	return type.
685650397Sobrien	(push_scratch_obstack): New macro.
685750397Sobrien	* call.c (add_function_candidate): Special-case type of OVERLOAD node.
685850397Sobrien	(build_user_conversions_1): Iterate using OVL_NEXT for ctors,
685950397Sobrien	convs, fns.
686050397Sobrien	(build_new_function_call): Iterate using OVL_CHAIN.
686150397Sobrien	Print DECL_NAME in when reporting ambiguities.
686250397Sobrien	(build_object_call): Iterate using OVL_NEXT for fns, convs.
686350397Sobrien	(build_new_op): Call lookup_function_nonclass.
686450397Sobrien	Iterate using OVL_NEXT.
686550397Sobrien	(build_op_delete_call): Change detection of members.
686650397Sobrien	Do not wrap TREE_LIST around fields and single global functions.
686750397Sobrien	(build_over_call): Don't push a class level if the context is a
686850397Sobrien	namespace.
686950397Sobrien	(build_new_method_call): Iterate using OVL_NEXT.
687050397Sobrien	* class.c (add_method): Chain overloaded members using
687150397Sobrien	build_overload.  Remove copying of method.
687250397Sobrien	(grow_method): When iterating through the obstack, expect OVERLOAD
687350397Sobrien	nodes.  Chain overload members.
687450397Sobrien	(finish_struct_methods): Chain overload members.  Unpack OVERLOAD
687550397Sobrien	nodes in call to get_baselinks.
687650397Sobrien	(duplicate_tag_error): Expect OVERLOAD nodes when unchaining.
687750397Sobrien	(finish_struct_1): Iterate over ctor using OVL_NEXT.  Handle
687850397Sobrien	fdecls that are OVERLOAD nodes.
687950397Sobrien	(validate_lhs): New function.
688050397Sobrien	(instantiate_type): Do not copy OVERLOAD nodes.  Remove dead
688118334Speter	code.  Use DECL_NAME in error messages.  Split code between global
688250397Sobrien	and member function processing.
688350397Sobrien	* decl.c (global_type_node): New static variable.
688450397Sobrien	(in_std): New global.
688550397Sobrien	(struct binding_level): New field usings.
688650397Sobrien	(resume_binding_level): Assert that we are not in a class.
688750397Sobrien	(toplevel_bindings_p): Just check for namespace_p or
688850397Sobrien	pseudo_global.
688950397Sobrien	(resume_level): Remove.
689050397Sobrien	(find_binding): New function.
689150397Sobrien	(binding_for_name): Call it.
689250397Sobrien	(namespace_binding, set_namespace_binding): New functions.
689350397Sobrien	(push_namespace): Associate binding level with new namespace,
689450397Sobrien	resume_binding_level for existing namespace.  Remove old code.
689552284Sobrien	Fake std by counting.
689650397Sobrien	(store_bindings): Use REAL_IDENTIFIER_TYPE_VALUE.
689750397Sobrien	(maybe_push_to_top_level): Save current namespace.
689850397Sobrien	(pop_from_top_level): Restore saved namespace.
689952284Sobrien	(pop_namespace): Call suspend_binding_level.  Remove old code.
690050397Sobrien	(cat_namespace_levels): New function.
690150397Sobrien	(set_identifier_type_value_with_scope): For namespace bindings,
690250397Sobrien	set BINDING_TYPE, and use global_type_node.
690350397Sobrien	Use REAL_IDENTIFIER_TYPE_VALUE otherwise.
690450397Sobrien	(identifier_type_value): New function.
690550397Sobrien	(pushtag): If no context, use current_namespace.
690650397Sobrien	(duplicate_decls): Don't process DECL_CHAIN.
690750397Sobrien	(pushdecl): Set DECL_CONTEXT to current_namespace, if it is not
690850397Sobrien	already set.  Never reset it to NULL_TREE.  Lookup global variables
690950397Sobrien	in their namespace.  Push overloaded templates if they are on
691050397Sobrien	namespace level.
691150397Sobrien	(pushdecl_namespace_level): New function.
691250397Sobrien	(pushdecl_top_level): Implement using pushdecl_namespace_level.
691350397Sobrien	(pushdecl_using_decl): New function.
691450397Sobrien	(overloaded_globals_p): Remove.
691550397Sobrien	(push_overloaded_decl): Create OVERLOAD nodes, and iterate through
691650397Sobrien	them.  Use namespace_binding and set_namespace_value.
691750397Sobrien	(redeclaration_error_message): Complain if the declarations come
691850397Sobrien	from different namespaces.
691950397Sobrien	(lookup_tag): On namespace level, look in the BINDING_TYPE.
692050397Sobrien	(lookup_namespace_name): Pass tree_bindings from stack.  Remove
692150397Sobrien	old code.
692250397Sobrien	(select_decl): New function.
692350397Sobrien	(lookup_name_real): Call it for qualified and unqualified lookup.
692450397Sobrien	Pass tree_bindings from the stack.
692550397Sobrien	If prefer_type is 1, also accept namespaces.
692650397Sobrien	(lookup_function_nonclass): New function.
692750397Sobrien	(init_decl_processing): Set the binding level of the global
692850397Sobrien	namespace to global_binding_level.
692950397Sobrien	Build a proper type list for __builtin_apply.
693018334Speter	Initialize std_node to "fake std" if flag_honor_std is set.
693150397Sobrien	Initialize global_type_node.
693218334Speter	Allocated bad_alloc in namespace std if flag_honor_std.
693350397Sobrien	(define_function): Set the DECL_CONTEXT to the current_namespace.
693450397Sobrien	(start_decl): A namespace is not considered as a context here.  If
693518334Speter	the DECL_CONTEXT is a namespace, push the decl.
693650397Sobrien	(cp_finish_decl): Check for namespaces used as initializers.
693718334Speter	(grokfndecl): Add namespace parameter.  Remove processing of
693850397Sobrien	DECL_CHAIN.
693950397Sobrien	(grokvardecl): Add namespace parameter.
694018334Speter	(grokdeclarator): Process SCOPEs that are namespaces.  For
694150397Sobrien	mangling, temporarily set the DECL_CONTEXT on anonymous structs.
694218334Speter	(start_function): Check for contexts that are namespaces.
694350397Sobrien	Set context for declarations that have not been pushed.
694450397Sobrien	(store_parm_decls): Check for ::main only.
694518334Speter	(finish_function): Likewise.
694650397Sobrien	(start_method): Check for contexts that are namespaces.
694718334Speter	(start_method): Remove DECL_CHAIN processing.
694850397Sobrien	* decl2.c (flag_honor_std): Declare.
694918334Speter	(lang_decode_option): Set it if -fhonor-std or -fnew-abi is given.
695050397Sobrien	(decl_namespace_list): New static global.
695150397Sobrien	(grok_x_components): Ignore namespaces as type contexts.
695218334Speter	(check_classfn): Expect OVERLOAD nodes.
695350397Sobrien	(grokfield): Remove DECL_CHAIN processing.
695418334Speter	(finish_file): Call cat_namespace_levels.
695550397Sobrien	(merge_functions): New function.
695650397Sobrien	(ambiguous_decl): Rewrite.
695750397Sobrien	(lookup_using_namespace): Produce tree_bindings.
695818334Speter	(qualified_lookup_using_namespace): Likewise.
695950397Sobrien	(set_decl_namespace, decl_namespace, current_decl_namespace,
696018334Speter	push_decl_namespace, pop_decl_namespace): New functions.
696152284Sobrien	(arg_lookup): New struct.
696250397Sobrien	(add_function, arg_assoc_namespace, arg_assoc_class,
696350397Sobrien	arg_assoc_type, arg_assoc_args, arg_assoc, lookup_arg_dependent):
696450397Sobrien	New functions.
696550397Sobrien	(get_namespace_id, current_namespace_id): Remove.
696650397Sobrien	(do_toplevel_using_decl): Rewrite.
696750397Sobrien	(do_class_using_decl): Complain about namespace qualifiers.
696850397Sobrien	(do_using_directive): Sorry if not on namespace level.  Complain
696950397Sobrien	about unknown namespaces.
697050397Sobrien	* error.c (dump_aggr_type): Check for namespace contexts.
697150397Sobrien	* except.c (init_exception_processing): Push terminate into std.
697250397Sobrien	* friend.c (is_friend): A namespace is not a context, here.
697350397Sobrien	* init.c (expand_member_init): Remove DECL_CHAIN processing.
697450397Sobrien	(build_offset_ref): Process OVERLOAD nodes.
697550397Sobrien	* lang-specs.h (__HONOR_STD): Define if -fnew-abi or -fhonor-std.
697650397Sobrien	* lex.c (identifier_type): Loop using OVL_CHAIN.
697750397Sobrien	(see_typename): Set looking_for_typename to 2.
697850397Sobrien	(real_yylex): Likewise.
697950397Sobrien	(do_identifier): Expect OVERLOAD nodes instead of TREE_LISTs.
698050397Sobrien	(do_scoped_id): Expect OVERLOAD nodes.
698150397Sobrien	Change calling convention for qualified_lookup_using_namespace.
698250397Sobrien	(build_lang_decl): Don't set in_namespace anymore.
698350397Sobrien	* method.c (typevec_size): New global.
698450397Sobrien	(build_overload_nested_name): Return if global_namespace.
698550397Sobrien	Otherwise, always expect a declaration context.
698650397Sobrien	(build_qualified_name): Likewise.
698750397Sobrien	Make sure we don't write beyond typevec_size.
698850397Sobrien	(build_decl_overload_real): Likewise.
698950397Sobrien	Allocate one extra slot for the namespace.
699052284Sobrien	(hack_identifier): Mark code dead.
699150397Sobrien	Process OVERLOAD and NAMESPACE_DECL nodes.
699250397Sobrien	* parse.y (program): Pop namespaces until in global namespace.
699352284Sobrien	(extdef): In a using-declaration, don't discard the identifier if
699450397Sobrien	there is no declaration.
699550397Sobrien	(left_curly): Ignore type contexts which are namespaces.
699650397Sobrien	(typename_sub2): Use IDENTIFIER_TYPE_VALUE to retrieve the type
699750397Sobrien	used as scope.
699850397Sobrien	* pt.c (template_class_depth): Expect types to be namespaces.
699950397Sobrien	(determine_specialization): Simplify by expecting OVERLOAD nodes.
700050397Sobrien	(push_template_decl): Push into namespace level.
700150397Sobrien	Reset ctx if it is a namespace.
700250397Sobrien	Set DECL_CONTEXT to current_namespace if not set already.
700350397Sobrien	Ignore real contexts that are namespaces.
700450397Sobrien	(mangle_class_name_for_template): Skip global_namespace.
700550397Sobrien	Mangle other namespaces as declarations.
700650397Sobrien	(lookup_template_function): Set type of OVERLOAD nodes to unknown.
700750397Sobrien	(lookup_template_class): Push into namespace of context.
700850397Sobrien	If the context is a namespace, set it to global_namespace.
700950397Sobrien	Use id_context for mangling.
701050397Sobrien	(for_each_template_parm): Handle OVERLOAD and NAMESPACE_DECL nodes.
701152284Sobrien	(tsubst_friend_function): Ignore namespace contexts.
701250397Sobrien	Push into namespace level.
701350397Sobrien	(tsubst): Handle NAMESPACE_DECL nodes.
701450397Sobrien	Remove DECL_CHAIN processing.
701550397Sobrien	(type_unification_real): Recognize OVERLOAD instead of TREE_LIST nodes.
701650397Sobrien	* ptree.c (print_lang_identifier): Print bindings.
701750397Sobrien	(lang_print_xnode): Print OVERLOAD nodes.
701850397Sobrien	* rtti.c (init_rtti_processing): Push type_info into std.
701950397Sobrien	* search.c (lookup_fnfields_here): Expect OVERLOAD nodes.
702050397Sobrien	(lookup_fnfields_1, get_virtuals_named_this, get_matching_virtual,
702150397Sobrien	dfs_debug_mark, dfs_pushdecls, dfs_compress_decls, add_conversions,
702250397Sobrien	lookup_fnfields_here): Likewise.
702350397Sobrien	Process all nodes, instead of going through TREE_CHAIN.
702450397Sobrien	* sig.c (build_signature_pointer_or_reference_type): Set context
702550397Sobrien	to global_namespace.
702650397Sobrien	(build_signature_table_constructor): Expect OVERLOAD nodes.
702750397Sobrien	* spew.c (yylex): Save old setting of looking_for_typename.
702850397Sobrien	* tree.c (decl_list_length): Remove.
702950397Sobrien	(binding_init): New function.
703050397Sobrien	(count_functions): Rewrite.
703150397Sobrien	(is_overloaded_fn): Expect OVERLOAD nodes.
703250397Sobrien	(really_overloaded_fn, get_first_fn, lvalue_type): Likewise.
703350397Sobrien	(ovl_cons, scratch_ovl_cons, build_overload, build_overload_after,
703450397Sobrien	ovl_member): New functions.
703550397Sobrien	* typeck.c (require_complete_type): Expect OVERLOAD nodes.
703650397Sobrien	(type_unknown_p): Likewise.
703750397Sobrien	(require_instantiated_type): Likewise.
703852284Sobrien	(build_component_ref): Declare code dead.
703950397Sobrien	(build_x_function_call): Create and expect OVERLOAD nodes.
704050397Sobrien	(build_function_call_real): Check for ::main only.
704150397Sobrien	(build_unary_op): Likewise.  Expect OVERLOAD nodes.
704250397Sobrien	(convert_for_assignment): Check for TREE_LIST before accessing
704350397Sobrien	TREE_VALUE.
704450397Sobrien	* decl.c (duplicate_decls): Check for namespace bindings instead
704550397Sobrien	of global bindings.
704652284Sobrien	(pushdecl, push_overloaded_decl, lookup_tag, lookup_name_real,
704750397Sobrien	lookup_name_current_level, start_decl, xref_tag,
704850397Sobrien	finish_enum): Likewise.
704950397Sobrien	* init.c (build_offset_ref): Likewise.
705050397Sobrien	* search.c (lookup_field): Likewise.
705150397Sobrien	(lookup_fnfields): Likewise.
705250397Sobrien	(dfs_debug_mark): Likewise.
705350397Sobrien	* decl.c (poplevel): Use SET_IDENTIFIER_TYPE_VALUE.
705450397Sobrien	(poplevel_class, pop_from_top_level): Likewise.
705550397Sobrien	* decl2.c (finish_method): Likewise.
705650397Sobrien	* class.c (build_vtable): Use SET_IDENTIFIER_GLOBAL_VALUE.
705750397Sobrien	* decl.c (record_builtin_type): Likewise.
705850397Sobrien	(init_decl_processing, grokfndecl): Likewise.
705950397Sobrien	* lex.c (get_time_identifier, do_identifier, do_scoped_id): Likewise.
706050397Sobrien	(make_lang_type): Likewise.
706150397Sobrien	* parse.y (make_thunk): Likewise.
706250397Sobrien	* pt.c (tsubst): Likewise.
706350397Sobrien	* tree.c (debug_binfo): Likewise.
706450397Sobrien	* exception.cc, new.cc, new1.cc, new2.cc, tinfo.cc, tinfo.h,
706550397Sobrien	tinfo2.cc, inc/new.h: Add std qualifications.
706650397Sobrien	* inc/new: Wrap with namespace std if __HONOR_STD.
706750397Sobrien	* inc/typeinfo: Likewise.
706850397Sobrien
706950397SobrienFri May  8 00:43:50 1998  Jason Merrill  <jason@yorick.cygnus.com>
707050397Sobrien
707150397Sobrien	* call.c (build_user_type_conversion_1): Handle second_conv
707252284Sobrien	properly for templates.
707350397Sobrien
707450397SobrienThu May  7 17:09:25 1998  Andrew MacLeod  <amacleod@cygnus.com>
707550397Sobrien
707650397Sobrien	* method.c (build_decl_overload_real): Set TREE_USED flag to
707750397Sobrien	zero for build_type_variants nodes as well.
707850397Sobrien
707950397SobrienWed May  6 19:27:09 1998  Jason Merrill  <jason@yorick.cygnus.com>
708050397Sobrien
708150397Sobrien	* pt.c (tsubst): Don't tsubst the type of an IDENTIFIER_NODE.
708250397Sobrien
708350397SobrienWed May  6 16:49:48 1998  Jim Wilson  <wilson@cygnus.com>
708450397Sobrien
708550397Sobrien	* Makefile.in (call.o, class.o, decl.o, decl2.o, errfn.o, error.o,
708650397Sobrien	except.o, expr.o, friend.o, init.o, lex.o, method.o, pt.o, repo.o,
708750397Sobrien	rtti.o, search.o, semantics.o, sig.o, tree.o, typeck.o, typeck2.o,
708850397Sobrien	xref.o): Add toplev.h dependencies.
708950397Sobrien
709050397SobrienWed May  6 16:44:58 1998  Jeffrey A Law  (law@cygnus.com)
709150397Sobrien
709250397Sobrien	* errfn.c (cp_error, cp_warning): Remove declarations for
709350397Sobrien	error and warning respectively.
709450397Sobrien
709550397SobrienWed May  6 14:28:18 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
709650397Sobrien
709750397Sobrien	* error.c: Convert to using ctype macros defined in system.h.
709850397Sobrien	* method.c: Likewise.
709950397Sobrien	* xref.c: Likewise.
710050397Sobrien	* lex.c: Likewise.  Also remove redundant system header stuff.
710150397Sobrien
710250397SobrienWed May  6 06:36:41 1998  Robert Lipe  <robertl@dgii.com>
710350397Sobrien
710450397Sobrien	* call.c, class.c, decl.c, decl2.c, errfn.c, error.c, except.c,
710550397Sobrien	expr.c, friend.c, init.c, lex.c, method.c, pt.c, repo.c, rtti.c,
710650397Sobrien	search.c, semantics.c, sig.c, tree.c, typeck.c, typeck2.c,
710750397Sobrien	xref.c: Add include of toplev.h.
710852284Sobrien
710950397SobrienWed May  6 02:33:39 1998  Jason Merrill  <jason@yorick.cygnus.com>
711050397Sobrien
711150397Sobrien	* tree.c (perm_manip): Also regenerate the RTL of an extern.
711250397Sobrien	(copy_to_permanent): Use end_temporary_allocation.
711350397Sobrien
711450397SobrienTue May  5 23:54:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
711550397Sobrien
711650397Sobrien	* init.c (expand_vec_init): The initialization of each array
711750397Sobrien	element is a full-expression.
711850397Sobrien
711950397SobrienTue May  5 18:24:13 1998  Andrew MacLeod  <amacleod@cygnus.com>
712050397Sobrien
712150397Sobrien	* method.c (build_mangled_name): Add a call to build_type_variant
712250397Sobrien	to get the right type.
712350397Sobrien
712450397SobrienTue May  5 01:25:03 1998  Jason Merrill  <jason@yorick.cygnus.com>
712550397Sobrien
712650397Sobrien	* Makefile.in: Add .SUFFIXES.
712750397Sobrien
712850397Sobrien	* cp-tree.def: Remove NAMESPACE_DECL.
712950397Sobrien
713050397SobrienSun May  3 01:32:14 1998  Jason Merrill  <jason@yorick.cygnus.com>
713150397Sobrien
713250397Sobrien	* call.c (build_over_call): Do evaluate arg even if it has empty
713350397Sobrien	class type.
713450397Sobrien	* decl.c (start_function): Don't push a member function.
713552284Sobrien
713650397SobrienThu Apr 30 18:59:23 1998  Jim Wilson  <wilson@cygnus.com>
713750397Sobrien
713850397Sobrien	* Makefile.in (g++FAQ.info): Put -o option before input file.
713950397Sobrien
714050397SobrienThu Apr 30 13:05:33 1998  Andrew MacLeod  <amacleod@cygnus.com>
714150397Sobrien
714250397Sobrien	* gxxint.texi: Add info for squangling codes K and B.
714350397Sobrien
714450397SobrienTue Apr 28 13:22:01 1998  Mark Mitchell  <mmitchell@usa.net>
714550397Sobrien
714650397Sobrien	* semantics.c (begin_stmt_expr): Avoid duplicating the effect of
714750397Sobrien	the expression in templates.
714850397Sobrien	(finish_stmt_expr): Likewise.
714950397Sobrien
715050397Sobrien1998-04-28  Brendan Kehoe  <brendan@cygnus.com>
715150397Sobrien
715250397Sobrien	* decl2.c (ambiguous_decl): Fix NAME parm to be a tree, not int.
715350397Sobrien
715450397SobrienMon Apr 27 13:58:10 1998  Mark Mitchell  <mmitchell@usa.net>
715550397Sobrien
715650397Sobrien	* decl.c (maybe_push_to_top_level): Always clear
715750397Sobrien	current_template_parms and processing_template_decl.
715850397Sobrien	(pushtag): Remove check of current_class_type and some comments,
715950397Sobrien	since maybe_push_to_top_level no longer creates confusion.
716050397Sobrien
716150397SobrienSun Apr 26 12:10:18 1998  Mark Mitchell  <mmitchell@usa.net>
716250397Sobrien
716350397Sobrien	* cp-tree.h (CLASSTYPE_IS_TEMPLATE): New macro.
716450397Sobrien	(DECL_CLASS_TEMPLATE_P): Likewise.
716550397Sobrien	(DECL_PRIMARY_TEMPLATE): Likewise.
716650397Sobrien	(PRIMARY_TEMPLATE_P): Use it.
716750397Sobrien	(push_template_decl_real): New function.
716850397Sobrien	(redeclare_class_template): Take new template parameters as
716950397Sobrien	input.
717050397Sobrien	(is_specialization_of): New function.
717150397Sobrien	(comp_template_args): Declare.
717250397Sobrien	* decl.c (pushtag): Handle friend template classes.
717350397Sobrien	(xref_tag): Likewise.  Use new calling convention for
717450397Sobrien	redeclare_class_template.
717550397Sobrien	* decl2.c (grok_x_components): Handle friend templates.
717650397Sobrien	* friend.c (is_friend): Use is_specialization_of where
717752284Sobrien	appropriate.  Deal with friend class templates.
717850397Sobrien	(make_friend_class): Let a class template be friends with itself.
717950397Sobrien	* pt.c (comp_template_args): Remove declaration.
718050397Sobrien	(tsubst_friend_class): New function.
718150397Sobrien	(push_template_decl_real): New function.
718250397Sobrien	(push_template_decl): Use it.
718350397Sobrien	(redeclare_class_template): Adjust for new calling convention.
718450397Sobrien	(comp_template_args): Give it external linkage.
718550397Sobrien	(instantiate_class_type): Use tsubst_friend_class to deal
718650397Sobrien	with friend templates.
718750397Sobrien	* typeck.c (comptypes): Use comp_template_args, rather than
718850397Sobrien	expanding it inline.
718950397Sobrien	* parse.y (component_decl): Handle a nested template type
719050397Sobrien	like other component type declarations.
719150397Sobrien
719250397Sobrien	* pt.c (check_explicit_specialization): Handle overloaded
719350397Sobrien	constructors correctly.
719452284Sobrien
719550397Sobrien	* pt.c (mabybe_get_template_decl_from_type_decl): New function.
719650397Sobrien	(lookup_template_class): Use it.
719750397Sobrien
719818334SpeterThu Apr 23 21:19:06 1998  Jason Merrill  <jason@yorick.cygnus.com>
719950397Sobrien
720018334Speter	* cp-tree.def: Add WRAPPER.  USER_CONV now only has two ops.
720152284Sobrien	* cp-tree.h: Add WRAPPER support.
720250397Sobrien	* call.c (add_candidate): Split out from add_*_candidate fns.
720318334Speter	(build_over_call): Take the candidate instead of function and args.
720452284Sobrien	Enforce access control here.  Emit overload warnings here.
720518334Speter	(add_warning): New fn.
720650397Sobrien	(joust): Add WARN parm.  If not set, call add_warning instead of
720750397Sobrien	printing a warning.  Re-enable some warnings.
720818334Speter	(tourney): Pass it.
720950397Sobrien	(convert_like): Adjust.
721018334Speter	(build_new_op): Adjust.
721150397Sobrien	(build_new_function_call): Adjust.
721218334Speter	(build_user_type_conversion_1): Adjust.
721350397Sobrien	(USER_CONV_FN): Adjust.
721418334Speter	* tree.c (build_expr_wrapper, build_expr_ptr_wrapper,
721550397Sobrien	build_int_wrapper): New fns.
721650397Sobrien
721752284SobrienThu Apr 23 18:27:53 1998  Mark P. Mitchell  <mmitchell@usa.net>
721850397Sobrien
721918334Speter	* pt.c (unify): Fix typo in previous change.
722050397Sobrien
722118334SpeterThu Apr 23 09:32:58 1998  Jason Merrill  <jason@yorick.cygnus.com>
722250397Sobrien
722350397Sobrien	* error.c (dump_type_real): Declare canonical_name.
722418334Speter
722550397Sobrien	* typeck.c (comp_target_types): Fix PMFs.
722618334Speter
722750397SobrienWed Apr 22 13:24:48 1998  Mark Mitchell  <mmitchell@usa.net>
722850397Sobrien
722950397Sobrien	* class.c (finish_struct): Set TREE_PRIVATE and TREE_PROTECTED for
723050397Sobrien	the DECL_RESULTs of a member TEMPLATE_DECL, not just the
723118334Speter	TEMPLATE_DECL.
723250397Sobrien
723318334Speter	* pt.c (tsubst): Decrease the template-level of
723452284Sobrien	TEMPLATE_TEMPLATE_PARMS.  Likewise for the DECL_INITIAL of a
723552284Sobrien	TEMPLATE_PARM_INDEX.
723652284Sobrien	(template_decl_level): New function.
723750397Sobrien	(unify): Make sure to record unifications for template
723818334Speter	parameters, even when the parameters exactly match the arguments.
723950397Sobrien	Combine duplicated code for TEMPLATE_TEMPLATE_PARMs and
724018334Speter	TEMPLATE_TYPE_PARMS.  Don't try to unify template parameters that
724150397Sobrien	aren't from the level we're currently working on.
724250397Sobrien
724318334SpeterTue Apr 21 22:00:04 1998  Mark Mitchell  <mmitchell@usa.net>
724450397Sobrien
724518334Speter	* errfn.c (cp_thing): Use xrealloc, not xmalloc, to copy memory.
724650397Sobrien
724750397Sobrien	* decl2.c (check_member_template): Set DECL_IGNORED for member
724818334Speter	class templates, too.
724952284Sobrien
725018334Speter	* decl2.c (grokfield): Remangle the name of a member TYPE_DECL.
725152284Sobrien
725250397SobrienTue Apr 21 18:59:11 1998  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
725318334Speter
725450397Sobrien	* decl.c (duplicate_decls): Only check DECL_FRIEND_P if function.
725518334Speter
725650397SobrienTue Apr 21 14:22:00 1998  Jeffrey A Law  (law@cygnus.com)
725718334Speter
725850397Sobrien	* cp-tree.h (intTI_type_node, unsigned_intTI_type_node): Declare.
725918334Speter	* decl.c (intTI_type_node, unsigned_intTI_type_node): Define.
726050397Sobrien	(init_decl_processing): Handle TI types.
726118334Speter	* typeck.c (unsigned_type, signed_type): Handle TI types.
726252284Sobrien
726350397SobrienSat Apr 18 15:25:21 1998  Jim Wilson  <wilson@cygnus.com>
726450397Sobrien
726518334Speter	* g++spec.c (lang_specific_driver): New argument in_added_libraries.
726650397Sobrien	New local added_libraries.  Increment count when add library to
726718334Speter	arglist.
726850397Sobrien
726918334SpeterFri Apr 17 21:25:00 1998  Mark Mitchell  <mmitchell@usa.net>
727052284Sobrien
727118334Speter	* cp-tree.h (type_as_string_real): New function.
727250397Sobrien	* pt.c (mangle_class_name_for_template): Use it.
727318334Speter	* error.c (dump_aggr_type): Change prototype.
727450397Sobrien	(dump_type_prefix): Likewise.
727518334Speter	(dump_type_suffix): Likewise.
727650397Sobrien	(dump_type_real): Convert from dump_type.  If desired, the
727750397Sobrien	"canonica" name of a typedef, i.e., the name of the underlying
727850397Sobrien	type, can be printed.
727918334Speter	(dump_type): Call dump_type_real.
728050397Sobrien
728118334SpeterFri Apr 17 14:30:45 1998  Jason Merrill  <jason@yorick.cygnus.com>
728250397Sobrien
728318334Speter	* decl2.c (lang_decode_option): -fnew-abi implies -fvtable-thunks.
728450397Sobrien
728518334Speter	* typeck.c (comp_target_types): Tweak pedantic case.
728650397Sobrien	(comp_target_parms): Tweak pedantic case.  Clean up somewhat.
728750397Sobrien	Return -1 or 1 instead of 1 or 2.
728850397Sobrien	(compparms): Remove STRICT handling.
728950397Sobrien	(convert_for_assignment): Fix handling of pmfs.
729018334Speter
729150397SobrienFri Apr 17 14:04:16 1998  Mark Mitchell  <mmitchell@usa.net>
729218334Speter
729350397Sobrien	* typeck.c (comp_target_types): Handle references like pointers.
729450397Sobrien	(comp_target_parms): Note that return code from comp_target_types
729550397Sobrien	can be negative to indicate failure.
729650397Sobrien
729750397SobrienFri Apr 17 09:10:52 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
729850397Sobrien
729952284Sobrien	* Make-lang.in (c++.all.build): Don't depend on $(DEMANGLER_PROG),
730050397Sobrien	which requires a working target compiler to build.
730150397Sobrien
730250397SobrienFri Apr 17 08:57:35 1998  Jeffrey A Law  (law@cygnus.com)
730350397Sobrien
730450397Sobrien	* tree.c (avoid_overlap): Add prototype.
730550397Sobrien
730650397Sobrien	* spew.c (num_tokens): Add prototype.
730750397Sobrien	(nth_noken, add_token, consume_token, debug_yychar): Likewise.
730850397Sobrien
730950397Sobrien	* search.c (dfs_check_overlap): Add prototype.
731050397Sobrien	(dfs_no_overlap_yet): Likewise.
731150397Sobrien
731250397Sobrien	* pt.c (original_template): Add prototype.
731350397Sobrien	(inline_needs_template_parms): Likewise.
731450397Sobrien	(push_inline_template_parms_recursive): Likewise.
731550397Sobrien	(retrieve_specialization, register_specialization): Likewise.
731650397Sobrien	(print_candidates, reduce_template_parm_level): Likewise.
731750397Sobrien	(build_template_decl, mark_template_parm): Likewise.
731850397Sobrien	(tsubst_friend_function, get_bindings_real): Likewise.
731952284Sobrien
732050397Sobrien	* method.c (start_squangling): Add prototype.
732118334Speter	(end_squangling, check_ktype, issue_ktype): Likewise.
732250397Sobrien	(build_overloaded_scope_ref, check_btype): Likewise.
732350397Sobrien	(build_mangled_template_parm_index): Likewise.
732418334Speter
732550397Sobrien	* lex.c (init_cpp_parse): Add prototype.
732650397Sobrien	(handle_cp_pragma, handle_sysv_pragma): Likewise.
732718334Speter	(reduce_cmp, token_cmp): Likewise.
732850397Sobrien
732918334Speter	* except.c (call_eh_info): Add prototype.
733050397Sobrien	(push_eh_info, get_eh_info, get_eh_value, get_eh_type): Likewise.
733150397Sobrien	(get_eh_caught, get_eh_handlers, do_pop_exception): Likewise.
733250397Sobrien
733350397Sobrien	* decl2.c (is_namespace_ancestor): Add prototype.
733450397Sobrien	(namespace_ancestor, add_using_namespace): Likewise.
733550397Sobrien	(ambiguous_decl): Likewise.
733650397Sobrien
733752284Sobrien	* decl.c (indent): Add prototype.
733850397Sobrien
733950397Sobrien	* call.c (add_template_candidate_real): Add prototype.
734050397Sobrien
734150397SobrienFri Apr 17 01:57:12 1998  Jason Merrill  <jason@yorick.cygnus.com>
734250397Sobrien
734350397Sobrien	* decl2.c (build_expr_from_tree): Just return a PMF.
734452284Sobrien
734550397SobrienFri Apr 17 00:45:12 1998  Mark Mitchell  <mmitchell@usa.net>
734618334Speter
734750397Sobrien	* typeck2.c (process_init_constructor): Don't strip cv-qualifiers
734818334Speter	when doing initializations.
734950397Sobrien
735018334Speter	* pt.c (unify): Use comptypes to compare type args.
735150397Sobrien
735218334SpeterFri Apr 17 00:24:22 1998  Jason Merrill  <jason@yorick.cygnus.com>
735350397Sobrien
735418334Speter	* decl.c (duplicate_decls): Fix check for when it's safe to free
735550397Sobrien	the new decl.
735618334Speter
735750397Sobrien	* pt.c (mangle_class_name_for_template): Don't pass a typedef type
735818334Speter	to type_as_string.
735950397Sobrien
736050397SobrienThu Apr 16 17:47:30 1998  Jeffrey A Law  (law@cygnus.com)
736150397Sobrien
736218334Speter	* pt.c (build_template_parm_index): Add prototype.
736352284Sobrien
736452284Sobrien	* search.c (my_tree_cons): Don't clear words outside the
736552284Sobrien	newly allocated node.
736652284Sobrien
736752284SobrienWed Apr 15 15:34:44 1998  Dave Brolley  <brolley@cygnus.com>
736852284Sobrien
736952284Sobrien	* lex.c (init_parse): Now returns char* containing the filename.
737052284Sobrien
737152284SobrienWed Apr 15 13:20:06 1998  John Carr  <jfc@mit.edu>
737218334Speter			  Jeff Law   <law@cygnus.com>
737350397Sobrien
737418334Speter	* errfn.c: Rework to avoid problems when HOST_WIDE_INT is longer
737550397Sobrien	than a pointer.
737618334Speter
737750397SobrienSun Apr 12 22:31:19 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
737850397Sobrien
737918334Speter	* cvt.c (cp_convert_to_pointer): Use TYPE_PRECISION.
738050397Sobrien
738118334SpeterFri Apr 10 12:16:49 1998  Benjamin Kosnik  <bkoz@loony.cygnus.com>
738250397Sobrien
738318334Speter	* decl.c (duplicate_decls): Don't warn for redundant decls if
738450397Sobrien	friend: let add_friend take care of it.
738518334Speter
738650397SobrienThu Apr  9 02:40:48 1998  Jason Merrill  <jason@yorick.cygnus.com>
738718334Speter
738850397Sobrien	* sig.c (build_signature_pointer_constructor): Don't set
738950397Sobrien	TREE_HAS_CONSTRUCTOR for a signature pointer.
739050397Sobrien	* cvt.c (ocp_convert): Don't force a temporary for internal structs.
739150397Sobrien	* init.c (resolve_offset_ref): Warn about implicit & on pmfs
739218334Speter	here, too.
739350397Sobrien	* typeck.c (build_unary_op): Only allow taking the address of a
739418334Speter	real constructor.
739550397Sobrien	* typeck2.c (digest_init): Simplify.
739650397Sobrien	(store_init_value): Don't pedwarn about using { } for pmfs.
739750397Sobrien
739818334SpeterThu Apr  9 22:16:57 1998  Per Bothner  <bothner@cygnus.com>
739950397Sobrien
740018334Speter	* cp-tree.h (start_decl):  Update prototype.
740150397Sobrien	* decl.c (start_decl):  Like the C version, new parameters
740250397Sobrien	for the attributes.  Call cplus_decl_attributes here,
740350397Sobrien	(pushdecl):  Like C version, do build_type_copy if TYPE_DECL,
740450397Sobrien	(grokdeclarator):  Pass NULL for new start_decl arguments.
740550397Sobrien	* pt.c (tsubst_expr):  Likewise.
740650397Sobrien	* parse.y:  Merge cplus_decl_attribute calls into start_decl calls.
740750397Sobrien	* typeck.c (common_type): Check TYPE_MAIN_VARIANT.
740850397Sobrien	* lex.c (build_lang_decl): Add lang_name_java.
740950397Sobrien	* class.c (push_lang_context): Add lang_name_java.
741018334Speter	* method.c (build_mangled_name): Check for is_java_type.
741150397Sobrien
741218334SpeterThu Apr  9 22:16:57 1998  Benjamin Kosnik  <bkoz@loony.cygnus.com>
741350397Sobrien
741418334Speter	* decl.c (grokdeclarator): Check TYPE_MAIN_VARIANT.
741550397Sobrien	* call.c (build_scoped_method_call): Check for TREE_CODE for
741650397Sobrien	VOID_TYPE instead of type ==  void_type_node.
741750397Sobrien	(build_method_call): Likewise.
741850397Sobrien	* decl.c (lookup_name_real): Likewise.
741950397Sobrien	(grokdeclarator): Likewise.
742018334Speter	(start_decl): Likewise.
742150397Sobrien	(grokparms): Likewise.
742218334Speter	(start_function): Likewise.
742350397Sobrien	(finish_function): Likewise.
742450397Sobrien	(start_method): Likewise.
742550397Sobrien
742618334SpeterThu Apr  9 00:18:44 1998  Dave Brolley  (brolley@cygnus.com)
742750397Sobrien
742818334Speter	* lex.c (finput): New variable.
742950397Sobrien	(init_cpp_parse):  Renamed from init_parse.
743050397Sobrien	(init_parse): Handle !USE_CPPLIB.  Call init_cpp_parse when finished.
743118334Speter	(finish_parse): New function.
743250397Sobrien	* cp-tree.h (init_lex, init_parse): Remove declarations.
743318334Speter
743450397SobrienMon Apr  6 02:25:05 1998  Jason Merrill  <jason@yorick.cygnus.com>
743518334Speter
743650397Sobrien	* call.c (build_call): Still evaluate the actual argument.
743750397Sobrien	* class.c (is_empty_class): Update for -fnew-abi.
743818334Speter
743950397Sobrien	* decl2.c: -fnew-abi implies -fsquangle.
744050397Sobrien
744118334Speter	* method.c (do_build_assign_ref): Don't do anything to copy
744250397Sobrien	an empty class.
744350397Sobrien	(do_build_copy_constructor): Likewise.
744450397Sobrien	* call.c (build_over_call): Likewise.
744550397Sobrien
744650397SobrienSat Apr  4 18:43:58 1998  Jason Merrill  <jason@yorick.cygnus.com>
744750397Sobrien
744850397Sobrien	* tree.c (avoid_overlap): Return a value.
744918334Speter
745050397SobrienSat Apr  4 12:52:35 1998  Jeffrey A Law  (law@cygnus.com)
745150397Sobrien
745250397Sobrien	* method.c (check_btype): Add missing argument to xrealloc.
745350397Sobrien	(check_ktype): Likewise.
745418334Speter
745550397SobrienFri Apr  3 02:22:59 1998  Jason Merrill  <jason@yorick.cygnus.com>
745650397Sobrien
745750397Sobrien	Implement empty base optimization.
745818334Speter	* class.c (finish_struct_1): Add vbase fields earlier.  Set
745950397Sobrien	CLASSTYPE_SIZE of an empty base to 0.  Types with bases can be empty.
746050397Sobrien	* search.c (dfs_check_overlap, dfs_no_overlap_yet): New fns.
746150397Sobrien	(types_overlap_p): New fn.
746218334Speter	* tree.c (avoid_overlap): New fn.
746350397Sobrien	(build_base_fields): Use it to avoid overlapping empty bases.
746450397Sobrien	* cp-tree.h, decl2.c, lang-options.h: Add -fnew-abi.
746550397Sobrien
746618334Speter	* decl.c (cplus_expand_expr_stmt): Strip unused INDIRECT_REFs.
746750397Sobrien
746818334Speter	Re-implement allocation of base class subobjects.
746950397Sobrien	* tree.c (unshare_base_binfos): New fn.
747018334Speter	(layout_basetypes): Use it.  Now handles offsets of both virtual and
747150397Sobrien	non-virtual bases, after layout_type.
747218334Speter	(layout_vbasetypes): Remove.
747350397Sobrien	(build_base_fields): Generate FIELD_DECLs for each non-virtual base.
747418334Speter	(build_vbase_pointer_fields): Split out from old layout_basetypes.
747550397Sobrien	* class.c (finish_base_struct): Lose offset handling code.
747618334Speter	Move nonvdtor warning here.  Don't mess with t_binfo anymore.
747750397Sobrien	(finish_struct_1): Don't mess with t_binfo anymore.  Use fns above.
747850397Sobrien	* cp-tree.h: Adjust.
747918334Speter
748050397SobrienThu Apr  2 14:25:13 1998  Jason Merrill  <jason@yorick.cygnus.com>
748118334Speter
748250397Sobrien	* cp-tree.h: Lose CLASSTYPE_VBASE_SIZE, some unused stuff.
748318334Speter	* decl.c, decl2.c, pt.c, ptree.c, lex.c: Likewise.
748450397Sobrien	* class.c (duplicate_tag_error): Likewise.
748550397Sobrien	(finish_struct_1): Set CLASSTYPE_SIZE, CLASSTYPE_MODE, CLASSTYPE_ALIGN.
748618334Speter	* tree.c (layout_vbasetypes): Update from layout_record, remove
748750397Sobrien	var_size support, use CLASSTYPE_SIZE instead of CLASSTYPE_VBASE_SIZE.
748850397Sobrien	(layout_basetypes): Likewise.
748918334Speter
749050397SobrienWed Apr  1 18:22:25 1998  Jeffrey A Law  (law@cygnus.com)
749118334Speter
749250397Sobrien	* class.c, Make sure system.h is included just after config.h.
749318334Speter	Delete lingering stdio and errno references too.
749450397Sobrien	* decl.c, errfn.c, parse.y, ptree.c search.c, xref.c: Likewise.
749550397Sobrien
749618334SpeterWed Apr  1 15:38:36 1998  Jason Merrill  <jason@yorick.cygnus.com>
749750397Sobrien
749818334Speter	* friend.c (is_friend): Fix access control for local classes.
749950397Sobrien
750018334Speter	* class.c (is_empty_class): New fn.
750150397Sobrien	* call.c (build_call): Don't pass empty class objects to a function.
750250397Sobrien
750318334SpeterWed Apr  1 14:58:35 1998  Mark Mitchell  <mmitchell@usa.net>
750450397Sobrien
750550397Sobrien	* call.c (build_over_call): Do name resolution for default
750618334Speter	arguments of function templates in the scope of the templates.
750750397Sobrien
750818334SpeterTue Mar 31 13:43:57 1998  Jeffrey A Law  (law@cygnus.com)
750950397Sobrien
751018334Speter	* call.c: Include system.h.  Remove includes, declarations and
751150397Sobrien	defines provided by system.h.
751218334Speter	* class.c, cvt.c, decl.c, decl2.c, errfn.c error.c: Likewise.
751350397Sobrien	* except.c, expr.c friend.c, g++spec.c, init.c, input.c: Likewise.
751452284Sobrien	* lex.c, parse.y, pt.c, ptree.c repo.c rtti.c, search.c: Likewise.
751518334Speter	* semantics.c, sig.c, spew.c, tree.c, typeck.c: Likewise.
751650397Sobrien	* typeck2.c, xref.c: Likewise.
751718334Speter	* Makefile.in: Dependencies updated as appropriate.
751850397Sobrien	* Make-lang.in: Likewise.
751950397Sobrien
752050397SobrienMon Mar 30 12:15:00 1998  Mark Mitchell  <mmitchell@usa.net>
752152284Sobrien
752250397Sobrien	* pt.c (fn_type_unification): Allow incomplete unification without
752352284Sobrien	an immediate error message.
752450397Sobrien
752550397SobrienMon Mar 30 08:55:42 1998  Jason Merrill  <jason@yorick.cygnus.com>
752650397Sobrien
752718334Speter	* tree.c (member_p): New fn.
752850397Sobrien	* decl2.c (finish_file): Only set DECL_STATIC_FUNCTION_P for
752918334Speter	initializing class members.
753052284Sobrien
753152284Sobrien	* cp-tree.def (TEMPLATE_PARM_INDEX): Class 'x'.
753252284Sobrien	* ptree.c (lang_print_xnode): Handle TEMPLATE_PARM_INDEX.
753352284Sobrien
753452284Sobrien	* call.c (build_method_call): Handle non-scoped destructors, too.
753552284Sobrien	* pt.c (tsubst_copy): Likewise.
753652284Sobrien
753750397Sobrien	* pt.c (print_template_context): Split out...
753850397Sobrien	(push_tinst_level): ...from here.
753950397Sobrien
754050397Sobrien	* friend.c (is_friend): Don't pass a type to decl_function_context.
754118334Speter
754250397Sobrien	* typeck.c (convert_for_initialization): Always hand off
754318334Speter	conversions to class type.
754450397Sobrien
754550397SobrienSun Mar 29 20:01:59 1998  Jason Merrill  <jason@yorick.cygnus.com>
754650397Sobrien
754752284Sobrien	* friend.c (is_friend): Local classes have the same access as the
754852284Sobrien	enclosing function.
754952284Sobrien
755052284SobrienSun Mar 29 00:47:32 1998  Jeffrey A Law  (law@cygnus.com)
755152284Sobrien
755252284Sobrien	* typeck.c (expand_target_expr): Delete dead function.
755352284Sobrien
755452284Sobrien	* search.c: Put various prototypes inside #ifdef MI_MATRIX.
755518334Speter
755650397Sobrien	* repo.c (save_string): Delete dead function.
755718334Speter
755850397Sobrien	* method.c (thunk_printable_name): Delete dead function.
755950397Sobrien
756050397Sobrien	* lex.c (yynextch): Delete dead function.
756150397Sobrien
756250397Sobrien	* expr.c (tree_extract_aggr_init): #if 0 out.
756318334Speter
756450397Sobrien	* except.c (do_unwind): Delete dead function.
756518334Speter	(easy_expand_asm): Likewise.
756650397Sobrien
756750397Sobrien	* cvt.c (build_conversion_type_1): Delete dead function.
756818334Speter
756950397Sobrien	* cp-tree.h (push_expression_obstack): Declare.
757018334Speter
757150397Sobrien	* call.c (source_type): #if 0 out.
757250397Sobrien
757350397Sobrien	* class.c (alter_access): Remove unused label.  Add braces
757450397Sobrien	around empty else clause.
757518334Speter
757650397Sobrien	* lex.c (yyprint): Fix argument to printf.
757718334Speter
757850397SobrienSat Mar 28 17:43:52 1998  Mark Mitchell  <mmitchell@usa.net>
757918334Speter
758050397Sobrien	* pt.c (tsubst): Clear TREE_USED for new FUNCTION_DECLs.
758118334Speter
758250397Sobrien	* pt.c (instantiate_class_template): Make sure template
758350397Sobrien	arguments are permanent.
758418334Speter	* init.c (resolve_offset_ref): Don't go looking around in
758550397Sobrien	template types.
758618334Speter
758750397Sobrien	* semantics.c: Add routines to handle expressions, and some
758852284Sobrien	declaration processing.
758950397Sobrien	* parse.y: Use them.
759050397Sobrien	(current_class_depth): Move declaration to cp-tree.h.
759150397Sobrien	* parse.c: Regenerated.
759250397Sobrien	* cp-tree.h: Use them.
759350397Sobrien	(current_class_depth): Declare.
759450397Sobrien	* pt.c (tsubst_copy): Use begin_stmt_expr and finish_stmt_expr.
759518334Speter
759650397SobrienFri Mar 27 20:23:18 1998  Mark Mitchell  <mmitchell@usa.net>
759718334Speter
759850397Sobrien	* error.c (dump_decl): Be a bit more explicit with template
759950397Sobrien	type arguments, when verbose.
760050397Sobrien
760150397SobrienFri Mar 27 18:16:40 1998  Jason Merrill  <jason@yorick.cygnus.com>
760250397Sobrien
760350397Sobrien	* inc/exception: Reorder closing braces.
760450397Sobrien
760550397SobrienFri Mar 27 13:22:18 1998  Mark Mitchell  <mmitchell@usa.net>
760650397Sobrien
760750397Sobrien	* pt.c (redeclare_class_template): New function.
760850397Sobrien	* cp_tree.h (redeclare_class_template): Declare it.
760918334Speter	* decl.c (xref_tag): Use it.
761050397Sobrien
761118334SpeterThu Mar 26 11:16:30 1998  Jason Merrill  <jason@yorick.cygnus.com>
761250397Sobrien
761350397Sobrien	* call.c (build_over_call): Check IS_AGGR_TYPE, not
761450397Sobrien	TYPE_LANG_SPECIFIC.
761550397Sobrien	* typeck.c (convert_arguments): Likewise.
761650397Sobrien
761750397Sobrien	* decl.c (grokdeclarator): Remove const and volatile from type after
761850397Sobrien	setting constp and volatilep.
761918334Speter
762050397Sobrien	* class.c (finish_struct_1): Don't warn about bool bitfield larger
762118334Speter	than one bit.
762250397Sobrien
762350397SobrienThu Mar 26 10:25:52 1998  Mark Mitchell  <mmitchell@usa.net>
762450397Sobrien
762552284Sobrien	* pt.c (convert_nontype_argument): STRIP_NOPS where appropriate.
762650397Sobrien
762718334SpeterThu Mar 26 10:24:05 1998  Mark Mitchell  <mmitchell@usa.net>
762850397Sobrien
762918334Speter	* call.c (build_object_call): Complain about ambiguous operator(),
763050397Sobrien	rather that crashing.
763150397Sobrien	(build_new_op): Likewise.
763218334Speter	(build_op_delete_call): Likewise.
763350397Sobrien
763418334SpeterThu Mar 26 10:23:24 1998  Mark Mitchell  <mmitchell@usa.net>
763550397Sobrien
763650397Sobrien	* cvt.c (perform_qualification_conversions): Use comp_target_types
763718334Speter	instead of comp_ptr_ttypes.
763850397Sobrien
763918334SpeterWed Mar 25 16:10:50 1998  Mark Mitchell  <mmitchell@usa.net>
764050397Sobrien
764150397Sobrien	* cp-tree.h (enforce_access): Declare.
764250397Sobrien	* call.c (enforce_access): Make it extern, not static.
764350397Sobrien	* class.c (alter_access): Use enforce_access; modify code for ISO
764450397Sobrien	compliance, rather than ARM rules.
764550397Sobrien
764650397SobrienWed Mar 25 12:10:45 1998  Kriang Lerdsuwanakij  <lerdsuwa@scf.usc.edu>
764750397Sobrien
764850397Sobrien	* cp-tree.h: Fix typo.
764918334Speter
765050397SobrienWed Mar 25 02:01:02 1998  Jason Merrill  <jason@yorick.cygnus.com>
765118334Speter
765252284Sobrien	* expr.c (cplus_expand_expr): Only do PCC_STATIC_STRUCT_RETURN thing
765350397Sobrien	if (aggregate_value_p (type)).
765418334Speter
765550397Sobrien	* decl2.c (constructor_name_full): Handle TYPENAME_TYPE.
765618334Speter
765750397SobrienTue Mar 24 16:12:01 1998  Mark Mitchell  <mmitchell@usa.net>
765850397Sobrien
765950397Sobrien	* tree.c (mapcar): When dealing with a DECL, use it's constant
766018334Speter	value, if any.
766150397Sobrien	* pt.c (lookup_template_class): Don't mangle the names of template
766250397Sobrien	classes whose arguments are unknown.
766318334Speter
766450397Sobrien	* pt.c (tsubst_expr): Handle GOTO_STMT correctly.
766550397Sobrien
766618334SpeterTue Mar 24 12:21:55 1998  Benjamin Kosnik  <bkoz@lisa.cygnus.com>
766750397Sobrien
766850397Sobrien	* decl.c (init_decl_processing): Set TYPE_PRECISON for bools to 1.
766918334Speter
767050397SobrienTue Mar 24 12:21:48 1998  Jim Wilson  <wilson@cygnus.com>
767118334Speter
767250397Sobrien	* decl.c (init_decl_processing): Initialize TYPE_MAX_VALUE for
767350397Sobrien	boolean_type_node to 1.
767418334Speter
767550397SobrienTue Mar 24 10:23:47 1998  Mark Mitchell  <mmitchell@usa.net>
767618334Speter
767750397Sobrien	* error.c (dump_expr): Remove unused variable `l'.
767850397Sobrien
767918334Speter	* pt.c (for_each_template_parm): New function, created by
768050397Sobrien	converting uses_template_parms.
768118334Speter	(tree_fn_t): New typedef.
768250397Sobrien	(uses_template_parms): Use it.
768318334Speter	(mark_template_parm): New function.
768450397Sobrien	(push_template_decl): Check that the argument list of a partial
768518334Speter	specialization uses all the template parameters.
768650397Sobrien
768718334Speter	* Make-lang.in (c++filt): Don't delete cxxmain.c after we're done
768850397Sobrien	with it; we might want it for debugging.
768918334Speter	* cp-tree.h (type_unification): Change interface.
769050397Sobrien	* class.c (finish_struct_1): Skip nested template types, just like
769118334Speter	ordinary nested types.
769250397Sobrien	(instantiate_type): Use new interface to type_unification.
769318334Speter	* lex.c (init_lex): Add __sz as opname for sizeof.
769450397Sobrien	* method.c (build_overload_scope_ref): New function.
769550397Sobrien	(build_overload_int): Handle complex expressions.  Set
769618334Speter	numeric_output_need_bar if necessary.
769750397Sobrien	(build_overload_value): Handle non-PARM_DECL nodes; this
769818334Speter	routine is now used by build_overload_int.  Remove some
769950397Sobrien	assignments to numeric_output_need_bar.  Use
770018334Speter	build_overload_scope_ref.
770150397Sobrien	(build_qualified_name): Note that some template mangled names end
770218334Speter	with digits, and set numeric_output_need_bar appropriately.  Use
770350397Sobrien	build_underscore_int.
770450397Sobrien	* pt.c (unify): Change interface.
770518334Speter	(type_unification_real): Likewise.
770650397Sobrien	(determine_specialization): Use new interfaces.
770718334Speter	(tsubst): Deal gracefully with situations in which the argument
770850397Sobrien	vector is not fully filled.
770918334Speter	(fn_type_unification): Use new interfaces.
771050397Sobrien	(type_unification): Likewise.  Remove NOP_EXPR hack.
771118334Speter	(type_unification_real): Likewise.
771250397Sobrien	(unify): Likewise.  Deal with unification of complex expressions.
771350397Sobrien
771450397SobrienMon Mar 23 12:24:37 1998  Jason Merrill  <jason@yorick.cygnus.com>
771550397Sobrien
771618334Speter	* pt.c (complete_template_args): Initialize skip properly.
771750397Sobrien
771850397Sobrien	* decl.c (make_typename_type): Revert.
771950397Sobrien	(make_implicit_typename): Remove.
772050397Sobrien	(lookup_name_real): Don't call it.  Call lookup_field if we see a
772150397Sobrien	TYPE_DECL from a template base.
772250397Sobrien	* search.c (lookup_field): Do implicit typename stuff.
772350397Sobrien
772450397SobrienSun Mar 22 00:50:42 1998  Nick Clifton  <nickc@cygnus.com>
772518334Speter			  Geoff Noer    <noer@cygnus.com>
772650397Sobrien
772718334Speter	* Makefile.in: Various fixes for building cygwin32 native toolchains.
772850397Sobrien	* Make-lang.in: Likewise.
772950397Sobrien
773052284SobrienFri Mar 20 18:07:39 1998  Kriang Lerdsuwanakij  <lerdsuwa@scf.usc.edu>
773150397Sobrien
773218334Speter	* pt.c (tsubst, TEMPLATE_TEMPLATE_PARM): Simplify.
773350397Sobrien
773418334SpeterFri Mar 20 10:42:07 1998  Jason Merrill  <jason@yorick.cygnus.com>
773550397Sobrien
773618334Speter	* decl.c (make_implicit_typename): Rewrite removed code.
773750397Sobrien	(make_typename_type): Call it if the type we look up comes from
773850397Sobrien	a base that uses template parms.
773950397Sobrien
774018334Speter	* pt.c (complete_template_args): Rewrite.
774150397Sobrien	(tsubst, FUNCTION_DECL): Use it.
774218334Speter
774352284SobrienFri Mar 20 08:12:43 1998  H.J. Lu  (hjl@gnu.org)
774450397Sobrien
774550397Sobrien	* semantics.c (finish_asm_stmt): Fix combine strings.  Call
774618334Speter	c_expand_asm_operands () if output_operands, input_operands or
774750397Sobrien	clobbers is not NULL_TREE.
774850397Sobrien
774918334SpeterFri Mar 20 00:10:19 1998  Kriang Lerdsuwanakij  <lerdsuwa@scf.usc.edu>
775050397Sobrien
775150397Sobrien	* pt.c (complete_template_args): New function.
775218334Speter	(get_bindings): Deal with specializations of function templates
775350397Sobrien	with return type containing parameters from outer class
775418334Speter	templates.
775550397Sobrien	(tsubst, TEMPLATE_TEMPLATE_PARM): When reducing parameter level,
775618334Speter	substitute arguments and compose a new type.
775750397Sobrien
775818334SpeterThu Mar 19 19:01:48 1998  Mark Mitchell  <mmitchell@usa.net>
775950397Sobrien
776050397Sobrien	* pt.c (tsubst): Clear DECL_PENDING_INLINE_INFO for new
776150397Sobrien	FUNCTION_DECLs.
776250397Sobrien
776318334SpeterThu Mar 19 11:51:58 1998  Jason Merrill  <jason@yorick.cygnus.com>
776450397Sobrien
776518334Speter	* decl.c (make_implicit_typename): Lose useless code.
776650397Sobrien
776750397Sobrien	* call.c (standard_conversion): Handle A* -> const A* properly.
776818334Speter
776950397Sobrien	* pt.c (get_bindings_real): Rename from get_bindings.  Add
777018334Speter	check_rettype parm.
777150397Sobrien	(get_bindings): Pass 1.
777250397Sobrien	(get_bindings_overload): Pass 0.
777350397Sobrien
777450397SobrienWed Mar 19 09:08:12 1998  Mark Mitchell  <mmitchell@usa.net>
777518334Speter
777650397Sobrien	* pt.c (check_explicit_specialization): When reverting a static
777718334Speter	member function, also remove the `this' parameter from
777850397Sobrien	last_function_parms.
777918334Speter
778050397SobrienThu Mar 19 02:27:48 1998  Jason Merrill  <jason@yorick.cygnus.com>
778118334Speter
778250397Sobrien	* pt.c (tsubst_copy, CONST_DECL): Don't bother tsubsting
778350397Sobrien	a function context.
778418334Speter
778550397Sobrien	* decl.c (store_bindings): Use free_binding_vecs.
778618334Speter	(pop_from_top_level): Likewise.
778750397Sobrien
778818334SpeterWed Mar 18 12:41:43 1998  Jason Merrill  <jason@yorick.cygnus.com>
778950397Sobrien
779050397Sobrien	* decl.c (make_implicit_typename): Only change the type of a
779150397Sobrien	TYPENAME_TYPE.
779250397Sobrien
779318334SpeterWed Mar 18 10:09:51 1998  Mark Mitchell  <mmitchell@usa.net>
779450397Sobrien
779518334Speter	* semantics.c: New file, containing routines to perform the
779650397Sobrien	semantic phase of parsing.
779718334Speter	* parse.y: Use it.
779850397Sobrien	* pt.c (tsubst_expr): Likewise.
779918334Speter	* cp-tree.h: Declare the various functions in semantics.c.
780050397Sobrien	Provide macros to access _STMT tree nodes.
780118334Speter	* cp-tree.def: Add ASM_STMT tree node.
780252284Sobrien	* Makefile.in, Make-lang.in: Add dependencies on and for
780352284Sobrien	semantics.c.
780418334Speter
780550397SobrienWed Mar 18 00:24:10 1998  Jason Merrill  <jason@yorick.cygnus.com>
780618334Speter
780750397Sobrien	* pt.c (push_template_decl): Only check primary templates.
780818334Speter
780950397Sobrien	* pt.c (check_explicit_specialization): Complain about default args
781050397Sobrien	in explicit specialization.
781150397Sobrien
781250397Sobrien	* parse.y (nomods_initdcl0): Also call cp_finish_decl for a
781350397Sobrien	constructor_declarator.
781450397Sobrien
781550397SobrienTue Mar 17 14:44:54 1998  Mark Mitchell  <mmitchell@usa.net>
781618334Speter
781750397Sobrien	* typeck2.c (build_x_arrow): Don't crash when an aggregate type
781850397Sobrien	has no overloaded operator ->.
781950397Sobrien
782050397Sobrien	* call.c (build_field_call): Don't crash when presented with a
782150397Sobrien	field that is actually a nested type.
782250397Sobrien
782350397Sobrien	* decl.c (pushtag): Deal with friend class injection in local
782450397Sobrien	classes.
782550397Sobrien
782650397Sobrien	* call.c (build_object_call): Don't crash if OBJ is a
782750397Sobrien	pointer-to-member-function.
782850397Sobrien
782950397SobrienTue Mar 17 11:40:26 1998  Jason Merrill  <jason@yorick.cygnus.com>
783050397Sobrien
783150397Sobrien	* pt.c (push_template_decl): Complain about template with C linkage,
783250397Sobrien	anonymous template class.
783350397Sobrien
783450397SobrienMon Mar 16 12:10:39 1998  Jason Merrill  <jason@yorick.cygnus.com>
783550397Sobrien
783650397Sobrien	* class.c (pushclass): Only use the mi_matrix stuff #ifdef MI_MATRIX.
783750397Sobrien	* search.c: Likewise.
783850397Sobrien
783950397Sobrien	* lex.c (do_pending_defargs): Only call
784050397Sobrien	maybe_{begin,end}_member_template_processing for FUNCTION_DECLs.
784150397Sobrien
784252284Sobrien	* parse.y (initdcl0_innards): Move maybeasm back into initdcl0 et al.
784318334Speter
784450397SobrienMon Mar 16 10:47:22 1998  Mark Mitchell  <mmitchell@usa.net>
784518334Speter
784650397Sobrien	* parse.y: Deal with CONSTRUCTORS in new_initializers.
784718334Speter
784850397SobrienMon Mar 16 10:54:21 1998  Mark Mitchell  <mmitchell@usa.net>
784950397Sobrien
785050397Sobrien	* pt.c (tsubst_copy): Deal with BIND_EXPR in a way that more
785150397Sobrien	closely mimics the behavior in parse.y.
785250397Sobrien	(tsubst_expr): Return the resulting BLOCK when making a tsubst'ing
785318334Speter	into a compound statement.
785450397Sobrien
785552284SobrienSun Mar 15 02:07:26 1998  Jason Merrill  <jason@yorick.cygnus.com>
785618334Speter
785750397Sobrien	* cp-tree.h (TEMPLATE_PARMS_FOR_INLINE): New macro.
785850397Sobrien	* pt.c (inline_needs_template_parms): New fn.
785918334Speter	(original_template): New fn.
786050397Sobrien	(push_inline_template_parms_recursive): New fn.
786118334Speter	(maybe_begin_member_template_processing): Use them.
786250397Sobrien	(maybe_end_member_template_processing): Likewise.
786318334Speter	(is_member_or_friend_template): Rename to is_member_template.
786450397Sobrien	Member functions of local classes are never member templates.
786518334Speter
786650397SobrienSun Mar 15 01:14:22 1998  Kriang Lerdsuwanakij  <lerdsuwa@scf.usc.edu>
786750397Sobrien
786850397Sobrien	* lex.c (do_identifier): Handle TEMPLATE_DECL that was
786918334Speter	added in the class scope to catch redefinition error.
787050397Sobrien
787150397Sobrien	* pt.c (reduce_template_parm_level): Also copy
787218334Speter	the DECL_TEMPLATE_PARMS field.
787350397Sobrien
787418334SpeterSun Mar 15 10:54:08 1998  Mark Mitchell  <mmitchell@usa.net>
787552284Sobrien
787650397Sobrien	* pt.c (tsubst): Clear TYPE_REFERENCE_TO when creating a
787750397Sobrien	reduced-level template type parameter.
787818334Speter
787950397SobrienSun Mar 15 12:26:02 1998  Manfred Hollstein  <manfred@s-direktnet.de>
788018334Speter
788150397Sobrien	* cp-tree.h (struct lang_decl_flags): Add needs_final_overrider.
788250397Sobrien	(DECL_NEEDS_FINAL_OVERRIDER_P): New macro.
788352284Sobrien	* class.c (override_one_vtable): Set DECL_NEEDS_FINAL_OVERRIDER_P.
788450397Sobrien	* decl.c (duplicate_decls): Propagate it.
788550397Sobrien	* typeck2.c (abstract_virtuals_error): Use two loops to emit
788650397Sobrien	abstract virtual functions and virtual functions which need a
788718334Speter	final overrider separately.
788850397Sobrien
788918334SpeterThu Mar 12 09:39:40 1998  Manfred Hollstein  <manfred@s-direktnet.de>
789050397Sobrien
789150397Sobrien	* lang-specs.h: Properly put brackets around array elements in
789218334Speter	initializer.
789350397Sobrien
789418334Speter	* typeck.c (build_binary_op_nodefault): Correctly place parens around
789550397Sobrien	&& and || in expression.
789618334Speter
789750397SobrienThu Mar 12 09:26:04 1998  Manfred Hollstein  <manfred@s-direktnet.de>
789818334Speter
789952284Sobrien	* call.c (default_parm_conversions): Remove prototype definition.
790050397Sobrien	(build_method_call): Remove unused variable result.
790150397Sobrien
790250397Sobrien	* cvt.c (ocp_convert): Remove unused variable conversion.
790318334Speter
790450397Sobrien	* decl2.c (ambiguous_decl): Add explicit parameter definition for name.
790518334Speter
790650397Sobrien	* except.c (do_unwind): #if 0 definition of unused variables fcall
790750397Sobrien	and next_pc.
790850397Sobrien
790918334Speter	* expr.c (extract_scalar_init): #if 0 prototype and function
791050397Sobrien	definition.
791118334Speter
791250397Sobrien	* init.c (expand_aggr_init_1): Remove unused variable init_type.
791350397Sobrien	(build_new_1): Remove unused variable t.
791418334Speter
791550397Sobrien	* pt.c (instantiate_class_template): Remove unused variable newtag;
791650397Sobrien	cast called function return value to void.
791718334Speter	(do_decl_instantiation): Remove unused variables name and fn.
791850397Sobrien
791918334Speter	* tree.c (get_type_decl): Add default return to shut up compiler from
792052284Sobrien	complaining control reaches end of non-void function.
792150397Sobrien
792218334Speter	* typeck.c (build_x_conditional_expr): Remove unused variable rval.
792350397Sobrien
792418334SpeterThu Mar 12 09:12:15 1998  Manfred Hollstein  <manfred@s-direktnet.de>
792550397Sobrien
792650397Sobrien	* call.c (default_parm_conversions): Remove prototype definition.
792750397Sobrien	(build_method_call): Remove unused variable result.
792850397Sobrien	(build_over_call): Add default case in enumeration switch.
792950397Sobrien
793050397SobrienThu Mar 12 08:39:13 1998  Manfred Hollstein  <manfred@s-direktnet.de>
793150397Sobrien
793250397Sobrien	* decl2.c (lang_decode_option): Change j's type to size_t.
793350397Sobrien
793452284Sobrien	* tree.c (layout_vbasetypes): record_align and desired_align are of
793550397Sobrien	type unsigned int; const_size and nonvirtual_const_size likewise.
793618334Speter
793750397SobrienWed Mar 11 07:25:20 1998  Mark Mitchell  <mmitchell@usa.net>
793818334Speter
793950397Sobrien	* parse.y (new_initializer): Make sure all initializers are
794050397Sobrien	lists.
794118334Speter
794252284SobrienTue Mar 10 07:32:36 1998  Mark Mitchell  <mmitchell@usa.net>
794350397Sobrien
794418334Speter	* decl2.c (import_export_decl): Mark tinfo functions for
794550397Sobrien	cv-qualified versions of class types as DECL_NOT_REALLY_EXTERN.
794618334Speter
794750397SobrienFri Mar  6 23:27:35 1998  Jeffrey A Law  (law@cygnus.com)
794850397Sobrien
794918334Speter	* method.c: Fix typo.
795050397Sobrien
795150397SobrienFri Mar  6 10:06:59 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
795218334Speter
795350397Sobrien	* method.c: Include "system.h" to get stdlib.h, stdio.h,
795450397Sobrien	ctype.h, string.h, etc.
795518334Speter	(issue_nrepeats): Add default case in enumeration switch.
795650397Sobrien	(check_btype): Likewise.
795750397Sobrien	(process_overload_item): Likewise.
795818334Speter
795950397Sobrien	* Makefile.in (method.o): Depend on system.h.
796018334Speter
796150397SobrienWed Mar  4 22:26:53 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
796250397Sobrien
796318334Speter	* lex.c (do_scoped_id): Fix parenthesizing.
796450397Sobrien
796518334SpeterWed Mar  4 12:11:53 1998  Michael Tiemann  <tiemann@axon.cygnus.com>
796650397Sobrien
796750397Sobrien	* rtti.c (get_tinfo_fn_dynamic): If this function is called an
796850397Sobrien	FLAG_RTTI is unset, initialize type info machinery and continue
796952284Sobrien	with FLAG_RTTI enabled.
797050397Sobrien	(get_typeid): Likewise.
797150397Sobrien
797250397SobrienWed Mar  4 11:47:55 1998  Jason Merrill  <jason@yorick.cygnus.com>
797350397Sobrien
797450397Sobrien	* typeck.c (unary_complex_lvalue): &D::i has type B::* if i comes
797550397Sobrien	from B.
797650397Sobrien
797750397SobrienWed Mar  4 11:28:08 1998  Mark Mitchell  <mmitchell@usa.net>
797850397Sobrien
797950397Sobrien	* pt.c (finish_member_template_decl): Deal more gracefully with
798050397Sobrien	invalid declarations.
798150397Sobrien
798252284SobrienTue Mar  3 01:38:17 1998  Jason Merrill  <jason@yorick.cygnus.com>
798350397Sobrien
798452284Sobrien	* cvt.c, decl.c, decl2.c, init.c, rtti.c, typeck.c, typeck2.c,
798550397Sobrien	cp-tree.h: Clean up more old overloading code, old RTTI code, and
798618334Speter	some formatting quirks.
798750397Sobrien
798850397Sobrien	* call.c, class.c, cp-tree.h, cvt.c, decl.c, init.c, lex.c,
798950397Sobrien	method.c, pt.c, ptree.c, typeck.c: Remove support for
799050397Sobrien	-fno-ansi-overloading and overloading METHOD_CALL_EXPR.
799150397Sobrien	* class.h: Remove.
799250397Sobrien	* Makefile.in: Adjust.
799350397Sobrien
799450397Sobrien	* pt.c (unify): Don't allow reduced cv-quals when strict.
799518334Speter
799650397Sobrien	* call.c, class.c, pt.c, cp-tree.h: Remove nsubsts parm from
799718334Speter	*type_unification* and unify.
799850397Sobrien
799950397SobrienMon Mar  2 12:11:06 1998  Jason Merrill  <jason@yorick.cygnus.com>
800018334Speter
800152284Sobrien	* parse.y (explicit_template_type): Remove TEMPLATE keyword.
800250397Sobrien	(nested_name_specifier): And add it before this use.
800318334Speter	(typename_sub0): And this use.  Also add use without the keyword.
800450397Sobrien	(typename_sub1): Likewise.
800518334Speter	* pt.c (instantiate_class_template): Don't actually instantiate
800650397Sobrien	anything if our type uses template parms.
800752284Sobrien
800818334SpeterMon Mar  2 11:04:59 1998  Jim Wilson  <wilson@cygnus.com>
800950397Sobrien
801018334Speter	* decl.c (start_function): Don't call temporary_allocation for a
801150397Sobrien	nested function.
801250397Sobrien
801350397SobrienSun Mar  1 21:06:37 1998  Jason Merrill  <jason@yorick.cygnus.com>
801450397Sobrien
801550397Sobrien	* pt.c (instantiate_class_template): Don't mess with friends if
801650397Sobrien	our type uses template parms.
801750397Sobrien
801852284SobrienSat Feb 28 12:06:44 1998  Jason Merrill  <jason@yorick.cygnus.com>
801950397Sobrien
802018334Speter	* parse.y (nested_name_specifier): Use explicit_template_type.
802152284Sobrien	(typename_sub): Allow a template_type, an explicit_template_type,
802250397Sobrien	or an implicit template type at the end.
802318334Speter	* lex.c (yyprint): Handle a PTYPENAME being a TEMPLATE_DECL.
802450397Sobrien	* decl.c (make_typename_type): Handle template-id where the name
802550397Sobrien	is a TEMPLATE_DECL.
802618334Speter	* call.c (build_scoped_method_call): Handle member template
802750397Sobrien	destructor call.
802818334Speter	* pt.c (tsubst_copy, METHOD_CALL_EXPR): Don't assume a member
802950397Sobrien	destructor is represented by the type.
803050397Sobrien
803118334Speter	* cp-tree.h (TYPENAME_TYPE_FULLNAME): New macro.
803250397Sobrien	* parse.y (nested_name_specifier): Add 'template' case.
803318334Speter	(explicit_template_type): New rule.
803450397Sobrien	(typename_sub): Use it.
803518334Speter	* decl.c (make_typename_type): Handle getting a template-id for NAME.
803650397Sobrien	* pt.c (tsubst): Likewise.
803750397Sobrien
803818334SpeterFri Feb 27 11:17:50 1998  Jason Merrill  <jason@yorick.cygnus.com>
803952284Sobrien
804050397Sobrien	* pt.c (add_to_template_args): Fix thinko.
804118334Speter	(instantiate_class_template): Call it later.
804250397Sobrien
804350397Sobrien	* pt.c (get_class_bindings): Add outer_args parm.
804418334Speter	(most_specialized_class): Likewise.
804550397Sobrien	(instantiate_class_template): Pass it.
804650397Sobrien	(more_specialized_class): Likewise.
804750397Sobrien	(lookup_template_class): Get context from template if none
804818334Speter	was specified.
804950397Sobrien	(finish_member_template_decl): Don't do anything with a
805050397Sobrien	partial specialization.
805118334Speter	* decl2.c (check_member_template): Use IS_AGGR_TYPE instead of
805250397Sobrien	AGGREGATE_TYPE_P.
805318334Speter	* class.c (finish_struct): Member class templates have already been
805450397Sobrien	checked for name clashes.
805518334Speter	* decl.c (pushdecl_with_scope): Handle pushing at class level.
805650397Sobrien
805750397SobrienFri Feb 27 02:25:16 1998  Jason Merrill  <jason@yorick.cygnus.com>
805850397Sobrien
805918334Speter	* pt.c (tsubst, TEMPLATE_DECL): Support member class templates.
806050397Sobrien	(tsubst, *_PARM): Support multiple levels of template classes.
806118334Speter	(instantiate_class_template): Look up the pattern from the
806250397Sobrien	original template.
806318334Speter	(lookup_template_class): Handle getting a template for d1.
806450397Sobrien	(push_template_decl): Correct setting of 'primary'.
806550397Sobrien	(reduce_template_parm_level): Add 'levels' parm.
806618334Speter	(finish_member_template_decl): Support member class templates.
806750397Sobrien	(template_class_depth): Handle multiple levels.
806818334Speter	* parse.y (component_decl_1, fn.def2): Remove member template case.
806950397Sobrien	(component_decl): Add member template cases.
807050397Sobrien	* decl2.c (check_member_template): We now handle member template
807118334Speter	classes.
807250397Sobrien	* decl.c (pushtag): Handle member templates.
807318334Speter	* method.c (do_inline_function_hair): Don't touch
807450397Sobrien	IDENTIFIER_GLOBAL_VALUE.
807550397Sobrien	* init.c (build_offset_ref): If name isn't an identifier, just
807618334Speter	return it.
807750397Sobrien	* spew.c (yylex): Handle PTYPENAME like TYPENAME.
807818334Speter
807950397Sobrien	* typeck.c (get_delta_difference): Do adjust for conversions to
808018334Speter	and from virtual base.
808150397Sobrien
808218334SpeterWed Feb 25 09:51:29 1998  Jason Merrill  <jason@yorick.cygnus.com>
808352284Sobrien
808452284Sobrien	* typeck.c (get_delta_difference): Give hard error for conversion
808552284Sobrien	from virtual base.
808652284Sobrien
808752284Sobrien	* cp-tree.h: Tweak formatting.
808818334Speter
808952284SobrienWed Feb 25 00:35:33 1998  Jason Merrill  <jason@yorick.cygnus.com>
809052284Sobrien
809150397Sobrien	* decl.c (push_namespace): Handle redeclaration error.
809218334Speter
809350397Sobrien	* cp-tree.h (IDENTIFIER_NAMESPACE_VALUE): New macro.
809418334Speter	(IDENTIFIER_NAMESPACE_BINDINGS): New macro.
809550397Sobrien	(NAMESPACE_BINDING): New macro.
809618334Speter	(IDENTIFIER_GLOBAL_VALUE): Use NAMESPACE_BINDING.
809750397Sobrien	* *.c: Use them.
809850397Sobrien
809950397Sobrien	* pt.c (push_template_decl): Use innermost_args.
810052284Sobrien
810118334Speter	* decl.c (get_unique_name): Tweak from earlier in the name.
810250397Sobrien
810318334SpeterTue Feb 24 22:15:04 1998  Martin von Loewis  <loewis@informatik.hu-berlin.de>
810450397Sobrien
810550397Sobrien	* cp-tree.def: Add CPLUS_BINDING node.
810618334Speter	* cp-tree.h (tree_binding): New struct.
810750397Sobrien	(BINDING_SCOPE, BINDING_VALUE): New macros.
810818334Speter	(current_namespace, global_namespace): Declare extern.
810950397Sobrien	(struct lang_decl_flags): New field in_namespace.
811050397Sobrien	(DECL_NAMESPACE_USING, DECL_NAMESPACE_USERS): New macros.
811118334Speter	(DECL_NAMESPACE, SET_DECL_NAMESPACE): New macros.
811250397Sobrien	(TREE_INDIRECT_USING): New macro.
811318334Speter	* decl2.c (current_namespace, global_namespace): Declare.  The
811450397Sobrien	value is a NAMESPACE_DECL now, not a TREE_LIST.
811550397Sobrien	(is_namespace_ancestor, namespace_ancestor): New static functions.
811650397Sobrien	(add_using_namespace, ambiguous_decl): Likewise.
811718334Speter	(lookup_using_namespace): New support function for lookup_name.
811850397Sobrien	(qualified_lookup_using_namespace): New support function for
811952284Sobrien	do_scoped_id and lookup_namespace_name.
812050397Sobrien	(get_namespace_id): Mark as obsolete.
812150397Sobrien	(current_namespace_id): Likewise.
812250397Sobrien	(do_namespace_alias): Implement.
812318334Speter	(do_using_directive): Implement as call to add_using_namespace.
812450397Sobrien	* decl.c (binding_for_name): New function.
812518334Speter	(push_namespace, pop_namespace): Implement.
812650397Sobrien	(push_decl): Don't install a FUNCTION_DECL in the global branch.
812750397Sobrien	(lookup_namespace_name): Implement using qualified lookup.
812818334Speter	(lookup_name_real): For global scoping, lookup in
812950397Sobrien	global_namespace.  For namespace scoping, lookup in given
813018334Speter	namespace.  For unscoped lookup, iterate over namespace,
813150397Sobrien	considering using directives.
813250397Sobrien	(init_decl_processing): Initialize global_namespace.
813350397Sobrien	(grokvardecl): Build assembler name as static name for globals.
813450397Sobrien	(grokdeclarator): Remove old namespace mangling.
813552284Sobrien	(xref_tag): When installing a global binding for the
813650397Sobrien	tag, make sure we have an identifier.
813718334Speter	* method.c (build_overload_nested_name): Mangle namespaces.
813850397Sobrien	(build_qualified_name): Likewise.
813918334Speter	(build_decl_overload_real): Likewise.
814050397Sobrien	* lex.c (build_lang_decl): Set namespace for new declaration to
814150397Sobrien	current_namespace.
814218334Speter	(do_scoped_id): Find global names in global or current
814350397Sobrien	namespace, or using qualified namespace lookup, depending on
814418334Speter	context.
814550397Sobrien	* init.c (build_member_call): When scope is namespace, use
814650397Sobrien	build_x_function_call instead.
814718334Speter	(build_offset_ref): When scope is namespace, collapse processing
814850397Sobrien	to lookup_namespace_name instead.
814918334Speter	* error.c (dump_decl): Support NAMESPACE_DECL.
815050397Sobrien	* decl.c (pushdecl): Bind globals to current namespace.
815150397Sobrien	(push_overloaded_decl): Likewise.
815250397Sobrien	(lookup_tag): Likewise.
815350397Sobrien	(lookup_name_current_level): Likewise.
815450397Sobrien	(xref_tag): Likewise.
815550397Sobrien	(start_function): Likewise.
815652284Sobrien	* lex.c (do_identifier): Likewise.
815750397Sobrien	(identifier_typedecl_value): Likewise.
815852284Sobrien	(real_yylex): Likewise.
815950397Sobrien	* method.c (do_inline_function_hair): Likewise.
816018334Speter	* parse.y (unscoped): Likewise.
816150397Sobrien	* pt.c (check_explicit_specialization): Likewise.
816250397Sobrien	(lookup_template_class): Likewise.
816350397Sobrien	* rtti.c (call_void_fn): Likewise.
816450397Sobrien	* sig.c (build_sigtable): Likewise.
816550397Sobrien	* ptree.c (lang_print_xnode): New function.
816650397Sobrien
816718334SpeterTue Feb 24 01:40:24 1998  Jason Merrill  <jason@yorick.cygnus.com>
816850397Sobrien
816918334Speter	* pt.c (instantiate_class_template): Don't instantiate if pedantic
817050397Sobrien	and the args use template parms.
817150397Sobrien
817218334Speter	* pt.c (push_tinst_level): If the instantiation uses template parms,
817350397Sobrien	fail silently.
817450397Sobrien	* decl.c (xref_basetypes): Do call complete_type for basetypes
817550397Sobrien	that involve template parameters.
817650397Sobrien
817750397SobrienTue Feb 24 00:36:43 1998  Jason Merrill  <jason@yorick.cygnus.com>
817850397Sobrien
817950397Sobrien	* typeck2.c (process_init_constructor): Fix labeled init check.
818050397Sobrien
818150397SobrienMon Feb 23 05:08:55 1998  Jason Merrill  <jason@yorick.cygnus.com>
818250397Sobrien
818350397Sobrien	* pt.c, call.c, decl.c, method.c, cp-tree.h: Remove unused NARGS
818450397Sobrien	argument to tsubst and friends.
818550397Sobrien
818618334Speter	* pt.c (tsubst, FUNCTION_DECL): Tidy.
818750397Sobrien
818818334Speter	* typeck.c (build_x_function_call): Handle static member function
818950397Sobrien	templates like non-templates.  Handle friend templates like normal
819050397Sobrien	function templates.
819150397Sobrien	* pt.c (tsubst, *_PARM): Don't use orig_level.
819250397Sobrien	(get_bindings): Don't call add_to_template_args.
819350397Sobrien	(instantiate_template): Likewise.
819450397Sobrien	(tsubst, FUNCTION_DECL): Call add_to_template_args as appropriate.
819550397Sobrien	* ptree.c (print_lang_type): Print index/level for template parms.
819650397Sobrien
819750397SobrienMon Feb 23 02:52:29 1998  Mark Mitchell  <mmitchell@usa.net>
819850397Sobrien
819950397Sobrien	* Make-lang.in (cc1plus): Note that cc1plus depends on
820050397Sobrien	cp/cp-tree.h and cp/cp-tree.def.
820150397Sobrien
820250397Sobrien	* cp-tree.def (TEMPLATE_CONST_PARM): Remove.
820350397Sobrien	(TEMPLATE_PARM_INDEX): New tree code, used to indicate a
820450397Sobrien	position in a template parameter list.
820552284Sobrien	* cp-tree.h (template_parm_index): New structure, used as the tree
820650397Sobrien	structure for a TEMPLATE_PARM_INDEX.
820750397Sobrien	(TEMPLATE_PARM_IDX): New macro.
820818334Speter	(TEMPLATE_PARM_LEVEL): Likewise.
820950397Sobrien	(TEMPLATE_PARM_DESCENDANTS): Likewise.
821050397Sobrien	(TEMPLATE_PARM_ORIG_LEVEL): Likewise.
821118334Speter	(TEMPLATE_PARM_DECL): Likewise.
821250397Sobrien	(TEMPLATE_TYPE_PARM_INDEX): Likewise.
821318334Speter	(TEMPLATE_TYPE_ORIG_LEVEL): Likewise.
821450397Sobrien	(TEMPLATE_TYPE_DECL): Likewise.
821550397Sobrien	(TEMPLATE_CONST_IDX): Remove.
821618334Speter	(TEMPLATE_CONST_LEVEL): Likewise.
821750397Sobrien	(TEMPLATE_CONST_SET_INFO): Likewise.
821818334Speter	(TEMPLATE_TYPE_SET_INFO): Likewise.
821950397Sobrien	(TEMPLATE_TYPE_IDX): Redefine in terms of TEMPLATE_PARM_INDEX
822018334Speter	node.
822150397Sobrien	(TEMPLATE_TYPE_LEVEL): Likewise.
822218334Speter	* decl.c (decls_match): Call comp_template_parms, rather than
822350397Sobrien	expanding it inline.
822450397Sobrien	(duplicate_decls): If two template declarations are being merged,
822550397Sobrien	then their TEMPLATE_INFOs should be merged as well.
822650397Sobrien	(grokfndecl): Save template-id information when declaring a friend
822750397Sobrien	with explicit template arguments.  Pass arguments to
822818334Speter	check_explicit_specialization via correct convention; at some
822950397Sobrien	point check_explicit_specialization changed, but these call-sites
823018334Speter	did not.
823150397Sobrien	(grokdeclarator): Tidy up slightly.
823218334Speter	* decl2.c (check_classfn): Tidy up slightly.  Don't assume that
823350397Sobrien	two template functions with the same DECL_ASSEMBLER_NAME the same,
823418334Speter	since the names are not yet mangled.
823550397Sobrien	* error.c (dump_decl): Use TEMPLATE_PARM_INDEX instead of
823652284Sobrien	TEMPLATE_CONST_PARM.
823752284Sobrien	(dump_expr): Likewise.  Use the TEMPLATE_PARM_DECL to get at the
823852284Sobrien	decl for a non-type parameter, rather than printing `<tparm ...>'.
823952284Sobrien	* friend.c (is_friend): Handle TEMPLATE_DECL friends.
824052284Sobrien	(do_friend): Deal with template friends.
824152284Sobrien	* lex.c (do_pending_inlines): Call
824252284Sobrien	maybe_begin_member_template_processing, rather than
824350397Sobrien	conditionally calling begin_member_template_processing.
824450397Sobrien	(process_next_inline): Likewise.  Call
824552284Sobrien	maybe_end_member_template_processing, rather than
824652284Sobrien	conditionally calling end_member_template_processing.
824752284Sobrien	(do_pending_defargs): Likewise.
824852284Sobrien	(do_identifier): Use TEMPLATE_PARM_INDEX instead of
824952284Sobrien	TEMPLATE_CONST_PARM.
825052284Sobrien	* method.c (build_mangled_template_parm_index): New function.
825150397Sobrien	(build_overload_value): Use it.
825250397Sobrien	(build_overload_name): Likewise.
825350397Sobrien	* pt.c (finish_member_template_decl): Allow friend declarations.
825452284Sobrien	(template_class_depth): New function.
825552284Sobrien	(is_member_template): Rename, and modify, to become...
825652284Sobrien	(is_member_or_friend_template): New function.
825752284Sobrien	(end_member_template_processing): Rename, and modify, to become...
825850397Sobrien	(maybe_end_member_template_processing).
825952284Sobrien	(build_template_parm_index): New function.
826052284Sobrien	(reduce_template_parm_level): New function.
826150397Sobrien	(process_template_parm): Modify to use build_template_parm_index.
826252284Sobrien	(push_template_decl): Deal with friend templates.
826350397Sobrien	(uses_template_parms): Use TEMPLATE_PARM_INDEX instead of
826450397Sobrien	TEMPLATE_CONST_PARM.
826550397Sobrien	(tsubst_friend_function): New function.
826650397Sobrien	(instantiate_class_template): Generate the DECL_FRIENDLIST
826752284Sobrien	for a new instantiation by using tsubst_friend_function rather
826850397Sobrien	than just tsubst.
826950397Sobrien	(tsubst): Don't tsubst into a type which is a TEMPLATE_DECL.
827052284Sobrien	Use TEMPLATE_PARM_INDEX instead of TEMPLATE_CONST_PARM, and the
827150397Sobrien	appropriate new macros.  Use reduce_template_parm_level to
827252284Sobrien	generate lower-level template parameters.  Handle tsubst'ing into
827350397Sobrien	TEMPLATE_DECLS that declare TEMPLATE_TEMPLATE_PARMS.  Don't forget
827450397Sobrien	to tsubst the DECL_CONTEXT and DECL_CLASS_CONTEXT of newly created
827550397Sobrien	templates.  Similarly for the template parameters for a new
827650397Sobrien	template.
827750397Sobrien	(tsubst_copy): Tidy up slightly.  Use TEMPLATE_PARM_INDEX instead
827850397Sobrien	of TEMPLATE_CONST_PARM.  Handle TYPE_DECLs by tsubsting into them.
827950397Sobrien	(unify): Use TEMPLATE_PARM_INDEX instead of TEMPLATE_CONST_PARM.
828050397Sobrien	(get_bindings): Call add_to_template_args if necessary.
828150397Sobrien	(instantiate_decl): Handle instantiations of friend templates.
828250397Sobrien	* search.c (lookup_field_1): Don't treat the TYPE_FIELDS of a
828350397Sobrien	TEMPLATE_TYPE_PARM as a list of fields; it's not!
828450397Sobrien	* spew.c (yylex): Do a little manual constant propagation to
828550397Sobrien	clarify the code.
828650397Sobrien
828750397SobrienSun Feb 22 19:53:29 1998  Jeffrey A Law  (law@cygnus.com)
828850397Sobrien
828950397Sobrien	* error.c: Include sys/types.h.
829050397Sobrien
829150397SobrienThu Feb 19 14:49:09 1998  Jeffrey A Law  (law@cygnus.com)
829250397Sobrien
829350397Sobrien	* method.c (build_mangled_name): Start CPP directives in column zero.
829450397Sobrien
829550397SobrienThu Feb 19 10:36:48 1998  Jason Merrill  <jason@yorick.cygnus.com>
829618334Speter
829750397Sobrien	* typeck2.c (process_init_constructor): Sorry about non-trivial
829818334Speter	labeled initializers.
829950397Sobrien	* parse.y (initlist): Re-enable labeled initializers.
830050397Sobrien
830118334SpeterThu Feb 19 10:15:55 1998  Kriang Lerdsuwanakij  <lerdsuwa@scf.usc.edu>
830252284Sobrien
830350397Sobrien	* pt.c (coerce_template_parms): Add a new parameter, is_tmpl_parm,
830450397Sobrien	all callers changed.  Rely on the new parameter instead of arg
830550397Sobrien	being a TREE_LIST when determine whether we are working inside
830618334Speter	template template parameter.  Clean up is_type test.
830750397Sobrien
830818334SpeterThu Feb 19 10:04:12 1998  Jason Merrill  <jason@yorick.cygnus.com>
830950397Sobrien
831018334Speter	* cvt.c (cp_convert_to_pointer): Preserve TREE_CONSTANT.
831150397Sobrien	* typeck2.c (initializer_constant_valid_p): Allow conversions
831218334Speter	between pointers and references.
831350397Sobrien
831450397Sobrien1998-02-19  Brendan Kehoe  <brendan@cygnus.com>
831518334Speter
831650397Sobrien	* typeck.c (build_unary_op): Only warn about incr/decr a pointer
831718334Speter	if pedantic || warn_pointer_arith.
831850397Sobrien
831950397SobrienThu Feb 19 09:37:21 1998  Kriang Lerdsuwanakij  <lerdsuwa@scf.usc.edu>
832050397Sobrien
832150397Sobrien	* pt.c (unify): Handle TEMPLATE_DECL.
832250397Sobrien
832350397Sobrien1998-02-18  Brendan Kehoe  <brendan@cygnus.com>
832450397Sobrien
832550397Sobrien	* cp-tree.h (strip_attrs): Remove decl.
832618334Speter
832750397Sobrien1998-02-18  Doug Evans  <devans@cygnus.com>
832818334Speter
832950397Sobrien	* decl.c (duplicate_decls): Call merge_machine_decl_attributes.
833050397Sobrien	Update olddecl's attributes too.
833152284Sobrien	(strip_attrs): Remove function.
833250397Sobrien	* typeck.c (common_type): Call merge_machine_type_attributes.
833350397Sobrien
833450397SobrienTue Feb 17 14:07:52 1998  Mark Mitchell  <mmitchell@usa.net>
833550397Sobrien
833650397Sobrien	* parse.y (initdcl0_innards): New grammar symbol.
833750397Sobrien	(nomods_initdecls, nomods_initdcl0): Change type from itype to
833850397Sobrien	none, since the resulting value is never used.
833950397Sobrien	(parse_decl): New function.
834050397Sobrien	(datadef): Remove redundant actions.
834150397Sobrien	(initdcl0, notype_initdcl0, nomods_initdcl0): Use initdcl0_innards.
834250397Sobrien	* parse.c: Regenerated.
834350397Sobrien
834450397SobrienTue Feb 17 11:54:16 1998  Jason Merrill  <jason@yorick.cygnus.com>
834550397Sobrien
834650397Sobrien	* parse.y (simple_stmt): Use getdecls() to check for decl.
834750397Sobrien
834850397SobrienSat Feb 14 11:50:51 1998  Manfred Hollstein  <manfred@s-direktnet.de>
834950397Sobrien
835050397Sobrien	* Make-lang.in (DEMANGLER_INSTALL_NAME, DEMANGLER_CROSS_NAME): New
835150397Sobrien	macros.
835250397Sobrien	(c++.install-common): Install c++filt properly as native or as cross
835350397Sobrien	variant.
835450397Sobrien	(c++.uninstall): Add c++filt.
835550397Sobrien
835650397SobrienFri Feb 13 14:55:37 1998  Jason Merrill  <jason@yorick.cygnus.com>
835750397Sobrien
835850397Sobrien	* call.c (standard_conversion): Fix multi-level ptr conversions.
835950397Sobrien
836050397SobrienFri Feb 13 14:06:22 1998  Mike Stump  <mrs@wrs.com>
836150397Sobrien
836250397Sobrien	* init.c (build_new): Propagate error_mark_node up.
836350397Sobrien
836450397SobrienFri Feb 13 13:24:32 1998  Jason Merrill  <jason@yorick.cygnus.com>
836550397Sobrien
836652284Sobrien	* parse.y (simple_stmt): If the condition isn't a declaration,
836750397Sobrien	start the controlled block after the test.
836850397Sobrien
836950397SobrienFri Feb 13 02:26:10 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
837050397Sobrien
837150397Sobrien	* call.c (build_over_call): Convert builtin abs, labs and fabs to
837250397Sobrien	tree-codes.
837350397Sobrien	* decl.c (init_decl_processing): Re-enable abs, labs and fabs as
837450397Sobrien	builtins.
837550397Sobrien
837650397SobrienFri Feb 13 01:36:42 1998  Jason Merrill  <jason@yorick.cygnus.com>
837750397Sobrien
837850397Sobrien	* call.c (standard_conversion): A BASE_CONV replaces an RVALUE_CONV.
837952284Sobrien
838050397SobrienFri Feb 13 00:21:59 1998  Jason Merrill  <jason@yorick.cygnus.com>
838150397Sobrien
838250397Sobrien	* cp-tree.h: Add access_protected_virtual_node.
838350397Sobrien	* class.c (init_class_processing): Initialize it.
838450397Sobrien	* decl.c (xref_basetypes): Use it.
838550397Sobrien	* parse.y (base_class_access_list): Likewise.
838650397Sobrien
838750397Sobrien	* Make-lang.in (DEMANGLER_PROG): Add $(exeext).
838850397Sobrien	(c++.install-common): Install c++filt.
838950397Sobrien
839050397SobrienThu Feb 12 12:46:51 1998  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
839150397Sobrien
839250397Sobrien	* decl.c (shadow_tag): Give error for typedef-ing built-in types.
839350397Sobrien
839450397SobrienWed Feb 11 23:28:05 1998  Mark Mitchell  <mmitchell@usa.net>
839550397Sobrien
839650397Sobrien	* call.c (reference_binding): Use comptypes when comparing
839750397Sobrien	TYPE_MAIN_VARIANTS to handle non-canonical array/index types.
839850397Sobrien
839950397SobrienWed Feb 11 16:42:04 1998  Mark Mitchell  <mmitchell@usa.net>
840050397Sobrien
840150397Sobrien	* tree.c (is_overloaded_fn): Use really_overloaded_fn.
840250397Sobrien	(really_overloaded_fn): Move check here from is_overloaded_fn.
840350397Sobrien	(get_first_fn): Use really_overloaded_fn and is_overloaded_fn.
840450397Sobrien
840550397SobrienWed Feb 11 15:54:18 1998  Mark Mitchell  <mmitchell@usa.net>
840650397Sobrien
840750397Sobrien	* typeck.c (build_ptrmemfunc): Type-check pointer-to-member
840850397Sobrien	conversions.
840952284Sobrien
841050397SobrienMon Feb  9 22:23:31 1998  Mark Mitchell  <mmitchell@usa.net>
841150397Sobrien
841250397Sobrien	* cp-tree.h (push_template_decl): Return the decl passed in, or an
841350397Sobrien	equivalent duplicate.
841452284Sobrien	* decl.c (pushtag): Use the return value from push_template_decl.
841550397Sobrien	(duplicate_decls): When duplicating a template declaration, merge
841652284Sobrien	the DECL_TEMPLATE_RESULTs as well.
841750397Sobrien	(make_implicit_typename): Don't try to dive into typename types to
841818334Speter	find a context for making a new implicit typename.
841950397Sobrien	(start_decl): Use the return value from push_template_decl.
842018334Speter	(grokdeclarator): Complain about declarations list `const operator
842150397Sobrien	int'.  Since we don't correctly handle in-class initializations of
842218334Speter	non-static data members, complain about this (now illegal)
842350397Sobrien	practice.  Issue an error for initializations of non-const statics
842418334Speter	since that is illegal as well, and since we don't handle that case
842550397Sobrien	correctly either.
842618334Speter	(start_function): Use the return value from push_template_decl.
842750397Sobrien	(start_method): Likewise.
842850397Sobrien	* decl2.c (grokfield): Likewise.  Since the change to
842952284Sobrien	grokdeclarator ensures that all initialized fields are in fact
843018334Speter	static, remove a redundant test for TREE_PUBLIC.
843150397Sobrien	* parse.y (initlist): Disable labeled initializers since they do
843218334Speter	not work as per the documentation, and since they do not use the
843352284Sobrien	same syntax as the C front end.
843452284Sobrien	* pt.c (push_template_decl): Return the decl passed in, or an
843550397Sobrien	equivalent duplicate.
843650397Sobrien	(lookup_template_class): When searching in a nested context,
843752284Sobrien	use the right arguments.
843850397Sobrien	(uses_template_parms): Handle the DECL_INITIAL for a CONST_DECL.
843918334Speter	* typeck.c (build_component_ref): Assign the correct type to the
844050397Sobrien	result of build_vfn_ref.
844150397Sobrien
844252284SobrienTue Feb 10 23:56:46 1998  Jason Merrill  <jason@yorick.cygnus.com>
844318334Speter
844450397Sobrien	* pt.c (convert_nontype_argument): Fix typo.
844518334Speter	(check_explicit_specialization): Allow old-style specialization
844650397Sobrien	of class template members.
844750397Sobrien
844818334SpeterTue Feb 10 20:36:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
844950397Sobrien			  Manfred Hollstein  <manfred@s-direktnet.de>
845018334Speter
845150397Sobrien	* decl.c (grokdeclarator): Use DECL_USE_TEMPLATE instead
845218334Speter	when deciding to override DECL_ASSEMBLER_NAME.
845350397Sobrien
845418334SpeterTue Feb 10 15:30:55 1998  Andrew MacLeod  <amacleod@torpedo.to.cygnus.com>
845550397Sobrien
845618334Speter	* decl2.c (lang_f_options): Add -fsquangle to option processing list.
845750397Sobrien	* cp-tree.h (flag_do_squangling): Add declaration.
845818334Speter	* lang-options.h: Add -fsquangle and -fno-squangle.
845950397Sobrien	* method.c: Add macros and static variables for squangling.
846050397Sobrien	(build_overload_name): Rename to build_mangled_name, add logic for B
846150397Sobrien	compression, and split into process_modifiers and
846250397Sobrien	process_overload_item.
846318334Speter	(process_modifiers): New function, to handle constant, reference,
846450397Sobrien	and pointer types.
846518334Speter	(process_overload_item): New function, handles issue of type codes.
846650397Sobrien	(build_overload_name): New function, start squangling and call
846750397Sobrien	build_mangled_name.
846850397Sobrien	(ALLOCATE_TYPEVEC, DEALLOCATE_TYPEVEC): Remove macro and expand inline.
846950397Sobrien	(start_squangling): New function to initialize squangling structs.
847050397Sobrien	(end_squangling): New function to destroy squangling structs.
847150397Sobrien	(nrepeats): Rename variable to Nrepeats.
847250397Sobrien	(issue_nrepeats): New function for issuing 'n' type repeats.
847352284Sobrien	(check_ktype): New function to check for type K name compression.
847450397Sobrien	(build_overload_nested_name): Add a check for K name compression.
847518334Speter	(build_qualified_name): Add a check for K name compression and don't
847650397Sobrien	use DECL_ASSEMBLER_NAME when squangling is on.
847718334Speter	(check_btype): New function, checks for B type compression.
847850397Sobrien	(build_static_name, build_decl_overload_real): Initiate squangling.
847918334Speter	(build_typename_overload, build_overload_with_type): Initiate
848052284Sobrien	squangling
848150397Sobrien
848250397SobrienSun Feb  8 23:47:38 1998  scott snyder  <sss@d0linux01.fnal.gov>
848350397Sobrien
848450397Sobrien	* method.c (make_thunk): Avoid name buffer overflow.
848518334Speter
848650397SobrienSat Feb  7 16:48:54 1998  Jason Merrill  <jason@yorick.cygnus.com>
848718334Speter
848850397Sobrien	* pt.c (instantiate_decl): Call cp_finish_decl for vars even if we
848918334Speter	don't define them yet.
849050397Sobrien
849118334Speter	* parse.y (nomods_initdcl0): Add constructor_declarator case.
849250397Sobrien
849318334SpeterFri Feb  6 21:32:25 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
849450397Sobrien
849518334Speter	* config-lang.in (diff_excludes): Use basename only.
849652284Sobrien
849750397SobrienThu Feb  5 19:10:40 1998  Jason Merrill  <jason@yorick.cygnus.com>
849818334Speter
849950397Sobrien	* tinfo2.cc: Add tinfo for signed char.
850018334Speter
850150397SobrienThu Feb  5 14:38:23 1998  Mike Stump  <mrs@wrs.com>
850250397Sobrien
850352284Sobrien	* search.c (compute_access): Handle protected constructors in derived
850450397Sobrien	classes as accessible.
850518334Speter
850650397SobrienWed Feb  4 01:26:49 1998  Jason Merrill  <jason@yorick.cygnus.com>
850718334Speter
850850397Sobrien	* expr.c (cplus_expand_expr, PCC_STATIC_STRUCT_RETURN code):
850918334Speter	Call convert_from_reference sooner.
851050397Sobrien
851118334SpeterTue Feb  3 23:50:52 1998  Mark Mitchell  <mmitchell@usa.net>
851250397Sobrien
851350397Sobrien	* cvt.c (ocp_convert): Obtain the constant values from constant
851450397Sobrien	decls even if the destination type is the same as the type of the
851550397Sobrien	decl.
851618334Speter
851750397Sobrien	* decl2.c (finish_file): Make sure that static inlines with
851850397Sobrien	definitions are not marked DECL_EXTERNAL before returning.
851918334Speter
852050397SobrienTue Feb  3 22:43:42 1998  Jason Merrill  <jason@yorick.cygnus.com>
852118334Speter
852250397Sobrien	* decl.c: Lose arg_looking_for_template.
852318334Speter	(lookup_name_real): Likewise.
852450397Sobrien	* parse.y: Lose processing_template_arg, template_arg1.
852518334Speter	(primary): Likewise.
852650397Sobrien	* spew.c (yylex): Set lastiddecl for PTYPENAMEs, too.
852750397Sobrien
852818334SpeterTue Feb  3 22:04:01 1998  Kriang Lerdsuwanakij  <lerdsuwa@scf.usc.edu>
852950397Sobrien
853018334Speter	* error.c (dump_decl): Fix type of default arguments for template
853150397Sobrien	template parameters and nontype template parameters.
853252284Sobrien	* parse.y (template_parm): Handle invalid default template
853350397Sobrien	template arguments here.
853418334Speter
853550397Sobrien	* parse.y (template_parm): Use template_arg instead of PTYPENAME
853618334Speter	for default template template argument.
853750397Sobrien	* pt.c (coerce_template_parms): Merge default template argument
853850397Sobrien	codes.  Can treat RECORD_TYPE as template name if it is implicitly
853918334Speter	created.  Fix argument index in error message.
854050397Sobrien	* typeck.c (comptypes): Merge template argument comparison codes in
854118334Speter	TEMPLATE_TEMPLATE_PARM and RECORD_TYPE.
854250397Sobrien
854350397SobrienTue Jan  6 01:42:44 1998  Mumit Khan  <khan@xraylith.wisc.edu>
854450397Sobrien
854550397Sobrien	* lex.c (file_name_nondirectory): Also check for '/'.
854650397Sobrien
854750397SobrienMon Feb  2 11:24:22 1998  Mark Mitchell  <mmitchell@usa.net>
854850397Sobrien
854950397Sobrien	* parse.y (primary): Deal with statement-expressions in
855050397Sobrien	templates.
855150397Sobrien	* pt.c (tsubst_copy): Handle BIND_EXPR.
855250397Sobrien	* tree.c (mapcar): Likewise.
855350397Sobrien
855450397Sobrien	* call.c (add_template_candidate_real): Pass extra parameter to
855550397Sobrien	fn_type_unification.
855650397Sobrien	* cp-tree.h (fn_type_unification): Add parameter.
855750397Sobrien	* pt.c (fn_type_unification): Add additional parameter to deal with
855850397Sobrien	static member functions.
855950397Sobrien	(get_bindings): Deal with static member functions.
856050397Sobrien
856150397Sobrien	* cp-tree.h (DECL_NONSTATIC_MEMBER_FUNCTION_P): New macro.
856250397Sobrien	(revert_static_member_fn): Declare.
856350397Sobrien	* decl.c (revert_static_member_fn): Remove declaration.  Change
856450397Sobrien	linkage from internal to external.
856550397Sobrien	(cp_finish_decl): Deal with virtual functions in classes local to
856650397Sobrien	template functions.
856750397Sobrien	* decl2.c (finish_file): Don't forget to emit increment/decrement
856850397Sobrien	expressions in initializers for file-scope variables.
856950397Sobrien	* parse.y (typename_sub2): If the typename doesn't names a
857050397Sobrien	template, rather than a type, issue an error message.
857152284Sobrien	* pt.c (check_explicit_specialization): Handle specializations of
857250397Sobrien	static member functions.
857318334Speter	(coerce_template_parms): Handle offset references to lists of
857450397Sobrien	member functions.
857550397Sobrien	* search.c (note_debug_info_needed): Don't crash when handed a
857650397Sobrien	type which is being defined.
857718334Speter	* typeck.c (complete_type): Don't crash when handed NULL_TREE;
857850397Sobrien	that can happen with some illegal code.
857950397Sobrien
858018334SpeterMon Feb  2 00:57:38 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
858150397Sobrien
858250397Sobrien	* call.c (user_harshness): Initialize `code' to 0.
858318334Speter	(build_method_call): Initialize `candidates', `cp' and `len' to 0.
858452284Sobrien	(null_ptr_cst_p): Add parentheses around && within ||.
858518334Speter	(standard_conversion): Likewise.
858650397Sobrien	(z_candidate): Likewise.
858750397Sobrien	(build_user_type_conversion_1): Initialize `args' to NULL_TREE.
858850397Sobrien	(build_object_call): Likewise for `mem_args'.
858950397Sobrien	(build_new_op): Likewise for `mem_arglist'.  Add `return' from
859052284Sobrien	default case in enumeration switch.
859152284Sobrien
859250397Sobrien	* class.c (build_vtable_entry): Add explicit braces to avoid
859352284Sobrien	ambiguous `else'.
859452284Sobrien	(build_class_init_list): Likewise.
859550397Sobrien	(finish_struct_1): Initialize `width' to 0.
859652284Sobrien	(instantiate_type): Initialize `name' to NULL_TREE.  Add
859750397Sobrien	explicit braces to avoid ambiguous `else'.
859850397Sobrien
859950397Sobrien	* cvt.c (convert_to_aggr): Add explicit braces to avoid ambiguous
860050397Sobrien	`else'.
860150397Sobrien
860250397Sobrien	* decl.c (grok_reference_init): Eliminate unused parameter, all
860350397Sobrien	callers changed.
860450397Sobrien	(record_builtin_type): Initialize `tdecl' to NULL_TREE.
860550397Sobrien	(init_decl_processing): Initialize `vb_off_identifier' to NULL_TREE.
860650397Sobrien	(cp_finish_decl): Initialize `ttype' to NULL_TREE.
860750397Sobrien	(grokdeclarator): Add parentheses around && within ||.  Add
860850397Sobrien	explicit braces to avoid ambiguous `else'.
860952284Sobrien	(grokparms): Initialize `type' to NULL_TREE.
861050397Sobrien	(xref_tag): Remove unused label `just_return'.
861118334Speter	(finish_enum): Initialize `minnode' and `maxnode' to NULL_TREE.
861250397Sobrien	(finish_function): Initialize `cond' and `thenclause' to NULL_TREE.
861318334Speter	(hack_incomplete_structures): Add parentheses around assignment
861450397Sobrien	used as truth value.
861518334Speter
861650397Sobrien	* decl2.c (coerce_delete_type): Hide definition of `e3'.
861718334Speter
861850397Sobrien	* error.c: Include <stdlib.h>.
861950397Sobrien	(dump_expr): Change the type of `i' to size_t.  Remove unused
862018334Speter	label `error'.
862150397Sobrien
862218334Speter	* except.c (init_exception_processing): Remove unused variable `d'.
862350397Sobrien	(expand_throw): Likewise for `label'.
862418334Speter
862550397Sobrien	* friend.c (add_friends): Add explicit braces to avoid ambiguous
862618334Speter	`else'.
862750397Sobrien
862818334Speter	* init.c (sort_member_init): Initialize `last_field' to NULL_TREE.
862950397Sobrien	(sort_base_init): Likewise for `binfo'.
863018334Speter	(expand_member_init): Likewise for `rval'.
863150397Sobrien	(build_member_call): Add parentheses around assignment used as
863218334Speter	truth value.
863350397Sobrien	(build_offset_ref): Add explicit braces to avoid ambiguous `else'.
863450397Sobrien	(build_new): Initialize `nelts' to NULL_TREE.  Initialize
863518334Speter	`old_immediate_size_expand' to 0.
863650397Sobrien	(build_new_1): Initialize `nelts' and `alloc_node' to NULL_TREE.
863718334Speter	(build_vec_delete_1): Remove unused variable `block'.
863850397Sobrien	(expand_vec_init): Initialize `itype' to NULL_TREE.
863950397Sobrien
864018334Speter	* lex.c: Include <strings.h> if we don't have <string.h>.  Protect
864150397Sobrien	declaration of `index' and `rindex' with autoconf macros.
864218334Speter	(reinit_parse_for_expr): Remove unused variables
864350397Sobrien	`look_for_semicolon' and `look_for_lbrac'.
864450397Sobrien	(cons_up_default_function): Initialize `args' to NULL_TREE.
864552284Sobrien	(readescape): Initialize `firstdig' to 0.
864618334Speter	(real_yylex): Add parentheses around assignment used as truth value.
864750397Sobrien
864850397Sobrien	* method.c: Include <strings.h> if we don't have <string.h>.
864918334Speter	Protect declaration of `index' with autoconf macro.
865050397Sobrien
865118334Speter	* parse.y (primary): Add explicit braces to avoid ambiguous `else'.
865250397Sobrien	Initialize `type' to NULL_TREE.
865350397Sobrien	(structsp): Remove unused variable `id'.
865452284Sobrien
865550397Sobrien	* pt.c (coerce_template_parms): Add explicit braces to avoid
865650397Sobrien	ambiguous `else'.
865718334Speter	(lookup_template_class): Initialize `template' to NULL_TREE.
865850397Sobrien	(instantiate_class_template): Remove unused variable `name' and `e'.
865918334Speter	(tsubst): Likewise for `i'.  Initialize `last' to NULL_TREE.
866050397Sobrien	(do_poplevel): Initialize `saved_warn_unused' to 0.
866150397Sobrien	(type_unification): Remove unused varable `parm'.
866252284Sobrien	(unify): Likewise for `j'.
866350397Sobrien
866418334Speter	* repo.c (init_repo): Add parentheses around assignment used as
866552284Sobrien	truth value.
866650397Sobrien	(finish_repo): Remove unused varable `p'.
866752284Sobrien
866850397Sobrien	* search.c (get_binfo): Initialize `type' to NULL_TREE.
866950397Sobrien	(get_base_distance): Likewise.
867052284Sobrien	(lookup_field): Initialize `rval_binfo_h', `type', `basetype_path'
867150397Sobrien	and `new_v' to NULL_TREE.
867218334Speter	(lookup_fnfields): Likewise for `rval_binfo_h'.
867352284Sobrien	(breadth_first_search): Add parentheses around assignment used as
867418334Speter	truth value.
867550397Sobrien	(get_template_base): Initialize `type' to NULL_TREE.
867618334Speter
867750397Sobrien	* sig.c (append_signature_fields): Initialize `last_mfptr' to
867818334Speter	NULL_TREE.
867950397Sobrien	(build_signature_table_constructor): Likewise for
868052284Sobrien	`last_rhs_field', `pfn' and `vt_off'.
868150397Sobrien	(build_sigtable): Likewise for `init'.
868250397Sobrien
868318334Speter	* tree.c (break_out_calls): Initialize `t2' to NULL_TREE.
868450397Sobrien	(propagate_binfo_offsets): Likewise for `delta'.
868552284Sobrien	(hash_tree_cons): Initialize hashcode to 0.
868650397Sobrien	(can_free): Likewise for `size'.
868750397Sobrien	(cp_tree_equal): Add explicit braces to avoid ambiguous `else'.
868850397Sobrien
868950397Sobrien	* typeck.c (convert_sequence): Hide prototype.
869018334Speter	(common_type): Add explicit braces to avoid ambiguous `else'.
869152284Sobrien	(comp_target_types): Likewise.
869250397Sobrien	(build_x_function_call): Initialize `ctypeptr' to NULL_TREE.
869350397Sobrien	(build_function_call_real): Add explicit braces to avoid ambiguous
869450397Sobrien	`else'.
869550397Sobrien	(convert_arguments): Initialize `called_thing' to 0.
869650397Sobrien	(convert_for_initialization): Initialize `savew' and `savee' to 0.
869750397Sobrien
869850397Sobrien	* typeck2.c (incomplete_type_error): Initialize `errmsg' to 0.
869950397Sobrien	(digest_init): Initialize `old_tail_contents' to NULL_TREE.
870050397Sobrien	(build_x_arrow): Likewise for `last_rval'.
870150397Sobrien
870250397Sobrien	* xref.c (GNU_xref_decl): Initialize `cls' to 0.
870350397Sobrien
870450397SobrienSun Feb  1 12:45:34 1998  J"orn Rennecke  <amylaar@cygnus.co.uk>
870550397Sobrien
870650397Sobrien	* decl.c (init_decl_processing): Use set_sizetype.
870750397Sobrien	* decl2.c (sizetype): Don't declare.
870850397Sobrien	* typeck.c (c_sizeof): Convert result of *_DIV_EXPR to sizetype.
870918334Speter	(c_sizeof_nowarn, build_binary_op_nodefault): Likewise.
871050397Sobrien	(build_component_addr, unary_complex_lvalue): Likewise.
871118334Speter	* rtti.c (expand_class_desc): Likewise.
871250397Sobrien	* class.c (get_vfield_offset): Likewise.
871350397Sobrien
871450397SobrienThu Jan 29 10:39:30 1998  Mark Mitchell  <mmitchell@usa.net>
871550397Sobrien
871650397Sobrien	* pt.c (convert_nontype_argument): Move check for is_overloaded_fn
871750397Sobrien	early to avoid bogus error.  Handle overloaded function
871850397Sobrien	names provided as template arguments correctly.
871950397Sobrien	(coerce_template_parms): Don't mishandle overloaded functions when
872050397Sobrien	dealing with template template parameters.
872118334Speter	(lookup_template_class): Issue an error message, rather than
872250397Sobrien	crashing, when the TYPE_DECL provided is not a template type.
872350397Sobrien
872450397SobrienWed Jan 28 23:14:44 1998  Jason Merrill  <jason@yorick.cygnus.com>
872550397Sobrien
872650397Sobrien	* class.c (instantiate_type): Don't just return a known type if
872750397Sobrien	it's wrong.
872818334Speter
872950397SobrienWed Jan 28 11:04:07 1998  Mark Mitchell  <mmitchell@usa.net>
873050397Sobrien
873118334Speter	* class.c (instantiate_type): Remove handling of FUNCTION_DECL
873250397Sobrien	since that code could never be reached.
873350397Sobrien
873450397Sobrien	* error.c (dump_decl): Avoid aborting in the midst of printing an
873550397Sobrien	error message about an illegal template declaration.
873650397Sobrien
873750397Sobrien	* parse.y (structsp): Print an error message, rather than crashing,
873850397Sobrien	when a class-head does not name a class.
873950397Sobrien
874052284Sobrien	* pt.c (convert_nontype_argument):  Allow REAL_TYPE and COMPLEX_TYPE
874150397Sobrien	template arguments as a g++ extension.
874250397Sobrien
874350397Sobrien	* cp-tree.def (ALIGNOF_EXPR): New tree code.
874450397Sobrien	* decl2.c (grok_alignof): If processing_template_decl, just store
874518334Speter	the expression.
874650397Sobrien	* typeck.c (c_alignof): Likewise.
874718334Speter	* decl2.c (build_expr_from_tree): Handle ALIGNOF_EXPR.
874850397Sobrien	* error.c (dump_expr): Likewise.
874950397Sobrien	* pt.c (tsubst_copy): Likewise.
875052284Sobrien	* tree.c (cp_tree_equal): Likewise.
875118334Speter	* pt.c (uses_template_parms): Correctly determine whether or not a
875250397Sobrien	SIZEOF_EXPR/ALIGNOF_EXPR uses template parameters so that constant
875350397Sobrien	folding can be done.
875418334Speter
875550397Sobrien	* cp-tree.h (grok_enum_decls): Remove type parameter.
875650397Sobrien	* decl.c (grok_enum_decls): Likewise.
875718334Speter	* decl2.c (grok_x_components): Call grok_enum_decls
875850397Sobrien	unconditionally, since it will do nothing if there is no
875950397Sobrien	current_local_enum.  Use the new calling sequence.
876050397Sobrien	* pt.c (tsubst_enum): Use the new calling sequence for
876150397Sobrien	grok_enum_decls.
876250397Sobrien
876350397Sobrien	* decl.c (start_function): Make member functions of local classes
876450397Sobrien	in extern inline functions have comdat linkage here...
876550397Sobrien	(grokdeclarator): Rather than here.
876650397Sobrien
876750397SobrienWed Jan 28 10:55:47 1998  Jason Merrill  <jason@yorick.cygnus.com>
876850397Sobrien
876918334Speter	* pt.c (convert_nontype_argument): Use decl_constant_value.
877050397Sobrien
877150397SobrienTue Jan 27 16:42:21 1998  Mark Mitchell  <mmitchell@usa.net>
877250397Sobrien
877350397Sobrien	* call.c (add_template_candidate_real): New function.
877450397Sobrien	(add_template_candidate): Use it.
877550397Sobrien	(add_template_conv_candidate): Likewise.
877652284Sobrien	(joust): Pass extra argument to more_specialized.
877718334Speter	* class.c (instantiate_type): Handle a single FUNCTION_DECL.
877850397Sobrien	(is_local_class): Remove.
877950397Sobrien	(finish_struct): Check TI_PENDING_SPECIALIZATION_FLAG.
878018334Speter	* cp-tree.h (is_local_class): Remove.
878150397Sobrien	(perform_array_to_pointer_conversion): Likewise.
878250397Sobrien	(finish_member_template_decl): Add.
878350397Sobrien	(check_explicit_specialization): Return a tree, not an int.
878418334Speter	(more_specialized): Take additional argument.
878550397Sobrien	(get_bindings): Likewise.
878650397Sobrien	(TI_PENDING_SPECIALIZATION_FLAG): New macro.
878750397Sobrien	* cvt.c (perform_qualification_conversions): Use comp_ptr_ttypes.
878850397Sobrien	(perform_array_to_pointer_conversion): Remove.
878950397Sobrien	* decl.c (saved_scope): Add processing_specialization,
879050397Sobrien	processing_explicit_instantiation fields.
879150397Sobrien	(maybe_push_to_top_level): Save them.
879250397Sobrien	(pop_from_top_level): Restore them.
879318334Speter	(grokfndecl): Use new return value from
879450397Sobrien	check_explicit_specialization.
879550397Sobrien	(start_decl): Don't check flag_guiding_decls before pushing
879650397Sobrien	decls.
879752284Sobrien	(cp_finish_decl): Remove previous (bogus) change.
879852284Sobrien	(grok_declarator): Use decl_function_context rather than
879950397Sobrien	is_local_class.
880050397Sobrien	* decl2.c (finish_file): Pass extra argument to get_bindings.
880150397Sobrien	(build_expr_from_tree): Let build_x_component_ref check
880250397Sobrien	validity of arguments rather than doing it here.
880350397Sobrien	* lex.c (cons_up_default_function): Remove code fooling with
880450397Sobrien	processing_specialization, processing_explicit_instantiation
880550397Sobrien	flags, as that is now done in {maybe_push_top,pop_from}_top_level.
880618334Speter	* method.c (build_overload_identifier): Mangle local classes in
880750397Sobrien	template functions correctly.
880850397Sobrien	* parse.y (finish_member_template_decl): Move to pt.c.
880950397Sobrien	* pt.c (finish_member_template_decl): Moved here from parse.y.
881050397Sobrien	(print_candidates): New function.
881150397Sobrien	(determine_specialization): Change interface.  Properly look for
881218334Speter	most specialized versions of template candidates.
881350397Sobrien	(check_explicit_specialization): Fully process explicit
881450397Sobrien	instantiations.
881550397Sobrien	(push_template_decl): Avoid looking at CLASSTYPE fields in
881650397Sobrien	FUNCTION_DECLS.
881750397Sobrien	(determine_overloaded_function): Remove.
881852284Sobrien	(convert_nontype_argument): Change name from
881950397Sobrien	convert_nontype_parameter.  Use determine_overloaded_function
882050397Sobrien	instead of instantiate_type.
882150397Sobrien	(mangle_class_name_for_template): Handle type contexts as well as
882250397Sobrien	function contexts.
882350397Sobrien	(classtype_mangled_name): Likewise.
882450397Sobrien	(lookup_template_class): Likewise.
882550397Sobrien	(tsubst): Likewise.
882650397Sobrien	(more_specialized): Take explict template arguments as a
882718334Speter	parameter.
882850397Sobrien	(most_specialized): Likewise.
882950397Sobrien	(get_bindings): Likewise.  Check that return types match before
883050397Sobrien	proclaiming a function a match.
883118334Speter	(do_decl_instantiation): Remove code searching for function to
883250397Sobrien	instantiate; that is now done in check_explicit_specialization.
883318334Speter	(add_maybe_template): Pass extra argument to get_bindings.
883452284Sobrien	* tree.c (really_overloaded_fn): Use is_overloaded_fn to simplify
883518334Speter	implementation.
883650397Sobrien	* typeck.c (build_component_ref): Check for invalid arguments.
883750397Sobrien
883850397SobrienTue Jan 27 01:44:02 1998  Jason Merrill  <jason@yorick.cygnus.com>
883950397Sobrien
884050397Sobrien	* expr.c (cplus_expand_expr, AGGR_INIT_EXPR): Don't check that
884150397Sobrien	return_target and call_target are equivalent.
884250397Sobrien
884318334Speter	* pt.c (type_unification_real): Just accept function parms that
884450397Sobrien	don't use any template parms.
884518334Speter
884650397SobrienSun Jan 25 03:30:00 1998  Jason Merrill  <jason@yorick.cygnus.com>
884750397Sobrien
884850397Sobrien	* decl.c (cp_finish_decl): When bailing on a comdat variable, also
884950397Sobrien	unset DECL_NOT_REALLY_EXTERN.
885050397Sobrien
885150397Sobrien	* parse.y (typename_sub*): Fix std::.
885250397Sobrien
885318334SpeterSat Jan 24 12:13:54 1998  Jason Merrill  <jason@yorick.cygnus.com>
885450397Sobrien
885518334Speter	* error.c (dump_decl): Fix type default template args.
885650397Sobrien	(dump_type): Hand TEMPLATE_DECL off to dump_decl.
885752284Sobrien
885818334SpeterFri Jan 23 18:34:37 1998  Mumit Khan  <khan@xraylith.wisc.edu>
885950397Sobrien
886018334Speter	* lex.c (DIR_SEPARATOR): Define to be '/' if not already defined.
886150397Sobrien	(file_name_nondirectory): Use.
886250397Sobrien
886352284SobrienWed Jan 21 10:29:57 1998  Kriang Lerdsuwanakij  <lerdsuwa@scf.usc.edu>
886450397Sobrien
886550397Sobrien	* pt.c (coerce_template_parms): Don't access elements of ARGLIST
886618334Speter	that are not really present.  Substitute default arguments in
886750397Sobrien	template template arguments.  Correctly convert TEMPLATE_DECL to
886850397Sobrien	TEMPLATE_TEMPLATE_PARM.
886918334Speter	(comp_template_args): TEMPLATE_DECL and TEMPLATE_TEMPLATE_PARM
887050397Sobrien	are no longer treated specially here.
887150397Sobrien	* parse.y (template_template_parm): Fix copy error.
887252284Sobrien	* decl.c (grokdeclarator): Warn about missing `typename' for nested
887350397Sobrien	type created from template template parameters.
887450397Sobrien	* parse.y (bad_parm): Likewise
887550397Sobrien
887650397Sobrien	* class.c (finish_struct): Handle TEMPLATE_TEMPLATE_PARM.
887750397Sobrien	(push_nested_class): Likewise.
887850397Sobrien	* cp-tree.def (TEMPLATE_TEMPLATE_PARM): New tree code.
887950397Sobrien	* cp-tree.h (DECL_TEMPLATE_TEMPLATE_PARM_P): New macro.
888050397Sobrien	(copy_template_template_parm): Declare.
888150397Sobrien	* decl.c (arg_looking_for_template): New variable.
888250397Sobrien	(lookup_name_real): Handle TEMPLATE_TEMPLATE_PARM.
888350397Sobrien	Try to return TEMPLATE_DECL or TEMPLATE_TEMPLATE_PARM
888452284Sobrien	node if arg_looking_for_template is nonzero.
888550397Sobrien	(pushdecl): Handle TEMPLATE_TEMPLATE_PARM.
888650397Sobrien	(grok_op_properties, xref_tag, xref_basetypes): Likewise.
888750397Sobrien	(grokdeclarator): Handle TEMPLATE_DECL.
888850397Sobrien	* decl2.c (constructor_name_full): Handle TEMPLATE_TEMPLATE_PARM.
888950397Sobrien	* error.c (dump_type): Add TEMPLATE_DECL and TEMPLATE_TEMPLATE_PARM.
889050397Sobrien	(dump_type_prefix, dump_type_suffix): Handle TEMPLATE_TEMPLATE_PARM.
889150397Sobrien	(dump_decl): Handle unnamed template type parameters.
889218334Speter	Handle template template parameters.
889350397Sobrien	(dump_function_name): Handle template template parameters.
889450397Sobrien	* init.c (is_aggr_typedef, is_aggr_type, get_aggr_from_typedef):
889550397Sobrien	Handle TEMPLATE_TEMPLATE_PARM.
889652284Sobrien	* method.c (build_template_template_parm_names): New function.
889750397Sobrien	(build_template_parm_names): Handle TEMPLATE_DECL.
889818334Speter	(build_overload_nested_name, build_overload_name):
889950397Sobrien	Handle TEMPLATE_TEMPLATE_PARM.
890018334Speter	* parse.y (maybe_identifier): New nonterminal.
890150397Sobrien	(template_type_parm): Use it.
890218334Speter	(template_template_parm, template_arg1): New nonterminal.
890350397Sobrien	(template_parm): Add template_template_parm rules.
890450397Sobrien	(template_arg): Set processing_template_arg.
890550397Sobrien	(template_arg1): Rules moved from template_arg.
890650397Sobrien	(primary, nonnested_type): Set arg_looking_for_template if we are
890750397Sobrien	processing template arguments.
890850397Sobrien	* pt.c (begin_member_template_processing): Handle TEMPLATE_DECL.
890950397Sobrien	(process_template_parm): Handle template template parameters.
891050397Sobrien	(coerce_template_parms, comp_template_args): Likewise.
891150397Sobrien	(mangle_class_name_for_template, lookup_template_class): Likewise.
891250397Sobrien	(uses_template_parms): Handle TEMPLATE_DECL and
891350397Sobrien	TEMPLATE_TEMPLATE_PARM.
891450397Sobrien	(current_template_args): Handle TEMPLATE_DECL.
891550397Sobrien	(tsubst, tsubst_copy, unify): Handle TEMPLATE_TEMPLATE_PARM.
891650397Sobrien	* search.c (dfs_walk, dfs_record_inheritance):
891750397Sobrien	Handle TEMPLATE_TEMPLATE_PARM.
891850397Sobrien	* tree.c (copy_template_template_parm): New function.
891950397Sobrien	(mapcar): Handle TEMPLATE_TEMPLATE_PARM.
892050397Sobrien	* typeck.c (comptypes): Handle TEMPLATE_TEMPLATE_PARM.
892150397Sobrien
892250397SobrienMon Jan 19 22:40:03 1998  Mark Mitchell  <mmitchell@usa.net>
892350397Sobrien
892452284Sobrien	* decl.c (start_decl): Don't allow duplicate definitions of static
892550397Sobrien	data members.
892652284Sobrien
892750397Sobrien	* call.c (build_user_type_conversion_1): Handle user-defined
892850397Sobrien	template conversion operators correctly.
892952284Sobrien
893050397Sobrien	* decl2.c (build_expr_from_tree): Issue an error message if the
893152284Sobrien	object in a COMPONENT_REF is a TEMPLATE_DECL.
893250397Sobrien
893350397Sobrien	* typeck.c (incomplete_type_error): Handle TEMPLATE_TYPE_PARMs.
893450397Sobrien
893552284Sobrien	* class.c (is_local_class): New function.
893650397Sobrien	* cp-tree.h (is_local_class): Declare it.
893750397Sobrien	(last_tree): Likewise.
893850397Sobrien	(begin_tree): Likewise.
893950397Sobrien	(end_tree): Likewise.
894050397Sobrien	(lookup_template_class): Change prototype.
894150397Sobrien	* decl.c (cp_finish_decl): Check for NULL where necessary.
894250397Sobrien	Consider FUNCTION_DECLS to declare objects with top-level binding,
894350397Sobrien	when calling make_decl_rtl.
894452284Sobrien	(grokdeclarator): Give members of local classes internal linkage.
894550397Sobrien	(start_function): Remove declaration of last_tree.
894652284Sobrien	(finish_function): Set flag_keep_inline_functions around call to
894750397Sobrien	rest_of_compilation if we are processing a member function in a
894850397Sobrien	local class.
894950397Sobrien	(start_method): Call push_template_decl for member functions of
895050397Sobrien	local classes in template functions.
895150397Sobrien	* decl2.c (import_export_decl): Don't give external linkage to
895250397Sobrien	instantiations of templates with internal linkage.
895350397Sobrien	* parse.y (last_tree): Remove declaration.
895450397Sobrien	(template_type): Pass extra parameter to lookup_template_class.
895550397Sobrien	(self_template_type): Likewise.
895650397Sobrien	(structsp): Move call to reset_specialization into left_curly.
895752284Sobrien	(left_curly): Call reset_specialization, and begin_tree.
895850397Sobrien	* pt.c (saved_trees): New variable.
895950397Sobrien	(mangle_class_name_for_template): Change prototype.  Use
896050397Sobrien	additional function context to name local classes in templates
896150397Sobrien	correctly.
896250397Sobrien	(classtype_mangled_name): Pass the context.
896350397Sobrien	(push_template_decl): Handle local classes and templates, and
896450397Sobrien	member functions for such classes.
896550397Sobrien	(convert_nontype_parameter): Fix handling of pointer-to-member
896650397Sobrien	constants.
896718334Speter	(lookup_template_class): Handle local classes in templates.
896850397Sobrien	(tsubst): Likewise.  Don't assume that template instantiations
896918334Speter	have external linkage; pay attention to the template declaration.
897052284Sobrien	(mark_decl_instantiated): Likewise.
897150397Sobrien	(begin_tree): New function.
897218334Speter	(end_tree): Likewise.
897350397Sobrien
897450397Sobrien	* decl.c (xref_basetypes): Don't call complete_type for basetypes
897518334Speter	that involve template parameters; that can lead to infinite
897650397Sobrien	recursion unnecessarily.
897718334Speter
897850397Sobrien	* pt.c (register_specialization): Do not register specializations
897950397Sobrien	that aren't ready to be registered yet.
898018334Speter	(check_explicit_specialization): Handle explicit specialization of
898150397Sobrien	constructors and destructors.
898218334Speter	(build_template_decl): New function.
898350397Sobrien	(push_template_delc): Handle out-of-class specializations of
898418334Speter	member templates.
898550397Sobrien
898650397Sobrien	* pt.c (check_explicit_specialization): Set up the template
898718334Speter	information before registering the specialization.
898852284Sobrien	(coerce_template_parms): Fix thinko.
898918334Speter	(tsubst): Handle specializations of member templates correctly.
899050397Sobrien
899150397Sobrien	* class.c (finish_struct_methods): Remove calls to
899218334Speter	check_explicit_specialization from here.
899350397Sobrien	(finish_struct): And insert them here.
899418334Speter	* cp-tree.h (perform_qualification_conversions): New function.
899550397Sobrien	(perform_array_to_pointer_conversion): Likewise.
899652284Sobrien	(begin_explicit_instantiation): Likewise.
899752284Sobrien	(end_explicit_instantiation): Likewise.
899850397Sobrien	(determine_specialization): Renamed from
899952284Sobrien	determine_explicit_specialization.
900050397Sobrien	(comp_template_parms): New function.
900150397Sobrien	(processing_explicit_instantiation): New variable.
900250397Sobrien	* cvt.c (perform_qualification_conversions): New function.
900350397Sobrien	(perform_array_to_pointer_conversion): Likewise.
900450397Sobrien	* decl.c (duplicate_decls): Don't consider template functions
900518334Speter	alike unless they have the same parameters.  Refine handling of
900650397Sobrien	instantiation/specialization mismatches.
900750397Sobrien	(start_decl): Don't call pushdecl for template specializations,
900850397Sobrien	since they don't affect overloading.
900950397Sobrien	(start_function): Likewise.
901050397Sobrien	(grokfndecl): Call check_explicit_specialization a little later.
901150397Sobrien	Don't call duplicate_decls for memberm template specializations.
901250397Sobrien	(grokdeclarator): Don't update template_count for classes that are
901350397Sobrien	themselves specializations.  Remove use of `2' as parameter to
901450397Sobrien	grokfndecl since that value isn't used.
901550397Sobrien	* lex.c (cons_up_default_function): Save and restore
901650397Sobrien	processing_explicit_instantiation around calls to grokfield.
901750397Sobrien	* parse.y (finish_member_template_decl): New function.
901850397Sobrien	(component_decl_1): Use it.
901950397Sobrien	(fn.def2): Likewise.
902052284Sobrien	(template_arg_list_opt): New nonterminal.
902150397Sobrien	(template_type): Use it.
902250397Sobrien	(self_template_type): Likewise.
902350397Sobrien	(template_id): Likewise.
902452284Sobrien	(object_template_id): Likewise.
902550397Sobrien	(notype_template_declarator): Likwise.
902650397Sobrien	(begin_explicit_instantiation): Likewise.
902750397Sobrien	(end_explicit_instantiation): Likewise.
902852284Sobrien	(explicit_instantiation): Use them.
902950397Sobrien	* pt.c (coerce_template_parms): Add parameters.
903050397Sobrien	(processing_explicit_instantiation): New variable.
903150397Sobrien	(convert_nontype_parameter): New function.
903250397Sobrien	(determine_overloaded_function): Likewise.
903350397Sobrien	(begin_explicit_instantiation): Likewise.
903450397Sobrien	(end_explicit_instantiation): Likewise.
903550397Sobrien	(retrieve_specialization): Likewise.
903650397Sobrien	(register_specialization): Likewise.
903750397Sobrien	(processing_explicit_specialization): Removed.
903850397Sobrien	(determine_specialization): Handle specializations of member
903950397Sobrien	functions of template class instantiations.
904050397Sobrien	(check_explicit_specialization): Refine to conform to standard.
904150397Sobrien	(comp_template_parms): New function.
904252284Sobrien	(coerce_template_parms): Call convert_nontype_parameter.
904350397Sobrien	(tsubst): Refine handling of member templates.  Use
904450397Sobrien	register_specialization.
904550397Sobrien	(instantiate_template): Use retrieve_specialization.
904652284Sobrien	(do_decl_instantiation): Likewise.
904750397Sobrien	(instantiate_decl): Likewise.
904850397Sobrien	(type_unification): Improve handling of explict template
904950397Sobrien	arguments.
905050397Sobrien	* tree.c (mapcar): Return error_mark_node, rather than aborting,
905118334Speter	on VAR_DECLS, FUNCTION_DECLS, and CONST_DECLS.
905250397Sobrien	* typeck.c (build_unary_op): Call determine_specialization, rather
905318334Speter	than determine_explicit_specialization.
905450397Sobrien
905550397SobrienMon Jan 19 13:18:51 1998  Jason Merrill  <jason@yorick.cygnus.com>
905618334Speter
905750397Sobrien	* cvt.c (build_up_reference): A TARGET_EXPR has side effects.
905850397Sobrien
905918334SpeterFri Jan 16 11:40:50 1998  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
906050397Sobrien
906150397Sobrien	* error.c (dump_decl): For enum tags, output the tag, not its value.
906252284Sobrien
906350397Sobrien1998-01-13  Brendan Kehoe  <brendan@cygnus.com>
906452284Sobrien
906550397Sobrien	* decl.c (init_decl_processing): Only call init_rtti_processing
906650397Sobrien	FLAG_RTTI is set.
906750397Sobrien
906850397SobrienMon Jan 12 01:35:18 1998  Jason Merrill  <jason@yorick.cygnus.com>
906950397Sobrien
907050397Sobrien	* init.c (build_new_1): Split out from build_new.
907152284Sobrien	(build_new): Just return a NEW_EXPR.
907250397Sobrien	* expr.c (cplus_expand_expr): Handle NEW_EXPR.
907350397Sobrien
907450397Sobrien	* decl2.c (get_temp_regvar): Tweak.
907550397Sobrien
907650397Sobrien	* cp-tree.h (TREE_CALLS_NEW): Comment out.
907750397Sobrien	* class.c (resolves_to_fixed_type_p): Remove use.
907850397Sobrien	* method.c (build_opfncall): Likewise.
907950397Sobrien	* call.c (build_new_op): Likewise.
908050397Sobrien
908150397SobrienWed Jan  7 23:47:13 1998  Jason Merrill  <jason@yorick.cygnus.com>
908250397Sobrien
908350397Sobrien	* exception.cc (__eh_alloc, __eh_free): New fns.
908450397Sobrien	(__cp_push_exception, __cp_pop_exception): Use them.
908550397Sobrien	(__uncatch_exception): Call terminate here if no exception.
908650397Sobrien	* except.c (build_terminate_handler): New fn.
908750397Sobrien	(expand_start_catch_block): Use it.
908850397Sobrien	(expand_exception_blocks): Likewise.
908950397Sobrien	(alloc_eh_object): New fn.
909050397Sobrien	(expand_throw): Use it.  Protect exception init with terminate.
909152284Sobrien	* typeck.c (build_modify_expr): Remove code that ignores trivial
909250397Sobrien	methods.
909350397Sobrien
909450397SobrienMon Dec 22 11:36:27 1997  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
909550397Sobrien
909652284Sobrien	* call.c (add_builtin_candidate): Add default case in enumeration
909750397Sobrien	switch.
909850397Sobrien	(build_new_op): Likewise.
909952284Sobrien	(convert_like): Likewise.
910050397Sobrien	* cvt.c (build_expr_type_conversion): Likewise.
910150397Sobrien	* tree.c (real_lvalue_p): Likewise.
910250397Sobrien	(lvalue_p): Likewise.
910352284Sobrien	(cp_tree_equal): Likewise.
910450397Sobrien	* typeck.c (comptypes): Likewise.
910550397Sobrien	(build_component_ref): Likewise.
910650397Sobrien	(build_function_call_real): Likewise.
910718334Speter	(build_binary_op_nodefault): Likewise.
910850397Sobrien	(build_unary_op): Likewise.
910950397Sobrien	(build_modify_expr): Likewise.
911050397Sobrien	* typeck2.c (initializer_constant_valid_p): Likewise.
911150397Sobrien
911250397SobrienSun Dec 21 15:59:00 1997  Nick Clifton  <nickc@cygnus.com>
911350397Sobrien
911450397Sobrien	* decl2.c (lang_decode_option): Add support for -Wunknown-pragmas.
911518334Speter
911652284SobrienThu Dec 18 14:51:50 1997  Mark Mitchell  <mmitchell@usa.net>
911752284Sobrien
911852284Sobrien	* pt.c (coerce_template_parms): Make sure to digest_init if
911952284Sobrien	possible.
912052284Sobrien
912150397Sobrien	* decl.c (duplicate_decls): Make the newdecl virtual if the
912250397Sobrien	olddecl was, just as is done with other attributes of olddecl.
912350397Sobrien
912450397SobrienThu Dec 18 14:43:19 1997  Jason Merrill  <jason@yorick.cygnus.com>
912550397Sobrien
912650397Sobrien	* typeck.c (unary_complex_lvalue): Ignore op0 when taking the
912750397Sobrien	address of an OFFSET_REF.
912850397Sobrien
912952284Sobrien	* cp-tree.def: Add AGGR_INIT_EXPR.
913050397Sobrien	* error.c, tree.c, typeck.c: Replace uses of NEW_EXPR with
913150397Sobrien	AGGR_INIT_EXPR where appropriate.
913250397Sobrien	* expr.c (cplus_expand_expr): Likewise.  Simplify.
913350397Sobrien
913450397Sobrien	* decl2.c (finish_file): Remove call to register_exception_table.
913550397Sobrien
913650397SobrienWed Dec 17 17:08:52 1997  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
913750397Sobrien
913850397Sobrien	* pt.c (instantiate_class_template): Don't do injection when
913952284Sobrien	processing_template_decl is true, as pollutes current_binding_level
914050397Sobrien	for base classes.
914150397Sobrien
914250397SobrienWed Dec 17 21:17:39 1997  Peter Schmid  <schmid@ltoi.iap.physik.tu-darmstadt.de>
914350397Sobrien
914450397Sobrien	* pt.c (maybe_fold_nontype_arg): Add prototype.
914550397Sobrien
914650397SobrienTue Dec 16 10:31:20 1997  Jason Merrill  <jason@yorick.cygnus.com>
914750397Sobrien
914850397Sobrien	* tree.c (mapcar): Handle TRY_CATCH_EXPR et al.
914950397Sobrien	* error.c (dump_expr): Likewise.
915052284Sobrien
915150397SobrienMon Dec 15 12:22:04 1997  Jason Merrill  <jason@yorick.cygnus.com>
915250397Sobrien
915350397Sobrien	* typeck.c (build_function_call_real): Remove "inline called before
915450397Sobrien	definition" pedwarn.
915550397Sobrien
915650397Sobrien	* pt.c (coerce_template_parms): Use maybe_fold_nontype_arg.
915750397Sobrien
915850397SobrienSun Dec 14 22:34:20 1997  Jason Merrill  <jason@yorick.cygnus.com>
915950397Sobrien
916050397Sobrien	* cvt.c (cp_convert_to_pointer): Fix base conversion of pm's.
916150397Sobrien
916250397Sobrien	* pt.c (type_unification_real): Change __null to type void* with
916350397Sobrien	a warning.
916450397Sobrien
916550397SobrienSun Dec 14 20:38:35 1997  Mark Mitchell  <mmitchell@usa.net>
916650397Sobrien
916750397Sobrien	* call.c (implicit_conversion): Don't call
916850397Sobrien	build_user_type_conversion_1 with a NULL expr, since it will
916950397Sobrien	crash.
917050397Sobrien
917150397Sobrien	* pt.c (unify): Don't try to unify array bounds if either array is
917250397Sobrien	unbounded.
917350397Sobrien
917452284SobrienFri Dec 12 16:09:14 1997  Jason Merrill  <jason@yorick.cygnus.com>
917550397Sobrien
917650397Sobrien	* errfn.c (cp_pedwarn, cp_pedwarn_at, cp_error_at, cp_warning_at):
917750397Sobrien	Replace extern decls with casts.
917850397Sobrien
917952284Sobrien	* decl.c (expand_start_early_try_stmts): Don't mess with a sequence.
918050397Sobrien	Update last_parm_cleanup_insn.
918150397Sobrien	(store_after_parms): Remove.
918250397Sobrien	* cp-tree.h: Adjust.
918350397Sobrien
918418334SpeterThu Dec 11 22:18:37 1997  Jason Merrill  <jason@yorick.cygnus.com>
918550397Sobrien
918618334Speter	* decl2.c (comdat_linkage): Also set DECL_COMDAT.
918750397Sobrien	(finish_file): Check DECL_COMDAT instead of weak|one_only.
918818334Speter	(import_export_vtable): Use make_decl_one_only instead of
918950397Sobrien	comdat_linkage for win32 tweak.
919018334Speter	(import_export_decl): Likewise.
919152284Sobrien	* pt.c (mark_decl_instantiated): Likewise.
919218334Speter
919350397Sobrien	* decl2.c (finish_file): Lose handling of templates in pending_statics.
919418334Speter
919550397SobrienThu Dec 11 21:12:09 1997  Jason Merrill  <jason@yorick.cygnus.com>
919650397Sobrien
919718334Speter	* decl2.c (finish_file): Lose call to expand_builtin_throw.
919850397Sobrien	* except.c (expand_builtin_throw): Remove.
919918334Speter	* cp-tree.h: Remove ptr_ptr_type_node.
920050397Sobrien	* decl.c: Likewise.
920150397Sobrien
920250397SobrienThu Dec 11 20:43:33 1997  Teemu Torma  <tot@trema.com>
920318334Speter
920450397Sobrien	* decl.c (ptr_ptr_type_node): Define.
920518334Speter	(init_decl_processing): Initialize it.
920650397Sobrien	* cp-tree.h: Declare it.
920750397Sobrien	* exception.cc (__cp_exception_info): Use __get_eh_info.
920850397Sobrien	(__cp_push_exception): Likewise.
920950397Sobrien	(__cp_pop_exception): Likewise.
921018334Speter
921150397Sobrien	From Scott Snyder <snyder@d0sgif.fnal.gov>:
921218334Speter	* except.c (expand_builtin_throw): Use get_saved_pc_ref instead of
921350397Sobrien	saved_pc.
921450397Sobrien	(init_exception_processing): Removed saved_pc initialization.
921550397Sobrien
921650397SobrienWed Dec 10 11:04:45 1997  Jason Merrill  <jason@yorick.cygnus.com>
921750397Sobrien
921850397Sobrien	* pt.c (instantiate_decl): Defer all templates but inline functions.
921950397Sobrien
922050397SobrienMon Dec  8 23:17:13 1997  Jason Merrill  <jason@yorick.cygnus.com>
922152284Sobrien
922250397Sobrien	* init.c (expand_vec_init): Don't fold a list of parameters.
922318334Speter
922450397Sobrien	* decl.c (copy_args_p): Handle copy elision for types with virtual
922552284Sobrien	bases.
922650397Sobrien	* call.c (build_over_call): Likewise.
922750397Sobrien
922850397SobrienSun Dec  7 22:38:12 1997  Mark Mitchell  <mmitchell@usa.net>
922950397Sobrien
923050397Sobrien	* pt.c (lookup_template_function): Copy the template arguments,
923150397Sobrien	not just the list containing them, to the permanent obstack.
923250397Sobrien
923350397SobrienSun Dec  7 15:53:06 1997  Jason Merrill  <jason@yorick.cygnus.com>
923450397Sobrien
923550397Sobrien	* except.c (expand_start_catch_block): suspend_momentary for the
923650397Sobrien	terminate handler.
923750397Sobrien
923850397Sobrien	* error.c (dump_decl): Handle LOOKUP_EXPR.
923950397Sobrien
924050397SobrienSun Dec  7 15:45:07 1997  Mark Mitchell  <mmitchell@usa.net>
924118334Speter
924250397Sobrien	* rtti.c (build_dynamic_cast): Copy the cast-to type to the
924318334Speter	permanent obstack if we are processing a template decl.
924450397Sobrien	* typeck.c (build_static_cast): Likewise.
924518334Speter	(build_const_cast): Likewise.
924650397Sobrien	(build_reinterpret_cast): Likewise.
924718334Speter
924850397Sobrien	* pt.c (coerce_template_parms): Coerce some expressions, even
924950397Sobrien	when processing_template_decl.
925018334Speter
925150397SobrienSun Dec  7 01:46:33 1997  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
925250397Sobrien
925318334Speter	* typeck.c (build_binary_op_nodefault, pointer_diff): Symmetric
925450397Sobrien	handling of pointer difference expressions.
925518334Speter
925652284Sobrien	* typeck.c (comp_target_types): Comparison of function/method types
925750397Sobrien	is independent of nptrs.
925818334Speter
925950397SobrienSun Dec  7 01:40:27 1997  Mark Mitchell  <mmitchell@usa.net>
926050397Sobrien
926150397Sobrien	* pt.c (tsubst): Avoid creating pointer to reference and
926250397Sobrien	reference to reference types.
926318334Speter
926450397SobrienSat Dec  6 01:29:37 1997  Jason Merrill  <jason@yorick.cygnus.com>
926518334Speter
926650397Sobrien	* parse.y (do_id): New nonterminal.
926718334Speter	(template_id): Use it.
926850397Sobrien
926952284SobrienFri Dec  5 01:17:34 1997  Jason Merrill  <jason@yorick.cygnus.com>
927052284Sobrien
927118334Speter	* parse.y (template_id): do_identifier for PFUNCNAMEs, too.
927252284Sobrien	* spew.c (yylex): Don't do_identifier here.
927318334Speter	* decl2.c (build_expr_from_tree): Revert last change.
927450397Sobrien
927518334Speter	* decl2.c (build_expr_from_tree): Expand the name for a method call.
927650397Sobrien	* parse.y (object_template_id): Don't try to take the DECL_NAME.
927718334Speter
927850397SobrienWed Dec  3 20:02:39 1997  Jason Merrill  <jason@yorick.cygnus.com>
927950397Sobrien
928018334Speter	* init.c (build_new): Use a TARGET_EXPR instead of SAVE_EXPR for
928150397Sobrien	alloc_expr.
928218334Speter	* call.c (build_op_delete_call): Adjust.
928350397Sobrien
928450397Sobrien	* except.c (expand_end_catch_block): Lose rethrow region.
928518334Speter	(expand_start_catch_block): Likewise.
928650397Sobrien	(expand_end_catch_block): Don't expand_leftover_cleanups.
928718334Speter
928850397SobrienWed Dec  3 13:24:04 1997  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
928918334Speter
929050397Sobrien	* pt.c (tsubst): Remove tree_cons call (places redundant info into
929118334Speter	DECL_TEMPLATE_INSTANTIATION).
929252284Sobrien
929350397SobrienWed Dec  3 11:44:52 1997  Jason Merrill  <jason@yorick.cygnus.com>
929418334Speter
929550397Sobrien	* tree.c (is_overloaded_fn): Handle getting a fn template.
929618334Speter	(really_overloaded_fn): Likewise.
929750397Sobrien	* error.c (dump_decl): Handle TEMPLATE_ID_EXPRs better.
929850397Sobrien	* pt.c (check_explicit_specialization): Tweak.
929952284Sobrien	(determine_explicit_specialization): Tweak.
930018334Speter
930150397Sobrien	* tree.c, cp-tree.h (get_target_expr): New fn.
930250397Sobrien
930318334SpeterWed Dec  3 08:47:27 1997  Paul Eggert  <eggert@twinsun.com>
930450397Sobrien
930518334Speter	* pt.c (check_explicit_specialization): Fix misspelling in
930652284Sobrien	diagnostic: `preceeded'.
930750397Sobrien	* typeck.c (get_delta_difference): Fix misspelling in diagnostic:
930818334Speter	`conversiona'.
930950397Sobrien
931050397Sobrien1997-12-02  Mark Mitchell  <mmitchell@usa.net>
931150397Sobrien
931250397Sobrien	* pt.c (determine_explicit_specialization): Avoid an internal
931318334Speter	error for bad specializations.
931450397Sobrien
931518334Speter	* method.c (build_overload_value): Handle SCOPE_REF.
931650397Sobrien
931750397SobrienTue Dec  2 19:18:50 1997  Mike Stump  <mrs@wrs.com>
931850397Sobrien
931952284Sobrien	* class.c (prepare_fresh_vtable): Enable even more complex MI
932050397Sobrien	vtable names.
932150397Sobrien
932218334SpeterTue Dec  2 01:37:19 1997  Jason Merrill  <jason@yorick.cygnus.com>
932350397Sobrien
932418334Speter	* exception.cc (__check_eh_spec): Optimize a bit.
932550397Sobrien
932618334Speter	* exception.cc (__cp_pop_exception): Lose handler arg.
932750397Sobrien	* except.c (do_pop_exception): Likewise.
932850397Sobrien	(push_eh_cleanup): Let the cleanup mechanism supply the handler.
932950397Sobrien	(expand_end_catch_block): Likewise.
933050397Sobrien
933118334SpeterFri Nov 28 01:58:14 1997  Jason Merrill  <jason@yorick.cygnus.com>
933250397Sobrien
933352284Sobrien	* pt.c (check_explicit_specialization): Complain about using a
933450397Sobrien	template-id for a non-specialization.
933550397Sobrien
933650397SobrienFri Nov 28 12:35:19 1997  Scott Christley  <scottc@net-community.com>
933750397Sobrien
933852284Sobrien	* repo.c: Prototype rindex only if needed.
933952284Sobrien	* xref.c: Likewise.
934018334Speter
934150397SobrienFri Nov 28 01:56:35 1997  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
934252284Sobrien
934350397Sobrien	* error.c (dump_decl): Handle TEMPLATE_ID_EXPR.
934450397Sobrien
934518334SpeterThu Nov 27 00:59:46 1997  Jason Merrill  <jason@yorick.cygnus.com>
934650397Sobrien
934718334Speter	* typeck.c (build_const_cast): Handle references here instead of
934850397Sobrien	handing off to convert_to_reference.
934918334Speter
935050397Sobrien	* except.c: Lose Unexpected, SetTerminate, SetUnexpected,
935118334Speter	TerminateFunctionCall.
935250397Sobrien	(init_exception_processing): Likewise.  Terminate et al are now
935318334Speter	the fns, not ADDR_EXPRs.
935450397Sobrien	(various): Lose redundant assemble_external calls.
935552284Sobrien	(do_unwind): s/BuiltinReturnAddress/builtin_return_address_fndecl/.
935652284Sobrien
935718334Speter	* cp-tree.h (struct lang_decl_flags): Add comdat.
935850397Sobrien	(DECL_COMDAT): New macro.
935918334Speter	* decl.c (duplicate_decls): Propagate it.
936050397Sobrien	(cp_finish_decl): Handle it.
936150397Sobrien	* decl2.c (import_export_decl): Just set DECL_COMDAT on VAR_DECLs.
936218334Speter
936350397Sobrien	* class.c: Remove static pending_hard_virtuals.
936418334Speter	(add_virtual_function): Take pointers to pending_virtuals
936550397Sobrien	and pending_hard_virtuals.
936650397Sobrien	(finish_struct_1): Pass them.  Declare pending_hard_virtuals.
936718334Speter
936850397SobrienWed Nov 26 20:28:49 1997  Jason Merrill  <jason@yorick.cygnus.com>
936918334Speter
937050397Sobrien	* decl2.c (import_export_vtable): If we support one_only but not
937118334Speter	weak symbols, mark instantiated template vtables one_only.
937250397Sobrien	(import_export_decl): Likewise for tinfo functions.
937350397Sobrien	(finish_vtable_vardecl): Also write out vtables from explicitly
937450397Sobrien	instantiated template classes.
937550397Sobrien	* pt.c (mark_class_instantiated): Revert last change.
937650397Sobrien
937718334Speter	* except.c (expand_throw): Call mark_used on the destructor.
937850397Sobrien
937950397SobrienWed Nov 26 15:13:48 1997  Jeffrey A Law  (law@cygnus.com)
938018334Speter
938150397Sobrien	* lex.c (lang_init): Enable flag_exceptions by default if no
938218334Speter	command line switch was specified.
938350397Sobrien
938450397Sobrien1997-11-26  Mark Mitchell  <mmitchell@usa.net>
938518334Speter
938650397Sobrien	* pt.c (unify): Handle `void' template parameters in
938750397Sobrien	specializations.
938818334Speter
938950397SobrienWed Nov 26 01:11:24 1997  Jason Merrill  <jason@yorick.cygnus.com>
939018334Speter
939150397Sobrien	* rtti.c (build_dynamic_cast): Handle template case here.
939250397Sobrien	(build_dynamic_cast_1): Not here.
939318334Speter
939450397Sobrien	* typeck2.c (digest_init): Make copies where appropriate.
939518334Speter
939650397Sobrien	* decl2.c (delete_sanity): resolve_offset_ref.
939750397Sobrien
939818334Speter	* except.c: Call terminate without caching so many bits.
939950397Sobrien
940018334Speter	* except.c (expand_start_catch_block): Fix catching a reference
940150397Sobrien	to pointer.
940250397Sobrien
940350397SobrienTue Nov 25 11:28:21 1997  Jason Merrill  <jason@yorick.cygnus.com>
940418334Speter
940550397Sobrien	* init.c (build_new): Copy size to the saveable obstack.
940650397Sobrien
940718334Speter	* init.c (build_new): Stick a CLEANUP_POINT_EXPR inside the
940850397Sobrien	TRY_CATCH_EXPR for now.
940918334Speter
941050397SobrienMon Nov 24 12:15:55 1997  Jason Merrill  <jason@yorick.cygnus.com>
941152284Sobrien
941252284Sobrien	* typeck.c (mark_addressable): Don't assume a FUNCTION_DECL
941318334Speter	has DECL_LANG_SPECIFIC.
941450397Sobrien
941550397Sobrien	* exception.cc (struct cp_eh_info): Add handlers field.
941650397Sobrien	(__cp_push_exception): Initialize it.
941718334Speter	(__cp_pop_exception): Decrement it.  Don't pop unless it's 0.
941850397Sobrien	(__throw_bad_exception): Remove.
941918334Speter	* except.c (call_eh_info): Add handlers field.
942050397Sobrien	(get_eh_handlers): New fn.
942152284Sobrien	(push_eh_cleanup): Increment handlers.
942218334Speter
942350397SobrienFri Nov 21 12:22:07 1997  Jason Merrill  <jason@yorick.cygnus.com>
942418334Speter
942550397Sobrien	* except.c (expand_start_eh_spec): Use the try/catch code.
942650397Sobrien	(expand_end_eh_spec): Likewise.  Call __check_eh_spec instead of
942750397Sobrien	doing everything inline.
942850397Sobrien	(init_exception_processing): throw_type_match now takes
942950397Sobrien	const void pointers.
943018334Speter	* exception.cc (__check_eh_spec): New fn.
943150397Sobrien	* inc/exception: Neither terminate nor unexpected return.
943218334Speter	* decl.c: Make const_ptr_type_node public.
943350397Sobrien	* tinfo2.cc (__throw_type_match_rtti): Take the typeinfos constly.
943418334Speter
943550397Sobrien	* except.c (expand_start_catch_block): We only need the rethrow
943650397Sobrien	region for non-sjlj exceptions.
943750397Sobrien	(expand_end_catch_block): Likewise.  Use outer_context_label_stack.
943850397Sobrien
943918334SpeterThu Nov 20 14:40:17 1997  Jason Merrill  <jason@yorick.cygnus.com>
944050397Sobrien
944118334Speter	* Make-lang.in (CXX_LIB2FUNCS): Add new op new and op delete objs.
944250397Sobrien	(various.o): Likewise.
944350397Sobrien	* inc/new: Add placement deletes.  Add throw specs for default new.
944418334Speter	* new.cc (set_new_handler): Move here from libgcc2.
944550397Sobrien	* new1.cc (new (nothrow)): Catch a bad_alloc thrown from the handler.
944618334Speter	(new): Move from libgcc2.  Throw bad_alloc.
944750397Sobrien	* new2.cc: Move the rest of the op news and op deletes from libgcc2.
944818334Speter	* decl.c (init_decl_processing): Update exception specs on new and
944950397Sobrien	delete.
945050397Sobrien
945118334Speter	* method.c (build_decl_overload_real): Don't mess with global
945250397Sobrien	placement delete.
945318334Speter
945450397Sobrien	* init.c (build_new): Check for null throw spec, not nothrow_t.
945518334Speter
945650397Sobrien	* decl.c (duplicate_decls): Don't complain about different exceptions
945750397Sobrien	from an internal declaration.
945850397Sobrien
945950397Sobrien	* call.c (build_op_delete_call): Fix check for member fns again.
946018334Speter
946150397Sobrien	* decl2.c (import_export_decl): Interface hackery affects
946218334Speter	virtual synthesized methods.
946352284Sobrien
946450397SobrienWed Nov 19 18:24:14 1997  Jason Merrill  <jason@yorick.cygnus.com>
946518334Speter
946650397Sobrien	* decl.c (start_decl): Don't just complain about a mismatched
946718334Speter	scope, fix it.
946850397Sobrien
946950397Sobrien	* decl.c (make_implicit_typename): Handle case where t is not
947018334Speter	actually from context.
947150397Sobrien	* tree.c (get_type_decl): Lose identifier case.
947218334Speter	* spew.c (yylex): Lose useless call to identifier_typedecl_value.
947352284Sobrien	* parse.y (nonnested_type): Just use lookup_name.
947418334Speter	(complex_type_name): Just use IDENTIFIER_GLOBAL_VALUE.
947550397Sobrien
947618334SpeterWed Nov 19 11:45:07 1997  Michael Tiemann  <tiemann@axon.cygnus.com>
947750397Sobrien
947850397Sobrien	* error.c (dump_function_name): Test DECL_LANG_SPECIFIC in case
947918334Speter	T was built in C language context (for example, by
948050397Sobrien	output_func_start_profiler).
948152284Sobrien
948250397SobrienWed Nov 19 10:39:27 1997  Jason Merrill  <jason@yorick.cygnus.com>
948352284Sobrien
948450397Sobrien	* decl.c (make_implicit_typename): New fn.
948550397Sobrien	(lookup_name_real): Use it.  Use current_class_type as the context.
948618334Speter
948750397SobrienMon Nov 17 23:42:03 1997  Bruno Haible  <haible@ilog.fr>
948850397Sobrien
948950397Sobrien	* pt.c (do_poplevel): Don't prohibit jumps into this contour.
949050397Sobrien
949150397SobrienMon Nov 17 02:01:28 1997  Jason Merrill  <jason@yorick.cygnus.com>
949218334Speter
949350397Sobrien	* friend.c (do_friend): Warn about non-template friends in templates.
949452284Sobrien
949550397Sobrien	* call.c (build_op_delete_call): Fix handling of inherited delete.
949650397Sobrien
949718334Speter	* search.c (dfs_record_inheritance): Ignore template type parms.
949850397Sobrien
949918334SpeterSat Nov 15 00:30:51 1997  Jason Merrill  <jason@yorick.cygnus.com>
950050397Sobrien
950150397Sobrien	* call.c (build_new_op): Fix copy error.
950250397Sobrien	(build_op_new_call): New fn.
950352284Sobrien	(build_op_delete_call): New fn.
950450397Sobrien	* cp-tree.h: Declare them.
950550397Sobrien	* init.c (build_new): Use them.  Support placement delete.
950618334Speter	(build_x_delete): Use build_op_delete_call.
950750397Sobrien	(build_delete): Likewise.
950818334Speter	* decl2.c (delete_sanity): Likewise.
950950397Sobrien	(coerce_delete_type): Don't complain about placement delete.
951018334Speter
951150397SobrienThu Nov 13 01:52:36 1997  Jason Merrill  <jason@yorick.cygnus.com>
951250397Sobrien
951318334Speter	* call.c (build_new_function_call): Remove unused 'obj' parm.
951450397Sobrien	* cp-tree.h, typeck.c: Adjust.
951518334Speter
951650397Sobrien	* init.c (build_new): Make the cleanup last longer.
951750397Sobrien	(expand_vec_init): Call do_pending_stack_adjust.
951818334Speter
951950397SobrienWed Nov 12 11:04:33 1997  Jason Merrill  <jason@yorick.cygnus.com>
952018334Speter
952150397Sobrien	* pt.c (do_type_instantiation): Fix typo.
952250397Sobrien	(mark_class_instantiated): If we support one_only but not weak
952318334Speter	symbols, don't mark this as known.
952450397Sobrien
952518334Speter	* init.c (build_new): Handle vec delete in EH cleanup.
952650397Sobrien
952718334SpeterWed Nov 12 08:11:55 1997  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
952850397Sobrien
952918334Speter	* call.c (build_method_call): Call complete_type before checking
953050397Sobrien	for destructor.
953150397Sobrien
953218334SpeterSun Nov  9 01:29:55 1997  Jim Wilson  (wilson@cygnus.com)
953350397Sobrien
953418334Speter	* decl.c (add_block_current_level): Delete.
953550397Sobrien	* init.c (build_vec_delete_1): Delete build_block and
953618334Speter	add_block_current_level calls.
953750397Sobrien
953852284SobrienWed Nov 12 00:48:16 1997  Jason Merrill  <jason@yorick.cygnus.com>
953918334Speter
954050397Sobrien	* init.c (build_new): Handle freeing allocated memory when the
954118334Speter	constructor throws.
954250397Sobrien
954350397Sobrien	* call.c (build_new_method_call): Fix flags arg.
954418334Speter
954550397Sobrien	* pt.c (do_type_instantiation): Don't try to instantiate
954650397Sobrien	member templates.
954750397Sobrien	(mark_decl_instantiated): If we support one_only but not
954850397Sobrien	weak symbols, mark this one_only.
954950397Sobrien	* decl2.c (import_export_vtable): Don't defer handling of vtables
955050397Sobrien	if MULTIPLE_SYMBOL_SPACES.
955150397Sobrien
955218334SpeterTue Nov 11 12:02:12 1997  Jason Merrill  <jason@yorick.cygnus.com>
955350397Sobrien
955418334Speter	* except.c (expand_end_catch_block): Lose call to __sjpopnthrow.
955550397Sobrien
955650397SobrienTue Nov 11 02:53:44 1997  Jason Merrill  <jason@lasher.cygnus.com>
955750397Sobrien
955850397Sobrien	* except.c (do_pop_exception): Return a value.
955952284Sobrien
956050397SobrienMon Nov 10 20:25:31 1997  Jason Merrill  <jason@yorick.cygnus.com>
956150397Sobrien
956250397Sobrien	* call.c (build_new_method_call): Handle getting a
956350397Sobrien	TEMPLATE_ID_EXPR around a TEMPLATE_DECL.  Don't look for a field
956418334Speter	if we got template parms.
956550397Sobrien	* typeck.c (build_x_function_call): Remember the TEMPLATE_ID_EXPR,
956652284Sobrien	not just the args.
956750397Sobrien	* decl2.c (build_expr_from_tree): Tweak last change.
956818334Speter	* pt.c (tsubst_copy): Use get_first_fn instead of TREE_VALUE.
956950397Sobrien	(maybe_fold_nontype_arg): Split out from tsubst_copy.
957018334Speter	* tree.c (get_first_fn): Just return a TEMPLATE_ID_EXPR.
957150397Sobrien
957250397SobrienMon Nov 10 20:08:38 1997  Kriang Lerdsuwanakij  <lerdsuwa@scf-fs.usc.edu>
957350397Sobrien
957450397Sobrien	* pt.c (tsubst_copy): Handle explicit template arguments in
957550397Sobrien	function calls.
957650397Sobrien	* typeck.c (build_x_function_call): Likewise.
957750397Sobrien	* decl2.c (build_expr_from_tree): Lookup function name if it
957850397Sobrien	hasn't been done.
957950397Sobrien
958018334Speter	* pt.c (tsubst): Instantiate template functions properly when
958152284Sobrien	template parameter does not appear in function arguments and return
958250397Sobrien	type.
958318334Speter	(comp_template_args): Handle member templates required by tsubst.
958450397Sobrien
958518334SpeterMon Nov 10 20:08:38 1997  Jason Merrill  <jason@yorick.cygnus.com>
958650397Sobrien
958750397Sobrien	* decl.c (grokdeclarator): Tweak conditions for pedwarn in
958818334Speter	previous change.
958950397Sobrien
959018334SpeterMon Nov 10 20:08:29 1997  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
959150397Sobrien
959250397Sobrien	* pt.c (coerce_template_parms): Tweak error message.
959318334Speter
959450397Sobrien	* decl.c (grokdeclarator): If -Wreturn-type, warn everytime a
959518334Speter	return type defaults to `int', even if there are storage-class
959652284Sobrien	specifiers.
959750397Sobrien
959818334SpeterMon Nov 10 03:04:20 1997  Jason Merrill  <jason@yorick.cygnus.com>
959950397Sobrien
960052284Sobrien	Complete nested exception support.
960150397Sobrien	* except.c (do_pop_exception): Split out...
960252284Sobrien	(push_eh_cleanup): From here.  Handle the EH region by hand.
960350397Sobrien	(expand_start_catch_block): Add a new level for the catch parm.
960450397Sobrien	Move the rethrow region outside the two cleanup regions.
960518334Speter	Protect the initializer for the catch parm with terminate.
960650397Sobrien	(expand_end_catch_block): Likewise.  End the region for the eh_cleanup.
960718334Speter	* exception.cc (__cp_pop_exception): Now takes two parms.  Handle
960850397Sobrien	popping off the middle of the stack.
960950397Sobrien	* tree.c (lvalue_p, real_lvalue_p): Handle TRY_CATCH_EXPR,
961050397Sobrien	WITH_CLEANUP_EXPR, and UNSAVE_EXPR.
961118334Speter	(build_cplus_new): Only wrap CALL_EXPRs.
961250397Sobrien	* init.c (expand_default_init): Handle a TRY_CATCH_EXPR around
961318334Speter	the constructor call.
961450397Sobrien
961550397SobrienSun Nov  9 18:00:26 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
961618334Speter
961752284Sobrien	* Make-lang.in (c++.distdir): Make inc subdirectory.
961818334Speter
961950397SobrienFri Nov  7 11:57:28 1997  Jason Merrill  <jason@yorick.cygnus.com>
962018334Speter
962150397Sobrien	* decl2.c (finish_file): Put back some code.
962218334Speter
962350397SobrienThu Nov  6 11:28:14 1997  Jason Merrill  <jason@yorick.cygnus.com>
962418334Speter
962550397Sobrien	* decl2.c (finish_file): Remove redundant code.
962618334Speter	* method.c (emit_thunk): Don't let the backend defer generic thunks.
962750397Sobrien
962818334SpeterWed Nov  5 23:52:50 1997  Jason Merrill  <jason@yorick.cygnus.com>
962950397Sobrien
963018334Speter	* except.c (call_eh_info): Split out...
963150397Sobrien	(push_eh_info): From here.
963250397Sobrien	(expand_builtin_throw): Use it.
963350397Sobrien	(expand_start_catch_block): Move region start back.
963450397Sobrien
963550397SobrienTue Nov  4 13:45:10 1997  Doug Evans  <devans@canuck.cygnus.com>
963650397Sobrien
963750397Sobrien	* lex.c (MULTIBYTE_CHARS): #undef if cross compiling.
963850397Sobrien	(real_yylex): Record wide strings using target endianness, not host.
963950397Sobrien
964018334Speter1997-11-03  Brendan Kehoe  <brendan@lisa.cygnus.com>
964150397Sobrien
964218334Speter	* repo.c (rindex): Add decl unconditionally.
964350397Sobrien	(get_base_filename, open_repo_file): Don't cast rindex.
964450397Sobrien	* xref.c (rindex): Add decl unconditionally.
964518334Speter	(index): Remove unused decl.
964650397Sobrien	(open_xref_file): Don't cast rindex.
964750397Sobrien
964818334SpeterSun Nov  2 15:04:12 1997  Jason Merrill  <jason@yorick.cygnus.com>
964950397Sobrien
965018334Speter	* class.c (build_vbase_path): Propagate the result type properly.
965150397Sobrien
965252284Sobrien1997-11-01  Brendan Kehoe  <brendan@lisa.cygnus.com>
965350397Sobrien
965450397Sobrien	* except.c (expand_builtin_throw) [!DWARF2_UNWIND_INFO]: Replace
965550397Sobrien	remaining use of saved_throw_type with a call to get_eh_type.
965650397Sobrien
965750397Sobrien1997-10-31  Brendan Kehoe  <brendan@lisa.cygnus.com>
965850397Sobrien
965950397Sobrien	* lex.c (FILE_NAME_NONDIRECTORY): Delete macro.
966052284Sobrien	(file_name_nondirectory): New function, doing the same as the macro.
966150397Sobrien	(set_typedecl_interface_info): Use it instead of the macro.
966250397Sobrien	(check_newline): Likewise.
966350397Sobrien	(handle_cp_pragma): Likewise.
966450397Sobrien
966550397Sobrien	* repo.c (get_base_filename): Cast result of rindex to char*.
966650397Sobrien	(open_repo_file): Likewise.
966750397Sobrien	* xref.c (open_xref_file): Likewise.
966850397Sobrien	* error.c (dump_char): Make its arg int, not char.
966950397Sobrien
967050397Sobrien	* except.c (push_eh_info): Pass the number of fields - 1 down, not
967150397Sobrien	the exact number of fields.
967250397Sobrien
967350397SobrienFri Oct 31 01:47:57 1997  Jason Merrill  <jason@yorick.cygnus.com>
967450397Sobrien
967550397Sobrien	Support for nested exceptions.
967650397Sobrien	* tinfo2.cc (__is_pointer): New fn.
967750397Sobrien	* exception.cc (struct cp_eh_info): Define.
967850397Sobrien	(__cp_exception_info, __uncatch_exception): New fns.
967950397Sobrien	(__cp_push_exception, __cp_pop_exception): New fns.
968050397Sobrien	* except.c: Lose saved_throw_{type,value,cleanup,in_catch}.
968150397Sobrien	Lose empty_fndecl.
968250397Sobrien	(init_exception_processing): Likewise.  __eh_pc is now external.
968350397Sobrien	(push_eh_info): New fn.
968450397Sobrien	(get_eh_{info,value,type,caught}): New fns.
968550397Sobrien	(push_eh_cleanup): Just call __cp_pop_exception.
968650397Sobrien	(expand_start_catch_block): Use push_eh_info.  Start the eh region
968750397Sobrien	sooner.
968850397Sobrien	(expand_end_eh_spec): Use push_eh_info.
968950397Sobrien	(expand_throw): Call __cp_push_exception to set up the exception info.
969050397Sobrien	Just pass the destructor or 0 as the cleanup.  Call __uncatch_exception
969150397Sobrien	when we rethrow.
969250397Sobrien	(expand_builtin_throw): Don't refer to empty_fndecl.
969352284Sobrien
969452284SobrienThu Oct 23 02:01:30 1997  Jason Merrill  <jason@yorick.cygnus.com>
969550397Sobrien
969652284Sobrien	* pt.c (instantiate_decl): SET_DECL_IMPLICIT_INSTANTIATION on new decl.
969750397Sobrien
969850397Sobrien1997-10-22  Brendan Kehoe  <brendan@cygnus.com>
969950397Sobrien
970050397Sobrien	* method.c (build_template_parm_names, build_decl_overload_real):
970150397Sobrien	Add static to definitions.
970252284Sobrien	* pt.c (add_to_template_args, note_template_header,
970350397Sobrien	processing_explicit_specialization, type_unification_real): Likewise.
970452284Sobrien	({determine,check}_explicit_specialization): Use a single string for
970550397Sobrien	error messages.
970650397Sobrien
970752284SobrienMon Oct 20 12:06:34 1997  Jason Merrill  <jason@yorick.cygnus.com>
970850397Sobrien
970950397Sobrien	* except.c (expand_exception_blocks): Call do_pending_stack_adjust.
971052284Sobrien	(expand_end_catch_block): Likewise.
971152284Sobrien	(expand_end_eh_spec): Likewise.
971218334Speter
971350397SobrienMon Oct 20 11:44:20 1997  Mark Mitchell  <mmitchell@usa.net>
971418334Speter
971550397Sobrien	* decl.c (duplicate_decls): Handle template specializations
971618334Speter	correctly.
971750397Sobrien	* error.c (dump_function_name): Fix printing of specializations of
971852284Sobrien	member functions that are not member templates.
971918334Speter	* cp-tree.h (processing_specialization): Make global.
972050397Sobrien	* pt.c (processing_specialization): Likewise.
972118334Speter	* lex.c (cons_up_default_function): Save and restore
972250397Sobrien	processing_specialization to avoid confusion.
972318334Speter
972450397SobrienMon Oct 20 10:52:22 1997  Jason Merrill  <jason@yorick.cygnus.com>
972550397Sobrien
972650397Sobrien	* decl.c (init_decl_processing): Give null_node unknown* type.
972718334Speter	* typeck.c (comp_target_types): Handle UNKNOWN_TYPE.
972850397Sobrien	(common_type): Likewise.
972918334Speter	* error.c (args_as_string): Recognize null_node.
973050397Sobrien
973150397SobrienSun Oct 19 09:13:01 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
973250397Sobrien
973350397Sobrien	* typeck.c (rationalize_conditional_expr): Handle {MIN,MAX}_EXPR.
973450397Sobrien	(unary_complex_lvalue): Call it for {MIN,MAX}_EXPR.
973550397Sobrien
973650397Sobrien	* decl.c (init_decl_processing): Call using_eh_for_cleanups.
973750397Sobrien
973850397Sobrien	* Make-lang.in (g++): Include prefix.o.
973952284Sobrien
974050397SobrienThu Oct 16 15:31:09 1997  Judy Goldberg  <judygold@sanwafp.com>
974150397Sobrien
974252284Sobrien	* pt.c (determine_explicit_specialization): Initialize "dummy"
974350397Sobrien	to keep Purify quiet.
974418334Speter
974550397SobrienThu Oct 16 00:14:48 1997  Jason Merrill  <jason@yorick.cygnus.com>
974618334Speter
974750397Sobrien	* method.c (build_overload_value): Handle TEMPLATE_CONST_PARMs here.
974818334Speter	(build_overload_int): Not here.
974950397Sobrien
975018334SpeterWed Oct 15 00:35:28 1997  Mike Stump  <mrs@wrs.com>
975150397Sobrien
975218334Speter	* class.c (build_type_pathname): Remove.
975350397Sobrien	(prepare_fresh_vtable): Fix problem with complex MI vtable names.
975418334Speter
975550397Sobrien1997-10-14  Brendan Kehoe  <brendan@lisa.cygnus.com>
975650397Sobrien
975718334Speter	* parse.y (unary_expr): Give a pedwarn if someone tries to use the
975850397Sobrien	&&label GNU extension.
975918334Speter
976050397SobrienTue Oct 14 12:01:00 1997  Mark Mitchell  <mmitchell@usa.net>
976150397Sobrien
976250397Sobrien	* decl.c (pushtag): Unset DECL_ASSEMBLER_NAME before setting it,
976350397Sobrien	so as to avoid incorrect manglings.
976418334Speter	* method.c (build_decl_overload_real): Don't mangle return types
976550397Sobrien	for constructors.
976618334Speter
976750397SobrienTue Oct 14 11:46:14 1997  Jason Merrill  <jason@yorick.cygnus.com>
976850397Sobrien
976918334Speter	* cp-tree.h (scratchalloc, build_scratch_list, make_scratch_vec,
977050397Sobrien	scratch_tree_cons): Define as macros for now.
977118334Speter	* call.c, class.c, cvt.c, decl.c, decl2.c, except.c, expr.c, init.c,
977250397Sobrien	lex.c, method.c, parse.y, pt.c, rtti.c, search.c, tree.c, typeck.c,
977350397Sobrien	typeck2.c: Use them and the expression_obstack variants.
977450397Sobrien
977550397SobrienMon Oct 13 17:41:26 1997  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
977650397Sobrien
977718334Speter	* decl.c (store_return_init): Allow classes with explicit ctors to
977850397Sobrien	be used with the named return values extension.
977918334Speter
978050397SobrienFri Oct 10 12:21:11 1997  Jason Merrill  <jason@yorick.cygnus.com>
978118334Speter
978250397Sobrien	* pt.c (instantiate_decl): Fix previous change.
978318334Speter
978450397SobrienThu Oct  9 12:08:21 1997  Jason Merrill  <jason@yorick.cygnus.com>
978550397Sobrien
978618334Speter	* pt.c (tsubst): Fix thinko.
978750397Sobrien	(instantiate_decl): Really use the original template.
978818334Speter
978950397Sobrien	* call.c (build_new_method_call): Use simple constructor_name for
979050397Sobrien	error messages.
979150397Sobrien
979250397SobrienWed Oct  8 22:44:42 1997  Jeffrey A Law  <law@cygnus.com>
979350397Sobrien
979418334Speter	* method.c (build_underscore_int): Don't use ANSI specific
979550397Sobrien	features.
979650397Sobrien
979750397SobrienWed Oct  8 00:18:22 1997  Jason Merrill  <jason@yorick.cygnus.com>
979850397Sobrien
979918334Speter	* decl2.c (finish_prevtable_vardecl): Check DECL_REALLY_EXTERN
980050397Sobrien	for our key method; it might have been inlined by -O3.
980150397Sobrien
980218334SpeterTue Oct  7 23:00:12 1997  Mark Mitchell  <mmitchell@usa.net>
980350397Sobrien
980418334Speter	* decl.c (make_typename_type): Do not try to call lookup_field for
980550397Sobrien	non-aggregate types.
980650397Sobrien
980750397SobrienTue Oct  7 22:52:10 1997  Jason Merrill  <jason@yorick.cygnus.com>
980850397Sobrien
980950397Sobrien	* typeck.c (build_reinterpret_cast): Tweak.
981050397Sobrien
981152284SobrienTue Oct  7 22:45:31 1997  Alexandre Oliva  <oliva@dcc.unicamp.br>
981250397Sobrien
981350397Sobrien	* typeck.c (build_reinterpret_cast): Converting a void pointer
981450397Sobrien	to function pointer with a reinterpret_cast produces a warning
981550397Sobrien	if -pedantic is issued.
981650397Sobrien
981750397SobrienTue Oct  7 22:43:43 1997  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
981850397Sobrien
981950397Sobrien	* typeck.c (c_expand_return): Don't warn about returning a
982050397Sobrien	reference-type variable as a reference.
982150397Sobrien
982250397SobrienTue Oct  7 21:11:22 1997  Jason Merrill  <jason@yorick.cygnus.com>
982318334Speter
982450397Sobrien	* method.c (build_static_name): Fix typo.
982518334Speter
982650397Sobrien1997-10-07  Brendan Kehoe  <brendan@lisa.cygnus.com>
982718334Speter
982850397Sobrien	* decl.c (duplicate_decls): Make sure DECL_LANG_SPECIFIC is set on
982918334Speter	OLDDECL before we try to do DECL_USE_TEMPLATE.
983050397Sobrien
983150397SobrienTue Oct  7 00:48:36 1997  Jason Merrill  <jason@yorick.cygnus.com>
983250397Sobrien
983350397Sobrien	* decl.c (duplicate_decls): Don't warn about template instances.
983450397Sobrien
983550397Sobrien	* typeck.c (mark_addressable): Lose ancient code that unsets
983618334Speter	DECL_EXTERNAL.
983750397Sobrien
983818334Speter	* pt.c (do_decl_instantiation): Lose support for instantiating
983952284Sobrien	non-templates.
984050397Sobrien
984150397Sobrien	* call.c (build_new_function_call): Fix handling of null explicit
984218334Speter	template args.
984350397Sobrien	(build_new_method_call): Likewise.
984418334Speter
984550397SobrienMon Oct  6 23:44:34 1997  Mark Mitchell  <mmitchell@usa.net>
984652284Sobrien
984750397Sobrien	* method.c (build_underscore_int): Fix typo.
984850397Sobrien
984950397Sobrien1997-10-06  Brendan Kehoe  <brendan@lisa.cygnus.com>
985050397Sobrien
985150397Sobrien	* tree.c (print_lang_statistics): #if 0 call to
985250397Sobrien	print_inline_obstack_statistics until its definition is checked in.
985352284Sobrien
985450397SobrienMon Oct  6 09:27:29 1997  Jason Merrill  <jason@yorick.cygnus.com>
985518334Speter
985650397Sobrien	* decl2.c (finish_file): Move dump_tree_statistics to end.
985750397Sobrien
985850397Sobrien	* pt.c (instantiate_decl): Look for the original template.
985950397Sobrien	(tsubst): Set DECL_IMPLICIT_INSTANTIATION on partial instantiations
986018334Speter	of member templates.
986150397Sobrien
986218334SpeterWed Oct  1 08:41:38 1997  Jason Merrill  <jason@yorick.cygnus.com>
986350397Sobrien
986450397Sobrien	* Makefile.in (g++FAQ.*): New rules.
986518334Speter	(CONFLICTS): Update.
986650397Sobrien	* g++FAQ.texi: Moved from libg++.
986718334Speter
986850397Sobrien	* parse.y (PFUNCNAME): Only specify the type once.
986918334Speter
987052284Sobrien1997-10-01  Brendan Kehoe  <brendan@lasher.cygnus.com>
987118334Speter
987250397Sobrien	* lex.c (real_yylex): Clean up the code to fully behave the way
987350397Sobrien	the c-lex.c parser does for complex and real numbers.
987418334Speter
987550397SobrienTue Sep 30 08:51:36 1997  Jason Merrill  <jason@yorick.cygnus.com>
987618334Speter
987750397Sobrien	* method.c (build_decl_overload_real): Reformat.
987850397Sobrien
987918334SpeterTue Sep 30 00:18:26 1997  Jason Merrill  <jason@yorick.cygnus.com>
988050397Sobrien
988118334Speter	* method.c (synthesize_method): If at_eof, determine our linkage.
988250397Sobrien
988350397Sobrien1997-09-29  Paul Eggert  <eggert@twinsun.com>
988418334Speter
988550397Sobrien	* lex.c (real_yylex): Treat `$' just like `_', except issue a
988618334Speter	diagnostic if !dollars_in_ident or if pedantic.
988750397Sobrien
988850397Sobrien	* lang-specs.h (@c++): -ansi no longer implies -$.
988918334Speter
989050397Sobrien	* decl2.c (lang_decode_option):
989118334Speter	-traditional and -ansi now do not mess with
989250397Sobrien	dollars_in_ident.
989350397Sobrien
989450397SobrienMon Sep 29 19:57:51 1997  H.J. Lu  <hjl@gnu.ai.mit.edu>
989550397Sobrien
989652284Sobrien	* Makefile.in (parse.o, decl.o): Also depend on
989750397Sobrien	$(srcdir)/../except.h $(srcdir)/../output.h.
989818334Speter	(decl2.o): Also depend on $(srcdir)/../expr.h ../insn-codes.h
989950397Sobrien	$(srcdir)/../except.h $(srcdir)/../output.h.
990050397Sobrien	(typeck.o, init.o): Also depend on $(srcdir)/../expr.h
990152284Sobrien	../insn-codes.h.
990250397Sobrien
990350397Sobrien	* call.c, cp-tree.h, decl.c, tree.c: Finish prototyping.
990418334Speter
990550397Sobrien	* expr.c (cplus_expand_expr): Make it static.
990618334Speter
990750397Sobrien	* decl2.c, init.c, typeck.c: Include "expr.h".
990852284Sobrien	(expand_expr): Use proper values when calling the function.
990918334Speter
991050397SobrienMon Sep 29 11:05:54 1997  Alexandre Oliva  <oliva@dcc.unicamp.br>
991118334Speter
991250397Sobrien	* lang-options.h: New -Wold-style-cast flag.
991318334Speter	* cp-tree.h (warn_old_style_cast): New variable.
991450397Sobrien	* decl2.c (warn_old_style_cast): Likewise.
991518334Speter	(lang_decode_option): Support -Wold-style-cast.
991650397Sobrien	(reparse_absdcl_as_casts): Produce old-style-cast warning.
991750397Sobrien
991818334SpeterMon Sep 29 09:20:53 1997  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
991950397Sobrien
992050397Sobrien	* decl.c (cp_finish_decl): Allow expand_aggr_init to set
992118334Speter	TREE_USED, reset value based on already_used.
992252284Sobrien
992318334Speter	* init.c (expand_member_init): Revert change.
992450397Sobrien
992550397SobrienMon Sep 29 08:57:53 1997  Jason Merrill  <jason@yorick.cygnus.com>
992618334Speter
992750397Sobrien	* cp-tree.h, decl.c, decl2.c, pt.c:
992818334Speter	Lose DECL_C_STATIC and DECL_PUBLIC.  Don't pretend statics are public.
992950397Sobrien
993050397Sobrien	* decl2.c (lang_decode_option): Add missing ;.
993118334Speter
993250397SobrienSat Sep 27 16:22:48 1997  Jason Merrill  <jason@yorick.cygnus.com>
993318334Speter
993450397Sobrien	* friend.c (do_friend): Disable injection for all template-derived
993550397Sobrien	decls.
993618334Speter	* decl2.c (lang_decode_option): Handle -fguiding-decls.
993750397Sobrien	* parse.y (notype_template_declarator): New nonterminal.
993818334Speter	(direct_notype_declarator): Use it.
993950397Sobrien	(complex_direct_notype_declarator): Likewise.
994018334Speter	(object_template_id): Accept any kind of identifier after TEMPLATE.
994150397Sobrien	(notype_qualified_id): Don't add template declarators here.
994218334Speter
994352284SobrienSat Sep 27 16:21:58 1997  Mark Mitchell  <mmitchell@usa.net>
994450397Sobrien
994552284Sobrien	* call.c (add_template_candidate): Add explicit_targs parameter.
994618334Speter	(build_scoped_method_call): Use it.
994750397Sobrien	(build_overload_call_real): Likewise.
994818334Speter	(build_user_type_conversion_1): Likewise.
994950397Sobrien	(build_new_function_call): Likewise.
995050397Sobrien	(build_object_call): Likewise.
995118334Speter	(build_new_op): Likewise.
995250397Sobrien	(build_new_method_call): Likewise.
995318334Speter	(build_new_function_call): Handle TEMPLATE_ID_EXPR.
995450397Sobrien	(build_new_method_call): Likewise.
995518334Speter
995650397Sobrien	* class.c (finish_struct_methods): Add specialization pass to
995718334Speter	determine which methods were specializing which other methods.
995850397Sobrien	(instantiate_type): Handle TEMPLATE_ID_EXPR.
995950397Sobrien
996018334Speter	* cp-tree.def (TEMPLATE_ID_EXPR): New tree code.
996150397Sobrien
996218334Speter	* cp-tree.h (name_mangling_version): New variable.
996350397Sobrien	(flag_guiding_decls): Likewise.
996418334Speter	(build_template_decl_overload): New function.
996550397Sobrien	(begin_specialization): Likewise.
996650397Sobrien	(reset_specialization): Likewise.
996718334Speter	(end_specialization): Likewise.
996850397Sobrien	(determine_explicit_specialization): Likewise.
996950397Sobrien	(check_explicit_specialization): Likewise.
997018334Speter	(lookup_template_function): Likewise.
997150397Sobrien	(fn_type_unification): Add explicit_targs parameter.
997252284Sobrien	(type_unification): Likewise.
997350397Sobrien
997418334Speter	* decl.c (duplicate_decls): Add smarts for explicit
997550397Sobrien	specializations.
997618334Speter	(grokdeclarator): Handle TEMPLATE_ID_EXPR, and function
997750397Sobrien	specializations.
997818334Speter	(grokfndecl): Call check_explicit_specialization.
997950397Sobrien
998018334Speter	* decl2.c (lang_decode_option): Handle -fname-mangling-version.
998150397Sobrien	(build_expr_from_tree): Handle TEMPLATE_ID_EXPR.
998250397Sobrien	(check_classfn): Handle specializations.
998318334Speter
998450397Sobrien	* error.c (dump_function_name): Print specialization arguments.
998518334Speter
998650397Sobrien	* friend.c (do_friend): Don't call pushdecl for template
998718334Speter	instantiations.
998850397Sobrien
998950397Sobrien	* init.c (build_member_call): Handle TEMPLATE_ID_EXPR.
999050397Sobrien
999118334Speter	* lang-options.h: Add -fname-mangling-version, -fguiding-decls,
999250397Sobrien	and -fno-guiding-decls.
999318334Speter
999450397Sobrien	* lex.c (identifier_type): Return PFUNCNAME for template function
999550397Sobrien	names.
999650397Sobrien
999718334Speter	* method.c (build_decl_overload_real): New function.
999850397Sobrien	(build_template_parm_names): New function.
999918334Speter	(build_overload_identifier): Use it.
1000050397Sobrien	(build_underscore_int): New function.
1000118334Speter	(build_overload_int): Use it.  Add levels for template
1000250397Sobrien	parameters.
1000350397Sobrien	(build_overload_name): Likewise.  Also, handle TYPENAME_TYPEs.
1000418334Speter	(build_overload_nested_names): Handle template type parameters.
1000550397Sobrien	(build_template_decl_overload): New function.
1000618334Speter
1000750397Sobrien	* parse.y (YYSTYPE): New ntype member.
1000818334Speter	(nested_name_specifier): Use it.
1000950397Sobrien	(nested_name_specifier_1): Likewise.
1001018334Speter	(PFUNCNAME): New token.
1001150397Sobrien	(template_id, object_template_id): New non-terminals.
1001218334Speter	(template_parm_list): Note specializations.
1001350397Sobrien	(template_def): Likewise.
1001418334Speter	(structsp): Likewise.
1001550397Sobrien	(fn.def2): Handle member template specializations.
1001650397Sobrien	(component_decl_1): Likewise.
1001718334Speter	(direct_notype_declarator): Handle template-ids.
1001850397Sobrien	(component_decl_1): Likewise.
1001918334Speter	(direct_notype_declarator): Handle template-ids.
1002050397Sobrien	(primary): Handle TEMPLATE_ID_EXPR, and template-ids.
1002150397Sobrien
1002250397Sobrien	* pt.c (processing_specializations): New variable.
1002318334Speter	(template_header_count): Likewise.
1002452284Sobrien	(type_unification_real): New function.
1002518334Speter	(processing_explicit_specialization): Likewise.
1002650397Sobrien	(note_template_header): Likewise.
1002750397Sobrien	(is_member_template): Handle specializations.
1002850397Sobrien	(end_template_decl): Call reset_specialization.
1002950397Sobrien	(push_template_decl): Handle member template specializations.
1003050397Sobrien	(tsubst): Likewise.
1003150397Sobrien	(tsubst_copy): Handle TEMPLATE_ID_EXPR.
1003218334Speter	(instantiate_template): Handle specializations.
1003350397Sobrien	(instantiate_decl): Likewise.
1003418334Speter	(fn_type_unification): Handle explicit_targs.
1003552284Sobrien	(type_unification): Likewise.  Allow incomplete unification
1003618334Speter	without an error message, if allow_incomplete.
1003750397Sobrien	(get_bindings): Use new calling sequence for fn_type_unification.
1003850397Sobrien
1003918334Speter	* spew.c (yylex): Handle PFUNCNAME.
1004050397Sobrien
1004118334Speter	* tree.c (is_overloaded_fn): Handle TEMPLATE_ID_EXPR.
1004252284Sobrien	(really_overloaded_fn): Likewise.
1004352284Sobrien	(get_first_fn): Handle function templates.
1004452284Sobrien
1004552284Sobrien	* typeck.c (build_x_function_call): Use really_overloaded_fn.
1004652284Sobrien	Handle TEMPLATE_ID_EXPR.
1004718334Speter	(build_x_unary_op): Likewise.
1004850397Sobrien	(build_unary_op): Likewise.
1004918334Speter	(mark_addressable): Templates whose address is taken are marked
1005050397Sobrien	as used.
1005152284Sobrien
1005218334Speter1997-09-25  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
1005350397Sobrien
1005452284Sobrien	* decl.c (init_decl_processing): Declare __builtin_constant_p as
1005550397Sobrien	accepting any kind of type, not only int.
1005618334Speter
1005750397SobrienFri Sep 26 00:22:56 1997  Jason Merrill  <jason@yorick.cygnus.com>
1005852284Sobrien
1005918334Speter	* search.c (get_matching_virtual): Notice virtual bases when sorrying
1006050397Sobrien	about covariant returns.
1006118334Speter
1006250397Sobrien	* parse.y (member_init): Also imply typename here.  Remove ancient
1006318334Speter	extension for initializing base members.
1006450397Sobrien
1006552284SobrienThu Sep 25 11:11:13 1997  Jason Merrill  <jason@yorick.cygnus.com>
1006650397Sobrien
1006750397Sobrien	Handle multi-level typenames and implicit typename in base list.
1006850397Sobrien	* parse.y (typename_sub{,[0-2]}): New rules.
1006950397Sobrien	(structsp, rule TYPENAME_KEYWORD): Use typename_sub.
1007050397Sobrien	(nonnested_type): New rule.
1007150397Sobrien	(complete_type_name): Use it.
1007218334Speter	(base_class.1): Use typename_sub and nonnested_type.
1007350397Sobrien	(nested_name_specifier): Don't elide std:: here.
1007418334Speter	* decl.c (make_typename_type): Handle getting a type for NAME.
1007552284Sobrien	(lookup_name_real): Turn std:: into :: here.
1007652284Sobrien
1007752284Sobrien	Rvalue conversions were removed in London.
1007852284Sobrien	* call.c (is_subseq): Don't consider lvalue transformations.
1007952284Sobrien	(build_conv): LVALUE_CONV and RVALUE_CONV get IDENTITY_RANK.
1008052284Sobrien	(joust): Re-enable ?: kludge.
1008152284Sobrien
1008252284Sobrien1997-09-22  Brendan Kehoe  <brendan@lisa.cygnus.com>
1008352284Sobrien
1008452284Sobrien	* decl.c (start_function): Up warning of no return type to be a
1008518334Speter	pedwarn.
1008652284Sobrien
1008752284SobrienMon Sep 22 14:15:34 1997  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
1008852284Sobrien
1008918334Speter	* init.c (expand_member_init): Don't set TREE_USED.
1009052284Sobrien	* decl.c (cp_finish_decl): Mark decls used if type has TREE_USED
1009118334Speter	set,don't clear TREE_USED wholesale.
1009252284Sobrien
1009350397SobrienSat Sep 20 15:31:00 1997  Jason Merrill  <jason@yorick.cygnus.com>
1009452284Sobrien
1009552284Sobrien	* call.c (build_over_call): Do require_complete_type before
1009652284Sobrien	build_cplus_new.
1009752284Sobrien
1009852284SobrienThu Sep 18 16:47:52 1997  Jason Merrill  <jason@yorick.cygnus.com>
1009952284Sobrien
1010052284Sobrien	* search.c (lookup_field): Call complete_type in all cases.
1010152284Sobrien
1010252284Sobrien	* decl.c (finish_function): Just warn about flowing off the end.
1010318334Speter
1010452284SobrienWed Sep 17 10:31:25 1997  Jason Merrill  <jason@yorick.cygnus.com>
1010552284Sobrien
1010652284Sobrien	* decl.c (grokparms): Don't bash a permanent list node if we're
1010752284Sobrien	in a function.
1010852284Sobrien
1010918334Speter1997-09-17  Brendan Kehoe  <brendan@lisa.cygnus.com>
1011052284Sobrien
1011152284Sobrien	* Makefile.in (CONFLICTS): Fix s/r conflict count to 18.
1011252284Sobrien
1011318334SpeterTue Sep 16 14:06:56 1997  Jason Merrill  <jason@yorick.cygnus.com>
1011452284Sobrien
1011518334Speter	* call.c (build_new_op): Give better error for syntactically
1011652284Sobrien	correct, but semantically invalid, use of undeclared template.
1011752284Sobrien
1011818334Speter	* call.c (compare_qual): Handle pmfs.
1011952284Sobrien
1012018334Speter	* decl.c (store_parm_decls): last_parm_cleanup_insn is the insn
1012152284Sobrien	after the exception spec.
1012250397Sobrien
1012318334SpeterMon Sep 15 11:52:13 1997  Jason Merrill  <jason@yorick.cygnus.com>
1012452284Sobrien
1012552284Sobrien	* call.c (null_ptr_cst_p): Integer type, not integral type.
1012618334Speter
1012752284Sobrien	* call.c (joust): Disable warnings until they can be moved to the
1012852284Sobrien	right place.
1012952284Sobrien
1013052284SobrienFri Sep 12 16:11:13 1997  Per Bothner  <bothner@cygnus.com>
1013152284Sobrien
1013252284Sobrien	* Makefile.in, config-lang.in:  Convert to autoconf.
1013352284Sobrien
1013452284SobrienThu Sep 11 17:14:55 1997  Jason Merrill  <jason@yorick.cygnus.com>
1013552284Sobrien
1013618334Speter	* decl.c (lookup_name_real): Add implicit 'typename' to types from
1013752284Sobrien	base classes.
1013852284Sobrien
1013952284Sobrien	* pt.c (most_specialized_class): Fix typo.
1014052284Sobrien	(tsubst): Move constant folding to TREE_VEC case.
1014152284Sobrien
1014252284SobrienThu Sep 11 10:08:45 1997  Mark Mitchell  <mmitchell@usa.net>
1014352284Sobrien
1014452284Sobrien	* pt.c (do_poplevel): Don't warn about unused local variables
1014552284Sobrien	while processing_template_decl since we don't always know whether
1014652284Sobrien	or not they will need constructing/destructing.
1014752284Sobrien
1014852284Sobrien	* pt.c (uses_template_parms): Check the values of an enumeration
1014952284Sobrien	type to make sure they don't depend on template parms.
1015052284Sobrien
1015118334Speter	* decl.c (make_typename_type): Don't lookup the field if the
1015252284Sobrien	context uses template parms, even if we're not
1015352284Sobrien	processing_template_decl at the moment.
1015452284Sobrien
1015552284Sobrien	* pt.c (coerce_template_parms): Avoid looking at the
1015652284Sobrien	TYPE_LANG_DECL portion of a typename type, since there won't be
1015752284Sobrien	one.
1015852284Sobrien	(tsubst): Do constant folding as necessary to make sure that
1015952284Sobrien	arguments passed to lookup_template_class really are constants.
1016052284Sobrien
1016152284SobrienWed Sep 10 11:21:55 1997  Jason Merrill  <jason@yorick.cygnus.com>
1016252284Sobrien
1016352284Sobrien	* except.c (expand_builtin_throw): #ifndef DWARF2_UNWIND_INFO.
1016452284Sobrien	* decl2.c (finish_file): Only register exception tables if we
1016552284Sobrien	need to.
1016652284Sobrien
1016752284Sobrien	* decl.c (init_decl_processing): Add __builtin_[fs]p.
1016818334Speter
1016952284SobrienTue Sep  9 19:49:38 1997  Jason Merrill  <jason@yorick.cygnus.com>
1017018334Speter
1017152284Sobrien	* pt.c (unify): Just return 0 for a TYPENAME_TYPE.
1017252284Sobrien
1017352284SobrienTue Sep  9 17:57:25 1997  Mark Mitchell  <mmitchell@usa.net>
1017418334Speter
1017552284Sobrien	* error.c (dump_decl): Avoid crashing when presented with a
1017652284Sobrien	uninitialized constant, as can occur with a template parameter.
1017752284Sobrien	(dump_expr): Make sure that there are enough levels of
1017852284Sobrien	current_template_parms before we start diving through them.
1017952284Sobrien
1018052284Sobrien1997-09-09  Brendan Kehoe  <brendan@lisa.cygnus.com>
1018118334Speter
1018250397Sobrien	* typeck.c (build_indirect_ref): Heed FLAG_VOLATILE similar to
1018318334Speter	c-typeck.c.
1018450397Sobrien
1018550397SobrienTue Sep  9 09:36:39 1997  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
1018618334Speter
1018750397Sobrien	* except.c (expand_throw): Call build_delete for all
1018818334Speter	exception types, not just objects with destructors.
1018950397Sobrien
1019050397SobrienMon Sep  8 02:33:20 1997  Jody Goldberg  <jodyg@idt.net>
1019118334Speter
1019250397Sobrien	* decl.c (current_local_enum): Remove static.
1019350397Sobrien	* pt.c (tsubst_enum): Save and restore value of current_local_enum
1019418334Speter	in case template is expanded in enum decl.
1019550397Sobrien	(instantiate_class_template): Use new tsubst_enum signature.
1019618334Speter	(tsubst_expr): Likewise.
1019750397Sobrien
1019850397SobrienMon Sep  8 01:21:43 1997  Mark Mitchell  <mmitchell@usa.net>
1019950397Sobrien
1020050397Sobrien	* pt.c (begin_member_template_processing): Take a function as
1020150397Sobrien	argument, not a set of template arguments.  Use the template
1020250397Sobrien	parameters, rather than the arguments.  Handle non-type parameters
1020350397Sobrien	correctly.  Push a binding level for the parameters so that multiple
1020450397Sobrien	member templates using the same parameter names can be declared.
1020550397Sobrien	(end_member_template_processing): Pop the binding level.
1020618334Speter	(push_template_decl): Mark member templates as static when
1020750397Sobrien	appropriate.
1020850397Sobrien
1020950397Sobrien	* lex.c (do_pending_inlines): Pass the function, not its template
1021052284Sobrien	arguments, to begin_member_template_processing.
1021118334Speter	(process_next_inline): Likewise.
1021250397Sobrien	(do_pending_defargs): Likewise.
1021318334Speter
1021450397Sobrien	* error.c (dump_expr): Obtain the correct declaration for a
1021550397Sobrien	TEMPLATE_CONST_PARM.
1021618334Speter
1021750397Sobrien	* call.c (add_template_conv_candidate): New function.
1021818334Speter	(build_object_call): Handle member templates, as done in the other
1021950397Sobrien	build_ functions.
1022050397Sobrien
1022150397SobrienSat Sep  6 10:20:27 1997  Mark Mitchell  <mmitchell@usa.net>
1022218334Speter
1022350397Sobrien	* decl.c (replace_defag): Undo previous change.
1022418334Speter	* lex.c (do_pending_defargs): Deal with member templates.
1022550397Sobrien
1022650397Sobrien	* pt.c (is_member_template): Avoid crashing when passed a
1022718334Speter	non-function argument.
1022850397Sobrien
1022918334SpeterFri Sep  5 17:27:38 1997  Jason Merrill  <jason@yorick.cygnus.com>
1023050397Sobrien
1023118334Speter	* class.c (grow_method): Remove check for redeclaration.
1023250397Sobrien
1023318334SpeterFri Sep  5 01:37:17 1997  Mark Mitchell  <mmitchell@usa.net>
1023450397Sobrien
1023518334Speter	* cp-tree.h (INNERMOST_TEMPLATE_PARMS): New macro.
1023650397Sobrien	(DECL_INNERMOST_TEMPLATE_PARMS): Likewise.
1023750397Sobrien	(PRIMARY_TEMPLATE_P): Use it.
1023818334Speter	* call.c (build_overload_call_real): Use it.
1023950397Sobrien	* class.c (instantiate_type): Likewise.
1024018334Speter	* decl.c (decls_match): Likewise.
1024150397Sobrien	* method.c (build_overload_identifier): Likewise.
1024218334Speter	* pt.c (push_template_decl): Likewise.
1024350397Sobrien	(classtype_mangled_name): Likewise.
1024418334Speter	(lookup_template_class): Likewise.
1024550397Sobrien
1024652284Sobrien	* cp-tree.h (DECL_NTPARMS): Change name from DECL_NT_PARMS to
1024718334Speter	DECL_NTPARMS to conform to usage elsewhere.
1024850397Sobrien	* call.c (add_template_candidate): Likewise.
1024918334Speter	* class.c (instantiate_type): Likewise.
1025050397Sobrien	* pt.c (instantiate_template): Likewise.
1025152284Sobrien	(get_bindings): Likewise.
1025218334Speter
1025350397Sobrien	* class.c (grow_method): Use DECL_FUNCTION_TEMPLATE_P instead of
1025418334Speter	is_member_template.
1025550397Sobrien
1025618334Speter	* pt.c (unify): Undo changes to allow multiple levels of template
1025750397Sobrien	parameters.
1025850397Sobrien	(type_unification): Likewise.
1025918334Speter	(fn_type_unification): Likewise.
1026050397Sobrien	(get_class_bindings): Likewise.
1026118334Speter	* cp-tree.h (Likewise).
1026250397Sobrien
1026318334Speter	* decl.c (replace_defarg): Check that the type of the default
1026450397Sobrien	parameter does not invlove a template type before complaining
1026518334Speter	about the initialization.
1026650397Sobrien
1026750397Sobrien	* error.c (dump_expr): Deal with template constant parameters in
1026818334Speter	member templates correctly.
1026950397Sobrien
1027050397Sobrien	* pt.c (is_member_template): Deal with class specializations
1027118334Speter	correctly.
1027250397Sobrien	(tsubst): Handle "partial instantiation" of member templates
1027318334Speter	correctly.
1027450397Sobrien
1027550397SobrienWed Sep  3 12:30:24 1997  Mark Mitchell  <mmitchell@usa.net>
1027650397Sobrien
1027718334Speter	* pt.c (type_unification): Change calling sequence to allow for
1027850397Sobrien	multiple levels of template parameters.
1027950397Sobrien	(tsubst_expr): Likewise.
1028018334Speter	(tsubst): Likewise.
1028150397Sobrien	(tsubst_copy): Likewise.
1028250397Sobrien	(instantiate_template): Likewise.
1028350397Sobrien	(unify): Likewise.
1028418334Speter	* call.c (build_overload_call_real): Use it.
1028550397Sobrien	(add_builtin_candidate): Use it.
1028650397Sobrien	(build_new_method_call): Use it.
1028752284Sobrien	* class.c (instantiate_type): Use it.
1028850397Sobrien	* decl.c (grokdeclarator): Use it.
1028952284Sobrien	* decl2.c (finish_file): Use it.
1029018334Speter	* method.c (build_overload_identifier): Use it.
1029150397Sobrien
1029218334Speter	* call.c (add_template_candidate):  Add additional parameter for
1029350397Sobrien	the function return type.  Call fn_type_unification istead of
1029450397Sobrien	type_unification.
1029550397Sobrien	(build_user_type_conversion_1): Handle member templates.
1029618334Speter	(build_new_function_call): Likewise.
1029750397Sobrien	(build_new_op): Likewise.
1029818334Speter	(build_new_method_call): Likewise.
1029950397Sobrien
1030018334Speter	* class.c (grow_method): Don't give an error message indicating
1030150397Sobrien	that two member templates with the same name are ambiguous.
1030218334Speter	(finish_struct): Treat member template functions just like member
1030350397Sobrien	functions.
1030418334Speter
1030550397Sobrien	* cp-tree.h (check_member_template): Add declaration.
1030652284Sobrien	(begin_member_template_processing): Likewise.
1030750397Sobrien	(end_member_template_processing): Likewise.
1030852284Sobrien	(fn_type_unification): Likewise.
1030918334Speter	(is_member_template): Likewise.
1031050397Sobrien	(tsubst): Change prototype.
1031118334Speter	(tsubst_expr): Likewise.
1031250397Sobrien	(tsubst_copy): Likewise.
1031350397Sobrien	(instantiate_template): Likewise.
1031418334Speter	(get_bindings): Likewise.
1031550397Sobrien
1031618334Speter	* decl.c (decls_match): Handle multiple levels of template
1031752284Sobrien	parameters.
1031850397Sobrien	(pushdecl): Handle template type params just like other type
1031918334Speter	declarations.
1032050397Sobrien	(push_class_level_binding): Return immediately if the
1032118334Speter	class_binding_level is NULL.
1032250397Sobrien	(grokfndecl): If check_classfn() returns a member_template, use
1032350397Sobrien	the result of the template, not the template itself.
1032450397Sobrien
1032552284Sobrien	* decl2.c (check_member_template): New function.  Check to see
1032650397Sobrien	that the entity declared to be a member template can be one.
1032718334Speter	(check_classfn): Allow redeclaration of member template functions
1032850397Sobrien	with different types; the new functions can be specializations or
1032918334Speter	explicit instantiations.
1033050397Sobrien
1033150397Sobrien	* error.c (dump_decl): Handle multiple levels of template
1033250397Sobrien	parameters.
1033350397Sobrien	(dump_function_decl): Update to handle function templates.
1033450397Sobrien
1033550397Sobrien	* lex.c (do_pending_inlines): Set up template parameter context
1033650397Sobrien	for member templates.
1033752284Sobrien	(process_next_inline): Likewise.
1033818334Speter
1033950397Sobrien	* method.c (build_overload_identifier): Adjust for multiple levels
1034050397Sobrien	of template parameters.
1034150397Sobrien
1034250397Sobrien	* parse.y (fn.def2): Add member templates.
1034318334Speter	(component_decl_1): Likewise.
1034450397Sobrien
1034552284Sobrien	* pt.c (begin_member_template_processing): New function.
1034618334Speter	(end_member_template_processing): Likewise.
1034750397Sobrien	(is_member_template): Likewise.
1034850397Sobrien	(fn_type_unification): Likewise.
1034950397Sobrien	(current_template_parms): Return a vector of all the template
1035052284Sobrien	parms, not just the innermost level of parms.
1035150397Sobrien	(push_template_decl): Deal with the possibility of member
1035218334Speter	templates.
1035350397Sobrien	(lookup_template_class): Likewise.
1035450397Sobrien	(uses_template_parms): Likewise.
1035552284Sobrien	(tsubst): Modify processing to TEMPLATE_TYPE_PARM and
1035650397Sobrien	TEMPLATE_CONST_PARM to deal with multiple levels of template
1035750397Sobrien	arguments.   Add processing of TEMPLATE_DECL to produce new
1035818334Speter	TEMPLATE_DECLs from old ones.
1035950397Sobrien	(do_decl_instantiation): Handle member templates.
1036018334Speter
1036150397Sobrien	* search.c (lookup_fnfields_1): Handle member template conversion
1036218334Speter	operators.
1036350397Sobrien
1036418334Speter	* tree.c (cp_tree_equal): Check the levels, as well as the
1036550397Sobrien	indices, of TEMPLATE_CONST_PARMs.
1036650397Sobrien
1036750397Sobrien	* typeck.c (comptypes): Check the levels, as well as the indices,
1036850397Sobrien	fo TEMPLATE_TYPE_PARMs.
1036950397Sobrien	(build_x_function_call): Treat member templates like member
1037050397Sobrien	functions.
1037150397Sobrien
1037250397SobrienWed Sep  3 11:09:25 1997  Jason Merrill  <jason@yorick.cygnus.com>
1037350397Sobrien
1037450397Sobrien	* typeck.c (c_expand_return): Always convert_for_initialization
1037552284Sobrien	before checking for returning a pointer to local.
1037650397Sobrien
1037750397Sobrien	* pt.c (type_unification): If strict and the function parm doesn't
1037850397Sobrien	use template parms, just compare types.
1037950397Sobrien
1038050397SobrienWed Sep  3 10:35:49 1997  Klaus Espenlaub  <kespenla@student.informatik.uni-ulm.de>
1038150397Sobrien
1038252284Sobrien	* method.c (build_overloaded_value): Replace direct call
1038350397Sobrien	to the floating point emulator with REAL_VALUE_TO_DECIMAL macro.
1038450397Sobrien
1038518334SpeterWed Sep  3 00:02:53 1997  Jason Merrill  <jason@yorick.cygnus.com>
1038650397Sobrien
1038752284Sobrien	* typeck.c (convert_arguments): Don't arbitrarily choose the first
1038850397Sobrien	of a set of overloaded functions.
1038950397Sobrien
1039050397SobrienTue Sep  2 12:09:13 1997  Jason Merrill  <jason@yorick.cygnus.com>
1039150397Sobrien
1039252284Sobrien	* lex.c (real_yylex): Don't elide __FUNCTION__.
1039350397Sobrien
1039450397Sobrien	* method.c (build_overload_value): Add in_template parm.
1039550397Sobrien	(build_overload_int): Likewise.
1039618334Speter	(build_overload_identifier): Pass it.
1039750397Sobrien
1039850397Sobrien	* decl.c (duplicate_decls): Don't bash a previous template
1039918334Speter	definition with a redeclaration.
1040050397Sobrien
1040152284Sobrien	* pt.c (unify): float doesn't match double.
1040250397Sobrien
1040352284Sobrien	* pt.c (do_type_instantiation): Handle getting a _TYPE or a
1040418334Speter	TYPE_DECL.  Handle getting non-template types.
1040550397Sobrien	* parse.y (explicit_instantiation): Use typespec instead of
1040618334Speter	aggr template_type.
1040752284Sobrien
1040850397SobrienTue Sep  2 10:27:08 1997  Richard Henderson  <rth@cygnus.com>
1040950397Sobrien
1041050397Sobrien	* typeck.c (build_ptrmemfunc1): Clean up ptr->int cast warnings.
1041150397Sobrien
1041250397SobrienMon Sep  1 13:19:04 1997  Eugene Mamchits  <eugin@ips.ras.ru>
1041350397Sobrien
1041450397Sobrien	* call.c (add_builtin_candidate): Add missing TREE_TYPE.
1041550397Sobrien	(compare_ics): Likewise.
1041650397Sobrien
1041750397SobrienMon Sep  1 13:19:04 1997  Jason Merrill  <jason@yorick.cygnus.com>
1041850397Sobrien
1041950397Sobrien	* call.c (joust): Warn about choosing one conversion op over
1042050397Sobrien	another because of 'this' argument when the other return type is
1042152284Sobrien	better.
1042250397Sobrien	(source_type): New fn.
1042350397Sobrien
1042450397Sobrien	* call.c (build_new_op): Strip leading REF_BIND from first operand
1042550397Sobrien	to builtin operator.
1042650397Sobrien
1042750397Sobrien	* decl2.c (mark_vtable_entries): Mark abort_fndecl as used when we
1042850397Sobrien	use its RTL.
1042952284Sobrien
1043050397SobrienThu Aug 28 09:45:23 1997  Jason Merrill  <jason@yorick.cygnus.com>
1043152284Sobrien
1043250397Sobrien	* call.c (null_ptr_cst_p): Remove support for (void*)0.
1043352284Sobrien
1043452284SobrienWed Aug 27 02:03:34 1997  Jeffrey A Law  <law@cygnus.com>
1043550397Sobrien
1043650397Sobrien	* typeck.c (expand_target_expr): Make definition match declaration.
1043750397Sobrien
1043850397Sobrien	* class.c (get_basefndecls): Make definition match declaration.
1043950397Sobrien
1044050397SobrienMon Aug 25 14:30:02 1997  Jason Merrill  <jason@yorick.cygnus.com>
1044150397Sobrien
1044250397Sobrien	* input.c (sub_getch): Eventually give up and release the input file.
1044350397Sobrien
1044450397Sobrien	* decl.c (cp_finish_decl): If #p i/i, put inline statics in the
1044518334Speter	right place.
1044650397Sobrien
1044752284Sobrien	* call.c (joust): Tweak message.
1044850397Sobrien
1044952284SobrienSat Aug 23 18:02:59 1997  Mark Mitchell  <mmitchell@usa.net>
1045050397Sobrien
1045150397Sobrien	* error.c (type_as_string): Put const/volatile on template type
1045250397Sobrien	parameters where appropriate.
1045350397Sobrien
1045452284SobrienSat Aug 23 17:47:22 1997  Jeffrey A Law  <law@cygnus.com>
1045550397Sobrien
1045650397Sobrien	* call.c (strictly_better): Make arguments unsigned ints.
1045750397Sobrien
1045850397SobrienThu Aug 21 18:48:44 1997  Jason Merrill  <jason@yorick.cygnus.com>
1045950397Sobrien
1046052284Sobrien	* lex.c (real_yylex): Refer to __complex instead of complex.
1046150397Sobrien
1046252284SobrienThu Aug 21 22:25:46 1997  J"orn Rennecke  <amylaar@cygnus.co.uk>
1046352284Sobrien
1046418334Speter	* lex.c (real_yylex): Don't use getc directly.
1046550397Sobrien
1046650397SobrienWed Aug 20 17:25:08 1997  Jason Merrill  <jason@yorick.cygnus.com>
1046750397Sobrien
1046818334Speter	* call.c (is_subseq): Don't try to be clever.
1046952284Sobrien
1047050397SobrienWed Aug 20 03:13:36 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
1047152284Sobrien
1047250397Sobrien	* parse.y, pt.c: Include "except.h".
1047350397Sobrien	* call.c, class.c, class.h, cp-tree.h, cvt.c, decl.c, decl2.c,
1047418334Speter	error.c, except.c, expr.c, friend.c, g++spec.c, init.c, input.c,
1047550397Sobrien	lex.c, lex.h, method.c, parse.y, pt.c, repo.c, rtti.c, search.c,
1047650397Sobrien	sig.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: Finish
1047750397Sobrien	prototyping.
1047850397Sobrien
1047950397SobrienWed Aug 20 01:34:40 1997  Jason Merrill  <jason@yorick.cygnus.com>
1048050397Sobrien
1048150397Sobrien	* decl2.c (mark_vtable_entries): Instead of replacing pure
1048252284Sobrien	virtuals with a reference to __pure_virtual, copy the decl and
1048350397Sobrien	change the RTL.
1048450397Sobrien
1048550397SobrienTue Aug 19 02:26:07 1997  Jason Merrill  <jason@yorick.cygnus.com>
1048650397Sobrien
1048750397Sobrien	* pt.c (lookup_nested_type_by_name): Handle typedef wierdness.
1048850397Sobrien
1048950397Sobrien	* typeck2.c (my_friendly_abort): Report bugs to egcs-bugs@cygnus.com.
1049018334Speter
1049150397Sobrien	* pt.c (instantiate_class_template): Call repo_template_used
1049252284Sobrien	before finish_prevtable_vardecl.
1049318334Speter
1049450397Sobrien	* call.c (is_subseq): New fn.
1049550397Sobrien	(compare_ics): Use it.
1049618334Speter
1049750397Sobrien	* repo.c (finish_repo): Don't crash on no args.
1049850397Sobrien
1049950397Sobrien	* parse.y (named_complex_class_head_sans_basetype): Handle
1050052284Sobrien	explicit global scope.
1050152284Sobrien	* decl2.c (handle_class_head): New fn.
1050250397Sobrien
1050318334Speter	* pt.c (unify): Add CONST_DECL case.
1050450397Sobrien
1050552284SobrienThu Aug 14 10:05:13 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1050618334Speter
1050750397Sobrien	* rtti.c (permanent_obstack): Fix decl to not be a pointer.
1050850397Sobrien
1050918334Speter	* cp-tree.h (report_type_mismatch): Add prototype.
1051050397Sobrien	* call.c (build_overload_call_real): Remove erroneous fourth
1051118334Speter	argument to report_type_mismatch.
1051250397Sobrien	(build_user_type_conversion_1): Remove erroneous second arg to
1051350397Sobrien	tourney.
1051418334Speter	(build_new_function_call): Likewise.
1051550397Sobrien	(build_object_call): Likewise.
1051618334Speter	(build_new_op): Likewise.
1051750397Sobrien	(build_new_method_call): Likewise.
1051852284Sobrien
1051918334SpeterWed Aug 13 19:19:25 1997  Jason Merrill  <jason@yorick.cygnus.com>
1052050397Sobrien
1052118334Speter	* error.c (dump_decl): Don't bother processing a function with no
1052250397Sobrien	DECL_LANG_SPECIFIC.
1052318334Speter
1052450397Sobrien	* method.c (emit_thunk): Call init_function_start in the macro case.
1052550397Sobrien
1052650397SobrienWed Aug 13 10:46:19 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
1052718334Speter
1052850397Sobrien	* decl2.c (DEFAULT_VTABLE_THUNKS): Define to be 0 if not
1052952284Sobrien	defined and used to set flag_vtable_thunks.
1053018334Speter
1053150397SobrienTue Aug 12 20:13:57 1997  Jason Merrill  <jason@yorick.cygnus.com>
1053218334Speter
1053350397Sobrien	* parse.y: Don't clear the inlines from their obstack until they've
1053452284Sobrien	all been processed.
1053550397Sobrien
1053650397Sobrien	* decl.c (duplicate_decls): Don't complain about exception
1053718334Speter	specification mismatch if flag_exceptions is off.
1053850397Sobrien
1053918334SpeterMon Aug 11 15:01:56 1997  Marc Lehmann  <pcg@goof.com>
1054050397Sobrien
1054118334Speter	* Make-lang.in (c++.distclean): Remove g++.c on make distclean.
1054252284Sobrien
1054318334SpeterSun Aug 10 12:06:09 1997  Paul Eggert  <eggert@twinsun.com>
1054450397Sobrien
1054550397Sobrien	* cp-tree.h: Replace STDIO_PROTO with PROTO in include files.
1054618334Speter	* cvt.c, error.c, except.c, expr.c, friend.c, init.c, rtti.c:
1054750397Sobrien	Include <stdio.h> before include files that formerly used STDIO_PROTO.
1054818334Speter
1054950397Sobrien	* decl.c, g++spec.c, lex.c, method.c, repo.c:
1055052284Sobrien	Include "config.h" first, as per autoconf manual.
1055152284Sobrien
1055250397SobrienFri Aug  8 11:47:48 1997  Jason Merrill  <jason@yorick.cygnus.com>
1055318334Speter
1055450397Sobrien	* decl.c (duplicate_decls): Tweak wording.
1055550397Sobrien	* lex.c (do_pending_defargs): Don't die if we see a default arg
1055618334Speter	that isn't a DEFAULT_ARG.
1055750397Sobrien	* error.c (dump_expr): Handle DEFAULT_ARG.
1055850397Sobrien
1055918334Speter	* decl2.c (lang_decode_option): Handle -fhandle-exceptions.
1056050397Sobrien	* lang-options.h: Add -fhandle-exceptions.
1056118334Speter
1056250397Sobrien	* class.c (build_vtable): Vtables are artificial.
1056318334Speter	(prepare_fresh_vtable): Likewise.
1056452284Sobrien
1056518334SpeterWed Aug  6 11:02:36 1997  Jason Merrill  <jason@yorick.cygnus.com>
1056650397Sobrien
1056718334Speter	* cvt.c (ocp_convert): After converting to the target type, set
1056850397Sobrien	LOOKUP_NO_CONVERSION.
1056918334Speter
1057050397Sobrien	* call.c (joust): Warn about potentially confusing promotion rules
1057118334Speter	with -Wsign-promo.
1057250397Sobrien	* cp-tree.h, lang-options.h, decl2.c: Support -Wsign-promo.
1057318334Speter
1057450397SobrienTue Aug  5 15:15:07 1997  Michael Meissner  <meissner@cygnus.com>
1057550397Sobrien
1057618334Speter	* exception.cc: Declare __terminate_func with noreturn attribute.
1057750397Sobrien
1057818334SpeterFri Aug  1 03:18:15 1997  Jason Merrill  <jason@yorick.cygnus.com>
1057950397Sobrien
1058018334Speter	* parse.y: Break out eat_saved_input, handle errors.
1058150397Sobrien	(function_try_block): Use compstmt instead of compstmt_or_error.
1058250397Sobrien
1058318334SpeterThu Jul 31 17:14:04 1997  Jason Merrill  <jason@yorick.cygnus.com>
1058452284Sobrien
1058518334Speter	* tree.c (build_cplus_new): Don't set TREE_ADDRESSABLE.
1058650397Sobrien
1058718334SpeterFri Jul  4 01:45:16 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
1058850397Sobrien
1058918334Speter	* Make-lang.in (cplib2.txt, cplib2.ready): Instead of checking for
1059050397Sobrien	existence of cc1plus check whether $(LANGUAGES) contains C++.
1059118334Speter
1059252284SobrienWed Jul 30 13:04:21 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
1059318334Speter
1059450397Sobrien	* method.c (do_build_copy_constructor): When copying an anonymous
1059518334Speter	union member loop around to handle nested anonymous unions.  Use
1059650397Sobrien	the offset of the member relative to the outer structure, not the
1059718334Speter	union.
1059850397Sobrien
1059918334SpeterTue Jul 29 21:17:29 1997  Jason Merrill  <jason@yorick.cygnus.com>
1060050397Sobrien
1060118334Speter	* call.c (resolve_args): New fn.
1060250397Sobrien	(build_new_function_call): Use it.
1060350397Sobrien	(build_object_call): Likewise.
1060452284Sobrien	(build_new_method_call): Likewise.
1060552284Sobrien
1060652284SobrienMon Jul 28 16:02:36 1997  Jason Merrill  <jason@yorick.cygnus.com>
1060752284Sobrien
1060818334Speter	* call.c (build_over_call): tsubst all default parms from templates.
1060950397Sobrien
1061018334SpeterWed Jul 23 13:36:25 1997  Jason Merrill  <jason@yorick.cygnus.com>
1061150397Sobrien
1061250397Sobrien	* decl.c (struct cp_function): Add static_labelno.
1061350397Sobrien	(push_cp_function_context): Save it.
1061418334Speter	(pop_cp_function_context): Restore it.
1061550397Sobrien
1061618334SpeterTue Jul 22 14:43:29 1997  Jason Merrill  <jason@yorick.cygnus.com>
1061750397Sobrien
1061818334Speter	* typeck.c (build_component_ref_1): Convert from reference.
1061950397Sobrien
1062018334SpeterTue Jul 22 11:06:23 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1062150397Sobrien
1062250397Sobrien	* parse.y (current_declspecs, prefix_attributes): Initialize to
1062318334Speter	NULL_TREE.
1062450397Sobrien
1062550397Sobrien	* parse.y (initdcl0): Make sure CURRENT_DECLSPECS is non-nil
1062618334Speter	before we try to force it to be a TREE_LIST.
1062750397Sobrien	(decl): Make sure $1.t is non-nil.
1062818334Speter
1062950397SobrienSun Jul 20 11:53:07 1997  Jason Merrill  <jason@yorick.cygnus.com>
1063052284Sobrien
1063150397Sobrien	* pt.c (uses_template_parms): Handle template first-parse codes.
1063218334Speter
1063350397Sobrien	* decl.c (cp_finish_decl): Only warn about user-defined statics.
1063418334Speter
1063550397SobrienFri Jul 18 17:56:08 1997  Jason Merrill  <jason@yorick.cygnus.com>
1063618334Speter
1063750397Sobrien	* pt.c (unify): Handle BOOLEAN_TYPE.
1063818334Speter
1063950397Sobrien	* cp-tree.h: Lose PARM_DEFAULT_FROM_TEMPLATE.
1064050397Sobrien	* pt.c (tsubst): Don't set it.
1064150397Sobrien	* call.c (build_over_call): Use uses_template_parms.
1064250397Sobrien
1064350397SobrienThu Jul 17 18:06:30 1997  Jason Merrill  <jason@yorick.cygnus.com>
1064450397Sobrien
1064550397Sobrien	* method.c (build_overload_nested_name): Use static_labelno
1064650397Sobrien	instead of var_labelno.
1064750397Sobrien	(build_qualified_name): New fn.
1064818334Speter	(build_overload_name): Split out from here.
1064950397Sobrien	(build_static_name): Use build_qualified_name.
1065018334Speter	* decl.c (cp_finish_decl): Statics in extern inline functions
1065150397Sobrien	have comdat linkage.
1065250397Sobrien	(start_function): Initialize static_labelno.
1065318334Speter
1065450397SobrienThu Jul 17 11:20:17 1997  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
1065518334Speter
1065650397Sobrien	* class.c (finish_struct_methods): Add check of warn_ctor_dtor_privacy
1065718334Speter	before "all member functions in class [] are private".
1065850397Sobrien
1065950397SobrienWed Jul 16 23:47:08 1997  Jason Merrill  <jason@yorick.cygnus.com>
1066018334Speter
1066150397Sobrien	* lex.c (do_scoped_id): convert_from_reference.
1066218334Speter	* init.c (build_offset_ref): Likewise.
1066352284Sobrien
1066450397SobrienWed Jul 16 12:34:29 1997  Benjamin Kosnik  <bkoz@lisa.cygnus.com>
1066518334Speter
1066650397Sobrien	* error.c (dump_expr): Check TREE_OPERAND before dump_expr_list.
1066752284Sobrien
1066818334SpeterMon Jul 14 03:23:46 1997  Jason Merrill  <jason@yorick.cygnus.com>
1066952284Sobrien
1067018334Speter	* typeck.c (get_member_function_from_ptrfunc): Promote index
1067150397Sobrien	before saving it.
1067218334Speter
1067350397SobrienSun Jul 13 00:11:52 1997  Jason Merrill  <jason@yorick.cygnus.com>
1067418334Speter
1067550397Sobrien	* tree.c (layout_basetypes): Move non-virtual destructor warning.
1067650397Sobrien	* decl.c (xref_basetypes): Remove non-virtual destructor warning.
1067752284Sobrien
1067818334SpeterSat Jul 12 12:47:12 1997  Jason Merrill  <jason@yorick.cygnus.com>
1067950397Sobrien
1068052284Sobrien	* decl.c (grokdeclarator): Call add_defarg_fn for the function
1068118334Speter	type, too.
1068250397Sobrien	* lex.c (add_defarg_fn): Adjust.
1068318334Speter	(do_pending_defargs): Adjust.  Don't skip the first parm.
1068450397Sobrien
1068550397SobrienFri Jul 11 01:39:50 1997  Jason Merrill  <jason@yorick.cygnus.com>
1068650397Sobrien
1068750397Sobrien	* decl.c (build_enumerator): Global enumerators are also readonly.
1068818334Speter
1068950397Sobrien	* rtti.c (build_dynamic_cast_1): Renamed from build_dynamic_cast.
1069050397Sobrien	(build_dynamic_cast): Call it and convert_from_reference.
1069118334Speter
1069252284Sobrien	* lex.c (add_defarg_fn): New fn.
1069350397Sobrien	(snarf_defarg): Don't add to defarg_types.
1069418334Speter	(do_pending_defargs): Lose defarg_types.  All fns we process now
1069550397Sobrien	have defargs.
1069618334Speter	* decl.c (grokfndecl): Call add_defarg_fn.
1069750397Sobrien
1069852284Sobrien	* Makefile.in (CONFLICTS): Expect 18 s/r conflicts.
1069918334Speter	* cp-tree.def: Add DEFAULT_ARG.
1070050397Sobrien	* spew.c (yylex): Call snarf_defarg as appropriate.
1070150397Sobrien	* parse.y: New tokens DEFARG and DEFARG_MARKER.
1070250397Sobrien	(defarg_again, pending_defargs, defarg, defarg1): New rules.
1070318334Speter	(structsp): Use pending_defargs.
1070450397Sobrien	(parms, full_parm): Use defarg.
1070518334Speter	* lex.c (init_lex): Initialize inline_text_firstobj.
1070650397Sobrien	(do_pending_inlines): Never pass the obstack to feed_input.
1070718334Speter	(process_next_inline): Call end_input instead of restore_pending_input.
1070850397Sobrien	(clear_inline_text_obstack, reinit_parse_for_expr, do_pending_defargs,
1070918334Speter	finish_defarg, feed_defarg, snarf_defarg, maybe_snarf_defarg): New fns.
1071050397Sobrien	* input.c (end_input): New fn.
1071150397Sobrien	(sub_getch): At the end of some fed input, just keep returning EOF
1071218334Speter	until someone calls end_input.
1071350397Sobrien	Remove 'obstack' field from struct input_source.
1071418334Speter	* decl.c (grokparms): Handle DEFAULT_ARG.
1071550397Sobrien	(replace_defarg): New fn.
1071618334Speter	* cp-tree.h (DEFARG_LENGTH, DEFARG_POINTER): New macros.
1071750397Sobrien
1071818334SpeterWed Jul  9 13:44:12 1997  Jason Merrill  <jason@yorick.cygnus.com>
1071950397Sobrien
1072050397Sobrien	* call.c (implicit_conversion): If nothing else works, try binding
1072118334Speter	an rvalue to a reference.
1072250397Sobrien
1072318334SpeterWed Jul  9 13:04:38 1997  Geoffrey Noer  <noer@cygnus.com>
1072450397Sobrien
1072550397Sobrien	* decl.c (init_decl_processing): Fix Jun 30 patch -- move
1072650397Sobrien	ifndef for Cygwin32 to include SIGSEGV.
1072750397Sobrien
1072818334SpeterThu Jul  3 01:44:05 1997  Jason Merrill  <jason@yorick.cygnus.com>
1072950397Sobrien
1073018334Speter	* class.c (finish_struct_1): Only complain about pointers without
1073150397Sobrien	copy stuff if there are any constructors.
1073250397Sobrien
1073350397Sobrien	* rtti.c (build_dynamic_cast): Call complete_type on the types.
1073450397Sobrien
1073518334Speter	* decl.c (grokfndecl): If the function we chose doesn't actually
1073650397Sobrien	match, die.
1073718334Speter
1073850397Sobrien	* decl2.c (grokclassfn): Don't specify 'const int' for the
1073918334Speter	artificial destructor parm.
1074050397Sobrien
1074118334Speter	* pt.c (type_unification): If we are called recursively, nothing
1074250397Sobrien	decays.
1074350397Sobrien
1074450397SobrienMon Jun 30 17:53:21 1997  Geoffrey Noer  <noer@cygnus.com>
1074518334Speter
1074650397Sobrien	* decl.c (init_decl_processing): Stop trying to catch signals
1074718334Speter	other than SIGABRT since the Cygwin32 library doesn't support
1074850397Sobrien	them correctly yet.  This fixes a situation in which g++ causes
1074918334Speter	a hang on SIGSEGVs and other such signals in our Win32-hosted
1075050397Sobrien	tools.
1075118334Speter
1075250397SobrienMon Jun 30 14:50:01 1997  Jason Merrill  <jason@yorick.cygnus.com>
1075350397Sobrien
1075418334Speter	* tree.c (mapcar, case CALL_EXPR): Handle all the parse node data.
1075550397Sobrien
1075650397SobrienFri Jun 27 15:18:49 1997  Jason Merrill  <jason@yorick.cygnus.com>
1075750397Sobrien
1075818334Speter	* typeck2.c (store_init_value): Always return the value if our
1075950397Sobrien	type needs constructing.
1076018334Speter
1076150397Sobrien	* method.c (hack_identifier): Convert class statics from
1076218334Speter	reference, too.
1076350397Sobrien
1076418334SpeterThu Jun 26 11:44:46 1997  Jason Merrill  <jason@yorick.cygnus.com>
1076550397Sobrien
1076618334Speter	* Make-lang.in (cplib2.ready): Add $(LANGUAGES) dependency.
1076750397Sobrien
1076818334SpeterThu Jun 19 16:49:28 1997  Mike Stump  <mrs@cygnus.com>
1076950397Sobrien
1077050397Sobrien	* typeck.c (c_expand_return): Make sure we clean up temporaries at
1077150397Sobrien	the end of return x;
1077218334Speter
1077350397SobrienThu Jun 19 12:28:43 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1077418334Speter
1077550397Sobrien	* lex.c (check_for_missing_semicolon): Also check for CV_QUALIFIER.
1077652284Sobrien
1077750397SobrienTue Jun 17 18:35:57 1997  Mike Stump  <mrs@cygnus.com>
1077850397Sobrien
1077950397Sobrien	* except.c (expand_builtin_throw): Add support
1078052284Sobrien	-fno-sjlj-exceptions -fPIC exception handling on the SPARC.
1078150397Sobrien
1078250397SobrienMon Jun 16 01:24:37 1997  Jason Merrill  <jason@yorick.cygnus.com>
1078318334Speter
1078450397Sobrien	* repo.c (extract_string): Null-terminate.
1078518334Speter
1078652284Sobrien	* cp-tree.h (TI_SPEC_INFO): New macro.
1078752284Sobrien	(CLASSTYPE_TI_SPEC_INFO): New macro.
1078818334Speter	* pt.c (push_template_decl): Correctly determine # of template parms
1078950397Sobrien	for partial specs.
1079018334Speter
1079150397Sobrien	* call.c (compare_ics): Really fix 'this' conversions.
1079250397Sobrien
1079318334Speter	* pt.c (do_decl_instantiation): Don't crash on explicit inst of
1079450397Sobrien	non-template fn.
1079518334Speter
1079650397Sobrien	* pt.c (push_template_decl): Complain about mismatch in # of
1079718334Speter	template parms between a class template and a member template.
1079850397Sobrien
1079918334SpeterSun Jun 15 02:38:20 1997  Jason Merrill  <jason@yorick.cygnus.com>
1080050397Sobrien
1080152284Sobrien	* method.c (synthesize_method): You can't call
1080218334Speter	function_cannot_inline_p after finish_function.
1080350397Sobrien	* decl.c (finish_function): Turn on flag_inline_functions and turn
1080418334Speter	off DECL_INLINE before handing a synthesized method to the
1080550397Sobrien	backend.
1080650397Sobrien
1080718334SpeterThu Jun 12 17:35:28 1997  Jason Merrill  <jason@yorick.cygnus.com>
1080850397Sobrien
1080918334Speter	* method.c (synthesize_method): Remove July 30 change to never set
1081050397Sobrien	DECL_INLINE if at_eof.
1081150397Sobrien
1081250397SobrienThu Jun 12 15:25:08 1997  Mike Stump  <mrs@cygnus.com>
1081350397Sobrien
1081418334Speter	* xref.c (GNU_xref_member): Ensure that the node has a
1081550397Sobrien	decl_lang_specific part before checking DECL_FRIEND_P.
1081618334Speter
1081750397SobrienThu Jun 12 12:36:05 1997  Jason Merrill  <jason@yorick.cygnus.com>
1081818334Speter
1081950397Sobrien	* pt.c (instantiate_class_template): Diagnose non-class types used
1082050397Sobrien	as bases.
1082118334Speter
1082250397SobrienWed Jun 11 17:33:40 1997  Jason Merrill  <jason@yorick.cygnus.com>
1082350397Sobrien
1082450397Sobrien	* typeck.c (build_conditional_expr): Use convert_for_initialization
1082550397Sobrien	instead of convert_and_check.
1082650397Sobrien
1082718334SpeterWed Jun 11 12:31:33 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1082850397Sobrien
1082950397Sobrien	* parse.y (typespec): Don't pedwarn for typeof.
1083050397Sobrien
1083150397SobrienTue Jun 10 00:22:09 1997  Jason Merrill  <jason@yorick.cygnus.com>
1083250397Sobrien
1083350397Sobrien	* repo.c (finish_repo): Only check changes if we would write a
1083450397Sobrien	repo file.
1083550397Sobrien
1083650397Sobrien	* call.c (compare_ics): Fix handling of 'this' conversions.
1083750397Sobrien
1083850397Sobrien	* pt.c (do_decl_instantiation): Support static data too.  Rename
1083950397Sobrien	from do_function_instantiation.
1084050397Sobrien	* cp-tree.h: Adjust.
1084150397Sobrien	* parse.y: Adjust.
1084250397Sobrien
1084350397Sobrien	* repo.c (extract_string): New fn.
1084450397Sobrien	(get_base_filename): Use it.
1084550397Sobrien	(init_repo): Compare old args with current args.
1084650397Sobrien
1084718334SpeterMon Jun  9 14:25:30 1997  Mike Stump  <mrs@cygnus.com>
1084850397Sobrien
1084918334Speter	* Makefile.in, Make-lang.in: Protect C-ls with a comment
1085050397Sobrien	character, idea from Paul Eggert <eggert@twinsun.com>.
1085150397Sobrien
1085218334SpeterMon Jun  9 01:52:03 1997  Jason Merrill  <jason@yorick.cygnus.com>
1085350397Sobrien
1085418334Speter	* typeck.c (c_expand_return): Be more persistent in looking for
1085552284Sobrien	returned temps.
1085650397Sobrien
1085718334Speter	* cvt.c (build_up_reference): Use NOP_EXPR for switching from
1085850397Sobrien	pointer to reference.
1085918334Speter
1086050397Sobrien	* class.c (build_vbase_path): Don't do anything if PATH has no steps.
1086150397Sobrien
1086218334SpeterSun Jun  8 03:07:05 1997  Jason Merrill  <jason@yorick.cygnus.com>
1086350397Sobrien
1086418334Speter	* init.c (build_member_call, build_offset_ref):
1086550397Sobrien	Use do_scoped_id instead of do_identifier.
1086652284Sobrien
1086718334Speter	* cvt.c (convert): Remove bogosity.
1086850397Sobrien
1086952284SobrienSat Jun  7 20:50:17 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1087018334Speter
1087152284Sobrien	* cvt.c (build_up_reference): Do checks of ARGTYPE and
1087250397Sobrien	TARGET_TYPE before trying to use get_binfo.
1087318334Speter
1087450397SobrienFri Jun  6 17:36:39 1997  Jason Merrill  <jason@yorick.cygnus.com>
1087518334Speter
1087652284Sobrien	* cvt.c (build_up_reference): Call get_binfo to get access control.
1087750397Sobrien
1087850397Sobrien	* decl2.c (import_export_decl): If we don't support weaks, leave
1087950397Sobrien	statics undefined.
1088050397Sobrien
1088118334SpeterFri Jun  6 15:55:49 1997  Mike Stump  <mrs@cygnus.com>
1088250397Sobrien
1088318334Speter	* except.c (expand_builtin_throw): Add support for machines that
1088450397Sobrien	cannot access globals after throw's epilogue when
1088518334Speter	-fno-sjlj-exceptions is used.
1088650397Sobrien
1088718334SpeterThu Jun  5 16:28:43 1997  Jason Merrill  <jason@yorick.cygnus.com>
1088852284Sobrien
1088950397Sobrien	* parse.y: 'std::' becomes '::'.
1089018334Speter	* lex.c (real_yylex): Remove 'namespace' warning.
1089150397Sobrien	* init.c (build_member_call): Ignore 'std::'.
1089252284Sobrien	(build_offset_ref): Likewise.
1089318334Speter	* decl2.c (do_using_directive): Ignore 'using namespace std;'.
1089450397Sobrien	(do_toplevel_using_decl): Ignore 'using std::whatever'.
1089518334Speter	* decl.c (push_namespace): Just sorry.
1089650397Sobrien	(pop_namespace): Nop.
1089718334Speter	(init_decl_processing): Declare std namespace.
1089850397Sobrien
1089918334SpeterTue Jun  3 18:08:23 1997  Jason Merrill  <jason@yorick.cygnus.com>
1090050397Sobrien
1090150397Sobrien	* search.c (push_class_decls): A name which ambiguously refers to
1090218334Speter	several instantiations of the same template just refers to the
1090350397Sobrien	template.
1090418334Speter
1090550397SobrienTue Jun  3 12:30:40 1997  Benjamin Kosnik  <bkoz@cirdan.cygnus.com>
1090618334Speter
1090750397Sobrien	* decl.c (build_enumerator): Fix problem with unsigned long
1090818334Speter	enumerated values being smashed to ints, causing overflow
1090950397Sobrien	when computing next enumerated value (for enum values around
1091052284Sobrien	MAX_VAL).
1091118334Speter
1091250397SobrienMon Jun  2 17:40:56 1997  Jason Merrill  <jason@yorick.cygnus.com>
1091318334Speter
1091450397Sobrien	* typeck.c (build_component_ref): Only call mark_used on a decl.
1091518334Speter
1091650397SobrienThu May 29 15:54:17 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1091750397Sobrien
1091852284Sobrien	* typeck.c (build_c_cast): Make the check for a ptr to function
1091950397Sobrien	more specific before possible default_conversion call.
1092018334Speter
1092150397SobrienThu May 29 13:02:06 1997  Mike Stump  <mrs@cygnus.com>
1092218334Speter
1092350397Sobrien	* except.c (expand_exception_blocks): Simplify and fix and make
1092450397Sobrien	sure we don't end a region in a sequence, as expand_end_bindings
1092518334Speter	doesn't like it.
1092650397Sobrien
1092752284SobrienWed May 28 17:08:03 1997  Mike Stump  <mrs@cygnus.com>
1092818334Speter
1092950397Sobrien	* except.c (init_exception_processing): Mark terminate as not
1093018334Speter	returning so that the optimizer can optimize better.
1093150397Sobrien
1093252284SobrienTue May 27 19:49:19 1997  Mike Stump  <mrs@cygnus.com>
1093350397Sobrien
1093452284Sobrien	* cvt.c (convert): Don't do any extra work, if we can avoid it
1093552284Sobrien	easily.
1093618334Speter
1093750397SobrienTue May 27 18:21:47 1997  Mike Stump  <mrs@cygnus.com>
1093818334Speter
1093950397Sobrien	* *.[chy]: Change cp_convert to ocp_convert, change convert to
1094052284Sobrien	cp_convert.  convert is now reserved for the backend, and doesn't
1094118334Speter	have the semantics a frontend person should ever want.
1094250397Sobrien
1094318334SpeterFri May 23 10:58:31 1997  Jason Merrill  <jason@yorick.cygnus.com>
1094450397Sobrien
1094550397Sobrien	* lang-specs.h: Define __EXCEPTIONS if exceptions are enabled.
1094618334Speter	Lose -traditional support.
1094750397Sobrien
1094818334SpeterThu May 22 15:41:28 1997  Jason Merrill  <jason@yorick.cygnus.com>
1094950397Sobrien
1095050397Sobrien	* rtti.c (get_tinfo_var): Use TYPE_PRECISION (sizetype).
1095118334Speter
1095250397Sobrien	* parse.y (self_reference): Do it for templates, too.
1095318334Speter	* class.c (pushclass): Don't overload_template_name; the alias
1095450397Sobrien	generated by build_self_reference serves the same purpose.
1095550397Sobrien
1095618334Speter	* tree.c (list_hash): Make static, take more args.
1095750397Sobrien	(list_hash_lookup): Likewise.
1095818334Speter	(list_hash_add): Make static.
1095950397Sobrien	(list_hash_canon): Lose.
1096018334Speter	(hash_tree_cons): Only build a new node if one isn't already in the
1096150397Sobrien	hashtable.
1096218334Speter	(hash_tree_chain): Use hash_tree_cons.
1096350397Sobrien	* cp-tree.h: Adjust.
1096450397Sobrien	* decl.c (grokfndecl): Just check IDENTIFIER_GLOBAL_VALUE instead
1096518334Speter	of calling lookup_name.
1096650397Sobrien
1096718334SpeterWed May 21 18:24:19 1997  Jason Merrill  <jason@yorick.cygnus.com>
1096850397Sobrien
1096950397Sobrien	* pt.c (instantiate_class_template): TYPE_VALUES for an enum
1097050397Sobrien	doesn't refer to the CONST_DECLs.
1097150397Sobrien
1097218334SpeterTue May 20 21:09:32 1997  Bob Manson  <manson@charmed.cygnus.com>
1097350397Sobrien
1097450397Sobrien	* rtti.c (get_tinfo_var): Either INT_TYPE_SIZE or 32, whichever
1097550397Sobrien	is bigger.
1097618334Speter	(expand_class_desc): Convert the last argument to a sizetype.
1097750397Sobrien
1097818334SpeterTue May 20 13:55:57 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1097950397Sobrien
1098052284Sobrien	* gxx.gperf (__complex, __complex__, __imag, __imag__, __real,
1098118334Speter	__real__): Add reswords.
1098250397Sobrien	* hash.h: Regenerate.
1098318334Speter	* lex.h (rid): Add RID_COMPLEX.
1098450397Sobrien	(RID_LAST_MODIFIER): Set to RID_COMPLEX.
1098552284Sobrien	* lex.c (init_lex): Add building of RID_COMPLEX.
1098618334Speter	(real_yylex): General cleanup in line with what c-lex.c also has,
1098750397Sobrien	sans the cruft for traditional; add handling of SPEC_IMAG, complex
1098852284Sobrien	types, and imaginary numeric constants.
1098918334Speter	* parse.y (REALPART, IMAGPART): Add tokens.
1099050397Sobrien	(unary_expr): Add REALPART and IMAGPART rules.
1099118334Speter	* cp-tree.h (complex_{integer,float,double,long}_type_node): Declare.
1099250397Sobrien	* decl.c (complex_{integer,float,double,long}_type_node): Define
1099318334Speter	types.
1099450397Sobrien	(init_decl_processing): Set up the types.
1099552284Sobrien	(grokdeclarator): Add handling of RID_COMPLEX.  Set and use
1099618334Speter	DEFAULTED_INT instead of EXPLICIT_INT when we default to int type.
1099750397Sobrien	* call.c (build_new_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
1099818334Speter	* cvt.c (cp_convert): Handle COMPLEX_TYPE.
1099950397Sobrien	* error.c (dump_type_prefix, dump_type, dump_type_suffix): Add
1100018334Speter	COMPLEX_TYPE case.
1100150397Sobrien	* method.c (build_overload_name): Add handling of the different
1100250397Sobrien	COMPLEX_TYPEs, prefixing them with `J'.
1100318334Speter	* pt.c (process_template_parm): Don't let them use a COMPLEX_TYPE
1100450397Sobrien	as a template parm.
1100518334Speter	(uses_template_parms, tsubst, unify): Add COMPLEX_TYPE case.
1100650397Sobrien	* tree.c (lvalue_p): Add REALPART_EXPR and IMAGPART_EXPR cases.
1100718334Speter	(mapcar): Handle COMPLEX_CST.
1100850397Sobrien	* typeck.c (build_binary_op_nodefault): Handle COMPLEX_TYPE.
1100952284Sobrien	(common_type): Add code for complex types.
1101018334Speter	(build_unary_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
1101150397Sobrien	(convert_for_assignment): Likewise.
1101218334Speter	(mark_addressable): Add REALPART_EXPR and IMAGPART_EXPR cases.
1101350397Sobrien
1101452284SobrienMon May 19 12:26:27 1997  Jason Merrill  <jason@yorick.cygnus.com>
1101552284Sobrien
1101618334Speter	* pt.c (tsubst): Don't pass the MINUS_EXPR for an array domain to
1101750397Sobrien	tsubst_expr, as it might try to do overload resolution.
1101818334Speter
1101950397SobrienSat May 17 10:48:31 1997  Jason Merrill  <jason@yorick.cygnus.com>
1102050397Sobrien
1102150397Sobrien	* pt.c (instantiate_class_template): Oops.
1102250397Sobrien
1102350397SobrienFri May 16 14:23:57 1997  Jason Merrill  <jason@yorick.cygnus.com>
1102450397Sobrien
1102550397Sobrien	* cp-tree.def: Add TAG_DEFN.
1102650397Sobrien	* pt.c (tsubst_enum): New fn.
1102750397Sobrien	(instantiate_class_template): Use it.
1102818334Speter	(tsubst_expr): Support TAG_DEFN.
1102950397Sobrien	(tsubst): Support local enums.
1103018334Speter	(tsubst_copy): Likewise.
1103150397Sobrien	* decl.c (finish_enum): Likewise.
1103252284Sobrien	(start_enum): If this is a local enum, switch to permanent_obstack.
1103352284Sobrien
1103418334SpeterWed May 14 19:08:28 1997  Mike Stump  <mrs@cygnus.com>
1103550397Sobrien
1103618334Speter	* decl.c (store_parm_decls): Set last_parm_cleanup_insn here.
1103752284Sobrien	(finish_function): Put the base init code for constructors just
1103850397Sobrien	after the parm cleanup insns.
1103952284Sobrien	(struct cp_function): Add last_parm_cleanup_insn.
1104050397Sobrien	(push_cp_function_context): Likewise.
1104118334Speter	(pop_cp_function_context): Likewise.
1104250397Sobrien
1104318334SpeterTue May 13 15:51:20 1997  Jason Merrill  <jason@yorick.cygnus.com>
1104450397Sobrien
1104518334Speter	* pt.c (tsubst_copy): Handle BIT_NOT_EXPR.
1104650397Sobrien
1104718334SpeterWed May  7 11:17:59 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1104850397Sobrien
1104950397Sobrien	* method.c (emit_thunk) [ASM_OUTPUT_MI_THUNK]: Build up the RTL
1105018334Speter	for THUNK_FNDECL before we switch to temporary allocation.
1105150397Sobrien
1105218334SpeterMon May  5 14:46:53 1997  Jason Merrill  <jason@yorick.cygnus.com>
1105350397Sobrien
1105450397Sobrien	* call.c (build_new_op): Handle null arg2 for ?:.
1105550397Sobrien
1105618334SpeterThu May  1 18:26:37 1997  Mike Stump  <mrs@cygnus.com>
1105750397Sobrien
1105818334Speter	* except.c (expand_exception_blocks): Ensure that we flow through
1105950397Sobrien	the end of the exception region for the exception specification.
1106050397Sobrien	Move exception region for the exception specification in, so that
1106118334Speter	it doesn't protect the parm cleanup.  Remove some obsolete code.
1106250397Sobrien	* decl.c (store_parm_decls): Likewise.
1106318334Speter	(finish_function): Likewise.
1106450397Sobrien
1106550397SobrienTue Apr 29 15:38:54 1997  Jason Merrill  <jason@yorick.cygnus.com>
1106618334Speter
1106750397Sobrien	* init.c (build_new): Fix nothrow handling.
1106818334Speter
1106950397SobrienTue Apr 29 14:29:50 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1107050397Sobrien
1107150397Sobrien	* init.c (emit_base_init): Don't warn about the initialization
1107218334Speter	list for an artificial member.
1107350397Sobrien
1107418334SpeterFri Apr 25 17:47:59 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1107550397Sobrien
1107650397Sobrien	* expr.c (do_case): Handle !START case for the error msg.
1107718334Speter
1107850397SobrienFri Apr 25 11:55:23 1997  Jason Merrill  <jason@yorick.cygnus.com>
1107918334Speter
1108050397Sobrien	* decl2.c, lang-options.h: New option -Weffc++.
1108118334Speter	* class.c, decl.c, init.c, typeck.c: Move Effective C++ warnings
1108250397Sobrien	to -Weffc++.
1108350397Sobrien
1108450397Sobrien	* decl2.c (finish_prevtable_vardecl): Change NO_LINKAGE_HEURISTICS
1108518334Speter	to MULTIPLE_SYMBOL_SPACES.
1108650397Sobrien
1108750397SobrienWed Apr 23 18:06:50 1997  Jason Merrill  <jason@yorick.cygnus.com>
1108850397Sobrien
1108950397Sobrien	* method.c (emit_thunk, generic case): Set current_function_is_thunk.
1109050397Sobrien
1109150397Sobrien	* method.c (emit_thunk, macro case): Set up DECL_RESULT.
1109250397Sobrien
1109350397Sobrien	* typeck.c (c_expand_return): Don't complain about returning void
1109450397Sobrien	to void in an artificial function.
1109550397Sobrien	* method.c (make_thunk): Change settings of READONLY/VOLATILE,
1109618334Speter	don't set DECL_RESULT, set DECL_ARTIFICIAL.
1109750397Sobrien	(emit_thunk, generic code): Also set up DECL_LANG_SPECIFIC.
1109818334Speter
1109950397SobrienWed Apr 23 14:43:06 1997  Mike Stump  <mrs@cygnus.com>
1110050397Sobrien
1110118334Speter	* init.c (init_decl_processing): Add support for setjmp/longjmp based
1110250397Sobrien	exception handling.
1110318334Speter	* except.c (init_exception_processing): Likewise.
1110450397Sobrien	(expand_end_catch_block): Likewise.
1110550397Sobrien	(expand_exception_blocks): Likewise.
1110650397Sobrien	(expand_throw): Likewise.
1110718334Speter	* exception.cc (__default_terminate): Likewise.
1110850397Sobrien
1110918334Speter	* init.c (perform_member_init): Use new method of expr level
1111050397Sobrien	cleanups, instead of cleanups_this_call and friends.
1111150397Sobrien	(emit_base_init): Likewise.
1111250397Sobrien	(expand_aggr_vbase_init_1): Likewise.
1111350397Sobrien	(expand_vec_init): Likewise.
1111450397Sobrien	* decl.c (cp_finish_decl): Likewise.
1111550397Sobrien	(expand_static_init): Likewise.
1111650397Sobrien	(store_parm_decls): Likewise.
1111750397Sobrien	(cplus_expand_expr_stmt): Likewise.
1111850397Sobrien	* decl2.c (finish_file): Likewise.
1111950397Sobrien
1112050397Sobrien	* Make-lang.in (exception.o): Ok to compile with -O now.
1112150397Sobrien
1112250397Sobrien	* decl.c (maybe_build_cleanup_1): We no longer have to unsave, as
1112350397Sobrien	we know it will be done later by the backend.
1112450397Sobrien
1112550397Sobrien	* decl2.c (lang_f_options): Remove support for short temps.
1112650397Sobrien	* lang-options.h: Likewise.
1112750397Sobrien
1112850397SobrienWed Apr 23 04:12:06 1997  Jason Merrill  <jason@yorick.cygnus.com>
1112950397Sobrien
1113050397Sobrien	* tree.c (varargs_function_p): New fn.
1113150397Sobrien	* method.c (emit_thunk): Replace broken generic code with code to
1113250397Sobrien	generate a heavyweight thunk function.
1113350397Sobrien
1113450397SobrienTue Apr 22 02:45:18 1997  Jason Merrill  <jason@yorick.cygnus.com>
1113550397Sobrien
1113650397Sobrien	* pt.c (process_template_parm): pedwarn about floating-point parms.
1113750397Sobrien
1113850397Sobrien	* decl.c (grokdeclarator): inline no longer implies static.
1113950397Sobrien
1114050397Sobrien	* spew.c (yylex): Always return the TYPE_DECL if we got a scope.
1114150397Sobrien
1114250397SobrienMon Apr 21 15:42:27 1997  Jason Merrill  <jason@yorick.cygnus.com>
1114318334Speter
1114450397Sobrien	* class.c (check_for_override): The signature of an overriding
1114518334Speter	function is not changed.
1114650397Sobrien
1114750397Sobrien	* call.c (build_over_call): Move setting of conv into the loop.
1114818334Speter	Note: this change, along with the related changes of the 18th thru
1114950397Sobrien	the 20th of April, fix an infinite loop problem in conversions.
1115018334Speter
1115150397SobrienSun Apr 20 16:24:29 1997  Jason Merrill  <jason@yorick.cygnus.com>
1115218334Speter
1115350397Sobrien	* call.c (build_user_type_conversion_1): Really ignore rvalue
1115418334Speter	conversions when looking for a REFERENCE_TYPE.
1115550397Sobrien
1115650397Sobrien	* cvt.c (build_up_reference): Eviscerate, use build_unary_op.
1115750397Sobrien	* cp-tree.h (TREE_REFERENCE_EXPR): #if 0.
1115850397Sobrien	* typeck.c (decay_conversion): Don't set TREE_REFERENCE_EXPR.
1115950397Sobrien	(build_unary_op): Likewise.
1116050397Sobrien	* call.c (build_over_call): See through a CONVERT_EXPR around the
1116150397Sobrien	ADDR_EXPR for on a temporary.
1116250397Sobrien	* typeck.c (c_expand_return): See through a CONVERT_EXPR around
1116318334Speter	the ADDR_EXPR for a local variable.
1116450397Sobrien
1116518334SpeterFri Apr 18 12:11:33 1997  Jason Merrill  <jason@yorick.cygnus.com>
1116650397Sobrien
1116750397Sobrien	* call.c (build_user_type_conversion_1): If we're trying to
1116850397Sobrien	convert to a REFERENCE_TYPE, only consider lvalue conversions.
1116950397Sobrien	(build_new_function_call): Print candidates.
1117050397Sobrien	(implicit_conversion): Try a temp binding if the lvalue conv is BAD.
1117150397Sobrien	(reference_binding): Binding a temporary of a reference-related type
1117252284Sobrien	is BAD.
1117350397Sobrien
1117418334SpeterThu Apr 17 14:37:22 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1117550397Sobrien
1117618334Speter	* inc/typeinfo (type_info::before): Add cv-qualifier-seq.
1117750397Sobrien	* tinfo2.cc (type_info::before): Likewise.
1117818334Speter
1117950397SobrienMon Apr 14 12:38:17 1997  Jason Merrill  <jason@yorick.cygnus.com>
1118050397Sobrien
1118118334Speter	* call.c (implicit_conversion): Oops.
1118250397Sobrien
1118318334SpeterFri Apr 11 02:18:30 1997  Jason Merrill  <jason@yorick.cygnus.com>
1118450397Sobrien
1118518334Speter	* call.c (implicit_conversion): Try to find a reference conversion
1118650397Sobrien	before binding a const reference to a temporary.
1118718334Speter
1118850397SobrienWed Apr  2 12:51:36 1997  Mike Stump  <mrs@cygnus.com>
1118950397Sobrien
1119050397Sobrien	* exception.cc (__default_unexpected): Call terminate by default,
1119150397Sobrien	so that if the user overrides terminate, the correct function will
1119250397Sobrien	be called.
1119350397Sobrien
1119418334SpeterWed Mar 19 14:14:45 1997  Mike Stump  <mrs@cygnus.com>
1119550397Sobrien
1119618334Speter	* parse.y (left_curly): Avoid trying to use any fields of
1119750397Sobrien	error_mark_node, as there aren't any.
1119818334Speter
1119950397SobrienThu Mar 13 16:33:22 1997  Jason Merrill  <jason@yorick.cygnus.com>
1120018334Speter
1120150397Sobrien	* lex.c (do_identifier): Avoid breaking on overloaded methods
1120250397Sobrien	as default arguments.
1120318334Speter
1120450397SobrienWed Mar 12 13:55:10 1997  Hans-Peter Nilsson  <Hans-Peter.Nilsson@axis.se>
1120518334Speter
1120650397Sobrien	* call.c (add_template_candidate): Initialize the variable "dummy".
1120718334Speter
1120850397SobrienMon Mar 10 15:13:14 1997  Brendan Kehoe  <brendan@canuck.cygnus.com>
1120918334Speter
1121050397Sobrien	* decl.c (start_decl): Make sure TYPE isn't an error_mark_node
1121150397Sobrien	before we try to use TYPE_SIZE and TREE_CONSTANT on it.
1121250397Sobrien
1121318334SpeterFri Mar  7 13:19:36 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1121450397Sobrien
1121550397Sobrien	* cp-tree.h (comp_ptr_ttypes, more_specialized): Add decl.
1121618334Speter	(debug_binfo): Delete decl, not needed.
1121750397Sobrien
1121818334Speter	* tree.c (fnaddr_from_vtable_entry, function_arg_chain,
1121950397Sobrien	promotes_to_aggr_type): Delete fns.
1122018334Speter	* cp-tree.h (FNADDR_FROM_VTABLE_ENTRY,
1122150397Sobrien	SET_FNADDR_FROM_VTABLE_ENTRY, FUNCTION_ARG_CHAIN,
1122218334Speter	PROMOTES_TO_AGGR_TYPE): Delete alternates to #if 1.
1122350397Sobrien
1122450397Sobrien	* decl.c (pending_invalid_xref{,_file,_line}): Delete unused vars.
1122552284Sobrien
1122650397Sobrien	* friend.c (is_friend_type): Delete fn.
1122752284Sobrien	* cp-tree.h (is_friend_type): Delete decl.
1122818334Speter
1122950397Sobrien	* decl.c (original_result_rtx, double_ftype_double,
1123018334Speter	double_ftype_double_double, int_ftype_int, long_ftype_long,
1123152284Sobrien	float_ftype_float, ldouble_ftype_ldouble, last_dtor_insn): Make static.
1123250397Sobrien	* typeck.c (original_result_rtx, warn_synth): Delete extern decls.
1123350397Sobrien
1123450397Sobrien	* decl.c (push_overloaded_decl{,_top_level}): Make static, adding
1123550397Sobrien	fwd decls.
1123650397Sobrien	* cp-tree.h (push_overloaded_decl{,_top_level}): Delete decls.
1123750397Sobrien
1123818334Speter	* decl.c (pushdecl_nonclass_level): #if 0, unused.
1123950397Sobrien	* cp-tree.h (pushdecl_nonclass_level): #if 0 decl.
1124050397Sobrien
1124150397Sobrien	* lex.c (reinit_lang_specific): #if 0, unused.
1124250397Sobrien	* cp-tree.h (reinit_lang_specific): #if 0 decl.
1124350397Sobrien
1124450397Sobrien	* decl.c (revert_static_member_fn): Make static, adding fwd decl.
1124550397Sobrien	* cp-tree.h (revert_static_member_fn): Delete decl.
1124650397Sobrien
1124750397Sobrien	* class.c (root_lang_context_p): Delete fn.
1124850397Sobrien	* cp-tree.h (root_lang_context_p): Delete decl.
1124952284Sobrien
1125050397Sobrien	* decl.c (set_current_level_tags_transparency): #if 0, unused.
1125118334Speter	* cp-tree.h (set_current_level_tags_transparency): #if 0 decl.
1125250397Sobrien
1125350397Sobrien	* lex.c (set_vardecl_interface_info): Make static.
1125418334Speter	* cp-tree.h (set_vardecl_interface_info): Delete decl.
1125550397Sobrien
1125650397Sobrien	* call.c (find_scoped_type): Make static.
1125752284Sobrien	* cp-tree.h (find_scoped_type): Delete decl.
1125850397Sobrien
1125918334Speter	* search.c (convert_pointer_to_vbase): Make static.
1126050397Sobrien	* cp-tree.h (convert_pointer_to_vbase): Delete decl.
1126150397Sobrien
1126250397Sobrien	* decl.c (const_ptr_type_node): Likewise.
1126318334Speter	* cp-tree.h (const_ptr_type_node): Delete decl.
1126450397Sobrien
1126518334Speter	* typeck.c (common_base_type): Make static.
1126650397Sobrien	* cp-tree.h (common_base_types): Delete erroneous decl.
1126718334Speter
1126850397Sobrien	* pt.c (classtype_mangled_name): Make static.
1126918334Speter	* cp-tree.h (classtype_mangled_name): Delete decl.
1127050397Sobrien
1127118334Speter	* lex.c (check_newline): Make static.
1127250397Sobrien	* cp-tree.h (check_newline): Delete decl.
1127318334Speter
1127450397Sobrien	* typeck.c (build_x_array_ref): Delete fn, same idea as
1127550397Sobrien	grok_array_decl.
1127618334Speter	* cp-tree.h (build_x_array_ref): Delete decl.
1127750397Sobrien
1127850397Sobrien	* lex.c (copy_decl_lang_specific): Delete fn, same idea as
1127950397Sobrien	copy_lang_decl.
1128018334Speter	* cp-tree.h (copy_decl_lang_specific): #if 0 decl.
1128150397Sobrien
1128218334Speter	* class.c (build_vtable_entry): Make static.
1128350397Sobrien	* cp-tree.h (build_vtable_entry): Delete decl.
1128450397Sobrien
1128518334Speter	* class.c (build_vbase_pointer): Make static.
1128650397Sobrien	* cp-tree.h (build_vbase_pointer): Delete decl.
1128750397Sobrien
1128850397Sobrien	* sig.c (build_sptr_ref): Add forward decl and make static.
1128950397Sobrien	* cp-tree.h (build_sptr_ref): Delete decl.
1129050397Sobrien
1129150397Sobrien	* call.c (build_new_method_call): Add forward decl and make static.
1129250397Sobrien	* cp-tree.h (build_new_method_call): Delete decl.
1129350397Sobrien
1129418334Speter	* call.c (build_object_call): Make static.
1129550397Sobrien	* class.c (check_for_override, complete_type_p, mark_overriders):
1129618334Speter	Likewise.
1129750397Sobrien	* decl.c (cp_function_chain): Likewise.
1129850397Sobrien	* lex.c (set_typedecl_interface_info, reinit_parse_for_block):
1129950397Sobrien	Likewise.
1130050397Sobrien	* pt.c (comp_template_args, get_class_bindings, push_tinst_level):
1130150397Sobrien	Likewise.
1130250397Sobrien	* tree.c (build_cplus_array_type_1): Likewise.
1130318334Speter	* typeck.c (comp_ptr_ttypes_{const,real,reinterpret}): Likewise.
1130450397Sobrien	(comp_target_parms): Likewise.
1130518334Speter
1130650397Sobrien	* init.c (build_builtin_call): Make static.
1130750397Sobrien	* cp-tree.h (build_builtin_call): Delete decl.
1130818334Speter
1130950397Sobrien	* typeck.c (binary_op_error): Delete decl.
1131018334Speter	* cp-tree.h (binary_op_error): Likewise.
1131150397Sobrien
1131218334SpeterThu Mar  6 16:13:52 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1131350397Sobrien
1131418334Speter	* call.c (build_method_call): Compare against error_mark_node
1131550397Sobrien	directly, rather than the ERROR_MARK tree code.
1131650397Sobrien	* cvt.c (cp_convert): Likewise.
1131718334Speter	* decl.c (print_binding_level): Likewise.
1131850397Sobrien	(duplicate_decls): Likewise.
1131918334Speter	(grokdeclarator): Likewise.
1132050397Sobrien	(grokdeclarator): Likewise.
1132150397Sobrien	* init.c (expand_aggr_init_1): Likewise.
1132250397Sobrien	(decl_constant_value): Likewise.
1132352284Sobrien	* method.c (build_opfncall): Likewise.
1132450397Sobrien	(hack_identifier): Likewise.
1132518334Speter	* typeck.c (build_modify_expr): Likewise.
1132650397Sobrien
1132750397Sobrien	* typeck.c (build_c_cast): Don't decl TYPE as register tree.
1132818334Speter
1132950397SobrienSun Mar  2 02:54:36 1997  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
1133018334Speter
1133150397Sobrien	* pt.c (unify): Strip NOP_EXPR wrappers before unifying integer values.
1133250397Sobrien
1133318334Speter	* pt.c (coerce_template_parms): Add new error message.
1133450397Sobrien
1133518334Speter	* method.c (build_overload_value): Implement name mangling for
1133650397Sobrien	floating-point template arguments.
1133718334Speter
1133850397Sobrien	* method.c (build_overload_int, icat, dicat): Fix mangling of template
1133918334Speter	arguments whose absolute value doesn't fit in a signed word.
1134050397Sobrien
1134150397SobrienMon Mar  3 12:14:54 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1134218334Speter
1134350397Sobrien	* friend.c: New file; put all of the friend stuff in here.
1134418334Speter	* init.c: Instead of here.
1134550397Sobrien	* Makefile.in (CXX_OBJS): Add friend.o.
1134650397Sobrien	(friend.o): Add dependencies.
1134718334Speter	* Make-lang.in (CXX_SRCS): Add $(srcdir)/cp/friend.c.
1134850397Sobrien
1134950397SobrienSun Mar  2 11:04:43 1997  Jason Merrill  <jason@yorick.cygnus.com>
1135050397Sobrien
1135150397Sobrien	* call.c (build_scoped_method_call): Complain if the scope isn't a
1135250397Sobrien	base.
1135318334Speter
1135450397SobrienWed Feb 26 11:31:06 1997  Jason Merrill  <jason@yorick.cygnus.com>
1135518334Speter
1135650397Sobrien	* parse.y (left_curly): Don't crash on erroneous type.
1135750397Sobrien
1135818334Speter	* init.c (build_delete): Fix type of ref.
1135950397Sobrien
1136050397SobrienTue Feb 25 12:41:48 1997  Jason Merrill  <jason@yorick.cygnus.com>
1136150397Sobrien
1136250397Sobrien	* search.c (get_vbase_1): Renamed from get_vbase.
1136318334Speter	(get_vbase): Wrapper, now non-static.
1136450397Sobrien	(convert_pointer_to_vbase): Now static.
1136550397Sobrien
1136650397Sobrien	* call.c (build_scoped_method_call): Accept a binfo for BASETYPE.
1136718334Speter	* init.c (build_delete): Pass one.
1136850397Sobrien	(build_partial_cleanup_for): Use build_scoped_method_call.
1136950397Sobrien	* decl.c (finish_function): Pass a binfo.
1137018334Speter
1137150397SobrienMon Feb 24 15:00:12 1997  Jason Merrill  <jason@yorick.cygnus.com>
1137250397Sobrien
1137318334Speter	* call.c (build_over_call): Only synthesize non-trivial copy ctors.
1137450397Sobrien
1137550397Sobrien	* typeck.c (build_c_cast): Lose other reference to flag.
1137618334Speter
1137750397Sobrien	* call.c (build_field_call): Don't look for [cd]tor_identifier.
1137850397Sobrien	* decl2.c (delete_sanity): Remove meaningless use of
1137918334Speter	LOOKUP_HAS_IN_CHARGE.
1138050397Sobrien	* decl.c (finish_function): Use build_scoped_method_call instead
1138150397Sobrien	of build_delete for running vbase dtors.
1138218334Speter	* init.c (build_delete): Call overload resolution code instead of
1138350397Sobrien	duplicating it badly.
1138450397Sobrien
1138518334SpeterThu Feb 20 15:12:15 1997  Jason Merrill  <jason@yorick.cygnus.com>
1138650397Sobrien
1138750397Sobrien	* call.c (build_over_call): Call mark_used before trying to elide
1138818334Speter	the call.
1138950397Sobrien
1139050397Sobrien	* decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL.
1139118334Speter
1139250397SobrienWed Feb 19 11:18:53 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1139350397Sobrien
1139418334Speter	* typeck.c (build_modify_expr): Always pedwarn for a cast to
1139550397Sobrien	non-reference used as an lvalue.
1139650397Sobrien
1139718334SpeterWed Feb 19 10:35:37 1997  Jason Merrill  <jason@yorick.cygnus.com>
1139850397Sobrien
1139950397Sobrien	* cvt.c (cp_convert_to_pointer): Convert from 0 to a pmf properly.
1140018334Speter
1140150397SobrienTue Feb 18 15:40:57 1997  Jason Merrill  <jason@yorick.cygnus.com>
1140250397Sobrien
1140318334Speter	* parse.y (handler): Fix template typo.
1140450397Sobrien
1140550397SobrienSun Feb 16 02:12:28 1997  Jason Merrill  <jason@yorick.cygnus.com>
1140650397Sobrien
1140718334Speter	* error.c (lang_decl_name): New fn.
1140850397Sobrien	* tree.c (lang_printable_name): Use it.
1140950397Sobrien
1141050397SobrienFri Feb 14 16:57:05 1997  Mike Stump  <mrs@cygnus.com>
1141118334Speter
1141250397Sobrien	* g++spec.c: Include config.h so that we can catch bzero #defines
1141350397Sobrien	from the config file.
1141418334Speter
1141550397SobrienTue Feb 11 13:50:48 1997  Mike Stump  <mrs@cygnus.com>
1141650397Sobrien
1141718334Speter	* new1.cc: Include a declaration for malloc, to avoid warning, and
1141850397Sobrien	avoid lossing on systems that require one (ones that define malloc
1141950397Sobrien	in xm.h).
1142018334Speter
1142150397SobrienMon Feb 10 22:51:13 1997  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
1142250397Sobrien
1142318334Speter	* decl2.c (max_tinst_depth): New variable.
1142450397Sobrien	(lang_decode_option): Parse "-ftemplate-depth-NN" command line
1142550397Sobrien	option.
1142650397Sobrien	* pt.c (max_tinst_depth): Variable moved.
1142750397Sobrien	* lang-options.h: Declare "-ftemplate-depth-NN" command line option
1142850397Sobrien	as legal.
1142950397Sobrien
1143050397SobrienFri Feb  7 15:43:34 1997  Jason Merrill  <jason@yorick.cygnus.com>
1143150397Sobrien
1143250397Sobrien	* decl.c (xref_basetypes): Allow a base class that depends on
1143350397Sobrien	template parms to be incomplete.
1143450397Sobrien
1143518334Speter	* decl2.c (build_expr_from_tree): Support typeid(type).
1143650397Sobrien	* rtti.c (get_typeid): Support templates.
1143750397Sobrien	(expand_si_desc, expand_class_desc): Fix string length.
1143818334Speter	(expand_ptr_desc, expand_attr_desc, expand_generic_desc): Likewise.
1143950397Sobrien
1144050397SobrienTue Feb  4 11:28:24 1997  Jason Merrill  <jason@yorick.cygnus.com>
1144118334Speter
1144250397Sobrien	* pt.c (unify, case TEMPLATE_CONST_PARM): Use cp_tree_equal.
1144318334Speter
1144450397Sobrien	* pt.c (tsubst): Put it back for -fno-ansi-overloading.
1144550397Sobrien
1144650397SobrienMon Feb  3 18:41:12 1997  Jason Merrill  <jason@yorick.cygnus.com>
1144750397Sobrien
1144850397Sobrien	* pt.c (tsubst, case FUNCTION_DECL): Lose obsolete code that
1144950397Sobrien	smashes together template and non-template decls of the same
1145050397Sobrien	signature.
1145150397Sobrien
1145250397SobrienThu Jan 30 19:18:00 1997  Jason Merrill  <jason@yorick.cygnus.com>
1145350397Sobrien
1145450397Sobrien	* pt.c (tsubst): Don't recurse for the type of a TYPENAME_TYPE.
1145550397Sobrien
1145618334SpeterWed Jan 29 11:40:35 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1145750397Sobrien
1145818334Speter	* decl.c (duplicate_decls): Next route, pedwarn about different
1145950397Sobrien	exceptions if -pedantic *or* olddecl !DECL_IN_SYSTEM_HEADER.
1146018334Speter
1146150397SobrienTue Jan 28 20:43:29 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1146218334Speter
1146350397Sobrien	* cp-tree.h (HAS_DEFAULT_IMPLEMENTATION): Delete macro.
1146418334Speter	(struct lang_type): Delete has_default_implementation member.
1146550397Sobrien	Increase dummy to 21.
1146650397Sobrien	* decl.c (start_method): Delete usage.
1146718334Speter
1146850397Sobrien	* cp-tree.h (build_call, null_ptr_cst_p, in_function_p,
1146950397Sobrien	store_after_parms, start_decl_1, auto_function): Add decls.
1147018334Speter	(get_arglist_len_in_bytes, declare_implicit_exception,
1147150397Sobrien	have_exceptions_p, make_type_decl, typedecl_for_tag,
1147218334Speter	store_in_parms, pop_implicit_try_blocks, push_exception_cleanup,
1147350397Sobrien	build_component_type_expr, cplus_exception_name,
1147450397Sobrien	{make,clear}_anon_parm_name, dont_see_typename): Removed decls.
1147550397Sobrien	* call.c (build_this): Make static.
1147650397Sobrien	(is_complete): Likewise.
1147750397Sobrien	(implicit_conversion): Likewise.
1147818334Speter	(reference_binding): Likewise.
1147950397Sobrien	(standard_conversion): Likewise.
1148018334Speter	(strip_top_quals): Likewise.
1148150397Sobrien	(non_reference): Likewise.
1148250397Sobrien	(build_conv): Likewise.
1148318334Speter	(user_harshness): Likewise.
1148450397Sobrien	(rank_for_ideal): Likewise.
1148518334Speter	* decl.c (start_decl_1): Delete forward decl.
1148650397Sobrien	(push_decl_level): Make static.
1148718334Speter	(resume_binding_level): Make static.
1148850397Sobrien	(namespace_bindings_p): Make static.
1148918334Speter	(declare_namespace_level): Make static.
1149050397Sobrien	(lookup_name_real): Make static.
1149118334Speter	(duplicate_decls): Make static.  Take register off NEWDECL and
1149250397Sobrien	OLDDECL parm decls.
1149350397Sobrien	* decl2.c (get_sentry): Make static.
1149450397Sobrien	(temp_name_p): Delete fn.
1149518334Speter	* except.c (auto_function): Delete decl.
1149650397Sobrien	* lex.c (handle_{cp,sysv}_pragma): Make static.
1149750397Sobrien	(handle_sysv_pragma) [HANDLE_SYSV_PRAGMA]: Add forward decl.
1149850397Sobrien	* method.c (do_build_{copy_constructor,assign_ref}): Make static.
1149950397Sobrien	* pt.c (tsubst_expr_values): Make static.
1150018334Speter	* rtti.c (combine_strings): Delete decl.
1150150397Sobrien
1150218334SpeterTue Jan 28 16:40:40 1997  Jason Merrill  <jason@yorick.cygnus.com>
1150350397Sobrien
1150418334Speter	* pt.c (push_template_decl): Handle getting a typedef.
1150550397Sobrien
1150618334Speter	* call.c (build_new_function_call): Complain about void arg.
1150750397Sobrien
1150850397SobrienTue Jan 28 15:25:09 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1150950397Sobrien
1151050397Sobrien	* decl.c (duplicate_decls): Give pedwarn of different exceptions
1151150397Sobrien	if -pedantic, instead of olddecl !DECL_IN_SYSTEM_HEADER.
1151250397Sobrien
1151350397SobrienMon Jan 27 19:21:29 1997  Mike Stump  <mrs@cygnus.com>
1151418334Speter
1151550397Sobrien	* except.c (expand_throw): Don't expand the cleanup tree here,
1151618334Speter	since we are not going to write the rtl out.  Fixes problem with
1151750397Sobrien	-g -O on SPARC.
1151850397Sobrien
1151918334SpeterMon Jan 27 16:24:35 1997  Sean McNeil  <sean@mcneil.com>
1152050397Sobrien
1152118334Speter	* Make-lang.in: Add $(exeext) as necessary.
1152250397Sobrien
1152318334SpeterMon Jan 27 13:20:39 1997  Mike Stump  <mrs@cygnus.com>
1152450397Sobrien
1152550397Sobrien	* parse.y (handler_seq): Must have at least one catch clause.
1152618334Speter
1152750397SobrienSat Jan 25 12:00:05 1997  Jason Merrill  <jason@yorick.cygnus.com>
1152818334Speter
1152950397Sobrien	* call.c (add_builtin_candidate): Restore ?: hack.
1153018334Speter
1153150397Sobrien	* decl.c (grok_op_properties): More warnings.
1153218334Speter
1153350397SobrienSat Jan 25 08:50:03 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1153418334Speter
1153550397Sobrien	* decl.c (duplicate_decls): On second thought, do it as a pedwarn
1153618334Speter	still but only if !DECL_IN_SYSTEM_HEADER (olddecl).
1153750397Sobrien
1153850397Sobrien	* decl.c (duplicate_decls): Scale back to a warning, and only do
1153918334Speter	'em if -pedantic.
1154050397Sobrien
1154118334SpeterFri Jan 24 17:52:54 1997  Mike Stump  <mrs@cygnus.com>
1154250397Sobrien
1154350397Sobrien	* decl.c (duplicate_decls): pedwarn mismatched exception
1154418334Speter	specifications.
1154550397Sobrien
1154618334SpeterThu Jan 23 18:18:54 1997  Mike Stump  <mrs@cygnus.com>
1154750397Sobrien
1154850397Sobrien	* call.c (build_new_method_call): Don't display the invisible
1154950397Sobrien	argument for controlling virtual bases.
1155018334Speter
1155152284SobrienThu Jan 23 16:48:10 1997  Mike Stump  <mrs@cygnus.com>
1155218334Speter
1155350397Sobrien	* new: Add nothrow new and delete, bad_alloc and throw specifications
1155450397Sobrien	for delete.
1155550397Sobrien	* decl.c (init_decl_processing): Add throw specification for delete.
1155650397Sobrien	* new.cc (nothrow): Define.
1155750397Sobrien	* lex.c (real_yylex): Removing warning that throw and friends are
1155850397Sobrien	keywords.
1155918334Speter	* new1.cc (operator new (size_t sz, const nothrow_t&)): Define.
1156050397Sobrien	* new2.cc (operator new[] (size_t sz, const nothrow_t&): Define.
1156118334Speter	* Make-lang.in: Add new{1,2}.{cc,o}.
1156250397Sobrien
1156350397SobrienThu Jan 23 16:39:06 1997  Jason Merrill  <jason@yorick.cygnus.com>
1156418334Speter
1156550397Sobrien	* lex.c (cons_up_default_function): Fix return type of synth op=.
1156650397Sobrien
1156750397Sobrien	* init.c (emit_base_init): Add warnings for uninitialized members
1156850397Sobrien	and bases.
1156918334Speter
1157050397Sobrien	* decl.c (xref_basetypes): Add warning for non-polymorphic type
1157118334Speter	with destructor used as base type.
1157250397Sobrien
1157318334Speter	* decl.c (grok_op_properties): Add warning for op= returning void.
1157450397Sobrien	* typeck.c (c_expand_return): Add warning for op= returning anything
1157518334Speter	other than *this.
1157650397Sobrien
1157718334Speter	* class.c (finish_struct_1): Add warning for class with pointers
1157850397Sobrien	but not copy ctor or copy op=.
1157950397Sobrien
1158050397Sobrien	* cp-tree.h (TI_PENDING_TEMPLATE_FLAG): New macro.
1158118334Speter	* pt.c (add_pending_template): Use it instead of LANG_FLAG_0.
1158250397Sobrien	(instantiate_template): If -fexternal-templates, add this
1158318334Speter	instantiation to pending_templates.
1158450397Sobrien
1158518334Speter	* decl2.c (copy_assignment_arg_p): Disable old hack to support
1158650397Sobrien	Booch components.
1158718334Speter
1158850397SobrienTue Jan 21 18:32:04 1997  Mike Stump  <mrs@cygnus.com>
1158950397Sobrien
1159018334Speter	* cvt.c (cp_convert): pedwarn enum to pointer conversions.
1159150397Sobrien
1159218334SpeterMon Jan 20 17:59:51 1997  Jason Merrill  <jason@yorick.cygnus.com>
1159350397Sobrien
1159450397Sobrien	* call.c (standard_conversion): Handle getting references.  Tack
1159550397Sobrien	on RVALUE_CONV here.  Do it for non-class types, too.
1159650397Sobrien	(reference_binding): Pass references to standard_conversion.
1159718334Speter	(implicit_conversion): Likewise.
1159850397Sobrien	(add_builtin_candidate): Disable one ?: kludge.
1159950397Sobrien	(convert_like): Handle RVALUE_CONVs for non-class types.
1160050397Sobrien	(joust): Disable the other ?: kludge.
1160150397Sobrien
1160250397SobrienMon Jan 20 14:53:13 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1160350397Sobrien
1160450397Sobrien	* decl.c (init_decl_processing): Add code to build up common
1160550397Sobrien	function types beforehand, to avoid creation then removal of
1160650397Sobrien	things already in the hash table.
1160750397Sobrien
1160850397SobrienMon Jan 20 14:43:49 1997  Jason Merrill  <jason@yorick.cygnus.com>
1160950397Sobrien
1161050397Sobrien	* decl.c (finish_function): Also zero out DECL_INCOMING_RTL for
1161150397Sobrien	the arguments.
1161250397Sobrien
1161350397Sobrien	* error.c (dump_expr, TEMPLATE_CONST_PARM): Don't require
1161450397Sobrien	current_template_parms.
1161550397Sobrien
1161650397SobrienFri Jan 17 10:25:42 1997  Jason Merrill  <jason@yorick.cygnus.com>
1161750397Sobrien
1161850397Sobrien	* search.c (lookup_field): Don't return a function, check want_type.
1161950397Sobrien
1162050397SobrienThu Jan 16 18:14:35 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1162150397Sobrien
1162250397Sobrien	* init.c (build_new): Make sure PLACEMENT has a type.
1162350397Sobrien
1162450397SobrienThu Jan 16 17:40:28 1997  Jason Merrill  <jason@yorick.cygnus.com>
1162550397Sobrien
1162650397Sobrien	* init.c (build_new): Support new (nothrow).
1162750397Sobrien
1162850397SobrienWed Jan 15 12:38:14 1997  Jason Merrill  <jason@yorick.cygnus.com>
1162950397Sobrien
1163050397Sobrien	* pt.c (instantiate_decl): Also do push_to_top_level before setting
1163118334Speter	up DECL_INITIAL.
1163250397Sobrien
1163318334Speter	* cp-tree.h (PARM_DEFAULT_FROM_TEMPLATE): New macro.
1163450397Sobrien	* pt.c (tsubst): Defer instantiation of default args.
1163518334Speter	* call.c (build_over_call): Until here.
1163650397Sobrien
1163718334SpeterWed Jan 15 10:08:10 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1163850397Sobrien
1163918334Speter	* search.c (lookup_field): Make sure we have an
1164050397Sobrien	IDENTIFIER_CLASS_VALUE before we try to return it.
1164150397Sobrien
1164218334SpeterThu Jan  9 07:19:01 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1164350397Sobrien
1164418334Speter	* call.c (build_method_call): Delete unused var PARM.
1164550397Sobrien	(build_overload_call_real): Likewise.
1164650397Sobrien	(build_object_call): Delete unused var P.
1164750397Sobrien	(build_new_op): Likewise.
1164818334Speter	* decl.c (builtin_type_tdescs_{arr, len, max}): #if 0 out static
1164950397Sobrien	var definitions, which are never used.
1165018334Speter	(shadow_tag): Delete unused var FN.
1165150397Sobrien	* expr.c (cplus_expand_expr): Delete unused var ORIGINAL_TARGET.
1165218334Speter	* init.c (build_new): Delete unused var ALLOC_TEMP.
1165350397Sobrien	* method.c (hack_identifier): Delete unused var CONTEXT.
1165418334Speter	(do_build_copy_constructor): Delete unused var NAME.
1165550397Sobrien	(synthesize_method): Delete unused var BASE.
1165618334Speter	* pt.c (lookup_template_class): Delete unused var CODE_TYPE_NODE.
1165750397Sobrien	* rtti.c (build_headof): Delete unused var VPTR.
1165818334Speter	(get_typeid): Delete unused var T.
1165950397Sobrien	* typeck.c (build_conditional_expr): Delete unused vars ORIG_OP1
1166018334Speter	and ORIG_OP2.
1166150397Sobrien	(build_ptrmemfunc): Delete unused vars U and NINDEX.
1166218334Speter	* typeck2.c (build_functional_cast): Delete unused var BINFO.
1166350397Sobrien
1166418334SpeterWed Jan  8 13:09:54 1997  Jason Merrill  <jason@yorick.cygnus.com>
1166550397Sobrien
1166650397Sobrien	* search.c (lookup_field): Use IDENTIFIER_CLASS_VALUE to look up
1166718334Speter	things in a type being defined.
1166850397Sobrien	* decl.c (finish_enum): Reverse the values so that they are in
1166950397Sobrien	the correct order.
1167018334Speter
1167150397Sobrien	* pt.c (instantiate_class_template): Don't initialize
1167218334Speter	BINFO_BASETYPES until the vector is filled out.
1167350397Sobrien	(unify): Don't abort on conflicting bindings, just fail.
1167450397Sobrien	(instantiate_decl): Do push_tinst_level before any tsubsting.
1167518334Speter
1167650397Sobrien	* method.c (build_overload_value): Handle getting a
1167718334Speter	TEMPLATE_CONST_PARM for a pointer.
1167850397Sobrien
1167950397SobrienTue Jan  7 14:00:58 1997  Jason Merrill  <jason@yorick.cygnus.com>
1168018334Speter
1168150397Sobrien	* init.c (expand_member_init): Don't give 'not a base' error for
1168218334Speter	templates.
1168350397Sobrien
1168450397Sobrien	* pt.c (instantiate_decl): Call import_export_decl later.
1168550397Sobrien
1168650397Sobrien	* pt.c (instantiate_class_template): Return a value.
1168750397Sobrien
1168850397Sobrien	* parse.y (extension): New rule for __extension__.
1168950397Sobrien	(extdef, unary_expr, decl, component_decl): Use it.
1169050397Sobrien
1169150397SobrienTue Jan  7 09:20:28 1997  Mike Stump  <mrs@cygnus.com>
1169218334Speter
1169350397Sobrien	* class.c (base_binfo): Remove unused base_has_virtual member.
1169418334Speter	(finish_base_struct): Likewise.
1169550397Sobrien	(finish_struct_1): Likewise.
1169618334Speter
1169750397SobrienTue Dec 31 20:25:50 1996  Mike Stump  <mrs@cygnus.com>
1169850397Sobrien
1169918334Speter	* search.c (expand_upcast_fixups): Fix bogus code generation
1170050397Sobrien	problem where the generated code uses the wrong index into the
1170150397Sobrien	runtime built vtable on the stack.  Old code could clobber random
1170218334Speter	stack values.
1170350397Sobrien
1170450397SobrienTue Dec 31 15:16:56 1996  Mike Stump  <mrs@cygnus.com>
1170550397Sobrien
1170618334Speter	* init.c (perform_member_init): Make sure the partial EH cleanups
1170750397Sobrien	live on the function_obstack.
1170850397Sobrien
1170918334SpeterFri Dec 27 10:31:40 1996  Paul Eggert  <eggert@twinsun.com>
1171050397Sobrien
1171150397Sobrien	* Make-lang.in (g++spec.o): Don't use $< with an explicit target;
1171250397Sobrien	this isn't portable to some versions of `make' (e.g. Solaris 2.5.1).
1171350397Sobrien
1171418334SpeterTue Dec 24 10:24:03 1996  Jeffrey A Law  <law@cygnus.com>
1171550397Sobrien
1171650397Sobrien	* decl.c (grokvardecl): Avoid ANSI style initialization.
1171718334Speter
1171850397SobrienSun Dec 22 04:22:06 1996  Jason Merrill  <jason@yorick.cygnus.com>
1171918334Speter
1172052284Sobrien	* pt.c (tsubst): Tweak arg types for a FUNCTION_TYPE.
1172118334Speter
1172250397SobrienFri Dec 20 17:09:25 1996  Jason Merrill  <jason@yorick.cygnus.com>
1172318334Speter
1172450397Sobrien	* pt.c (instantiate_class_template): Call grok_{ctor,op}_properties.
1172550397Sobrien
1172650397SobrienFri Dec 20 12:17:12 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1172750397Sobrien
1172850397Sobrien	* g++spec.c (lang_specific_driver): Put missing hyphen in front of
1172950397Sobrien	arguments we compare against.  Start the count of I at 1, not 0,
1173050397Sobrien	since argv[0] is still the command.
1173118334Speter
1173250397SobrienThu Dec 19 11:53:57 1996  Stan Shebs  <shebs@andros.cygnus.com>
1173318334Speter
1173450397Sobrien	* lang-specs.h: Accept .cp as an C++ extension.
1173550397Sobrien
1173650397SobrienMon Dec 16 22:43:31 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1173718334Speter
1173850397Sobrien	* cp-tree.h (ptr_reasonably_similar): Add decl.
1173918334Speter
1174050397SobrienThu Dec 12 15:00:35 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1174150397Sobrien
1174218334Speter	* decl.c (grokvardecl): Change SPECBITS parm to be the SPECBITS_IN
1174350397Sobrien	pointer.  New local SPECBITS with the parm's value.
1174450397Sobrien	(grokdeclarator): Pass &specbits down.
1174518334Speter
1174650397Sobrien	* parse.y (expr_no_commas): Make sure $$ is not an error_mark_node
1174718334Speter	before we try to do C_SET_EXP_ORIGINAL_CODE on it.
1174850397Sobrien
1174918334Speter	* search.c (envelope_add_decl): Check that the CLASSTYPE_CID of
1175050397Sobrien	CONTEXT is not 0 before we try to use TYPE_DERIVES_FROM.
1175118334Speter
1175250397Sobrien	* decl.c (cplus_expand_expr_stmt): Only expand the expr if EXP is
1175318334Speter	not an error_mark_node.
1175450397Sobrien
1175518334SpeterSat Dec  7 17:20:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
1175650397Sobrien
1175718334Speter	* cp-tree.h (TYPE_MAIN_DECL): Use TYPE_STUB_DECL.
1175850397Sobrien	* *.c: Use TYPE_MAIN_DECL instead of TYPE_NAME where appropriate.
1175918334Speter
1176050397SobrienFri Dec  6 14:40:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
1176150397Sobrien
1176218334Speter	* decl.c (grokdeclarator): When giving an anonymous struct a name,
1176350397Sobrien	replace TYPE_NAME instead of TYPE_IDENTIFIER (so TYPE_STUB_DECL is
1176450397Sobrien	not affected).
1176550397Sobrien
1176618334Speter	* typeck2.c (build_m_component_ref): If component is a pointer
1176750397Sobrien	to data member, resolve the OFFSET_REF now.
1176818334Speter
1176950397Sobrien	* call.c (convert_like): Don't go into infinite recursion.
1177050397Sobrien
1177118334Speter	* pt.c (coerce_template_parms): Use tsubst_expr for non-type args.
1177250397Sobrien
1177318334Speter	* class.c (finish_struct_1): Set DECL_ARTIFICIAL on the vptr.
1177450397Sobrien	* tree.c (layout_basetypes): And on the vbase ptr.
1177550397Sobrien
1177650397SobrienThu Dec  5 02:11:28 1996  Jason Merrill  <jason@yorick.cygnus.com>
1177750397Sobrien
1177850397Sobrien	* decl.c (BOOL_TYPE_SIZE): Define in terms of POINTER_SIZE or
1177950397Sobrien	CHAR_TYPE_SIZE so bool is always the same size as another type.
1178050397Sobrien
1178150397Sobrien	* decl.c (pushtag): Set DECL_IGNORED_P for DWARF, too.
1178250397Sobrien
1178350397SobrienTue Dec  3 23:18:37 1996  Jason Merrill  <jason@yorick.cygnus.com>
1178450397Sobrien
1178550397Sobrien	* decl2.c (grok_x_components): Remove synthesized methods from
1178650397Sobrien	TYPE_METHODS of an anonymous union, complain about member
1178750397Sobrien	functions.
1178850397Sobrien	* decl.c (shadow_tag): Wipe out memory of synthesized methods in
1178950397Sobrien	anonymous unions.
1179050397Sobrien	(finish_function): Just clear the DECL_RTL of our arguments.
1179150397Sobrien
1179250397SobrienFri Nov 29 21:54:17 1996  Jason Merrill  <jason@yorick.cygnus.com>
1179318334Speter
1179450397Sobrien	* decl2.c (finish_file): Emit DWARF debugging info for static data
1179518334Speter	members.
1179650397Sobrien
1179750397Sobrien	* pt.c (tsubst): If t is a stub decl, return the stub decl for type.
1179850397Sobrien
1179950397SobrienWed Nov 27 14:47:15 1996  Bob Manson  <manson@charmed.cygnus.com>
1180018334Speter
1180150397Sobrien	* typeck.c (build_component_ref): Don't die if COMPONENT isn't a
1180250397Sobrien	IDENTIFIER_NODE.
1180350397Sobrien
1180450397SobrienWed Nov 27 16:05:19 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
1180518334Speter
1180650397Sobrien	* Make-lang.in (g++-cross$(exeext)): Fix typo.
1180750397Sobrien
1180818334SpeterWed Nov 27 08:14:00 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1180950397Sobrien
1181018334Speter	Make the g++ driver now be a standalone program, rather than one
1181150397Sobrien	that tries to run the gcc driver after munging up the options.
1181250397Sobrien	* Make-lang.in (g++.c, g++spec.o): New rules.
1181318334Speter	(g++.o): New rule, based on gcc.o with -DLANG_SPECIFIC_DRIVER
1181450397Sobrien	added.
1181518334Speter	(g++$(exeext)): New rule, based on xgcc rule.
1181650397Sobrien	(g++-cross$(exeext)): Now just copies g++$(exeext) over.
1181718334Speter	* g++spec.c: New file.
1181850397Sobrien	* g++.c: Removed file.
1181950397Sobrien
1182018334SpeterTue Nov 26 19:01:09 1996  Mike Stump  <mrs@cygnus.com>
1182150397Sobrien
1182218334Speter	* cvt.c (build_up_reference): Arrange for any temporary values
1182350397Sobrien	that have been keep in registers until now to be put into memory.
1182450397Sobrien
1182550397SobrienMon Nov 25 15:16:41 1996  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1182618334Speter
1182750397Sobrien	* Make-lang.in (c++.stage[1234]): Depend upon stage[1-4]-start, so
1182818334Speter	that make -j3 bootstrap works better.
1182950397Sobrien
1183050397SobrienSun Nov 24 02:09:39 1996  Jason Merrill  <jason@yorick.cygnus.com>
1183150397Sobrien
1183250397Sobrien	* decl.c (pushtag): Do pushdecl for anon tags.
1183318334Speter
1183450397SobrienThu Nov 21 16:30:24 1996  Jason Merrill  <jason@yorick.cygnus.com>
1183518334Speter
1183650397Sobrien	* typeck.c (c_expand_return): Fix logic.
1183750397Sobrien	(unary_complex_lvalue): Avoid unused warning on address of INIT_EXPR.
1183818334Speter
1183950397SobrienWed Nov 20 18:47:31 1996  Bob Manson  <manson@charmed.cygnus.com>
1184018334Speter
1184150397Sobrien	* g++.c (main): Make sure arglist has a final NULL entry.  Add
1184250397Sobrien	PEXECUTE_LAST to the flags passed to pexecute, as otherwise
1184318334Speter	stdin/stdout of the invoked program are redirected to
1184452284Sobrien	nowheresville.
1184518334Speter
1184650397SobrienTue Nov 19 16:12:44 1996  Jason Merrill  <jason@yorick.cygnus.com>
1184718334Speter
1184850397Sobrien	* decl.c (implicitly_declare): Set DECL_ARTIFICIAL.
1184918334Speter
1185050397SobrienTue Nov 19 15:48:19 1996  Mike Stump  <mrs@cygnus.com>
1185118334Speter
1185250397Sobrien	* init.c (resolve_offset_ref): Handle obj.vfn better.
1185318334Speter	* typeck.c (build_component_ref): Set TREE_TYPE on result from
1185450397Sobrien	build_vfn_ref.
1185518334Speter
1185650397SobrienTue Nov 19 13:14:33 1996  Mike Stump  <mrs@cygnus.com>
1185718334Speter
1185850397Sobrien	* typeck.c (convert_for_assignment): Also handle anachronistic
1185950397Sobrien	implicit conversions from (::*)() to cv void*.
1186050397Sobrien	* cvt.c (cp_convert_to_pointer): Likewise.
1186118334Speter
1186250397SobrienMon Nov 18 17:05:26 1996  Jason Merrill  <jason@yorick.cygnus.com>
1186318334Speter
1186450397Sobrien	* lex.c (handle_cp_pragma): Fix bogus warning.
1186518334Speter
1186650397SobrienMon Nov 18 16:10:43 1996  Mike Stump  <mrs@cygnus.com>
1186718334Speter
1186850397Sobrien	* cvt.c (cp_convert_to_pointer): Avoid thinking a POINTER_TYPE
1186918334Speter	(METHOD_TYPE) is a TYPE_PTRMEMFUNC_P.
1187050397Sobrien
1187118334SpeterThu Nov 14 23:18:17 1996  Jason Merrill  <jason@yorick.cygnus.com>
1187250397Sobrien
1187350397Sobrien	* class.c (finish_struct_1): Support DWARF2_DEBUG.
1187450397Sobrien	* search.c (dfs_debug_mark): Likewise.
1187518334Speter	* decl2.c (finish_vtable_vardecl): Likewise.
1187650397Sobrien	* decl.c (pushtag, finish_enum): Likewise.
1187750397Sobrien	* lex.c (check_newline): Use debug_* instead of calling *out
1187818334Speter	functions directly.
1187950397Sobrien
1188050397SobrienThu Nov 14 15:21:46 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1188118334Speter
1188250397Sobrien	* Make-lang.in (cplib2.ready): Add else clause to avoid problems
1188350397Sobrien	on some picky hosts.
1188418334Speter
1188550397SobrienWed Nov 13 12:32:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
1188618334Speter
1188750397Sobrien	* class.c (finish_struct_1): A class has a non-trivial copy
1188850397Sobrien	constructor if it has virtual functions.
1188952284Sobrien
1189050397Sobrien	* cvt.c (cp_convert): Always call a constructor.
1189118334Speter
1189250397Sobrien	* call.c (reference_binding): Still tack on a REF_BIND
1189350397Sobrien	for bad conversions.
1189450397Sobrien	(build_user_type_conversion_1): Propagate ICS_BAD_FLAG.
1189518334Speter
1189650397Sobrien	* typeck.c (convert_arguments): Pass LOOKUP_ONLYCONVERTING.
1189750397Sobrien	(c_expand_return): Likewise.
1189818334Speter	* typeck2.c (digest_init): Likewise for { }.
1189950397Sobrien	* init.c (expand_aggr_init_1): Keep the CONSTRUCTOR handling.
1190018334Speter	* cvt.c (cp_convert): Handle failure better.
1190150397Sobrien
1190218334SpeterWed Nov 13 11:51:20 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1190350397Sobrien
1190450397Sobrien	* g++.c (main): Also set PEXECUTE_SEARCH, to make the invocation
1190518334Speter	of GCC be path-relative.
1190650397Sobrien
1190718334SpeterWed Nov 13 11:27:16 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
1190850397Sobrien
1190950397Sobrien	* Make-lang.in (g++-cross): G++-cross doesn't need version.o, but
1191018334Speter	it does need choose-temp.o and pexecute.o.
1191150397Sobrien
1191218334SpeterWed Nov 13 07:53:38 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1191350397Sobrien
1191418334Speter	* g++.c (error) [!HAVE_VPRINTF]: Put error back for the only time
1191550397Sobrien	that we still use it.
1191650397Sobrien	(P_tmpdir, R_OK, W_OK, X_OK) [__MSDOS__]: Delete unnecessary macros.
1191750397Sobrien
1191850397SobrienWed Nov 13 02:00:26 1996  Jason Merrill  <jason@yorick.cygnus.com>
1191950397Sobrien
1192050397Sobrien	* init.c (expand_default_init): Avoid calling constructors to
1192150397Sobrien	initialize reference temps.
1192250397Sobrien
1192350397Sobrien	* cvt.c (convert_to_reference): Fix.
1192450397Sobrien
1192518334SpeterTue Nov 12 19:10:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
1192618334Speter
1192750397Sobrien	* cvt.c (cp_convert): Simplify for flag_ansi_overloading.
1192818334Speter	(convert_to_reference): Likewise.
1192950397Sobrien	* typeck.c (convert_for_initialization): Likewise.
1193018334Speter	* init.c (expand_default_init): Likewise.
1193150397Sobrien	(expand_aggr_init_1): Likewise.
1193250397Sobrien	* cp-tree.h (CONV_NONCONVERTING): Lose.
1193318334Speter	* typeck.c (build_c_cast): Lose allow_nonconverting parm.
1193450397Sobrien	* *.c: Adjust.
1193518334Speter	* call.c (build_user_type_conversion_1): Assume LOOKUP_ONLYCONVERTING.
1193650397Sobrien
1193718334SpeterTue Nov 12 16:29:04 1996  Brendan Kehoe  <brendan@canuck.cygnus.com>
1193850397Sobrien
1193918334Speter	* pt.c (tsubst_expr): Reverse args to expand_start_catch_block.
1194050397Sobrien
1194150397SobrienTue Nov 12 15:26:17 1996  Jason Merrill  <jason@yorick.cygnus.com>
1194250397Sobrien
1194350397Sobrien	* init.c (expand_aggr_init_1): Don't crash on non-constructor
1194450397Sobrien	TARGET_EXPR.
1194550397Sobrien
1194650397SobrienTue Nov 12 14:00:50 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1194750397Sobrien
1194850397Sobrien	* g++.c: Include gansidecl.h.
1194918334Speter	(VPROTO, PVPROTO, VA_START): Delete.
1195050397Sobrien	(choose_temp_base_try, choose_temp_base, perror_exec,
1195118334Speter	run_dos) [__MSDOS__]: Delete fns.
1195250397Sobrien	(pfatal_with_name): Delete fn.
1195350397Sobrien	(temp_filename): Declare like in gcc.c.
1195418334Speter	(pexecute, pwait, choose_temp_base): Declare from gcc.c.
1195550397Sobrien	(error_count, signal_count): Define.
1195618334Speter	(error): Delete both definitions.
1195750397Sobrien	(PEXECUTE_{FIRST,LAST,SEARCH,VERBOSE}): Define from gcc.c.
1195850397Sobrien	(pfatal_pexecute): Add fn from gcc.c.
1195918334Speter	(main): Rename local VERBOSE var to VERBOSE_FLAG.  Rewrite the
1196050397Sobrien	code to use the pexecute stuff also used by gcc.c.
1196118334Speter	(MIN_FATAL_STATUS): Define.
1196250397Sobrien	* Make-lang.in (g++): Add dependency on and linking with
1196318334Speter	choose-temp.o and pexecute.o.
1196450397Sobrien
1196518334Speter	* cp-tree.h: Include gansidecl.h.
1196650397Sobrien	(STDIO_PROTO): Delete #undef/#define.
1196750397Sobrien	* cvt.c (NULL): Delete #undef/#define.
1196818334Speter	* expr.c (NULL): Likewise.
1196950397Sobrien	* init.c (NULL): Likewise.
1197018334Speter	* rtti.c (NULL): Likewise.
1197150397Sobrien	* xref.c (NULL): Likewise.
1197250397Sobrien
1197350397Sobrien	* cp-tree.h (build_user_type_conversion): Add prototype.
1197450397Sobrien	* call.c (build_user_type_conversion): Delete prototype.  Correct
1197518334Speter	decl of FLAGS arg to be an int.
1197650397Sobrien	* cvt.c (build_user_type_conversion): Likewise.
1197718334Speter
1197850397SobrienTue Nov 12 12:16:20 1996  Jason Merrill  <jason@yorick.cygnus.com>
1197918334Speter
1198050397Sobrien	* cp-tree.def: Add TRY_BLOCK and HANDLER.
1198118334Speter	* except.c (expand_start_catch_block): Support templates.
1198250397Sobrien	* parse.y (try_block, handler_seq): Likewise.
1198350397Sobrien	* pt.c (tsubst_expr): Support TRY_BLOCK and HANDLER.
1198450397Sobrien
1198518334SpeterMon Nov 11 13:57:31 1996  Jason Merrill  <jason@yorick.cygnus.com>
1198650397Sobrien
1198718334Speter	* pt.c (current_template_args): New fn.
1198850397Sobrien	(push_template_decl): Use it.
1198950397Sobrien	* decl.c (grokdeclarator): Use it.
1199050397Sobrien
1199118334Speter	* decl2.c (build_expr_from_tree): Dereference ref vars.
1199250397Sobrien
1199318334Speter	* decl.c (grokdeclarator): Generalize handling of TYPENAME_TYPEs in
1199450397Sobrien	the decl-specifier-seq.
1199518334Speter
1199650397Sobrien	* decl.c (grok_op_properties): Don't force the type of a conversion
1199718334Speter	op to be complete.  Don't warn about converting to the same type
1199850397Sobrien	for template instantiations.
1199950397Sobrien
1200018334Speter	* decl2.c (finish_file): Don't call instantiate_decl on synthesized
1200150397Sobrien	methods.
1200218334Speter
1200350397SobrienMon Nov 11 13:20:34 1996  Bob Manson  <manson@charmed.cygnus.com>
1200450397Sobrien
1200550397Sobrien	* typeck.c (get_delta_difference): Remove previous bogusness.
1200650397Sobrien	Don't give errors if force is set.
1200750397Sobrien
1200850397SobrienFri Nov  8 17:38:44 1996  Jason Merrill  <jason@yorick.cygnus.com>
1200918334Speter
1201050397Sobrien	* decl2.c (finish_file): Don't emit debug info.
1201118334Speter	* decl.c (pushdecl): Lose obsolete code.
1201250397Sobrien	(grokdeclarator): Still do the long long thing after complaining.
1201350397Sobrien	* search.c (note_debug_info_needed): Don't do anything if we're in a
1201418334Speter	template.
1201550397Sobrien	* method.c (synthesize_method): For non-local classes,
1201618334Speter	push_to_top_level first.
1201750397Sobrien
1201850397SobrienFri Nov  8 11:52:28 1996  Bob Manson  <manson@charmed.cygnus.com>
1201918334Speter
1202050397Sobrien	* typeck.c (get_delta_difference): Add no_error parameter.
1202118334Speter	(build_ptrmemfunc): Call get_delta_difference with no_error set;
1202250397Sobrien	we don't want error messages when converting unrelated
1202350397Sobrien	pointer-to-member functions.
1202450397Sobrien
1202518334SpeterThu Nov  7 11:16:24 1996  Mike Stump  <mrs@cygnus.com>
1202650397Sobrien
1202750397Sobrien	* error.c (dump_expr): Improve the wording on error messages that
1202850397Sobrien	involve pointer to member functions.
1202950397Sobrien
1203050397SobrienTue Nov  5 17:12:05 1996  Mike Stump  <mrs@cygnus.com>
1203118334Speter
1203250397Sobrien	* cvt.c (cp_convert_to_pointer): Move code for conversions from
1203318334Speter	(::*)() to void* or (*)() up a bit, so that we can convert from
1203450397Sobrien	METHOD_TYPEs as well.
1203552284Sobrien
1203618334SpeterTue Nov  5 14:54:17 1996  Jason Merrill  <jason@yorick.cygnus.com>
1203750397Sobrien
1203818334Speter	* rtti.c (get_tinfo_fn): Make sure 'type' is permanent.
1203950397Sobrien	There are no 'member' types.
1204050397Sobrien	(get_tinfo_fn_dynamic): Diagnose typeid of overloaded fn.
1204118334Speter	(build_x_typeid): Handle errors.
1204250397Sobrien
1204318334SpeterMon Nov  4 17:43:12 1996  Mike Stump  <mrs@cygnus.com>
1204450397Sobrien
1204550397Sobrien	* typeck.c (convert_for_assignment): Handle anachronistic implicit
1204650397Sobrien	conversions from (::*)() to void* or (*)().
1204718334Speter	* cvt.c (cp_convert_to_pointer): Likewise.
1204850397Sobrien	(cp_convert_to_pointer_force): Remove cp_convert_to_pointer
1204918334Speter	conversions from here.
1205052284Sobrien	* decl2.c (lang_decode_option): Add -W{no-,}pmf-conversions.
1205150397Sobrien	* lang-options.h: Likewise.
1205218334Speter	* decl2.c (warn_pmf2ptr): Define.
1205350397Sobrien	* cp-tree.h: Declare it.
1205418334Speter	* typeck2.c (digest_init): Allow pmfs down into
1205550397Sobrien	convert_for_initialization.
1205618334Speter
1205750397SobrienSun Nov  3 09:43:00 1996  Jason Merrill  <jason@yorick.cygnus.com>
1205850397Sobrien
1205950397Sobrien	* typeck.c (c_expand_return): Fix for returning overloaded fn.
1206050397Sobrien
1206150397SobrienFri Nov  1 08:53:17 1996  Jason Merrill  <jason@yorick.cygnus.com>
1206250397Sobrien
1206350397Sobrien	* cp-tree.h (DIRECT_BIND): Change from INDIRECT_BIND.
1206450397Sobrien	* decl.c (grok_reference_init): Pass DIRECT_BIND.
1206550397Sobrien	* cvt.c (build_up_reference): Don't mark 'this' addressable.  Use
1206618334Speter	DIRECT_BIND.
1206750397Sobrien	* call.c (convert_like): Don't pass INDIRECT_BIND.
1206818334Speter	* typeck.c (convert_arguments): Likewise.
1206950397Sobrien	* typeck.c (mark_addressable): Allow &this if flag_this_is_variable.
1207018334Speter
1207150397SobrienThu Oct 31 17:08:49 1996  Jason Merrill  <jason@yorick.cygnus.com>
1207218334Speter
1207350397Sobrien	* typeck.c (mark_addressable): Support TARGET_EXPR, unify with
1207450397Sobrien	similar code in build_up_ref.
1207518334Speter	* cvt.c (build_up_reference): Drastically simplify.
1207650397Sobrien
1207718334SpeterMon Oct 28 12:45:05 1996  Jeffrey A Law  <law@cygnus.com>
1207850397Sobrien
1207950397Sobrien	* typeck.c (signed_or_unsigned_type): If the given type already
1208050397Sobrien	as the correct signedness, then just return it.
1208150397Sobrien
1208250397Sobrien	* typeck.c ({un,}signed_type): If can't do anything, call
1208350397Sobrien	signed_or_unsigned_type.
1208450397Sobrien
1208550397SobrienThu Oct 24 14:21:59 1996  Bob Manson  <manson@charmed.cygnus.com>
1208650397Sobrien
1208750397Sobrien	* decl2.c (copy_assignment_arg_p): Don't buy the farm if
1208850397Sobrien	current_class_type is NULL.
1208950397Sobrien
1209050397SobrienWed Oct 23 00:43:10 1996  Jason Merrill  <jason@gerbil.cygnus.com>
1209150397Sobrien
1209250397Sobrien	* class.c (finish_struct_1): Avoid empty structs by adding a field
1209350397Sobrien	so layout_type gets the mode right.
1209418334Speter
1209550397Sobrien	* typeck.c (c_expand_return): Drastically simplify.
1209650397Sobrien
1209750397SobrienMon Oct 21 22:34:02 1996  Jason Merrill  <jason@yorick.cygnus.com>
1209850397Sobrien
1209950397Sobrien	* typeck.c (decay_conversion): Handle overloaded methods.
1210050397Sobrien
1210150397SobrienFri Oct 18 16:03:48 1996  Jason Merrill  <jason@yorick.cygnus.com>
1210218334Speter
1210350397Sobrien	* call.c (build_over_call): A TARGET_EXPR has side-effects.
1210450397Sobrien
1210550397SobrienThu Oct 17 11:31:59 1996  Mike Stump  <mrs@cygnus.com>
1210650397Sobrien
1210718334Speter	* cvt.c (convert_to_pointer_force): Add code to support pointer to
1210850397Sobrien	member function to pointer to function conversions.
1210918334Speter	* init.c (resolve_offset_ref): Add code to allow faked up objects,
1211050397Sobrien	ignoring them if they are not used, and giving an error, if they
1211150397Sobrien	are needed.
1211250397Sobrien	* typeck.c (get_member_function_from_ptrfunc): Fold e1 to improve
1211350397Sobrien	code, and so that we can give an error, if we needed an object,
1211418334Speter	and one was not provided.
1211550397Sobrien	(build_c_cast): Don't call default_conversion when we want to
1211618334Speter	convert to pointer to function from a METHOD_TYPE.
1211750397Sobrien
1211850397SobrienMon Oct 14 00:28:51 1996  Jason Merrill  <jason@yorick.cygnus.com>
1211950397Sobrien
1212018334Speter	* Make-lang.in (cplib2.ready): Fix logic.
1212150397Sobrien
1212218334Speter	* decl.c (shadow_tag): Only complain about non-artificial function
1212350397Sobrien	members.
1212450397Sobrien
1212518334Speter	* class.c (finish_struct_1): Add synthesized methods to TYPE_METHODS.
1212650397Sobrien
1212750397SobrienFri Oct 11 16:12:40 1996  Jason Merrill  <jason@yorick.cygnus.com>
1212850397Sobrien
1212918334Speter	* expr.c (cplus_expand_expr): Pre-tweak call_target like
1213050397Sobrien	expand_inline_function would.
1213150397Sobrien
1213218334Speter	* pt.c (mark_decl_instantiated): If extern_p, call
1213350397Sobrien	mark_inline_for_output.
1213418334Speter
1213550397SobrienThu Oct 10 15:58:08 1996  Mike Stump  <mrs@cygnus.com>
1213650397Sobrien
1213718334Speter	* typeck.c (unary_complex_lvalue): Add code to handle intermediate
1213850397Sobrien	pmd conversions.
1213918334Speter
1214050397Sobrien	* typeck.c (get_delta_difference): Fix wording, as we can be used
1214150397Sobrien	for pointer to data members.
1214250397Sobrien
1214352284SobrienTue Oct  8 12:43:51 1996  Bob Manson  <manson@charmed.cygnus.com>
1214450397Sobrien
1214550397Sobrien	* pt.c (tsubst): If the function decl isn't a member of this
1214650397Sobrien	template, return a copy of the decl (including copying the
1214718334Speter	lang-specific part) so we don't hose ourselves later.
1214850397Sobrien
1214918334SpeterThu Oct  3 16:24:28 1996  Jason Merrill  <jason@yorick.cygnus.com>
1215050397Sobrien
1215150397Sobrien	* class.c (finish_struct): Remove DWARF-specific tag handling.
1215250397Sobrien	* decl.c (pushtag): Likewise.
1215350397Sobrien	(finish_function): Always clear DECL_ARGUMENTS on function decls with
1215418334Speter	no saved RTX.
1215550397Sobrien	* decl2.c (finish_file): Emit DWARF debugging info for static data
1215618334Speter	members.
1215750397Sobrien
1215850397SobrienWed Oct  2 21:58:01 1996  Bob Manson  <manson@charmed.cygnus.com>
1215918334Speter
1216050397Sobrien	* decl.c (duplicate_decls): Make sure the old DECL_LANG_SPECIFIC
1216118334Speter	isn't the same as the new one before we whack it.
1216250397Sobrien
1216350397SobrienMon Sep 30 13:38:24 1996  Jason Merrill  <jason@yorick.cygnus.com>
1216450397Sobrien
1216518334Speter	* class.c, cp-tree.h, cvt.c, decl.c, decl2.c, gxx.gperf, hash.h,
1216650397Sobrien	lex.c, method.c, parse.y, typeck.c, typeck2.c: Remove
1216718334Speter	warn_traditional and warn_strict_prototypes; remove ancient
1216850397Sobrien	'overload' code; remove references to flag_traditional.
1216950397Sobrien
1217050397SobrienMon Sep 30 12:58:40 1996  Mike Stump  <mrs@cygnus.com>
1217150397Sobrien
1217218334Speter	* input.c (sub_getch): Handle 8-bit characters in string literals.
1217350397Sobrien
1217418334SpeterSun Sep 29 03:12:01 1996  Jason Merrill  <jason@yorick.cygnus.com>
1217550397Sobrien
1217650397Sobrien	* tree.c (mapcar): Handle CONSTRUCTORs.
1217750397Sobrien	(copy_to_permanent): Handle expression_obstack properly.
1217850397Sobrien
1217950397Sobrien	* Make-lang.in (cplib2.txt): Also depend on the headers.
1218050397Sobrien
1218150397Sobrien	* rtti.c (get_tinfo_var): Don't assume that POINTER_SIZE ==
1218250397Sobrien	INT_TYPE_SIZE.
1218350397Sobrien	(expand_class_desc): Use USItype for offset field.
1218450397Sobrien	* tinfo.h (struct __class_type_info): Likewise.
1218550397Sobrien
1218618334Speter	* method.c (build_overload_int): TYPE_PRECISION should be applied
1218750397Sobrien	to types.
1218818334Speter
1218950397SobrienSat Sep 28 14:44:50 1996  Jason Merrill  <jason@yorick.cygnus.com>
1219018334Speter
1219150397Sobrien	* call.c (build_new_op): A COND_EXPR involving void must be a
1219218334Speter	builtin.
1219350397Sobrien
1219450397SobrienFri Sep 27 16:40:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
1219550397Sobrien
1219650397Sobrien	* typeck.c (build_x_component_ref): New fn.
1219750397Sobrien	(build_object_ref): Use it.
1219850397Sobrien	* parse.y (primary): Use it.
1219950397Sobrien	* decl2.c (build_expr_from_tree): Use it.
1220018334Speter	* cp-tree.h: Declare it.
1220150397Sobrien
1220218334Speter	* decl.c (start_decl): Variable-sized arrays cannot be initialized.
1220350397Sobrien	* error.c (dump_type_suffix): Handle variable arrays.
1220450397Sobrien
1220550397SobrienFri Sep 27 13:14:05 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1220618334Speter
1220752284Sobrien	* Make-lang.in (exception.o): Put back compiling it with -fPIC.
1220818334Speter
1220950397SobrienFri Sep 27 03:00:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
1221050397Sobrien
1221118334Speter	* decl.c (lookup_name_real): Don't try to look up anything in a
1221250397Sobrien	TYPENAME_TYPE.
1221350397Sobrien
1221418334Speter	* tinfo2.cc (__throw_type_match_rtti): Oops.
1221550397Sobrien
1221618334SpeterThu Sep 26 22:11:05 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1221750397Sobrien
1221850397Sobrien	* Make-lang.in (exception.o): Use -fno-PIC for now.
1221918334Speter
1222050397SobrienThu Sep 26 10:59:00 1996  Jason Merrill  <jason@yorick.cygnus.com>
1222118334Speter
1222250397Sobrien	* rtti.c (build_dynamic_cast): Pass tinfo fns rather than
1222350397Sobrien	calling them.
1222418334Speter	(get_tinfo_fn_dynamic): Extracted from build_typeid.
1222550397Sobrien	* tinfo2.cc (__dynamic_cast): Adjust.
1222618334Speter
1222750397Sobrien	* rtti.c (build_typeid): Use resolves_to_fixed_type_p.
1222818334Speter	(build_x_typeid): Likewise.
1222950397Sobrien
1223018334Speter	* parse.y: Call build_x_typeid instead of build_typeid.
1223150397Sobrien	* cp-tree.def: Add TYPEID_EXPR.
1223218334Speter	* pt.c (tsubst_copy): Handle typeid.
1223350397Sobrien	* decl2.c (build_expr_from_tree): Likewise.
1223418334Speter	* rtti.c (build_x_typeid): Throw bad_typeid from here.
1223550397Sobrien	(build_typeid): Not here.
1223618334Speter	* cp-tree.h: Declare build_x_typeid.
1223750397Sobrien
1223850397SobrienWed Sep 25 17:26:16 1996  Jason Merrill  <jason@yorick.cygnus.com>
1223950397Sobrien
1224050397Sobrien	* call.c (convert_like): Pull out constant values.
1224150397Sobrien
1224250397Sobrien	* tree.c (mapcar): Use build_cplus_array_type, not build_array_type.
1224350397Sobrien
1224450397SobrienWed Sep 25 17:28:53 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
1224550397Sobrien
1224650397Sobrien	* decl.c (init_decl_processing): Create short int types before
1224718334Speter	creating size_t in case a machine description needs to use
1224850397Sobrien	unsigned short for size_t.
1224918334Speter
1225050397SobrienTue Sep 24 18:18:44 1996  Jason Merrill  <jason@yorick.cygnus.com>
1225118334Speter
1225250397Sobrien	* Make-lang.in (exception.o): Turn off pic.
1225350397Sobrien
1225418334Speter	* tinfo2.cc (__throw_type_match_rtti): Fix cv-variants of the same
1225550397Sobrien	type, multi-level ptr conversions.
1225618334Speter
1225750397Sobrien	* rtti.c (call_void_fn): Renamed and genericized from throw_bad_cast.
1225818334Speter	(throw_bad_cast): Use it.
1225950397Sobrien	(throw_bad_typeid): New fn.
1226050397Sobrien	(build_typeid): Throw bad_typeid as needed.
1226118334Speter	Use build_call.
1226250397Sobrien	(synthesize_tinfo_fn): Handle functions and arrays before checking
1226350397Sobrien	for cv-quals.
1226418334Speter
1226550397Sobrien	* Remove .h from standard C++ headers, add new.h, move into inc
1226618334Speter	subdirectory.
1226750397Sobrien
1226850397Sobrien	* exception*: Remove pointer from object, constructors.  Add
1226918334Speter	default exception::what that uses type_info::name.  Add
1227050397Sobrien	__throw_bad_typeid.
1227150397Sobrien
1227218334Speter	* init.c (build_new): Don't add a cookie to new (void *) T[2].
1227350397Sobrien
1227418334SpeterMon Sep 23 15:21:53 1996  Jason Merrill  <jason@yorick.cygnus.com>
1227550397Sobrien
1227650397Sobrien	* Make-lang.in: Building C++ code depends on cc1plus.
1227750397Sobrien
1227818334SpeterMon Sep 23 12:38:40 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1227950397Sobrien
1228018334Speter	* decl.c (struct saved_scope): Declare PROCESSING_TEMPLATE_DECL as
1228150397Sobrien	a HOST_WIDE_INT, not a tree.
1228250397Sobrien
1228350397SobrienMon Sep 23 12:36:02 1996  Jason Merrill  <jason@yorick.cygnus.com>
1228450397Sobrien
1228550397Sobrien	* exception.cc: Don't include <stdlib.h>.
1228650397Sobrien
1228718334Speter	* Make-lang.in (c++.clean): Remove cplib2.*.
1228850397Sobrien
1228918334SpeterMon Sep 23 09:42:19 1996  Doug Evans  <dje@canuck.cygnus.com>
1229050397Sobrien
1229150397Sobrien	* parse.y (component_decl_1, component_costructor_declarator case):
1229218334Speter	Pass attributes/prefix_attributes in tree list.
1229350397Sobrien
1229418334SpeterMon Sep 23 01:18:50 1996  Jason Merrill  <jason@yorick.cygnus.com>
1229550397Sobrien
1229650397Sobrien	* tinfo{,2}.cc: #include <stddef.h> instead of <stdlib.h>.
1229750397Sobrien
1229850397SobrienSun Sep 22 05:31:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
1229918334Speter
1230050397Sobrien	* lex.c (do_identifier): Don't do deferred lookup in a template
1230118334Speter	header.
1230250397Sobrien
1230318334Speter	* typeck2.c (store_init_value): Oops.
1230450397Sobrien
1230518334Speter	* new.{h,cc}, exception.{h,cc}, typeinfo.h, tinfo{2.cc,.cc,.h}:
1230650397Sobrien	New files for C++ lang-support library.
1230750397Sobrien	* Make-lang.in (CXX_EXTRA_HEADERS): Define.
1230818334Speter	(CXX_LIB2FUNCS): Define.
1230950397Sobrien	And rules for building the C++ lang-support code.
1231018334Speter	* config-lang.in (headers): Define.
1231150397Sobrien	(lib2funcs): Define.
1231250397Sobrien
1231350397SobrienSat Sep 21 19:17:28 1996  Jason Merrill  <jason@yorick.cygnus.com>
1231450397Sobrien
1231518334Speter	* decl2.c (build_expr_from_tree): If CONSTRUCTOR has a type, call
1231650397Sobrien	digest_init.
1231750397Sobrien	* pt.c (tsubst_copy): Compute type for CONSTRUCTOR.
1231818334Speter	* typeck2.c (store_init_value): Check for initializing pmf with { }
1231950397Sobrien	here.
1232018334Speter	(process_init_constructor): Not here.
1232150397Sobrien
1232250397SobrienThu Sep 19 16:41:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
1232318334Speter
1232450397Sobrien	* pt.c (begin_template_parm_list): Increment
1232518334Speter	processing_template_decl here.
1232650397Sobrien	(end_template_parm_list): Not here.
1232750397Sobrien	(process_template_parm): No need to add 1 to it now.
1232850397Sobrien	* *.c: Use processing_template_decl instead of current_template_parms
1232950397Sobrien	to check for being in a template.
1233050397Sobrien
1233118334Speter	* pt.c (uses_template_parms): Handle SCOPE_REF.  Fix CONSTRUCTOR.
1233252284Sobrien	(tsubst_copy): Handle CONSTRUCTOR.
1233350397Sobrien	(instantiate_decl): Set up context properly for variables.
1233418334Speter	* decl2.c (build_expr_from_tree): Handle CONSTRUCTOR.
1233550397Sobrien	* class.c (finish_struct): Reverse CLASSTYPE_TAGS.
1233618334Speter
1233750397SobrienWed Sep 18 13:30:20 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1233818334Speter
1233950397Sobrien	* lex.c (enum tree_node_kind) [GATHER_STATISTICS]: Put the enum back.
1234018334Speter
1234150397SobrienWed Sep 18 04:24:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
1234250397Sobrien
1234318334Speter	* method.c (make_thunk): Call comdat_linkage before setting the
1234450397Sobrien	TREE_CODE.
1234518334Speter
1234650397Sobrien	* decl2.c (comdat_linkage): Use make_decl_one_only.
1234718334Speter	(import_export_decl): Likewise.
1234850397Sobrien	* decl.c (init_decl_processing): Check supports_one_only instead of
1234918334Speter	SUPPORTS_WEAK.
1235050397Sobrien
1235118334SpeterSat Sep 14 08:34:41 1996  Jason Merrill  <jason@yorick.cygnus.com>
1235250397Sobrien
1235350397Sobrien	* decl2.c (grokfield): Tighten checking for access decls.
1235450397Sobrien
1235550397Sobrien	* decl.c (make_typename_type): Resolve references to
1235652284Sobrien	current_class_type.  Set CLASSTYPE_GOT_SEMICOLON.
1235750397Sobrien	(lookup_name_real): Types that depend on a template parameter get
1235850397Sobrien	an implicit 'typename' unless they're in the current scope.
1235918334Speter	(start_decl_1): We don't care about incomplete types that depend
1236050397Sobrien	on a template parm.
1236150397Sobrien	(grokdeclarator): Resolve 'typename's in the type specifier that
1236250397Sobrien	refer to members of the current scope.
1236350397Sobrien
1236450397Sobrien	* call.c (build_over_call): Remove 'inline called before
1236550397Sobrien	definition' diagnostic.
1236650397Sobrien	(build_method_call): Likewise.
1236718334Speter	* decl.c (duplicate_decls): Downgrade 'used before declared
1236850397Sobrien	inline' to a warning, only with -Winline.
1236918334Speter
1237050397SobrienFri Sep 13 17:31:40 1996  Stan Shebs  <shebs@andros.cygnus.com>
1237118334Speter
1237250397Sobrien	* mpw-make.sed: Fix include paths, add @DASH_C_FLAG@ to compile.
1237318334Speter
1237450397SobrienWed Sep 11 22:38:13 1996  Gerald Baumgartner  <gb@cs.purdue.edu>
1237518334Speter
1237650397Sobrien	* call.c (build_method_call): When calling a signature
1237750397Sobrien	default implementation, as in other cases, let instance_ptr simply
1237850397Sobrien	be instance.
1237918334Speter
1238050397SobrienWed Sep 11 22:14:44 1996  Mike Stump  <mrs@cygnus.com>
1238118334Speter
1238250397Sobrien	* parse.y (simple_stmt): Cleanup and use do_poplevel ().
1238318334Speter
1238450397SobrienWed Sep 11 22:10:48 1996  Mike Stump  <mrs@cygnus.com>
1238550397Sobrien
1238618334Speter	* except.c (expand_start_catch_block): Add a pushlevel so that -g
1238750397Sobrien	works on hppa and SPARC.
1238850397Sobrien
1238950397SobrienWed Sep 11 10:18:06 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1239050397Sobrien
1239150397Sobrien	* typeck.c (build_indirect_ref): Catch PTR being an error_mark_node.
1239250397Sobrien
1239350397SobrienMon Sep  9 19:51:14 1996  Gerald Baumgartner  <gb@cs.purdue.edu>
1239418334Speter
1239550397Sobrien	* call.c (build_over_call): Check first whether DECL_CONTEXT exists
1239650397Sobrien	before testing whether it's a signature.
1239718334Speter
1239850397SobrienSun Sep  8 16:06:57 1996  Gerald Baumgartner  <gb@cs.purdue.edu>
1239950397Sobrien
1240050397Sobrien	* call.c (build_new_method_call): Don't complain about signature
1240118334Speter	pointers and references not being an aggr type.
1240250397Sobrien	(build_this): If a signature pointer or reference was passed in,
1240318334Speter	just return it.
1240450397Sobrien	(build_new_method_call): If instance is a signature pointer, set
1240518334Speter	basetype to the signature type of instance.
1240650397Sobrien	* sig.c (build_signature_method_call): Deleted basetype and
1240718334Speter	instance parameters, they can be found as the DECL_CONTEXT of
1240850397Sobrien	function and as the first argument passed in.
1240918334Speter	* cp-tree.h: Changed declaration of build_signature_method_call.
1241050397Sobrien	* call.c (build_method_call): Deleted first two arguments in call
1241150397Sobrien	of build_signature_method_call.
1241218334Speter	(build_over_call): Added call to build_signature_method_call.
1241350397Sobrien
1241418334SpeterThu Sep  5 16:51:28 1996  Jason Merrill  <jason@yorick.cygnus.com>
1241550397Sobrien
1241618334Speter	* typeck.c (build_c_cast): Don't tack a non_lvalue_expr onto a
1241750397Sobrien	target_expr.
1241818334Speter
1241950397SobrienThu Sep  5 10:05:38 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1242018334Speter
1242150397Sobrien	* cvt.c (convert_to_reference): Use %#T, not %#D, for error.
1242250397Sobrien
1242318334SpeterWed Sep  4 17:16:09 1996  Bob Manson  <manson@charmed.cygnus.com>
1242450397Sobrien
1242518334Speter	* except.c (expand_start_try_stmts): Move to except.c in the backend.
1242650397Sobrien	(expand_end_try_stmts): Remove.
1242718334Speter
1242850397Sobrien	* init.c (perform_member_init): Use add_partial_entry () instead
1242918334Speter	of directly manipulating lists.
1243050397Sobrien	(emit_base_init): Likewise.
1243150397Sobrien
1243218334SpeterWed Sep  4 12:14:36 1996  Mike Stump  <mrs@cygnus.com>
1243350397Sobrien
1243418334Speter	* except.c (expand_exception_blocks): Always make sure USE and
1243552284Sobrien	CLOBBER insns that came at the end still do, the backend relies
1243650397Sobrien	upon this.
1243750397Sobrien
1243850397SobrienWed Sep  4 07:44:48 1996  Jason Merrill  <jason@yorick.cygnus.com>
1243950397Sobrien
1244050397Sobrien	* call.c (build_over_call): We can only use a TARGET_EXPR of the
1244150397Sobrien	right type.
1244218334Speter
1244350397SobrienTue Sep  3 19:26:05 1996  Jason Merrill  <jason@yorick.cygnus.com>
1244418334Speter
1244550397Sobrien	* cvt.c (convert_to_reference): Revert last change, don't complain
1244650397Sobrien	about temp without target decl.
1244750397Sobrien
1244850397SobrienTue Sep  3 10:22:56 1996  Mike Stump  <mrs@cygnus.com>
1244950397Sobrien
1245050397Sobrien	* decl.c (grokdeclarator): Don't core dump when void() is given.
1245118334Speter
1245250397SobrienTue Sep  3 02:38:56 1996  Jason Merrill  <jason@yorick.cygnus.com>
1245318334Speter
1245450397Sobrien	* decl.c (copy_args_p): Don't crash.
1245550397Sobrien
1245650397SobrienFri Aug 30 14:26:57 1996  Mike Stump  <mrs@cygnus.com>
1245750397Sobrien
1245850397Sobrien	* pt.c (tsubst): And support template args inside the exception
1245950397Sobrien	specification.
1246018334Speter
1246150397Sobrien	* pt.c (tsubst): Add support for exception specifications in
1246250397Sobrien	template functions.
1246350397Sobrien
1246450397SobrienFri Aug 30 10:01:55 1996  Mike Stump  <mrs@cygnus.com>
1246550397Sobrien
1246618334Speter	* cp-tree.def (DECL_STMT): Eliminate the throw spec field, only 3
1246750397Sobrien	fields now.
1246818334Speter	* cp-tree.h (start_decl): Eliminate the throw spec parameter.
1246950397Sobrien	(start_function): Likewise.
1247018334Speter	(start_method): Likewise.
1247150397Sobrien	(grokfield): Likewise.
1247218334Speter	(make_call_declarator): Add throw spec parameter.
1247350397Sobrien	(set_quals_and_spec): Add routine.
1247450397Sobrien	* lex.c (set_quals_and_spec): Likewise.
1247518334Speter	* decl.h (grokdeclarator): Eliminate the throw spec parameter.
1247650397Sobrien	* decl.c (shadow_tag): Eliminate the throw spec parameter to
1247750397Sobrien	grokdeclarator.
1247850397Sobrien	(groktypename): Likewise.
1247950397Sobrien	(start_decl): Eliminate the throw spec parameter.  Eliminate the
1248018334Speter	throw spec parameter to grokdeclarator.  Eliminate the throw spec
1248150397Sobrien	field in DECL_STMT.
1248218334Speter	(cp_finish_decl): Eliminate the throw spec field in DECL_STMT.
1248350397Sobrien	(grokfndecl): Remove useless set of raises.
1248418334Speter	(grokdeclarator): Eliminate the throw spec parameter.  Eliminate
1248550397Sobrien	the throw spec parameter to start_decl.  Pull the throw spec out
1248650397Sobrien	of the call declarator.
1248750397Sobrien	(grokparms): Eliminate the throw spec parameter to grokdeclarator.
1248850397Sobrien	(start_function): Eliminate the throw spec parameter.  Eliminate
1248950397Sobrien	the throw spec parameter to grokdeclarator.
1249050397Sobrien	(start_method): Likewise.
1249150397Sobrien	* decl2.c (grokfield): Likewise.
1249250397Sobrien	(grokbitfield): Eliminate the throw spec parameter to grokdeclarator.
1249318334Speter	(grokoptypename): Likewise.
1249450397Sobrien	(finish_file): Eliminate the throw spec parameter to
1249550397Sobrien	start_function.  Add throw spec to make_call_declarator.
1249650397Sobrien	* except.c (init_exception_processing): Add throw spec to
1249750397Sobrien	make_call_declarator.  Eliminate the throw spec parameter to
1249850397Sobrien	start_decl.
1249918334Speter	(expand_start_catch_block): Eliminate the throw spec parameter to
1250050397Sobrien	grokdeclarator.
1250118334Speter	(expand_builtin_throw): Add throw spec to make_call_declarator.
1250250397Sobrien	Eliminate the throw spec parameter to start_function.
1250318334Speter	(start_anon_func): Likewise.
1250450397Sobrien	* lex.c (make_call_declarator): Add throw spec parameter.
1250518334Speter	(set_quals_and_spec): New routine.
1250650397Sobrien	(cons_up_default_function): Add throw spec to make_call_declarator.
1250750397Sobrien	Eliminate the throw spec parameter to grokfield.
1250850397Sobrien	* method.c (synthesize_method): Eliminate the throw spec parameter
1250918334Speter	to start_function.
1251050397Sobrien	* pt.c (process_template_parm): Eliminate the throw spec parameter
1251118334Speter	to grokdeclarator.
1251250397Sobrien	(tsubst): Add throw spec to make_call_declarator.
1251318334Speter	(tsubst_expr): Eliminate the throw spec parameter to start_decl.
1251450397Sobrien	(do_function_instantiation): Eliminate the throw spec parameter to
1251518334Speter	grokdeclarator.  Eliminate the throw spec parameter to
1251650397Sobrien	start_function.
1251750397Sobrien	* rtti.c (synthesize_tinfo_fn): Eliminate the throw spec parameter
1251818334Speter	to start_function.
1251950397Sobrien	* parse.y (datadef): Remove non-winning optimization.
1252018334Speter	(decl): Likewise.
1252150397Sobrien	(fndef): Remove ambiguous error productions uncovered by grammar
1252218334Speter	fixing.
1252350397Sobrien	(constructor_declarator): Add exception_specification_opt here.
1252418334Speter	(component_constructor_declarator): Likewise.
1252550397Sobrien	(direct_after_type_declarator): Likewise.
1252650397Sobrien	(complex_direct_notype_declarator): Likewise.
1252718334Speter	(direct_abstract_declarator): Likewise.
1252850397Sobrien	(fn.def1): Remove exception_specification_opt.
1252918334Speter	(fn.def2): Likewise.
1253050397Sobrien	(condition): Likewise.
1253150397Sobrien	(initdcl0): Likewise.
1253250397Sobrien	(initdcl): Likewise.
1253350397Sobrien	(notype_initdcl0): Likewise.
1253450397Sobrien	(nomods_initdcl0): Likewise.
1253550397Sobrien	(component_decl_1): Likewise.
1253650397Sobrien	(component_declarator): Likewise.
1253750397Sobrien	(after_type_component_declarator0): Likewise.
1253850397Sobrien	(after_type_component_declarator): Likewise.
1253950397Sobrien	(notype_component_declarator): Likewise.
1254050397Sobrien
1254150397SobrienWed Aug 28 01:40:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
1254250397Sobrien
1254318334Speter	* call.c (build_over_call): Also use an INIT_EXPR when
1254450397Sobrien	initializing anything from an rvalue.
1254518334Speter
1254650397Sobrien	* call.c (build_over_call): Call stabilize_reference when building
1254750397Sobrien	an INIT_EXPR instead of calling the copy ctor.
1254818334Speter
1254950397Sobrien	* call.c (joust): Extend the previous change to all comparisons.
1255018334Speter
1255150397Sobrien	* decl2.c, method.c, lex.c: Use MAKE_DECL_ONE_ONLY and
1255218334Speter	NO_LINKAGE_HEURISTICS.
1255350397Sobrien
1255418334Speter	* decl2.c (finish_file): Emit any statics that weren't already.
1255550397Sobrien
1255650397Sobrien	* typeck.c (build_static_cast): Implement.
1255718334Speter	* tree.c (build_cplus_new): Handle getting a TARGET_EXPR.
1255850397Sobrien	* decl.c (grokparms): Use can_convert_arg instead of
1255950397Sobrien	implicit_conversion directly.
1256052284Sobrien	(copy_args_p): New fn.
1256118334Speter	* cvt.c (convert_to_reference): Don't complain about temp with
1256250397Sobrien	static_cast.
1256318334Speter	(build_up_reference): Handle TARGET_EXPRs.
1256450397Sobrien	* call.c (build_over_call): Elide unnecessary temps.
1256550397Sobrien	(can_convert*): Use new overloading code.
1256650397Sobrien
1256718334SpeterTue Aug 27 13:12:21 1996  Jason Merrill  <jason@yorick.cygnus.com>
1256850397Sobrien
1256918334Speter	* call.c: Move TYPE_PTR*_MACROS ...
1257050397Sobrien	* cp-tree.h: To here.
1257150397Sobrien	* typeck.c (build_reinterpret_cast): Implement.
1257218334Speter
1257350397Sobrien	* call.c (add_builtin_candidate): Use TYPE_PTROB_P instead of
1257418334Speter	ptr_complete_ob.
1257550397Sobrien	(joust): If we're comparing a function to a builtin and the worst
1257650397Sobrien	conversion for the builtin is worse than the worst conversion for the
1257718334Speter	function, take the function.
1257850397Sobrien
1257918334Speter	* typeck.c (build_const_cast): Implement.
1258050397Sobrien	(comp_ptr_ttypes_const): Like comp_ptr_ttypes, for const_cast.
1258118334Speter	(comp_ptr_ttypes_reinterpret): Like cpt, for reinterpret_cast.
1258250397Sobrien
1258318334SpeterTue Aug 27 13:14:58 1996  Bob Manson  <manson@charmed.cygnus.com>
1258450397Sobrien
1258550397Sobrien	* rtti.c (build_dynamic_cast): Don't try to dereference exprtype
1258650397Sobrien	too early.  Make sure we explode if exprtype turns out to be a
1258750397Sobrien	NULL_TREE when it shouldn't be.
1258850397Sobrien
1258950397SobrienTue Aug 27 10:56:21 1996  Mike Stump  <mrs@cygnus.com>
1259050397Sobrien
1259150397Sobrien	* cp-tree.h: New routine make_call_declarator.
1259250397Sobrien	* lex.c (make_call_declarator): Define it.
1259350397Sobrien	* except.c (init_exception_processing): Use it.
1259450397Sobrien	(expand_builtin_throw): Likewise.
1259550397Sobrien	(start_anon_func): Likewise.
1259650397Sobrien	* decl2.c (finish_file): Likewise.
1259750397Sobrien	* lex.c (cons_up_default_function): Likewise.
1259850397Sobrien	* parse.y: Likewise.
1259950397Sobrien	* pt.c (tsubst): Likewise.
1260050397Sobrien
1260150397SobrienMon Aug 26 17:40:03 1996  Mike Stump  <mrs@cygnus.com>
1260250397Sobrien
1260350397Sobrien	* decl2.c (groktypefield): Remove unused code.
1260450397Sobrien
1260550397SobrienMon Aug 26 17:00:33 1996  Mike Stump  <mrs@cygnus.com>
1260650397Sobrien
1260750397Sobrien	* gxx.gperf: Change TYPE_QUAL into CV_QUALIFIER.
1260850397Sobrien	* parse.y: Likewise.  Change maybe_type_qual into maybe_cv_qualifier.
1260950397Sobrien	Change type_quals into cv_qualifiers.  Change nonempty_type_quals into
1261050397Sobrien	nonempty_cv_qualifiers.
1261150397Sobrien	* hash.h: Rebuild.
1261250397Sobrien
1261350397Sobrien	* lex.c (make_pointer_declarator): Change type_quals into
1261450397Sobrien	cv_qualifiers.
1261550397Sobrien	(make_reference_declarator): Likewise.
1261650397Sobrien
1261750397SobrienThu Aug 22 01:09:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
1261850397Sobrien
1261950397Sobrien	* decl.c (start_function): Only check interface_* for templates
1262050397Sobrien	with flag_alt_external_templates.
1262150397Sobrien
1262250397Sobrien	* call.c (build_new_op): Check for comparison of different enum types.
1262350397Sobrien	(build_over_call): Fix arg # output.
1262450397Sobrien
1262550397Sobrien	* typeck.c (build_component_ref): Handle pre-found TYPE_DECL.
1262650397Sobrien
1262750397SobrienWed Aug 21 00:13:15 1996  Jason Merrill  <jason@yorick.cygnus.com>
1262850397Sobrien
1262950397Sobrien	* call.c (build_new_op): Check for erroneous args.
1263050397Sobrien
1263150397Sobrien	* call.c (build_new_method_call): Add missing args to cp_error.
1263250397Sobrien
1263350397Sobrien	* tree.c (error_type): Don't print reference-to-array.
1263450397Sobrien
1263550397Sobrien	* typeck.c (convert_for_assignment): Don't say contravariance for
1263650397Sobrien	removing const.
1263750397Sobrien
1263850397SobrienTue Aug 20 13:23:00 1996  Jason Merrill  <jason@yorick.cygnus.com>
1263950397Sobrien
1264050397Sobrien	* call.c (build_over_call): Diagnose bad convs for `this'.
1264150397Sobrien
1264250397Sobrien	* lex.c (cons_up_default_function): Set DECL_ARTIFICIAL
1264350397Sobrien	on _ctor_arg.
1264450397Sobrien
1264550397Sobrien	* call.c (convert_like): Handle bad convs.
1264650397Sobrien	(build_over_call): Handle bad convs better.
1264750397Sobrien
1264850397Sobrien	* decl2.c: -fansi-overloading is now the default.
1264950397Sobrien
1265050397Sobrien	* call.c (build_new_method_call): Check for erroneous args.
1265152284Sobrien
1265250397Sobrien	* pt.c (instantiate_class_template): Propagate
1265350397Sobrien	TYPE_USES_MULTIPLE_INHERITANCE.
1265450397Sobrien
1265550397SobrienTue Aug 20 13:09:57 1996  Mike Stump  <mrs@cygnus.com>
1265650397Sobrien
1265750397Sobrien	* call.c (enforce_access): Add static to routine.
1265850397Sobrien
1265950397SobrienSun Aug 18 14:35:54 1996  Jason Merrill  <jason@yorick.cygnus.com>
1266050397Sobrien
1266150397Sobrien	* call.c (build_user_type_conversion_1): Fix bad handling.
1266250397Sobrien	(compare_ics): Likewise.
1266350397Sobrien
1266450397SobrienSat Aug 17 21:54:11 1996  Jason Merrill  <jason@yorick.cygnus.com>
1266550397Sobrien
1266650397Sobrien	* call.c (standard_conversion): Oops.
1266750397Sobrien
1266850397SobrienSat Aug 17 16:28:11 1996  Geoffrey Noer  <noer@cygnus.com>
1266950397Sobrien
1267050397Sobrien	* g++.c: Update test for win32 (&& ! cygwin32).
1267150397Sobrien
1267250397SobrienSat Aug 17 03:45:31 1996  Jason Merrill  <jason@yorick.cygnus.com>
1267350397Sobrien
1267450397Sobrien	* typeck.c (comp_ptr_ttypes_real): Handle OFFSET_TYPEs properly.
1267550397Sobrien	(ptr_reasonably_similar): New fn.
1267650397Sobrien	* call.c (BAD_RANK): New rank.
1267750397Sobrien	(ICS_BAD_FLAG): New macro.
1267850397Sobrien	(standard_conversion): Handle almost-right pointer conversions.
1267950397Sobrien	(reference_binding): Handle bad rvalue bindings.
1268050397Sobrien	(add_*_candidate): Stuff.
1268152284Sobrien	(build_over_call): Pass bad conversions to convert_for_initialization.
1268250397Sobrien	(compare_ics): Handle bad convs.
1268350397Sobrien	(joust): Likewise.
1268450397Sobrien
1268550397SobrienFri Aug 16 15:02:19 1996  Bob Manson  <manson@charmed.cygnus.com>
1268650397Sobrien
1268750397Sobrien	* init.c (expand_vec_init): Use ptrdiff_type_node instead of
1268850397Sobrien	integer_type_node when computing pointer offsets.
1268950397Sobrien
1269050397SobrienFri Aug 16 01:28:32 1996  Jason Merrill  <jason@yorick.cygnus.com>
1269150397Sobrien
1269250397Sobrien	* tree.c (lvalue_type): New fn.
1269350397Sobrien	(error_type): New fn.
1269450397Sobrien	* call.c (op_error): Use error_type.
1269550397Sobrien	(add_conv_candidate): Use lvalue_type.
1269650397Sobrien	(add_builtin_candidates): Likewise.
1269750397Sobrien	* error.c (args_as_string): Use error_type.
1269850397Sobrien
1269950397SobrienThu Aug 15 17:27:13 1996  Jason Merrill  <jason@yorick.cygnus.com>
1270050397Sobrien
1270150397Sobrien	* pt.c (instantiate_decl): Evaluate DECL_INITIAL of a VAR_DECL here.
1270250397Sobrien	(tsubst): Not here.
1270350397Sobrien
1270450397Sobrien	* decl.c (init_decl_processing): With -ansi, __null's type is the
1270550397Sobrien	signed integral type with the same number of bits as a pointer.
1270650397Sobrien	Introduce a new variable null_node for it.
1270750397Sobrien	* cp-tree.h: Adjust.
1270850397Sobrien	* call.c (null_ptr_cst_p): Adjust.
1270950397Sobrien
1271050397SobrienThu Aug 15 17:09:54 1996  Mike Stump  <mrs@cygnus.com>
1271150397Sobrien
1271250397Sobrien	* except.c (do_unwind): Mark %i7 as used on the SPARC so we can
1271350397Sobrien	optimize.
1271450397Sobrien
1271550397SobrienThu Aug 15 01:36:49 1996  Jason Merrill  <jason@yorick.cygnus.com>
1271652284Sobrien
1271750397Sobrien	* decl2.c (import_export_decl): Ignore #pragma interface for tinfo
1271850397Sobrien	fns of classes without virtual functions.
1271950397Sobrien
1272050397Sobrien	* call.c (add_function_candidate): Handle `this' specially.
1272150397Sobrien	(compare_ics): Likewise.
1272250397Sobrien
1272350397SobrienTue Aug 13 12:16:10 1996  Jason Merrill  <jason@yorick.cygnus.com>
1272450397Sobrien
1272550397Sobrien	* typeck.c (build_conditional_expr): Fix handling of __null.
1272650397Sobrien
1272750397Sobrien	* decl2.c (comdat_linkage): New fn.
1272850397Sobrien	(import_export_vtable): Use it.
1272950397Sobrien	(import_export_decl): Use it.
1273052284Sobrien	* method.c (make_thunk): Use it.
1273150397Sobrien
1273218334SpeterMon Aug 12 00:09:18 1996  Jason Merrill  <jason@yorick.cygnus.com>
1273350397Sobrien
1273418334Speter	* pt.c (end_template_decl): If we don't actually have parms, return.
1273550397Sobrien	* parse.y (template_header): Accept 'template <>'.
1273618334Speter
1273750397Sobrien	* errfn.c: Allow 5 args.
1273850397Sobrien
1273950397SobrienSun Aug 11 15:20:58 1996  Jason Merrill  <jason@yorick.cygnus.com>
1274050397Sobrien
1274150397Sobrien	* tree.c (make_temp_vec): New fn.
1274252284Sobrien	* pt.c (push_template_decl): Handle partial specs.
1274350397Sobrien	(instantiate_class_template): Likewise.
1274450397Sobrien	(more_specialized): Use get_bindings.
1274550397Sobrien	(more_specialized_class): New fn.
1274652284Sobrien	(get_class_bindings): New fn.
1274750397Sobrien	(most_specialized_class): New fn.
1274818334Speter	(do_function_instantiation): List candidates for ambiguous case.
1274950397Sobrien	* decl.c (duplicate_decls): Lose reference to DECL_TEMPLATE_MEMBERS.
1275050397Sobrien	(shadow_tag): Call push_template_decl for partial specializations.
1275118334Speter	* parse.y: Likewise.
1275250397Sobrien	* cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Replaces
1275350397Sobrien	DECL_TEMPLATE_MEMBERS.
1275418334Speter	* call.c (print_z_candidates): Reduce duplication.
1275550397Sobrien
1275618334SpeterFri Aug  9 14:36:08 1996  Jason Merrill  <jason@yorick.cygnus.com>
1275750397Sobrien
1275818334Speter	* decl2.c (lang_decode_option): Allow -fansi-overloading.
1275950397Sobrien
1276018334SpeterThu Aug  8 17:04:18 1996  Jason Merrill  <jason@yorick.cygnus.com>
1276150397Sobrien
1276218334Speter	* pt.c (get_bindings): New fn.
1276352284Sobrien	(most_specialized): Likewise.
1276418334Speter	(do_function_instantiation): Use them.
1276550397Sobrien	(add_maybe_template): New fn.
1276650397Sobrien	* cp-tree.h (DECL_MAYBE_TEMPLATE): New macro.
1276718334Speter	* call.c (build_new_op): Handle guiding decls.
1276850397Sobrien	(build_new_function_call): Likewise.
1276918334Speter	* decl2.c (finish_file): Likewise.
1277050397Sobrien
1277118334Speter	* decl2.c (mark_used): Do synthesis here.
1277250397Sobrien	* call.c (build_method_call): Not here.
1277350397Sobrien	(build_over_call): Or here.
1277418334Speter	* typeck.c (build_function_call_real): Or here.
1277550397Sobrien	* tree.c (bot_manip): Call mark_used on functions used in default
1277650397Sobrien	args.
1277718334Speter
1277850397SobrienThu Aug  8 17:48:16 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
1277918334Speter
1278050397Sobrien	* decl2.c (import_export_vtable): Delete code that disabled vtable
1278118334Speter	heuristic on systems with ASM_OUTPUT_EXTERNAL.
1278250397Sobrien
1278350397SobrienWed Aug  7 12:44:11 1996  Jason Merrill  <jason@yorick.cygnus.com>
1278418334Speter
1278550397Sobrien	* typeck.c (build_x_function_call): Handle static call context
1278618334Speter	better.
1278750397Sobrien
1278818334Speter	* decl.c (finish_function): Set the DECL_CONTEXT of the result to
1278950397Sobrien	the function, not its outer block.
1279018334Speter
1279150397Sobrien	* call.c (build_field_call): Pass fields on to build_opfncall
1279250397Sobrien	regardless of TYPE_OVERLOADS_CALL_EXPR.
1279318334Speter	(build_method_call): Pass on to build_new_method_call sooner.
1279450397Sobrien
1279518334Speter	* typeck.c (build_ptrmemfunc): Just return what instantiate_type
1279650397Sobrien	gives us.
1279718334Speter	* class.c (instantiate_type): Don't put a POINTER_TYPE to
1279850397Sobrien	METHOD_TYPE on an expression.  Also make a copy of rhs instead of
1279918334Speter	modifying it.
1280050397Sobrien
1280118334SpeterTue Aug  6 12:58:46 1996  Jason Merrill  <jason@yorick.cygnus.com>
1280250397Sobrien
1280318334Speter	* call.c (compare_ics): Handle qual_conv after lvalue_conv.
1280450397Sobrien	(add_builtin_candidate): Don't take enums for ++.
1280550397Sobrien	(build_new_method_call): Handle non-aggregates and field calls.
1280650397Sobrien	Move new overloading code from...
1280750397Sobrien	* cvt.c: Here.
1280850397Sobrien
1280950397Sobrien	* decl.c (grokparms): Don't check default args in templates.
1281050397Sobrien
1281150397SobrienMon Aug  5 17:17:06 1996  Jason Merrill  <jason@yorick.cygnus.com>
1281250397Sobrien
1281350397Sobrien	* cvt.c (build_new_op): Fix args to build_unary_op.
1281418334Speter	(add_builtin_candidates): Don't call type_promotes_to on float.
1281550397Sobrien
1281618334Speter	* decl.c (grokparms): Check the type of the default arg.
1281750397Sobrien
1281850397Sobrien	* cvt.c (build_new_op): Pass non-overloaded cases on rather than
1281918334Speter	returning NULL_TREE.
1282050397Sobrien
1282118334Speter	* typeck.c (build_x_binary_op): Avoid doing extra work.
1282250397Sobrien	(build_x_unary_op): Likewise.
1282350397Sobrien	(build_x_conditional_expr): Likewise.
1282450397Sobrien	* cvt.c (build_over_call): Return.
1282550397Sobrien	(add_builtin_candidate): Fix MEMBER_REF.
1282650397Sobrien	(build_new_op): Likewise.
1282750397Sobrien
1282818334SpeterMon Aug  5 17:07:47 1996  Mike Stump  <mrs@cygnus.com>
1282950397Sobrien
1283018334Speter	* method.c (build_overload_name): Put bug fix into code but leave
1283150397Sobrien	disabled for now so we can be bug compatible with older releases
1283250397Sobrien	that do repeats incorrectly.  In the future, we can enable it.
1283318334Speter
1283450397SobrienMon Aug  5 13:46:28 1996  Jason Merrill  <jason@yorick.cygnus.com>
1283550397Sobrien
1283650397Sobrien	* cvt.c (convert_like): Don't call build_cplus_new twice.
1283750397Sobrien
1283850397Sobrien	* call.c, cp-tree.h, cvt.c, decl2.c, init.c, method.c, pt.c, typeck.c:
1283918334Speter	Control new overloading code with -fansi-overloading.
1284050397Sobrien
1284118334SpeterSun Aug  4 15:29:11 1996  Jason Merrill  <jason@yorick.cygnus.com>
1284250397Sobrien
1284350397Sobrien	* cvt.c (build_over_call): Call build_cplus_new.
1284418334Speter	* call.c (build_method_call): Likewise.
1284550397Sobrien	* typeck.c (build_function_call_real): Likewise.
1284618334Speter	(build_conditional_expr): If both operands are TARGET_EXPRs, wrap
1284750397Sobrien	the COND_EXPR in a TARGET_EXPR so they use the same slot.
1284850397Sobrien
1284918334Speter	* cvt.c (build_up_reference): Propagate INDIRECT_BIND to
1285050397Sobrien	recursive calls.
1285150397Sobrien	* typeck.c (complete_type): Propagate
1285218334Speter	TYPE_NEEDS_{CONSTRUCTING,DESTRUCTOR}.
1285350397Sobrien
1285418334SpeterSat Aug  3 14:05:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
1285550397Sobrien
1285618334Speter	* cvt.c (joust): More ?: kludging.  Sigh.
1285750397Sobrien	(build_over_call): Don't try to synthesize global fns.
1285850397Sobrien
1285950397Sobrien	* search.c (lookup_conversions): Use binfo marking.
1286050397Sobrien
1286118334SpeterSat Aug  3 12:33:42 1996  Bob Manson  <manson@charmed.cygnus.com>
1286250397Sobrien
1286318334Speter	* search.c (build_mi_matrix): Use the correct value of cid
1286450397Sobrien	when determining the new mi_size.
1286550397Sobrien
1286618334SpeterSat Aug  3 01:27:41 1996  Jason Merrill  <jason@yorick.cygnus.com>
1286750397Sobrien
1286818334Speter	* cvt.c (add_builtin_candidates): Do consider type conversion ops
1286950397Sobrien	for the first parms of += et al.
1287018334Speter	(strip_top_quals): New fn.
1287150397Sobrien	(reference_binding): Use it instead of TYPE_MAIN_VARIANT.
1287250397Sobrien	(implicit_conversion): Likewise.
1287350397Sobrien	(add_builtin_candidates): Be careful about arrays.
1287450397Sobrien	(build_new_method_call): Handle vtable optimization.
1287550397Sobrien
1287650397SobrienFri Aug  2 01:26:59 1996  Jason Merrill  <jason@yorick.cygnus.com>
1287750397Sobrien
1287850397Sobrien	* cp-tree.h (LOOKUP_NO_TEMP_BIND): New flag.
1287950397Sobrien	* cvt.c (reference_binding): Use it.
1288050397Sobrien	(implicit_conversion): Use it.
1288150397Sobrien	(add_builtin_candidate, COND_EXPR): Use it.
1288250397Sobrien
1288350397Sobrien	* cvt.c (build_new_function_call): Check for error args.
1288450397Sobrien
1288518334Speter	* typeck.c (comptypes): Just check DERIVED_FROM_P, not UNIQUELY.
1288650397Sobrien
1288718334Speter	* gxx.gperf: Add __null.
1288850397Sobrien	* hash.h: Regenerate.
1288918334Speter	* lex.h: Add RID_NULL.
1289050397Sobrien	* lex.c (init_lex): Create null_pointer_node here, stick it in
1289118334Speter	RID_NULL.
1289250397Sobrien	* decl.c (init_decl_processing): Still set its type here.
1289350397Sobrien	* cvt.c (cp_convert_to_pointer): Don't produce null_pointer_node.
1289450397Sobrien	(convert_to_pointer_force): Likewise.
1289550397Sobrien	(null_ptr_cst_p): Check for null_pointer_node; only accept (void*)0
1289650397Sobrien	if (! pedantic).
1289750397Sobrien	* call.c (convert_harshness): Use null_ptr_cst_p.
1289850397Sobrien	* typeck.c (convert_for_assignment): Likewise.  Don't produce
1289950397Sobrien	null_pointer_node.
1290018334Speter
1290150397Sobrien	* error.c (args_as_string): Handle lists of actual args, too.
1290250397Sobrien	* cvt.c (null_ptr_cst): Support (void*)0 for now.
1290350397Sobrien	(build_user_type_conversion_1): Improve diagnostics.
1290450397Sobrien	(build_new_function_call): Likewise.
1290550397Sobrien	(build_object_call): Likewise.
1290650397Sobrien	(build_new_method_call): Likewise.  Move call before def diagnostic...
1290718334Speter	(build_over_call): Here.
1290850397Sobrien
1290918334Speter	* cvt.c (build_new_method_call): Don't complain about no match if
1291050397Sobrien	LOOKUP_SPECULATIVELY.
1291150397Sobrien	(build_over_call): Fix 'this' for virtual fn.
1291218334Speter	(build_new_method_call): Add diagnostic.
1291350397Sobrien
1291418334SpeterThu Aug  1 16:45:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
1291550397Sobrien
1291650397Sobrien	* cvt.c (add_function_candidate): Expect 'this' and 'in_chrg' for
1291718334Speter	constructors to be passed in.
1291850397Sobrien	(build_over_call): Likewise.
1291950397Sobrien	(build_user_type_conversion_1): Pass them in.
1292018334Speter	(convert_like): Likewise.
1292150397Sobrien	(build_object_call): Handle overloaded conversions.
1292250397Sobrien	(build_over_call): Pass the right args to build_vfn_ref.
1292350397Sobrien	(standard_conversion): Fix pmf convs.
1292418334Speter	(joust): Handle comparing statics and non-statics.
1292550397Sobrien	(build_new_method_call): New fn.
1292650397Sobrien	* call.c (build_method_call): Call it if NEW_OVER.
1292750397Sobrien
1292850397SobrienThu Aug  1 16:06:14 1996  Mike Stump  <mrs@cygnus.com>
1292950397Sobrien
1293018334Speter	* lex.c (do_identifier): Don't use %O on IDENTIFIER_OPNAME_Ps, use
1293150397Sobrien	%D instead.
1293218334Speter
1293350397SobrienThu Aug  1 15:24:02 1996  Mike Stump  <mrs@cygnus.com>
1293450397Sobrien
1293550397Sobrien	* except.c (expand_throw): Use maybe_build_cleanup_and_delete
1293650397Sobrien	instead of just maybe_build_cleanup so that we deallocate the
1293750397Sobrien	thrown object.
1293818334Speter
1293950397SobrienThu Aug  1 15:18:00 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1294018334Speter
1294150397Sobrien	* decl2.c (finish_prevtable_vardecl): Make non-static for pt.c's use.
1294218334Speter	* cp-tree.h (finish_prevtable_vardecl): Add decl.
1294350397Sobrien
1294450397SobrienThu Aug  1 11:53:51 1996  Bob Manson  <manson@charmed.cygnus.com>
1294518334Speter
1294650397Sobrien	* pt.c (instantiate_class_template): Call complete_type.  Also, if
1294718334Speter	we're at the end of the file and we just instantiated a template
1294850397Sobrien	class with a vtable, call finish_prevtable_vardecl.
1294950397Sobrien
1295018334Speter	* error.c (dump_decl): Don't explode (or explode more gracefully
1295150397Sobrien	as appropriate) if the object being dumped has a null type.
1295250397Sobrien	(dump_expr): Likewise.
1295350397Sobrien
1295450397Sobrien	* search.c (build_mi_matrix): Ensure that mi_size is large enough,
1295550397Sobrien	by counting the number of nodes that we'll need before allocating
1295650397Sobrien	the array.
1295718334Speter	(lookup_fnfields): Fix comment.
1295850397Sobrien	(breadth_first_search): Fix comment.
1295918334Speter
1296050397SobrienWed Jul 31 09:57:05 1996  Jason Merrill  <jason@yorick.cygnus.com>
1296150397Sobrien
1296250397Sobrien	* pt.c (instantiate_class_template): Propagate TYPE_PACKED and
1296318334Speter	TYPE_ALIGN.
1296450397Sobrien	* class.c (finish_struct): Call cplus_decl_attributes here.
1296518334Speter	(finish_struct_1): Not here.
1296650397Sobrien	* cp-tree.h: Adjust.
1296718334Speter
1296850397Sobrien	* pt.c (type_unification): New parameter STRICT.
1296950397Sobrien	(unify): If STRICT, don't allow cv addition or base deduction.
1297018334Speter	* call.c, class.c, cvt.c, cp-tree.h: Adjust.
1297150397Sobrien
1297218334SpeterTue Jul 30 13:06:13 1996  Jason Merrill  <jason@yorick.cygnus.com>
1297350397Sobrien
1297450397Sobrien	* search.c (get_template_base{_recursive}): New fns.
1297550397Sobrien	* pt.c (more_specialized): New fn.
1297650397Sobrien	(do_function_instantiation): Use it.
1297750397Sobrien	(unify): Handle base deduction.
1297818334Speter	* cvt.c (joust): Use more_specialized.
1297952284Sobrien	Don't arbitrarily choose between non-builtin candidates.
1298050397Sobrien	(build_over_call): Call require_complete_type.
1298150397Sobrien
1298250397Sobrien	* decl.c (start_function): Statics are static even in a #pragma
1298318334Speter	interface file.
1298450397Sobrien
1298518334Speter	* decl2.c (import_export_vtable): Disable vtable heuristic on
1298650397Sobrien	systems with ASM_OUTPUT_EXTERNAL.
1298750397Sobrien
1298818334Speter	* cvt.c (compare_ics): Fix comparison of PMEM_CONV and BASE_CONV.
1298950397Sobrien	(standard_conversion): No std conv to enum type.
1299018334Speter
1299150397Sobrien	* cvt.c (standard_conversion): Fix order of args to DERIVED_FROM_P
1299218334Speter	for ptm's.
1299350397Sobrien
1299450397Sobrien	* cvt.c (reference_binding): Bind directly to a base subobject of
1299518334Speter	a class rvalue.
1299650397Sobrien
1299718334Speter	* cvt.c (build_new_op): Enforce access control.
1299850397Sobrien
1299950397SobrienTue Jul 30 09:22:53 1996  Bob Manson  <manson@charmed.cygnus.com>
1300050397Sobrien
1300150397Sobrien	* typeck2.c (process_init_constructor): When scanning the
1300250397Sobrien	union for a named field, skip things that aren't FIELD_DECLs.
1300350397Sobrien
1300450397Sobrien	* method.c (synthesize_method): Don't scan fndecl's rtl if
1300518334Speter	we're at the end of the file; just assume the function can't
1300650397Sobrien	be inlined.
1300718334Speter
1300850397SobrienMon Jul 29 15:48:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
1300950397Sobrien
1301050397Sobrien	* cvt.c (build_builtin_candidate): Stick a dummy conversion in if
1301150397Sobrien	it failed.
1301218334Speter
1301350397Sobrien	* cvt.c (build_user_type_conversion_1): Handle overloaded
1301418334Speter	conversion ops.
1301550397Sobrien
1301618334Speter	* cvt.c (add_builtin_candidates): Don't consider type conversion
1301750397Sobrien	operators for the first parameter of operator=.
1301850397Sobrien
1301950397SobrienMon Jul 29 15:33:55 1996  Bob Manson  <manson@charmed.cygnus.com>
1302050397Sobrien
1302150397Sobrien	* typeck.c (complete_type): Only call layout_type if we're not
1302250397Sobrien	expanding a template.
1302350397Sobrien
1302450397SobrienMon Jul 29 14:40:38 1996  Jason Merrill  <jason@yorick.cygnus.com>
1302550397Sobrien
1302650397Sobrien	* cvt.c (compare_ics): Oops.
1302750397Sobrien
1302850397Sobrien	* cvt.c (op_error): Oops.
1302950397Sobrien
1303018334Speter	* cp-tree.def: Add RVALUE_CONV, rename EXACT_CONV to IDENTITY_CONV.
1303150397Sobrien	* cvt.c: Add IDENTITY_RANK before others.  Use real_lvalue_p.
1303250397Sobrien	(build_conv): Use them.
1303350397Sobrien	(implicit_conversion): Use them.
1303450397Sobrien	(convert_like): Handle them.
1303550397Sobrien	(build_new_op): Handle builtin COND_EXPR again.
1303650397Sobrien	(add_builtin_candidates): Strip cv-quals.  Fix oops.  Include enums
1303750397Sobrien	in lists of types for COND_EXPR.
1303818334Speter	(add_builtin_candidate): Add enum candidates for COND_EXPR.
1303950397Sobrien
1304050397SobrienMon Jul 29 12:05:40 1996  Bob Manson  <manson@charmed.cygnus.com>
1304150397Sobrien
1304250397Sobrien	* typeck.c (build_modify_expr): Always attempt to build a call to
1304318334Speter	the assignment operator, even if we're using a default one.
1304450397Sobrien	(convert_for_initialization): Call complete_type.
1304518334Speter
1304650397SobrienMon Jul 29 11:25:08 1996  Jason Merrill  <jason@yorick.cygnus.com>
1304750397Sobrien
1304850397Sobrien	* cvt.c (reference_binding): A REF_BIND gets the reference type.
1304950397Sobrien	(implicit_conversion): Likewise.
1305050397Sobrien	(convert_like): Likewise.
1305150397Sobrien	(compare_ics): Likewise.
1305250397Sobrien	(compare_qual): Likewise.
1305350397Sobrien	(print_z_candidates): Handle no candidates.
1305450397Sobrien	(build_new_op): Don't handle builtin COND_EXPR for now.
1305550397Sobrien
1305650397SobrienSat Jul 27 11:27:47 1996  Stan Shebs  <shebs@andros.cygnus.com>
1305718334Speter
1305850397Sobrien	* cvt.c (build_builtin_candidate): Init local var in an ANSI way.
1305918334Speter
1306050397SobrienFri Jul 26 01:07:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
1306150397Sobrien
1306218334Speter	* cvt.c (joust): If the candidates are the same, arbitrarily pick one.
1306350397Sobrien
1306418334Speter	* cvt.c (build_builtin_candidate): Oops.
1306550397Sobrien	(build_new_op): Oops.
1306650397Sobrien
1306750397Sobrien	* method.c (build_opfncall): Pass COND_EXPR on.
1306818334Speter	* cvt.c (build_builtin_candidate): Reorganize, support COND_EXPR.
1306950397Sobrien	(add_builtin_candidate{,s}): Likewise.
1307018334Speter	(add_builtin_candidates): Likewise.
1307150397Sobrien	(print_z_candidates, op_error, build_new_op): Likewise.
1307250397Sobrien	(type_decays_to): New fn.
1307318334Speter	* lex.c (init_lex): Just say ?: for COND_EXPR.
1307450397Sobrien
1307518334SpeterThu Jul 25 09:33:33 1996  Jason Merrill  <jason@yorick.cygnus.com>
1307652284Sobrien
1307750397Sobrien	* typeck.c (complete_type): Call layout_type rather than building
1307850397Sobrien	a new array type.
1307918334Speter
1308050397Sobrien	* cvt.c (add_builtin_candidate): Pointer arithmetic candidates
1308150397Sobrien	only use ptrdiff_t.
1308250397Sobrien
1308318334SpeterWed Jul 24 12:45:08 1996  Jason Merrill  <jason@yorick.cygnus.com>
1308450397Sobrien
1308550397Sobrien	* cvt.c: Always compile the new overloading code (but don't use it).
1308650397Sobrien	(implicit_conversion): Add a BASE_CONV when converting to
1308750397Sobrien	the same class type.
1308850397Sobrien	(convert_like): Handle BASE_CONV.
1308918334Speter
1309050397SobrienTue Jul 23 12:46:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
1309118334Speter
1309250397Sobrien	* cvt.c (build_new_op): Support {MAX,MIN}_EXPR.
1309350397Sobrien	(add_builtin_candidate): Likewise.
1309450397Sobrien
1309550397Sobrien	NEW_OVER changes:
1309650397Sobrien	* typeck.c (build_x_function_call): Try an operator function
1309718334Speter	whenever we call an object of class type.
1309850397Sobrien	* method.c (build_opfncall): Pass CALL_EXPRs through.
1309950397Sobrien	* cvt.c (implicit_conversion): Do const-ref case first.
1310050397Sobrien	(add_conv_candidate, build_object_call, op_error): New fns.
1310118334Speter	(ptr_complete_ob, TYPE_PTROB_P): void is not an object type.
1310250397Sobrien	({add,build}_builtin_candidate{,s}, print_z_candidates): Display
1310318334Speter	builtin candidates.
1310450397Sobrien	(build_new_op): Handle CALL_EXPR.  Don't try to decay void.
1310550397Sobrien	Fall back on preincrement handling.  Use op_error.
1310650397Sobrien	Handle warn_synth.
1310750397Sobrien	(convert_like): Pass INDIRECT_BIND.  Don't try to do anything with
1310850397Sobrien	an error_mark_node.
1310950397Sobrien	(build_over_call): Handle PROMOTE_PROTOTYPES and ellipsis promotions
1311050397Sobrien	properly.
1311118334Speter
1311250397SobrienMon Jul 22 16:21:55 1996  Bob Manson  <manson@charmed.cygnus.com>
1311350397Sobrien
1311418334Speter	* pt.c (tsubst_expr): Handle CONTINUE_STMT.
1311550397Sobrien
1311650397SobrienMon Jul 22 15:38:58 1996  Mike Stump  <mrs@cygnus.com>
1311718334Speter
1311850397Sobrien	* typeck.c (build_component_ref_1): Use build_component_ref
1311950397Sobrien	instead of open coding it here.
1312018334Speter
1312150397SobrienMon Jul 22 12:18:54 1996  Jason Merrill  <jason@yorick.cygnus.com>
1312250397Sobrien
1312318334Speter	* g++.c (main): Don't link with -lg++.
1312450397Sobrien
1312550397Sobrien	NEW_OVER changes:
1312618334Speter	* cvt.c (convert_to_reference): Don't use convert_from_reference on
1312750397Sobrien	result of build_type_conversion.
1312818334Speter	(cp_convert): Only call build_method_call for ctors if
1312950397Sobrien	build_type_conversion failed.
1313018334Speter	(ptr_complete_ob): New function.
1313150397Sobrien	(TYPE_PTR{,OB,MEM}_P): New macros.
1313250397Sobrien	({add,build}_builtin_candidate{,s}): New functions.
1313318334Speter	(print_z_candidates): Handle builtins.
1313450397Sobrien	(build_user_type_conversion_1): Don't use conversion fns for
1313550397Sobrien	converting to a base type.
1313650397Sobrien	(build_user_type_conversion_1): Set ICS_USER_FLAG on AMBIG_CONVs.
1313718334Speter	(build_user_type_conversion): Use convert_from_reference.
1313850397Sobrien	(build_new_op): New function.
1313918334Speter	(build_over_call): Fix handling of methods.
1314050397Sobrien	(compare_ics): Handle AMBIG_CONV properly.
1314150397Sobrien	* typeck2.c: Increment abort count.
1314218334Speter	* method.c (build_opfncall): Forward most requests to build_new_op.
1314350397Sobrien	* cp-tree.h (IS_OVERLOAD_TYPE): Tweak.
1314450397Sobrien
1314518334SpeterFri Jul 19 17:59:29 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1314650397Sobrien
1314750397Sobrien	* error.c (dump_expr, case CONSTRUCTOR, case CAST_EXPR): Take out
1314818334Speter	invalid second argument to dump_expr_list.
1314950397Sobrien
1315018334SpeterFri Jul 19 14:04:05 1996  Mike Stump  <mrs@cygnus.com>
1315150397Sobrien
1315250397Sobrien	* decl.c (lookup_name_real): Make sure we do obj->X::i correctly.
1315318334Speter
1315450397SobrienThu Jul 18 14:48:23 1996  Bob Manson  <manson@charmed.cygnus.com>
1315518334Speter
1315650397Sobrien	* decl2.c (import_export_vtable): ASM_OUTPUT_EXTERNAL, not
1315718334Speter	ASSEMBLE_EXTERNAL.
1315850397Sobrien
1315918334SpeterMon Jul 15 17:48:43 1996  Mike Stump  <mrs@cygnus.com>
1316050397Sobrien
1316150397Sobrien	* typeck2.c (process_init_constructor): New pedwarn for using { }
1316250397Sobrien	to initialize a pointer to member function.
1316350397Sobrien	* typeck.c (build_ptrmemfunc1): Avoid use of digest_init so that
1316450397Sobrien	we can avoid the new error.
1316550397Sobrien
1316650397SobrienMon Jul 15 15:42:03 1996  Mike Stump  <mrs@cygnus.com>
1316750397Sobrien
1316850397Sobrien	* typeck.c (build_ptrmemfunc1): New function to hide details of
1316918334Speter	pointer to member functions better.
1317050397Sobrien
1317118334SpeterMon Jul 15 14:23:02 1996  Mike Stump  <mrs@cygnus.com>
1317250397Sobrien
1317350397Sobrien	* init.c (resolve_offset_ref): Resolve OFFSET_REFs that are
1317450397Sobrien	methods into the actual method, as we know the implied object is
1317518334Speter	not used.
1317650397Sobrien
1317718334SpeterMon Jul 15 13:08:29 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1317850397Sobrien
1317950397Sobrien	* parse.y (maybecomma_warn): Only emit the pedwarn if we're not
1318050397Sobrien	inside a system header.
1318150397Sobrien
1318250397SobrienFri Jul 12 16:30:05 1996  Bob Manson  <manson@charmed.cygnus.com>
1318350397Sobrien
1318450397Sobrien	* call.c (build_method_call): Call complete_type on the
1318518334Speter	instance type.
1318650397Sobrien
1318718334SpeterThu Jul 11 17:16:40 1996  Mike Stump  <mrs@cygnus.com>
1318850397Sobrien
1318918334Speter	* typeck.c (build_component_ref): Always build up an OFFSET_REF
1319050397Sobrien	for obj_ptr->func so that we can know which object to use in a
1319118334Speter	method call.
1319250397Sobrien
1319318334SpeterWed Jul 10 19:36:37 1996  Mike Stump  <mrs@cygnus.com>
1319450397Sobrien
1319550397Sobrien	* typeck.c (build_ptrmemfunc): Remove sorry, now we can cast
1319618334Speter	around things.  Also improve maintainability.
1319750397Sobrien
1319850397SobrienWed Jul 10 18:20:11 1996  Bob Manson  <manson@charmed.cygnus.com>
1319950397Sobrien
1320050397Sobrien	* decl.c (grokdeclarator): Check for overflow when evaluating an
1320150397Sobrien	array dimension.
1320250397Sobrien
1320350397SobrienWed Jul 10 17:26:19 1996  Jason Merrill  <jason@yorick.cygnus.com>
1320418334Speter
1320550397Sobrien	* cvt.c (cp_convert): Don't check for ambiguity with constructor
1320618334Speter	if NEW_OVER.
1320750397Sobrien
1320850397Sobrien	* typeck.c (build_x_function_call): Pass function overload
1320918334Speter	questions to new overloading code if NEW_OVER.
1321050397Sobrien	* init.c (expand_aggr_init_1): Only check for type conversion ops
1321150397Sobrien	if we're doing copy-initialization (i.e. LOOKUP_ONLYCONVERTING).
1321218334Speter	Don't check for ambiguity with constructor if NEW_OVER.
1321350397Sobrien	* cvt.c (convert_to_reference): Dereference the result of a type
1321418334Speter	conversion operator.
1321550397Sobrien	(build_conv): Propagate ICS_USER_FLAG.
1321650397Sobrien	(implicit_conversion): Call instantiate_type.
1321750397Sobrien	Pass LOOKUP_ONLYCONVERTING instead of LOOKUP_NORMAL.
1321850397Sobrien	(add_function_candidate): Fix cv-quals on argtype.
1321918334Speter	(print_z_candidates): New function.
1322050397Sobrien	(build_new_function_call): Call it.
1322118334Speter	(build_user_type_conversion_1): If LOOKUP_ONLYCONVERTING, don't
1322250397Sobrien	consider non-converting constructors.
1322350397Sobrien	Call print_z_candidates.
1322418334Speter	Return an AMBIG_CONV for an ambiguous conversion.
1322550397Sobrien	(build_user_type_conversion): Handle AMBIG_CONV.
1322650397Sobrien	(convert_like): Fix test for building TARGET_EXPR.
1322750397Sobrien	Call instantiate_type.
1322850397Sobrien	Handle AMBIG_CONV and LVALUE_CONV.
1322950397Sobrien	(build_over_call): Handle 0 args and ellipsis.
1323050397Sobrien	* cp-tree.def: Add AMBIG_CONV.
1323150397Sobrien
1323252284SobrienTue Jul  9 17:48:48 1996  Mike Stump  <mrs@cygnus.com>
1323350397Sobrien
1323450397Sobrien	* decl.c (lookup_name_real): If we find mem in obj when parsing
1323552284Sobrien	`obj->mem', make sure we return the right value.
1323650397Sobrien
1323752284SobrienTue Jul  9 16:11:28 1996  Bob Manson  <manson@charmed.cygnus.com>
1323850397Sobrien
1323950397Sobrien	* search.c (get_base_distance): Call complete_type.
1324050397Sobrien
1324118334SpeterTue Jul  9 12:46:34 1996  Mike Stump  <mrs@cygnus.com>
1324250397Sobrien
1324318334Speter	* decl.c (store_bindings): Make static.
1324450397Sobrien
1324518334SpeterMon Jul  8 16:42:31 1996  Jason Merrill  <jason@yorick.cygnus.com>
1324650397Sobrien
1324718334Speter	* init.c (expand_aggr_init_1): Don't check type conversions if
1324850397Sobrien	NEW_OVER.
1324950397Sobrien
1325018334Speter	* cvt.c (z_candidate): Put back template field.
1325150397Sobrien	(add_function_candidate): Set it.
1325218334Speter	(add_template_candidate): Likewise.
1325350397Sobrien	(joust): Use it.
1325418334Speter	(compare_qual): Handle references and pointers to members.
1325550397Sobrien	(compare_ics): Handle reference bindings.
1325652284Sobrien
1325750397Sobrien	* decl.c (duplicate_decls): Propagate DECL_ONE_ONLY.
1325850397Sobrien
1325950397SobrienMon Jul  8 16:18:56 1996  Bob Manson  <manson@charmed.cygnus.com>
1326050397Sobrien
1326150397Sobrien	* call.c (compute_conversion_costs): Call complete_type.
1326250397Sobrien
1326350397Sobrien	* tree.c (vec_binfo_member): Use comptypes instead of comparing
1326452284Sobrien	pointers, so we can handle template parameters.
1326550397Sobrien
1326650397SobrienFri Jul  5 16:51:53 1996  Bob Manson  <manson@charmed.cygnus.com>
1326750397Sobrien
1326850397Sobrien	* cvt.c (cp_convert_to_pointer): We have to call complete_type
1326950397Sobrien	here; let's make it explicit instead of a side effect of an
1327050397Sobrien	error check.
1327150397Sobrien
1327250397SobrienWed Jul  3 16:29:51 1996  Jason Merrill  <jason@yorick.cygnus.com>
1327350397Sobrien
1327418334Speter	* cvt.c (z_candidate): Remove template field.
1327550397Sobrien	(reference_binding): Handle binding to temporary.
1327618334Speter	(implicit_conversion): Likewise.
1327750397Sobrien	(add_function_candidate): Handle artificial constructor parms.
1327850397Sobrien	Handle functions with too few parms.
1327918334Speter	(add_template_candidate): New function.
1328050397Sobrien	(build_user_type_conversion_1): Handle constructors.
1328118334Speter	(convert_like): Likewise.
1328250397Sobrien	(build_over_call): Likewise.
1328318334Speter	(build_new_function_call): Support templates.
1328450397Sobrien	(compare_ics): Fix reference, inheritance handling.
1328518334Speter
1328650397SobrienMon Jul  1 22:58:18 1996  Bob Manson  <manson@charmed.cygnus.com>
1328750397Sobrien
1328818334Speter	* decl.c: Add signed_size_zero_node.
1328950397Sobrien	(init_decl_processing): Build it.
1329018334Speter	* class.c (prepare_fresh_vtable): Use it instead of size_zero_node
1329150397Sobrien	when we're trying to make a negative delta.
1329250397Sobrien
1329350397SobrienMon Jul  1 17:56:19 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1329450397Sobrien
1329518334Speter	Stop doing this damn index==strchr variable name confusion.
1329650397Sobrien	* class.c (add_virtual_function): Change local var INDEX to be
1329718334Speter	named IDX.
1329850397Sobrien	(add_method): Likewise.
1329950397Sobrien	* lex.c (print_parse_statistics): Likewise.
1330018334Speter	* search.c (make_memoized_table_entry): Likewise.
1330150397Sobrien	(lookup_fnfields_here): Likewise.
1330218334Speter	(lookup_field): Likewise.
1330350397Sobrien	(lookup_fnfields): Likewise.
1330450397Sobrien	(get_baselinks): Likewise.
1330550397Sobrien	* sig.c (build_signature_table_constructor): Likewise.
1330618334Speter	(build_signature_method_call): Likewise.
1330750397Sobrien	* typeck.c (build_x_array_ref): Change INDEX parm to be named IDX.
1330818334Speter	(get_member_function_from_ptrfunc): Likewise.
1330950397Sobrien	(build_ptrmemfunc): Change local var INDEX to be IDX.
1331050397Sobrien	(c_expand_start_case): Likewise.
1331118334Speter
1331250397SobrienSat Jun 29 14:05:46 1996  Jason Merrill  <jason@yorick.cygnus.com>
1331318334Speter
1331450397Sobrien	* cvt.c (cp_convert_to_pointer): Move user-defined type conversion
1331550397Sobrien	handling to before extraction of TYPE_PTRMEMFUNC_FN_TYPE.
1331650397Sobrien	(convert_to_reference): Use build_type_conversion to convert to
1331750397Sobrien	the reference type directly.
1331850397Sobrien	(standard_conversion): Fix void* case, non-conversions.
1331950397Sobrien	(reference_binding): Fix expr == 0 case, non-conversions.
1332050397Sobrien	(convert_like): Support REF_BIND.
1332150397Sobrien	(compare_qual): Split out from compare_ics.
1332250397Sobrien	(compare_ics): Use it, handle icses with only a qual_conv.
1332350397Sobrien
1332450397Sobrien	* init.c (expand_vec_init): Don't crash if decl is NULL.
1332550397Sobrien
1332650397SobrienFri Jun 28 11:52:51 1996  Stan Shebs  <shebs@andros.cygnus.com>
1332750397Sobrien
1332850397Sobrien	* mpw-config.in: New file, configury for Mac MPW.
1332950397Sobrien	* mpw-make.sed: New file, makefile editing for MPW.
1333050397Sobrien
1333150397SobrienThu Jun 27 15:18:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
1333250397Sobrien
1333350397Sobrien	* pt.c (instantiate_class_template): Call repo_template_used.
1333450397Sobrien
1333550397Sobrien	* search.c (lookup_conversions): Only lookup conversions in
1333650397Sobrien	complete types.
1333750397Sobrien
1333850397SobrienThu Jun 27 12:59:53 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1333950397Sobrien
1334050397Sobrien	* cp-tree.def: Renamed from tree.def, to avoid confusion with
1334150397Sobrien	gcc's tree.def.
1334250397Sobrien	* cp-tree.h, lex.c: Include cp-tree.def.
1334350397Sobrien	* Makefile.in (CXX_TREE_H): Reference cp-tree.def.
1334418334Speter
1334550397SobrienWed Jun 26 18:29:47 1996  Bob Manson  <manson@charmed.cygnus.com>
1334650397Sobrien
1334750397Sobrien	* init.c (build_vec_delete_1): Call complete_type.
1334850397Sobrien
1334950397SobrienMon Jun 24 17:17:32 1996  Mike Stump  <mrs@cygnus.com>
1335050397Sobrien
1335150397Sobrien	* except.c (start_anon_func): Make sure anonymous functions are
1335250397Sobrien	never external.
1335350397Sobrien
1335450397SobrienFri Jun 21 15:10:58 1996  Jason Merrill  <jason@yorick.cygnus.com>
1335550397Sobrien
1335650397Sobrien	* decl.c (finish_function): If function_depth > 1, set nested.
1335750397Sobrien
1335850397Sobrien	* decl2.c (grokbitfield): Revert Bob's change.
1335950397Sobrien	* class.c (finish_struct_1): Fix handling of named bitfield widths.
1336050397Sobrien
1336118334SpeterThu Jun 20 23:35:38 1996  Jason Merrill  <jason@yorick.cygnus.com>
1336250397Sobrien
1336318334Speter	* pt.c (add_pending_template): Handle types.
1336450397Sobrien	(lookup_template_class): With -fexternal-templates, just add the class
1336550397Sobrien	to pending_templates instead of instantiating it now.
1336618334Speter	* decl2.c (finish_file): Handle types in pending_templates.
1336750397Sobrien
1336818334SpeterThu Jun 20 14:08:40 1996  Bob Manson  <manson@charmed.cygnus.com>
1336950397Sobrien
1337018334Speter	* decl2.c (grokbitfield): Handle constant decls appropriately.
1337150397Sobrien	Give an appropriate error message now instead of spewing core
1337218334Speter	later.
1337350397Sobrien
1337418334SpeterThu Jun 20 13:01:51 1996  Jason Merrill  <jason@yorick.cygnus.com>
1337550397Sobrien
1337618334Speter	* decl2.c: Don't turn on thunks by default for now.
1337750397Sobrien
1337850397SobrienWed Jun 19 11:37:04 1996  Jason Merrill  <jason@yorick.cygnus.com>
1337918334Speter
1338050397Sobrien	* typeck.c (complete_type): Handle error_mark_node.
1338150397Sobrien	(common_type, OFFSET_TYPE): Handle template_type_parms.
1338250397Sobrien
1338350397SobrienTue Jun 18 10:02:15 1996  Jason Merrill  <jason@yorick.cygnus.com>
1338450397Sobrien
1338550397Sobrien	* pt.c (instantiate_decl): If at_eof, call import_export_decl
1338618334Speter	regardless of DECL_INLINE.
1338750397Sobrien
1338818334Speter	* typeck.c (mark_addressable): Set TREE_ADDRESSABLE on CONSTRUCTORs.
1338950397Sobrien
1339018334Speter	* class.c (finish_struct_bits): Copy TYPE_SIZE.
1339150397Sobrien
1339218334Speter	* rtti.c (build_dynamic_cast): Support templates.
1339350397Sobrien	* tree.def: Support DYNAMIC_CAST_EXPR.
1339450397Sobrien	* pt.c (tsubst_copy): Likewise.
1339518334Speter	* decl2.c (build_expr_from_tree): Likewise.
1339650397Sobrien
1339718334SpeterMon Jun 17 15:23:36 1996  Jason Merrill  <jason@yorick.cygnus.com>
1339850397Sobrien
1339950397Sobrien	* typeck.c (build_static_cast): Support templates.
1340050397Sobrien	(build_const_cast): Likewise.
1340118334Speter	* tree.def: Support CONST/STATIC_CAST_EXPR.
1340250397Sobrien	* pt.c (tsubst_copy): Likewise.
1340318334Speter	* decl2.c (build_expr_from_tree): Likewise.
1340450397Sobrien
1340550397SobrienSun Jun 16 12:33:57 1996  Jason Merrill  <jason@yorick.cygnus.com>
1340650397Sobrien
1340750397Sobrien	* decl2.c (finish_vtable_vardecl): Don't trust
1340850397Sobrien	TREE_SYMBOL_REFERENCED for vtables of local classes.
1340950397Sobrien
1341050397SobrienFri Jun 14 18:13:36 1996  Jason Merrill  <jason@yorick.cygnus.com>
1341150397Sobrien
1341250397Sobrien	* pt.c (tsubst_copy): Handle operator T.
1341350397Sobrien
1341450397SobrienWed Jun 12 17:52:40 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1341518334Speter
1341650397Sobrien	* init.c (build_delete): Move creation of PARMS inside test of
1341718334Speter	TYPE_HAS_DESTRUCTOR, since it's never used outside of that block.
1341850397Sobrien
1341950397SobrienTue Jun 11 15:09:18 1996  Bob Manson  <manson@charmed.cygnus.com>
1342050397Sobrien
1342150397Sobrien	* typeck.c (build_conditional_expr): Don't assume that
1342218334Speter	the arguments to ?: are always pointers or records.
1342350397Sobrien
1342418334SpeterTue Jun 11 13:56:23 1996  Jason Merrill  <jason@yorick.cygnus.com>
1342550397Sobrien
1342650397Sobrien	* decl2.c (import_export_decl): Still emit static/weak/comdat
1342750397Sobrien	copies of inline template functions with -fno-implicit-templates.
1342850397Sobrien
1342950397SobrienTue Jun 11 11:42:13 1996  Bob Manson  <manson@charmed.cygnus.com>
1343050397Sobrien
1343150397Sobrien	* init.c (build_delete): Determine the complete basetype
1343250397Sobrien	path to the destructor we're calling.
1343350397Sobrien
1343450397SobrienFri Jun  7 15:30:10 1996  Bob Manson  <manson@charmed.cygnus.com>
1343550397Sobrien
1343650397Sobrien	* decl.c (build_enumerator): Always copy the INTEGER_CST used to
1343750397Sobrien	initialize the enum, because we really and truly don't know where
1343850397Sobrien	it came from.
1343950397Sobrien	(start_enum): Don't copy integer_zero_node because
1344050397Sobrien	build_enumerator will do it.
1344118334Speter
1344250397SobrienFri Jun  7 11:11:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
1344318334Speter
1344450397Sobrien	* decl.c (finish_function): Do access control on base destructors.
1344550397Sobrien
1344650397Sobrien	* pt.c (tsubst, case FUNCTION_DECL): Set up
1344750397Sobrien	IDENTIFIER_GLOBAL_VALUE for member functions so pushdecl doesn't
1344850397Sobrien	hose us.
1344950397Sobrien
1345050397SobrienFri Jun  7 10:37:33 1996  Mike Stump  <mrs@cygnus.com>
1345150397Sobrien
1345250397Sobrien	* cvt.c (build_up_reference): If we have already extended the
1345318334Speter	lifetime of the temporary, don't try it again.
1345450397Sobrien	* typeck.c (c_expand_return): Don't try and convert the return
1345518334Speter	value twice when we want a reference, once is enough.
1345650397Sobrien
1345718334SpeterTue Jun  4 15:41:45 1996  Jason Merrill  <jason@yorick.cygnus.com>
1345850397Sobrien
1345950397Sobrien	* pt.c (tsubst_expr, case DECL_STMT): Don't pass
1346018334Speter	LOOKUP_ONLYCONVERTING at all for now.
1346150397Sobrien
1346218334Speter	* search.c (add_conversions): Put the conversion function in
1346350397Sobrien	TREE_VALUE, the basetype in TREE_PURPOSE.
1346418334Speter	* cvt.c (build_type_conversion): Adjust.
1346550397Sobrien	* cvt.c (build_expr_type_conversion): Adjust.
1346650397Sobrien	* call.c (user_harshness): Adjust.
1346718334Speter
1346850397SobrienMon Jun  3 15:30:52 1996  Jason Merrill  <jason@yorick.cygnus.com>
1346918334Speter
1347050397Sobrien	* method.c (emit_thunk): Pretend this is a FUNCTION_DECL for the
1347150397Sobrien	backend's benefit.
1347250397Sobrien
1347350397SobrienMon Jun 10 18:58:19 1996  Mike Stump  <mrs@cygnus.com>
1347418334Speter
1347550397Sobrien	* except.c (expand_start_catch_block): Add a dummy region, if we
1347618334Speter	get an error, so that we can avoid core dumping later.
1347750397Sobrien
1347818334SpeterFri May 31 14:56:13 1996  Mike Stump  <mrs@cygnus.com>
1347950397Sobrien
1348018334Speter	* cp-tree.h (OFFSET_REF): Remove.
1348150397Sobrien	* tree.def (CP_OFFSET_REF): Rename to OFFSET_REF.
1348250397Sobrien	* expr.c (cplus_expand_expr): Cleanup callers of expand_expr.
1348318334Speter	* init.c (expand_aggr_init_1): Likewise.
1348450397Sobrien	(build_new): Likewise.
1348518334Speter	* typeck.c (expand_target_expr): Likewise.
1348650397Sobrien
1348718334SpeterFri May 31 14:22:08 1996  Jason Merrill  <jason@yorick.cygnus.com>
1348850397Sobrien
1348950397Sobrien	* typeck.c (build_modify_expr): Don't use TREE_VALUE on a
1349018334Speter	TARGET_EXPR.
1349150397Sobrien
1349218334SpeterWed May 29 17:04:33 1996  Mike Stump  <mrs@cygnus.com>
1349350397Sobrien
1349450397Sobrien	* cvt.c (build_up_reference): Redo how and when temporaries are
1349550397Sobrien	created.
1349650397Sobrien	* decl.c (grok_reference_init): Don't try and be smart about
1349718334Speter	running cleanups.
1349850397Sobrien
1349918334SpeterWed May 29 16:02:08 1996  Mike Stump  <mrs@cygnus.com>
1350050397Sobrien
1350150397Sobrien	* cvt.c (build_up_reference): Add NULL_TREE to all calls to build
1350250397Sobrien	(TARGET_EXPR...), now that it has 4 arguments.
1350318334Speter	* tree.c (build_cplus_new): Likewise.
1350450397Sobrien
1350518334SpeterThu May 23 16:40:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
1350650397Sobrien
1350718334Speter	* error.c (dump_expr, case CAST_EXPR): Handle T() properly.
1350850397Sobrien
1350918334Speter	* pt.c (instantiate_decl): Don't call push/pop_cp_function_context.
1351050397Sobrien	* decl.c (struct saved_scope): Remove named_labels,
1351150397Sobrien	{base,member}_init_list.
1351218334Speter	(maybe_push_to_top_level): Don't set them.  Call
1351350397Sobrien	push_cp_function_context if appropriate.
1351418334Speter	(pop_from_top_level): Likewise.
1351550397Sobrien
1351650397Sobrien	* method.c (do_build_assign_ref): Remove obsolete check of
1351718334Speter	TYPE_HAS_ASSIGN_REF (basetype).
1351850397Sobrien
1351918334Speter	* decl.c (grokfndecl): Diagnose user definition of
1352050397Sobrien	implicitly-declared methods.
1352118334Speter
1352250397SobrienThu May 23 12:13:08 1996  Bob Manson  <manson@charmed.cygnus.com>
1352350397Sobrien
1352450397Sobrien	* method.c (do_build_copy_constructor): Add code to give
1352550397Sobrien	meaningful error messages instead of crashing.
1352618334Speter	(do_build_assign_ref): Don't synthesize assignment operators for
1352750397Sobrien	classes containing reference or const members.
1352818334Speter
1352950397Sobrien	* class.c (struct base_info): Remove cant_synth_copy_ctor
1353050397Sobrien	and cant_synth_asn_ref.
1353150397Sobrien	(finish_base_struct): Remove the code that tries to conditionalize
1353250397Sobrien	synthesis of copy constructors & assignment operators based on
1353350397Sobrien	access permissions.  Instead, let it fail when it tries to
1353418334Speter	synthesize the copy constructor.  This will give meaningful error
1353550397Sobrien	messages instead of silently generating code to perform a bitcopy.
1353618334Speter
1353750397SobrienWed May 22 11:45:19 1996  Bob Manson  <manson@charmed.cygnus.com>
1353850397Sobrien
1353918334Speter	* lex.c (real_yylex): Remove old-n-crufty #if 0 code for
1354050397Sobrien	determining types for constant values.
1354118334Speter
1354250397Sobrien	* decl.c (struct named_label_list): Use instead of stuffing
1354318334Speter	random items into a TREE_LIST node.
1354450397Sobrien	(named_label_uses): Use the new struct.
1354518334Speter	(poplevel): Likewise.
1354650397Sobrien	(lookup_label): Likewise.
1354750397Sobrien	(define_label): Add an error message to tell the user the line
1354818334Speter	where the goto is located in addition to the destination of the
1354950397Sobrien	goto.
1355018334Speter	(init_decl_processing): Use NULL instead of NULL_TREE to initialize
1355150397Sobrien	named_label_uses.
1355250397Sobrien	(finish_function): Likewise.
1355318334Speter
1355450397Sobrien	(start_decl): Complain about defining a static data member
1355518334Speter	in a different type from which it was declared.
1355650397Sobrien
1355750397SobrienWed May 22 09:33:23 1996  Jason Merrill  <jason@yorick.cygnus.com>
1355818334Speter
1355950397Sobrien	* cvt.c (build_expr_type_conversion): Adjust.
1356018334Speter
1356150397SobrienTue May 21 11:21:56 1996  Jason Merrill  <jason@yorick.cygnus.com>
1356250397Sobrien
1356318334Speter	* call.c (build_method_call): Always convert 'this' to the
1356450397Sobrien	appropriate type.
1356518334Speter
1356650397Sobrien	* search.c (add_conversions): Put the conversion function in
1356750397Sobrien	TREE_VALUE, the type in TREE_PURPOSE.
1356850397Sobrien	* cvt.c (build_type_conversion): Adjust.
1356950397Sobrien	* call.c (user_harshness): Adjust.
1357050397Sobrien
1357118334Speter	* method.c (emit_thunk): Call temporary_allocation and
1357250397Sobrien	permanent_allocation around the ASM_OUTPUT_MI_THUNK case, too.
1357318334Speter
1357450397Sobrien	* tree.c (build_cplus_array_type): Handle tweaking of
1357518334Speter	TYPE_MAIN_VARIANT here.
1357650397Sobrien	* typeck.c (common_type): Not here.
1357750397Sobrien
1357850397Sobrien	* typeck.c (complete_type): Only try to complete an array type if
1357918334Speter	it has a domain.
1358050397Sobrien
1358118334SpeterMon May 20 14:55:59 1996  Jason Merrill  <jason@yorick.cygnus.com>
1358250397Sobrien
1358350397Sobrien	* decl.c (grokvardecl): Call complete_type.
1358450397Sobrien	(grokdeclarator): Call complete_type for PARM_DECLs.
1358550397Sobrien
1358652284SobrienFri May 17 16:41:17 1996  Jason Merrill  <jason@yorick.cygnus.com>
1358750397Sobrien
1358818334Speter	* pt.c (instantiate_class_template): Re-set
1358950397Sobrien	CLASSTYPE_GOT_SEMICOLON after calling finish_struct_1.
1359050397Sobrien
1359118334SpeterFri May 17 14:56:55 1996  Mike Stump  <mrs@cygnus.com>
1359250397Sobrien
1359350397Sobrien	* cp-tree.h (cp_expand_decl_cleanup): Remove, the backend is now
1359450397Sobrien	smart enough to do it right.
1359550397Sobrien	* tree.c (cp_expand_decl_cleanup): Likewise.
1359650397Sobrien	* decl.c (cp_finish_decl): Use expand_decl_cleanup instead of
1359718334Speter	cp_expand_decl_cleanup.
1359850397Sobrien	(store_parm_decls): Likewise.
1359918334Speter	(hack_incomplete_structures): Likewise.
1360050397Sobrien	* except.c (push_eh_cleanup): Likewise.
1360150397Sobrien
1360218334SpeterFri May 17 13:13:51 1996  Mike Stump  <mrs@cygnus.com>
1360350397Sobrien
1360418334Speter	* expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++
1360550397Sobrien	frontend to the backend where it belongs.
1360650397Sobrien	* tree.c (unsave_expr): Likewise.
1360718334Speter	(unsave_expr_now): Likewise.
1360850397Sobrien	* tree.def (UNSAVE_EXPR): Likewise.
1360918334Speter	* cp-tree.h (unsave_expr): Likewise.
1361050397Sobrien	(unsave_expr_now): Likewise.
1361150397Sobrien
1361250397SobrienFri May 17 11:02:41 1996  Mike Stump  <mrs@cygnus.com>
1361350397Sobrien
1361450397Sobrien	* init.c (emit_base_init): Make sure the partial EH cleanups live
1361550397Sobrien	on the function_obstack.
1361618334Speter
1361750397SobrienThu May 16 15:29:33 1996  Bob Manson  <manson@charmed.cygnus.com>
1361818334Speter
1361950397Sobrien	* expr.c (do_case): Don't try to dereference null TREE_TYPEs
1362050397Sobrien	when checking for pointer types.
1362118334Speter
1362250397SobrienThu May 16 13:38:58 1996  Jason Merrill  <jason@yorick.cygnus.com>
1362318334Speter
1362450397Sobrien	* pt.c (instantiate_class_template): Remove obsolete check for
1362550397Sobrien	access declarations.
1362650397Sobrien
1362750397SobrienThu May 16 13:34:15 1996  Mike Stump  <mrs@cygnus.com>
1362818334Speter
1362950397Sobrien	* call.c (build_overload_call): Simplify calls to
1363018334Speter	build_overload_call by removing last parameter.
1363150397Sobrien	(build_method_call): Likewise.
1363250397Sobrien	* cp-tree.h: Likewise.
1363350397Sobrien	* method.c (build_opfncall): Likewise.
1363418334Speter	* typeck.c (build_x_function_call): Likewise.
1363550397Sobrien
1363618334SpeterThu May 16 13:15:43 1996  Mike Stump  <mrs@cygnus.com>
1363750397Sobrien
1363818334Speter	* call.c (default_parm_conversions): Factor out common code.
1363950397Sobrien	(build_method_call): Use it.
1364050397Sobrien	(build_overload_call_real): Use it.
1364150397Sobrien
1364250397SobrienWed May 15 14:46:14 1996  Mike Stump  <mrs@cygnus.com>
1364350397Sobrien
1364450397Sobrien	* call.c (build_method_call): Allow implicit & on METHOD_TYPEs,
1364518334Speter	but pedwarn as the code is bogus.
1364650397Sobrien	* typeck.c (decay_conversion): Likewise.
1364750397Sobrien	(build_function_call_real): Use build_addr_func instead of
1364818334Speter	default_conversion.  Don't allow pointer-to-method functions down
1364950397Sobrien	here.
1365050397Sobrien	(build_unary_op): Use real pointer-to-member functions instead of
1365118334Speter	fake ones.
1365250397Sobrien	(build_ptrmemfunc): Use build_addr_func instead of build_unary_op.
1365318334Speter	(convert_for_assignment): Removed some obsolete code.
1365450397Sobrien	* decl2.c (reparse_absdcl_as_expr): Pass current_class_ref to
1365550397Sobrien	build_x_function_call instead of current_class_ptr.  Only call
1365650397Sobrien	digest_init once on an initializer, we do this just checking
1365750397Sobrien	TREE_TYPE.
1365818334Speter	(build_expr_from_tree): Pass current_class_ref to
1365950397Sobrien	build_x_function_call instead of current_class_ptr.
1366050397Sobrien	* init.c (build_member_call): Likewise.
1366150397Sobrien	* pase.y: Likewise.
1366250397Sobrien	* error.c (dump_expr): Handle OFFSET_REFs better.
1366352284Sobrien	* pt.c (unify): Handle pointer-to-member functions better.
1366452284Sobrien	* decl.c (finish_function): Clear out current_class_ref just like
1366550397Sobrien	we do for current_class_ptr.
1366618334Speter
1366750397Sobrien	* typeck.c (get_delta_difference): Handle virtual bases better.
1366818334Speter
1366950397SobrienTue May 14 16:37:37 1996  Jason Merrill  <jason@yorick.cygnus.com>
1367050397Sobrien
1367118334Speter	* sig.c (build_signature_table_constructor): Use the delta for
1367250397Sobrien	the original basetype for this virtual function with thunks.
1367350397Sobrien	(build_signature_method_call): We still need to adjust 'this'
1367450397Sobrien	with thunks.
1367550397Sobrien
1367650397SobrienTue May 14 16:27:25 1996  Mike Stump  <mrs@cygnus.com>
1367750397Sobrien
1367850397Sobrien	* call.c (build_addr_func): New routine.  Used to get the `real'
1367950397Sobrien	address of a function or a method.  Needed to avoid getting a
1368050397Sobrien	pointer-to-member function.
1368150397Sobrien	(build_call): New routine to build CALL_EXPRs.
1368250397Sobrien	(build_method_call): Use it.
1368352284Sobrien	* cvt.c (convert_to_aggr): Likewise.
1368450397Sobrien	* typeck.c (build_function_call_real): Likewise.
1368550397Sobrien	* sig.c (build_signature_table_constructor): Use build_addr_func.
1368618334Speter	* cp-tree.h (build_call, build_addr_func): Declare them.
1368750397Sobrien
1368818334SpeterTue May 14 12:47:47 1996  Mike Stump  <mrs@cygnus.com>
1368950397Sobrien
1369018334Speter	* cp-tree.h (LOOKUP_AGGR): Remove, unused.
1369150397Sobrien	* parse.y: Remove uses of LOOKUP_AGGR.
1369218334Speter
1369350397SobrienTue May 14 12:07:51 1996  Mike Stump  <mrs@cygnus.com>
1369450397Sobrien
1369518334Speter	* *.[chy]: Rename current_class_decl to current_class_ptr, and
1369650397Sobrien	C_C_D to current_class_ref.
1369750397Sobrien
1369850397SobrienMon May 13 16:55:23 1996  Jason Merrill  <jason@yorick.cygnus.com>
1369950397Sobrien
1370018334Speter	* call.c (convert_harshness): Tighten up pointer conversions.
1370150397Sobrien
1370250397SobrienSat May 11 04:33:50 1996  Doug Evans  <dje@canuck.cygnus.com>
1370318334Speter
1370450397Sobrien	* decl2.c (finish_vtable_vardecl): Surround DECL_ONE_ONLY with ifdef.
1370550397Sobrien	(finish_file): Likewise.
1370650397Sobrien
1370718334SpeterFri May 10 11:09:57 1996  Jason Merrill  <jason@yorick.cygnus.com>
1370850397Sobrien
1370950397Sobrien	* cvt.c (convert_fn_ptr): We don't use thunks for pmfs.
1371018334Speter
1371150397Sobrien	* method.c (emit_thunk): Set flag_omit_frame_pointer in default
1371218334Speter	code.
1371350397Sobrien
1371450397SobrienThu May  9 18:18:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
1371518334Speter
1371650397Sobrien	* decl2.c: Turn on thunks by default where supported.
1371718334Speter
1371850397SobrienTue May  7 20:39:57 1996  Mike Stump  <mrs@cygnus.com>
1371950397Sobrien
1372018334Speter	* cp-tree.h (build_overload_call_maybe): Removed.
1372150397Sobrien	* call.c (build_overload_call_real): Invert meaning of last arg to
1372218334Speter	be require_complete.
1372350397Sobrien	(build_overload_call): Likewise.
1372450397Sobrien	* typeck.c (build_x_function_call): Use build_overload_call_real
1372550397Sobrien	instead of build_overload_call_maybe.
1372650397Sobrien
1372750397SobrienMon May  6 01:23:32 1996  Jason Merrill  <jason@yorick.cygnus.com>
1372850397Sobrien
1372950397Sobrien	* decl2.c (finish_file): Don't try to emit functions that haven't
1373050397Sobrien	been compiled.
1373118334Speter
1373250397SobrienFri May  3 09:30:13 1996  Jason Merrill  <jason@yorick.cygnus.com>
1373318334Speter
1373450397Sobrien	* decl2.c (finish_vtable_vardecl): Oops.
1373550397Sobrien
1373650397Sobrien	* decl.c (maybe_push_to_top_level): Do save previous_class_*.
1373750397Sobrien	Also store the bindings from previous_class_values.
1373850397Sobrien	(pop_from_top_level): Restore them.
1373950397Sobrien
1374050397SobrienThu May  2 21:56:49 1996  Jason Merrill  <jason@yorick.cygnus.com>
1374118334Speter
1374250397Sobrien	* decl2.c (finish_vtable_vardecl): Only write out vtable if its
1374318334Speter	symbol has been referenced.
1374450397Sobrien	(finish_file): Re-join synthesis/vtable loop with inline emission
1374550397Sobrien	loop, disable inlining when an inline is output.
1374618334Speter
1374750397SobrienThu May  2 17:20:02 1996  Mike Stump  <mrs@cygnus.com>
1374818334Speter
1374950397Sobrien	* except.c (init_exception_processing): Setup saved_in_catch.
1375050397Sobrien	(push_eh_cleanup): Reset __eh_in_catch.
1375118334Speter	(expand_start_catch_block): Set __eh_in_catch.
1375250397Sobrien
1375318334SpeterThu May  2 16:21:17 1996  Mike Stump  <mrs@cygnus.com>
1375450397Sobrien
1375550397Sobrien	* except.c (push_eh_cleanup): Add tracking for whether or not we
1375618334Speter	have an active exception object.
1375750397Sobrien	(expand_builtin_throw): Use it to make sure a rethrow without an
1375818334Speter	exception object is caught.
1375950397Sobrien
1376050397SobrienThu May  2 11:26:41 1996  Jason Merrill  <jason@yorick.cygnus.com>
1376150397Sobrien
1376250397Sobrien	* decl.c (maybe_push_to_top_level): Clear out class-level bindings
1376350397Sobrien	cache.
1376450397Sobrien
1376518334SpeterWed May  1 11:26:52 1996  Jason Merrill  <jason@yorick.cygnus.com>
1376650397Sobrien
1376718334Speter	* decl2.c (finish_file): Also use sentries for vars with
1376850397Sobrien	DECL_ONE_ONLY or DECL_WEAK set (should any such happen to be
1376950397Sobrien	created).
1377050397Sobrien
1377118334Speter	* lex.c (handle_cp_pragma): Disable #pragma
1377250397Sobrien	interface/implementation if SUPPORTS_ONE_ONLY > 1.
1377318334Speter
1377450397SobrienTue Apr 30 11:25:46 1996  Jason Merrill  <jason@yorick.cygnus.com>
1377550397Sobrien
1377650397Sobrien	* method.c (emit_thunk): Wrap default case in
1377750397Sobrien	temporary/permanent_allocation.
1377850397Sobrien
1377950397Sobrien	* method.c (make_thunk): Use DECL_ONE_ONLY.
1378050397Sobrien	(emit_thunk): Call assemble_end_function.
1378150397Sobrien
1378250397SobrienMon Apr 29 15:38:29 1996  Jason Merrill  <jason@yorick.cygnus.com>
1378350397Sobrien
1378450397Sobrien	* decl2.c (import_export_vtable): Use DECL_ONE_ONLY.
1378550397Sobrien	(import_export_decl): Likewise.
1378650397Sobrien	(finish_prevtable_vardecl): Disable vtable hack if
1378750397Sobrien	SUPPORTS_ONE_ONLY > 1.
1378850397Sobrien
1378950397SobrienMon Apr 29 14:32:47 1996  Mike Stump  <mrs@cygnus.com>
1379050397Sobrien
1379150397Sobrien	* typeck.c (build_modify_expr): PREINCREMENT_EXPR and
1379250397Sobrien	PREDECREMENT_EXPRs take two arguments, not one.
1379350397Sobrien
1379450397SobrienMon Apr 29 00:27:53 1996  Jason Merrill  <jason@yorick.cygnus.com>
1379550397Sobrien
1379618334Speter	* class.c (build_vtable_entry): Don't build thunks for abstract
1379750397Sobrien	virtuals.
1379818334Speter
1379950397Sobrien	* lex.c (real_yylex): Fix handling of __PRETTY_FUNCTION__ like C
1380018334Speter	frontend.
1380150397Sobrien
1380250397SobrienSat Apr 27 16:45:35 1996  Jason Merrill  <jason@yorick.cygnus.com>
1380350397Sobrien
1380450397Sobrien	* class.c (set_rtti_entry): Use size_zero_node.
1380518334Speter	(build_vtable): Likewise.
1380650397Sobrien
1380718334SpeterSat Apr 27 14:48:57 1996  Jason Merrill  <jason@phydeaux.cygnus.com>
1380850397Sobrien
1380950397Sobrien	* class.c (finish_struct_1): Pass size_zero_node to set_rtti_entry.
1381050397Sobrien	(prepare_fresh_vtable): Likewise.
1381150397Sobrien
1381250397SobrienFri Apr 26 13:14:14 1996  Jason Merrill  <jason@yorick.cygnus.com>
1381350397Sobrien
1381450397Sobrien	* method.c (emit_thunk): Call mark_used on the target function.
1381550397Sobrien
1381650397Sobrien	* call.c (build_method_call): Don't warn about pending templates.
1381718334Speter
1381850397SobrienThu Apr 25 14:55:44 1996  Jason Merrill  <jason@yorick.cygnus.com>
1381918334Speter
1382050397Sobrien	* decl2.c (finish_file): Fix list walking logic.
1382150397Sobrien
1382218334Speter	* typeck2.c (check_for_new_type): Only warn if -pedantic.
1382350397Sobrien
1382418334SpeterWed Apr 24 15:41:15 1996  Bob Manson  <manson@charmed.cygnus.com>
1382550397Sobrien
1382650397Sobrien	* class.c (finish_struct_1): Remove old code for
1382718334Speter	dont_allow_type_definitions.
1382850397Sobrien	* cp-tree.h: Likewise.
1382918334Speter	* spew.c: Make sure cp-tree.h is included before parse.h, so the
1383050397Sobrien	definition of flagged_type_tree is found before it is used.
1383118334Speter	* lex.c: Likewise.
1383250397Sobrien	* parse.y: Added the ftype member to the type union, and changed a
1383318334Speter	number of rules to use it instead of ttype.  Added calls to
1383450397Sobrien	check_for_new_type() as appropriate.
1383550397Sobrien	* typeck2.c (check_for_new_type): New function for checking
1383618334Speter	if a newly defined type appears in the specified tree.
1383750397Sobrien	* cp-tree.h: Add new type flagged_type_tree.  Add a prototype
1383818334Speter	for check_for_new_type().
1383950397Sobrien
1384018334SpeterWed Apr 24 00:36:21 1996  Jason Merrill  <jason@yorick.cygnus.com>
1384150397Sobrien
1384250397Sobrien	* decl2.c (finish_file): Only use a sentry if the decl is public.
1384318334Speter
1384450397Sobrien	* pt.c (tsubst_expr, DECL_STMT): If we don't have an initializer,
1384518334Speter	don't pass LOOKUP_ONLYCONVERTING.
1384650397Sobrien
1384718334SpeterTue Apr 23 17:18:47 1996  Bob Manson  <manson@charmed.cygnus.com>
1384850397Sobrien
1384918334Speter	* typeck.c (common_type): Fix the ARRAY_TYPE case so it
1385050397Sobrien	properly keeps track of const and volatile type modifiers.
1385150397Sobrien
1385250397SobrienTue Apr 23 10:52:56 1996  Jason Merrill  <jason@yorick.cygnus.com>
1385350397Sobrien
1385450397Sobrien	* tree.c (cp_tree_equal): C++ version of simple_cst_equal.
1385550397Sobrien	* pt.c (comp_template_args): Use it.
1385618334Speter
1385750397Sobrien	* rtti.c (get_tinfo_fn, build_dynamic_cast, expand_*_desc): Call
1385818334Speter	assemble_external for artificial function decls.
1385950397Sobrien
1386050397Sobrien	* decl.c (cp_finish_decl): Oops.
1386118334Speter
1386250397SobrienMon Apr 22 17:28:27 1996  Jason Merrill  <jason@yorick.cygnus.com>
1386318334Speter
1386450397Sobrien	* decl2.c (import_export_decl): Put static data member templates
1386518334Speter	into common storage, or make them weak, depending on whether they
1386650397Sobrien	are dynamically or statically initialized.
1386750397Sobrien	(get_sentry): New function.
1386850397Sobrien	(finish_file): Do import_export_decl for static data members before
1386918334Speter	building the init/fini functions.  Don't init/fini a variable that's
1387050397Sobrien	EXTERNAL.  Use a sentry for variables in common.  Fix mismatching
1387118334Speter	push/pop_temp_slots.
1387250397Sobrien	* decl.c (cp_finish_decl): If DECL_NOT_REALLY_EXTERN, do the
1387350397Sobrien	expand_static_init thang.
1387450397Sobrien	* method.c (get_id_2): New function.
1387550397Sobrien
1387618334SpeterMon Apr 22 15:32:45 1996  Bob Manson  <manson@charmed.cygnus.com>
1387750397Sobrien
1387818334Speter	* parse.y (empty_parms): Make sure we use C++-style prototypes
1387950397Sobrien	when we're declaring member functions.
1388050397Sobrien
1388150397SobrienSun Apr 21 10:08:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
1388218334Speter
1388350397Sobrien	* Makefile.in (CONFLICTS): 16 s/r conflicts.
1388418334Speter	* parse.y (self_template_type): New nonterminal.
1388550397Sobrien
1388650397SobrienThu Apr 18 08:56:54 1996  Jason Merrill  <jason@yorick.cygnus.com>
1388750397Sobrien
1388850397Sobrien	* decl.c (make_typename_type): Handle getting a TYPE_DECL for a
1388918334Speter	name.
1389050397Sobrien	* parse.y (base_class.1): Allow 'typename foo::bar'.
1389118334Speter
1389250397Sobrien	* lex.c (check_newline): Remove #pragma code that plays with the
1389350397Sobrien	input stream, since we now deal with tokens.  Clear nextchar when
1389418334Speter	we're done.
1389550397Sobrien	(handle_cp_pragma): Use real_yylex.
1389618334Speter	(handle_sysv_pragma): Don't do skipline here.  Only call real_yylex
1389750397Sobrien	in one place.
1389850397Sobrien
1389950397Sobrien	* lex.c (check_for_missing_semicolon): Handle SELFNAME.
1390018334Speter
1390150397Sobrien	* lex.c (handle_cp_pragma): Fix "#pragma implementation".
1390250397Sobrien
1390318334SpeterWed Apr 17 16:51:33 1996  Jason Merrill  <jason@yorick.cygnus.com>
1390450397Sobrien
1390518334Speter	* parse.y: New token SELFNAME for potential constructor.
1390650397Sobrien	* spew.c (yylex): Handle it.
1390750397Sobrien	* lex.c (identifier_type): Produce it.
1390818334Speter
1390950397Sobrien	* parse.y (complete_type_name): In :: case, don't push class binding.
1391050397Sobrien	(complex_type_name): Likewise.
1391118334Speter
1391250397SobrienWed Apr 17 15:02:40 1996  Mike Stump  <mrs@cygnus.com>
1391318334Speter
1391450397Sobrien	* typeck.c (build_reinterpret_cast): Handle pointer to member
1391550397Sobrien	functions.
1391650397Sobrien
1391750397SobrienWed Apr 17 12:28:26 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1391818334Speter
1391950397Sobrien	* lex.c (handle_cp_pragma): New function, with decl, doing the cc1plus
1392018334Speter	pragmas.
1392150397Sobrien	(check_newline): Put the vtable/unit/implementation/interface pragma
1392250397Sobrien	code into handle_cp_pragma, replacing it with a call.
1392318334Speter	(handle_sysv_pragma): Give int return type, and take FINPUT and TOKEN
1392450397Sobrien	args.  Get the next token after handling the pragma token.
1392518334Speter
1392650397SobrienWed Apr 17 10:28:34 1996  Jason Merrill  <jason@yorick.cygnus.com>
1392750397Sobrien
1392818334Speter	* cvt.c (cp_convert_to_pointer): Avoid doing base analysis on pmfs.
1392950397Sobrien	(convert_to_pointer_force): Likewise.
1393050397Sobrien
1393118334Speter	* init.c (build_new): Fix array new without -fcheck-new.
1393250397Sobrien
1393318334SpeterTue Apr 16 13:44:58 1996  Jason Merrill  <jason@yorick.cygnus.com>
1393450397Sobrien
1393550397Sobrien	* cp-tree.h, call.c, class.c, decl.c, parse.y, pt.c, rtti.c,
1393618334Speter	tree.c: Lose TYPE_NESTED_NAME.
1393750397Sobrien
1393818334Speter	* parse.y (nested_name_specifier_1): Don't treat non-identifiers
1393950397Sobrien	as identifiers.
1394050397Sobrien
1394118334Speter	* tree.def: Add VEC_INIT_EXPR.
1394250397Sobrien	* expr.c (cplus_expand_expr): Handle it.
1394318334Speter	* init.c (build_new): Use it instead of the RTL_EXPR nastiness and
1394450397Sobrien	the extra file-scope symbol nastiness.
1394518334Speter
1394650397SobrienMon Apr 15 16:21:29 1996  Jason Merrill  <jason@yorick.cygnus.com>
1394718334Speter
1394850397Sobrien	* method.c (make_thunk): Thunks are static.
1394918334Speter	(emit_thunk): Use ASM_OUTPUT_MI_THUNK if it's defined.
1395050397Sobrien
1395118334Speter	* decl2.c (mark_vtable_entries): Emit thunks as needed.
1395250397Sobrien	(finish_file): Don't emit them here.
1395318334Speter
1395450397SobrienSun Apr 14 11:34:39 1996  Jason Merrill  <jason@yorick.cygnus.com>
1395518334Speter
1395650397Sobrien	* rtti.c (build_dynamic_cast): Handle null pointers.
1395750397Sobrien	(ifnonnull): New function.
1395850397Sobrien
1395950397SobrienFri Apr 12 09:08:27 1996  Bob Manson  <manson@charmed.cygnus.com>
1396050397Sobrien
1396150397Sobrien	* call.c (build_method_call): Remember the original basetype we
1396250397Sobrien	were called with.  Give an error message instead of trying
1396352284Sobrien	(incorrectly) to call a non-static member function through a
1396450397Sobrien	non-inherited class.
1396550397Sobrien
1396650397Sobrien	* search.c (expand_upcast_fixups): Mark the new fixup as
1396752284Sobrien	DECL_ARTIFICIAL.
1396850397Sobrien
1396918334SpeterThu Apr 11 03:57:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
1397050397Sobrien
1397118334Speter	* init.c (build_new): Use a TARGET_EXPR for alloc_expr.
1397250397Sobrien
1397318334Speter	* class.c (set_rtti_entry): Fix for thunks.
1397450397Sobrien
1397550397Sobrien	* decl2.c (import_export_decl): Still emit typeinfo fns for
1397618334Speter	cv-variants of builtin types.
1397750397Sobrien
1397818334Speter	* rtti.c (expand_class_desc): Set up base_info_type_node here.
1397950397Sobrien	(init_rtti_processing): Instead of here.
1398050397Sobrien
1398118334SpeterWed Apr 10 14:17:13 1996  Jason Merrill  <jason@yorick.cygnus.com>
1398250397Sobrien
1398318334Speter	* rtti.c (init_rtti_processing): Do init regardless of -frtti.
1398450397Sobrien	(build_typeid): Only complain about taking dynamic typeid without
1398550397Sobrien	-frtti.
1398618334Speter
1398750397Sobrien	* decl2.c: flag_rtti defaults to 1.
1398850397Sobrien
1398918334Speter	* rtti.c (get_tinfo_var): The general class case is now smaller.
1399050397Sobrien	(init_rtti_processing): Pack the latter three fields of base_info
1399118334Speter	into 32 bits.
1399250397Sobrien
1399318334SpeterWed Apr 10 13:50:14 1996  Mike Stump  <mrs@cygnus.com>
1399450397Sobrien
1399550397Sobrien	* init.c (expand_member_init): Don't dump if name is NULL_TREE.
1399650397Sobrien
1399750397SobrienWed Apr 10 12:56:02 1996  Mike Stump  <mrs@cygnus.com>
1399850397Sobrien
1399950397Sobrien	* search.c (make_memoized_table_entry): Undefer the pop, if necessary.
1400050397Sobrien	(push_memoized_context): Split out code to undefer pop_type_level to
1400150397Sobrien	(clear_memoized_cache): here.
1400250397Sobrien	(pop_memoized_context): We can only handle one layer of deferral of
1400350397Sobrien	pop_type_level so clear the cache, if there was a previous level.
1400450397Sobrien
1400518334SpeterTue Apr  9 23:06:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
1400650397Sobrien
1400718334Speter	* rtti.c (init_rtti_processing): Build up base_info_type_node.
1400850397Sobrien	(expand_class_desc): Use one pointer to an array of base_info
1400950397Sobrien	structs, passed using a CONSTRUCTOR.
1401018334Speter
1401150397SobrienTue Apr  9 14:20:57 1996  Mike Stump  <mrs@cygnus.com>
1401218334Speter
1401350397Sobrien	* class.c (build_vbase_path): Remove block extern for
1401450397Sobrien	flag_assume_nonnull_objects here.
1401518334Speter	(build_vfn_ref): Split out functionality into build_vtbl_ref.
1401650397Sobrien	(build_vtbl_ref): New routine.
1401718334Speter	(build_vtable): Set up rtti info here.
1401850397Sobrien	(add_virtual_function): Note in CLASSTYPE_RTTI the best
1401950397Sobrien	place where we can get the rtti pointers from to avoid having to
1402050397Sobrien	search around for a place.
1402118334Speter	(finish_base_struct): Likewise.
1402250397Sobrien	(finish_struct_1): Likewise.  Never create totally new vtables
1402350397Sobrien	with totally new vtable pointers for rtti.  Disable code to layout
1402450397Sobrien	vtable pointers better until we want to break binary
1402550397Sobrien	compatibility.
1402650397Sobrien	* rtti.c (build_headof_sub): New routine to convert down to a
1402750397Sobrien	sub-object that has an rtti pointer in the vtable.
1402818334Speter	(build_headof): Use it.  Also, use build_vtbl_ref now to be more
1402950397Sobrien	maintainable.
1403018334Speter	(build_dynamic_cast): Make sure we have saved it, if we need to.
1403150397Sobrien	* search.c (dfs_init_vbase_pointers): Disable code that deals with
1403218334Speter	a more efficient vtable layout, enable later.
1403350397Sobrien	* call.c (flag_assume_nonnull_objects): Moved declaration to
1403418334Speter	* cp-tree.h: here.  Declare build_vtbl_ref.
1403550397Sobrien	* pt.c (instantiate_class_template): Use NULL_TREE instead of 0 in
1403650397Sobrien	function calls that want a tree.
1403750397Sobrien
1403818334SpeterTue Apr  9 12:10:26 1996  Jason Merrill  <jason@yorick.cygnus.com>
1403950397Sobrien
1404050397Sobrien	* rtti.c (build_dynamic_cast): Handle downcasting to X* given
1404118334Speter	other X subobjects in the most derived type.  Ack.
1404250397Sobrien
1404318334Speter	* rtti.c (build_dynamic_cast): No need to strip cv-quals here,
1404450397Sobrien	get_typeid will do it for us.
1404550397Sobrien	(get_typeid_1): Break out call-building for expand_*_desc to use.
1404618334Speter	(get_typeid): Call it.
1404750397Sobrien	(expand_*_desc): Likewise.
1404818334Speter	* decl.c (init_decl_processing): Don't set TYPE_BUILT_IN on char *
1404950397Sobrien	and void *.
1405050397Sobrien	(init_decl_processing): Lose builtin_type_tdescs lossage.
1405150397Sobrien	* decl2.c (finish_vtable_vardecl): Remove obsolete code.
1405250397Sobrien
1405350397SobrienMon Apr  8 17:23:23 1996  Bob Manson  <manson@charmed.cygnus.com>
1405450397Sobrien
1405518334Speter	* pt.c (tsubst): When calling set_nested_typename, use
1405650397Sobrien	TYPE_NESTED_NAME (current_class_type) instead of
1405718334Speter	current_class_name.
1405850397Sobrien
1405950397Sobrien	* decl.c (pushdecl): Likewise.
1406018334Speter	(pushdecl_class_level): Likewise.
1406150397Sobrien	(grokdeclarator): Use NULL_TREE instead of 0 in the call to
1406218334Speter	set_nested_typename.
1406350397Sobrien
1406418334SpeterSun Apr  7 10:44:31 1996  Jason Merrill  <jason@yorick.cygnus.com>
1406550397Sobrien
1406650397Sobrien	* rtti.c (synthesize_tinfo_fn): Handle arrays.
1406718334Speter
1406850397Sobrien	* cp-tree.h (DECL_REALLY_EXTERN): New macro.
1406950397Sobrien
1407018334SpeterSat Apr  6 13:56:27 1996  Jason Merrill  <jason@yorick.cygnus.com>
1407150397Sobrien
1407250397Sobrien	* rtti.c (throw_bad_cast): Use entry point __throw_bad_cast.
1407350397Sobrien	(init_rtti_processing): Lose bad_cast_type.
1407450397Sobrien	(build_dynamic_cast): Use throw_bad_cast.
1407518334Speter
1407650397Sobrien	* rtti.c (synthesize_tinfo_fn): Handle enums and pmfs.
1407718334Speter
1407850397Sobrien	* decl2.c (finish_file): Don't synthesize artificial functions
1407950397Sobrien	that are external and not inline.
1408018334Speter
1408150397Sobrien	* rtti.c (get_tinfo_fn): If at_eof, call import_export_decl.
1408250397Sobrien
1408318334Speter	* decl2.c (finish_file): Handle having new inlines added to
1408450397Sobrien	saved_inlines by synthesis.
1408518334Speter
1408650397Sobrien	* rtti.c (get_bad_cast_node): Don't require <typeinfo>.
1408750397Sobrien
1408818334SpeterFri Apr  5 17:02:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
1408950397Sobrien
1409018334Speter	RTTI rewrite to initialize nodes as needed, not require that
1409150397Sobrien	users #include <typeinfo>, complete functionality and reduce wasted
1409252284Sobrien	space.
1409350397Sobrien	* rtti.c (init_rtti_processing): New fn.
1409450397Sobrien	(build_typeid): The vtable entry is now a function.
1409518334Speter	(get_tinfo_var): New fn.
1409650397Sobrien	(get_tinfo_fn): Likewise.
1409750397Sobrien	(get_typeid): Use it.
1409818334Speter	(build_dynamic_cast): Declare and use entry point __dynamic_cast.
1409950397Sobrien	(build_*_desc): Rename to expand_*_desc and rewrite to use entry
1410018334Speter	points __rtti_*.
1410150397Sobrien	(add_uninstantiated_desc, get_def_to_follow, build_t_desc): Lose.
1410218334Speter	(synthesize_tinfo_fn): New fn.
1410350397Sobrien	* method.c (build_t_desc_overload): Lose.
1410418334Speter	(build_overload_with_type): More generic.
1410550397Sobrien	* decl.c (init_decl_processing): Call init_rtti_processing.
1410650397Sobrien	* class.c (set_rtti_entry): Use get_tinfo_fn.
1410718334Speter	* decl2.c (mark_vtable_entries): Mark the rtti function.
1410850397Sobrien	(finish_prevtable_vardecl): Don't build_t_desc.
1410950397Sobrien	(import_export_decl): Handle tinfo functions.
1411018334Speter	(finish_file): Likewise.
1411150397Sobrien	* typeck.c (inline_conversion): New fn.
1411218334Speter	(build_function_call_real): Use it.
1411350397Sobrien	* cp-tree.h: Add decls.
1411450397Sobrien
1411550397Sobrien	* method.c (hack_identifier): Also convert component_refs from
1411618334Speter	references.
1411750397Sobrien
1411818334Speter	* lex.c (cons_up_default_function): Use the type, not the name, in
1411950397Sobrien	declspecs.
1412050397Sobrien
1412150397Sobrien	* decl2.c (import_export_vtable): Fix weak vtables.
1412218334Speter
1412350397SobrienFri Apr  5 13:30:17 1996  Bob Manson  <manson@charmed.cygnus.com>
1412418334Speter
1412550397Sobrien	* search.c (get_base_distance_recursive): Fix access checks for
1412618334Speter	protected bases.
1412750397Sobrien
1412818334SpeterFri Apr  5 11:02:06 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1412950397Sobrien
1413050397Sobrien	* call.c (unary_complex_lvalue): Delete unneeded decl, it's in
1413150397Sobrien	cp-tree.h.
1413250397Sobrien	(convert_harshness): Add prototypes wrapped by PROTO.
1413350397Sobrien	* decl2.c (grok_function_init): Likewise.
1413418334Speter	(do_toplevel_using_decl): Change to void return type.
1413550397Sobrien	* class.c (build_vtable_entry): Remove decl of make_thunk.
1413618334Speter	(merge_overrides): Fix order of arg definitions.
1413750397Sobrien	(finish_vtbls): Likewise.
1413850397Sobrien	(fixup_vtable_deltas): Likewise.
1413950397Sobrien	(modify_all_direct_vtables): Likewise.
1414018334Speter	(modify_all_indirect_vtables): Likewise.
1414150397Sobrien	* search.c (get_base_distance_recursive): Likewise.
1414218334Speter	(get_abstract_virtuals_1): Likewise.
1414350397Sobrien	(fixup_virtual_upcast_offsets): Likewise.
1414450397Sobrien	(lookup_fnfields_1): Add prototypes wrapped by PROTO.
1414550397Sobrien	* init.c (perform_member_init): Fix order of arg definitions.
1414650397Sobrien	(expand_aggr_init_1): Add prototypes wrapped by PROTO.
1414750397Sobrien	* cp-tree.h (make_thunk): Add decl.
1414850397Sobrien	(overload_template_name, push_template_decl): Add decls.
1414950397Sobrien	(do_toplevel_using_decl): Change to void return type.
1415050397Sobrien	(vec_binfo_member): Add decl.
1415150397Sobrien
1415250397SobrienThu Apr  4 13:33:10 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1415350397Sobrien
1415450397Sobrien	* typeck.c (mark_addressable, convert_for_assignment,
1415550397Sobrien	convert_for_initialization, pointer_int_sum, pointer_diff,
1415650397Sobrien	unary_complex_lvalue): Add prototypes wrapped by PROTO.
1415750397Sobrien	(convert_sequence): #if 0 fn decl, since definition also is.
1415850397Sobrien
1415950397SobrienThu Apr  4 11:00:53 1996  Mike Stump  <mrs@cygnus.com>
1416050397Sobrien
1416150397Sobrien	* rtti.c (build_dynamic_cast): Make sure we strip qualifiers on
1416250397Sobrien	cast to pointer types for type searching.
1416350397Sobrien
1416450397SobrienWed Apr  3 17:10:57 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1416550397Sobrien
1416650397Sobrien	* typeck.c (get_delta_difference): Use cp_error, not error, in the
1416718334Speter	case where BINFO == 0.
1416850397Sobrien
1416918334SpeterWed Apr  3 12:01:02 1996  Mike Stump  <mrs@cygnus.com>
1417050397Sobrien
1417150397Sobrien	* call.c (build_method_call): Fix wording of error messages so
1417218334Speter	constructors come out right.
1417350397Sobrien
1417450397SobrienTue Apr  2 16:06:59 1996  Bob Manson  <manson@charmed.cygnus.com>
1417550397Sobrien
1417650397Sobrien	* decl.c (push_overloaded_decl): Don't warn about hidden
1417750397Sobrien	constructors when both the type and the function are declared
1417850397Sobrien	in a system header file.
1417950397Sobrien
1418050397SobrienMon Apr  1 09:03:13 1996  Bob Manson  <manson@charmed.cygnus.com>
1418150397Sobrien
1418218334Speter	* class.c (finish_struct_1): Propagate the TYPE_PACKED
1418350397Sobrien	flag for the type to the type's fields.
1418418334Speter
1418550397SobrienSat Mar 30 12:14:33 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1418650397Sobrien
1418750397Sobrien	* parse.y (complex_parmlist, ELLIPSES): Take out ARM-based warning.
1418818334Speter
1418950397SobrienFri Mar 29 15:51:36 1996  Bob Manson  <manson@charmed.cygnus.com>
1419050397Sobrien
1419150397Sobrien	* class.c (base_info, finish_base_struct): Replace
1419250397Sobrien	needs_virtual_dtor with base_has_virtual.
1419318334Speter
1419450397Sobrien	(finish_struct_1): Remove the old code that tried to make default
1419518334Speter	destructors virtual.  Use base_has_virtual when checking if we need
1419650397Sobrien	to add a vtable entry for the rtti code.
1419718334Speter
1419850397SobrienFri Mar 29 14:02:36 1996  Jason Merrill  <jason@yorick.cygnus.com>
1419918334Speter
1420050397Sobrien	* pt.c (push_template_decl): Complain about template decl with
1420118334Speter	inappropriate declaration.
1420250397Sobrien
1420350397SobrienFri Mar 29 12:15:35 1996  Bob Manson  <manson@charmed.cygnus.com>
1420450397Sobrien
1420518334Speter	* typeck.c (build_x_unary_op): Remove bogus check for taking
1420650397Sobrien	the address of a member function.
1420718334Speter
1420850397SobrienFri Mar 29 11:56:02 1996  Jason Merrill  <jason@yorick.cygnus.com>
1420950397Sobrien
1421018334Speter	* parse.y (constructor_declarator): Only push the class if
1421150397Sobrien	we are not already in the class.
1421218334Speter
1421350397SobrienFri Mar 29 09:41:02 1996  Jeffrey A. Law  <law@cygnus.com>
1421450397Sobrien
1421518334Speter	* method.c (emit_thunk): Remove current_call_is_indirect nonsense.
1421650397Sobrien	Add additional argument to INIT_CUMULATIVE_ARGS.
1421718334Speter
1421850397SobrienThu Mar 28 16:41:39 1996  Jason Merrill  <jason@yorick.cygnus.com>
1421918334Speter
1422050397Sobrien	* decl.c (shadow_tag): Fix error about anon union with methods.
1422152284Sobrien
1422250397Sobrien	* parse.y (self_reference): Only generate a self-reference if this
1422350397Sobrien	is a non-template class.
1422450397Sobrien	(opt.component_decl_list): Only use it if it was generated.
1422550397Sobrien
1422650397Sobrien	* parse.y (component_decl_1): Use constructor_declarator.
1422750397Sobrien	(fn.def2): Likewise.
1422850397Sobrien	(notype_component_declarator0): Likewise.
1422950397Sobrien
1423050397SobrienThu Mar 28 15:11:35 1996  Bob Manson  <manson@charmed.cygnus.com>
1423150397Sobrien
1423250397Sobrien	* typeck.c (build_x_unary_op): Add checks for taking the address
1423350397Sobrien	of a TARGET_EXPR or of a member function, and give appropriate
1423450397Sobrien	warnings.
1423550397Sobrien
1423650397SobrienThu Mar 28 14:49:26 1996  Jason Merrill  <jason@yorick.cygnus.com>
1423750397Sobrien
1423850397Sobrien	* pt.c (process_template_parm): Allow template type parms to be
1423950397Sobrien	used as types for template const parms.
1424050397Sobrien
1424150397SobrienWed Mar 27 15:51:19 1996  Mike Stump  <mrs@cygnus.com>
1424250397Sobrien
1424350397Sobrien	* init.c (expand_vec_init): Ensure the eh cleanups are on the
1424418334Speter	function_obstack.
1424550397Sobrien
1424650397SobrienWed Mar 27 10:14:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
1424718334Speter
1424850397Sobrien	* decl.c (lookup_name_real): Be even more picky about the
1424950397Sobrien	ambiguous lookup warning.
1425018334Speter	(grokdeclarator): Tweak SCOPE_REF constructor declarators here.
1425150397Sobrien	* parse.y (constructor_declarator): Rather than here.
1425218334Speter
1425350397Sobrien	* parse.y (constructor_declarator): New nonterminal.
1425418334Speter	(fn.def1): Use it.
1425550397Sobrien	(explicit_instantiation): Likewise.
1425650397Sobrien
1425718334SpeterTue Mar 26 13:41:33 1996  Jason Merrill  <jason@yorick.cygnus.com>
1425850397Sobrien
1425918334Speter	Add implicit declaration of class name at class scope.
1426050397Sobrien	* decl.c (lookup_name_real): Restrict pedwarn about ambiguous lookup.
1426150397Sobrien	* parse.y (self_reference): New nonterminal.
1426250397Sobrien	(opt.component_decl_list): Use it.
1426350397Sobrien	(fn.def1): Add nested_name_specifier type_name cases.
1426450397Sobrien	* class.c (build_self_reference): New function.
1426550397Sobrien	(finish_struct): Handle access_default later, move self-reference
1426650397Sobrien	decl to the end.
1426750397Sobrien	* pt.c (lookup_template_class): Handle getting a TYPE_DECL.
1426850397Sobrien	* cp-tree.h: Adjust.
1426950397Sobrien
1427050397Sobrien	* pt.c (do_function_instantiation): Separate handling of member
1427150397Sobrien	functions and non-member functions properly.
1427250397Sobrien
1427350397SobrienMon Mar 25 14:23:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
1427450397Sobrien
1427550397Sobrien	* pt.c (process_template_parm): Improve error for 'volatile class K'.
1427650397Sobrien
1427750397Sobrien	* class.c (finish_struct_1): Check the right slot for destructors.
1427850397Sobrien
1427950397Sobrien	* decl.c (start_enum): Complain about enum templates.
1428050397Sobrien
1428118334SpeterMon Mar 25 13:25:31 1996  Mike Stump  <mrs@cygnus.com>
1428250397Sobrien
1428318334Speter	* init.c (resolve_offset_ref): Offset pointers to member data by one.
1428450397Sobrien	* typeck.c (unary_complex_lvalue): Likewise.
1428550397Sobrien
1428650397SobrienMon Mar 25 13:30:42 1996  Bob Manson  <manson@charmed.cygnus.com>
1428750397Sobrien
1428818334Speter	* typeck.c (c_expand_return): Check for a returned local
1428950397Sobrien	array name, similar to the check for an ADDR_EXPR.
1429018334Speter
1429150397SobrienMon Mar 25 13:07:19 1996  Jason Merrill  <jason@yorick.cygnus.com>
1429250397Sobrien
1429318334Speter	* decl.c (cp_finish_decl): Don't build cleanups for static
1429450397Sobrien	variables here.
1429518334Speter
1429650397SobrienFri Mar 22 17:57:55 1996  Mike Stump  <mrs@cygnus.com>
1429750397Sobrien
1429818334Speter	* typeck.c (build_modify_expr): Fix error messages to be more
1429950397Sobrien	accurate.
1430018334Speter	* cp-tree.h (assop_as_string): Parallel to op_as_string, but for
1430150397Sobrien	assignment operators.
1430250397Sobrien	* error.c (assop_as_string): Likewise.  Add support for `%Q' for
1430318334Speter	assignment operators.
1430450397Sobrien
1430518334SpeterFri Mar 22 13:48:29 1996  Jason Merrill  <jason@yorick.cygnus.com>
1430650397Sobrien
1430750397Sobrien	* decl.c (grokdeclarator): Call bad_specifiers for typedefs.  Also
1430850397Sobrien	give an error if initialized.  pedwarn about nested type with the
1430918334Speter	same name as its enclosing class.
1431050397Sobrien
1431118334Speter	* pt.c (tsubst, case TYPE_DECL): Set DECL_CONTEXT.
1431250397Sobrien
1431350397Sobrien	* typeck.c (require_complete_type): Be sure to instantiate the
1431418334Speter	MAIN_VARIANT of the type.
1431550397Sobrien
1431618334Speter	* decl2.c (finish_file): Instantiate pending templates before
1431750397Sobrien	processing static constructors and destructors.
1431818334Speter
1431950397Sobrien	* pt.c (instantiate_decl): Don't instantiate functions at toplevel
1432018334Speter	unless at_eof.
1432152284Sobrien
1432250397SobrienFri Mar 22 09:30:17 1996  Bob Manson  <manson@beauty.cygnus.com>
1432318334Speter
1432450397Sobrien	* decl2.c (delete_sanity): If error_mark_node is passed
1432552284Sobrien	in as an expression, quit while we're ahead.
1432650397Sobrien
1432718334Speter	* decl.c (grokdeclarator): Give an error message if `friend'
1432850397Sobrien	is combined with any storage class specifiers.
1432918334Speter
1433050397SobrienWed Mar 20 14:51:55 1996  Jason Merrill  <jason@yorick.cygnus.com>
1433150397Sobrien
1433218334Speter	* parse.y (named_complex_class_head_sans_basetype): Don't crash on
1433350397Sobrien	definition of nonexistent nested type.
1433418334Speter
1433550397Sobrien	* error.c (dump_decl, case TYPE_DECL): Fix decision for whether or
1433650397Sobrien	not to say 'typedef'.
1433718334Speter
1433850397SobrienWed Mar 20 00:11:47 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1433918334Speter
1434050397Sobrien	* cp-tree.h (struct lang_type): Make search_slot a tree, not a char*.
1434150397Sobrien	* search.c (dfs_walk, dfs_init_vbase_pointers,
1434218334Speter	expand_upcast_fixups): Remove cast of CLASSTYPE_SEARCH_SLOT.
1434350397Sobrien	(dfs_find_vbases): Remove cast for CLASSTYPE_SEARCH_SLOT init.
1434418334Speter
1434550397SobrienTue Mar 19 17:56:03 1996  Jason Merrill  <jason@yorick.cygnus.com>
1434650397Sobrien
1434718334Speter	* except.c (build_throw): Support minimal parse.
1434850397Sobrien	* pt.c (tsubst_copy): Support THROW_EXPR.
1434918334Speter	* decl2.c (build_expr_from_tree): Likewise.
1435050397Sobrien
1435118334Speter	* pt.c (mangle_class_name_for_template): Always allocate
1435250397Sobrien	scratch_firstobj.
1435350397Sobrien
1435450397SobrienTue Mar 19 16:34:31 1996  Bob Manson  <manson@beauty.cygnus.com>
1435518334Speter
1435650397Sobrien	* cvt.c (cp_convert_to_pointer): Give an appropriate error
1435750397Sobrien	when trying to cast from an incomplete type.
1435850397Sobrien
1435918334SpeterTue Mar 19 16:00:33 1996  Jason Merrill  <jason@yorick.cygnus.com>
1436050397Sobrien
1436118334Speter	* pt.c (instantiate_class_template): Don't bother setting up
1436250397Sobrien	CLASSTYPE_TAGS explicitly, as the nested types will add
1436350397Sobrien	themselves.
1436450397Sobrien
1436518334SpeterTue Mar 19 15:48:43 1996  Bob Manson  <manson@beauty.cygnus.com>
1436650397Sobrien
1436718334Speter	* decl.c (shadow_tag): Remove old error check for usage of
1436850397Sobrien	an enum without a previous declaration.
1436950397Sobrien	(xref_tag): Add error message about usage of enums without a
1437018334Speter	previous declaration.
1437150397Sobrien
1437218334SpeterTue Mar 19 09:21:35 1996  Jason Merrill  <jason@yorick.cygnus.com>
1437350397Sobrien
1437450397Sobrien	* lex.c (do_identifier): Only do name consistency check if we're
1437518334Speter	parsing.
1437650397Sobrien
1437718334Speter	* pt.c (push_template_decl): Don't crash if we get a member defn
1437850397Sobrien	that doesn't match.
1437950397Sobrien
1438050397Sobrien	* decl.c (xref_tag_from_type): New function to do an xref without
1438150397Sobrien	always having to figure out code_type_node.
1438218334Speter	* cp-tree.h: Declare it.
1438350397Sobrien	* pt.c (instantiate_class_template): Use it for friend classes.
1438450397Sobrien	(lookup_template_class): Use it.
1438550397Sobrien
1438618334Speter	* typeck2.c (build_functional_cast): Pull out a single parm before
1438750397Sobrien	passing it to build_c_cast.
1438818334Speter
1438950397SobrienTue Mar 19 09:07:15 1996  Bob Manson  <manson@beauty.cygnus.com>
1439050397Sobrien
1439150397Sobrien	* expr.c (do_case): Give an error message if a pointer is
1439250397Sobrien	given as a case value.
1439350397Sobrien
1439450397SobrienMon Mar 18 21:57:54 1996  Jason Merrill  <jason@yorick.cygnus.com>
1439550397Sobrien
1439650397Sobrien	* typeck.c (build_c_cast): Don't pull single TEMPLATE_DECL out of
1439750397Sobrien	an overload list.
1439850397Sobrien
1439918334Speter	* lex.c (cons_up_default_function): Really, now, interface hackery
1440050397Sobrien	does not apply to synthesized methods.
1440150397Sobrien
1440218334SpeterMon Mar 18 18:20:57 1996  Mike Stump  <mrs@cygnus.com>
1440350397Sobrien
1440418334Speter	* call.c (build_method_call): Ctors and dtors now have special names
1440550397Sobrien	with respect to lookups.
1440618334Speter	* class.c (add_method): Likewise.
1440750397Sobrien	(grow_method): Likewise.
1440818334Speter	(finish_struct_methods): Likewise.
1440950397Sobrien	(warn_hidden): Likewise.
1441018334Speter	(finish_struct_1): Likewise.
1441150397Sobrien	* cvt.c (convert_to_reference): Likewise.
1441218334Speter	(convert_to_aggr): Likewise.
1441350397Sobrien	(cp_convert): Likewise.
1441450397Sobrien	* decl2.c (check_classfn): Likewise.
1441518334Speter	* init.c (expand_member_init): Likewise.
1441650397Sobrien	(expand_default_init): Likewise.
1441718334Speter	(expand_aggr_init_1): Likewise.
1441850397Sobrien	(build_offset_ref): Likewise.
1441950397Sobrien	(build_new): Likewise.
1442018334Speter	(build_delete): Likewise.
1442150397Sobrien	* lex.c (do_inline_function_hair): Likewise.
1442218334Speter	* search.c (lookup_field_1): Likewise.
1442350397Sobrien	(lookup_fnfields_here): Likewise.
1442450397Sobrien	(lookup_field): Likewise.
1442518334Speter	(lookup_fnfields): Likewise.
1442650397Sobrien	(get_virtual_destructor): Likewise.
1442718334Speter	(dfs_debug_mark): Likewise.
1442850397Sobrien	(dfs_pushdecls): Likewise.
1442950397Sobrien	(dfs_compress_decls): Likewise.
1443050397Sobrien	* tree.c (layout_basetypes): Likewise.
1443150397Sobrien	* typeck.c (build_component_ref): Likewise.
1443250397Sobrien	(build_x_function_call): Likewise.
1443350397Sobrien	(build_modify_expr): Likewise.
1443418334Speter	(convert_for_initialization): Likewise.
1443550397Sobrien	(build_functional_cast): Likewise.
1443618334Speter	* cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Likewise.
1443750397Sobrien	(CTOR_NAME): New.
1443852284Sobrien	(DTOR_NAME): New.
1443950397Sobrien	* decl.c (ctor_identifier): New.
1444018334Speter	(dtor_identifier): New.
1444150397Sobrien	(init_decl_processing): Set them.
1444218334Speter
1444350397SobrienMon Mar 18 18:00:51 1996  Mike Stump  <mrs@cygnus.com>
1444450397Sobrien
1444518334Speter	* typeck.c (build_component_ref): Don't get confused by fields whose
1444650397Sobrien	context has no type name, like pointer to member functions.
1444750397Sobrien
1444818334SpeterMon Mar 18 13:19:03 1996  Jason Merrill  <jason@yorick.cygnus.com>
1444950397Sobrien
1445050397Sobrien	* decl.c (grokdeclarator): Handle typedef without declarator.
1445118334Speter
1445250397Sobrien	* pt.c (tsubst): Handle SCOPE_REF in declarator.
1445318334Speter
1445450397Sobrien	* parse.y (bad_parm): Catch another case of missing `typename'.
1445550397Sobrien
1445618334Speter	* lex.c (yyprint): Handle TYPE_DECLs.
1445750397Sobrien
1445850397Sobrien	* decl.c (start_function): Don't try to be clever.
1445918334Speter
1446050397Sobrien	* lex.c: Lose compiler_error_with_decl.
1446118334Speter	* typeck2.c: Lose error_with_aggr_type.
1446250397Sobrien	(incomplete_type_error): Use cp_* instead of old functions.
1446350397Sobrien	(readonly_error): Likewise.
1446418334Speter	* typeck.c (convert_arguments): Likewise.
1446550397Sobrien	* search.c (lookup_nested_field): Likewise.
1446650397Sobrien	* method.c (make_thunk): Likewise.
1446718334Speter	* decl.c (grokparms): Likewise.
1446850397Sobrien	* cp-tree.h: Update.
1446918334Speter
1447050397Sobrien	* tree.c (min_tree_cons): Call copy_to_permanent for the purpose
1447150397Sobrien	and value.
1447250397Sobrien
1447350397SobrienMon Mar 18 11:25:52 1996  Bob Manson  <manson@beauty.cygnus.com>
1447418334Speter
1447550397Sobrien	* method.c (build_opfncall): When deleting a pointer to an
1447618334Speter	array, build a new pointer to the tree past any ARRAY_TYPE
1447750397Sobrien	nodes.
1447850397Sobrien
1447950397SobrienMon Mar 18 10:11:46 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1448018334Speter
1448150397Sobrien	* decl.c (lookup_name_real): Initialize local var TYPE to NULL_TREE.
1448250397Sobrien
1448318334SpeterFri Mar 15 11:03:57 1996  Jason Merrill  <jason@yorick.cygnus.com>
1448450397Sobrien
1448518334Speter	* pt.c (instantiate_decl): Only call import_export_decl if at_eof
1448650397Sobrien	and ! DECL_INLINE.
1448750397Sobrien
1448818334Speter	* decl.c (finish_function): Don't set nested based on
1448950397Sobrien	hack_decl_function_context.
1449018334Speter	* parse.y (function_try_block): Check for nested function.
1449150397Sobrien	(pending_inlines): Likewise.
1449250397Sobrien
1449350397Sobrien	* decl2.c (build_expr_from_tree): If a unary op already has a
1449418334Speter	type, just return it.
1449550397Sobrien
1449618334Speter	* decl2.c (finish_prevtable_vardecl): Use ADJUST_VTABLE_LINKAGE.
1449750397Sobrien
1449850397Sobrien	* decl2.c (walk_vtables): vardecl_fn returns int; return 1 if it does.
1449950397Sobrien	(finish_file): Check the return value of walk_vtables.
1450050397Sobrien	(finish_prevtable_vardecl): Return int.
1450118334Speter	(finish_vtable_vardecl): Likewise.
1450250397Sobrien	(prune_vtable_vardecl): Likewise.
1450318334Speter	* lex.c (set_vardecl_interface_info): Likewise.
1450450397Sobrien	* cp-tree.h: Adjust return types.
1450550397Sobrien
1450618334Speter	* class.c (delete_duplicate_fields_1): Don't complain about
1450750397Sobrien	duplicate nested types if they're the same type.
1450850397Sobrien	(finish_struct): Remove check for duplicate.
1450918334Speter	* decl2.c (grokfield): Don't check for typedef of anonymous type.
1451050397Sobrien
1451150397SobrienThu Mar 14 10:00:19 1996  Jason Merrill  <jason@yorick.cygnus.com>
1451250397Sobrien
1451350397Sobrien	* cp-tree.h: Lose SIGNATURE_GROKKING_TYPEDEF.
1451450397Sobrien
1451518334Speter	* decl.c (grokdeclarator): Lose special handling of class-level
1451650397Sobrien	typedef.  Lose SIGNATURE_GROKKING_TYPEDEF.  Set
1451750397Sobrien	SIGNATURE_HAS_OPAQUE_TYPEDECLS later.
1451818334Speter
1451950397Sobrien	* cvt.c (convert_pointer_to_real): Retain cv-quals in conversion.
1452018334Speter
1452150397Sobrien	* pt.c (tsubst_copy): Strip cv-quals from destructor name types.
1452250397Sobrien
1452318334Speter	* search.c (compute_access): Fix handling of anonymous union
1452450397Sobrien	members.
1452518334Speter	* class.c (finish_struct_anon): Propagate TREE_{PRIVATE,PROTECTED}
1452650397Sobrien	from anonymous unions to their members.
1452750397Sobrien
1452818334Speter	* typeck.c (build_x_function_call): For static member functions,
1452950397Sobrien	hand off to build_member_call.
1453050397Sobrien
1453118334SpeterWed Mar 13 14:03:34 1996  Jason Merrill  <jason@yorick.cygnus.com>
1453250397Sobrien
1453318334Speter	* typeck.c (build_component_ref): Handle OFFSET_REFs.
1453450397Sobrien
1453550397Sobrien	* init.c (expand_vec_init): Fix init == 0 case.
1453650397Sobrien
1453750397SobrienTue Mar 12 14:36:02 1996  Jason Merrill  <jason@yorick.cygnus.com>
1453850397Sobrien
1453950397Sobrien	* init.c (build_new): pedwarn about init and array new.
1454050397Sobrien	(expand_vec_init): Handle lists, use convert_for_initialization.
1454150397Sobrien
1454250397Sobrien	* typeck.c (convert_for_initialization): Pass LOOKUP_NO_CONVERSION
1454350397Sobrien	when converting to an aggregate type.
1454450397Sobrien	* cvt.c (cp_convert): Pass it through.
1454550397Sobrien
1454650397Sobrien	* typeck.c (build_conditional_expr): Handle user-defined
1454750397Sobrien	conversions to slightly different types.
1454850397Sobrien
1454950397Sobrien	* decl.c (grokdeclarator): Force an array type in a parm to be
1455050397Sobrien	permanent.
1455150397Sobrien
1455250397Sobrien	* decl2.c (do_using_directive): Sorry.
1455350397Sobrien	(do_namespace_alias): Likewise.
1455450397Sobrien	* lex.c (real_yylex): Warn about using the `namespace' keyword.
1455550397Sobrien
1455650397SobrienSun Mar 10 22:26:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
1455750397Sobrien
1455850397Sobrien	* parse.y (datadef): Move call to note_list_got_semicolon up.
1455950397Sobrien
1456050397SobrienFri Mar  8 11:47:26 1996  Mike Stump  <mrs@cygnus.com>
1456150397Sobrien
1456250397Sobrien	* tree.c (unsave_expr): Don't unsave, UNSAVE_EXPRs.
1456350397Sobrien
1456450397SobrienFri Mar  8 11:29:06 1996  Mike Stump  <mrs@cygnus.com>
1456550397Sobrien
1456650397Sobrien	* decl.c (cp_finish_decl): The exception regions have to be
1456750397Sobrien	nested, not overlapping.  We start the exception region for a
1456850397Sobrien	decl, after it has been fully built, and all temporaries for it
1456950397Sobrien	have been cleaned up.
1457050397Sobrien
1457150397SobrienThu Mar  7 17:46:06 1996  Mike Stump  <mrs@cygnus.com>
1457218334Speter
1457350397Sobrien	* tree.c (vec_binfo_member): Don't core dump if we have no bases.
1457418334Speter
1457550397SobrienThu Mar  7 14:11:49 1996  Jason Merrill  <jason@yorick.cygnus.com>
1457650397Sobrien
1457718334Speter	* tree.def: Add RETURN_INIT.
1457850397Sobrien	* pt.c (instantiate_decl): Handle RETURN_INIT.
1457918334Speter	* decl.c (store_return_init): Handle minimal_parse_mode.
1458050397Sobrien
1458118334Speter	* tree.c (cp_build_type_variant): Just return an error_mark_node.
1458250397Sobrien	* decl.c (make_typename_type): Don't try to get the file and line
1458318334Speter	of an identifier.
1458450397Sobrien	* typeck.c (comptypes): Handle TYPENAME_TYPE.
1458518334Speter
1458650397SobrienWed Mar  6 18:47:50 1996  Per Bothner  <bothner@kalessin.cygnus.com>
1458718334Speter
1458850397Sobrien	* decl.c (poplevel): Make sure we clear out and restore old local
1458918334Speter	non-VAR_DECL values by default when they go out of scope.
1459050397Sobrien
1459150397SobrienWed Mar  6 09:57:36 1996  Jason Merrill  <jason@yorick.cygnus.com>
1459250397Sobrien
1459350397Sobrien	* method.c (build_overload_value): Use DECL_ASSEMBLER_NAME in
1459450397Sobrien	referring to addresses of variables and functions.
1459550397Sobrien
1459650397Sobrien	* error.c (dump_expr): Support SIZEOF_EXPR.
1459750397Sobrien
1459850397Sobrien	* init.c (do_friend): Use the return value of check_classfn.
1459918334Speter
1460050397Sobrien	* typeck.c (convert_arguments): Call complete_type.
1460150397Sobrien
1460218334Speter	* method.c (hack_identifier): After giving an error, set value to
1460350397Sobrien	error_mark_node.
1460418334Speter
1460550397SobrienTue Mar  5 16:00:15 1996  Jason Merrill  <jason@yorick.cygnus.com>
1460650397Sobrien
1460750397Sobrien	* tree.c (hack_decl_function_context): Kludge around DECL_CONTEXT
1460818334Speter	lossage for local classes.
1460950397Sobrien	* cp-tree.h: Declare it.
1461018334Speter	* decl.c (lookup_name_real): Evil, painful hack for local classes.
1461150397Sobrien	(grokfndecl): Set DECL_CLASS_CONTEXT and DECL_NO_STATIC_CHAIN here.
1461218334Speter	Use hack_decl_function_context.
1461350397Sobrien	(grokdeclarator): Don't set DECL_NO_STATIC_CHAIN here.
1461418334Speter	(start_function): Use hack_decl_function_context.
1461550397Sobrien	(finish_function): Likewise.
1461650397Sobrien	* method.c (synthesize_method): Likewise.
1461718334Speter	* lex.c (process_next_inline): Likewise.
1461850397Sobrien	(do_pending_inlines): Likewise.
1461950397Sobrien	* decl2.c (finish_file): Unset DECL_STATIC_FUNCTION_P when we're
1462050397Sobrien	done with it.
1462150397Sobrien
1462218334SpeterMon Mar  4 22:38:39 1996  Gerald Baumgartner  <gb@alexander.cs.purdue.edu>
1462350397Sobrien
1462450397Sobrien	* sig.c (build_signature_pointer_or_reference_type): Align
1462518334Speter	signature pointers/references on 8-byte boundaries so they can be
1462650397Sobrien	grabbed 2 words at a time on a Sparc.
1462718334Speter
1462850397SobrienTue Mar  5 10:21:01 1996  Jason Merrill  <jason@yorick.cygnus.com>
1462950397Sobrien
1463050397Sobrien	* method.c (hack_identifier): Requiring a static chain is now a
1463150397Sobrien	hard error.
1463250397Sobrien	* decl.c (grokdeclarator): Set DECL_NO_STATIC_CHAIN on nested
1463350397Sobrien	functions.
1463450397Sobrien
1463518334SpeterMon Mar  4 20:03:33 1996  Jason Merrill  <jason@yorick.cygnus.com>
1463650397Sobrien
1463750397Sobrien	* init.c (build_offset_ref): Call complete_type.
1463850397Sobrien
1463950397Sobrien	* decl.c (pop_from_top_level): Always pop previous_class_type.
1464018334Speter
1464150397Sobrien	* parse.y: Handle multiple decls in a for-init-statement.
1464218334Speter	* pt.c (tsubst_expr): Likewise.
1464350397Sobrien
1464418334Speter	* pt.c (tsubst): Use tsubst_expr for the second operand of an
1464550397Sobrien	ARRAY_REF.
1464650397Sobrien
1464750397Sobrien	* decl.c (maybe_push_to_top_level): Don't save previous_class_type.
1464818334Speter	(poplevel_class): Set it here.
1464950397Sobrien	(pop_from_top_level): Pop it here if we're returning to class scope.
1465018334Speter	* class.c (pushclass): Don't set it here.
1465150397Sobrien
1465218334Speter	* decl.c (maybe_push_to_top_level): Save current_template_parms,
1465350397Sobrien	and clear it if !pseudo.
1465450397Sobrien	(pop_from_top_level): Restore it.
1465550397Sobrien
1465650397Sobrien	* decl2.c (finish_file): Push the dummy each time we walk the list
1465718334Speter	of vtables.
1465850397Sobrien
1465950397Sobrien	* error.c (dump_expr): Support LOOKUP_EXPR and actually do
1466018334Speter	something for CAST_EXPR.
1466150397Sobrien
1466218334SpeterMon Feb 19 14:49:18 1996  Rusty Russell  <rusty@adelaide.maptek.com.au>
1466350397Sobrien
1466418334Speter	* cvt.c (cp_convert): Warn about implicit conversion of the
1466550397Sobrien	address of a function to bool, as it is always true.
1466618334Speter
1466750397SobrienFri Feb 23 23:06:01 1996  Rusty Russell  <rusty@adelaide.maptek.com.au>
1466818334Speter
1466952284Sobrien	* typeck.c (c_expand_return): Fix warning for local externs returned.
1467050397Sobrien
1467118334SpeterMon Mar  4 15:03:11 1996  Jason Merrill  <jason@yorick.cygnus.com>
1467250397Sobrien
1467350397Sobrien	* tree.c (mapcar): Propagate const and volatile properly.
1467450397Sobrien
1467518334Speter	* typeck.c (complete_type): Be sure to instantiate the
1467650397Sobrien	MAIN_VARIANT of the type.
1467750397Sobrien
1467818334Speter	* method.c (synthesize_method): Class interface hackery does not
1467950397Sobrien	apply to synthesized methods.
1468050397Sobrien
1468118334SpeterMon Mar  4 14:05:23 1996  Jason Merrill  <jason@yorick.cygnus.com>
1468250397Sobrien
1468350397Sobrien	* pt.c (comp_template_args): Use comptypes rather than just
1468450397Sobrien	checking for TEMPLATE_TYPE_PARM equivalence.
1468518334Speter
1468650397Sobrien	* typeck.c (build_x_function_call): Call complete_type before
1468718334Speter	checking TYPE_OVERLOADS_CALL_EXPR.
1468850397Sobrien
1468918334SpeterMon Mar  4 18:48:30 1996  Manfred Hollstein   <manfred@lts.sel.alcatel.de>
1469050397Sobrien
1469118334Speter	* g++.c (main): Check also for new define ALT_LIBM.
1469250397Sobrien
1469318334SpeterFri Mar  1 13:09:33 1996  Jason Merrill  <jason@yorick.cygnus.com>
1469450397Sobrien
1469518334Speter	* pt.c (instantiate_class_template): If we don't have a pattern
1469650397Sobrien	yet, that's OK.
1469750397Sobrien	(coerce_template_parms): If we see a local class, bail.
1469850397Sobrien
1469950397Sobrien	* decl.c (grok_reference_init): Make sure there's a type before
1470018334Speter	checking its code.
1470150397Sobrien
1470218334Speter	* pt.c (do_function_instantiation): Avoid crashing on invalid decls.
1470350397Sobrien	(push_template_decl): Likewise.
1470418334Speter
1470550397Sobrien	* parse.y (named_class_head): Set
1470618334Speter	CLASSTYPE_TEMPLATE_SPECIALIZATION here if we have basetypes.
1470750397Sobrien
1470850397Sobrien	* decl.c (xref_tag): Diagnose redeclaration of template
1470950397Sobrien	type-parameter name.
1471018334Speter
1471150397Sobrien	* error.c (dump_type): Handle anonymous template type parms.
1471250397Sobrien
1471350397Sobrien	* pt.c (instantiate_template): Use TYPE_MAIN_DECL instead of
1471450397Sobrien	TYPE_STUB_DECL.
1471518334Speter	(coerce_template_parms): Likewise.
1471650397Sobrien
1471718334SpeterThu Feb 29 16:26:01 1996  Mike Stump  <mrs@cygnus.com>
1471850397Sobrien
1471950397Sobrien	* class.c (instantiate_type, case {ARRAY,INDIRECT}_REF,
1472018334Speter	case ADDR_EXPR): Don't modify rhs if a subinstantiation fails.
1472150397Sobrien
1472218334SpeterThu Feb 29 08:20:25 1996  Jason Merrill  <jason@yorick.cygnus.com>
1472350397Sobrien
1472450397Sobrien	* pt.c (instantiate_template): Take the MAIN_VARIANT of the type
1472518334Speter	before trying to get its STUB_DECL.
1472650397Sobrien	(coerce_template_parms): Likewise.
1472718334Speter
1472850397Sobrien	* parse.y (template_type_parm): If they didn't use 'class',
1472918334Speter	pretend they did after giving an error.
1473050397Sobrien
1473118334Speter	* pt.c (coerce_template_parms): Diagnose use of local class.
1473250397Sobrien
1473350397Sobrien	* decl.c (grok_reference_init): Use instantiate_type.
1473418334Speter
1473550397Sobrien	* error.c (dump_expr): Handle TEMPLATE_DECLs.
1473618334Speter
1473750397Sobrien	* parse.y (named_class_head): Diagnose mismatching types and tags.
1473850397Sobrien
1473950397Sobrien	* decl.c (pushdecl): Type decls and class templates clash with
1474050397Sobrien	artificial type decls, not hide them.
1474150397Sobrien
1474250397Sobrien	* decl.c (redeclaration_error_message): Diagnose redefinition of
1474350397Sobrien	templates properly.
1474450397Sobrien	(duplicate_decls): Diagnose disallowed overloads for template
1474550397Sobrien	functions, too.
1474650397Sobrien
1474750397Sobrien	* decl.c (start_decl): Call complete_type before checking for a
1474850397Sobrien	destructor.
1474950397Sobrien
1475050397Sobrien	* pt.c (tsubst): Use tsubst_expr on the elts of a VEC.
1475118334Speter
1475250397Sobrien	* decl.c (xref_tag): A TEMPLATE_TYPE_PARM is a match.
1475350397Sobrien
1475450397SobrienWed Feb 28 09:28:44 1996  Jason Merrill  <jason@yorick.cygnus.com>
1475550397Sobrien
1475650397Sobrien	* decl.c (grok_op_properties): Don't check for operator++(int) in
1475750397Sobrien	a template.
1475850397Sobrien
1475950397Sobrien	* tree.c (perm_manip): Return a copy of variable and function
1476050397Sobrien	decls with external linkage.
1476150397Sobrien
1476250397Sobrien	* tree.def: Change some of the min tree codes to type "1".
1476350397Sobrien	* pt.c (uses_template_parms): Handle 'e's, return 1 for LOOKUP_EXPRs.
1476450397Sobrien	* method.c (build_overload_int): Emit something arbitrary for
1476550397Sobrien	anything but an INTEGER_CST if we're in a template.
1476650397Sobrien
1476750397Sobrien	* decl.c (cp_finish_decl): Call complete_type before deciding
1476850397Sobrien	whether or not to lay out the decl.
1476950397Sobrien
1477050397Sobrien	* lex.c (do_identifier): Check for DECL_INITIAL before using it.
1477150397Sobrien
1477250397SobrienTue Feb 27 16:35:32 1996  Jason Merrill  <jason@yorick.cygnus.com>
1477350397Sobrien
1477450397Sobrien	* typeck2.c (build_x_arrow): Call complete_type.
1477550397Sobrien
1477650397Sobrien	* pt.c (add_pending_template): Broken out.
1477750397Sobrien	(lookup_template_class): If -fexternal-templates, call it for all
1477850397Sobrien	the methods of implemented types.
1477950397Sobrien	(instantiate_class_template): Instead of instantiating them here.
1478050397Sobrien	(instantiate_decl): Handle -fexternal-templates earlier.
1478150397Sobrien
1478250397SobrienTue Feb 27 15:51:32 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1478350397Sobrien
1478450397Sobrien	* search.c, lex.c, decl.c, class.c, cp-tree.h: Don't wrap the
1478550397Sobrien	memoized lookup stuff inside GATHER_STATISTICS.
1478650397Sobrien
1478750397SobrienTue Feb 27 10:38:08 1996  Jason Merrill  <jason@yorick.cygnus.com>
1478850397Sobrien
1478950397Sobrien	* decl.c (start_decl): Complain about array of incomplete type
1479050397Sobrien	here.
1479152284Sobrien	(grokdeclarator): Not here.
1479250397Sobrien
1479318334Speter	* parse.y (template_parm): Expand full_parm inline so we can set
1479450397Sobrien	the rule's precedence.
1479550397Sobrien
1479618334Speter	* pt.c (tsubst_expr): If we're in a template, just do tsubst_copy.
1479750397Sobrien	(tsubst): tsubst_expr the DECL_INITIAL of FIELD_DECLs.
1479818334Speter	* decl2.c (grokbitfield): Don't check for integer constant here.
1479950397Sobrien	* class.c (finish_struct_1): Check here.
1480018334Speter
1480150397Sobrien	* decl.c (define_label): Make the min decl go on permanent_obstack.
1480218334Speter
1480350397Sobrien	* pt.c (unify): Don't handle CONST_DECLs.
1480418334Speter	(uses_template_parms): Don't check DECL_INITIAL on a CONST_DECL.
1480550397Sobrien	(tsubst_copy): Likewise.
1480650397Sobrien
1480718334Speter	* lex.c (do_identifier): Do pull the DECL_INITIAL out of a
1480850397Sobrien	CONST_DECL for a template parm.
1480950397Sobrien
1481018334SpeterMon Feb 26 12:48:18 1996  Jason Merrill  <jason@yorick.cygnus.com>
1481150397Sobrien
1481218334Speter	* decl.c (grokdeclarator): Complain about array of incomplete type
1481350397Sobrien	here.
1481450397Sobrien	(start_decl_1): Not here.
1481518334Speter
1481650397Sobrien	* pt.c (tsubst): Handle pointer-to-function declarators.
1481750397Sobrien
1481818334Speter	* method.c (hack_identifier): If pedantic, diagnose local class
1481950397Sobrien	methods that require a static chain.
1482018334Speter
1482150397Sobrien	* decl.c (grok_op_properties): No longer static.
1482218334Speter	* cp-tree.h: Declare it.
1482350397Sobrien	* pt.c (tsubst): Call it for operators.
1482418334Speter	Use tsubst_copy for TREE_VECs.
1482550397Sobrien
1482650397Sobrien	* parse.y (template_arg): The expr has precedence like '>'.
1482750397Sobrien
1482818334SpeterFri Feb 23 14:51:52 1996  Jason Merrill  <jason@yorick.cygnus.com>
1482950397Sobrien
1483050397Sobrien	* pt.c (coerce_template_parms): Don't coerce an expression using
1483118334Speter	template parms.
1483250397Sobrien	(uses_template_parms): Also check DECL_INITIAL in CONST_DECLs.
1483350397Sobrien	(tsubst): Don't use build_index_2_type if the max_value uses template
1483418334Speter	parms.
1483550397Sobrien	* method.c (build_overload_int): Emit something arbitrary for an
1483650397Sobrien	expression using template parms.
1483718334Speter
1483850397Sobrien	* parse.y (template_close_bracket): New non-terminal to catch use
1483950397Sobrien	of '>>' instead of '> >' in template class names.
1484018334Speter	(template_type): Use it.
1484150397Sobrien	* Makefile.in (CONFLICTS): Causes one more r/r conflict.
1484218334Speter
1484350397Sobrien	* tree.def: Add CAST_EXPR.
1484450397Sobrien	* typeck2.c (build_functional_cast): Use CAST_EXPR instead of
1484550397Sobrien	CONVERT_EXPR for minimal_parse_mode.
1484618334Speter	* typeck.c (build_c_cast): Likewise.
1484750397Sobrien	* pt.c (tsubst_copy): Likewise.
1484818334Speter	* decl2.c (build_expr_from_tree): Likewise.
1484950397Sobrien	* error.c (dump_expr): Likewise.
1485050397Sobrien
1485118334SpeterFri Feb 23 10:36:46 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1485250397Sobrien
1485318334Speter	* except.c (SetTerminate, SetUnexpected): Put back global vars.
1485450397Sobrien	(init_exception_processing): Put back decl/init of
1485550397Sobrien	set_unexpected_fndecl and set_terminate_fndecl, needed to get the
1485650397Sobrien	fns from libstdc++.
1485718334Speter
1485850397Sobrien	* decl.c (struct binding_level): Delete ACCEPT_ANY bitfield.
1485950397Sobrien	(declare_uninstantiated_type_level, uninstantiated_type_level_p):
1486018334Speter	Delete unused fns.
1486150397Sobrien	* cp-tree.h (declare_uninstantiated_type_level,
1486218334Speter	uninstantiated_type_level_p): Delete prototypes.
1486350397Sobrien
1486418334SpeterThu Feb 22 19:36:15 1996  Jason Merrill  <jason@yorick.cygnus.com>
1486550397Sobrien
1486618334Speter	* pt.c (tsubst_expr): Add default return.
1486750397Sobrien
1486818334SpeterThu Feb 22 16:47:24 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1486950397Sobrien
1487050397Sobrien	* error.c (fndecl_as_string): Delete unused arg CNAME.
1487118334Speter	* sig.c (build_signature_table_constructor,
1487250397Sobrien	build_signature_method_call): Fix calls.
1487350397Sobrien
1487450397Sobrien	* class.c (the_null_vtable_entry): Delete var definition.
1487550397Sobrien	(init_class_processing): Delete tree the_null_vtable_entry init.
1487618334Speter	* decl.c (no_print_{functions, builtins}): Declare as static.
1487750397Sobrien	(__tp_desc_type_node): #if 0 var definition.
1487850397Sobrien	(init_type_desc): #if 0 init of __tp_desc_type_node.
1487918334Speter	(vb_off_identifier): Move var decl into init_decl_processing.
1488050397Sobrien	(current_function_assigns_this): Declare as static.
1488118334Speter	(int_ftype_ptr_ptr_int, void_ftype_ptr_int_int): Delete var decls.
1488250397Sobrien	(init_decl_processing): Delete init of void_ftype_ptr_ptr_int.
1488318334Speter	Move decls of string_ftype_ptr_ptr and int_ftype_string_string here.
1488450397Sobrien	* decl2.c (delete_sanity): Delete definition/mod of local var ELT_SIZE.
1488550397Sobrien	* init.c (BI_header_type, BI_header_size): Declare as static.
1488650397Sobrien	* pt.c (template_classes): Delete unused var.
1488750397Sobrien	(add_pending_template): Delete decl for non-existent fn.
1488850397Sobrien	(lookup_template_class): Delete vars CODE and TAG_CODE.
1488950397Sobrien	(instantiate_template): Delete unused var TARGS.
1489050397Sobrien	* cp-tree.h (vb_off_identifier, current_function_assigns_this):
1489150397Sobrien	Delete decls.
1489250397Sobrien	(__tp_desc_type_node): #if 0 var decl.
1489350397Sobrien	(fndecl_as_string): Fix prototype.
1489450397Sobrien
1489550397SobrienThu Feb 22 15:56:19 1996  Jason Merrill  <jason@yorick.cygnus.com>
1489650397Sobrien
1489750397Sobrien	* tree.def: Add GOTO_STMT.
1489850397Sobrien	* pt.c (tsubst_expr): Support goto and labels.
1489950397Sobrien	* decl.c (define_label): Support minimal parsing.
1490050397Sobrien	* parse.y (simple_stmt): Likewise.
1490150397Sobrien
1490250397SobrienThu Feb 22 15:30:12 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1490350397Sobrien
1490450397Sobrien	* xref.c (GNU_xref_member): Only define/set var I if
1490550397Sobrien	XREF_SHORT_MEMBER_NAMES is defined, to match when it's actually
1490650397Sobrien	used.
1490750397Sobrien	(GNU_xref_end_scope): Delete unused fifth arg TRNS.
1490850397Sobrien	(GNU_xref_end): Fix call.
1490950397Sobrien	* decl.c (poplevel, poplevel_class, finish_method): Fix calls.
1491050397Sobrien	* cp-tree.h (GNU_xref_end_scope): Fix prototype.
1491150397Sobrien
1491250397Sobrien	* tree.c (build_exception_variant): Delete unused vars I, A, T,
1491350397Sobrien	T2, and CNAME.
1491450397Sobrien	(layout_vbasetypes): Delete unused var NONVIRTUAL_VAR_SIZE.
1491550397Sobrien	(mapcar): Delete unused var CODE.
1491650397Sobrien	(build_cplus_new): Delete unused arg WITH_CLEANUP_P.
1491750397Sobrien	(break_out_cleanups): Fix call.
1491850397Sobrien	(bot_manip): Likewise.
1491950397Sobrien	* call.c (build_method_call): Likewise.
1492018334Speter	* cvt.c (build_up_reference, convert_to_reference, cp_convert):
1492150397Sobrien	Likewise.
1492218334Speter	* typeck.c (unary_complex_lvalue, build_modify_expr,
1492350397Sobrien	convert_for_initialization): Likewise.
1492450397Sobrien	* typeck2.c (build_functional_cast): Likewise.
1492518334Speter	* cp-tree.h (build_cplus_new): Fix prototype.
1492650397Sobrien
1492750397Sobrien	* repo.c (open_repo_file): Delete unused var Q.
1492850397Sobrien	(repo_compile_flags, repo_template_declared,
1492950397Sobrien	repo_template_defined, repo_class_defined, repo_inline_used,
1493018334Speter	repo_vtable_used, repo_tinfo_used): #if 0 unused fns.
1493150397Sobrien	(repo_get_id, repo_vtable_used): Declare as static.
1493218334Speter	* cp-tree.h (mark_{decl,class}_instantiated, finish_repo): Add
1493350397Sobrien	prototypes.
1493450397Sobrien
1493550397SobrienThu Feb 22 14:53:35 1996  Jason Merrill  <jason@yorick.cygnus.com>
1493618334Speter
1493750397Sobrien	* parse.y (pending_inlines): Add function_try_block case.
1493850397Sobrien
1493918334Speter	* pt.c (unify): Fix for template const parms.
1494050397Sobrien
1494118334SpeterThu Feb 22 13:24:15 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1494250397Sobrien
1494350397Sobrien	* lex.c (extract_interface_info): Delete forward decl.
1494450397Sobrien	(default_copy_constructor_body, default_assign_ref_body): Delete
1494518334Speter	decls for non-existent functions.
1494650397Sobrien	(synth_firstobj, inline_text_firstobjs): Delete unused vars.
1494718334Speter	(init_lex): Delete setting them.
1494850397Sobrien	(cons_up_default_function): Delete unused vars FUNC_BUF,
1494950397Sobrien	FUNC_LEN, and COMPLEX.  Delete code setting COMPLEX.  Delete old
1495018334Speter	#if 0'd synth code.
1495150397Sobrien	(toplevel, expression_obstack): Delete unused extern decls.
1495250397Sobrien	(tree_node_kind): Delete unused enum.
1495350397Sobrien	(tree_node_counts, tree_node_sizes): Wrap with #ifdef
1495450397Sobrien	GATHER_STATISTICS.
1495518334Speter	(tree_node_kind_names): Delete unused extern decl.
1495650397Sobrien	(synth_obstack): Delete unused var.
1495718334Speter	(init_lex): Don't set it.
1495850397Sobrien	(init_parse): Add decl before use.
1495918334Speter	(reduce_count): Only define #ifdef GATHER_STATISTICS && REDUCE_LENGTH.
1496050397Sobrien	(current_unit_{name, language}): Delete unused vars.
1496150397Sobrien	(check_newline): Don't bother setting them, just accept the #pragma.
1496250397Sobrien	* cp-tree.h (init_repo, peek_yylex): Add prototypes.
1496350397Sobrien	(current_unit_{name, language}): Delete decls.
1496450397Sobrien
1496550397Sobrien	* search.c: Wrap all of the memoized functions, macros, and
1496650397Sobrien	variables inside #ifdef GATHER_STATISTICS.
1496718334Speter	(lookup_field, lookup_fnfields): Likewise.
1496850397Sobrien	(init_search_processing): Likewise.
1496950397Sobrien	(reinit_search_statistics): Wrap whole function.
1497050397Sobrien	* lex.c (reinit_lang_specific): Wrap call to reinit_search_statistics.
1497150397Sobrien
1497218334Speter	* decl.c (finish_function): Only call pop_memoized_context if
1497350397Sobrien	GATHER_STATISTICS is defined.
1497450397Sobrien	(start_function): Likewise for push_memoized_context.
1497550397Sobrien	* class.c (pushclass, popclass): Likewise.
1497650397Sobrien
1497750397Sobrien	* cp-tree.h (CLASSTYPE_MTABLE_ENTRY): Move definition from here...
1497850397Sobrien	* search.c (CLASSTYPE_MTABLE_ENTRY): ... to here.
1497950397Sobrien
1498018334Speter	* cvt.c (cp_convert): Delete unused local var FORM.
1498150397Sobrien	* cp-tree.h (can_convert, can_convert_arg, real_lvalue_p): Add
1498218334Speter	prototypes.
1498350397Sobrien
1498450397SobrienThu Feb 22 13:19:44 1996  Jason Merrill  <jason@yorick.cygnus.com>
1498550397Sobrien
1498650397Sobrien	* pt.c (do_poplevel): Oops; really return what we get from
1498718334Speter	poplevel this time.
1498850397Sobrien
1498950397SobrienThu Feb 22 11:41:44 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1499050397Sobrien
1499150397Sobrien	* cp-tree.h (is_aggr_type): Add prototype.
1499250397Sobrien
1499318334Speter	* cp-tree.h ({push,pop}_cp_function_context): Add decls.
1499450397Sobrien	* method.c ({push,pop}_cp_function_context): Delete decls.
1499518334Speter	* except.c (start_eh_unwinder, end_eh_unwinder): Declare as void.
1499650397Sobrien	(SetUnexpected, SetTerminate): Delete unused vars.
1499718334Speter	(init_exception_processing): Don't set SetUnexpected or
1499850397Sobrien	SetTerminate.  Don't set SET_UNEXPECTED_FNDECL or SET_TERMINATE_FNDECL.
1499918334Speter	(output_exception_table_entry): Delete unused array LABEL.
1500050397Sobrien	(expand_internal_throw): Delete unused var PARAMS.
1500150397Sobrien	(expand_start_catch_block): Delete unused var CLEANUP.
1500250397Sobrien	(emit_exception_table): Delete unused var EH_NODE_DECL.
1500318334Speter	(expand_builtin_throw): Delete unused vars UNWIND_AND_THROW and
1500450397Sobrien	GOTO_UNWIND_AND_THROW.  Don't set them.
1500550397Sobrien	(end_eh_unwinder): Add top decl.
1500650397Sobrien	(pop_rtl_from_perm): Delete unused decl of PERMANENT_OBSTACK.
1500750397Sobrien	(exception_section, push_rtl_perm, do_function_call,
1500850397Sobrien	lang_interim_eh, push_eh_cleanup, eh_outer_context,
1500950397Sobrien	expand_end_eh_spec, end_eh_unwinder): Declare as static.
1501050397Sobrien	(saved_pc, saved_throw_type, saved_throw_value, saved_cleanup,
1501150397Sobrien	throw_used): Likewise.
1501250397Sobrien	* cp-tree.h (expand_end_eh_spec): Delete prototype.
1501350397Sobrien
1501450397Sobrien	* search.c (dfs_mark, dfs_mark_vtable_path,
1501550397Sobrien	dfs_unmark_vtable_path, dfs_mark_new_vtable,
1501650397Sobrien	dfs_unmark_new_vtable, dfs_clear_search_slot,
1501750397Sobrien	dfs_search_slot_nonempty_p, bfs_markedp, bfs_unmarkedp,
1501850397Sobrien	bfs_marked_vtable_pathp, bfs_unmarked_vtable_pathp,
1501950397Sobrien	bfs_marked_new_vtablep, bfs_unmarked_new_vtablep): #if 0 unused
1502050397Sobrien	functions.
1502150397Sobrien	(n_fields_searched, n_calls_lookup_field, n_calls_lookup_field_1,
1502250397Sobrien	n_calls_lookup_fnfields, n_calls_lookup_fnfields_1,
1502350397Sobrien	n_calls_get_base_type, n_outer_fields_searched, n_contexts_saved):
1502418334Speter	Only define #ifdef GATHER_STATISTICS.
1502550397Sobrien	(reinit_search_statistics): Only init some vars if GATHER_STATISTICS
1502618334Speter	is defined.
1502750397Sobrien	(vbase_decl): Delete var definition.
1502850397Sobrien	(init_search): Delete old decl.
1502950397Sobrien	(init_vbase_pointers): Delete building of VBASE_DECL, since it's
1503050397Sobrien	never actually used.
1503118334Speter	(expand_indirect_vtbls_init): Delete init of VBASE_DECL.
1503250397Sobrien	(get_base_distance_recursive): Delete unused fourth arg
1503318334Speter	BASETYPE_PATH.  Fix call .
1503450397Sobrien	(get_base_distance): Fix call.
1503550397Sobrien	(push_class_decls): Delete unused var ID.
1503650397Sobrien	(make_memoized_table_entry): Declare as static.
1503750397Sobrien	(breadth_first_search): Declare as static.
1503850397Sobrien	(tree_has_any_destructor_p): Declare as static.
1503950397Sobrien	(pop_class_decls): Delete unused arg pop_class_decls.
1504050397Sobrien	* class.c (popclass): Fix call to pop_class_decls.
1504118334Speter	* cp-tree.h (make_memoized_table_entry, breadth_first_search,
1504250397Sobrien	tree_has_any_destructor_p): Delete prototypes.
1504350397Sobrien
1504450397Sobrien	* rtti.c (build_ptmf_desc): Delete unused arg TYPE.
1504550397Sobrien	(build_t_desc): Fix call.  Delete unused vars ELEMS and TT.
1504650397Sobrien	(build_dynamic_cast): Delete unused local vars TMP1 and RETVAL.
1504750397Sobrien	(build_user_desc): Delete unused var T.
1504850397Sobrien	(build_class_desc): Delete unused vars T and OFF.
1504950397Sobrien	(build_t_desc): Delete unused var NAME_STRING.
1505050397Sobrien	(build_headof): Make static.
1505150397Sobrien	(get_bad_cast_node): Likewise.
1505250397Sobrien	(get_def_to_follow): Likewise.
1505350397Sobrien	* cp-tree.h (init_type_desc): Add prototype.
1505450397Sobrien	(build_headof): Remove prototype.
1505550397Sobrien
1505618334SpeterThu Feb 22 00:54:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
1505750397Sobrien
1505850397Sobrien	* pt.c (tsubst): Only look for matching decls at file scope for
1505950397Sobrien	non-member functions.
1506050397Sobrien
1506152284Sobrien	* call.c (build_scoped_method_call): Handle scoped destructor
1506250397Sobrien	calls in templates.
1506350397Sobrien
1506418334Speter	* decl.c (*_top_level): Also save previous_class_values.
1506550397Sobrien
1506618334Speter	* pt.c (tsubst_expr): Support do {} while loops.
1506750397Sobrien	* parse.y (simple_stmt): Likewise.
1506818334Speter	* tree.def: Likewise.
1506950397Sobrien
1507018334Speter	* method.c (build_overload_identifier): For a class nested in a
1507150397Sobrien	template class, don't mangle in the template parms from our
1507218334Speter	context.
1507350397Sobrien
1507450397Sobrien	* lex.c, cp-tree.h: Remove support for template instantiations in
1507550397Sobrien	the pending_inlines code.
1507650397Sobrien	* pt.c: Remove dead functions and unused arguments.
1507750397Sobrien	(uses_template_parms): TYPENAME_TYPEs always use template parms.
1507850397Sobrien	* parse.y: Stop passing anything to end_template_decl.
1507950397Sobrien	* tree.c (print_lang_statistics): Only print tinst info #ifdef
1508050397Sobrien	GATHER_STATISTICS.
1508150397Sobrien
1508250397SobrienWed Feb 21 16:57:33 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1508350397Sobrien
1508450397Sobrien	* init.c (expand_recursive_init{,_1}): Delete decls.
1508550397Sobrien	(sort_member_init): Delete unused var INIT.
1508650397Sobrien	(emit_base_init): Delete unused var X.
1508750397Sobrien	(build_offset_ref): Delete unused var CNAME.
1508850397Sobrien	(sort_member_init): Delete unused var FIELDS_TO_UNMARK.
1508950397Sobrien	(emit_base_init): Delete unused local var BASE.  Delete extern
1509052284Sobrien	decl of IN_CHARGE_IDENTIFIER.
1509150397Sobrien	(build_delete): Delete unused local var VIRTUAL_SIZE.
1509250397Sobrien
1509350397Sobrien	* init.c (build_vec_delete): Delete unused third arg ELT_SIZE.
1509418334Speter	(build_delete): Fix call.
1509550397Sobrien	* decl2.c (delete_sanity): Likewise.
1509650397Sobrien	* cp-tree.h (build_vec_delete): Update prototype.
1509750397Sobrien
1509850397Sobrien	* typeck.c (common_base_type): Delete unused var TMP.
1509950397Sobrien	(build_binary_op): Delete local var ARGS_SAVE.
1510050397Sobrien	(build_array_ref): Delete unused var ITYPE.
1510118334Speter	(c_expand_return): Delete unused var USE_TEMP.
1510250397Sobrien
1510350397Sobrien	* typeck.c (compexcepttypes): Delete unused arg STRICT.
1510450397Sobrien	(comptypes): Fix calls.
1510550397Sobrien	* decl.c (duplicate_decls): Likewise.
1510618334Speter	* cp-tree.h (compexcepttypes): Delete extra arg.
1510750397Sobrien
1510850397Sobrien	* decl2.c (check_classfn): Delete unused second arg CNAME.
1510918334Speter	* decl.c (start_decl, grokfndecl): Fix calls.
1511050397Sobrien	* init.c (do_friend): Likewise.
1511150397Sobrien	* cp-tree.h (check_classfn): Update prototype.
1511250397Sobrien
1511318334Speter	* cp-tree.h (signature_error, import_export_vtable,
1511450397Sobrien	append_signature_fields, id_in_current_class, mark_used,
1511518334Speter	copy_assignment_arg_p): Add decls.
1511650397Sobrien	* decl2.c (mark_used): Delete decl.
1511750397Sobrien
1511818334Speter	* class.c (n_*): Wrap with #ifdef GATHER_STATISTICS.
1511950397Sobrien
1512018334Speter	* class.c (get_vtable_entry): Disable unused function.
1512150397Sobrien	(doing_hard_virtuals): Delete unused static global var.
1512218334Speter	(finish_struct_1): Don't init DOING_HARD_VIRTUALS.
1512350397Sobrien	(prepare_fresh_vtable): Delete unused vars PATH and RESULT.
1512450397Sobrien	(overrides): Delete unused vars RETTYPE and BASE_RETTYPE.
1512550397Sobrien	(modify_one_vtable): Delete unused var OLD_RTTI.
1512650397Sobrien	(finish_struct_anon): Delete unused vars OFFSET and X.
1512750397Sobrien	(finish_struct_bits): Delete unused var METHOD_VEC.
1512850397Sobrien	(get_basefndecls): Delete unused var PURPOSE.  Delete unused
1512950397Sobrien	for-scope local variable METHODS.
1513050397Sobrien
1513150397Sobrien	* call.c (user_harshness): Delete unused/unneeded arg PARM.
1513250397Sobrien	(ideal_candidate): Delete unused args BASETYPE and PARMS.
1513350397Sobrien	(build_method_call): Delete unused args passed into ideal_candidate.
1513450397Sobrien	(build_overload_call_real): Likewise.  Delete unused var OVERLOAD_NAME.
1513550397Sobrien	* cp-tree.h (synthesize_method): Add decl.
1513650397Sobrien
1513750397Sobrien	* decl.c (note_level_for_for): Give void return type.
1513850397Sobrien	(pushdecl_nonclass_level): Likewise.
1513950397Sobrien	(finish_function): Delete unused vars VFIELDS and ALLOCATED_THIS.
1514050397Sobrien	(poplevel): Delete unused var IMPLICIT_TRY_BLOCK.
1514150397Sobrien	(suspend_binding_level): Delete unused var LEVEL.
1514250397Sobrien	(duplicate_decls): Delete unused var CTYPE.
1514318334Speter	(duplicate_decls): Delete unused var PREVIOUS_C_DECL.
1514450397Sobrien	(init_decl_processing): Delete unused vars FLOAT_ENDLINK and
1514550397Sobrien	PTR_ENDLINK.
1514650397Sobrien	(grokdeclarator): Delete unused var C.
1514750397Sobrien	(grokdeclarator): Delete unused var SIZE_VARIES.
1514850397Sobrien	(grokparms): Delete unused var SAW_VOID.
1514950397Sobrien	(start_function): Delete unused var OLDDECL.
1515050397Sobrien	(cplus_expand_expr_stmt): Delete unused var
1515150397Sobrien	REMOVE_IMPLICIT_IMMEDIATELY.
1515250397Sobrien
1515350397Sobrien	* cp-tree.h (pushdecl_nonclass_level): Fix prototype.
1515450397Sobrien
1515550397Sobrien	* Makefile.in (CONFLICTS): Update to 12 shift/reduce.
1515650397Sobrien
1515750397SobrienWed Feb 21 00:06:17 1996  Jason Merrill  <jason@yorick.cygnus.com>
1515850397Sobrien
1515950397Sobrien	* tree.c (build_min): Set TREE_COMPLEXITY to lineno.
1516050397Sobrien	(build_min_nt): Likewise.
1516150397Sobrien	* pt.c (do_pushlevel): Emit line note.
1516250397Sobrien	(do_poplevel): Return what we get from poplevel.
1516350397Sobrien	(tsubst_expr): Set lineno from TREE_COMPLEXITY in stmt nodes.
1516450397Sobrien	* parse.y: Use do_pushlevel and do_poplevel.
1516550397Sobrien	* cp-tree.h: Declare do_poplevel.
1516650397Sobrien
1516750397Sobrien	* cp-tree.h: Declare at_eof.
1516850397Sobrien	* decl.c (cp_finish_decl): Pass it to rest_of_decl_compilation.
1516950397Sobrien	* decl2.c (import_export_decl): Renamed from import_export_inline.
1517050397Sobrien	(finish_file): Call it to do interface handling for statics.
1517150397Sobrien	* pt.c (tsubst_copy): Call mark_used on variables and functions
1517250397Sobrien	used here.
1517318334Speter
1517450397Sobrien	* decl2.c (finish_file): Don't emit statics we can't generate.
1517550397Sobrien	* pt.c (instantiate_decl): Don't set interface on instantiations
1517650397Sobrien	we can't generate.
1517750397Sobrien
1517850397Sobrien	* cp-tree.h (struct tinst_level): Change 'classname' to 'decl'.
1517950397Sobrien	* tree.c (print_lang_statistics): Print max template depth.
1518050397Sobrien	* pt.c (push_tinst_level): Dump entire instantiation context.
1518150397Sobrien	(instantiate_class_template): Use it and pop_tinst_level.
1518250397Sobrien	(instantiate_decl): Likewise.
1518350397Sobrien
1518450397Sobrien	* call.c class.c cp-tree.h decl.c decl2.c error.c lex.c method.c
1518518334Speter	pt.c ptree.c tree.def: Remove all traces of UNINSTANTIATED_P_TYPE.
1518650397Sobrien
1518718334SpeterTue Feb 20 18:21:51 1996  Jason Merrill  <jason@yorick.cygnus.com>
1518850397Sobrien
1518950397Sobrien	* call.c class.c cp-tree.h cvt.c decl.c decl2.c error.c expr.c
1519018334Speter	init.c lex.c method.c parse.y pt.c repo.c search.c spew.c tree.c
1519150397Sobrien	tree.def typeck.c typeck2.c xref.c: Massive, systemic changes for
1519250397Sobrien	the new template implementation.
1519318334Speter
1519450397SobrienTue Feb 20 17:14:29 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1519518334Speter
1519650397Sobrien	* decl2.c (check_cp_case_value): Use STRIP_TYPE_NOPS.
1519750397Sobrien
1519850397SobrienThu Feb 15 18:44:42 1996  Mike Stump  <mrs@cygnus.com>
1519918334Speter
1520050397Sobrien	* decl.c (cp_finish_decl): Delay emitting the debug information for
1520150397Sobrien	a typedef that has been installed as the canonical typedef, if the
1520250397Sobrien	type has not yet been defined.
1520318334Speter
1520450397SobrienThu Feb 15 09:39:08 1996  Jason Merrill  <jason@yorick.cygnus.com>
1520550397Sobrien
1520650397Sobrien	* decl2.c (grokfield): Still call pop_nested_class for access decls.
1520750397Sobrien
1520850397SobrienWed Feb 14 17:30:04 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1520950397Sobrien
1521050397Sobrien	* decl.c (lookup_label): Call label_rtx.
1521118334Speter
1521250397Sobrien	* decl.c (make_binding_level): New function.
1521318334Speter	(pushlevel, pushlevel_class): Call it instead of explicit
1521452284Sobrien	duplicate calls to xmalloc.
1521550397Sobrien
1521650397Sobrien	* decl.c (init_decl_processing): Delete useless build_pointer_type
1521750397Sobrien	call.
1521850397Sobrien
1521950397Sobrien	* decl.c (float_ftype_float, ldouble_ftype_ldouble): Add definitions.
1522050397Sobrien	(sizet_ftype_string): Delete variable.
1522150397Sobrien	(init_decl_processing): Add built-in functions fabsf, fabsl,
1522218334Speter	sqrtf, sqrtl, sinf, sin, sinl, cosf, cos, cosl.  New local
1522350397Sobrien	variable strlen_ftype, used for strlen.
1522450397Sobrien
1522550397SobrienWed Feb 14 16:21:25 1996  Jason Merrill  <jason@yorick.cygnus.com>
1522650397Sobrien
1522718334Speter	* decl.c (push_to_top_level): Start from current_binding_level
1522850397Sobrien	again for now; the stl hacks depend on g++ being broken in this
1522950397Sobrien	way, and it'll be fixed in the template rewrite.
1523050397Sobrien
1523150397Sobrien	* tree.def: Add USING_DECL.
1523218334Speter	* decl2.c (do_class_using_decl): Implement.
1523350397Sobrien	(grokfield): Pass access decls off to do_class_using_decl instead of
1523450397Sobrien	grokdeclarator.
1523550397Sobrien	* error.c (dump_decl): Handle USING_DECLs.
1523650397Sobrien	* decl.c (grokdeclarator): Remove code for handling access decls.
1523718334Speter	* class.c (finish_struct_1): Adjust accordingly, treat using-decls
1523850397Sobrien	as access decls for now.
1523950397Sobrien	(finish_struct): Don't check USING_DECLs for other uses of the name.
1524050397Sobrien
1524150397Sobrien	* search.c (get_matching_virtual): Use cp_error_at.
1524218334Speter
1524350397SobrienWed Feb 14 10:36:58 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1524450397Sobrien
1524550397Sobrien	* typeck.c (comptypes): Default COMP_TYPE_ATTRIBUTES to 1, to
1524650397Sobrien	match c-typeck.c.
1524718334Speter	(self_promoting_args_p): Move the check that TYPE is non-nil
1524850397Sobrien	before trying to look at its main variant.
1524918334Speter	(unsigned_type, signed_type): Add checking of DI/SI/HI/QI nodes.
1525052284Sobrien
1525150397Sobrien	* cp-tree.h (DECL_WAITING_FRIENDS, SET_DECL_WAITING_FRIENDS):
1525250397Sobrien	Delete macros.
1525350397Sobrien	* init.c (xref_friend, embrace_waiting_friends): Delete functions.
1525450397Sobrien	(do_friend): Delete call to xref_friend.
1525550397Sobrien	* class.c (finish_struct_1): Delete call to embrace_waiting_friends.
1525650397Sobrien
1525750397Sobrien	* typeck.c (convert_sequence): #if 0 unused function.
1525850397Sobrien
1525950397Sobrien	* cp-tree.h (DECL_IN_MEMORY_P): New macro w/ the check that used to
1526018334Speter	be in decl_in_memory_p.
1526150397Sobrien	(decl_in_memory_p): Delete decl.
1526250397Sobrien	* expr.c (decl_in_memory_p): Delete fn.
1526350397Sobrien	* typeck.c (mark_addressable): Use DECL_IN_MEMORY_P.
1526450397Sobrien
1526550397Sobrien	* decl.c (cp_finish_decl): Use DECL_IN_MEMORY_P.
1526618334Speter
1526750397SobrienTue Feb 13 12:51:21 1996  Jason Merrill  <jason@yorick.cygnus.com>
1526850397Sobrien
1526950397Sobrien	* class.c (finish_struct_1): Check for a pure-specifier on a
1527050397Sobrien	non-virtual function here.
1527150397Sobrien
1527250397Sobrien	* decl2.c (grok_function_init): Don't check whether the function
1527350397Sobrien	is virtual here.
1527450397Sobrien	(grokfield): Don't call check_for_override here.
1527550397Sobrien
1527650397Sobrien	* decl.c (push_to_top_level): Start from inner_binding_level,
1527750397Sobrien	check class_shadowed in class levels.
1527850397Sobrien
1527950397SobrienMon Feb 12 17:46:59 1996  Mike Stump  <mrs@cygnus.com>
1528050397Sobrien
1528152284Sobrien	* decl.c (resume_level): Ignore things that don't have names, instead
1528218334Speter	of core dumping.
1528350397Sobrien
1528418334SpeterMon Feb 12 15:47:44 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1528550397Sobrien
1528618334Speter	* decl2.c (grokfield): Set DECL_VINDEX properly for FUNCTION_DECLs.
1528750397Sobrien
1528818334SpeterSat Feb 10 17:59:45 1996  Jason Merrill  <jason@yorick.cygnus.com>
1528950397Sobrien
1529050397Sobrien	* class.c (finish_struct_1): Set DECL_VINDEX properly on a
1529150397Sobrien	synthesized dtor.
1529250397Sobrien
1529350397Sobrien	* parse.y (complete_type_name): Bind global_scope earlier.
1529450397Sobrien	(complex_type_name): Likewise.
1529550397Sobrien	(qualified_type_name): Remove.
1529652284Sobrien
1529750397SobrienThu Feb  8 15:15:14 1996  Jason Merrill  <jason@yorick.cygnus.com>
1529850397Sobrien
1529950397Sobrien	* decl.c (grokfndecl): Move code that looks for virtuals in base
1530050397Sobrien	classes...
1530150397Sobrien	* class.c (check_for_override): ... to a new function.
1530250397Sobrien	(finish_struct_1): Call it.
1530318334Speter
1530450397Sobrien	* cp-tree.h: Declare warn_sign_compare.
1530550397Sobrien
1530650397Sobrien	* typeck.c (build_binary_op_nodefault): Check warn_sign_compare
1530718334Speter	rather than extra_warnings to decide whether to warn about
1530850397Sobrien	comparison of signed and unsigned.
1530950397Sobrien
1531050397Sobrien	* decl2.c (lang_decode_option): Handle warn_sign_compare.  -Wall
1531150397Sobrien	implies -Wsign-compare.  -Wall doesn't imply -W.
1531250397Sobrien
1531318334SpeterWed Feb  7 15:27:57 1996  Mike Stump  <mrs@cygnus.com>
1531450397Sobrien
1531550397Sobrien	* typeck.c (build_component_ref): Fix to handle anon unions in base
1531618334Speter	classes as well.
1531750397Sobrien
1531818334SpeterWed Feb  7 14:29:12 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1531950397Sobrien
1532050397Sobrien	* class.c (resolves_to_fixed_type_p): Delete code dealing with
1532150397Sobrien	a WITH_CLEANUP_EXPR, since we don't generate them any more.
1532250397Sobrien	* cvt.c (build_up_reference): Likewise.
1532318334Speter	* decl.c (grok_reference_init): Likewise.
1532450397Sobrien	(cp_finish_decl): Likewise.
1532518334Speter	* error.c (dump_expr): Likewise.
1532650397Sobrien	* tree.c (real_lvalue_p): Likewise.
1532718334Speter	(lvalue_p): Likewise.
1532850397Sobrien	(build_cplus_new): Likewise.
1532918334Speter	(unsave_expr_now): Likewise.
1533050397Sobrien	* typeck.c (unary_complex_lvalue, build_modify_expr,
1533150397Sobrien	c_expand_return): Likewise.
1533250397Sobrien
1533318334SpeterTue Feb  6 13:39:22 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1533450397Sobrien
1533518334Speter	Make the C++ front-end pay attention to attributes for structures.
1533650397Sobrien	* class.c (finish_struct): New argument ATTRIBUTES, passed down into
1533718334Speter	finish_struct_1.
1533850397Sobrien	(finish_struct_1): New argument ATTRIBUTES; call cplus_decl_attributes.
1533918334Speter	Take out old round_up_size use and setting the DECL_ALIGN possibly
1534050397Sobrien	using it.  Take out setting of TYPE_ALIGN to round_up_size, which
1534118334Speter	can override what the attribute set.
1534250397Sobrien	* cp-tree.h (finish_struct): Update prototype.
1534350397Sobrien	* parse.y (template_instantiate_once): Pass a NULL_TREE for the
1534450397Sobrien	attributes to finish_struct.
1534518334Speter	(structsp): For a CLASS decl, add maybe_attribute to rule and pass that
1534650397Sobrien	value down into finish_struct.
1534750397Sobrien	* Makefile.in (CONFLICTS): Switch to 7 shift/reduce conflicts.
1534818334Speter
1534950397SobrienTue Feb  6 13:12:15 1996  Per Bothner  <bothner@kalessin.cygnus.com>
1535050397Sobrien
1535150397Sobrien	* decl.c (poplevel):  Re-word dead for local handling.
1535250397Sobrien	(pushdecl):  Remove useless DECL_DEAD_FOR_LOCAL test.
1535350397Sobrien	(cp_finish_decl):  If is_for_scope, check for duplicates so
1535418334Speter	we can disable is_for_scope.  Otherwise, preserve_temp_slots.
1535550397Sobrien
1535618334Speter	* lex.c (do_identifier):  Use global binding in preference of
1535750397Sobrien	dead for local variable.
1535850397Sobrien
1535950397SobrienMon Feb  5 17:46:46 1996  Mike Stump  <mrs@cygnus.com>
1536018334Speter
1536150397Sobrien	* init.c (initializing_context): Handle anon union changes, the
1536250397Sobrien	context where fields of anon unions can be initialized now has to be
1536350397Sobrien	found by walking up the TYPE_CONTEXT chain.
1536450397Sobrien
1536550397SobrienFri Feb  2 14:54:04 1996  Doug Evans  <dje@charmed.cygnus.com>
1536650397Sobrien
1536750397Sobrien	* decl.c (start_decl): #ifdef out code to set DECL_COMMON
1536850397Sobrien	if ASM_OUTPUT{,_ALIGNED}_BSS is defined.
1536950397Sobrien	(obscure_complex_init): If bss is supported, always set
1537018334Speter	DECL_INITIAL to error_mark_node.
1537150397Sobrien
1537218334SpeterThu Feb  1 16:19:56 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1537350397Sobrien
1537418334Speter	* init.c (is_friend): Make sure there's a context before we see if
1537550397Sobrien	it's an aggr type.
1537650397Sobrien
1537750397SobrienThu Feb  1 15:44:53 1996  Mike Stump  <mrs@cygnus.com>
1537850397Sobrien
1537950397Sobrien	* init.c (is_friend): Classes are not friendly with nested classes.
1538018334Speter
1538150397SobrienThu Feb  1 15:27:37 1996  Doug Evans  <dje@charmed.cygnus.com>
1538250397Sobrien
1538350397Sobrien	* lex.c (check_newline): Pass last character read to HANDLE_PRAGMA,
1538450397Sobrien	and record its result.
1538550397Sobrien
1538618334SpeterThu Feb  1 09:27:01 1996  Mike Stump  <mrs@cygnus.com>
1538750397Sobrien
1538818334Speter	* class.c (finish_struct_anon): Switch around code to not move anon
1538950397Sobrien	union elements around, nor mess up their contexts, nor offsets,
1539050397Sobrien	instead we now build up the right number of COMPONENT_REFs for all
1539150397Sobrien	the anon unions that may be present at build_component_ref time.
1539250397Sobrien	* typeck.c (lookup_anon_field): New routine to handle field lookup
1539350397Sobrien	on fields without names.  We find them, based upon their unique type
1539418334Speter	instead.
1539550397Sobrien	* typeck.c (build_component_ref): Allow FIELD_DECL components.
1539618334Speter	Handle finding components in anonymous unions, and ensure that a
1539750397Sobrien	COMPONENT_REF is built for each level as necessary.
1539818334Speter
1539950397SobrienTue Jan 30 18:18:23 1996  Mike Stump  <mrs@cygnus.com>
1540050397Sobrien
1540118334Speter	* cvt.c (build_up_reference): Make the INDIRECT_BIND case come after
1540250397Sobrien	code that ensures that copy ctors are used if appropriate.
1540350397Sobrien
1540450397SobrienTue Jan 30 17:35:14 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1540518334Speter
1540650397Sobrien	* init.c (build_vec_delete): Only give an error if base isn't an
1540750397Sobrien	error_mark_node.
1540818334Speter
1540950397SobrienMon Jan 29 17:09:06 1996  Mike Stump  <mrs@cygnus.com>
1541018334Speter
1541150397Sobrien	* spew.c (do_aggr): `new struct S;' isn't a forward declaration.
1541250397Sobrien	(yylex): If we see `new', keep slurping.
1541318334Speter
1541450397SobrienThu Jan 25 18:31:36 1996  Mike Stump  <mrs@cygnus.com>
1541518334Speter
1541650397Sobrien	* class.c (finish_struct_1): Move code for handling anon unions...
1541718334Speter	(finish_struct_anon): to here.  Fixup so that we do the offset
1541850397Sobrien	calculations right, and so that the fields are physically moved to
1541918334Speter	the containers's chain.
1542050397Sobrien
1542150397SobrienThu Jan 25 18:27:37 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1542218334Speter
1542350397Sobrien	* decl.c (grokdeclarator): Avoid trying to get an operand off an
1542450397Sobrien	identifier node.
1542550397Sobrien
1542618334SpeterWed Jan 24 11:25:30 1996  Jim Wilson  <wilson@chestnut.cygnus.com>
1542750397Sobrien
1542818334Speter	* typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not
1542950397Sobrien	POINTER_SIZE to agree with expr.c.
1543050397Sobrien
1543150397SobrienThu Jan 25 13:01:23 1996  Mike Stump  <mrs@cygnus.com>
1543250397Sobrien
1543318334Speter	* search.c (lookup_field): Don't report ambiguities if protect is 0,
1543450397Sobrien	instead return NULL_TREE.
1543518334Speter
1543650397SobrienWed Jan 24 13:01:26 1996  Mike Stump  <mrs@cygnus.com>
1543750397Sobrien
1543850397Sobrien	* class.c (finish_struct_1): Call warn_hidden if we want warnings
1543918334Speter	about overloaded virtual functions.
1544050397Sobrien	(warn_hidden): New routine to warn of virtual functions that are
1544150397Sobrien	hidden by other virtual functions, that are not overridden.
1544218334Speter	(get_basefndecls): New routine, used by warn_hidden.
1544350397Sobrien	(mark_overriders): New routine, used by warn_hidden.
1544418334Speter	* search.c (get_matching_virtual): Remove old warning that just
1544550397Sobrien	isn't very useful.
1544650397Sobrien
1544718334SpeterTue Jan 23 12:26:10 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1544850397Sobrien
1544918334Speter	* decl.c (output_builtin_tdesc_entries): #if 0 the function definition.
1545050397Sobrien
1545150397Sobrien	* typeck.c (null_ptr_cst_p): Delete unused fn.
1545250397Sobrien	(build_function_call_maybe): Delete unused fn.
1545350397Sobrien
1545450397Sobrien	* expr.c (extract_init): #if 0 the code after unconditional return 0
1545550397Sobrien	for now.
1545650397Sobrien
1545750397Sobrien	Delete old cadillac code.
1545850397Sobrien	* edsel.c: Remove file.
1545950397Sobrien	* Make-lang.in (CXX_SRCS): Take edsel.c off the list.
1546050397Sobrien	* Makefile.in (CXX_OBJS): Delete edsel.o.
1546150397Sobrien	(edsel.o): Delete rule.
1546218334Speter	* cp-tree.h (flag_cadillac): Delete var decl.
1546350397Sobrien	* lang-options.h: Delete "-fcadillac" and "-fno-cadillac".
1546418334Speter	* decl2.c (flag_cadillac): Delete var definition.
1546550397Sobrien	(lang_decode_option): Delete handling of -fcadillac and -fno-cadillac.
1546650397Sobrien	(grokfield): Delete code depending on flag_cadillac.
1546750397Sobrien	(finish_anon_union): Likewise.
1546850397Sobrien	* class.c (finish_struct_1): Likewise.
1546950397Sobrien	(pushclass): Likewise.
1547050397Sobrien	(popclass): Likewise.
1547150397Sobrien	(push_lang_context): Likewise.
1547250397Sobrien	(pop_lang_context): Likewise.
1547350397Sobrien	* decl.c (init_decl_processing): Likewise.
1547450397Sobrien	(start_decl): Likewise.
1547550397Sobrien	(cp_finish_decl): Likewise.
1547650397Sobrien	(xref_tag): Likewise.
1547750397Sobrien	(finish_enum): Likewise.
1547818334Speter	(start_function): Likewise.
1547950397Sobrien	(finish_function): Likewise.
1548018334Speter	(finish_stmt): Likewise.
1548150397Sobrien	* lex.c (lang_init): Likewise.
1548250397Sobrien	(check_newline): Likewise.
1548350397Sobrien
1548450397Sobrien	* lex.c (do_pending_inlines): Delete synthesized method kludge.
1548518334Speter
1548650397Sobrien	Delete defunct, ancient garbage collection implementation.
1548750397Sobrien	* rtti.c: New file with the RTTI stuff from gc.c.
1548818334Speter	* gc.c: Removed file (moved the remaining stuff into rtti.c).
1548950397Sobrien	* Makefile.in (CXX_OBJS): Replace gc.o with rtti.o.
1549018334Speter	(rtti.o): New rule, replacing gc.o.
1549150397Sobrien	* Make-lang.in (CXX_SRCS): Replace gc.c with rtti.c.
1549250397Sobrien	* cp-tree.h: Delete gc-related fn decls.
1549350397Sobrien	(DECL_GC_OFFSET): Delete macro.
1549418334Speter	(flag_gc): Delete extern decl.
1549550397Sobrien	* decl.c (current_function_obstack_index): Delete var decl.
1549618334Speter	(current_function_obstack_usage): Delete var decl.
1549750397Sobrien	(start_function): Delete clearing of current_function_obstack_index
1549850397Sobrien	and current_function_obstack_usage.
1549950397Sobrien	(init_decl_processing): Delete code relying on -fgc.
1550050397Sobrien	Delete call to init_gc_processing.
1550118334Speter	(cp_finish_decl): Delete calls to build_static_gc_entry and
1550250397Sobrien	type_needs_gc_entry.  Delete gc code setting DECL_GC_OFFSET.
1550318334Speter	(store_parm_decls): Delete -fgc calls to cp_expand_decl_cleanup
1550450397Sobrien	and to expand_expr of a __gc_main call.
1550550397Sobrien	(maybe_gc_cleanup): Delete var decl.
1550618334Speter	(finish_function): Delete call to expand_gc_prologue_and_epilogue.
1550750397Sobrien	* decl2.c (flag_gc): Delete var decl.
1550818334Speter	(lang_f_options): Delete offering of -fgc.
1550950397Sobrien	(lang_decode_option): Delete -fgc and -fno-gc handling.
1551018334Speter	(get_temp_regvar): Delete gc code.
1551150397Sobrien	* init.c (build_new): Delete gc code.
1551218334Speter	* lex.c (init_lex): Delete checking of flag_gc.
1551350397Sobrien
1551450397Sobrien	* typeck.c (convert_arguments): Delete gc code.
1551518334Speter	(build_component_addr): Delete -fgc warning.
1551650397Sobrien	(build_modify_expr): Delete gc code.
1551718334Speter
1551850397Sobrien	* decl2.c (build_push_scope): Delete fn.
1551950397Sobrien	* cp-tree.h (build_push_scope): Delete decl.
1552050397Sobrien
1552150397Sobrien	* search.c (clear_search_slots): Delete fn.
1552250397Sobrien	* cp-tree.h (clear_search_slots): Delete decl.
1552350397Sobrien
1552450397Sobrien	* search.c (tree_needs_constructor_p): Delete fn.
1552550397Sobrien	* cp-tree.h (tree_needs_constructor_p): Delete decl.
1552650397Sobrien
1552750397Sobrien	* tree.c (id_cmp): Delete fn.
1552818334Speter
1552950397Sobrien	* tree.c (set_fnaddr_from_vtable_entry): Delete fn.
1553018334Speter	* cp-tree.h (set_fnaddr_from_vtable_entry): Delete decl.
1553150397Sobrien
1553250397Sobrien	* tree.c (decl_value_member): Delete fn.
1553318334Speter	* cp-tree.h (decl_value_member): Delete decl.
1553450397Sobrien
1553518334Speter	* tree.c (list_hash_lookup_or_cons): Delete fn.
1553650397Sobrien	* cp-tree.h (list_hash_lookup_or_cons): Delete decl.
1553750397Sobrien
1553818334Speter	* method.c (cplus_exception_name): Delete fn.
1553950397Sobrien	(EXCEPTION_NAME_{PREFIX, LENGTH}): Delete macros.
1554018334Speter
1554150397Sobrien	* spew.c (shift_tokens): Delete fn.
1554250397Sobrien
1554318334SpeterMon Jan 22 17:49:33 1996  Jason Merrill  <jason@yorick.cygnus.com>
1554450397Sobrien
1554518334Speter	* except.c (init_exception_processing): Pass 1 to needs_pop in calls
1554650397Sobrien	to cp_finish_decl.
1554750397Sobrien	* parse.y: Likewise.
1554850397Sobrien
1554950397SobrienMon Jan 22 17:34:29 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1555018334Speter
1555150397Sobrien	* tree.c (build_cplus_staticfn_type): Delete function definition;
1555218334Speter	never used.
1555350397Sobrien	* cp-tree.h (build_cplus_staticfn_type): Delete decl.
1555450397Sobrien
1555518334Speter	* tree.c (virtual_member): Delete function definition; never used.
1555650397Sobrien	* cp-tree.h (virtual_member): Delete decl.
1555718334Speter
1555850397SobrienFri Jan 19 18:03:14 1996  Mike Stump  <mrs@cygnus.com>
1555950397Sobrien
1556018334Speter	* typeck.c (build_component_ref): Handle getting vbase pointers
1556150397Sobrien	out of complex multiple inheritance better.
1556218334Speter
1556350397SobrienFri Jan 19 16:27:40 1996  Mike Stump  <mrs@cygnus.com>
1556450397Sobrien
1556518334Speter	* typeck.c (build_object_ref): Make sure we use the real type, not
1556650397Sobrien	any reference type.
1556718334Speter
1556850397SobrienFri Jan 19 16:01:47 1996  Mike Stump  <mrs@cygnus.com>
1556950397Sobrien
1557050397Sobrien	* tree.c (build_exception_variant): Don't create new types if we
1557150397Sobrien	don't have to, also build new types on the right obstack.
1557250397Sobrien
1557350397SobrienFri Jan 19 14:09:44 1996  Jason Merrill  <jason@yorick.cygnus.com>
1557450397Sobrien
1557550397Sobrien	* decl.c (store_bindings): Split out from push_to_top_level.
1557618334Speter	(push_to_top_level): Call it for b->type_shadowed on class binding
1557750397Sobrien	levels.
1557818334Speter
1557950397SobrienFri Jan 19 13:53:14 1996  Mike Stump  <mrs@cygnus.com>
1558018334Speter
1558150397Sobrien	* search.c (expand_upcast_fixups): Fix so that offsets stored in
1558250397Sobrien	vbase_offsets are always right.  Fixes a problem where virtual base
1558318334Speter	upcasting and downcasting could be wrong during conversions on this
1558450397Sobrien	during virtual function dispatch at ctor/dtor time when dynamic
1558550397Sobrien	vtable fixups for deltas are needed.  This only sounds easier than
1558618334Speter	it is.  :-)
1558750397Sobrien	(fixup_virtual_upcast_offsets): Change to reflect new calling
1558850397Sobrien	convention for expand_upcast_fixups.
1558950397Sobrien
1559050397SobrienFri Jan 19 12:23:08 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1559150397Sobrien
1559250397Sobrien	* decl2.c (grokbitfield): Strip the NOPs from WIDTH before we
1559350397Sobrien	check that it's usable as the bitfield width.
1559450397Sobrien
1559550397SobrienWed Jan 17 21:22:40 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1559650397Sobrien
1559750397Sobrien	* decl2.c (grokfield): Call cplus_decl_attributes with the attrlist.
1559850397Sobrien	Pass a null tree to grokdeclarator for its ATTRLIST arg, since it's
1559950397Sobrien	only ever used for functions in it.
1560050397Sobrien
1560150397SobrienWed Jan 17 12:10:38 1996  Jason Merrill  <jason@yorick.cygnus.com>
1560250397Sobrien
1560350397Sobrien	* parse.y (qualified_type_name): Use the TYPE_DECL, not the type.
1560450397Sobrien	(nested_type): Likewise.
1560550397Sobrien	(nested_name_specifier): Use lastiddecl.
1560650397Sobrien
1560750397Sobrien	* decl.c (grokdeclarator): Adjust accordingly.
1560850397Sobrien	* init.c (expand_member_init): Likewise.
1560950397Sobrien	* parse.y (base_class): Likewise.
1561050397Sobrien	* typeck2.c (build_functional_cast): Likewise.
1561150397Sobrien
1561250397Sobrien	* typeck2.c (build_functional_cast): Fill in name after we've
1561318334Speter	checked for non-aggr type.
1561450397Sobrien
1561518334SpeterWed Jan 17 10:18:01 1996  Mike Stump  <mrs@cygnus.com>
1561650397Sobrien
1561750397Sobrien	* decl2.c (warn_pointer_arith): Default to on.
1561850397Sobrien
1561950397SobrienTue Jan 16 12:45:38 1996  Jason Merrill  <jason@yorick.cygnus.com>
1562050397Sobrien
1562150397Sobrien	* lex.c (is_rid): New function.
1562250397Sobrien	* decl.c (grokdeclarator): Diagnose reserved words used as
1562350397Sobrien	declarator-ids.
1562450397Sobrien
1562550397SobrienTue Jan 16 11:39:40 1996  Jason Merrill  <jason@yorick.cygnus.com>
1562650397Sobrien
1562750397Sobrien	* tree.c (get_decl_list): Don't lose cv-quals.
1562850397Sobrien
1562950397Sobrien	* decl.c (grokdeclarator): Fix SCOPE_REF handling and diagnose
1563050397Sobrien	typespecs used as declarator-ids.
1563150397Sobrien
1563250397SobrienTue Jan 16 11:09:42 1996  Mike Stump  <mrs@cygnus.com>
1563350397Sobrien
1563450397Sobrien	* decl.c (poplevel): When poping a level, don't give a warning for
1563550397Sobrien	any subblocks that already exist.
1563650397Sobrien
1563750397SobrienTue Jan 16 00:25:33 1996  Jason Merrill  <jason@yorick.cygnus.com>
1563850397Sobrien
1563950397Sobrien	* typeck.c (build_object_ref): Finish what I started.
1564050397Sobrien
1564150397Sobrien	* parse.y (qualified_type_name): Don't check TYPE_BUILT_IN.
1564250397Sobrien
1564318334Speter	* decl2.c (constructor_name_full): Handle TEMPLATE_TYPE_PARMs.
1564450397Sobrien
1564550397Sobrien	* decl.c (grokdeclarator): Also accept TEMPLATE_TYPE_PARM as a
1564650397Sobrien	scope.
1564718334Speter
1564850397SobrienMon Jan 15 16:19:32 1996  Jason Merrill  <jason@yorick.cygnus.com>
1564950397Sobrien
1565018334Speter	* decl.c (xref_tag): Handle passing a type in directly.
1565150397Sobrien
1565250397Sobrien	* parse.y (qualified_type_name): Pull out the type.
1565318334Speter	(nested_type): Likewise.
1565450397Sobrien	Take types directly instead of as identifiers.
1565550397Sobrien	* call.c (build_scoped_method_call): Take types directly instead of
1565618334Speter	as identifiers.
1565750397Sobrien	* decl.c (xref_basetypes): Likewise.
1565818334Speter	* init.c (expand_member_init): Likewise.
1565950397Sobrien	(build_member_call): Likewise.
1566050397Sobrien	(build_offset_ref): Likewise.
1566118334Speter	* typeck2.c (build_scoped_ref): Likewise, remove bogus code.
1566250397Sobrien	* method.c (do_build_assign_ref): Likewise.
1566350397Sobrien	* decl.c (grokdeclarator): Handle a type appearing as the
1566418334Speter	declarator-id for constructors.
1566550397Sobrien	* method.c (do_build_copy_constructor): current_base_init_list now
1566650397Sobrien	uses the types directly, not their names.
1566718334Speter	* init.c (sort_base_init): Likewise.
1566850397Sobrien	(expand_member_init): Likewise.
1566950397Sobrien	* init.c (is_aggr_type): New function, like is_aggr_typedef.
1567018334Speter
1567150397SobrienMon Jan 15 08:45:01 1996  Jeffrey A Law  <law@cygnus.com>
1567218334Speter
1567350397Sobrien	* tree.c (layout_basetypes): Call build_lang_field_decl instead
1567418334Speter	of build_lang_decl if first arg is a FIELD_DECL.
1567550397Sobrien
1567650397SobrienThu Jan 11 14:55:07 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1567750397Sobrien
1567818334Speter	* decl.c (cp_finish_decl): Only clear TREE_USED if DECL_NAME is
1567950397Sobrien	non-empty.
1568018334Speter	* except.c (expand_start_catch_block): Set TREE_USED to avoid
1568150397Sobrien	warnings about the catch handler.
1568250397Sobrien
1568350397SobrienMon Jan  8 17:35:12 1996  Jason Merrill  <jason@yorick.cygnus.com>
1568418334Speter
1568550397Sobrien	* typeck.c (build_modify_expr): Use a COMPOUND_EXPR instead of
1568650397Sobrien	expand_target_expr.
1568718334Speter
1568850397SobrienThu Jan  4 12:30:32 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
1568918334Speter
1569050397Sobrien	Fix access control to use trees rather than integers.
1569150397Sobrien	* class.c (access_{default, public, protected, private,
1569218334Speter	default_virtual, public_virtual, private_virtual}_node): Add
1569350397Sobrien	definitions.
1569418334Speter	(init_class_processing): Do creation of those nodes.
1569550397Sobrien	* cp-tree.h (access_type): Delete enum decl.
1569650397Sobrien	(access_{default, public, protected, private, default_virtual,
1569718334Speter	public_virtual, private_virtual}_node): Add decls.
1569850397Sobrien	(compute_access): Change return type.
1569918334Speter	* search.c (compute_access): Have tree return type, instead of enum.
1570050397Sobrien	(lookup_field): Declare THIS_V and NEW_V to be tree nodes.
1570150397Sobrien	* lex.c (real_yylex): Use yylval.ttype for giving the value of the
1570218334Speter	access_* node for each of RID_{PUBLIC, PRIVATE, PROTECTED}.
1570350397Sobrien	* parse.y (VISSPEC): Make ttype rather than itype.
1570418334Speter	(base_class_access_list): Likewise.
1570550397Sobrien	* *.[cy]: Change all refs of `access_public' to `access_public_node',
1570650397Sobrien	etc.
1570750397Sobrien	* call.c (build_method_call): Make ACCESS be a tree.
1570818334Speter	* class.c (alter_access, finish_struct_1, filter_struct): Likewise.
1570950397Sobrien	* cvt.c (convert_to_aggr): Likewise.
1571018334Speter	* init.c (build_offset_ref, resolve_offset_ref, build_delete):
1571150397Sobrien	Likewise.
1571250397Sobrien	* method.c (hack_identifier): Likewise.
1571350397Sobrien	* typeck.c (build_component_ref_1, build_component_ref): ): Likewise.
1571450397Sobrien
1571550397SobrienThu Jan  4 11:02:20 1996  Mike Stump  <mrs@cygnus.com>
1571650397Sobrien
1571750397Sobrien	* typeck.c (pointer_int_sum, pointer_diff): Make code agree with C
1571850397Sobrien	frontend, and make it more consistent with respect to
1571918334Speter	warn_pointer_arith.
1572050397Sobrien
1572118334SpeterTue Jan  2 00:13:38 1996  Rusty Russell  <rusty@adelaide.maptek.com.au>
1572250397Sobrien
1572350397Sobrien	* decl.c (pushdecl): Check for duplicate parameter names.
1572418334Speter
1572550397SobrienWed Jan  3 09:25:48 1996  Mike Stump  <mrs@cygnus.com>
1572618334Speter
1572750397Sobrien	* decl.c (expand_static_init): Call assemble_external for atexit.
1572850397Sobrien
1572950397SobrienWed Jan  3 07:55:19 1996  Mike Stump  <mrs@cygnus.com>
1573018334Speter
1573150397Sobrien	* except.c (do_unwind): Remove some generated dead code.
1573218334Speter	(eh_outer_context): New routine, factor out some common code from
1573350397Sobrien	expand_builtin_throw and end_eh_unwinder.  Add code to do return
1573450397Sobrien	address masking for the PA.
1573550397Sobrien	(expand_builtin_throw): Use eh_outer_context instead of open coding
1573618334Speter	it here.
1573750397Sobrien	(end_eh_unwinder): Likewise.
1573850397Sobrien
1573950397SobrienTue Jan  2 17:00:56 1996  Mike Stump  <mrs@cygnus.com>
1574050397Sobrien
1574118334Speter	* except.c (expand_throw): Call assemble_external for __empty, if we
1574250397Sobrien	use it.
1574350397Sobrien
1574418334SpeterThu Dec 28 11:13:15 1995  Mike Stump  <mrs@cygnus.com>
1574550397Sobrien
1574618334Speter	* except.c (expand_builtin_throw): Use RETURN_ADDR_OFFSET instead of
1574750397Sobrien	NORMAL_RETURN_ADDR_OFFSET.
1574818334Speter	(end_eh_unwinder): Likewise.
1574950397Sobrien
1575018334SpeterWed Dec 27 22:18:16 1995  Mike Stump  <mrs@cygnus.com>
1575150397Sobrien
1575250397Sobrien	* gc.c (build_dynamic_cast): Make sure we don't cast away const
1575350397Sobrien	when dealing with references, and make sure we handle dynamic
1575418334Speter	casting to a cv qualified reference.
1575550397Sobrien
1575618334SpeterThu Dec 21 23:50:35 1995  Mike Stump  <mrs@cygnus.com>
1575750397Sobrien
1575818334Speter	* except.c (struct eh_context): New structure top hold eh context
1575950397Sobrien	information.
1576050397Sobrien	(push_eh_context): New routine.
1576118334Speter	(pop_eh_context): Likewise.
1576250397Sobrien	* decl.c (push_cp_function_context): Use them.
1576318334Speter	(pop_cp_function_context): Likewise.
1576450397Sobrien
1576550397SobrienWed Dec 20 12:42:51 1995  Jason Merrill  <jason@yorick.cygnus.com>
1576618334Speter
1576750397Sobrien	* decl2.c (finish_file): Also prune uninteresting functions in the
1576818334Speter	inline emission loop.
1576950397Sobrien
1577018334SpeterWed Dec 20 02:32:07 1995  Jeffrey A Law  <law@cygnus.com>
1577150397Sobrien
1577218334Speter	* sig.c (build_signature_table_constructor): Mark functions
1577350397Sobrien	in the signature as referenced.
1577418334Speter
1577550397SobrienTue Dec 19 22:36:56 1995  Jason Merrill  <jason@yorick.cygnus.com>
1577650397Sobrien
1577718334Speter	* decl2.c (finish_file): Do all the vtable/synthesis stuff before
1577850397Sobrien	the inline emission stuff.
1577918334Speter
1578050397SobrienMon Dec 18 15:51:33 1995  Jason Merrill  <jason@yorick.cygnus.com>
1578118334Speter
1578250397Sobrien	* cp-tree.h, decl2.c (flag_weak): New flag to control the use of
1578350397Sobrien	weak symbols.
1578450397Sobrien	* lang-options.h: Add -f{no-,}weak.
1578550397Sobrien	* decl.c (init_decl_processing): If the target does not support weak
1578650397Sobrien	symbols, don't use them.
1578750397Sobrien	* decl2.c, pt.c: s/SUPPORTS_WEAK/flag_weak/.
1578850397Sobrien
1578950397SobrienSun Dec 17 21:13:23 1995  Rusty Russell  <rusty@adelaide.maptek.com.au>
1579050397Sobrien
1579150397Sobrien	* init.c (expand_member_init): warning for base init after members.
1579250397Sobrien
1579350397SobrienFri Dec 15 15:32:18 1995  Jason Merrill  <jason@yorick.cygnus.com>
1579450397Sobrien
1579550397Sobrien	* cvt.c (build_expr_type_conversion): Don't convert to a reference
1579650397Sobrien	type.
1579750397Sobrien
1579850397SobrienThu Dec 14 16:05:58 1995  Mike Stump  <mrs@cygnus.com>
1579950397Sobrien
1580018334Speter	* method.c (report_type_mismatch): Improve wording for volatile
1580150397Sobrien	mismatches.
1580218334Speter
1580350397SobrienThu Dec 14 14:16:26 1995  Mike Stump  <mrs@cygnus.com>
1580450397Sobrien
1580518334Speter	* init.c (expand_aggr_init_1): Use expand_aggr_init_1 instead of
1580650397Sobrien	expand_assignment, as the later doesn't handle things that have
1580718334Speter	copy constructors well.  The compiler would do bitwise copying,
1580850397Sobrien	instead of ctor calling in some cases.
1580950397Sobrien
1581050397SobrienWed Dec 13 17:05:54 1995  Paul Eggert  <eggert@twinsun.com>
1581150397Sobrien
1581218334Speter	* g++.c (my_strerror): Return "cannot access" if errno is 0.
1581350397Sobrien	(pfatal_with_name, perror_exec): Don't assume that
1581418334Speter	the returned value from my_strerror contains no '%'s.
1581550397Sobrien	(concat): Remove.
1581650397Sobrien	(sys_nerror): Declare only if HAVE_STRERROR is not defined.
1581718334Speter
1581850397SobrienWed Dec 13 16:22:38 1995  Jason Merrill  <jason@yorick.cygnus.com>
1581918334Speter
1582050397Sobrien	Lose CLASSTYPE_METHODS/DECL_NEXT_METHOD chain; make
1582150397Sobrien	TYPE_METHODS/TREE_CHAIN mean what they used to.
1582250397Sobrien	* decl2.c (constructor_name_full): Refer to CLASSTYPE_METHOD_VEC
1582350397Sobrien	instead of TYPE_METHODS.
1582450397Sobrien	* decl.c (duplicate_decls): Lose references to DECL_NEXT_METHOD.
1582550397Sobrien	* tree.c (tree_copy_lang_decl_for_deferred_output): Likewise.
1582650397Sobrien	* cp-tree.h (CLASSTYPE_METHODS): Lose.
1582750397Sobrien	(CLASSTYPE_METHOD_VEC): Point to lang_spec->methods instead of
1582850397Sobrien	TYPE_METHODS.
1582950397Sobrien	(struct lang_decl): Lose next_method field.
1583050397Sobrien	(DECL_NEXT_METHOD): Lose.
1583150397Sobrien	* class.c (finish_struct_methods): Don't mess with TYPE_METHODS.
1583250397Sobrien	(finish_struct): Just use TYPE_METHODS; we don't need fn_fields
1583350397Sobrien	anymore.
1583450397Sobrien	(finish_struct_methods): Don't mess with the TREE_CHAINs in
1583550397Sobrien	fn_fields.
1583650397Sobrien
1583750397Sobrien	* search.c (add_conversions): Don't use TREE_CHAIN to traverse method
1583850397Sobrien	vector.
1583950397Sobrien
1584050397Sobrien	* call.c (build_method_call): Synthesize here even when not inlining.
1584150397Sobrien	* typeck.c (build_function_call_real): Likewise.
1584250397Sobrien
1584350397SobrienWed Dec 13 15:02:39 1995  Ian Lance Taylor  <ian@cygnus.com>
1584418334Speter
1584550397Sobrien	* cp/lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols
1584618334Speter	== DBX_DEBUG, call dbxout_start_new_source_file and
1584750397Sobrien	dbxout_resume_previous_source_file when appropriate.
1584850397Sobrien
1584950397SobrienTue Dec 12 20:38:55 1995  Mike Stump  <mrs@cygnus.com>
1585018334Speter
1585150397Sobrien	* except.c (start_anon_func): Push to the top level.
1585218334Speter	(end_anon_func): Pop from the top level.
1585350397Sobrien
1585418334SpeterMon Dec 11 18:56:14 1995  Mike Stump  <mrs@cygnus.com>
1585550397Sobrien
1585618334Speter	* cp-tree.h (build_cleanup): New routine to build cleanups.
1585750397Sobrien	* decl.c (expand_static_init): Use build_cleanup to build a cleanup
1585818334Speter	call at ctor time and use atexit to run it later.
1585950397Sobrien	* decl2.c (build_cleanup): New routine, taken from finish_file.
1586018334Speter	(finish_file): Use build_cleanup instead, and don't put function
1586150397Sobrien	local statics in global dtor list.
1586250397Sobrien
1586350397SobrienWed Dec  6 14:34:29 1995  Mike Stump  <mrs@cygnus.com>
1586450397Sobrien
1586550397Sobrien	* except.c (expand_throw): Ensure that we have cleanups, if we try
1586650397Sobrien	and expand cleanups.
1586750397Sobrien
1586818334SpeterWed Dec  6 11:48:21 1995  Mike Stump  <mrs@cygnus.com>
1586950397Sobrien
1587018334Speter	* except.c (expand_throw): Add logic to manage dynamic cleanups for
1587150397Sobrien	the EH object.
1587250397Sobrien	(expand_end_catch_block): Use the magic of expand_goto, instead of
1587318334Speter	emit_jump so that we get the cleanup for any catch clause parameter
1587450397Sobrien	and the cleanup for the exception object.  Update to reflect label
1587518334Speter	changes.
1587650397Sobrien	(push_eh_cleanup): New routine to register a cleanup for an
1587750397Sobrien	exception object.
1587850397Sobrien	(empty_fndecl): Used to default cleanup actions to
1587918334Speter	nothing.
1588050397Sobrien	(init_exception_processing): Setup empty_fndecl.  Setup
1588118334Speter	saved_cleanup.
1588250397Sobrien	(expand_start_catch_block): Update to reflect label changes.  Call
1588350397Sobrien	push_eh_object to register the cleanup for the EH object.
1588450397Sobrien	(start_anon_func): New routine to start building lambda expressions
1588518334Speter	from trees.
1588650397Sobrien	(end_anon_func): New routine to end them.
1588718334Speter	(struct labelNode): Change so that we can use tree labels, or rtx
1588850397Sobrien	labels.
1588950397Sobrien	(saved_cleanup): Object to check for dynamic cleanups for the
1589050397Sobrien	exception handling object.
1589150397Sobrien	(push_label_entry): Change so that we can use tree labels, or rtx
1589250397Sobrien	labels.
1589350397Sobrien	(pop_label_entry): Likewise.
1589418334Speter	(top_label_entry): Likewise.
1589550397Sobrien	(expand_start_all_catch): Use tree label instead of rtx label, so
1589618334Speter	that we can get the magic of expand_goto.
1589750397Sobrien	(expand_end_all_catch): Update to reflect label changes.
1589850397Sobrien
1589918334Speter	* class.c (build_vfn_ref): Remove building_cleanup logic, as we now
1590050397Sobrien	use UNSAVE_EXPRs.
1590118334Speter	* typeck.c (get_member_function_from_ptrfunc): Remove remnants of
1590250397Sobrien	building_cleanup logic, as we now use UNSAVE_EXPRs.
1590350397Sobrien	* cp-tree.h (unsave_expr): Declare it.
1590418334Speter	* decl.c (building_cleanup): Remove.
1590550397Sobrien	(maybe_build_cleanup): Remove building_cleanup logic, and use
1590618334Speter	UNSAVE_EXPR instead.
1590750397Sobrien
1590850397SobrienSun Dec  3 01:34:58 1995  Mike Stump  <mrs@cygnus.com>
1590918334Speter
1591050397Sobrien	* gc.c (build_t_desc): Update error message to say <typeinfo>.
1591118334Speter
1591250397SobrienThu Nov 30 12:30:05 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1591352284Sobrien
1591450397Sobrien	* decl.c (pushdecl): Only warn about shadowing a local variable if
1591550397Sobrien	warn_shadow is true.
1591650397Sobrien
1591750397SobrienSun Nov 26 16:06:55 1995  Rusty Russell  <rusty@adelaide.maptek.com.au>
1591818334Speter
1591950397Sobrien	* typeck.c (build_binary_op_nodefault): Added warning about
1592018334Speter	comparisons between different enum types with -Wall, unless
1592150397Sobrien	-fenum-int-equiv set.
1592218334Speter
1592350397SobrienWed Nov 22 15:44:02 1995  Mike Stump  <mrs@cygnus.com>
1592418334Speter
1592550397Sobrien	* class.c (finish_struct_1): Skip down to the inner type in
1592650397Sobrien	multidimensional arrays.  Ensures ctors will be made for types that
1592718334Speter	need constructing.
1592850397Sobrien
1592918334SpeterWed Nov 22 14:19:22 1995  Mike Stump  <mrs@cygnus.com>
1593050397Sobrien
1593150397Sobrien	* decl.c (last_dtor_insn): New to track the last compiler generated
1593218334Speter	insn in a dtor.
1593350397Sobrien	(store_parm_decls): Set it.
1593418334Speter	(finish_function): Use it to see if the dtor is empty.  Avoid doing
1593550397Sobrien	vtable setup all the time, if we can.
1593650397Sobrien	(struct cp_function): Add last_dtor_insn.
1593750397Sobrien	(push_cp_function_context): Save it.
1593850397Sobrien	(pop_cp_function_context): Restore it.
1593918334Speter
1594052284SobrienWed Nov 22 11:52:19 1995  Paul Russell  <Rusty.Russell@adelaide.maptek.com.au>
1594118334Speter
1594250397Sobrien	* typeck.c (build_unary_op): Set TREE_NO_UNUSED_WARNING to avoid
1594350397Sobrien	warnings.
1594450397Sobrien
1594550397SobrienTue Nov 21 17:15:23 1995  Mike Stump  <mrs@cygnus.com>
1594650397Sobrien
1594718334Speter	* typeck.c (expand_target_expr): Make sure targets get put into the
1594850397Sobrien	current temp_slot_level, so that the free_temp_slots call will reuse
1594918334Speter	them.
1595050397Sobrien
1595152284SobrienTue Nov 21 13:32:03 1995  Mike Stump  <mrs@cygnus.com>
1595250397Sobrien
1595350397Sobrien	* class.c (finish_struct_1): Delay delta fixups for virtual bases
1595450397Sobrien	until after we have done the hard virtuals, to avoid a bogus `every
1595550397Sobrien	virtual function must have a unique final overrider' for virtual
1595650397Sobrien	functions that are only overridden by hard virtuals.
1595750397Sobrien
1595850397SobrienThu Nov  9 13:35:30 1995  Jason Merrill  <jason@yorick.cygnus.com>
1595950397Sobrien
1596050397Sobrien	* pt.c (do_function_instantiation): Don't try to find a file-scope
1596150397Sobrien	template for a member function.
1596250397Sobrien
1596350397SobrienTue Nov 14 06:20:35 1995  Mike Stump  <mrs@cygnus.com>
1596450397Sobrien
1596550397Sobrien	* g++.c (main): Add handling of -nodefaultlibs.
1596618334Speter
1596750397SobrienMon Nov 13 15:45:34 1995  Mike Stump  <mrs@cygnus.com>
1596850397Sobrien
1596918334Speter	* cp-tree.h (INDIRECT_BIND): Add a way for the frontend to
1597050397Sobrien	distinguish between direct bindings of reference variables, and
1597150397Sobrien	indirect bindings of reference variables.
1597218334Speter	* cvt.c (build_up_reference): Use it.
1597350397Sobrien	* typeck.c (convert_arguments): Use it to indicate this is an
1597418334Speter	indirect binding.
1597550397Sobrien	* decl.c (cp_finish_decl): Ensure that we reuse stack slots as fast
1597650397Sobrien	as they are unused.
1597750397Sobrien	(expand_static_init): Likewise.
1597818334Speter	(cplus_expand_expr_stmt): Likewise.
1597950397Sobrien	* decl2.c (finish_file): Likewise.
1598018334Speter	* init.c (perform_member_init): Likewise.
1598150397Sobrien	(emit_base_init): Likewise.
1598250397Sobrien	(expand_aggr_vbase_init_1): Likewise.
1598318334Speter
1598450397SobrienFri Nov 10 09:18:09 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1598518334Speter
1598650397Sobrien	* decl.c (push_namespace): Rewrite to use build_lang_decl, so we
1598750397Sobrien	get a DECL_LANG_SPECIFIC node.
1598850397Sobrien	* cp-tree.h (lang_decl_flags): Add new member `level'.
1598950397Sobrien	(NAMESPACE_LEVEL): Don't use decl.arguments, instead use the
1599050397Sobrien	decl_flags level member.
1599150397Sobrien
1599252284SobrienMon Nov  6 18:36:13 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1599350397Sobrien
1599418334Speter	* call.c (build_method_call): Make sure instance has a
1599550397Sobrien	TYPE_LANG_SPECIFIC node before we dive into it.
1599650397Sobrien
1599718334SpeterSat Nov  4 20:01:52 1995  Jason Molenda  <crash@phydeaux.cygnus.com>
1599850397Sobrien
1599918334Speter	* method.c (make_thunk): Use TREE_SET_CODE to set thunk's tree code.
1600050397Sobrien
1600150397SobrienThu Nov  2 17:56:57 1995  Mike Stump  <mrs@cygnus.com>
1600250397Sobrien
1600350397Sobrien	* decl.c (duplicate_decls): When smashing decls, smash staticness in
1600450397Sobrien	the usual way.
1600550397Sobrien
1600650397SobrienThu Nov  2 16:44:02 1995  Mike Stump  <mrs@cygnus.com>
1600750397Sobrien
1600850397Sobrien	* decl.c (poplevel): Handle the merging of subblocks of cleanups
1600950397Sobrien	when finishing blocks that have already been created (usually due to
1601050397Sobrien	the fixup goto code).  Fixes bad debugging information.
1601150397Sobrien
1601250397SobrienWed Nov  1 12:33:53 1995  Jason Merrill  <jason@yorick.cygnus.com>
1601350397Sobrien
1601450397Sobrien	* method.c (hack_identifier): Don't abort when we get a TREE_LIST
1601550397Sobrien	that's not a list of overloaded functions.
1601650397Sobrien
1601750397SobrienWed Nov  1 11:38:58 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1601850397Sobrien
1601950397Sobrien	* decl2.c (mark_vtable_entries): Check DECL_LANG_SPECIFIC on fn
1602050397Sobrien	before trying to use DECL_ABSTRACT_VIRTUAL_P.
1602150397Sobrien
1602250397SobrienTue Oct 31 11:56:55 1995  Jason Merrill  <jason@yorick.cygnus.com>
1602350397Sobrien
1602450397Sobrien	* decl2.c (mark_used): New function for hooking into setting of
1602550397Sobrien	TREE_USED on decls.
1602650397Sobrien	* call.c (build_method_call): Use it.
1602750397Sobrien	* class.c (instantiate_type): Likewise.
1602818334Speter	* init.c (build_offset_ref): Likewise.  Don't call assemble_external
1602950397Sobrien	for all like-named functions.
1603050397Sobrien	* method.c (hack_identifier): Likewise.
1603152284Sobrien	(emit_thunk): Don't call assemble_external.
1603250397Sobrien	(make_thunk): Create thunk as a FUNCTION_DECL so that it
1603350397Sobrien	gets the right mode and ENCODE_SECTION_INFO works.
1603450397Sobrien
1603550397Sobrien	* parse.y: Use mark_used.  Pass operator names to do_identifier.
1603650397Sobrien	* lex.c (do_identifier): Handle operator names.
1603718334Speter
1603850397Sobrien	* decl2.c (grokclassfn): Tweak __in_chrg attributes.
1603918334Speter
1604050397SobrienThu Oct 26 16:45:58 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1604118334Speter
1604250397Sobrien	* errfn.c: Include stdio.h.
1604318334Speter	(cp_sprintf): Take out decl of sprintf, and cast sprintf to errorfn*.
1604450397Sobrien
1604550397SobrienWed Oct 25 18:58:41 1995  Mike Stump  <mrs@cygnus.com>
1604618334Speter
1604750397Sobrien	* typeck2.c (digest_init): Always convert initializers to the
1604818334Speter	right type.
1604950397Sobrien
1605050397SobrienWed Oct 25 13:25:24 1995  Mike Stump  <mrs@cygnus.com>
1605150397Sobrien
1605218334Speter	* init.c (member_init_ok_or_else): Don't allow member initializers
1605350397Sobrien	for indirect members, as it is invalid.
1605418334Speter
1605550397SobrienWed Oct 25 11:35:28 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1605650397Sobrien
1605750397Sobrien	* decl.c (grokdeclarator): Don't allow `friend signed ()'.
1605818334Speter
1605950397SobrienFri Oct 20 10:30:59 1995  Mike Stump  <mrs@cygnus.com>
1606018334Speter
1606150397Sobrien	* parse.y (for.init.statement): Catch compound statements inside for
1606250397Sobrien	initializations, if we're being pedantic.
1606350397Sobrien
1606450397SobrienFri Oct 20 10:03:42 1995  Mike Stump  <mrs@cygnus.com>
1606550397Sobrien
1606650397Sobrien	* decl.c (lookup_tag): Return NULL_TREE if we don't find what we are
1606750397Sobrien	looking for.
1606850397Sobrien
1606918334SpeterThu Oct 19 14:26:10 1995  Mike Stump  <mrs@cygnus.com>
1607050397Sobrien
1607118334Speter	* error.c (dump_expr): Don't core dump when a boolean expression is
1607250397Sobrien	used as a default argument.
1607350397Sobrien
1607418334SpeterThu Oct 19 10:36:30 1995  Jason Merrill  <jason@yorick.cygnus.com>
1607550397Sobrien
1607618334Speter	* class.c (finish_struct_bits): Check aggregate_value_p instead of
1607750397Sobrien	RETURN_IN_MEMORY.
1607850397Sobrien
1607950397SobrienWed Oct 18 18:12:32 1995  Jason Merrill  <jason@yorick.cygnus.com>
1608018334Speter
1608150397Sobrien	* class.c (finish_struct_bits): Also set TREE_ADDRESSABLE on a
1608218334Speter	BLKmode type that would otherwise be returned in registers.
1608350397Sobrien
1608450397SobrienMon Oct 16 12:32:19 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1608550397Sobrien
1608650397Sobrien	* g++.c (WITHLIBC): New macro.
1608718334Speter	(main): Declare saw_libc.  Use WITHLIBC if `-lc' was used; set
1608850397Sobrien	saw_libc and pass it at the end if it was set.
1608918334Speter
1609050397SobrienWed Oct 11 16:30:34 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1609150397Sobrien
1609218334Speter	* parse.y (fn.def1): Call split_specs_attrs in
1609350397Sobrien	declmods notype_declarator case.
1609418334Speter