diff options
Diffstat (limited to 'contrib/gcc/cp/ChangeLog')
-rw-r--r-- | contrib/gcc/cp/ChangeLog | 6220 |
1 files changed, 5613 insertions, 607 deletions
diff --git a/contrib/gcc/cp/ChangeLog b/contrib/gcc/cp/ChangeLog index 5102e32..82d1a8b 100644 --- a/contrib/gcc/cp/ChangeLog +++ b/contrib/gcc/cp/ChangeLog @@ -1,6 +1,1724 @@ -Sun Mar 14 02:38:07 PST 1999 Jeff Law (law@cygnus.com) +Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com) - * egcs-1.1.2 Released. + * gcc-2.95.1 Released. + +1999-08-12 Mark Mitchell <mark@codesourcery.com> + + * decl2.c (lang_decode_option): Deprecate signatures. + +1999-08-11 Martin v. Loewis <martin@mira.isdn.cs.tu-berlin.de> + + * lex.c (do_identifier): If we find a hidden type after a global + was selected already, continue using the global. + +1999-08-10 Martin v. Loewis <martin@mira.isdn.cs.tu-berlin.de> + + * decl2.c (set_decl_namespace): Do not complain about non-matching + decls if processing a template. + +1999-08-09 Jason Merrill <jason@yorick.cygnus.com> + + * parse.y (function_try_block): Call end_protect_partials + before expand_start_all_catch. + +1999-08-06 Jason Merrill <jason@yorick.cygnus.com> + + * pt.c (maybe_get_template_decl_from_type_decl): Make sure that + we're looking at a class. + + * decl.c (lookup_name_real): Set the complain flag if we're + looking for a namespace member. + + * decl.c (pushdecl): Only give an error for shadowing a parm + from *this* function. + + * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Only + build_expr_from_tree on the args of a TEMPLATE_ID_EXPR. + + * class.c (mark_overriders): Fix order of args to overrides. + (warn_hidden): Likewise. Fix for having virtual and non-virtual + functions with the same name. + + * cp-tree.h (DECL_VIRTUAL_CONTEXT): New macro. + * typeck.c (expand_ptrmemfunc_cst): Calculate delta correctly for + virtual functions and MI. Simplify. + + * typeck.c (c_expand_return): Downgrade pedwarn about returning NULL + from op new to warning. + + * decl2.c (reparse_absdcl_as_casts): Don't warn about old-style + casts in system headers or extern "C" blocks. + + * pt.c (do_decl_instantiation): Downgrade duplicate instantiation + errors to pedwarn. + + * error.c (dump_type_real): Handle TREE_LIST again. + + * typeck.c (comp_target_parms): Don't complain about + converting from () to (...) if !flag_strict_prototype. + + * class.c (instantiate_type): Downgrade errors for object-dependent + memfn refs to pedwarn. + +1999-08-06 Alexandre Oliva <oliva@dcc.unicamp.br> + + * pt.c (tsubst): Use build_index_type to build in-template array + index type. Fixes g++.oliva/dwarf1.C. + * decl.c (grokdeclarator): Likewise, just for consistency, as it + doesn't seem to trigger the bug without it. + +Thu Aug 5 02:40:42 1999 Jeffrey A Law (law@cygnus.com) + + * typeck2.c: Update URLs and mail addresses. + +1999-08-03 Mumit Khan <khan@xraylith.wisc.edu> + + * decl.c (start_decl): Set attributes before duplicate_decls call. + +Wed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com) + + * gcc-2.95 Released. + +Sun Jul 25 15:24:21 1999 Jeffrey A Law (law@cygnus.com) + + * g++FAQ.texi: Deleted per Joe Buck's request. + * Makefile.in: Corresponding changes. + +Sat Jul 17 23:50:47 1999 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (INTERFACE): Bump to 2. + +1999-07-17 Alexandre Oliva <oliva@dcc.unicamp.br> + + * typeck2.c (my_friendly_abort): Updated URL with bug reporting + instructions to gcc.gnu.org. Removed e-mail address. + +1999-07-15 Mark Mitchell <mark@codesourcery.com> + + * pt.c (check_default_tmpl_args): Handle friends defined in the + class just like member functions defined in the class. + +Thu Jul 15 01:26:49 1999 H.J. Lu <hjl@gnu.org> + + * decl.c (duplicate_decls): Relax restriction for exception + checks on duplicate symbols. + +1999-07-07 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (grokdeclarator): Update the names of all variants when + de-anonymizing. + +Wed Jul 7 01:26:47 1999 Alexandre Oliva <oliva@dcc.unicamp.br> + + * decl2.c (mark_vtable_entries): Fix check for rtti offset. + +1999-06-26 Richard Henderson <rth@cygnus.com> + + * decl.c (cp_finish_decl): Fix typo in cp_warning_at call. + +1999-06-21 Mark Mitchell <mark@codesourcery.com> + + * init.c (expand_aggr_vbase_init): Rename to + construct_virtual_bases. Conditionalize construction here, + rather than ... + (emit_base_init): Here. + +1999-06-19 Mark Mitchell <mark@codesourcery.com> + + * semantics.c (finish_asm_statement): Apply decay conversions to + input operands. + + * decl.c (expand_static_init): When building an anonymous function + for use with atexit, compute its body before and after entering + the function. + +1999-06-18 Mark Mitchell <mark@codesourcery.com> + + * init.c (expand_aggr_vbase_init): Add flag parameter. + (build_partial_cleanup_for): Remove, inlining into .. + (expand_cleanup_for_base): ... here. Take flag parameter. + (emit_base_init): Pass the in_chrg parameter to + emit_aggr_vbase_init. + (emit_aggr_vbase_init): Pass it to expand_cleanup_for_base. + +1999-06-16 Mark Mitchell <mark@codesourcery.com> + + * decl2.c (import_export_decl): Use same_type_p, rather than + relying on pointer-equality for types. + + * method.c (do_build_copy_constructor): Simplify. + + * call.c (build_method_call): Remove bogus code for two-argument + delete. + * init.c (build_new_1): Expand on comment, and remove dead code. + + * init.c (expand_cleanup_for_base): New function, split out + from ... + (emit_base_init): Here. + (expand_aggr_vbase_init): Use it. + +1999-06-15 Mark Mitchell <mark@codesourcery.com> + + * cp-tree.h (class_cache_firstobj): Declare. + (maybe_push_cache_obstack): Rename to push_cache_obstack. + * class.c (permanent_obstack): Remove declaration. + (class_cache_firstobj): Make it global. + (add_method): Don't use permanent_obstack directly. + (pushclass): Only free the class_cache_obstack if we know how far + back to free it. + (maybe_push_cache_obstack): Rename to push_cache_obstack. + * decl.c: Remove dead comment. + (saved_scope): Add class_cache_firstobj. + (push_to_top_level): Save it. + (pop_from_top_level): Restore it. + (push_class_level_binding): Use push_cache_obstack, not + maybe_push_cache_obstack. + * search.c (push_class_decls): Likewise. + +1999-06-14 Nathan Sidwell <nathan@acm.org> + + * call.c (build_new_op): Remove REF_BIND from all operands. + +1999-06-07 Mark Mitchell <mark@codesourcery.com> + + * search.c (convert_pointer_to_single_level): Reimplement without + using get_binfo. + +1999-06-06 Mark Mitchell <mark@codesourcery.com> + + * method.c (is_back_referenceable_type): Back-reference bools when + not squangling. + +1999-06-04 Jason Merrill <jason@yorick.cygnus.com> + + * semantics.c (finish_if_stmt_cond): Copy cond to permanent_obstack. + (finish_while_stmt_cond, finish_do_stmt, finish_for_cond): Likewise. + +1999-05-30 Mark Mitchell <mark@codesourcery.com> + + * lex.c (make_lang_type): Create TYPE_BINFO for + TEMPLATE_TYPE_PARMs just like for non-template types. + +1999-05-28 Nathan Sidwell <nathan@acm.org> + + * decl.c (complete_array_type): Allocate off same obstack. Fix + DO_DEFAULT comment to match reality. + +1999-05-22 Mark Mitchell <mark@codesourcery.com> + + * tree.c (mapcar): Handle NON_LVALUE_EXPR. + +1999-05-21 Mark Mitchell <mark@codesourcery.com> + + * typeck.c (build_ptrmemfunc): Handle PTRMEM_CSTs carefully to + reveal optimization opportunities. + +1999-05-20 Mark Mitchell <mark@codesourcery.com> + + * decl.c (grokdeclarator): Don't treat [] as indicating a + zero-sized array in a typedef. + + * call.c (build_object_call): Don't look at DECL_NAME for a type. + (pt.c): Or CP_TYPE_QUALS for an ERROR_MARK. + (typeck.c): Or TYPE_MAIN_VARIANT for a type. + +1999-05-20 Jason Merrill <jason@yorick.cygnus.com> + + * tree.c (lvalue_p_1): A NOP_EXPR can be an lvalue. + (build_cplus_new): Make sure that what we return is of the right type. + +1999-05-20 Mark Mitchell <mark@codesourcery.com> + + * cp-tree.h (make_ptrmem_cst): New function. + * expr.c (cplus_expand_constant): Split out from ... + (cplus_expand_expr): Here. Use cplus_expand_constant. + (init_cplus_expand): Set lang_expand_constant. + * pt.c (convert_nontype_argument): Use make_ptrmem_cst. + * tree.c (make_ptrmem_cst): Define. + * typeck.c (unary_complex_lvalue): Use make_ptrmem_cst. + * typeck2.c (initializer_constant_valid_p): Use make_ptrmem_cst. + +1999-05-19 Mark Mitchell <mark@codesourcery.com> + + * decl2.c (start_static_storage_duration_function): Fix comment. + (finish_file): Create static storage duration functions lazily. + +Wed May 19 02:50:53 1999 Arvind Sankar <arvinds@mit.edu> + + * gxxint.texi: Fix typo. + +1999-05-18 Jason Merrill <jason@yorick.cygnus.com> + + * call.c (joust): Compare the types of the conv ops, not the + target types of the conversions. + +Tue May 18 00:21:34 1999 Zack Weinberg <zack@rabi.phys.columbia.edu> + + * lang-specs.h: Define __GNUC__ and __GNUC_MINOR__ only if -no-gcc + was not given. + +1999-05-17 Mark Mitchell <mark@codesourcery.com> + + * cp-tree.def (TEMPLATE_ID_EXPR): Update documentation. + * decl.c (grokfndecl): Don't allow inline declarations of friend + template specializations, or friend template specializations with + default arguments. + * pt.c (tsubst): Handle substitution into array types that does + not yield a fixed upper bound, even when not processing a + template. + (tsubst_copy): Deal with the fact that the second operand to a + TEMPLATE_ID_EXPR may be NULL_TREE, a TREE_LIST, or a TREE_VEC. + * search.c (marked_pushdecls_p): Don't descend into + TEMPLATE_TYPE_PARMs and the like. + (unmarked_pushdecls_p): Likewise. + + * call.c (build_over_call): Don't throw away + initializations/copies of empty classes; use MODIFY_EXPR and + INIT_EXPR as for non-empty classes. + * class.c (finish_struct_1): Put the padding byte for an empty + class on the TYPE_NONCOPIED_PARTS list for the class. + +1999-05-16 Mark Mitchell <mark@codesourcery.com> + + * decl2.c (build_expr_from_tree): Handle COMPONENT_REFs that + indicate a reference to a field that is a qualified name. + +1999-05-16 Jason Merrill <jason@yorick.cygnus.com> + + * decl2.c (finish_objects): Don't use .?tors.* if we don't have + ASM_OUTPUT_CONSTRUCTOR. + + * friend.c (do_friend): Add attrlist arg. Remove support for + getting a non-decl as 'decl'. + * decl.c (grokfndecl): Remove attrlist arg. Don't set attrs or + rtl. + (grokdeclarator): Adjust. + * cp-tree.h: Adjust. + +1999-05-16 Mark Mitchell <mark@codesourcery.com> + + * cp-tree.h (permanent_p): New function. + * init.c (build_new_1): Use mapcar, not copy_node, to copy a + possibly complex tree node. + * tree.c (mapcar): Adjust comments, and follow coding standards in + conditional. + (permanent_p): New function. + +1999-05-13 Per Bothner <bothner@cygnus.com> + + * class.c (push_lang_context): Turn off DECL_IGNORED_P for + primitive Java types, if we actually see `extern "Java"'. + +1999-05-10 18:21 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu> + + * lang-specs.h: Pass -$ to the preprocessor. + +1999-05-10 Jason Merrill <jason@yorick.cygnus.com> + + * init.c (build_offset_ref): Wrap baselinks in OFFSET_REF, too. + Don't bother wrapping an OFFSET_TYPE around unknown_type_node. + (resolve_offset_ref): Don't handle a raw baselink. + * cvt.c (build_expr_type_conversion): Likewise. + * typeck.c (decay_conversion, build_c_cast, convert_for_assignment, + convert_for_initialization): Likewise. + * class.c (instantiate_type): Handle seeing a baselink under an + OFFSET_REF. + * error.c (dump_expr): Likewise. + * pt.c (for_each_template_parm): Likewise. + (resolve_overloaded_unification): Likewise. + * tree.c (is_overloaded_fn, really_overloaded_fn): Likewise. + * typeck.c (expr_sizeof): Also complain about other permutations + of overloaded functions. + +1999-05-07 Jason Merrill <jason@yorick.cygnus.com> + + * init.c (resolve_offset_ref): Don't return a raw method. + Use BASELINK_P. + * typeck.c (decay_conversion): Don't handle a raw method. + Resolve all OFFSET_REFs. + (get_member_function_from_ptrfunc): 0 is a valid vtable index. + (build_binary_op_nodefault): Handle resolving overloaded fns. Use + same_type_p for pmf bits. Don't use build_binary_op to compare + raw pointers to methods. + (convert_for_assignment): Check for OFFSET_REF, not OFFSET_TYPE, + to decide when to call resolve_offset_ref. + (build_c_cast, convert_for_initialization): Likewise. + * cvt.c (build_expr_type_conversion): Likewise. + +1999-05-06 Nathan Sidwell <nathan@acm.org> + + * call.c (build_new_method_call): Use TYPE_MAIN_VARIANT of class. + +1999-05-05 Mark Mitchell <mark@codesourcery.com> + + * decl2.c (start_objects): Don't let static constructors and + destructors get inlined. + + * parse.y (nested_name_specifier): Make sure ordinary types are + complete, just like template types. + * parse.c: Regenerated. + + * pt.c (check_explicit_specialization): Improve error messages. + +1999-05-04 Martin von Löwis <loewis@informatik.hu-berlin.de> + + * typeck.c (string_conv_p): Use same_type_p to check whether we + try to convert between char and wchar_t. + +1999-05-03 Mark Mitchell <mark@codesourcery.com> + + * search.c (lookup_field_r): Set the TREE_TYPE of an ambiguous + lookup to error_mark_node here. + (lookup_member): Revise documentation. Add comments. Don't set + the TREE_TYPE to error_mark_node here, and don't build up an extra + TREE_LIST for ambiguous lookups. + (setup_class_bindings): Adjust accordingly. + (push_class_decls): Revise out-of-date comments. + + * typeck.c (build_const_cast): Tighten checks for legality. + +1999-05-02 Martin von Löwis <loewis@informatik.hu-berlin.de> + + * init.c (build_member_call): Lookup names coming from + namespace-scoped LOOKUP_EXPR. + +1999-05-03 Jim Blandy <jimb@zwingli.cygnus.com> + + * gxxint.texi: Add documentation for 'I'. + +1999-05-02 Martin von Löwis <loewis@informatik.hu-berlin.de> + + * tinfo.cc (operator==): Qualify type_info with std::. + +1999-05-02 Mark Mitchell <mark@codesourcery.com> + + * cp-tree.h (lang_decl_flags): Remove comdat. Updated dummy. + (DECL_COMDAT): Remove definition. + +1999-05-01 Mark Mitchell <mark@codesourcery.com> + + * decl.c (wrapup_globals_for_namespace): Fix thinko in previous + change. + +1999-04-30 Mark Mitchell <mark@codesourcery.com> + + * class.c (build_vtable): Use build_lang_decl when building + vtables, not just build_decl. + (prepare_fresh_vtable): Likewise. + * decl.c (wrapup_globals_for_namespace): Mark vtables as + DECL_EXTERNAL when calling wrapup_global_declarations. + * decl2.c (priority_info_s): Add initializations_p and + destructions_p members. + (finish_vtable_vardecl): Use TREE_SYMBOL_REFERENCED, not TREE_USED, + when deciding what vtables to write out. + (ssdf_decls): New variable. + (ssdf_decls_used): Likewise. + (start_static_storage_duration_function): Deal with being called + multiple times. Avoid inlining this function. + (generate_inits_for_priority): Deal with reuse of priority map. + (get_priority_info): Clear initializations_p and destructions_p. + (do_static_initialization): Tweak comment. + (do_static_destruction): Likewise. Fix condition on sentries for + destruction. + (generate_ctor_or_dtor_function): Call all of the static storage + duration functions. + (generate_ctor_or_dtor_function_for_priority): Check + initializations_p and destructions_p to see what priorities need + initialization functions. + (finish_file): Rework to generate multiple static storage duration + functions, rather than just one. + + * typeck.c (build_const_cast): Tweak last change to handle + templates correctly. + + * typeck.c (build_const_cast): Disallow use of const_cast to + anything but a pointer or reference type. + +1999-04-30 Nathan Sidwell <nathan@acm.org> + + * decl.c (cp_finish_decl): Don't permit arrays of abstract or + signature type. + +1999-04-29 Mark Mitchell <mark@codesourcery.com> + + * decl2.c (do_static_destruction): Remove obsolete FIXME comment. + (finish_file): Indent comments properly. + +1999-04-29 Richard Henderson <rth@cygnus.com> + + * decl2.c (do_static_initialization): Call do_pending_stack_adjust. + (do_static_destruction): Likewise. + +1999-04-29 Nathan Sidwell <nathan@acm.org> + + * cp-tree.h (TYPE_NOTHROW_P): New macro. + * decl2.c (delete_sanity): Warn on deleting void *. + * init.c (build_new_1): Use TYPE_NOTHROW_P. + * typeck.c (c_expand_return): cp_pedwarn on returning NULL from + throwing operator new. + +1999-04-28 Nathan Sidwell <nathan@acm.org> + + * cp-tree.h (build_component_addr): Remove prototype. + * typeck.c (build_component_addr): Make static. Remove MSG + argument. + (build_component_addr): Remove MSG parameter, clean up + comment. + (build_x_function_call): Use cp_error. + (build_unary_op): Adjust call of build_component_addr. + +1999-04-28 Mark Mitchell <mark@codesourcery.com> + + * pt.c (tsubst_friend_class): Check for NULL. + +Wed Apr 28 11:42:22 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * search.c (binfo_for_vtable): Initialize bfvi.var. + +1999-04-27 Nathan Sidwell <nathan@acm.org> + + * rtti.c (build_x_typeid): Check rtti is enabled. + +1999-04-26 Mark Mitchell <mark@codesourcery.com> + + * search.c (is_subobject_of_p): Make sure we're looking at the + right baseclasses. + +1999-04-26 Marc Espie <espie@cvs.openbsd.org> + + * Make-lang.in (cplib2.ready): Don't depend on phony targets. + +1999-04-23 Mark Mitchell <mark@codesourcery.com> + + * decl2.c (finish_file): Tweak handling of extern inlines so that + they are not unnecessarily put out. + + * search.c (is_subobject_of_p): Handle TEMPLATE_TYPE_PARMs and + such as base classes. + +1999-04-22 Brendan Kehoe <brendan@cygnus.com> + + * tree.c (build_exception_variant): Fix typo: use the chain of U, + not trying V, while cycling through U. + +1999-04-22 Mark Mitchell <mark@codesourcery.com> + + * cp-tree.h (lang_decl_flags): Remove returns_first_arg and + preserves_first_arg. Enlarge dummy accordingly. + (DECL_TINFO_FN_P): New macro. + (SET_DECL_TINFO_FN_P): Likeiwse. + (DECL_RETURNS_FIRST_ARG): Remove. + (DECL_PRESERVES_THIS): Likewise. + (DECL_INIT_PRIORITY): New macro. + (finish_struct_1): Change prototype. + (cat_namespace_levels): Remove prototype. + (vtable_decl_p): New prototype. + (vtype_decl_p): Likewise. + (sigtable_decl_p): Likewise. + (walk_globals_pred): New typedef. + (walk_globals_fn): Likewise. + (walk_globals): New prototype. + (walk_namespaces_fn): New typedef. + (walk_namespaces): New prototype. + (wrapup_globals_for_namespace): Likewise. + (walk_vtables): Remove prototype. + (walk_sigtables): Likewise. + (instantiate_pending_templates): New prototype. + * class.c (finish_struct_1): Don't return a value. + * decl.h (pending_statics): Remove declaration. + * decl.c (walk_namespaces_r): New function. + (walk_globals_r): Likewise. + (vtable_decl_p): Likewise. + (vtype_decl_p): Likewise. + (sigtable_decl_p): Likewise. + (walk_namespaces): Likewise. + (walk_globals_data): New type. + (walk_globals): New function. + (wrapup_globals_for_namespace): Likewise. + (expand_static_init): Remove assertion. Remove redundancy in + conditional. Don't put static data members in static_aggregates + Tidy. + (finish_function): Remove redundancy in conditional. Don't set + DECL_RETURNS_FIRST_ARG. + (cat_namespace_levels): Remove. + * decl2.c: Include splay-tree.h and varray.h. + (priority_info_s): New structure. + (finish_vtable_vardecl): Change prototype. Adjust for new calling + conventions. + (prune_vtable_vardecl): Likewise. + (finish_sigtable_vardecl): Likewise. + (setup_initp): Remove. + (do_dtors): Remove. + (do_ctors): Remove. + (start_static_storage_duration_function): New function. + (generate_inits_for_priority): Likewise. + (finish_static_storage_duration_function): Likewise. + (get_priority_info): Likewise. + (do_static_initialization): Likewise. + (do_static_destruction): Likewise. + (do_static_initialization_and_destruction): Likewise. + (generate_ctor_or_dtor_function): Likewise. + (generate_ctor_and_dtor_functions_for_priority): Likewise. + (pending_statics): Make it a varray. + (pending_statics_used): New variable. + (saved_inlines): Make it a varray. + (saved_inlines_used): New variable. + (finish_static_data_member): Change method of updating + pending_statics. + (mark_inline_for_output): Remove #if 0'd code. Change method of + updating saved_inlines. + (walk_vtables): Remove. + (walk_sigtables): Likewise. + (import_export_decl): Use DECL_TINFO_FN_P. + (pending_templates): Remove declaration. + (maybe_templates): Likewise. + (static_aggregates_initp): Likewise. + (setup_initp): Likewise. + (finish_objects): Simplify. + (INITIALIZE_P_IDENTIFIER): New macro. + (PRIORITY_IDENTIFIER): New macro. + (SSDF_IDENTIFIER): New macro. + (initialize_p_decl): New variable. + (priority_decl): Likewise. + (ssdf_decl): Likewise. + (priority_info_map): Likewise. + (finish_file): Recode output of static intializers and other + file-scope finalization tasks. + * error.c (OB_END_TEMPLATE_ID): New macro. + (dump_type_real): Use it. + (dump_decl): Likewise. + (dump_function_name): Likewise. + * lex.c (set_typedecl_interface_info): Adjust for new walk_globals + interface. + (check_newline): Use walk_globals, not walk_vtables. + * pt.c (pending_tempalte_expansions): Remove. + (set_vardecl_interface_info): Likewise. + (pending_templates): Make static. + (maybe_templates): Likewise. + (instantiate_class_template): Adjust call to finish_struct_1. + (instantiate_pending_templates): New function. + * rtti.c (get_tinfo_fn): Use SET_DECL_TINFO_FN_P. + * tree.c (static_aggregates_initp): Remove. + (cp_valid_lang_attribute): Don't use it; use DECL_INIT_PRIORITY + instead. + * Makefile.in (decl2.o): Depend on varray.h and splay-tree.h. + + * gxx.gperf (RETURN): Rename to RETURN_KEYWORD to avoid clashes + with the RTL code RETURN. + * hash.h: Regenerated. + * lex.c (reinit_parse_for_block): Use RETURN_KEYWORD. + * parse.y: Replace RETURN with RETURN_KEYWORD throughout. + * parse.c: Regenerated. + * pt.c: Include varray.h. Include rtl.h since varray.h requires + it. + (inline_parm_levels): New variable. + (inline_parm_levels_used): Likewise. + (maybe_begin_member_template_processing): Update them. + (maybe_end_member_template_processing): Use them, rather than + guessing how many levels to pop. + + * decl.c (make_typename_type): Tighten error-checking. + +1999-04-20 Mark Mitchell <mark@codesourcery.com> + + * cp-tree.h (build_binary_op): Remove unneeded parameter. + * class.c (build_vrable_entry_ref): Adjust call to + build_binary_op. + * decl.c (expand_static_init): Likewise. + (grokdeclarator): Likewise. + (finish_function): Likewise. + * decl2.c (delete_sanity): Likewise. + (do_dtors): Likewise. + (do_ctors): Likewise. + * error.c (dump_type_suffix): Likewise. + * expr.c (cplus_expand_expr): Likewise. + * init.c (resolve_offset_ref): Likewise. + (build_new): Likewise. + (build_new_1): Likewise. + (build_vec_delete_1): Likewise. + (expand_vec_init_catch_clause): Likewise. + (build_delete): Likewise. + * pt.c (tsubst): Likewise. + * rtti.c (synthesize_tinfo_fn): Likewise. + * search.c (expand_upcast_fixups): Likewise. + (expand_direct_vtbls_init): Likewise. + * typeck.c (get_member_function_from_ptrfunc): Likewise. + (build_binary_op_nodefault): Likewise. + (point_int_sum): Likewise. + (pointer_diff): Likewise. + (build_unary_op): Likewise. + (build_modify_expr): Likewise. + (get_delta_difference): Likewise. + (build_ptrmemfunc): Likewise. + (expand_ptrmemfunc_cst): Likewise. + +1999-04-20 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (grokfndecl): Always call cplus_decl_attributes. + * decl2.c (grokfield): Pass attrlist to grokdeclarator. + +1999-04-19 Mark Mitchell <mark@codesourcery.com> + + * cp-tree.h (finish_static_data_member_decl): New function. + * decl2.c (finish_static_data_member_decl): Split out from ... + (grokfield): Here. + * pt.c (instantiate_class_template): Use it here instead of + trying to fake it. + (tsubst_decl): Don't set DECL_ASSEMBLER_NAME; + finish_static_data_member_decl will do that. Explicit set + DECL_EXTERNAL to match non-template processing. + +1999-04-18 Mark Mitchell <mark@codesourcery.com> + + * cp-tree.h (finish_class_definition): Add parameter. + * parse.y (structsp): Use it. Don't call pop_scope here. + * parse.c: Regenerated. + * semantics.c (finish_class_definition): Pop it here. + +1999-04-17 Mark Mitchell <mark@codesourcery.com> + + * decl.c (xref_tag): Revise handling of nested template + declarations. + * pt.c (check_explicit_specialization): Tweak handling of friend + templates in template classes. + (tsubst_friend_class): Handle friend declarations for nested + member template classes. + +1999-04-16 Mark Mitchell <mark@codesourcery.com> + + * class.c (finish_struct): Remove unused variable. + (pushclass): Likewise. + (invalidate_class_lookup_cache): Likewise. + * cp-tree.def (TYPENAME_TYPE): Improve documentation. + * decl.c (build_typename_type): Make sure TYPENAME_TYPE_FULLNAME + doesn't get obliterated. + (make_typename_type): Handle template classes correctly. + + * cp-tree.h (TREE_NONLOCAL_FLAG): Remove. + (storetags): Declare. + * class.c (finish_struct): Don't use TREE_NONLOCAL_FLAG. + (pushclass): Likewise. Use storetags to install tag declarations, + not pushtag. + (invalidate_class_lookup_cache): Don't use TREE_NONLOCAL_FLAG. + * decl.c (storetags): Make it global. + (push_class_binding): Set INHERITED_VALUE_BINDING_P for an + implicit typename declaration. + (pushtag): Tidy. Don't use TREE_NONLOCAL_FLAG. + * method.c (hack_identifier): Likewise. + * search.c (lookup_member): Likewise. + + * decl.c (warn_about_implicit_typename_lookup): New function. + (lookup_name_real): Use it. Rework handling of implicit typename + extension. + +1999-04-15 Mark Mitchell <mark@codesourcery.com> + + * cp-tree.h (lookup_nested_field): Remove. + * class.c (push_nested_class): Handle UNION_TYPEs. + (pop_nested_class): Likewise. + * decl.c (lookup_name_real): Don't call lookup_nested_field. + (start_decl): Use push_nested_class, not just pushclass. + (cp_finish_decl): Use pop_nested_class, not just popclass. + * search.c (lookup_nested_field): Remove. + + * cp-tree.h (lang_type): Add documentation. + * decl2.c (handle_class_head): Create template declarations here, + as appropriate. + * parse.y (class_head): Return whether or not we entered a new + scope, as well as the type named. + (named_class_head): Likewise. + (named_complex_class_head_sans_basetype): Likewise. + (structsp): Adjust accordingly. Pop scope when required. + * parse.c: Regenerated. + * pt.c (check_default_tmpl_args): Robustify. + (redeclare_class_template): Likewise. + (instantiate_class_template): An instantiation of an + anonymous union is itself an anonymous union. + * semantics.c (begin_class_definition): Don't create template + declarations here. + +1999-04-15 Jason Merrill <jason@yorick.cygnus.com> + + * parse.y (after_type_declarator_intern): New nonterminal. + (after_type_declarator): Use it. + (direct_after_type_declarator): Likewise. Move above + nonnested_type to fix reduce/reduce conflict resolution. + (declmods): Reducing from just 'attributes' has EMPTY precedence. + * Makefile.in (CONFLICTS): Update. + + * decl.c (define_label): Downgrade error for jumping over a + non-POD decl to pedwarn. + +1999-04-14 Mark Mitchell <mark@codesourcery.com> + + * cp-tree.h (popclass): Change declaration. + (pop_nested_class): Likewise. + (poplevel_class): Remove declaration. + * call.c (convert_default_argument): Pass no arguments to + popclass. + * class.c (finish_struct_1): Likewise. + (finish_struct): Likewise. + (popclass): Remove argument. Simplify code accordingly. + (pop_nested_class): Likewise. + * decl.c (poplevel_class): Declare it here, and make it static. + (poplevel): Handle class scopes. + (poplevel_class): Don't take an rgument. Simplify. + (pop_everything): Pass no arguments to pop_nested_class. + (cp_finish_decl): Pass no arguments to popclass. + (grokdeclarator): Pass no arguments to pop_nested_class. + (finish_function): Likewise. + * decl2.c (grokfield): Likewise. + (pop_scope): Pass no arguments to popclass. + * lex.c (do_pending_defargs): Pass no arguments to pop_nested_class. + * pt.c (instantiate_class_template): Move call to pushclass, and + document. Pass no arguments to popclass. + (regenerate_decl_from_template): Likewise. + +1999-04-14 Jason Merrill <jason@yorick.cygnus.com> + + * typeck.c (build_unary_op): Handle taking the address of a unique + bound non-static member function. + +1999-04-13 Martin von Loewis <loewis@informatik.hu-berlin.de> + + * lang-options.h (-Wdeprecated): New flag. + * decl2.c (warn_deprecated): New flag. + (lang_decode_option): Deprecated this-is-variable, + external-templates, alt-external-templates. + Support -Wdeprecated. + * errfn.c (cp_deprecated): New function. + +1999-04-13 Jason Merrill <jason@yorick.cygnus.com> + + * decl2.c (setup_initp): Compare DECL_ASSEMBLER_NAME instead + of the decls themselves. + + * pt.c (tsubst_function_type): Copy attributes over. + + * tree.c (cp_valid_lang_attribute): New fn. Handle init_priority + and com_interface. + * cp-tree.h: Add prototype. + * decl.c (init_decl_processing): Set valid_lang_attribute. + +1999-04-13 Mark Mitchell <mark@codesourcery.com> + + * class.c (finish_struct_1): Look at the const-ness of the field's + type, not the TREE_READONLY-ness of the declaration. + * method.c (synthesize_method): Likewise. + * pt.c (tsubst_decl): Call c_apply_type_quals_to_decl when + creating new declarations. + +1999-04-13 Mike Stump <mrs@wrs.com> + + * decl2.c (import_export_decl): Because vtables always reference + virtual functions, even if they are inlined, don't allow + -fno-implement-inlines to not emit them, instead, emit them with + the vtable. + * decl.c (start_function): Likewise. + +1999-04-12 Jason Merrill <jason@yorick.cygnus.com> + + * cp-tree.h (struct lang_type): Add com_interface. + (CLASSTYPE_COM_INTERFACE): New macro. + * class.c (set_rtti_entry): COM interface classes have no RTTI + entries in their vtables; adjust. + (add_virtual_function, finish_base_struct, skip_rtti_stuff, + modify_one_vtable, fixup_vtable_deltas1, override_one_vtable, + finish_struct_1): Likewise. + * decl2.c (mark_vtable_entries): Likewise. + * rtti.c (build_headof, get_tinfo_fn_dynamic): Likewise. + * search.c (get_abstract_virtuals_1, get_abstract_virtuals, + expand_upcast_fixups): Likewise. + * tree.c (debug_binfo): Likewise. + + * cp-tree.h (COMPARE_NO_ATTRIBUTES): New macro. + * typeck.c (comptypes): If we get it, ignore attributes. + * class.c (instantiate_type): Use BASELINK_P. Change complain + parameter to flags; 2 means ignore attributes. + * call.c (build_op_delete_call): Pass it. + + * decl.c (xref_tag): Only complain once about using a typedef-name + with 'struct'. Downgrade to pedwarn. + + * decl.c (grokdeclarator): Allow [] syntax for zero-length array. + + * parse.y (absdcl_intern): New nonterminal. + (absdcl, direct_abstract_declarator): Use it. + + * pt.c (lookup_template_class): Look through implict typename. + +1999-04-11 Mark Mitchell <mark@codesourcery.com> + + * friend.c (add_friend): Deal gracefully with error_mark_node. + * method.c (build_overload_value): Handle pointers-to-members as + template parameters. + + * decl.c (push_binding): Fix typo in comment. + +1999-04-10 Mark Mitchell <mark@codesourcery.com> + + * error.c (dump_type_real): If a typename is a template-id, put + out the template arguments. + (dump_expr): Handle TEMPLATE_ID_EXPR. + * pt.c (lookup_template_class): Now that full arguments are + available everywhere, remove code that tried to guess them. + +1999-04-09 Mark Mitchell <mark@codesourcery.com> + + * decl.c (make_typename_type): Complain if we don't find a type + when trying to make a typename type for a non-template type. + +1999-04-09 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (start_decl): Pass attributes to grokdeclarator. + (grokdeclarator): Handle attributes on constructor-syntax + initializers. + +1999-04-08 Mark Mitchell <mark@codesourcery.com> + + * error.c (dump_expr): Don't crash on INDIRECT_REFs whose operands + don't have types. + + * search.c (template_self_reference_p): Tweak. + +1999-04-07 Mark Mitchell <mark@codesourcery.com> + + * init.c (build_offset_ref): Don't build yet another weird data + structure to describe overloaded functions. + +1999-04-06 Mark Mitchell <mark@codesourcery.com> + + * cp-tree.h (BASELINK_P): New macro. + (SET_BASELINK_P): Likewise. + * init.c (build_member_call): Remove needless assignment in if + statement. + * search.c (lookup_field_r): Fix handling when we are looking + specifically for a type; these are not hidden by functions and + variables. + (lookup_member): Use SET_BASELINK_P. + * tree.c (is_overloaded_fn): Use BASELINK_P. + (really_overloaed_fn): Likewise. + (get_first_fn): Likewise. + +1999-04-05 Mark Mitchell <mark@codesourcery.com> + + * decl.c (lookup_name_current_level): Tweak, and improve + documentation. + + * class.c (maybe_fixup_vptrs): Remove declaration. + (build_class_init_list): Likewise. + * decl.c (pushdecl_class_level): Call check_template_shadow here + ... + (push_class_level_binding): ... not here. + * search.c (dfs_push_type_decls): Only avoid + template-self-reference TYPE_DECLs if they are from base classes. + +1999-04-04 Mark Mitchell <mark@codesourcery.com> + + * pt.c (check_template_shadow): Don't treat OVERLOADs as _DECL + nodes. Tidy. + +1999-04-03 Jason Merrill <jason@yorick.cygnus.com> + + * class.c (maybe_fixup_vptrs, build_class_init_list): Lose. + (finish_struct_1): Don't call build_class_init_list. + +1999-04-02 Mark Mitchell <mark@codesourcery.com> + + * tinfo.h (__class_type_info): Fix illegal declaration. + + * cp-tree.def (TEMPLATE_ID_EXPR): Update comment. + * cp-tree.h (INHERITED_VALUE_BINDING_P): New macro. + (IDENTIFIER_CLASS_VALUE): Improve documentation. + (is_properly_derived_from): Declare. + (invalidate_class_lookup_cache): Likewise. + (maybe_maybe_note_name_used_in_class): Likewise. + (note_name_declared_in_class): Likewise. + (push_using_decl): Remove duplicate declaration. + (id_in_current_class): Remove declaration. + (push_class_binding): Change prototype. + (clear_identitifer_class_values): Declare. + * call.c (is_properly_derived_from): Make it global. + (build_new_function_call): Be careful about updating candidates. + (build_new_method_call): Handle COMPONENT_REFs. Don't crash when + asked to make illegal calls. + * class.c: Include splay-tree.h. + (class_stack_node): Add names_used slot. + (check_member_decl_is_same_in_complete_scope): Remove. + (add_method): Fix comment. Push the declaration into class + scope. + (finish_struct_1): When popping the class, pop the bindings too. + Remove check for data member/function member conflict. + (finish_struct): Remove calls to + check_member_decl_is_same_in_complete_scope. Change calls to + popclass. + (pushclass): Clear names_used in the class stack entry. + Use invalidate_class_lookup_cache to remove cached entries, rather + than magic values with popclass. Clear IDENTIFIER_CLASS_VALUE + before entering a new class. Remove dead code. Don't mess with + current_function_decl when pushing declarations. + (invalidate_class_lookup_cache): New function, split out from ... + (popclass): Here. Clean up names_used on our way out. + (instantiate_type): Adjust. + (build_self_reference): Don't push the declaration here. + (maybe_note_name_used_in_class): New function. + (note_name_declared_in_class): Likewise. + * decl.c (add_binding): Change prototype. + (find_class_binding_level): New function. + (innermost_nonclass_level): Likewise. + (current_binding_level): Update documentation. + (inner_binding_level): Remove. Replace with current_binding_level + throughout. + (push_binding_level): Remove special handling of + class_binding_level. + (pop_binding_level): Likewise. Use find_class_binding_level. + (suspend_binding_level): Likewise. + (global_bindings_p): Use innermost_nonclass_level. + (toplevel_bindings_p): Likewise. + (namespace_bindings_p): Likewise. + (pseudo_global_level_p): Likewise. + (push_binding): Clear INHERITED_VALUE_BINDING_P. + (add_binding): Check for illegal multiple declarations. Return a + value indicating whether or not the new binding was legal. + (push_local_binding): Skip over class binding levels. Check + return value from add_binding. + (push_class_binding): Set INHERITED_VALUE_BINDING_P. Call + note_name_declared_in_class. + (pushlevel_class): Remove "fake out the rest of the compiler" + code. + (poplevel_class): Reset IDENTIFIER_CLASS_VALUEs. + (clear_identifier_class_values): New function. + (pop_from_top_level): Use it. + (pop_everything): Tweak. + (maybe_process_template_type_declaration): Don't push the + declaration for the template here. + (pushtag): Don't push tag declarations into class scope here. + (pushdecl): Apply DeMorgan's law for readability. + (pushdecl_class_level): Remove special-case code for + TYPE_BEING_DEFINED. Handle OVERLOADs and anonymous unions. + (push_class_level_bindng): Deal with inherited bindings. + (lookup_name_real): Remove special-case code for + TYPE_BEING_DEFINED, and some implicit typename magic. + (grokdeclarator): Handle COMPONENT_REF for a template function. + (build_enumerator): Don't call pushdecl_class_level here. + (id_in_current_class): Remove. + * decl2.c (grokfield): Don't call pushdecl_class_level or + check_template_shadow. + * errfn.c (cp_file_of): Don't declare. + (cp_line_of): Likewise. + * error.c (dump_decl): Handle an OVERLOAD. + (cp_file_of): Likewise. + (cp_line_of): Likewise. + * init.c (build_member_call): Handle a COMPONENT_REF. + * lex.c (do_identifier): Call maybe_note_name_used_in_class, not + pushdecl_class_level. + * method.c (hack_identifier): Build COMPONENT_REFs for references + to member templates as well as member functions. Remove dead + code. + * parse.y (left_curly): Remove. + (nonnested_type): Call maybe_note_name_used_in_class, not + pushdecl_class_level. + * parse.c: Regenerated. + (nested_name_specifier_1): Likewise. + * pt.c (check_explicit_specialization): Adjust, for robustness. + (check_template_shadow): Handle OVERLOADs. + (build_template_decl): Set DECL_CONSTRUCTOR_P on the + TEMPLATE_DECL, if appropriate. + * search.c (envelope_add_decl): Remove. + (dfs_pushdecls): Likewise. + (dfs_compress_decls): Likewise. + (dfs_push_decls): New function. + (dfs_push_type_decls): Likewise. + (setup_class_bindings): Likewise. + (template_self_reference_p): Likewise. + (lookup_field_r): Use it. + (looup_member): Remove old comment. Deal with ambiguity. + (push_class_decls): Use dfs_push_decls and dfs_push_type_decls, + and remove envelope processing. + * semantics.c (begin_class_definition): Let pushclass push + declarations for base classes. + (finish_member_declaration): Push declarations into class scope. + * typeck.c (build_component_ref): Just put an OVERLOAD into the + COMPONENT_REF, not a TREE_LIST of an OVERLOAD. + (build_x_function_call): Deal with OVERLOAD. Handle template-ids. + * Makefile.in (class.o): Depend on splay-tree.h. + +Wed Mar 31 11:30:43 1999 Nathan Sidwell <nathan@acm.org> + + * cvt.c (convert_pointer_to_real): Use same_type_p. + * typeck.c (comp_target_types): Use same_type_p. + +1999-03-31 Jason Merrill <jason@yorick.cygnus.com> + + * semantics.c (begin_inline_definitions, + finish_inline_definitions): Rename from finish_default_args and + begin_inline_definitions, respectively, to something that isn't a + total lie. :) + * parse.y (structsp): Adjust. + + * tree.c (hash_tree_cons): Remove obsolete via_* parms. + (list_hash_lookup): Likewise. + (hash_tree_chain): Adjust. + * pt.c (tsubst): Adjust. + (tsubst_arg_types): Use plain hash_tree_cons. + * cp-tree.h (hash_tree_cons_simple): Lose. + * parse.y (declmods, nonempty_cv_qualifiers): Use hash_tree_cons. + +Wed Mar 31 10:48:29 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * Makefile.in (hash.h): Generate using gperf language 'C', not + 'KR-C', so gperf uses the `const' keyword on strings. + + * gxx.gperf (resword): Const-ify a char*. + +1999-03-30 Jason Merrill <jason@yorick.cygnus.com> + + * cp-tree.h (IDENTIFIER_AS_DESC, IDENTIFIER_AS_LIST, + CLASSTYPE_BASELINK_VEC, CLASSTYPE_N_SUPERCLASSES, + CLASSTYPE_N_BASECLASSES, CLASSTYPE_MAX_DEPTH, + CLASSTYPE_BASE_INIT_LIST, CLASSTYPE_AS_LIST, CLASSTYPE_ID_AS_LIST, + CLASSTYPE_BINFO_AS_LIST): Remove cruft. + * class.c, lex.c, parse.y, ptree.c, search.c, semantics.c, + tree.c: Adjust. + +1999-03-29 Jason Merrill <jason@yorick.cygnus.com> + + * decl2.c (lang_decode_option): Remove -Wsign-promo from -Wall. + +1999-03-28 Jason Merrill <jason@yorick.cygnus.com> + + * pt.c (fn_type_unification): Ignore 'this' parm from conversion ops. + +1999-03-27 Mark Mitchell <mark@codesourcery.com> + + * cp-tree.h (add_friend): Declare. + (add_friends): Likewise. + * friend.c (add_friend): Make it global. Don't add to + DECL_BEFRIENDING_CLASSES if the befriending class is a template. + (add_friends): Make it global. + (make_friend_class): Don't add to DECL_BEFRIENDING_CLASSES if the + befriending class is a template. + * parse.y (component_decl_1): Fix typo in comment. + * parse.c: Regenerated. + * pt.c (instantiate_class_template): Use add_friend and + add_friends rather that duplicating some of their functionality + here. + +1999-03-27 Jason Merrill <jason@yorick.cygnus.com> + + * call.c (build_field_call): Unify 'this' and non-'this' cases. + + * typeck.c (build_indirect_ref): Check for 'this' sooner. + +Fri Mar 26 10:20:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * call.c (op_error): Const-ify a char*. + (add_candidate, source_type, add_warning): Add static prototype. + (print_z_candidates): Const-ify a char*. + + * class.c (resolve_address_of_overloaded_function, + fixed_type_or_null, build_vtable_entry_ref): Add static prototype. + (get_vtable_name, finish_struct_1): Const-ify a char*. + + * cvt.c (convert_to_reference): Likewise. + + * decl.c (redeclaration_error_message, record_builtin_type, + record_unknown_type, member_function_or_else, bad_specifiers): + Likewise. + (find_binding, select_decl, unqualified_namespace_lookup, + lookup_flags, qualify_lookup, record_builtin_java_type, tag_name): + Add static prototype. + (warn_extern_redeclared_static, duplicate_decls, pushdecl, + implicitly_declare, record_builtin_java_type, define_function, + grok_op_properties, tag_name): Const-ify a char*. + + * cp-tree.h (FORMAT_VBASE_NAME): Allow parameter `BUF' to be const. + (define_function, finish_builtin_type): Const-ify a char*. + (cp_error, cp_error_at, cp_warning, cp_warning_at, cp_pedwarn, + cp_pedwarn_at, cp_compiler_error, cp_sprintf): Add prototype args. + (file_name_nondirectory): Const-ify a char*. + (init_filename_times): Don't prototype. + (compiler_error): Prototype. + (yyerror, init_repo): Const-ify a char*. + (build_srcloc): Don't prototype. + (build_x_indirect_ref, build_indirect_ref, build_component_addr): + Const-ify a char*. + (warn_for_assignment): Don't prototype. + (convert_for_initialization, readonly_error, check_for_new_type, + GNU_xref_begin, GNU_xref_file, GNU_xref_ref, GNU_xref_call): + Const-ify a char*. + + * decl2.c (acceptable_java_type, output_vtable_inherit, + setup_initp, start_objects, finish_objects, do_dtors, do_ctors, + merge_functions, decl_namespace, validate_nonmember_using_decl, + do_nonmember_using_decl): Add static prototype. + (lang_f_options): Const-ify a char*. + (finish_builtin_type): Likewise. + (add_function, arg_assoc_namespace, arg_assoc_class): Add static + prototype. + + * errfn.c: Include cp-tree.h. + (cp_thing): Add static prototype. + (compiler_error): Don't protoptype. + (cp_compiler_error): Cast `compiler_error' to `errorfn' before + passing it to `cp_thing'. + + * error.c (interesting_scope_p): Add static prototype. + + * except.c (build_eh_type_type, build_eh_type_type_ref): Const-ify + a char*. + + * init.c (compiler_error): Don't prototype. + (member_init_ok_or_else): Const-ify a char*. + (build_java_class_ref): Add static prototype. + + * lex.c (compiler_error): Don't prototype. + (get_time_identifier, interface_strcmp, extend_token_buffer, + handle_cp_pragma): Const-ify a char*. + (is_global, init_filename_times): Add static prototype. + (file_name_nondirectory, cplus_tree_code_name): Const-ify a char*. + (compiler_error): Change from fixed args to variable args. + (yyerror): Const-ify a char*. + + * parse.y (cond_stmt_keyword): Const-ify a char*. + (parse_decl): Add static prototype. + + * pt.c (template_args_equal, print_template_context): Likewise. + (print_candidates, check_default_tmpl_args): Const-ify a char*. + (instantiate_class_template): Likewise. + + * repo.c (get_base_filename, open_repo_file, init_repo): Likewise. + + * rtti.c (call_void_fn, expand_generic_desc, expand_si_desc, + expand_class_desc, expand_ptr_desc, expand_attr_desc): Likewise. + + * search.c (lookup_field_info, lookup_member): Likewise. + (lookup_member): Cast the first argument of `bzero' to a PTR. + + * sig.c (compiler_error): Don't prototype. + (build_signature_pointer_or_reference_nam): Const-ify a char*. + (get_sigtable_name, build_member_function_pointer): Likewise. + + * tree.c (compiler_error): Don't prototype. + (no_linkage_helper, build_srcloc): Add static prototype. + (build_vbase_pointer_fields): Const-ify a char*. + (__eprintf): Don't unnecessarily handle `const' when !__STDC__. + + * typeck.c (compiler_error): Don't prototype. + (convert_for_assignment): Const-ify a char*. + (comp_cv_target_types): Add static prototype. + (build_x_indirect_ref, build_indirect_ref, convert_arguments, + build_component_addr, build_unary_op, convert_for_initialization): + Const-ify a char*. + + * typeck2.c (ack): Add static prototype and change from fixed args + to variable args. + (readonly_error, check_for_new_type): Const-ify a char*. + + * xref.c (_XREF_FILE, find_file, filename, fctname, declname, + fixname, open_xref_file, classname, GNU_xref_begin): Likewise. + (GNU_xref_file): Likewise. Also use `xmalloc' instead of `malloc'. + (GNU_xref_end_scope, GNU_xref_ref, GNU_xref_decl, GNU_xref_call, + gen_assign, GNU_xref_member): Const-ify a char*. + +1999-03-25 Martin von Löwis <loewis@informatik.hu-berlin.de> + + * gxxint.texi: Remove old discussion on copying virtual bases. + +1999-03-25 Zack Weinberg <zack@rabi.columbia.edu> + + * Make-lang.in: Remove all references to g++.o/g++.c. + Link g++ from gcc.o. + +1999-03-25 Jason Merrill <jason@yorick.cygnus.com> + + * decl2.c (comdat_linkage): Treat vtables like functions. + +1999-03-25 Mark Mitchell <mark@codesourcery.com> + + * pt.c (tsubst_decl): tsubst into DECL_BEFRIENDING_CLASSES. + +1999-03-25 Nathan Sidwell <nathan@acm.org> + + * decl.c (init_decl_processing): Add `signed' type as a synonym + for `int'. + +1999-03-25 Jason Merrill <jason@yorick.cygnus.com> + + * typeck.c (common_type): Handle cv-qual unification for pointers + to members. + + * decl.c (unqualified_namespace_lookup): Return error_mark_node + on error. + (lookup_name_real): Set LOOKUP_COMPLAIN when *not* parsing. + * lex.c (do_identifier): If we got error_mark_node, call + lookup_name again. + +1999-03-24 Martin von Löwis <loewis@informatik.hu-berlin.de> + + * class.c (finish_struct_1): Always reset TYPE_FIELDS for empty + classes. + +1999-03-24 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (lookup_name_real): Do nested field lookup regardless of + TYPE_BEING_DEFINED. + +1999-03-24 Mark Mitchell <mark@codesourcery.com> + + * cp-tree.h (lang_type): Remove has_assignment and + has_real_assignment. Add befriending_classes. + (TYPE_HAS_ASSIGNMENT): Remove. + (TYPE_HAS_REAL_ASSIGNMENT): Likewise. + (CLASSTYPE_BEFRIENDING_CLASSES): New macro. + (lang_decl): Document. + (DECL_BEFRIENDING_CLASSES): New macro. + (FRIEND_NAME): Move declaration to more obvious location. + (FRIEND_DECLS): Likewise. + * class.c (finish_struct_1): Don't use TYPE_HAS_REAL_ASSIGNMENT. + * decl.c (duplicate_decls): Copy DECL_BEFRIENDING_CLASSES. + (fixup_anonymous_union): Don't use TYPE_HAS_ASSIGNMENT. + (grok_op_properties): Likewise. + * friend.c (is_friend): Use FRIEND_NAME and FRIEND_DECLS. + (add_friend): Likewise. Don't do weird things with assignment + operators. Update DECL_BEFRIENDING_CLASSES. + (add_friends): Don't do weird things with assignment operators. + (make_friend_class): Likewise. Update + CLASSTYPE_BEFRIENDING_CLASSES. + * pt.c (instantiate_class_template): Don't set + TYPE_HAS_ASSIGNMENT. + (tsubst_copy): Substitute the TREE_TYPE for more unary + expressions. + * ptree.c (print_lang_type): Don't look at TYPE_HAS_ASSIGNMENT. + * search.c (protected_accessible_p): New function. + (friend_accessible_p): Likewise. + (accessible_p): Use them. + +1999-03-23 Mark Mitchell <mark@codesourcery.com> + + * pt.c (convert_nontype_argument): Don't create things that aren't + PTRMEM_CSTs when applying a qualification conversion to a + PTRMEM_CST. + +1999-03-23 Mark Mitchell <mark@codesourcery.com> + + * Makefile.in (OBJS): Don't mention hash.o. + (OBJDEPS): Likewise. + +1999-03-23 Jason Merrill <jason@yorick.cygnus.com> + + * decl2.c (finish_file): Set at_eof to 2 after expanding ctors. + * decl.c (expand_static_init): Make sure we don't add any after + then. + + * decl.c (cp_finish_decl): Move intelligence about handling + DECL_COMDAT for variables from here... + * decl2.c (comdat_linkage): ...to here. + (maybe_make_one_only): Tweak. + (import_export_decl): Call comdat_linkage for variables, too. + (finish_file): Handle template statics properly. + +1999-03-22 Mark Mitchell <mark@codesourcery.com> + + * cp-tree.h (TYPE_PTRMEMFUNC_P): Use TYPE_PTRMEMFUNC_FLAG. + Document internals of pointer-to-member-functions. + (DELTA2_FROM_PTRMEMFUNC): Make it call delta2_from_ptrmemfunc. + (PFN_FROM_PTRMEMFUNC): Likewise. + (build_type_conversion): Remove unused parameter. + (build_ptrmemfunc1): Declare. + (expand_ptrmemfunc_cst): New function. + (delta2_from_ptrmemfunc): Likewise. + (pfn_from_ptrmemfunc): Likewise. + * cvt.c (cp_convert_to_pointer): Remove unused parameter to + build_type_conversion. Use TYPE_PTRMEM_P for readability. + (convert_to_reference): Remove unused parameter to + build_type_conversion. + (ocp_convert): Likewise. + (build_user_type_conversion): Likewise. + * error.c (dump_expr): Handle NULL pointer-to-member functions. + * expr.c (cplus_expand_expr): Handle PTRMEM_CSTs for functions. + * method.c (build_overload_value): Don't go splitting CONSTRUCTORs + open when handling pointer-to-member functions. + * pt.c (convert_nontype_argument): Clean up error messages. Be + more stringent with pointers-to-members. + * typeck.c (build_ptrmemfunc1): Don't declare. Make it global. + (build_unary_op): Tidy ever-so-slightly. + (build_conditional_expr): Remove extra parameter to + build_type_conversion. + (build_ptrmemfunc): Build PTRMEM_CSTs if we know what function + we're using. + (expand_ptrmemfunc_cst): Define. + (delta2_from_ptrmemfunc): Likewise. + (pfn_from_ptrmemfunc): Likewise. + +1999-03-19 Mark Mitchell <mark@codesourcery.com> + + * init.c (build_member_call): Handle template-id expressions + correctly. + * typeck.c (build_x_function_call): Likewise. + +1999-03-19 Chip Salzenberg <chip@perlsupport.com> + + * friend.c (make_friend_class): Avoid core dump when + not-yet-defined friend type lacks TYPE_LANG_SPECIFIC(). + +1999-03-18 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (start_function): Suppress normal linkage heuristics + for #pragma interface under MULTIPLE_SYMBOL_SPACES. + +1999-03-19 Alexandre Oliva <oliva@dcc.unicamp.br> + + * Make-lang.in: ($(INTL_TARGETS)): Depend on cp/parse.c. + ($(srcdir)/cp/parse.c): Moved from ../Makefile.in. + +1999-03-17 Martin von Löwis <loewis@informatik.hu-berlin.de> + + * parse.y (named_complex_class_head_sans_basetype): + Do not push a scope for error_mark_node. + (maybe_base_class_list): Likewise. + + * decl.c (start_decl): Check for error_mark_node as a type. + Detected by g++.brendan/array-refs.C. + (start_decl_1): Likewise. Detected by g++.bugs/900322_01.C. + (maybe_build_cleanup_1): Likewise. Detected by + g++.jason/incomplete1.C. + + * tree.c (build_dummy_object): Use void_zero_node instead of the + error_mark_node. + (is_dummy_object): Check for such a node. + Detected by g++.bob/inherit1.C + +1999-03-16 Jason Merrill <jason@yorick.cygnus.com> + + * method.c (old_backref_index): Split out... + (flush_repeats): From here. Rename back from try_old_backref. + (build_mangled_name): Put back some old-style repeat handling. + +Mon Mar 15 21:57:16 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * lex.c: Don't include setjmp.h. + (parse_float): New static function. + (pf_args): New struct. + (real_yylex): Use them in call to `do_float_handler'. + +1999-03-15 Mark Mitchell <mark@markmitchell.com> + + * decl.c (xref_basetypes): Set CLASSTYPE_VBASECLASSES here. + * tree.c (layout_basetypes): Not here. + * search.c (dfs_search): Remove; no longer used. + +1999-03-12 Mark Mitchell <mark@markmitchell.com> + + * decl2.c (validate_nonmember_using_decl): Issue sensible + error-messages on bogus qualifiers. + +1999-03-14 Jason Merrill <jason@yorick.cygnus.com> + + * call.c (add_function_candidate): Fix uninitialized variable. + + * Makefile.in (search.o): Add dependency on varray.h. + +1999-03-13 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (duplicate_decls): Use same_type_p. + * method.c (try_old_backref): Renamed from flush_repeats. Use + same_type_p. Don't try to handle repeats. Return success. + (is_back_referenceable_type): Return 0 if TYPE_FOR_JAVA. Support + calls from old-style code, too. + (check_ktype): Use same_type_p. + (check_btype): Use same_type_p. Don't pull out TYPE_MAIN_VARIANT. + (build_qualified_name): Simplify logic. + (process_overload_item): Strip typedefs and quals at the top. + (build_mangled_name_for_type_with_Gcode): Remove call to + type_canonical_variant. + (build_mangled_name): Likewise. Remove support for old-style + repeats, which have been disabled since 2.7.2. Don't mess with + TREE_USED. + (build_decl_overload_real): Don't mess with TREE_USED. + +1999-03-13 Nathan Sidwell <nathan@acm.org> + + * error.c (cp_printers): Add 'F' escape character. + (dump_type_real): Remove TREE_LIST (fnargs) printing. + Functionality moved to dump_parameters. + (dump_type_suffix): Use dump_parameters and dump_exception_spec. + (dump_function_decl): Extend meaning of V parameter. Use + dump_parameters and dump_exception_spec. + (dump_parameters): New static function. + (dump_exception_spec): New static function. + (fndecl_as_string): Change argument semantics. Use + dump_function_decl directly. + + * sig.c (build_signature_table_constructor): Use cp_error. + +1999-03-13 Martin von Löwis <loewis@informatik.hu-berlin.de> + + * semantics.c (finish_switch_cond): Handle error cases gracefully. + Detected by g++.law/enum5.C. + + * typeck.c (build_modify_expr): Check for errors after resolving + offsets. Detected by g++.brendan/static1.C. + + * decl.c (complete_array_type): Ignore initial_value if it is an + error. Detected by g++.benjamin/17930.C. + + * typeck2.c (process_init_constructor): Return error if one argument + is in error. Detected by g++.benjamin/13478.C. + +1999-03-12 Martin von Löwis <loewis@informatik.hu-berlin.de> + + * decl.c (select_decl): Allow class templates when we need types. + * decl2.c (ambiguous_decl): Likewise. + +1999-03-12 Mark Mitchell <mark@markmitchell.com> + + * lex.c (do_identifier): Correct call to enforce_access. + * search.c (accessible_p): Tweak comment. + +1999-03-10 Mark Mitchell <mark@markmitchell.com> + + * semantics.c (begin_class_definition): Call build_self_reference. + (finish_member_declaration): Set DECL_CONTEXT for TYPE_DECLs. + + * search.c (assert_canonical_unmarked): Fix typo in prototype. + + * search.c (dfs_canonical_queue): New function. + (dfs_assert_unmarked_p): Likewise. + (assert_canonical_unmarked): Likewise. + (access_in_type): Use it. + (accessible_p): Likewise. Walk the whole tree when umarking. + + * sig.c (build_signature_table_constructor): Use accessible_p + instead of compute_access. + +1999-03-09 Jason Merrill <jason@yorick.cygnus.com> + + * call.c (add_builtin_candidates): Handle overloaded conversion ops. + +1999-03-09 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (flag_access_control): Declare. + (TREE_VIA_PPUBLIC): Document. + (DECL_NONSTATIC_MEMBER_P): New macro. + (enforce_access): Return an indication of whether or not access + was permitted. + (build_self_reference): Change prototype. + (compute_access): Replace with ... + (accessible_p): New function. + (dfs_walk): Change prototype. + (dfs_unmark): Likewise. + (markedp): Likewise. + * call.c (enforce_access): Use accessible_p. + * class.c (build_self_reference): Insert the declaration into the + list of members for this type, and make it public. + * decl.c (xref_basetypes): Avoid ill-timed recursion. + * init.c (build_offset_ref): Use lookup_member, not three separate + name-lookups. Call enforce_access rather than checking for + illegal accesses here. + (resolve_offset_ref): Likewise. + * lex.c (do_identifier): Likewise. + * method.c (hack_identifier): Likewise. + * parse.y (self_reference): Remove. + (opt_component_decl_list): Don't use it. + * parse.c: Regenerated. + * pt.c (print_candidates): Generalize to handle lists of + overloaded functions. + (instantiate_class_template): Don't rely on TREE_VIA_PRIVATE; it's + not set. + (get_template_base): Use new calling convention for dfs_walk. + * search.c: Include varray.h. Add prototypes. + (dfs_walk): Accept a data pointer to pass to the work functions. + All callers changed. All work functions changed. + (breadth_first_search): Rename to bfs_walk, and make consistent + with dfs_walk. + (dfs_walk_real): New function. + (canonical_binfo): New function. + (context_for_name_lookup): Likewise. + (shared_marked_p): Likewise. + (shared_unmarked_p): Likewise. + (lokup_field_queue_p): Likewise. + (lookup_field_r): Generalize to handle both functions and fields. + (lookup_field): Just call lookup_member. + (lookup_fnfields): Likewise. + (lookup_member): Move body of lookup_field here and generalize. + (dfs_accessible_queue_p): Likewise. + (dfs_accessible_p): Likewise. + (dfs_access_in_type): Likewise. + (access_in_type): Likewise. + (compute_access): Remove, and replace with ... + (accessible_p): New function. + (vbase_types): Remove. + (vbase_decl_ptr_intermediate): Likewise. + (vbase_decl_ptr): Likewise. + (vbase_init_result): Likewise. + (closed_envelopes): Likewise. + (bvtable): Likewise. + +1999-03-09 Jason Merrill <jason@yorick.cygnus.com> + + * call.c (add_function_candidate): Check for proper number of args + before checking the validity of those args. + +1999-03-06 Jason Merrill <jason@yorick.cygnus.com> + + * cp-tree.h (struct lang_type): Add anon_union field. + (ANON_UNION_TYPE_P): Use it instead of examining type. + (SET_ANON_UNION_TYPE_P): New macro. + * decl.c (check_tag_decl): Use it. + + * search.c (compute_access): Handle non-type contexts earlier, and + handle NULL_TREE. + + * tree.c (build_exception_variant): Use copy_to_permanent. + + * decl2.c (setup_initp): Give statics with no priority the default + priority here. + (do_dtors, do_ctors, finish_file): Remove special handling of + non-prioritized statics. + +1999-03-05 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (ANON_UNION_TYPE_P): Robustify. + * decl.c (make_typename_type): Don't issue an error if an + immediate lookup fails; it migt be resolved later. + * friend.c (is_friend): Add comment. + * search.c (breadth_first_search): Add POSTFN and DATA + parameters. Tidy. All callers changed. + (lookup_field_queue_p): New function. + (lookup_field_r): Likewise. + (lookup_field_post): Likewise. + (lookup_field): Use them, via breadth_first_search, instead of + duplicating logic. + (compute_access): Robustify. + (lookup_fnfield_info): New structure. + +1999-03-05 Jason Merrill <jason@yorick.cygnus.com> + + * pt.c (tsubst, case ARRAY_REF): Use tsubst_expr again. + +1999-03-03 Jason Merrill <jason@yorick.cygnus.com> + + * class.c, decl2.c, method.c, pt.c: Add 'static' to make SunOS 4 + cc happy. + + * decl2.c (import_export_class): Also return if + CLASSTYPE_INTERFACE_ONLY is set. + +1999-03-03 Martin von Löwis <loewis@informatik.hu-berlin.de> + + * decl.c (push_overloaded_decl): Only overwrite the old binding if + there was one. + * decl2.c (do_local_using_decl): Fix loop termination. + +1999-03-02 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (determine_specialization): Don't declare. + * pt.c (determine_specialization): Make it static. Eliminate + complain parameter. Note that decl is always non-NULL now, and + simplify accordingly. + + * decl.c (maybe_push_to_top_level): Always call + push_cp_function_context. + (pop_from_top_level): Always call pop_cp_function_context. + +1999-02-26 Nathan Sidwell <nathan@acm.org> + + * typeck.c (complete_type_or_else): Add VALUE arg, for helpful + diagnostics. + * cp-tree.h (complete_type_or_else): Added VALUE parameter. + * init.c (build_new_1): Extra arg to complete_type_or_else. + (build_delete): Likewise. + * typeck.c (require_complete_type): Likewise. + (pointer_int_sum): Likewise. + (pointer_diff): Likewise. + (build_component_ref): Likewise. + + * typeck2.c (incomplete_type_error): Always use cp_error. + Show declaration of undefined type, if appropriate. + Deal with UNKNOWN_TYPE nodes. + + * typeck.c (require_complete_type): Use TYPE_SIZE as + size_zero_node to mean incomplete type. + (require_complete_type_in_void): New function. + (build_compound_expr): Call complete_type_in_void for LHS. + (build_c_cast): Call complete_type_in_void for void cast. + * cvt.c (ocp_convert): Call complete_type_in_void for void cast. + * decl.c (cplus_expand_expr_stmt): Void expression checks moved to + require_complete_type_in_void. Call it. + * cp-tree.h (require_complete_type_in_void): Prototype new function. + + * typeck.c (convert_arguments): Use alternative format for + function decls. Don't require_complete_type here. Simplify + diagnostic printing. + (convert_for_initialization): Don't require_complete_type on RHS yet. + * call.c (convert_arg_to_ellipsis): Call require_complete_type. + + * call.c (build_over_call): Cope with qualified void return type. + * semantics.c (finish_call_expr): Likewise. + * typeck.c (build_function_call_real): Likewise. + (c_expand_return): Likewise. + * decl2.c (reparse_absdcl_as_expr): Cope with qualified void type. + + * call.c (print_z_candidates): Use alternate print format, to be + consistent with (pt.c) print_candidates. + * method.c (hack_identifier): List candidate members. + * search.c (lookup_field): Build ambiguous list, and show it, if + ambiguous. + +1999-02-26 Mark Mitchell <mark@markmitchell.com> + + * typeck.c (decay_conversion): Don't confuse constant array + variables with their initializers. + + * decl.c (duplicate_decls): Copy DECL_TEMPLATE_INSTANTIATED when + merging decls. + * pt.c (regenerate_decl_from_template): Tweak for clarity. + (instantiate_decl): Mark a decl instantiated before regenerating + it to avoid recursion. + * tree.c (mapcar): Don't call decl_constant_value unless we know + something is TREE_READONLY_DECL_P. + + * class.c (check_for_override): Don't stop checking when we find + the first overridden function. Delete #if 0'd code. + * search.c (get_matching_virtual): Likewise. + +1999-02-25 Richard Henderson <rth@cygnus.com> + + * lang-specs.h: Define __FAST_MATH__ when appropriate. + +1999-02-24 Mike Stump <mrs@wrs.com> + + * typeck.c (convert_for_assignment): Allow boolean integral constant + expressions to convert to null pointer. + +1999-02-24 Martin von Loewis <loewis@informatik.hu-berlin.de> + + * decl.c (lookup_namespace_name): Resolve namespace aliases. + + * class.c (push_nested_class): Allow namespaces. + + * decl2.c (set_decl_namespace): Add friendp parameter. + * decl.c (grokfndecl): Pass it. + (grokvardecl): Likewise. + * cp-tree.h: Change declaration. + +1999-02-24 Jason Merrill <jason@yorick.cygnus.com> + + * pt.c (tsubst): Allow an array of explicit size zero. + +1999-02-23 Jason Merrill <jason@yorick.cygnus.com> + + * errfn.c: Change varargs code to look like toplev.c. + + * method.c (process_modifiers): Don't prepend 'U' for char or + wchar_t. + +1999-02-20 Craig Burley <craig@jcb-sc.com> + + * Make-lang.in (cplib2.ready): Don't consider updating + cplib2 stuff if the current directory isn't writable, as + it won't work (such as during a `make install'). Sun Feb 21 20:38:00 1999 H.J. Lu (hjl@gnu.org) @@ -8,42 +1726,1410 @@ Sun Feb 21 20:38:00 1999 H.J. Lu (hjl@gnu.org) destructors local to the file if ASM_OUTPUT_CONSTRUCTOR and ASM_OUTPUT_DESTRUCTOR are defined. -Sat Feb 20 15:08:42 1999 Jeffrey A Law (law@cygnus.com) +1999-02-19 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (CLASSTYPE_METHOD_VEC): Adjust comment. + (fn_type_unification): Adjust prototype. + (lookup_fnfields_1): Declare. + * call.c (add_template_candidate_real): Adjust call to + fn_type_unification. + * class.c (add_method): Don't allow duplicate declarations of + constructors or destructors. + (resolve_address_of_overloaded_function): Remove unused variable. + Adjust call to fn_type_unification. + * decl.c (grokfndecl): Be more robust in the face of illegal + specializations. + * decl2.c (check_classfn): Remove hokey handling of member + templates. + * pt.c (determine_specialization): Improve comments. Adjust to + handle template argument deduction as per the standard. + (check_explicit_specialization): Fix comment spacing. Handle + type-conversion operators correctly. Improve error-recovery. + (fn_type_unification): Remove EXTRA_FN_ARG parameter. + (get_bindings_real): Simplify handling of static members. + * search.c (lookup_fnfields_1): Make it have external linkage. + * typeck.c (compparms): Fix comment. + (build_unary_op): Don't try to figure out which template + specialization is being referred to when when the address-of + operator is used with a template function. + +Thu Feb 18 23:40:01 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * cp-tree.h (lvalue_or_else): Qualify a char* with the `const' + keyword to match an analogous change at the top level. + + * tree.c (lvalue_or_else): Likewise. + +1999-02-17 Mark Mitchell <mark@markmitchell.com> + + * decl.c (xref_basetypes): Comment. + * pt.c (instantiate_class_template): Use xref_basetypes. + +1999-02-16 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (tsubst): Change prototype. + (tsubst_expr): Likewise. + (tsubst_copy): Likewise. + (type_unification): Remove prototype. + * call.c (convert_default_arg): Adjust call to tsubst_expr. + * class.c (resolve_address_of_overloaded_function): Just use + fn_type_unification. + * decl.c (grokdeclarator): Adjust call to tsubst. + * method.c (build_template_parm_names): Likewise. + * pt.c (GTB_VIA_VIRTUAL): New macro. + (GTB_IGNORE_TYPE): Likewise. + (resolve_overloaded_unification): Add `complain' parameter. + (try_one_overload): Likewise. + (tsubst_template_arg_vector): Likewise. + (tsubst_template_parms): Likewise. + (tsubst_aggr_type): Likewise. + (tsubst_arg_types): Likewise. + (tsubst_call_declarator_parms): Likewise. + (unify): Remove explicit_mask. + (type_unification_real): Likewise. + (get_template_base_recursive): Likewise. + (coerce_template_template_parms): Provide prototype. + (tsubst_function_type): Likewise. + (try_class_unification): New function. + All callers changed to use new complain parameter. + (get_template_base): Use try_class_unification. + (unify): Adjust handling of classes derived from template types. + (fn_type_unification): Substitute explicit arguments before + unification. + +1999-02-16 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> + + * decl.c (pushdecl): Remove dead code. + +1999-02-16 Jason Merrill <jason@yorick.cygnus.com> + + * decl2.c (finish_objects): Fix code I missed in previous change. + +1999-02-13 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (grokfndecl): Return NULL_TREE instead of error_mark_node. + (grokdeclarator): Don't expect error_mark_node from grokfndecl. + + * pt.c (maybe_process_partial_specialization): Complain about + 'template <>' on non-specialization. + +1999-02-10 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (grokdeclarator): Catch wierd declarators. + * decl2.c (finish_file): Don't abort because of namespace parsing + failure. + (check_decl_namespace): Remove. + +1999-02-09 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (get_template_base): Don't declare. + (dfs_walk): Declare. + (dfs_unmark): Likewise. + (markedp): Likewise. + * pt.c (unify): Remove duplicate declaration. Pass tparms and + targs to get_template_base. + (get_template_base_recursive): Move here from search.c. Check to + see that the base found can be instantiated to form the desired + type. + (get_template_base): Likewise. + (get_class_bindings): Simplify. + * search.c (get_template_base_recursive): Move to pt.c. + (get_template_base): Likewise. + (markedp): Make it global. + (dfs_walk): Likewise. + (dfs_unmark): Likewise. + +1999-02-07 Jason Merrill <jason@yorick.cygnus.com> + + * pt.c (maybe_process_partial_specialization): Complain about + specialization in wrong namespace. + * tree.c (decl_namespace_context): New fn. + +1999-02-06 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> + + * decl2.c (arg_assoc_type): Handle TEMPLATE_TEMPLATE_PARM. + * pt.c (coerce_template_template_parms): Handle nested + template template parameters. + +Sat Feb 6 18:08:40 1999 Jeffrey A Law (law@cygnus.com) + + * typeck2.c: Update email addresses. + +1999-02-04 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> + + * pt.c (unify): Call coerce_template_parms with the COMPLAIN flag + turned off. + +1999-02-04 Jason Merrill <jason@yorick.cygnus.com> + + * lex.c (retrofit_lang_decl): Split out... + (build_lang_decl): From here. + * decl.c (pushdecl): Call it for functions generated by the middle + end that don't have DECL_LANG_SPECIFIC. + * cp-tree.h: Declare it. + + * decl2.c: Remove flag_init_priority. Always enable initp stuff. + (start_objects, finish_objects): Only use special + init_priority code if the user specified a priority. + (do_ctors, do_dtors): Use DEFAULT_INIT_PRIORITY for the non-initp + objects. + +Wed Feb 3 22:50:17 1999 Marc Espie <Marc.Espie@liafa.jussieu.fr> + + * Make-lang.in (GXX_OBJS): Remove choose-temp.o, pexecute.o and + mkstemp.o. Get them from libiberty now. + (DEMANGLER_PROG): Simlarly, remove getopt.o getopt1.o. + +Tue Feb 2 22:38:48 1999 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> + + * decl2.c (lang_decode_option): Use read_integral_parameter. + +1999-02-01 Mark Mitchell <mark@markmitchell.com> + + * pt.c (tsubst, case TYPENAME_TYPE): Check TYPE_BEING_DEFINED + before calling complete_type_or_else. + +Mon Feb 1 09:49:52 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * input.c (inline): Don't define, its handled by system.h. + +Sun Jan 31 20:34:29 1999 Zack Weinberg <zack@rabi.columbia.edu> + + * decl2.c: Don't define flag_no_ident here. Don't process + -f(no-)ident here. + * cp-tree.h: Don't declare flag_no_ident here. + * lang-specs.h: Map -Qn to -fno-ident. + +1999-01-28 Jason Merrill <jason@yorick.cygnus.com> + + * cp-tree.h (struct tree_binding): Replace scope field with a union. + (BINDING_SCOPE): Adjust. + * decl.c (BINDING_LEVEL): Adjust. + +1999-01-26 Jason Merrill <jason@yorick.cygnus.com> + + * pt.c (instantiate_class_template): Set up the DECL_INITIAL of + member constants. + + * init.c (expand_member_init): Pull out TYPE_MAIN_VARIANT in + a ctor initializer. + + * tree.c (equal_functions): Fix name in prototype. + + * decl.c (push_local_binding): Add FLAGS argument. + (pushdecl, push_overloaded_decl): Pass it. + * decl2.c (do_local_using_decl): Likewise. + * cp-tree.h: Adjust prototype. + * decl.c (poplevel): Fix logic. + + * decl.c (push_local_binding): Also wrap used decls in a TREE_LIST. + (poplevel): Handle that. Fix logic for removing TREE_LISTs. + (cat_namespace_levels): Don't loop forever. + +1999-01-25 Richard Henderson <rth@cygnus.com> + + * typeck.c (build_reinterpret_cast): Fix typo in duplicated test. + +1999-01-25 Jason Merrill <jason@yorick.cygnus.com> + + * class.c (resolve_address_of_overloaded_function): Mark the + chosen function used. + + * call.c (build_call): Make sure that a function coming in has + been marked used already. + * decl.c (expand_static_init): Call mark_used instead of + assemble_external. + * except.c (call_eh_info, do_pop_exception, expand_end_eh_spec, + alloc_eh_object, expand_throw): Likewise. + * init.c (build_builtin_delete_call): Likewise. + * rtti.c (call_void_fn, get_tinfo_fn, build_dynamic_cast_1, + expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc, + expand_generic_desc): Likewise. + +1999-01-25 Martin von Löwis <loewis@informatik.hu-berlin.de> - 1999-01-25 Martin von Löwis <loewis@informatik.hu-berlin.de> * tree.c (equal_functions): New function. (ovl_member): Call it. -Sat Feb 6 17:00:48 1999 Jeffrey A Law (law@cygnus.com) +1999-01-24 Jason Merrill <jason@yorick.cygnus.com> - * typeck2.c: Update email addresses. + * cvt.c (cp_convert_to_pointer): Fix conversion of 0 to pmf. + +1999-01-25 Martin von Loewis <loewis@informatik.hu-berlin.de> + + * decl.c (decls_match): Return 1 if old and new are identical. + (push_overloaded_decl): Set OVL_USED when PUSH_USING. + +1999-01-24 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (start_function): Make member functions one_only on windows. + * decl2.c (import_export_decl): Likewise. + + * decl.c (grokdeclarator): Don't complain about implicit int in + a system header. Change same-name field check to not complain in + a system header instead of within extern "C". + +1999-01-21 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (PUSH_GLOBAL): New macro. + (PUSH_LOCAL): Likewise. + (PUSH_USING): Likewise. + (namespace_bindings_p): Declare. + (push_overloaded_decl): Likewise. + * decl.c (push_overloaded_decl): Don't make it static. Check for + illegal declarations after using declarations here. + (namespace_bindings_p): Likewise. + (duplicate_decls): Don't consider declarations from different + namespaces to be the same. + (pushdecl): Use symbolic PUSH_ constants in calls to + push_overloaded_decl. + (push_overloaded_decl_1): Likewise. + * decl2.c (validate_nonmember_using_decl): Tweak `std' handling. + (do_nonmember_using_decl): Check for illegal using declarations + after ordinary declarations here. + (do_local_using_decl): Call pushdecl to insert declarations. + +1999-01-21 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (grokdeclarator): Fix lang_c -> lang_name_c typo. + +1999-01-21 Mark Mitchell <mark@markmitchell.com> + + * tree.c (build_cplus_array_type_1): Don't call build_array_type + for types involving template parameters. + + * cp-tree.h (PARM_DECL_EXPR): Delete. + (convert_default_arg): Change prototype. + (check_default_argument): Declare. + (search_tree): Likewise. + * call.c (convert_default_arg): Take the function to which the + default argument belongs as a parameter, and do any necessary + instantiation here, instead of ... + (build_over_call): Here. + * decl.c (local_variable_p): New function. + (check_default_argument): Likewise, split out and tidied from ... + (grokparms): Here. + * error.c (dump_expr): Don't set PARM_DECL_EXPR. + * pt.c (tsubst_call_declarator_parms): New function. + (for_each_template_parm): Handle ARRAY_REFs. Do the obvious thing + with CALL_EXPRs, rather than trying to be clever. + (tsubst): Use tsubst_call_declarator_parms. + * tree.c (search_tree): Don't make it static. + * typeck.c (convert_arguments): Use new interface to + convert_default_arg. + +1999-01-20 Mark Mitchell <mark@markmitchell.com> + + * error.c (dump_function_decl): Don't print the argument types for + a function when the verbosity level is negative. + + * call.c (build_over_call): Check format attributes at call-time. + + * pt.c (tsubst_copy): Fix comment. + (unify): Don't allow unification with variable-sized arrays. + + * semantics.c (finish_stmt_expr): When processing a template make + the BIND_EXPR long-lived. + +1999-01-19 Jason Merrill <jason@yorick.cygnus.com> + + * decl2.c (finish_vtable_vardecl): Make vtables comdat here. + (import_export_vtable): Not here. + +1999-01-18 Jason Merrill <jason@yorick.cygnus.com> + + * typeck.c (build_component_ref): Wrap an OVERLOAD around a unique + non-static member function. + +1999-01-18 Nathan Sidwell <nathan@acm.org> + + * class.c (instantiate_type): Only diagnose illegal address of member + function if complaining. + + * decl.c (lookup_name_real): Remove duplicate code. + +1999-01-18 Jason Merrill <jason@yorick.cygnus.com> + + * tree.c (copy_template_template_parm): Use permanent_obstack. + +1999-01-18 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> + + * pt.c (unify): Remove restrictions on deduction of argument + of template template parameters. + +1999-01-18 Nathan Sidwell <nathan@acm.org> + + * rtti.c (build_dynamic_cast_1): Resolve OFFSET_REF exprs. + + * class.c (resolve_address_of_overloaded_function): Show list of + all candidates, when none of them match. + +1999-01-18 Chip Salzenberg <chip@perlsupport.com> + + * typeck.c (comp_ptr_ttypes_reinterpret): Per ANSI, tighten up + definition of 'casting away const' in reinterpret_cast<>. + +1999-01-18 Graham <grahams@rcp.co.uk> + + * cvt.c: Add include for decl.h, remove extern for + static_aggregates which is now provided by decl.h. + + * Makefile.in (cvt.o): Add dependency for decl.h and missing + dependencies for convert.h and flags.h. + +1999-01-18 Nathan Sidwell <nathan@acm.org> + + * decl2.c (do_dtors): Set current location to that of the + decl, for sensible diagnostics and debugging. + (check_classfn): Issue `incomplete type' error, if + class is not defined. + +1999-01-16 Jason Merrill <jason@yorick.cygnus.com> + + * cp-tree.h: Add prototype for bound_pmf_p. + +1999-01-16 Jason Merrill <jason@yorick.cygnus.com> + Manfred Hollstein <manfred@s-direktnet.de> + + * decl.c (grokdeclarator): Don't make 'main(){}' an error with only + -Wreturn-type. + +1999-01-16 Nathan Sidwell <nathan@acm.org> + + * cp-tree.h (struct lang_type): Added has_mutable flag. + (CLASSTYPE_HAS_MUTABLE): New macro to access it. + (TYPE_HAS_MUTABLE_P): New macro to read it. + (cp_has_mutable_p): Prototype for new function. + * class.c (finish_struct_1): Set has_mutable from members. + * decl.c (cp_finish_decl): Clear decl's TREE_READONLY flag, if + it contains a mutable. + * typeck.c (cp_has_mutable_p): New function. + +1999-01-15 Mark Mitchell <mark@markmitchell.com> + + * pt.c (process_template_parm): Ignore top-level qualifiers on + non-type parameters. + + * decl.c (start_function): Use current_function_parms in the call + to require_complete_type_for_parms, not the probably empty + DECL_ARGUMENTS. + +1999-01-14 Jason Merrill <jason@yorick.cygnus.com> + + * semantics.c (finish_asm_stmt): Don't warn about redundant volatile. + + * decl2.c (import_export_class): MULTIPLE_SYMBOL_SPACES only means + that we don't suppress the other copies. + * lex.c (handle_cp_pragma): Likewise. + +1999-01-13 Mark Mitchell <mark@markmitchell.com> + + * decl.c (grokdeclarator): Undo 1998-12-14 change. + * tree.c (build_cplus_array_type_1): Likewise. + * pt.c (instantiate_class_template): Remove misleading comment. + (tsubst_aggr_type): Substitute if there are template parameters, + regardless of whether or not they use template arguments. + (unify): Likewise, but for unification. + +1999-01-12 Richard Henderson <rth@cygnus.com> + + * cp-tree.h (flag_permissive): Declare extern. + +1999-01-06 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (IDENTIFIER_TYPENAME_P): Use OPERATOR_TYPENAME_FORMAT + here. + (lang_type): Add is_partial_instantiation. Decrease width of + dummy. + (PARTIAL_INSTANTIATION_P): New macro. + (OPERATOR_TYPENAME_P): Remove. + * decl.c (unary_op_p): Use IDENTIFIER_TYPENAME_P, not + OPERATOR_TYPENAME_P. + (grok_op_properties): Likewise. + * friend.c (do_friend): Handle friends that are member functions + correctly. + * lex.c (init_parse): Use OPERATOR_TYPENAME_FORMAT. + * pt.c (instantiate_class_template): Rework for clarity. Avoid + leaving TYPE_BEING_DEFINED set in obscure cases. Don't do + any more partial instantiation than is absolutely necessary for + implicit typename. Set PARTIAL_INSTANTIATION_P. + (tsubst_decl): Use IDENTIFIER_TYPENAME_P. + * semantics.c (begin_class_definition): Handle partial + specializations of a type that was previously partially + instantiated. + +Wed Jan 6 03:18:53 1999 Mark Elbrecht <snowball3@usa.net. + + * g++spec.c (LIBSTDCXX): Provide default definition. + (lang_specific_driver): Use LIBSTDCXX instead of "-lstdc++". + +Tue Jan 5 22:11:25 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * Make-lang.in (g++.o): Depend on prefix.h. + +1999-01-04 Jason Merrill <jason@yorick.cygnus.com> + + * tree.c (bound_pmf_p): New fn. + * typeck.c (build_c_cast): Use it. + + * decl.c (grok_op_properties): Use same_type_p. + +Tue Dec 22 15:09:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * Makefile.in (cvt.o): Depend on toplev.h. + + * cp-tree.h (check_template_shadow, pod_type_p): Add prototypes. + + * cvt.c: Include toplev.h. + + * except.c (get_eh_caught, get_eh_handlers): Hide prototypes and + definitions. + + * init.c (expand_vec_init): Initialize variable `itype'. + + * lex.c (yyerror): Cast the argument passed to a ctype function to + an unsigned char. + + * method.c (build_mangled_C9x_name): Wrap prototype and definition + in "HOST_BITS_PER_WIDE_INT >= 64". + + * typeck.c (build_binary_op): Mark parameter `convert_p' with + ATTRIBUTE_UNUSED. + +1998-12-22 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (TYPE_RAISES_EXCEPTIONS): Improve documentation. + * tree.c (build_exception_variant): Don't crash on empty throw + specs. + +1998-12-18 DJ Delorie <dj@cygnus.com> + + * cvt.c (convert_to_reference): Check for both error_mark_node + and NULL_NODE after call to convert_for_initialization. + +1998-12-17 Jason Merrill <jason@yorick.cygnus.com> + + * error.c (interesting_scope_p): New fn. + (dump_simple_decl): Use it. + (dump_expr, case CONSTRUCTOR): Force a & for a PMF. + (dump_expr, case OFFSET_REF): Print ->* if appropriate. + +1998-12-16 Mark Mitchell <mark@markmitchell.com> + + * class.c (resolve_address_of_overloaded_function): Do conversion + to correct type here, rather than ... + (instantiate_type): Here. + + * cp-tree.h (DECL_TEMPLATE_PARM_P): New macro. + (DECL_TEMPLATE_TEMPLATE_PARM_P): Use it. + (decl_template_parm_p): Remove. + * decl.c (pushdecl): Don't set DECL_CONTEXT for a template + parameter. + * lex.c (do_identifier): Use DECL_TEMPLATE_PARM_P. + * pt.c (push_inline_template_parms_recursive): Set it. + (decl_template_parm_p): Remove. + (check_template_shadow): Use DECL_TEMPLATE_PARM_P. + (process_template_parm): Set it. + +Wed Dec 16 16:33:58 1998 Dave Brolley <brolley@cygnus.com> + + * lang-specs.h (default_compilers): Pass -MD, -MMD and -MG to cc1plus + if configured with cpplib. + +1998-12-15 Mark Mitchell <mark@markmitchell.com> + + * decl.c (poplevel): Make sure ns_binding is initialized. + + * decl.c (finish_function): Undo inadvertent change in previous + patch. + +1998-12-14 Mark Mitchell <mark@markmitchell.com> + + * class.c (pushclass): Tweak handling of class-level bindings. + (resolve_address_of_overloaded_function): Update pointer-to-member + handling. + (instantiate_type): Likewise. + * cvt.c (cp_convert_to_pointer): Likewise. + * decl.c (pop_binding): Take the DECL to pop, not just the name. + Deal with `struct stat' hack. + (binding_level): Add to documentation. + (push_binding): Clear BINDING_TYPE. + (add_binding): New function. + (push_local_binding): Use it. + (push_class_binding): Likewise. + (poplevel): Adjust calls to pop_binding. + (poplevel_class): Likewise. + (pushdecl): Adjust handling of TYPE_DECLs; add bindings for hidden + declarations to current binding level. + (push_class_level_binding): Likewise. + (push_overloaded_decl): Adjust handling of OVERLOADs in local + bindings. + (lookup_namespace_name): Don't crash when confronted with a + TEMPLATE_DECL. + (lookup_name_real): Do `struct stat' hack in local binding + contexts. + (build_ptrmemfunc_type): Adjust documentation. + (grokdeclarator): Don't avoid building real array types when + processing templates unless really necessary. + (finish_method): Adjust calls to pop_binding. + * decl2.c (reparse_absdcl_as_expr): Recursively call ourselves, + not reparse_decl_as_expr. + (build_expr_from_tree): Deal with a template-id as the function to + call in a METHOD_CALL_EXPR. + * pt.c (convert_nontype_argument): Tweak pointer-to-member handling. + (maybe_adjust_types_For_deduction): Don't do peculiar things with + METHOD_TYPEs here. + (resolve_overloaded_unification): Handle COMPONENT_REFs. Build + pointer-to-member types where necessary. + * tree.c (build_cplus_array_type_1): Don't avoid building real + array types when processing templates unless really necessary. + (build_exception_variant): Compare the exception lists correctly. + +1998-12-13 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.def (CPLUS_BINDING): Update documentation. + * cp-tree.h (LOCAL_BINDING_P): New macro. + (lang_identifier): Rename local_value to bindings. + (tree_binding): Make `scope' of type `void*', not `tree'. + (BINDING_SCOPE): Update documentation. + (IDENTIFIER_LOCAL_VALUE): Remove. + (IDENTIFIER_CLASS_VALUE): Document. + (IDENTIFIER_BINDING): New macro. + (IDENTIFIER_VALUE): Likewise. + (TIME_IDENTIFIER_TIME): Likewise. + (TIME_IDENTIFIER_FILEINFO): Likewise. + (IMPLICIT_TYPENAME_P): Likewise. + (set_identifier_local_value): Remove. + (push_local_binding): New function. + (push_class_binding): Likewise. + * class.c (pushclass): Update comments; use push_class_binding. + * decl.c (set_identifier_local_value_with_scope): Remove. + (set_identifier_local_value): Likewise. + (push_binding): New function. + (pop_binding): Likewise. + (binding_level): Update documentation. Remove shadowed. + (BINDING_LEVEL): New macro. + (free_binding_nodes): New variable. + (poplevel): Adjust for new name-lookup scheme. Don't mess up + BLOCK_VARs when doing for-scope extension. Remove effectively + dead code. + (pushlevel_class): Tweak formatting. + (poplevel_class): Adjust for new name-lookup scheme. + (print_binding_level): Likewise. + (store_bindings): Likewise. + (pushdecl): Likewise. + (pushdecl_class_level): Likewise. + (push_class_level_binding): Likewise. + (push_overloaded_decl): Update comments. Adjust for new + name-lookup scheme. + (lookup_name_real): Likewise. + (lookup_name_current_level): Likewise. + (cp_finish_decl): Likewise. + (require_complete_types_for_parms): Likewise. Remove misleading + #if 0'd code. + (grok_parms): Likewise. Don't call + require_complete_types_for_parms here. + (grok_ctor_properties): Don't treat templates as copy + constructors. + (grop_op_properties): Or as assignment operators. + (start_function): Document. Adjust for new name-lookup scheme. + (finish_function): Likewise. + * decl2.c (do_local_using_decl): Use push_local_binding. + * lex.c (begin_definition_of_inclass_inline): New function, split + out from ... + (do_pending_inlines): Here, and ... + (process_next_inline): Here. + (get_time_identifier): Use TIME_IDENTIFIER_* macros. + (init_filename_times): Likewise. + (extract_interface_info): Likewise. + (ste_typedecl_interface_info): Likewise. + (check_newline): Likewise. + (dump_time_statistics): Likewise. + (handle_cp_pragma): Likewise. + (do_identifier): Adjust for new name-lookup scheme. + * parse.y (function_try_block): Return ctor_initializer_opt value. + (fndef): Use it. + (fn.defpen): Pass appropriate values to start_function. + (pending_inline): Use functor_try_block value, and pass + appropriate values to finish_function. + * pt.c (is_member_template): Update documentation; remove handling + of FUNCTION_DECLs. As per name, this function should deal only in + TEMPLATE_DECLs. + (decl_template_parm_p): Change name of olddecl parameter to decl. + (check_template_shadow): Adjust for new name-lookup scheme. + (lookup_template_class): Likewise. + (tsubst_decl): Tweak so as not to confuse member templates with + copy constructors and assignment operators. + (unify): Handle UNION_TYPEs. + * ptree.c (print_lang_identifier): Adjust for new name-lookup scheme. + (lang_print_xnode): Adjust for new name-lookup scheme. + * typeck.c (mark_addressable): Likewise. + (c_expand_return): Likewise. + +1998-12-08 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (grokdeclarator): Allow field with same name as class + in extern "C". + + * decl.c (lookup_name_real): Don't limit field lookup to types. + * class.c (check_member_decl_is_same_in_complete_scope): No error + if icv and x are the same. + * lex.c (do_identifier): Tweak error message. + +1998-12-10 Mark Mitchell <mark@markmitchell.com> + + * decl.c (start_enum): Use push_obstacks, not + end_temporary_allocation. + (finish_enum): Call pop_obstacks. + +1998-12-10 Mark Mitchell <mark@markmitchell.com> + + * class.c (instantiate_type): Return error_mark_node rather than + junk. + +1998-12-09 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (most_specialized_instantiation): New function. + (print_candidates): Likewise. + * class.c (validate_lhs): Remove. + (resolve_address_of_overloaded_function): New function, split out + and then substantially reworked, from ... + (instantiate_type): Use it. Simplify. + * cvt.c (convert_to_reference): Complain when caller has indicated + that's the right thing to do. Don't crash if instantiate_type + fails. + * pt.c: Substitute `parameters' for `paramters' throughout. + (print_candidates): Don't make it static. + (most_specialized_instantiation): Split out from ... + (most_specialized): Here. + +Wed Dec 9 15:33:01 1998 Dave Brolley <brolley@cygnus.com> + + * lex.c (lang_init_options): Initialize cpplib. + * decl2.c (parse_options,cpp_initialized): Removed. + (lang_decode_option): Move initialization of cpplib to + lang_init_options. + +1998-12-09 Mark Mitchell <mark@markmitchell.com> + + * decl.c (grokdeclarator): Update the name of the TEMPLATE_DECL, as + well as the TYPE_DECL, when a typedef name is assigned to a + previously anonymous type. + +1998-12-08 Andrew MacLeod <amacleod@cygnus.com> + + * cp/except.c (call_eh_info): Use __start_cp_handler instead of + __cp_eh_info for getting the eh info pointer. Add table_index to + field list. + (push_eh_cleanup): Don't increment 'handlers' data field. + (process_start_catch_block): Don't set the 'caught' field. + + * cp/exception.cc (CP_EH_INFO): New macro for getting the + exception info pointer within library routines. + (__cp_eh_info): Use CP_EH_INFO. + (__start_cp_handler): Get exception info pointer, set caught field, + and increment the handlers field. Avoids this being done by handlers. + (__uncatch_exception, __check_eh_spec): Use CP_EH_INFO macro. + (uncaught_exception): Use CP_EH_INFO macro. + +Tue Dec 8 10:48:21 1998 Jeffrey A Law (law@cygnus.com) + + * Make-lang.in (cxxmain.o): Depend on $(DEMANGLE_H), not demangle.h + +Mon Dec 7 17:56:06 1998 Mike Stump <mrs@wrs.com> + + * lex.c (check_newline): Add support for \ as `natural' + characters in file names in #line to be consistent with #include + handling. We support escape processing in the # 1 "..." version of + the command. See also support in cp/lex.c. + +1998-12-07 Zack Weinberg <zack@rabi.phys.columbia.edu> + + * cp/decl2.c: s/data/opts/ when initializing cpp_reader + structure. + +1998-12-07 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (build_typename_type): Set DECL_ARTIFICIAL. + + * error.c (dump_simple_decl): Also print namespace context. + (dump_function_decl): Likewise. + + * decl2.c (ambiguous_decl): Don't print old value if it's + error_mark_node. + + * decl.c (lookup_name_real): Fix handling of local types shadowed + by a non-type decl. Remove obsolete code. + * cp-tree.h (DECL_FUNCTION_SCOPE_P): New macro. + + * lang-options.h: Add -fpermissive. + * decl2.c: Likewise. + * cp-tree.h: Add flag_permissive. + * decl.c (init_decl_processing): If neither -fpermissive or -pedantic + were specified, set flag_pedantic_errors. + * call.c (build_over_call): Turn dropped qualifier messages + back into pedwarns. + * cvt.c (convert_to_reference): Likewise. + * typeck.c (convert_for_assignment): Likewise. + +1998-12-05 Jason Merrill <jason@yorick.cygnus.com> + + * decl2.c (coerce_new_type): Use same_type_p. + (coerce_delete_type): Likewise. + + * call.c (check_dtor_name): Return 1, not error_mark_node. + +1998-12-04 Jason Merrill <jason@yorick.cygnus.com> + + * lex.c (handle_cp_pragma): Disable #pragma interface/implementation + if MULTIPLE_SYMBOL_SPACES. + + * pt.c (check_template_shadow): New fn. + * decl2.c (grokfield): Use it. + * decl.c (pushdecl): Likewise. + (pushdecl_class_level): Likewise. + (start_method): Likewise. + (xref_tag): Don't try to use 't' if we're defining. + + * call.c (check_dtor_name): Just return an error_mark_node. + * pt.c (lookup_template_class): Complain about using non-template here. + * parse.y (apparent_template_type): Not here. + + * pt.c (check_explicit_specialization): Complain about specialization + with C linkage. + + * lang-options.h: Add -f{no-,}implicit-inline-templates. + + * pt.c (convert_nontype_argument): Don't assume that any integer + argument is intended to be a constant-expression. + +1998-12-03 Mark Mitchell <mark@markmitchell.com> + + * class.c (handle_using_decl): Fix comment. Don't lookup + constructors in base classes. + (validate_lhs): Fix typo in comment. + * search.c (lookup_field_1): Don't return a USING_DECL. + + * cp-tree.h (DECL_ACCESS): Improve documentation. + + * decl.c (expand_static_init): Don't set the initialization-done + flag until the initialization is done. + +1998-12-02 Mark Mitchell <mark@markmitchell.com> + + * decl2.c (validate_nonmember_using_decl): Complain about using + declarations for class members. + +1998-11-29 Jason Merrill <jason@yorick.cygnus.com> + + * typeck2.c (process_init_constructor): Use same_type_p. + + * decl.c (check_tag_decl): Don't warn about null decl inside a + class. + + * pt.c (unify, case OFFSET_TYPE): Pass down 'strict' rather than + UNIFY_ALLOW_NONE. + (convert_nontype_argument): Use TYPE_PTRMEMFUNC_FN_TYPE. + (resolve_overloaded_unification): Strip baselinks. + +Fri Nov 27 13:07:23 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * g++spec.c: Don't prototype xmalloc. + +1998-11-25 Jason Merrill <jason@yorick.cygnus.com> + + * except.c (expand_throw): Use TYPE_PTR_P to check for pointers. + + * decl.c (check_tag_decl): Do complain about null friend decl at + file scope. + +1998-11-25 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * lex.c (make_lang_type): Clear the whole struct lang_type, not + only the first multiple of sizeof (int). + +1998-11-24 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (start_decl): An explicit specialization of a static data + member is only a definition if it has an initializer. + + * except.c (expand_throw): Use cp_finish_decl for the throw temp. + * cvt.c (build_up_reference): Pass DIRECT_BIND down into + cp_finish_decl. + * init.c (expand_default_init): Check for DIRECT_BIND instead of + DECL_ARTIFICIAL. + + * call.c (build_over_call): Use build_decl. + + * except.c (expand_throw): Just use convert, not + build_reinterpret_cast. + + * lex.c (handle_generic_pragma): Use token_buffer. + + * decl.c (check_tag_decl): Don't complain about null friend decl. + +1998-11-24 Dave Pitts <dpitts@cozx.com> + + * Make-lang.in (DEMANGLER_PROG): Move the output arguments to the + first position. + * lex.c (check_newline): Use ISALPHA. + (readescape): Use ISGRAPH. + (yyerror): Use ISGRAPH. + +1998-11-24 Nathan Sidwell <nathan@acm.org> + + * search.c (get_abstract_virtuals): Do not use initial + CLASSTYPE_ABSTRACT_VIRTUALS. + * typeck2.c (abstract_virtuals_error): Show location of abstract + declaration. + * call.c (build_new_method_call): Use + CLASSTYPE_ABSTRACT_VIRTUAL, rather than recalculate. + * class.c (finish_struct_bits): Don't bother working out whether + get_abstract_virtuals will do anything, just do it. + +1998-11-24 Graham <grahams@rcp.co.uk> + + * typeck.c (build_component_ref): Remove unused statement. + +1998-11-24 Jason Merrill <jason@yorick.cygnus.com> + + * class.c (add_method): Catch invalid overloads. + + * class.c (add_method): Build up OVERLOADs properly for conversion ops. + * search.c (lookup_conversions): Handle getting real OVERLOADs. + (add_conversions): Likewise. Revert last change. + * call.c (add_conv_candidate): Pass totype to add_candidate instead + of fn. Don't add a new candidate if the last one was for the same + type. + (print_z_candidates): Handle getting a type as a function. + (joust): If we got two conversion candidates to the same type, + just pick one. + (build_object_call): Lose 'templates'. + (build_user_type_conversion_1): Handle getting real OVERLOADs. + +1998-11-23 Jason Merrill <jason@yorick.cygnus.com> + + * typeck2.c (process_init_constructor): If there are elements + that don't have initializers and they need to have constructors + run, supply them with initializers. + + * class.c (finish_struct_1): A class with a 0-width bitfield is + still empty. + +1998-11-23 Mark Mitchell <mark@markmitchell.com> + + * pt.c (instantiate_class_template): Don't try to figure out what + specialization to use for a partial instantiation. Correct + typos in a couple of comments. Avoid calling uses_template_parms + multiple times. + +1998-11-23 Benjamin Kosnik <bkoz@cygnus.com> + + * method.c (process_overload_item): Add call to + build_mangled_C9x_name for intTI_type_nodes. + (build_mangled_C9x_name): Add prototype, define. + * decl.c (init_decl_processing): Add names for + TImode_type_node. + +1998-11-23 Jason Merrill <jason@yorick.cygnus.com> + + * parse.y (named_class_head): Update CLASSTYPE_DECLARED_CLASS. + + * class.c (finish_struct_1): Set things up for 0-width bitfields + like we do for others. + + * decl.c (check_tag_decl): New fn. + (shadow_tag): Split out from here. + * decl2.c (grok_x_components): Call it. + +1998-11-22 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c: Lose warn_about_return_type. + (grokdeclarator): Always complain about implicit int, except for + `main () { ... }'. + + * decl.c (tag_name): New fn. + (xref_tag): Complain about using typedef-name after class-key. + + * init.c (expand_vec_init): Also keep going if from_array. + + * tree.c (is_overloaded_fn): Also handle the output of + build_offset_ref. + + * decl.c (grokdeclarator): Use constructor_name when comparing + field name against enclosing class. + * class.c (finish_struct_anon): Likewise. + +1998-11-22 Mark Mitchell <mark@markmitchell.com> + + * decl.c (poplevel): Remove code to handle KEEP == 2. + (finish_function): Don't confuse BLOCK-order when + processing a destructor. + +1998-11-21 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (require_complete_types_for_parms): Call layout_decl + after we've completed the type. + +1998-11-21 Martin von Löwis <loewis@informatik.hu-berlin.de> + + * decl2.c (validate_nonmember_using_decl): Allow using templates + from the global namespace. + +1998-11-21 Jason Merrill <jason@yorick.cygnus.com> + + Handle specifying template args to member function templates. + * tree.c (build_overload): Always create an OVERLOAD for a template. + * search.c (add_conversions): Handle finding an OVERLOAD. + * decl2.c (check_classfn): Likewise. + * lex.c (identifier_type): See through a baselink. + * parse.y (do_id): Don't call do_identifier if we got a baselink. + * class.c (instantiate_type, case TREE_LIST): Recurse. + + * decl.c (grokdeclarator): Allow a boolean constant for array + bounds, odd as that sounds. + + * pt.c (unify): Be more strict about non-type parms, except for + array bounds. + (UNIFY_ALLOW_INTEGER): New macro. + +1998-11-19 Manfred Hollstein <manfred@s-direktnet.de> + + * Make-lang.in (mandir): Replace all uses of $(mandir) by $(man1dir). + +1998-11-19 Jason Merrill <jason@yorick.cygnus.com> + + * semantics.c (begin_class_definition): Call + maybe_process_partial_specialization before push_template_decl. + Don't call push_template_decl for a specialization. + * search.c (lookup_field): Do return a member template class. + * decl2.c (handle_class_head): Handle member template classes. + + * decl.c (grokdeclarator): A parm type need not be complete. + + * pt.c (convert_nontype_argument): Fix thinko. + +1998-11-18 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (PTRMEM_CST_CLASS): Fix typo. + (global_delete_fndecl): New variable. + * decl.c (global_delete_fndecl): Define it. + (init_decl_processing): Set it. + * init.c (build_builtin_delete_call): Use it. + * tree.c (mapcar): Recursively call mapcar for the type of EXPR + nodes. + +1998-11-18 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (cplus_expand_expr_stmt): Always complain about unresolved + type. + + * tree.c (lvalue_p_1): An INDIRECT_REF to a function is an lvalue. + * call.c (build_object_call): Also support references to functions. + * typeck.c (convert_for_initialization): Don't decay a function + if the target is a reference to function. + + * search.c (add_conversions): Get all the overloads from a class. + + * decl.c (grok_ctor_properties): Complain about any constructor + that will take a single arg of the class type by value. + + * typeck2.c (build_functional_cast): Can't create objects of + abstract classes this way. + * cvt.c (ocp_convert): Likewise. + + * decl.c (grokfndecl): Member functions of local classes are not + public. + +1998-11-18 Mark Mitchell <mark@markmitchell.com> + + * Make-lang.in (cc1plus): Add dependency on hash.o. + +1998-11-18 Jason Merrill <jason@yorick.cygnus.com> + + * search.c (get_abstract_virtuals): Complain about virtuals with + no final overrider. + * typeck2.c (abstract_virtuals_error): Remove handling for virtuals + with no final overrider. + * class.c (override_one_vtable): Don't set DECL_ABSTRACT_VIRTUAL_P + on virtuals with no final overrider. + + * lex.c (reinit_parse_for_block): Add a space after the initial ':'. + + * class.c (finish_struct_1): Don't remove zero-width bit-fields until + after layout_type. + + * friend.c (do_friend): Don't set_mangled_name_for_decl. + + * class.c (finish_struct_anon): Complain about non-fields. + * decl2.c (build_anon_union_vars): Likewise. + + * decl.c (grokdeclarator): Normal data members can't have the same + name as the class, either. + * class.c (finish_struct_anon): Neither can members of an + anonymous union. + +1998-11-17 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (TYPE_ALIAS_SET): Document language-dependent uses. + (TYPE_BINFO): Likewise. + (IS_AGGR_TYPE): Tweak. + (SET_IS_AGGR_TYPE): New macro. + (CLASS_TYPE_P): Tweak. + (lang_type): Group mark bitfields together. Remove linenum. + (CLASSTYPE_SOURCE_LINE): Remove macro. + (CLASSTYPE_MARKED_N): New macro. + (SET_CLASSTYPE_MARKED_N): Likewise. + (CLEAR_CLASSTYPE_MARKED_N): Likewise. + (CLASS_TYPE_MARKED_*): Use them. + (SET_CLASSTYPE_MARKED_*): Likewise. + (CLEAR_CLASSTYPE_MARKED_*): Likewise. + (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise. + (TYPE_TEMPLATE_INFO): Handle TEMPLATE_TEMPLATE_PARMs as well. + (TYPENAME_TYPE_FULLNAME): Use TYPE_BINFO rather than CLASSTYPE_SIZE. + * class.c (class_cache_obstack): New variable. + (class_cache_firstobj): Likewise. + (finish_struct): Don't set CLASSTYPE_SOURCE_LINE. + (pushclass): Free the cache, when appropriate. + (popclass): Tidy. + (maybe_push_cache_obstack): Use class_cache_obstack. + * decl.c (include hash.h). + (typename_hash): New function. + (typename_compare): Likewise. + (build_typename_type): Check the hash table to avoid creating + duplicates. + (build_ptrmemfunc_type): Use SET_IS_AGGR_TYPE. + (grokdeclarator): Use CLASS_TYPE_P. + (xref_basetypes): Likewise. + (start_function): Likewise. Don't put current_class_ref on the + permanent obstack. + * error.c (dump_type_real): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO + and TYPE_TI_ARGS. + * lex.c (note_got_semicolon): Use CLASS_TYPE_P. + (make_lang_type): Don't create TYPE_LANG_SPECIFIC and associated + fields for types other than class types. Do clear TYPE_ALIAS_SET + for types other than class types, though. + * method.c (build_overload_identifier): Use CLASS_TYPE_P and + TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. + * pt.c (process_template_parm): Don't set + CLASSTYPE_GOT_SEMICOLON. + (lookup_template_class): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. + Coerce arguments on the momentary obstack. + (for_each_template_parm): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. + (instantiate_class_template): Calculate template arguments on the + momentary obstack. Tidy. + (tsubst_template_arg_vector): Use make_temp_vec. + (tsubst_aggr_type): Put template arguments on the momentary + obstack. + (tsubst_decl): Likewise. + (tsubst): Copy the array bounds index to the permanent obstack + before building index types. Use new macros. + (unify): Use new macros. + (do_type_instantiation): Likewise. + * search.c (lookup_fnfields_1): Use new macros. + (dfs_pushdecls): Build envelopes on the cache obstack. + (dfs_compress_decls): Use new macros. + (push_class_decls): Build on the cache obstack. + * semantics.c (finish_typeof): Don't set CLASSTYPE_GOT_SEMICOLON. + * sign.c (build_signature_pointer_or_reference_type): Use + SET_IS_AGGR_TYPE. + * tree.c (make_binfo): Check CLASS_TYPE_P. + (copy_template_template_parm): Adjust. + (make_temp_vec): Use push_expression_obstack. + * typeck.c (complete_type): Use new macros. + (comptypes): Likewise. + +1998-11-17 Jason Merrill <jason@yorick.cygnus.com> + + * pt.c (tsubst): Add diagnostics for invalid array, reference + and pointer to member types. 1998-11-16 Jason Merrill <jason@yorick.cygnus.com> * typeck2.c (my_friendly_abort): Don't fatal twice in a row. + * typeck.c (c_expand_start_case): Use build_expr_type_conversion. + Simplify. + + * parse.y (structsp): Fix cut-and-paste error. + + * init.c (build_new): Complain about non-integral size. + + * parse.y (unary_expr): Complain about defining types in sizeof. + + * typeck.c (expr_sizeof): Complain about sizeof an overloaded fn. + + * rtti.c (build_x_typeid): Complain about typeid without + including <typeinfo>. + (get_typeid): Likewise. Complain about typeid of incomplete type. + (get_tinfo_fn_dynamic): Likewise. + (get_typeid_1): Not static anymore. + * except.c (build_eh_type_type): Use get_typeid_1. + + * rtti.c (build_dynamic_cast_1): Give errors for dynamic_cast to + ambiguous or private bases. Fix warning for reference cast. + +1998-11-16 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (DECL_TEMPLATE_INSTANTIATED): New macro. + * decl.c (duplicate_decls): Remove special-case code to deal with + template friends, and just do the obvious thing. + * pt.c (register_specialization): Tweak for clarity, and also to + clear DECL_INITIAL for an instantiation before it is merged with a + specialization. + (check_explicit_specialization): Fix indentation. + (tsubst_friend_function): Handle both definitions in friend + declaration and outside friend declarations. + (tsubst_decl): Don't clear DECL_INITIAL for an instantiation. + (regenerate_decl_from_template): Tweak accordingly. + (instantiate_decl): Likewise. + +1998-11-16 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (cplus_expand_expr_stmt): Promote warning about naked + member function reference to error. + * cvt.c (ocp_convert): Complain about converting an overloaded + function to void. + + * init.c (build_offset_ref): Just return a lone static member + function. + + * decl.c (cp_finish_decl): Only complain about real CONSTRUCTORs, + not internal ones. + + * typeck.c (build_binary_op_nodefault): Improve error handling. + + * decl.c (grokfndecl): Complain about making 'main' a template. + + * typeck.c (string_conv_p): Don't convert from wchar_t[] to char*. + + * call.c (build_method_call): Handle a BIT_NOT_EXPR around a + TYPE_DECL in a template. + 1998-11-15 Jason Merrill <jason@yorick.cygnus.com> * typeck2.c (my_friendly_abort): Add URL in the other case, too. -1998-11-13 Jason Merrill <jason@yorick.cygnus.com> + * decl.c (struct cp_function): Add named_label_uses. + (push_cp_function_context): Save it. + (pop_cp_function_context): Restore it. + (define_label): Also complain about jumping into the scope of + non-POD objects that don't have constructors. + * tree.c (pod_type_p): New fn. + * pt.c (instantiate_class_template): Clear TYPE_BEING_DEFINED sooner. * rtti.c (synthesize_tinfo_fn): Call import_export_decl here. (get_tinfo_fn): Not here. + * repo.c (repo_get_id): Abort if we get called for an incomplete + type. + +1998-11-13 Mark Mitchell <mark@markmitchell.com> + + * except.c (expand_throw): Make sure first argument to + __cp_push_exception is of type `void*' to avoid spurious error + messages. + +1998-11-11 Jason Merrill <jason@yorick.cygnus.com> + + * pt.c (try_one_overload): Take orig_targs again. Only check for + mismatches against them; we don't care what a previous call found. + (resolve_overloaded_unification): Adjust. + + * search.c (lookup_field): Don't return anything for a non-type + field from a dependent type. + * decl.c (grokdeclarator): Resolve SCOPE_REFs of the current class + in an array declarator. + (start_decl): Push into the class before looking for the field. 1998-11-08 Mark Mitchell <mark@markmitchell.com> - * decl.c (grokdeclarator): Tighten checks for invalid - destructors. Improve error-messages and error-recovery. - * decl2.c (check_classfn): Don't assume that mangled destructor - names contain type information. + * method.c (build_overload_value): Handle REFERENCE_TYPE. + +1998-11-08 Martin von Löwis <loewis@informatik.hu-berlin.de> + + * decl.c (grokdeclarator): Allow namespace-scoped members if they + are friends. + +1998-11-08 Jason Merrill <jason@yorick.cygnus.com> + + * pt.c (tsubst_decl): Don't mess with the global value of an + un-mangled DECL_ASSEMBLER_NAME. + +1998-11-03 Christopher Faylor <cgf@cygnus.com> + + * decl.c (init_decl_processing): Remove CYGWIN conditional + since CYGWIN is now able to deal with trapping signals. + +Sat Nov 7 15:48:02 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * cp-tree.h: Don't include gansidecl.h. + * exception.cc: Include gansidecl.h (since we don't include config.h) + * g++spec.c: Don't include gansidecl.h. + +1998-11-06 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (lang_decl_flags): Add defined_in_class. Decrease + size of dummy. + (DECL_DEFINED_IN_CLASS_P): New macro. + (TEMPLATE_PARMS_FOR_INLINE): Document. + (check_static_variable_definition): New function. + * decl.c (cp_finish_decl): Set DECL_DEFINED_IN_CLASS_P, if + appropriate. + (check_static_variable_definition): Split out from ... + (grokdeclarator): Here. + * pt.c (check_default_tmpl_args): New function, split out from ... + (push_template_decl_real): Here. + (instantiate_template): Fix comment. + +1998-11-04 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (CP_TYPE_CONST_P): Make {0,1}-valued. + (CP_TYPE_VOLATILE_P): Likewise. + (CP_TYPE_RESTRICT_P): Likewise. + +1998-11-03 Mark Mitchell <mark@markmitchell.com> + + * pt.c (tsubst): Use build_index_type, not build_index_2_type. 1998-11-02 Jason Merrill <jason@yorick.cygnus.com> + * class.c (instantiate_type): Be more helpful. + * decl2.c (import_export_decl): Call import_export_class. + * cp-tree.h (EMPTY_CONSTRUCTOR_P): Check !TREE_HAS_CONSTRUCTOR. + * decl2.c (build_expr_from_tree): Propagate TREE_HAS_CONSTRUCTOR. + * pt.c (tsubst_copy): Likewise. + +1998-11-02 Mark Mitchell <mark@markmitchell.com> + + * init.c (expand_vec_init): Fix off-by-one error. + +1998-11-02 Alexandre Oliva <oliva@dcc.unicamp.br> + + * parse.y (apparent_template_type): New type. + (named_complex_class_head_sans_basetype): Use it. + * Makefile.in (CONFLICTS): One new conflict. + * parse.c: Regenerated. + +1998-11-01 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (COMPARE_STRICT): New macro. + (COMPARE_BASE): Likewise. + (COMPARE_RELAXED): Likewise. + (COMPARE_REDECLARATION): Likewise. + (same_type_p): Likewise. + (same_or_base_type_p): Likewise. + * call.c (standard_conversion): Use them, in place of comptypes + with numeric arguments. + (reference_binding): Likewise. + (convert_like): Likewise. + (build_over_call): Likewise. + (is_subseq): Likewise. + (is_properly_derived_from): Likewise. + (compare_ics): Likewise. + (joust): Likewise. + * class.c (delete_duplicate_fields_1): Likewise. + (resolves_to_fixed_type_p): Likewise. + (instantiate_type): Likewise. Remove #if 0'd code. + * decl.c (decls_match): Likewise. Use COMPARE_REDECLARATION here. + (pushdecl): Likewise. + (lookup_name_real): Likewise. + (grokdeclarator): Likewise. Check for illegal array declarations. + (grokparms): Likewise. + (grok_op_properties): Likewise. + * decl2.c (check_classfn): Likewise. + * friend.c (is_friend): Likewise. + (make_friend_class): Likewise. + * init.c (expand_aggr_init): Likewise. + (expand_vec_init): Likewise. + * pt.c (is_member_template_class): Remove declaration. + (is_specialization_of): Use COMPARE_* and new macros. + (comp_template_parms): Likewise. + (convert_nontype_argument): Likewise. + (coerce_template_template_parms): Likewise. + (template_args_equal): Likewise. + (lookup_template_class): Likewise. + (type_unification_real): Likewise. + (unify): Likewise. + (get_bindings_real): Likewise. + * search.c (covariant_return_p): Likewise. + (get_matching_virtual): Likewise. + * sig.c (match_method_types): Likewise. + * tree.c (vec_binfo_member): Likewise. + (cp_tree_equal): Likewise. + * typeck.c (common_type): Likewise. + (comp_array_types): Likewise. Get issues involving unknown array + bounds right. + (comptypes): Update comments. Use new flags. + (comp_target_types): Use new macros. + (compparms): Likewise. + (comp_target_parms): Likewise. + (string_conv_p): Likewise. + (build_component_ref): Likewise. + (build_indirect_ref): Likewise. + (build_conditional_expr): Likewise. + (build_static_cast): Likewise. + (build_reinterpret_cast): Likewise. + (build_const_cast): Likewise. + (build_modify_expr): Likewise. + (convert_for_assignment): Likewise. + (comp_ptr_ttypes_real): Likewise. + (ptr_reasonably_similar): Likewise. + (comp_ptr_ttypes_const): Likewise. + +1998-10-31 Jason Merrill <jason@yorick.cygnus.com> + + * rtti.c (build_dynamic_cast_1): Fix cut-and-paste error. + +1998-10-30 Mark Mitchell <mark@markmitchell.com> + + * decl2.c (delete_sanity): Pass integer_zero_node, not + integer_two_node, to build_vec_delete. + * init.c (build_array_eh_cleanup): Remove. + (expand_vec_init_try_block): New function. + (expand_vec_init_catch_clause): Likewise. + (build_vec_delete_1): Don't deal with case that auto_delete_vec + might be integer_two_node anymore. + (expand_vec_init): Rework for initialization-correctness and + exception-correctness. + * typeck2.c (process_init_constructor): Make mutual exclusivity + of cases more obvious. + +1998-10-29 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (lookup_name_real): OK, only warn if not lexing. + Simplify suggested fix. + + * cp-tree.h (IDENTIFIER_MARKED): New macro. + * search.c (lookup_conversions): Use breadth_first_search. + (add_conversions): Avoid adding two conversions to the same type. + (breadth_first_search): Work with base binfos, rather + than binfos and base indices. + (get_virtual_destructor): Adjust. + (tree_has_any_destructor_p): Adjust. + (get_matching_virtual): Adjust. + + * pt.c (push_template_decl_real): Generalize check for incorrect + number of template parms. + (is_member_template_class): #if 0. + +1998-10-29 Richard Henderson <rth@cygnus.com> + + * Makefile.in (cc1plus): Put CXX_OBJS, and thence @extra_cxx_objs@, + last. + +1998-10-28 Zack Weinberg <zack@rabi.phys.columbia.edu> + + * lex.c: Call check_newline from lang_init always. After + calling cpp_start_read, set yy_cur and yy_lim to read from the + cpplib token buffer. + 1998-10-28 Jason Merrill <jason@yorick.cygnus.com> + * class.c (instantiate_type): Don't consider templates for a normal + match. + * class.c (finish_struct_1): Don't complain about non-copy assignment ops in union members. @@ -54,99 +3140,1872 @@ Sat Feb 6 17:00:48 1999 Jeffrey A Law (law@cygnus.com) (finish_prevtable_vardecl): Lose. (finish_file): Don't call it. * pt.c (instantiate_class_template): Likewise. + * cp-tree.h: Remove it. + + * init.c (build_delete): Reset TYPE_HAS_DESTRUCTOR here. + * decl.c (finish_function): Not here. + (start_function): Do set DECL_INITIAL. + + * pt.c (push_template_decl_real): Complain about default template + args for enclosing classes. + + * call.c (add_function_candidate): Treat conversion functions + as coming from the argument's class. + * cp-tree.h (DECL_CONV_FN_P): New fn. + (DECL_DESTRUCTOR_P): Also check DECL_LANGUAGE. + * class.c (add_method): Use DECL_CONV_FN_P. + * decl2.c (check_classfn): Likewise. + * error.c (dump_function_name): Likewise. + (dump_function_decl): Likewise. + * pt.c (fn_type_unification): Likewise. + * search.c (add_conversions): Likewise. + +1998-10-27 Jason Merrill <jason@yorick.cygnus.com> + + * lex.c (do_identifier): Also generate LOOKUP_EXPR for RESULT_DECL. + * method.c (hack_identifier): Also check for using RESULT_DECL + from outer context. + +1998-10-27 Mark Mitchell <mark@markmitchell.com> + + * decl.c (grokdeclarator): Use type_quals, rather than constp, + consistently. + +1998-10-27 Jason Merrill <jason@yorick.cygnus.com> + + * call.c (standard_conversion): instantiate_type here. + (reference_binding): And here. + (implicit_conversion): Not here. + (build_op_delete_call): No need to cons up an OVERLOAD. + * cvt.c (cp_convert_to_pointer): instantiate_type here. + (convert_to_reference): And here. + * decl.c (grok_reference_init): Not here. + (grokparms): Or here. + * typeck2.c (digest_init): Or here. + * typeck.c (decay_conversion): Take the address of overloaded + functions, too. + (require_instantiated_type): Lose. + (convert_arguments): Don't handle unknown types here. + (build_c_cast): Likewise. + (build_binary_op): Gut. + (build_conditional_expr): Don't require_instantiated_type. + (build_modify_expr): Likewise. + (build_static_cast): Don't instantiate_type. + (build_reinterpret_cast): Likewise. + (build_const_cast): Likewise. + (convert_for_initialization): Likewise. + (build_ptrmemfunc): Use type_unknown_p. + (convert_for_assignment): Also do default_conversion on overloaded + functions. Hand them off to ocp_convert. + +1998-10-26 Mark Mitchell <mark@markmitchell.com> + + * error.c (dump_decl): Deal with TEMPLATE_DECLs that are + VAR_DECLs. Handle vtables whose DECL_CONTEXT is not a type. + + * class.c (finish_struct_1): Use build_cplus_array_type to build + array types. + * decl.c (init_decl_processing): Likewise. + * except.c (expand_end_eh_spec): Likewise. + * search.c (expand_upcast_fixups): Simplify very slightly. + +1998-10-26 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (grokdeclarator): Complain about a variable using + constructor syntax coming back null from start_decl. + + * friend.c (make_friend_class): Complain about trying to make + a non-class type a friend. + + * decl.c (grokfndecl): Set DECL_INITIAL for a defn here. + (start_function): Not here. + +1998-10-26 Brendan Kehoe <brendan@cygnus.com> + + * decl.c (grokdeclarator): Disallow `explicit' in a friend declaration. + +1998-10-26 Jason Merrill <jason@yorick.cygnus.com> + + * typeck2.c (process_init_constructor): Only skip anonymous fields + if they are bitfields. + + * cp-tree.def (TYPEOF_TYPE): New code. + * error.c (dump_type_real): Handle it. + * pt.c (tsubst): Likewise. + * tree.c (search_tree): Likewise. + * semantics.c (finish_typeof): New fn. + * parse.y (typespec): Use it. + * cp-tree.h: Declare it. + +1998-10-26 Manfred Hollstein <manfred@s-direktnet.de> + + * cp-tree.h (FORMAT_VBASE_NAME): Make definition unconditional. + +1998-10-26 Jason Merrill <jason@yorick.cygnus.com> + + * typeck.c (convert_arguments): Don't handle pmf references + specially. + + * init.c (build_member_call): Don't try to convert to the base type + if it's ambiguous or pedantic. + + * typeck2.c (check_for_new_type): Only depend on pedantic for + C-style casts. + +1998-10-25 Mark Mitchell <mark@markmitchell.com> + + * decl.c (grokdeclarator): Set DECL_NONCONVERTING_P for all + non-converting constructors. + +1998-10-24 Martin von Löwis <loewis@informatik.hu-berlin.de> + + * gxxint.texi: Correct documentation for n, N, Q, and B. 1998-10-23 Martin von Löwis <loewis@informatik.hu-berlin.de> * parse.y (condition): Convert VAR_DECL from reference to indirect reference. -1998-10-18 Jason Merrill <jason@yorick.cygnus.com> +1998-10-23 Andrew MacLeod <amacleod@cygnus.com> + + * exception.cc (__cp_pop_exception): Free the original exception + value, not the potentially coerced one. + +1998-10-23 Mark Mitchell <mark@markmitchell.com> + + * Makefile.in (hash.h): Run gperf when necessary. + + * cp-tree.h (CP_TYPE_READONLY): Remove. + (CP_TYPE_VOLATILE): Likewise. + (CP_TYPE_QUALS): New macro. + (CP_TYPE_CONST_P): Likewise. + (CP_TYPE_VOLATILE_P): Likewise. + (CP_TYPE_RESTRICT_P): Likewise. + (CP_TYPE_CONST_NON_VOLATILE_P): Likewise. + (cp_build_type_variant): Rename to ... + (cp_build_qualified_type): New function. + (c_apply_type_quals_to_decl): Declare. + (SIGNATURE_POINTER_NAME_FORMAT): Modify to allow `restrict'. + (SIGNATURE_REFERENCE_NAME_FORMAT): Likewise. + (cp_type_qual_from_rid): New function. + (compparms): Remove unused parameter. All callers changed. + (cp_type_quals): New function. + (at_least_as_qualified_p): Likewise. + (more_qualified_p): Likewise. + + * call.c (standard_conversion): Replace calls to + cp_build_type_variant with cp_build_qualified_type. Use + CP_TYPE_QUALS to get qualifiers and at_least_as_qualified_p to + compare them. Use CP_TYPE_* macros to check qualifiers. + (reference_binding): Likewise. + (implicit_conversion): Likewise. + (add_builtin_candidates): Likewise. + (build_over_call): Likewise. + * class.c (overrides): Compare all qualifiers, not just `const', + on method declarations. + * cvt.c (convert_to_reference): More CP_TYPE_QUALS conversion, etc. + (convert_pointer_to_real): Likewise. + (type_promotes_to): Likewise. + * decl.c (check_for_uninitialized_const_var): New function. + (init_decl_processing): More CP_TYPE_QUALS conversion, etc. + (cp_finish_decl): Use check_for_uninitialized_const_var. + (grokdeclarator): More CP_TYPE_QUALS conversion, etc. Update to + handle `restrict'. + (grok_ctor_properties): Likewise. + (grok_op_properties): Likewise. + (start_function): Likewise. + (rever_static_member_fn): Likewise. + * decl2.c (grok_method_quals): Likewise. + (grokfield): Likewise. + * error.c (dump_readonly_or_volatile): Rename to ... + (dump_qualifiers): New function. Handle `restrict'. + (dump_type_real): Use it. + (dump_aggr_type): Likewise. + (dump_type_prefix): Likewise. + (dump_type_suffix): Likewise. + (dump_function_decl): Likewise. + (cv_as_string): Likewise. + * gxx.gperf: Add __restrict and __restrict__. + * gxxint.texi: Document `u' as used for `__restrict', and a few + other previously undocumented codes. + * hash.h: Regenerated. + * init.c (expand_aggr_init): More CP_TYPE_QUALS conversion, etc. + (build_member_call): Likewise. + (build_new_1): Likewise. + * lex.c (init_parse): Add entry for RID_RESTRICT. + (cons_up_default_function): More CP_TYPE_QUALS conversion, etc. + (cp_type_qual_from_rid): Define. + * lex.h (enum rid): Add RID_RESTRICT. + * method.c (process_modifiers): Deal with `restrict'. + * parse.y (primary): More CP_TYPE_QUALS conversion, etc. + * parse.c: Regenerated. + * pt.c (convert_nontype_argument): More CP_TYPE_QUALS conversion, etc. + (tsubst_aggr_type): Likewise. + (tsubst): Likewise. + (check_cv_quals_for_unify): Likewise. + (unify): Likewise. + * rtti.c (init_rtti_processing): Likewise. + (build_headof): Likewise. + (get_tinfo_var): Likewise. + (buidl_dynamic_cast_1): Likewise. Fix `volatile' handling. + (expand_class_desc): Likewise. + (expand_attr_desc): Likewise. + (synthesize_tinfo_fn): Likewise. + * search.c (covariant_return_p): Likewise. Fix `volatile' handling. + (get_matching_virtual): Likewise. + (expand_upcast_fixups): Likewise. + * sig.c (build_signature_pointer_or_reference_name): Take + type_quals, not constp and volatilep. + (build_signature_pointer_or_reference_type): Likewise. + (match_method_types): More CP_TYPE_QUALS conversion, etc. + (build_signature_pointer_constructor): Likewise. + (build_signature_method_call): Likewise. + * tree.c (build_cplus_array_type): Likewise. + (cp_build_type_variant): Rename to ... + (cp_build_qualified_type): New function. Deal with `__restrict'. + (canonical_type_variant): More CP_TYPE_QUALS conversion, etc. + (build_exception_variant): Likewise. + (mapcar): Likewise. + * typeck.c (qualif_type): Likewise. + (common_type): Likewise. + (comptypes): Likewise. + (comp_cv_target_types): Likewise. + (at_least_as_qualified_p): Define. + (more_qualified_p): Likewise. + (comp_cv_qualification): More CP_TYPE_QUALS conversion, etc. + (compparms): Likewise. + (inline_conversion): Likewise. + (string_conv_p): Likewise. + (build_component_ref): Likewise. + (build_indirect_ref): Likewise. + (build_array_ref): Likewise. + (build_unary_op): Likewise. + (build_conditional_expr): Likewise. + (build_static_cast): Likewise. + (build_c_cast): Likewise. + (build_modify_expr): Likewise. + (convert_For_assignment): Likewise. + (comp_ptr_ttypes_real): Likewise. + (cp_type_quals): New function. + +1998-10-23 Jason Merrill <jason@yorick.cygnus.com> + + * cp-tree.h (CP_TYPE_READONLY): New macro to handle arrays. + (CP_TYPE_VOLATILE): Likewise. + * decl.c (grokdeclarator): Use them. + * tree.c (canonical_type_variant): Likewise. + +1998-10-22 Martin von Löwis <loewis@informatik.hu-berlin.de> + + * parse.y (named_class_head): Push into class while parsing the + base class list. + * decl2.c (push_scope, pop_scope): New functions. + * cp-tree.h: Declare them. + * init.c (build_new_1): Delay cleanup until end of full expression. + +1998-10-21 Jason Merrill <jason@yorick.cygnus.com> - * method.c (hack_identifier): Just return a member function. + * typeck.c (build_component_ref): Use of a type here is an error. + +1998-10-19 Jason Merrill <jason@yorick.cygnus.com> + + Revamp references to member functions. + * method.c (hack_identifier): Call build_component_ref for a + reference to a member function. + * typeck.c (build_component_ref): Only return a single function + if it's static. Otherwise, return a COMPONENT_REF. + (build_x_function_call): Handle a COMPONENT_REF. + (build_unary_op): Handle all unknown-type things. + * decl2.c (arg_assoc): Handle COMPONENT_REF. + * class.c (instantiate_type): Complain if the function we get is a + nonstatic member function. Remove code for finding "compatible" + functions. + * pt.c (tsubst_copy): Handle NOP_EXPR. + * tree.c (build_dummy_object): New fn. + (maybe_dummy_object): New fn. + (is_dummy_object): New fn. + * cp-tree.h: Declare them. + * cvt.c (cp_convert_to_pointer): Use maybe_dummy_object. + * error.c (dump_expr, case OFFSET_REF): Use is_dummy_object. + * init.c (build_member_call): Use maybe_dummy_object and + is_dummy_object. + (build_offset_ref): Use maybe_dummy_object. + (resolve_offset_ref): Use is_dummy_object. + * typeck.c (build_x_function_call): Call build_dummy_object. + (unary_complex_lvalue): Call is_dummy_object. + + * typeck.c (build_component_addr): Make sure field is a field. + + * call.c (build_new_op): Delete obsolete code. + + * pt.c (tsubst, TEMPLATE*PARM*): Abort if we don't have any args. 1998-10-18 Martin von Löwis <loewis@informatik.hu-berlin.de> * decl2.c (validate_nonmember_using_decl): Fix using-directives of std if std is ignored. -1998-10-14 Jason Merrill <jason@yorick.cygnus.com> +1998-10-18 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (grokvardecl): Fix thinko. + + * decl.c (grokdeclarator): Embedded attrs bind to the right, + not the left. + + * parse.y (fn.def2): Fix 'attrs' format. + +1998-10-18 Alastair J. Houghton <ajh8@doc.ic.ac.uk> + + * Makefile.in (CONFLICTS): Update. + * parse.y (expr_or_declarator_intern): New rule. + (expr_or_declarator, direct_notype_declarator, primary, + functional_cast): Use it. + (notype_declarator_intern): New rule. + (notype_declarator, complex_notype_declarator): Use it. + +1998-10-17 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (grokfndecl): Set DECL_CONTEXT to namespace if appropriate. + (grokvardecl): Likewise. + +Sat Oct 17 23:27:20 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * class.c (make_method_vec): Cast 1st argument of `bzero' to (PTR). + (add_method): Likewise for arguments 1 & 2 of `bcopy'. + + * decl.c (signal_catch): Mark with ATTRIBUTE_NORETURN. + + * pt.c (process_partial_specialization): Cast 1st argument of + `bzero' to (PTR). + + * tree.c (build_base_fields): Cast `base_align' to (int) when + comparing against one. + +1998-10-16 Mark Mitchell <mark@markmitchell.com> + + * decl.c (lookup_name_real): Handle template parameters for member + templates where said parameters have the same name as the + surrounding class. + + * decl.c (expand_static_init): Build cleanups before entering the + anonymous function used to do them to avoid access-checking + confusion. + + * decl.c (grokfndecl): Add back call to cplus_decl_attributes + accidentally removed by previous change, and make DECL_RTL here. + * class.c (add_method): Don't make DECL_RTL here. + + * pt.c (for_each_template_parm): Don't examine uninstantiated + default arguments. + +1998-10-16 Dave Brolley <brolley@cygnus.com> + + * lex.c (real_yylex): Fix unaligned access of wchar_t. + +1998-10-16 Mark Mitchell <mark@markmitchell.com> + + * class.c (add_method): Fix documentation to reflect previous + changes. Check for duplicate method declarations here. + * decl.c (decls_match): Handle FUNCTION_DECL vs TEMPLATE_DECL + correctly; such things never match. + (grokfndecl): Don't look for duplicate methods here. + * decl2.c (check_classfn): Don't assume names are mangled. + Don't add bogus member function declarations to a class before the + class type is complete. + (grokfield): Reformat error message. + * method.c (set_mangled_name_for_decl): Don't mangle names while + processing_template_decl. + +1998-10-16 Jason Merrill <jason@yorick.cygnus.com> + + * typeck.c (build_indirect_ref): Complain about a pointer to data + member, too. + * typeck2.c (build_m_component_ref): Don't indirect a pointer to + data member. + * init.c (resolve_offset_ref): Don't undo the above. + + * cp-tree.h (DECL_C_BIT_FIELD, SET_DECL_C_BIT_FIELD): New macros. + (struct lang_decl_flags): Add `bitfield'. + * class.c (finish_struct_1): Use DECL_C_BIT_FIELD instead of + DECL_BIT_FIELD. + * decl2.c (grokbitfield, grok_alignof): Likewise. + * init.c (build_offset_ref): Likewise. + * typeck.c (build_component_addr, expr_sizeof): Likewise. + * cvt.c (build_up_reference): Don't crash if taking the address + returns error_mark_node. + + * decl.c (grokfndecl): Also check ctype when checking for ::main(). + +1998-10-15 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (grokfndecl): ::main and __builtin_* get C linkage. + Do mangling here. + (grokdeclarator): Instead of here. + * friend.c (do_friend): Lose special handling of ::main and + __builtin_*. + * cp-tree.h (DECL_MAIN_P): Check for C linkage. * spew.c (yylex): Clear looking_for_typename if we got 'enum { ... };'. +1998-10-15 Mark Mitchell <mark@markmitchell.com> + + * class.c (maybe_warn_about_overly_private_class): Improve error + messages for class with only private constructors. + + * cp-tree.def (TYPENAME_TYPE): Add to documentation. + * cp-tree.h (TYPENAME_TYPE_FULLNAME): Document. + (build_typename_type): New function. + * decl.c (build_typename_type): Broken out from ... + (make_typename_type): Use it. + * search.c (lookup_field): Likewise. + +1998-10-14 Benjamin Kosnik <bkoz@rhino.cygnus.com> + + * pt.c (convert_nontype_argument): Check against type_referred_to. + * decl.c (grokvardecl): Check for declarator name before building + DECL_ASSEMBLER_NAME. + +1998-10-14 Mark Mitchell <mark@markmitchell.com> + + * pt.c (lookup_template_class): Add comment. + (instantiate_class_template): Don't mark the _TYPE node for + member class templates as an instantiation. + +1998-10-14 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (grokfndecl): Fix my thinko. + 1998-10-13 Jason Merrill <jason@yorick.cygnus.com> * tinfo2.cc (fast_compare): Remove. (before): Just use strcmp. * tinfo.cc (operator==): Just use strcmp. +1998-10-13 Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-karlsruhe.de> + + * decl.c (grokfndecl): Don't check for linkage in `extern "C"' + declarations. + +1998-10-13 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (specializations_of_same_template_p): Remove. + * search.c (get_template_base): Don't use it. + (get_template_base_recursive): Likewise. + * pt.c (specializations_of_same_template_p): Remove. + (unify): Don't use it. + (lookup_template_class): Find the correct parent when setting + CLASSTYPE_TI_TEMPLATE. + 1998-10-12 Jason Merrill <jason@yorick.cygnus.com> * tinfo.cc (operator==): Always compare names. +1998-10-12 Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl> + + * decl.c (start_function): Fix cut-and-paste error. + 1998-10-12 Jason Merrill <jason@yorick.cygnus.com> * inc/typeinfo: Add #pragma interface. (operator!=): Just call operator==. * tinfo.cc: Add #pragma implementation. (operator==): Move from inc/typeinfo and tinfo2.cc. + Check __COMMON_UNRELIABLE instead of _WIN32. * typeck2.c (my_friendly_abort): Add URL. +1998-10-12 Alastair J. Houghton <ajh8@doc.ic.ac.uk> + + * decl.c (start_method): Added extra parameter for attributes. + * cp-tree.h (start_method): Update prototype. + * parse.y (fn.def2): Update start_method parameter list. + +1998-10-11 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (specializations_of_same_template_p): Declare. + * pt.c (specializations_of_same_template_p): New function. + (unify): Use it. + * search.c (get_template_base): Use it. + (get_template_base_recursive): Likewise. + +1998-10-10 Manfred Hollstein <manfred@s-direktnet.de> + + * decl2.c (start_objects): Add new variable `joiner' and + initialize it properly. + +1998-10-09 Mark Mitchell <mark@markmitchell.com> + + * search.c (expand_upcast_fixups): Tweak to match 1998-10-07 + change to vtable types. + + * cvt.c (ocp_convert): Avoid infinite recursion caused by + 1998-10-03 change. + +1998-10-08 Jason Merrill <jason@yorick.cygnus.com> + + * pt.c (resolve_overloaded_unification): New fn. + (try_one_overload): Likewise. + (unify): Don't fail on unknown type. + (type_unification_real): Likewise. Use resolve_overloaded_unification + to handle an overloaded argument. + (template_args_equal): Split out... + (comp_template_args): From here. + (determine_specialization): Also allow a template with more + parms than were explicitly specified. + * cp-tree.h: Add template_args_equal. + * call.c (resolve_args): Remove TEMPLATE_ID_EXPR code. + +Thu Oct 8 15:58:30 1998 Anthony Green <green@cygnus.com> + + * semantics.c (finish_asm_stmt): Revert my 1998-09-28 + change. + +Thu Oct 8 06:00:19 1998 Jeffrey A Law (law@cygnus.com) + + * typeck.c (unsigned_type): Only return TItype nodes when + HOST_BITS_PER_WIDE_INT is >= 64 bits. + (signed_type): Likewise. + * decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare + when HOST_BITS_PER_WIDE_INT is >= 64 bits. + (init_decl_processing): Only create TItype nodes when + HOST_BITS_PER_WIDE_INT is >= 64 bits. + * cp-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare + when HOST_BITS_PER_WIDE_INT is >= 64 bits. + +Wed Oct 7 12:32:44 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * Makefile.in (hash.h): Add -L KR-C -F ', 0, 0' flags to gperf. + (gxx.gperf): Update comments describing invocation flags. + (hash.h): Regenerate using gperf 2.7.1 (19981006 egcs). + +1998-10-07 Mark Mitchell <mark@markmitchell.com> + + * class.c (finish_struct_1): Add commentary on previous change. + + * cp-tree.h (vtbl_ptr_type_node): New variable. + * class.c (build_vtbl_ref): Don't indirect through the vptr; it's + already of the right type. + (finish_struct_1): Make the vptr be of type vtbl_ptr_type_node. + Simplify code to grow vtable. + * decl.c (vtbl_ptr_type_node): Define. + (init_decl_processing): Initialize it. + +1998-10-06 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.def (PTRMEM_CST): New tree node. + * cp-tree.h (ptrmem_cst): New type. + (lang_type): Remove local_typedecls. + (dummy): Increase to 12 bits from 11. + (CLASSTYPE_LOCAL_TYPEDECLS): Remove. + (PTRMEM_CST_CLASS): New macro. + (PTRMEM_CST_MEMBER): Likewise. + (current_access_specifier): New variable. + (current_class_type): Remove duplicate declaration. + (finish_struct): Change prototype. + (unreverse_member_declarations): New function. + (pushdecl_class_level): Change prototype. + (grok_enum_decls): Remove. + (fixup_anonymous_union): New function. + (grok_x_components): Change prototype. + (tsubst_chain): Remove. + (finish_member_template_decl): Likewise. + (check_explicit_specialization): Fix indentation. + (finish_class_definition): Change prototype. + (finish_member_class_template): Likewise. + (finish_member_declaration): New function. + (check_multiple_declarators): Likewise. + * class.c (class_stack_node_t): New type. + (current_class_base): Remove. + (current_class_stack): Change type. + (current_access_specifier): New variable. + (grow_method): Remove. + (check_member_decl_is_same_in_complete_scope): Break out from + finish_struct. + (make_method_vec): New function. + (free_method_vec): Likewise. + (add_implicitly_declared_members): Break out from finish_struct_1. + (free_method_vecs): New variable. + (add_method): Rework for direct use from parser. + (handle_using_decl): Watch for NULL_TREE while iterating through + CLASSTYPE_METHOD_VEC. + (finish_struct_methods): Don't build CLASSTYPE_METHOD_VEC here; + just do some error-checking. + (warn_hidden): Change iteration through CLASSTYPE_METHOD_VEC. + (finish_struct_1): Simplify. Use add_implicitly_declared_members. + (finish_struct): Change prototype. Simplify; fields and methods + are already set up at this point. + (init_class_processing): Set up current_class_stack. + (pushclass): Save current_access_specifier. + (popclass): Restore it. + (currently_open_class): Simplify. + (build_self_reference): Remove use of CLASSTYPE_LOCAL_TYPEDECLS. + * decl.c (saved_scope): Add access_specifier. + (maybe_push_to_top_level): Save it. + (pop_from_top_level): Restore it. + (maybe_process_template_type_declaration): Use + finish_member_declaration. + (pushtag): Likewise. + (pushdecl_class_level): Don't return a value. + (fixup_anonymous_union): Break out from grok_x_components. + (shadow_tag): Use it. + (xref_tag): Complain about using an elaborated type specifier to + reference a template type parameter or typedef name. + (xref_basetypes): Don't set CLASSTYPE_LOCAL_TYPEDECLS. + (current_local_enum): Remove. + (build_enumerator): Call finish_member_declaration. + (grok_enum_decls): Remove. + * decl2.c (grok_x_components): Simplify. + (check_classfn): Change iteration through CLASSTYPE_METHOD_VEC. + (grokfield): Don't set CLASSTYPE_LOCAL_TYPEDECLS. + (merge_functions): Add to comment. + (arg_assoc_type): Prototype. + (arg_assoc): Pass as many arguments as there are parameters. + * error.c (dump_expr): Handle PTRMEM_CST. Improve handling of + OFFSET_REF. + * expr.c (cpls_expand_expr): Remove dead code. Handle + PTRMEM_CST. + * friend.c (do_friend): Lookup friends when in nested classes. + Change comments. + * init.c (build_offset_ref): Do lookup even for classes that are + only partially defined. + (decl_constant_value): Remove dead code. + * method.c (build_overload_value): Remove hack where by TYPE was + not a TYPE. Handle PTRMEM_CST. + (build_template_parm_names): Don't pass a PARM_DECL where a TYPE + should go. + * parse.y (components, notype_components, component_decl, + component_decl_1, component_declarator, component_declarator0): + Now all are itype rather than ttype. Rework to add members to + classes on the fly. + (typesqpecqual_reserved): Use check_multiple_declarators. + (structsp): Update class to finish_class_definition. + (do_xref_defn): Unsplit into named_class_head. + (access_specifier): Set current_access_specifier. + * pt.c (set_current_access_from_decl): New function. + (finish_member_template_decl): Don't take the parameters. + (comp_template_args): Make more robust. + (lookup_template_class): Don't use current_local_enum. + (for_each_template_parm): Handle PTRMEM_CST. + (instantiate_class_template): Use set_current_access_from_decl, + finish_member_declaration and unreverse_member_declarations. Set + lineno/input_filename before generating implicit member functions. + (type_unification_real): Don't assume back-unification happens + only for the last argument. + (regenerate_decl_from_template): Call pushclass a bit earlier. + (tsubst_chain): Remove. + (tsubst_enum): Use set_current_access_from_decl. + (set_mangled_name_for_template_decl): Fix indentation. + * search.c (lookup_fnfields_1): Change iteration through + CLASSTYPE_METHOD_VEC. + (dfs_pushdecls): Likewise. + (dfs_compress_decls): Likewise. + (add_conversions): Likewise. + * semantics.c (finish_class_definition): Don't take components. + Change call to finish_struct. + (finish_member_declaration): New function. + (finish_member_class_template): Don't take template parameters. + Change call to grok_x_components. Call finish_member_template_decl. + (check_multiple_declarators): New function. + * sig.c (append_signature_fields): Work from the TYPE_METHODS, not + a passed in fieldlist. + * tree.c (search_tree): Handle PTRMEM_CST. + (mapcar): Likewise. + * typeck.c (unary_complex_lvalue): Build PTRMEM_CSTs, not + INTEGER_CSTs, for pointer-to-data members. + + * call.c (resolve_args): Resolve template specializations, if + possible. + +Tue Oct 6 07:57:26 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * Makefile.in (spew.o): Depend on toplev.h. + + * call.c (compare_ics): Initialize variables `deref_from_type2', + `deref_to_type1' and `deref_to_type2'. + + * except.c (get_eh_type): Hide prototype and definition. + (process_start_catch_block_old): Remove unused static prototype. + + * pt.c (tsubst_decl): Initialize variable `argvec'. + + * spew.c: Include toplev.h. + +1998-10-05 Jason Merrill <jason@yorick.cygnus.com> + + * pt.c (instantiate_decl): Do save and restore file position. + 1998-10-05 Martin von Löwis <loewis@informatik.hu-berlin.de> * method.c (build_decl_overload_real): Clear numeric_output_need_bar after __. +1998-10-05 Nathan Sidwell <nathan@acm.org> + + * call.c (build_new_method_call): Issue 'incomplete type' error, + if class is not defined. + +1998-10-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * call.c (build_object_call): Move declaration of variable + `fn' into the scope where it is used. Don't access variable + `fn' when it is uninitialized, instead use `fns'. + +1998-10-04 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> + + * errfn.c (cp_thing): Print buf as a string not as a printf format + to avoid problems with the operator%. Consequently, `%%' sequences + in format are copied as `%' in buf. + 1998-10-04 Jason Merrill <jason@yorick.cygnus.com> + * pt.c (pop_tinst_level): Call extract_interface_info. + (instantiate_decl): Don't save and restore file position. + * decl.c (cp_finish_decl): Make statics in extern inlines and templates common, if possible and the target doesn't support weak symbols. + * decl.c (grokdeclarator): Remove redundant calls to + build_type_variant and some duplicated code. + * sig.c (build_signature_reference_type): Only take the type parm. + (build_signature_pointer_type): Likewise. + * tree.c (build_cplus_method_type): Adjust. + * cp-tree.h: Update. + +1998-10-04 Mark Mitchell <mark@markmitchell.com> + + * call.c (build_over_call): Make pedwarns about dropped qualifiers + into full-fledged errors. + * cvt.c (convert_to_reference): Likewise. + * typeck.c (convert_for_assignment): Likewise. + + * search.c (expand_upcast_vtables): In addition to unsetting + TREE_READONLY, remove top-level const type qualifier. + +1998-10-03 Mark Mitchell <mark@markmitchell.com> + + * class.c (current_class_ptr, current_class_ref): Clarify + documentation. + * cvt.c (ocp_convert): Don't expect fold to remove all trivial + NOP type conversions. + * decl.c (decls_match): Use comptypes directly; ignore + qualifiers on the DECL. + (duplicate_decls): Remove qualifier checks on DECL. + (grokdeclarator): Make the type built up include top-level + qualifiers. + * decl2.c (do_dtors): Fix spelling error. + * error.c (dump_simple_decl): Don't look at qualifiers on the decl + when printing type information. + * init.c (build_new_1): Add documentation. Deal with the fact + that type of allocated memory now contains qualifiers. + * lex.c (is_global): Improve error-recovery. + * sig.c (build_member_function_pointer): Don't cast away const + on fields of sigtable_entry_type. + * tree.c (lvalue_type): Don't look at top-level qualifiers on + expressions. + * typeck.c (decay_conversion): Likewise. + (build_component_ref): Make sure the type of the COMPONENT_REF + contains top-level qualifiers, as appropriate. Improve + error-handling. + (build_indirect_ref): Simplify. Don't strip top-level qualifiers. + (build_array_ref): Likewise. + (build_unary_op): Improve error-recovery. + (unary_complex_lvalue): Make taking the address a bound member + function an error, not a sorry. + (build_conditional_expr): Look at the type qualifiers, not the + qualifiers on the expression itself. + 1998-10-03 Jason Merrill <jason@yorick.cygnus.com> * decl2.c (merge_functions): Remove duplicates. + * decl2.c: Add -f{no-,}implicit-inline-templates. + (import_export_decl): Check it. + + * decl.c (lookup_name_real): Template parms also take precedence + over implicit typename. Only warn if yylex. + * typeck.c (build_conditional_expr): Only fold if ifexp is an INTEGER_CST. -Fri Oct 2 02:07:26 1998 Mumit Khan <khan@xraylith.wisc.edu> + * decl2.c (finish_vtable_vardecl): Check DECL_INTERFACE_KNOWN + instead of linkage. + +1998-10-01 Jason Merrill <jason@yorick.cygnus.com> + + * cp-tree.h (FORMAT_VBASE_NAME): New macro. + * class.c (build_vbase_pointer): Use it. + * rtti.c (expand_class_desc): Likewise. + * tree.c (build_vbase_pointer_fields): Likewise. + +Thu Oct 1 10:43:45 1998 Nick Clifton <nickc@cygnus.com> + + * decl.c (start_decl): Add invocation of + SET_DEFAULT_DECL_ATTRIBUTES, if defined. + (start_function): Add invocation of + SET_DEFAULT_DECL_ATTRIBUTES, if defined. + + * lex.c: Replace occurrences of HANDLE_SYSV_PRAGMA with + HANDLE_GENERIC_PRAGMAS. + +1998-09-28 Anthony Green <green@cygnus.com> + + * semantics.c (finish_asm_stmt): Always permit volatile asms. + +1998-09-28 Mark Mitchell <mark@markmitchell.com> + + * decl.c (grokdeclarator): Tighten checks for invalid + destructors. Improve error-messages and error-recovery. + * decl2.c (check_classfn): Don't assume that mangled destructor + names contain type information. + +1998-09-25 Jason Merrill <jason@yorick.cygnus.com> + + * search.c (get_base_distance): Remove assert. + + * decl2.c (build_anon_union_vars): Don't process a field with no + name. + (finish_anon_union): Also complain about local anon unions with no + members. + +1998-09-25 Martin von Löwis <loewis@informatik.hu-berlin.de> + + * decl.c (lookup_namespace_name): If the name is a namespace, + return it immediately. + +Fri Sep 25 11:45:38 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * cp-tree.h (define_case_label): Remove unused parameter. + (check_java_method): Likewise. + (grokclassfn): Likewise. + (expand_aggr_init): Likewise. + (build_x_delete): Likewise. + (maybe_end_member_template_processing): Likewise. + (unshare_base_binfos): Add prototype. + (string_conv_p): Likewise. + (my_friendly_abort): Mark with ATTRIBUTE_NORETURN. + + * cvt.c (build_up_reference): Remove unused parameter + `checkconst', all callers changed. + (build_type_conversion): Mark parameter `code' with + ATTRIBUTE_UNUSED. + (build_expr_type_conversion): Initialize variable `conv'. + + * decl.c (push_namespace): Initialize variable `d'. + (define_case_label): Remove unused parameter `decl', all callers + changed. + + * decl2.c (lang_decode_option): If !USE_CPPLIB, mark parameter + `argc' with ATTRIBUTE_UNUSED. + (grokclassfn): Remove unused parameter `cname', all callers + changed. + (check_java_method): Likewise for parameter `ctype'. + (copy_assignment_arg_p): Mark parameter `virtualp' with + ATTRIBUTE_UNUSED. + (finish_prevtable_vardecl): Likewise for parameter `prev'. + + * expr.c (extract_init): Likewise for parameters `decl' and `init'. + + * init.c (expand_aggr_init_1): Remove unused parameter + `alias_this', all callers changed. + (expand_aggr_init): Likewise. + (expand_default_init): Likewise. + (build_new_1): Initialize variable `susp'. + (build_x_delete): Remove unused parameter `type', all callers + changed. + + * lex.c (set_typedecl_interface_info): Mark parameter `prev' with + ATTRIBUTE_UNUSED. + (readescape): Use (unsigned) value in shift. + (real_yylex): Likewise. Likewise. Also cast `sizeof' to int when + comparing to a signed quantity. + + * pt.c (maybe_end_member_template_processing): Remove unused + parameter `decl', all callers changed. + (check_explicit_specialization): Add braces around empty body in + an else-statement. + (current_template_args): Initialize variable `args'. + (lookup_template_class): Likewise for variable `prev_local_enum'. + (tsubst_decl): Likewise for variable `r'. + (set_mangled_name_for_template_decl): Initialize variable + `context'. + + * spew.c (scan_tokens): Change type of parameter `n' to unsigned. + Likewise for variable `i'. + (yylex): Initialize variable `trrr'. + + * typeck.c (compparms): Mark variable `strict' with + ATTRIBUTE_UNUSED. + + * xref.c (simplify_type): Cast argument of ctype function to + `unsigned char'. + +1998-09-24 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (language_lvalue_valid): Remove. + * decl.c (grokdeclarator): Don't disallow references to functions. + * tree.c (lvalue_p_1): New function, combining duplicated + code from ... + (lvalue_p): Use it. + (real_lvalue_p): Likewise. + * typeck.c (language_lvalue_valid): Remove. + (build_modify_expr): Treat FUNCTION_TYPEs as readonly, even though + they don't have TREE_READONLY set. + * typeck2.c (readonly_error): Add case for FUNCTION_DECLs. + +1998-09-24 Benjamin Kosnik <bkoz@loony.cygnus.com> + + * spew.c (yylex): Give diagnostic. + * hash.h (is_reserved_word): Add export. + * gxx.gperf: Likewise. + * lex.h (rid): Add RID_EXPORT. + * lex.c (init_parse): Likewise. + +Tue Sep 22 21:01:19 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> + + * friend.c (do_friend): Make warning a full sentence. + +1998-09-22 Mark Mitchell <mark@markmitchell.com> + + * parse.y (component_decl_list): Improve error-recovery. + +1998-09-22 Benjamin Kosnik <bkoz@loony.cygnus.com> + + * decl.c (make_typename_type): Move error to point where name + variable can be used by dump_type. + +1998-09-22 Mark Mitchell <mark@markmitchell.com> + + * decl.c (grokfndecl): Improve error-recovery. + * decl2.c (grokfield): Likewise. + * pt.c (finish_member_template_decl): Likewise. + +1998-09-20 Martin von Löwis <loewis@informatik.hu-berlin.de> + + * method.c (hack_identifier): Finding multiple members is always + an error. + +1998-09-21 Per Bothner <bothner@cygnus.com> + + * Make-lang.in (c++-filt): Link libiberty.a after cxxmain.o. + +Mon Sep 21 01:53:05 1998 Felix Lee <flee@cygnus.com> + + * lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT (). + +1998-09-20 Mark Mitchell <mark@markmitchell.com> + + * class.c (maybe_warn_about_overly_private_class): Reformat. + +1998-09-17 Andrew MacLeod <amacleod@cygnus.com> + + * exception.cc (__cplus_type_matcher): Realign some code. + +1998-09-16 Mark Mitchell <mark@markmitchell.com> + + * Make-lang.in (tinfo.o): Use CXXFLAGS when compiling. + (tinfo2.o): Likewise. + (exception.o): Likewise. + (new.o): Likewise. + (opnew.o): Likewise. + (opnewnt.o): Likewise. + (opvnew.o): Likewise. + (opvnewnt.o): Likewise. + (opdel.o): Likewise. + (opdelnt.o): Likewise. + (opvdel.o): Likewise. + (opvdelnt.o): Likewise. + +1998-09-16 Richard Henderson <rth@cygnus.com> + + * decl.c (init_decl_processing): Kill __builtin_fp and __builtin_sp. + +1998-09-15 Alexandre Oliva <oliva@dcc.unicamp.br> + + * call.c (build_field_call): Handle static data members too. + + * typeck.c (comptypes): When comparing pointer types, check + whether referred types match even in strictest modes. + +1998-09-15 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h: Revert previous change. + (finish_struct_methods): Remove declaration. + * class.c: Revert previous change. + (maybe_warn_about_overly_private_class): New function. + (finish_struct_methods): Declare here, and make static. Remove + unnecessary parameters. Tidy slightly. Use + maybe_warn_about_overly_private_class. + (finish_struct_1): Adjust. Remove check for private constructors, + now done elsewhere. + (finish_struct): Adjust. + +1998-09-15 Andrew MacLeod <amacleod@cygnus.com> + + * except.c (expand_start_catch_block): No need to check for new + exception model. + (process_start_catch_block_old): Deleted. + (process_start_catch_block): Add call to start_decl_1(). + (expand_end_catch_block): Add call to end_catch_handler(). + * exception.cc (__cplus_type_matcher): Only check the exception + language if there is an exception table. + +1998-09-15 Andrew MacLeod <amacleod@cygnus.com> + + * search.c (expand_indirect_vtbls_init): Mark temporary stack slots + as used to prevent conflicts with virtual function tables. + +1998-09-14 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (lang_type): Add has_non_private_static_mem_fn. + (CLASSTYPE_HAS_NON_PRIVATE_STATIC_MEM_FN): New macro, to access it. + * class.c (maybe_class_too_private_p): New function. + (finish_struct_methods): Use it. + (finish_struct_1): Likewise. + (finish_struct): Set CLASSTYPE_HAS_NON_PRIVATE_STATIC_MEM_FN if + appropriate. + + * pt.c (check_specialization_scope): Fix spelling error. + (check_explicit_specialization): Remove code to handle explicit + specializations in class scope; they are now correctly diagnosed + as errors. + +1998-09-10 Mark Mitchell <mark@markmitchell.com> + + * decl.c (pushdecl): Don't copy types if the + DECL_ABSTRACT_ORIGIN of the new decl matches the TYPE_NAME of the + type. + +1998-09-09 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> + + * class.c (get_enclosing_class): New function. + (is_base_of_enclosing_class): Likewise. + * cp-tree.h (get_enclosing_class): Declare. + (is_base_of_enclosing_class): Likewise. + * pt.c (coerce_template_parms): Use them. + +1998-09-09 Jason Merrill <jason@yorick.cygnus.com> + + * g++spec.c (lang_specific_driver): Check whether MATH_LIBRARY is + null to decide whether to use it. + + * error.c (dump_type_real): Handle NAMESPACE_DECL. + * parse.y (base_class.1): Avoid crash on error. + +1998-09-08 Martin von Löwis <loewis@informatik.hu-berlin.de> + + * decl.c (make_typename_type): If context is a namespace, the code + is in error. + +1998-09-08 Mumit Khan <khan@xraylith.wisc.edu> * parse.y (nomods_initdcl0): Set up the parser stack correctly. +1998-09-08 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (anonymous_namespace_name): Declare. + * decl.c: Define it. + (push_namespace): Use anonymous_namespace_name, rather than local + static anon_name. + * error.c (dump_decl): If a namespace is named + anonymous_namespace_name, call it {anonymous}. + + * decl.c (grokparms): Distinguish between references and pointers + in error message. + +1998-09-08 Richard Henderson <rth@cygnus.com> + Mark Mitchell <mark@markmitchell.com> + + * pt.c (process_partial_specialization): Consistently allocate + and zero tpd.parms based on ntparms. Use tpd2.parms, not + tpd.parms, where appropriate. + +Sun Sep 6 00:00:51 1998 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (INCLUDES): Update after recent toplevel gcc + reorganizations. + +1998-09-05 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (TI_PENDING_SPECIALIZATION_FLAG): Remove. + * class.c (finish_struct): Remove hackery to deal with explicit + specializations in class scope. + * decl.c (grokfndecl): Improve error-recovery. + * decl2.c (grokfield): Likewise. + * pt.c (check_specialization_scope): New function. + (begin_specialization): Call it. + (process_partial_specialization): New function, split out from + push_template_decl. Check partial specializations more + stringently. + (push_template_decl): Call it. + (check_explicit_specialization): Don't attempt to handle explicit + specializations in class scope. + (template_parm_data): Document. Add current_arg and + arg_uses_template_parms. + (mark_template_parm): Set it. + (tsubst_arg_types): Remove unused variable. + * semantics.c (begin_class_definition): Tweak. + +1998-09-04 Mark Mitchell <mark@markmitchell.com> + + * inc/typeinfo (type_info::type_info(const char*)): Make + `explicit'. + + * cp-tree.h (hash_tree_cons_simple): New macro. + * pt.c (tsubst_arg_types): New function. Use hash_tree_cons. + (coerce_template_parms): Use make_temp_vec, instead of + make_tree_vec. Document this behavior. + (lookup_template_class): Likewise. + (tsubst, cases METHOD_TYPE, FUNCTION_TYPE): Use tsubst_arg_types. + Remove dead code (and add assertion to check its deadness). Fix + bug w.r.t. exception specifications. + +1998-09-03 Jason Merrill <jason@yorick.cygnus.com> + + * decl2.c (import_export_vtable): Always make artificials comdat. + (import_export_decl): Likewise. + * pt.c (mark_decl_instantiated): Likewise. + +1998-09-03 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (finish_globally_qualified_member_call_expr): + Rename to ... + (finish_qualified_call_expr). + * semantics.c: Likewise. + * parse.y (primary): Use it. + * method.c (hack_identifier): Remove redundant code. + + * init.c (resolve_offset_ref): Call convert_from_reference to + handle members of reference type. Improve error recovery. + +1998-09-03 Benjamin Kosnik <bkoz@cygnus.com> + + * cp-tree.h: Declare warn_nontemplate_friend. + * decl2.c (lang_decode_option): Set. + * lang-options.h: Add -Wnon-template-friend. + * friend.c (do_friend): Use to toggle non-template function warning. + +1998-09-03 Mark Mitchell <mark@markmitchell.com> + + * decl.c (finish_enum): Don't resolve CONST_DECLs to their + corresponding INTEGER_CSTs when processing_template_decl. + * pt.c (tsubst_enum): Tweak accordingly. + +1998-09-03 Benjamin Kosnik <bkoz@rhino.cygnus.com> + + * decl.c (pushdecl_class_level): Add warning here. + (pushdecl): Tweak. + +1998-09-02 Jason Merrill <jason@yorick.cygnus.com> + + * cvt.c (convert_pointer_to_real): Tidy. + * search.c (get_base_distance_recursive): Simplify. + (get_base_distance): Likewise. + + * pt.c (unify): Only special-case INTEGER_TYPE if it uses template + parms. + +Wed Sep 02 09:25:29 1998 Nick Clifton <nickc@cygnus.com> + + * lex.c (check_newline): Call HANDLE_PRAGMA before + HANDLE_SYSV_PRAGMA if both are defined. Generate warning messages + if unknown pragmas are encountered. + (handle_sysv_pragma): Interpret return code from + handle_pragma_token (). Return success/failure indication rather + than next unprocessed character. + (pragma_getc): New function: retrieves characters from the + input stream. Defined when HANDLE_PRAGMA is defined. + (pragma_ungetc): New function: replaces characters back into the + input stream. Defined when HANDLE_PRAGMA is defined. + +1998-09-01 Jason Merrill <jason@yorick.cygnus.com> + + * decl2.c (output_vtable_inherit): Use %cDIGIT in the operands. + * class.c (build_vtable_entry_ref): Likewise. + +1998-09-01 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION): New macro. + * decl2.c (import_export_decl): Likewise. + * pt.c (instantiate_decl): Use it. + +1998-09-01 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (lookup_name_real): Also do implicit typename thing for + artificial TYPE_DECLs. + * search.c (lookup_field): Likewise. + (lookup_fnfields, lookup_field): Adjust for implicit typename kludge. + * semantics.c (begin_constructor_declarator): Use enter_scope_of. + (enter_scope_of): Extract type from implicit typename. + (begin_class_definition): Likewise. + * lex.c (identifier_type): Handle implicit typename when checking + for SELFNAME. + + * cp-tree.h: Declare flag_strict_prototype. + * lex.c (do_scoped_id, do_identifier): Don't implicitly_declare if + -fstrict-prototype. + * decl.c (init_decl_processing): If -f{no,-}strict-prototype wasn't + specified, set it to the value of pedantic. + +1998-09-01 Mark Mitchell <mark@markmitchell.com> + + * decl2.c (arg_assoc): Handle template-id expressions as arguments. + +1998-08-31 Mark Mitchell <mark@markmitchell.com> + + * decl.c (finish_enum): Handle member enums of classes declared in + template functions. + + * decl2.c (grok_x_components): Strip attributes before calling + groktypename. + +1998-08-31 Jason Merrill <jason@yorick.cygnus.com> + + * cp-tree.h, decl2.c: Remove support for -fall-virtual, + -fenum-int-equivalence and -fno-nonnull-objects. + * class.c (check_for_override): Remove support for -fall-virtual. + (finish_struct_1): Likewise. + * call.c (build_new_op): Remove support for -fenum-int-equivalence. + * typeck.c (build_binary_op_nodefault): Likewise. + * cvt.c (ocp_convert): Likewise. + * call.c (build_vfield_ref): Remove support for -fno-nonnull-objects. + * class.c (build_vbase_path): Likewise. + +Sun Aug 30 22:16:31 1998 H.J. Lu (hjl@gnu.org) + + * Makefile.in (INTERFACE): New, set to 1. + +1998-08-30 Mark Mitchell <mark@markmitchell.com> + + * error.c (dump_decl): Use CP_DECL_CONTEXT, not DECL_CONTEXT, when + comparing with global_namespace. + (dump_aggr_type): Likewise. + + * decl.c (grokfndecl): Issue error on declaration of friend + templates with explicit template arguments. + + * pt.c (convert_template_argument): New function, split out + from... + (coerce_template_parms): Here. + (tsubst): Attempt better error-recovery. + +1998-08-28 Benjamin Kosnik <bkoz@loony.cygnus.com> + + * pt.c (decl_template_parm_p): Add checks for + TEMPLATE_TEMPLATE_PARM. + +1998-08-28 Mark Mitchell <mark@markmitchell.com> + + * lex.c (do_identifier): Fix thinko in previous change. + +1998-08-28 Jason Merrill <jason@yorick.cygnus.com> + + * search.c (dfs_search, binfo_for_vtable, dfs_bfv_helper): New fns. + * decl2.c (output_vtable_inherit): Call binfo_for_vtable. + +1998-08-28 Richard Henderson <rth@cygnus.com> + + Add support for discarding unused virtual functions. + * lang-options.h: Add -fvtable-gc. + * cp-tree.h: Add flag_vtable_gc. + * decl2.c (output_vtable_inherit): New fn. + (finish_vtable_vardecl): Call it. + * class.c (build_vtable_entry_ref): New fn. + (build_vtbl_ref): Call it. + +1998-08-28 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (build_enumerator): Take the enumeration type as a + parameter. + * decl.c (finish_enum): Don't set the TREE_TYPE for the + enumeration constant values if we're processing_template_decls. + Don't set the type for the CONST_DECLs either; that's done in + build_enumerator. + (build_enumerator): Take the enumeration type as a + parameter. + * lex.c (do_identifier): Don't resolve enumeration constants while + processing template declarations, even if they happen to be + TEMPLATE_PARM_INDEXs. + + * parse.y (current_enum_type): New variable. + (primary): Don't allow statement-expression in local classes just + as we don't in global classes. + (structsp): Use current_enum_type. + (enum_list): Likewise. + * pt.c (tsubst_enum): Don't check for NOP_EXPRs introduced by + finish_enum; they no longer occur. + + * cp-tree.h (finish_base_specifier): New function. + * parse.y (base_class): Use it. + * semantics.c (finish_base_specifier): Define it. + + * parse.y (structsp): Warn on use of typename outside of template + declarations. + +1998-08-27 Jason Merrill <jason@yorick.cygnus.com> + + * lex.c (handle_cp_pragma): Remove #pragma vtable. + * lang-options.h: Remove +e options. + * decl2.c (lang_decode_option): Likewise. + (import_export_vtable): Don't check write_virtuals. + (finish_vtable_vardecl, finish_file): Likewise. + * search.c (dfs_debug_mark): Likewise. + * semantics.c (begin_class_definition): Likewise. + * class.c (build_vtable, finish_vtbls, finish_struct_1): Likewise. + + * call.c (build_over_call): Check flag_elide_constructors. + * decl2.c: flag_elide_constructors defaults to 1. + * typeck.c (convert_arguments): Remove return_loc parm. + (build_function_call_real): Adjust. + + * search.c: Tear out all mi_matrix and memoize code. + (lookup_field, lookup_fnfields): Use scratch_tree_cons. + * lang-options.h: Remove documentation for -fhandle-exceptions, + -fmemoize-lookups and -fsave-memoized. + * cp-tree.h: Lose mi_matrix and memoize support. + * decl2.c: Ignore -fmemoize-lookups and -fsave-memoized. + * class.c: Lose struct class_level. + (pushclass, popclass): Lose memoize support. + * init.c (build_offset_ref): Likewise. + + Never change BINFO_INHERITANCE_CHAIN. + * init.c (emit_base_init): Change modification of + BINFO_INHERITANCE_CHAIN to an assert. + * search.c (get_base_distance_recursive): Likewise. + (get_base_distance): Likewise. + (lookup_member): Likewise. + (convert_pointer_to_single_level): Likewise. + (lookup_field): Likewise. Lose setting TREE_VIA_* on TREE_LISTs. + (lookup_fnfields): Likewise. + * tree.c (propagate_binfo_offsets): Don't call unshare_base_binfos. + (unshare_base_binfos): Don't call propagate_binfo_offsets. + (layout_basetypes): Call propagate_binfo_offsets instead of + unshare_base_binfos. + * decl.c (xref_basetypes): Call unshare_base_binfos. + * pt.c (instantiate_class_template): Likewise. + * tree.c (reverse_path): Remove 'copy' parm; always make a + temporary copy. + * class.c (build_vbase_path): Just call it. + * search.c (compute_access): Likewise. Don't re-reverse. + +1998-08-27 Mark Mitchell <mark@markmitchell.com> + + * class.c (build_vbase_path): Use reverse_path. + (finish_base_struct): Move warnings for inaccessible bases to + layout_basetypes. + (modify_one_vtable): Remove check of TREE_USED (binfo). + (fixup_vtable_deltas1): Likewise. + * cp-tree.h (BINFO_INHERITANCE_CHAIN): Document here. + (xref_tag): Remove binfos parameter. + (make_binfo): Remove chain parameter. + (reverse_path): Add copy parameter. + * decl.c (init_decl_processing): Change calls to xref_tag. + (xref_tag): Remove binfos parameter. + (xref_basetypes): Change calls to make_binfo. + * decl2.c (grok_x_components): Change calls to xref_tag. + (handle_class_head): Likewise. + * friend.c (do_friend): Likewise. + * lex.c (make_lang_type): Change calls to make_binfo. + * parse.y (structsp): Change calls to xref_tag. + (named_complex_class_head_sans_basetype): Likewise. + (named_class_head): Likewise. + * rtti.c (init_rtti_processing): Likewise. + * search.c (compute_access): Change calls to reverse_path. + (dfs_get_vbase_types): Change calls to make_binfo. + (get_vbase_types): Remove dead code. + * tree.c (unshare_base_binfos): Change calls to make_binfo. + (layout_basetypes): Warn here about inaccessible bases. + (make_binfo): Remove chain parameter. + (reverse_path): Add copy parameter. + +1998-08-27 Jason Merrill <jason@yorick.cygnus.com> + + * class.c: #if 0 complete_type_p. + * init.c (build_java_class_ref, build_new_1): Remove unused locals. + * method.c (process_overload_item): Likewise. + * typeck.c (comp_target_types): Likewise. + + Stop sharing binfos for indirect virtual bases. + * tree.c (propagate_binfo_offsets): Unshare vbases, too. + (layout_basetypes): Likewise. + (unshare_base_binfos): Copy vbases, too. + * cp-tree.h (BINFO_VIA_PUBLIC, BINFO_BASEINIT_MARKED, + BINFO_VBASE_INIT_MARKED): Remove obsolete macros. + (BINFO_PUSHDECLS_MARKED, SET_BINFO_PUSHDECLS_MARKED, + CLEAR_BINFO_PUSHDECLS_MARKED): New macros. + * search.c (lookup_field, lookup_fnfields, lookup_member): Remove + reference to BINFO_VIA_PUBLIC. + (marked_pushdecls_p, unmarked_pushdecls_p): New fns. + (push_class_decls): Use them. + (dfs_pushdecls): Use SET_BINFO_PUSHDECLS_MARKED. + (dfs_compress_decls): Use CLEAR_BINFO_PUSHDECLS_MARKED. + +1998-08-27 Mark Mitchell <mark@markmitchell.com> + + * decl.c (build_enumerator): Set DECL_CONTEXT for the + CONST_DECLs. + +1998-08-26 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (finish_enum): Change prototype. + * decl.c (finish_enum): Use TYPE_VALUES, rather than taking a + VALUES parameter. Don't try to compute mins/maxs if + processing_template_decl. + * parse.y (structsp): Use new calling sequence for finish_enum. + * pt.c (tsubst_enum): Likewise. Take the new type as input. + (lookup_template_class): Remove unused variables. Tweak. + Register enums on instantiation list before substituting + enumeration constants. + (tsubst_decl): Remove unused variables. + (regenerate_decl_from_template): Likewise. + + * decl.c (duplicate_decls): Don't obliterate the + DECL_TEMPLATE_INFO for a template if we're not replacing it with + anything. + + * lex.c (do_identifier): Fix typo in comment. + +Wed Aug 26 10:54:51 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * errfn.c: Remove stdarg.h/varargs.h. + * tree.c: Likewise. + +1998-08-25 Brendan Kehoe <brendan@cygnus.com> + + * pt.c (tsubst_copy): Only do typename overloading on an + IDENTIFIER_NODE that happens to look like a typename if it actually + has a type for us to use. + +1998-08-25 Jason Merrill <jason@yorick.cygnus.com> + + * typeck.c (comp_cv_target_types): Split out... + (comp_target_types): From here. Don't allow cv-qual changes under + a pointer if nptrs == 0. Fix OFFSET_TYPE handling. + (build_ptrmemfunc): Pass 1 to nptrs. + * cvt.c (perform_qualification_conversions): Use comp_ptr_ttypes. + +1998-08-25 Mark Mitchell <mark@markmitchell.com> + + * search.c (dependent_base_p): Don't compare a binfo to + current_class_type; use the TREE_TYPE of the binfo instead. + + * cp-tree.h (CLASS_TYPE_P): Revise definition. + 1998-08-25 Jason Merrill <jason@yorick.cygnus.com> * decl.c (duplicate_decls): Don't complain about different exceptions from an internal decl even if pedantic. + * typeck.c (convert_for_assignment): Converting from pm of vbase + to derived is an error, not a sorry. + + * call.c (build_over_call): Use convert_pointer_to_real for 'this'. + * class.c (fixed_type_or_null): Rename from + resolves_to_fixed_type_p. Return the dynamic type of the + expression, if fixed, or null. + (resolves_to_fixed_type_p): Use it. Return 0 if the dynamic type + does not match the static type. + (build_vbase_path): Rename 'alias_this' to 'nonnull'. Use + resolves_to_fixed_type_p again. + +1998-08-24 Mark Mitchell <mark@markmitchell.com> + + * pt.c (tsubst_decl): Move special case code for dealing with + tricky friend templates here from ... + (regenerate_decl_from_template): Here. + +1998-08-24 Jason Merrill <jason@yorick.cygnus.com> + + * decl.c (start_decl): Remove redundant linkage check. + 1998-08-24 Gavin Romig-Koch <gavin@cygnus.com> * typeck.c (c_expand_return): Handle the case that valtype is wider than the functions return type. +1998-08-24 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (CLASS_TYPE_P): New macro. + * decl.c (grokdeclarator): Use it instead of IS_AGGR_TYPE. + * pt.c (process_template_parm): Undo previous change. + +1998-08-24 Benjamin Kosnik <bkoz@cygnus.com> + + * cp-tree.h: Declare. + * pt.c (decl_template_parm_p): New function. + * decl.c (pushdecl): Check decls for redeclaring template parms. + (xref_tag): Make redeclaration an error, print decl. + * decl2.c (grokfield): Check field_decls for redeclaration as well. + +1998-08-24 Jason Merrill <jason@yorick.cygnus.com> + + * parse.y (primary): Fix up the type of string constants. + +1998-08-24 Mark Mitchell <mark@markmitchell.com> + + * typeck.c (convert_for_initialization): Move check for odd uses + of NULL to avoid duplicate warnings. + +1998-08-24 Jason Merrill <jason@yorick.cygnus.com> + + * tree.c (lvalue_type): Fix for arrays. + * typeck.c (string_conv_p): New fn. + (convert_for_assignment): Use it. + (build_unary_op): Use lvalue_type. + * call.c (standard_conversion, convert_like): Use string_conv_p. + (add_function_candidate): Use lvalue_type. + * cvt.c (convert_to_reference): Likewise. + * decl2.c (lang_decode_option): Ignore -traditional. + * decl.c (init_decl_processing): flag_writable_strings inhibits + flag_const_strings. + +1998-08-24 Andrew MacLeod <amacleod@cygnus.com> + + * lang-options.h (lang_options): Add fconst-strings to the list + of valid options. + * decl2.c (lang_f_options, lang_decode_option): Likewise. + +1998-08-24 Nathan Sidwell <nathan@acm.org> + + * lex.c (real_yylex): Don't warn about long long constants if + we're allowing long long. + 1998-08-24 Martin von Löwis <loewis@informatik.hu-berlin.de> + * decl.c (pushdecl): Use IDENTIFIER_NAMESPACE_VALUE instead of + accessing bindings directly. + * search.c (my_tree_cons): Reimplement. + * lang-specs.h: Remove __HONOR_STD. + * inc/exception, inc/new, inc/new.h, inc/typeinfo: Likewise. + +1998-08-23 Mark Mitchell <mark@markmitchell.com> + + * decl.c (grokdeclarator): Complain about in-class initialization + of aggregates and/or references. + * pt.c (process_template_parm): Clear IS_AGGR_TYPE for + TEMPLATE_TYPE_PARMs. + + * decl2.c (grok_array_decl): Add comment. + (mark_used): Don't instantiate an explicit instantiation. + * friend.c (make_friend_class): Remove bogus comment. Fix check + for partial specializations. + * pt.c (check_explicit_specialization): Don't + SET_DECL_EXPLICIT_INSTANTIATION here. + (mark_decl_instantiated): Or here. + (do_decl_instantiation): Do it here, instead. Add checks for + duplicate explicit instantiations, etc. Tidy. + (do_type_instantiation): Likewise. + (instantiate_decl): Improve comments. Complain about explicit + instantiations where no definition is available. + + * cp-tree.h (ansi_null_node): Remove. + * call.c (build_over_call): Warn about converting NULL to an + arithmetic type. + * cvt.c (build_expr_type_conversion): Likewise. Use + null_ptr_cst_p instead of expanding it inline. + * decl.c (ansi_null_node): Remove. + (init_decl_processing): Make null_node always have integral type. + * except.c (build_throw): Warn about converting NULL to an + arithmetic type. + * lex.c (init_parse): Remove handling of ansi_null_node. + * pt.c (type_unification_real): Don't convert NULL to void* type. + * typeck.c (build_binary_op_nodefault): Fix NULL warnings. + (convert_for_assignment): Warn about converting NULL to an + arithmetic type. + (convert_for_initialization): Likewise. + +1998-08-20 Jason Merrill <jason@yorick.cygnus.com> + + * tree.c (search_tree, no_linkage_helper, no_linkage_check): New fn. + * pt.c (coerce_template_parms): Use no_linkage_check. + * decl.c (grokvardecl): Likewise. + (grokfndecl): Likewise. Members of anonymous types have no linkage. + + * method.c (process_overload_item): Remove useless code. + +1998-08-20 Per Bothner <bothner@cygnus.com> + + Handle new'ing of Java classes. + * init.c (build_class_classref): New function. + (build_new_1): If type is TYPE_FOR_JAVA: Call _Jv_AllocObject; + constructor does not return this; don't need to exception-protect. + + * pt.c (lookup_template_class): Copy TYPE_FOR_JAVA flag. + * decl2.c (acceptable_java_type): Handle template-derived types. + +1998-08-20 Per Bothner <bothner@cygnus.com> + + * decl2.c (import_export_vtable): Suppress vtables for Java classes. + +1998-08-20 Mark Mitchell <mark@markmitchell.com> + + * decl.c (duplicate_decls): Always merge the old and new patterns + for templates, regardless of whether or not the new one has + DECL_INITIAL. Don't throw away specializations. Merge + DECL_SAVED_TREE. + * pt.c (tsubst_decl): Use the right pattern when calculating the + complete args for a new template instance. + (do_decl_instantiation): Fix typo in comment. + (regenerate_decl_from_template): Deal with tricky friend template + case. + (instantiate_decl): Likewise. + +Thu Aug 20 09:09:45 1998 Jeffrey A Law (law@cygnus.com) + + * init.c (build_builtin_delete_call): Add missing assemble_external + call. + +1998-08-20 Jason Merrill <jason@yorick.cygnus.com> + + * parse.y (notype_unqualified_id): Also accept ~A<int>. + +1998-08-19 Mark Mitchell <mark@markmitchell.com> + + * typeck.c (build_binary_op_nodefault): Warn on use of NULL in + arithmetic. + * except.c (build_throw): Warn when NULL is thrown, even with + -ansi. Use ansi_null_node, rather than integer_zero_node, in the + thrown expression. + + * cp-tree.h (ansi_null_node): New variable. + * decl.c (ansi_null_node): New variable. + (init_decl_processing): Initialize its type. + * lex.c (init_parse): Initialize its value. Use ansi_null_node + for null_node in non-ANSI mode. + * typeck.c (build_binary_op_nodefault): Use ansi_null_node in + place of null_node to avoid spurious errors. + +1998-08-17 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (enter_scope_of): New function. + * parse.y (complex_direct_notype_declarator): Use it. + * semantics.c (enter_scope_of): New function. + 1998-08-17 Jason Merrill <jason@yorick.cygnus.com> + * decl.c (grokparms): No, here. + + * decl.c (grokdeclarator): Catch parm with pointer to array of + unknown bound here... + * method.c (process_overload_item): ...not here. + + * gxxint.texi: Remove obsolete documentation of overloading code. + * decl.c (finish_enum): Also set TYPE_SIZE_UNIT. * class.c (finish_struct_bits): Likewise. -1998-08-17 Mark Mitchell <mark@markmitchell.com> + * tree.c (lvalue_type): Fix for arrays. + * typeck.c (build_unary_op): Use lvalue_type. + * call.c (add_function_candidate): Likewise. + * cvt.c (convert_to_reference): Likewise. + + * decl2.c (lang_decode_option): Ignore -traditional. + + * init.c (build_offset_ref): Don't mess with error_mark_node. + * lex.c (do_scoped_id): Use cp_error. + + * rtti.c (get_tinfo_fn): Don't mess with the context for now. + +1998-08-17 Benjamin Kosnik <bkoz@loony.cygnus.com> + + * decl.c (grokdeclarator): Allow anonymous types to be cv-qualified. + +Mon Aug 17 10:40:18 1998 Jeffrey A Law (law@cygnus.com) + + * cp-tree.h (set_identifier_local_value): Provide prototype. + + * decl2.c (do_namespace_alias): Remove unused variables `binding' + and `old'. + +Fri Aug 14 16:42:27 1998 Nick Clifton <nickc@cygnus.com> + + * Makefile.in: Rename BBISON to BISON so that it can be properly + inherited from the parent makefile. + +1998-08-13 Jason Merrill <jason@yorick.cygnus.com> + + * lang-options.h: Add -finit-priority. + * decl2.c: Likewise. Check flag_init_priority instead of + USE_INIT_PRIORITY. + + * decl2.c (setup_initp): New fn. + (start_objects, finish_objects, do_ctors): Handle init_priority. + (do_dtors, finish_file): Likewise. + +1998-08-13 Jason Merrill <jason@yorick.cygnus.com> + + * pt.c (tsubst_copy): Hush warning. + + * rtti.c (get_tinfo_fn): Also set DECL_IGNORED_P. + +1998-08-12 Mark Mitchell <mark@markmitchell.com> + + * pt.c (print_template_context): Don't abort when instantiating a + synthesized method. + + * decl.c (grokdeclarator): Issue errors on namespace qualified + declarators in parameter lists or in class scope. + +1998-08-09 Mark Mitchell <mark@markmitchell.com> * pt.c (check_explicit_specialization): Don't abort on bogus explicit instantiations. -1998-08-14 Jason Merrill <jason@yorick.cygnus.com> +1998-08-07 Mark Mitchell <mark@markmitchell.com> + + * typeck.c (require_complete_type): Use complete_type_or_else. + (complete_type_or_else): Always return NULL_TREE on failure, as + documented. + + * pt.c (tsubst_aggr_type): Prototype. + (tsubst_decl): New function, split out from tsubst. Set + input_filename and lineno as appropriate. + (pop_tinst_level): Restore the file and line number saved in + push_tinst_level. + (instantiate_class_template): Set input_filename and lineno as + appropriate. + (tsubst): Move _DECL processing to tsubst_decl. Make sure the + context for a TYPENAME_TYPE is complete. + + * decl2.c (grokbitfield): Issue errors on bitfields declared with + function type. + (do_dtors): As in do_ctors, pretend to be a member of the same + class as a static data member while generating a call to its + destructor. - * rtti.c (get_tinfo_fn): Don't mess with the context for now. + * cvt.c (cp_convert_to_pointer): Handle NULL pointer + conversions, even in complex virtual base class hierarchies. -1998-08-13 Mumit Khan <khan@xraylith.wisc.edu> +1998-08-06 Mark Mitchell <mark@markmitchell.com> - * decl2.c (import_export_class): Don't use dllexport - attribute as a heuristic. + * cp-tree.h (ENUM_TEMPLATE_INFO): New macro. + (TYPE_TEMPLATE_INFO): Likewise. + (SET_TYPE_TEMPLATE_INFO): Likewise. + (ENUM_TI_TEMPLATE): Likewise. + (ENUM_TI_ARGS): Likewise. + (lookup_nested_type_by_name): Remove. + * decl.c (maybe_process_template_type_declaration): Handle enums. + (start_enum): Don't check for primary-template enum declarations + here. + (finish_enum): Clean up, document. Make sure template enum + constants get the correct type. + (build_enumerator): Copy initializers for template enumerations, + too. + (grok_enum_decls): Document. + * lex.c (do_identifier): Document use of LOOKUP_EXPR a bit + better. Build LOOKUP_EXPRs for local variables, even if they are + TREE_PERMANENT. + * pt.c (tsubst_enum): Remove field_chain parameter. + (template_class_depth): Include the depth of surrounding function + contexts. + (push_template_decl): Check for primary-template enum declarations + here. Deal with enumeration templates. + (lookup_template_class): Likewise. + (for_each_template_parm): Likewise. + (instantiate_class_template): Don't call tsubst_enum directly, + call tsubst instead, to instantiate enums. Deal with all + field_chain issues here, not in tsubst_enum. + (lookup_nested_type_by_name): Remove. + (tsubst_aggr_type): Revise handling of enumeration types. + (tsubst): Likewise. + (tsubst_copy): Likewise. + (tsubst_expr): Call tsubst, not tsubst_enum for TAG_DEFNs. + +1998-08-04 Mark Mitchell <mark@markmitchell.com> + + * decl.c (pushtag): Don't mangle the name of a TYPE_DECL if it + uses template parameters. + * method.c (build_template_parm_names): Use the full set of + template arguments for tsubst'ing. + (build_overload_identifier): Pass the full set of template + arguments to build_template_parm_names, not just the + innermost_args. + * pt.c (TMPL_ARGS_DEPTH): Define using + TMPL_ARGS_HAVE_MULTIPLE_LEVELS, for clarity. + (NUM_TMPL_ARGS): New macro. + (add_outermost_template_args): Deal with the case where the outer + args will be completely discarded. + (coerce_template_parms): Use the full set of template arguments + for tsubst'ing. Simplify. Add some asserts. Improve + error messages. + (lookup_template_class): Pass the full set of template arguments + to coerce_template_parms. + (tsubst): Add assertion. + (do_type_instantiation): Don't instantiate member template + classes. + + * init.c (build_offset_ref): Deal with a TEMPLATE_ID_EXPR whose + name is a LOOKUP_EXPR, rather than an IDENTIFIER_NODE. + +1998-08-03 Jason Merrill <jason@yorick.cygnus.com> + + * method.c (set_mangled_name_for_decl): Change return type to void. + + * decl.c (lookup_name_real): A namespace-level decl takes priority + over implicit typename. Avoid doing the same lookup twice. + + * search.c (dependent_base_p): New fn. + (dfs_pushdecls, dfs_compress_decls): Use it. + + * typeck.c (get_member_function_from_ptrfunc): Don't try to handle + virtual functions if the type doesn't have any. + +1998-08-03 Mark Mitchell <mark@markmitchell.com> + + * decl2.c (grokfield): Don't mangle the name of a TYPE_DECL if it + uses template parameters. + +1998-08-02 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.def (LOOKUP_EXPR): Document. Remove second argument. + * cp-tree.h (DECL_TI_TEMPLATE): Improve documentation. + * lex.c (do_identifier): Don't use a second argument, or a type, + when building LOOKUP_EXPRs. + (do_identifier): Likewise. + (do_scoped_id): Likewise. + * method.c (hack_identifier): Improve error message. + * pt.c (lookup_template_function): Don't needlessly call + copy_to_permanent or build_min. + (tsubst_copy): Remove #if 0'd code. tsubst into LOOKUP_EXPRs if + necessary. + (do_decl_instantiation): Improve error message. + * tree.c (mapcar, case LOOKUP_EXPR): Don't be sorry; make a copy. + (build_min): Copy the type to the permanent obstack, too. + +1998-08-01 Jason Merrill <jason@yorick.cygnus.com> + + * init.c (init_init_processing): Remove BI* handling. + (build_builtin_call): Remove. + (build_builtin_delete_call): New fn. + (build_delete): Use it. + +1998-07-31 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): New macro. + (maybe_check_template_type): New function. + * decl.c (maybe_process_template_type_declaration): New function, + split out from pushtag Call maybe_check_template_type. + (pushtag): Use it. Use PROCESSING_REAL_TEMPLATE_DECL_P. + (xref_tag): Use PROCESSING_REAL_TEMPLATE_DECL_P. + * friend.c (do_friend): Use PROCESSING_REAL_TEMPLATE_DECL_P. + * pt.c (template_class_depth_real): Generalization of ... + (template_class_depth): Use it. + (register_specialization): Use duplicate_decls for duplicate + declarations of specializations. + (maybe_check_template_type): New function. + (push_template_decl_real): Fix comment. + (convert_nontype_argument): Likewise. + (lookup_template_class): Likewise. Avoid an infinite loop on + erroneous code. + (tsubst_friend_function): Fix comment. + (tsubst, case FUNCTION_DECL): Deal with a DECL_TI_TEMPLATE that is + an IDENTIFIER_NODE. + * semantics.c (begin_function_definition): Use + reset_specialization to note that template headers don't apply + directly to declarations after the opening curly for a function. 1998-07-29 Jason Merrill <jason@yorick.cygnus.com> @@ -155,13 +5014,141 @@ Fri Oct 2 02:07:26 1998 Mumit Khan <khan@xraylith.wisc.edu> * decl.c (lookup_name_real): Fix typo. +1998-07-28 Mark Mitchell <mark@markmitchell.com> + + * friend.c (is_friend): Be lenient with member functions to deal + with nested friends. + 1998-07-28 Jason Merrill <jason@yorick.cygnus.com> * class.c (finish_struct_1): Convert integer_zero_node to - ssizetype before passing it to set_rtti_entry. + ssizetype before passing it to set_rtti_entry. * typeck2.c (initializer_constant_valid_p): Allow conversion of 0 of any size to a pointer. +1998-07-27 Mark Mitchell <mark@markmitchell.com> + + * cp-tree.h (TI_USES_TEMPLATE_PARMS): Remove. + (build_template_decl_overload): Remove. + (set_mangled_name_for_decl): New function. + (innermost_args): Remove is_spec parameter. + (most_specialized, most_specialized_class): Remove declarations. + (lookup_template_class): Add entering_scope parameter. + (maybe_process_partial_specialization): New function. + (finish_template_decl): Likewise. + (finish_template_type): Likewise. + * class.c (finish_struct): Clean up processing of member template + specializations. + * decl.c (pushtag): Fix formatting. + (lookup_tag): Improve handling of pseudo-global levels. + (make_typename_type): Adjust call to lookup_template_class. + (shadow_tag): Use maybe_process_partial_specialization. + (xref_tag): Improve handling of member friends. + (start_function): Call push_nested_class before + push_template_decl. Don't call push_template_decl for + specializations. + * decl2.c (grok_x_components): Don't call xref_tag for + template instantiations. Handle UNION_TYPEs like RECORD_TYPEs. + (grokclassfn): Use set_mangled_name_for_decl. + (arg_assoc_class): Adjust call to innermost_args. + (mark_used): Don't call instantiate_decl for a TEMPLATE_DECL. + * error.c (dump_function_name): Improve printing of template + function names. + * friend.c (is_friend): Don't compare types of decls to determine + friendship, unless flag_guiding_decls. + (make_friend_class): Partial specializations cannot be friends. + (do_friend): Use set_mangled_name_for_decl. Call + push_template_decl_real instead of push_template_decl. + * method.c (build_decl_overload_real): Remove prototype. Give it + external linkage. + (build_overload_identififer): Adjust call to innermost_args. + (build_template_decl_overload): Remove. + (set_mangled_name_for_decl): New function. + * parse.y (.finish_template_type): New non-terminal. + (template_def): Use finish_template_decl. Use template_extdef + instead of extdef. + (template_extdef, template_datadef): New non-terminals, containing + only those rules for things which can be templates. + (datadef): Tidy. + (template_type, self_template_type): Use .finish_template_type. + (named_class_head): Use maybe_process_partial_specialization. + * pt.c (mangle_class_name_for_template): Remove context parameter. + (get_class_bindings): Remove outer_args parameter. + (complete_template_args): Remove. + (add_outermost_template_args): New function. + (register_specialization): Return the specialization. + (unregister_specialization): New function. + (tsubst_template_parms): Likewise. + (most_specialized, most_specialized_class): Prototype here as + static. + (original_template): Rename to most_general_template. + (tsubst_template_parms): New function. + (set_mangled_name_for_template_decl): Likewise. + (TMPL_ARGS_DEPTH): New macro. + (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): Adjust. + (TMPL_ARGS_LEVEL): New macro. + (SET_TMPL_ARGS_LEVEL): Likewise. + (TMPL_ARG): Likewise. + (SET_TMPL_ARG): Likewise. + (TMPL_ARGS_DEPTH): Likewise. + (finish_member_template_decl): Use finish_template_decl. + (maybe_process_partial_specialization): New function, split out + from tsubst. + (inline_needs_template_parms): Use TMPL_PARMS_DEPTH. + (maybe_begin_member_template_processing): Use new macros. + (is_member_template): Likewise. + (is_member_template_class): Likewise. + (add_to_template_args): Likewise. Deal with multiple levels of + args. + (maybe_process_partial_specialization): New function. + (retrieve_specialization): Add consistency check. + (determine_specialization): Return full argument list. + (check_explicit_specialization): Tweak friend handling. Use full + argument lists. Simplify. + (current_template_args): Use new macros. + (push_template_decl_real): Change ill-named mainargs to specargs. + Check that a partial specialization actually specializes at least + one parameter. Improve friend handling. Modify for full + template arguments. + (classtype_mangled_name): Don't mangle the names of + specializations. + (lookup_template_class): Add entering_scope parameter. Use it to + avoid finding a template type when an instantiation is required. + Simplify. Use full template arguments. + (tsubst_friend_function): Use unregister_specialization. Use new + macros. Use full template arguments. + (tsubst_friend_class): Substitute, using tsubst_template_parms, + into the template parameters before passing them to + redeclare_class_template. + (instantiate_class_template): Simplify. Use full template + arguments. Adjust calls to get_class_bindings. Use + SET_IDENTIFIER_TYPE_VALUE where needed. Improve friend handling. + (innermost_args): Use new macros. + (tsubst_aggr_type): New function, split out from tsubst. + (tsubst): Use tsubst_aggr_type, tsubst_template_parms, new calling + conventions for lookup_template_class. Refine handling of partial + instantiations. Remove calls to complete_template_args. + Simplify. Add consistency checks. Use set_mangled_name_for_decl + and set_mangled_name_for_template_decl. + (tsubst_copy): Use tsubst_aggr_type. + (instantiate_template): Use full template arguments. + (more_specialized): Improve formatting. + (more_specialized_class): Adjust calls to get_class_bindings. + (get_bindings_real): Don't call complete_template_args. + (most_specialized): Don't overwrite input; create a new list. + (most_specialized_class): Use most_general_template. + (regenerate_decl_from_template): Use unregister_specialization. + Use full template arguments. + (instantiate_decl): Use full template arguments. + (set_mangled_name_for_template_decl): New function. + * semantics.c (begin_class_definition): Use + maybe_process_partial_specialization. + (finish_member_class_template): New function. + (finish_template_decl): Likewise. + (finish_template_type): Likewise. + (typeck.c): Don't crash after issuing a compiler_error. + * Makefile.in (CONFLICTS): Adjust; we removed a s/r conflict. + 1998-07-27 Jason Merrill <jason@yorick.cygnus.com> * typeck2.c (build_functional_cast): Handle default-initialization. @@ -174,6 +5161,11 @@ Fri Oct 2 02:07:26 1998 Mumit Khan <khan@xraylith.wisc.edu> * tree.c (ovl_member): Fix for single function in OVL. +1998-07-27 Dave Brolley <brolley@cygnus.com> + + * c-lex.c (yylex): Fix boundary conditions in character literal and + string literal loops. + 1998-07-24 Jason Merrill <jason@yorick.cygnus.com> * decl.c (lookup_name_real): OK, do return the from_obj value @@ -217,7 +5209,7 @@ Fri Oct 2 02:07:26 1998 Mumit Khan <khan@xraylith.wisc.edu> (finish_prevtable_vardecl): From here. * class.c (finish_struct_1): Call import_export_class if at_eof. - * decl.c (start_function): #if 0 mysterious code I wrote and have + * decl.c (start_function): #if 0 mysterious code I wrote and have forgotten why. * rtti.c (get_tinfo_fn): If this is for a class type, set DECL_CONTEXT. @@ -237,6 +5229,14 @@ Fri Oct 2 02:07:26 1998 Mumit Khan <khan@xraylith.wisc.edu> * method.c (process_overload_item): Use build_overload_value for arrays. +1998-07-20 Dave Brolley <brolley@cygnus.com> + + * lex.c (mbchar.h): #include it. + (GET_ENVIRONMENT): New macro. + (init_parse): Set character set based on LANG environment variable. + (real_yylex): Handle multibyte characters in character literals. + (real_yylex): Handle multibyte characters in string literals. + 1998-07-19 Jason Merrill <jason@yorick.cygnus.com> * lex.c (do_identifier): Look for class value even if we don't @@ -252,7 +5252,7 @@ Fri Oct 2 02:07:26 1998 Mumit Khan <khan@xraylith.wisc.edu> * decl.c (pushtag): Don't put out debugging information for compiler-generated typedefs. - + * error.c (dump_type_real): Don't crash when presented with intQI_type_node or the like. @@ -369,7 +5369,7 @@ Fri Oct 2 02:07:26 1998 Mumit Khan <khan@xraylith.wisc.edu> (cat_namespace_levels): Ignore aliases. (duplicate_decls): Ignore duplicate aliases. * decl2.c (do_namespace_alias): Process block level namespace - aliases. Store alias with pushdecl. Remove odr errors. + aliases. Store alias with pushdecl. Remove odr errors. * parse.y (namespace_alias): New non-terminal. (extdef): Use it. @@ -405,6 +5405,12 @@ Fri Oct 2 02:07:26 1998 Mumit Khan <khan@xraylith.wisc.edu> * decl2.c (namespace_ancestor): Use CP_DECL_CONTEXT. (arg_assoc): Don't skip the first argument of a function. +Tue Jul 14 20:09:22 1998 Jeffrey A Law (law@cygnus.com) + + * search.c (my_tree_cons): Clean up. + +1998-07-14 Jason Merrill <jason@yorick.cygnus.com> + * call.c (joust): Don't warn about "confusing" conversions to the same type. @@ -420,14 +5426,14 @@ Fri Oct 2 02:07:26 1998 Mumit Khan <khan@xraylith.wisc.edu> of namespace-qualified ids to -1, enter the namespace. * method.c (build_template_decl_overload): Expect _DECL as first - parameter. Put context temporarily into current_namespace. + parameter. Put context temporarily into current_namespace. * pt.c (check_explicit_specialization): Change caller. (tsubst): Likewise. * init.c (build_offset_ref): Call mark_used and convert_from_reference for namespace members. -Mon Jul 13 23:25:28 1998 Martin von Lvwis <loewis@informatik.hu-berlin.de> +Mon Jul 13 23:25:28 1998 Martin von Löwis <loewis@informatik.hu-berlin.de> * search.c (my_tree_cons): The bitfield is at index 2. @@ -435,7 +5441,7 @@ Mon Jul 13 17:21:01 1998 Nick Clifton <nickc@cygnus.com> * lang-options.h: Format changed to work with new --help support in gcc/toplev.c - + 1998-07-12 Martin von Löwis <loewis@informatik.hu-berlin.de> * decl2.c (build_expr_from_tree): Change calls of do_identifier. @@ -472,14 +5478,14 @@ Mon Jul 13 17:21:01 1998 Nick Clifton <nickc@cygnus.com> * decl.c (xref_baseypes): Change caller. * friend.c (make_friend_class): Likewise. -1998-07-12 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> +1998-07-12 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> - * typeck.c (comptypes, case TEMPLATE_TEMPLATE_PARM): Add parameter + * typeck.c (comptypes, case TEMPLATE_TEMPLATE_PARM): Add parameter comparison. - * pt.c (for_each_template_parm, case TEMPLATE_DECL): If it is a + * pt.c (for_each_template_parm, case TEMPLATE_DECL): If it is a template template parameter, record its use. - (for_each_template_parm, case TEMPLATE_TEMPLATE_PARM): Traverse + (for_each_template_parm, case TEMPLATE_TEMPLATE_PARM): Traverse its template arguments if exists. * pt.c (coerce_template_template_parms): New function equivalent @@ -493,17 +5499,17 @@ Mon Jul 13 17:21:01 1998 Nick Clifton <nickc@cygnus.com> current_class_type. Don't display error message when COMPLAIN is false. -1998-07-12 Klaus Kaempf (kkaempf@progis.de) +1998-07-12 Klaus Kaempf (kkaempf@progis.de) - * repo.c (get_base_filename): Use file_name_nondirectory. - (open_repo_file): Ditto. + * repo.c (get_base_filename): Use file_name_nondirectory. + (open_repo_file): Likewise. * cp-tree.h (file_name_nondirectory): Add prototype. 1998-07-12 Jason Merrill <jason@yorick.cygnus.com> * friend.c (do_friend): Pull the identifier out of declarator. Use cp_error and friends. - * decl2.c (qualified_lookup_using_namespace): Fix call to + * decl2.c (qualified_lookup_using_namespace): Fix call to purpose_member. * decl.c (lookup_name_real): Don't call complete_type on a namespace. (grokvardecl): Use DECL_CLASS_SCOPE_P. @@ -511,7 +5517,7 @@ Mon Jul 13 17:21:01 1998 Nick Clifton <nickc@cygnus.com> * class.c (warn_hidden): Fix for OVERLOAD. From grahams@rcp.co.uk: * cp-tree.h (DEFARG_NODE_CHECK): New macro. - (DEFARG_LENGTH, DEFARG_POINTER): Use it. + (DEFARG_LENGTH, DEFARG_POINTER): Use it. Sun Jul 12 01:20:57 1998 Jeffrey A Law (law@cygnus.com) @@ -577,7 +5583,7 @@ Sun Jul 12 01:20:57 1998 Jeffrey A Law (law@cygnus.com) * decl2.c: Define them. (lang_decode_option): Handle them. * lang-options.h: Add -foptional-diags. - * class.c (finish_struct): Don't complain about multiple meanings of + * class.c (finish_struct): Don't complain about multiple meanings of name if -fno-optional-diags. * decl.c (pushdecl_class_level): Likewise. * lex.c (real_yylex): Check warn_multichar. @@ -590,8 +5596,8 @@ Sun Jul 12 01:20:57 1998 Jeffrey A Law (law@cygnus.com) 1998-06-30 Benjamin Kosnik <bkoz@bliss.nabi.net> - * decl2.c (lang_decode_option): Remove warn_template_debugging. - * lang-options.h: Ditto. + * decl2.c (lang_decode_option): Remove warn_template_debugging. + * lang-options.h: Likewise. Mon Jun 29 20:17:40 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> @@ -613,7 +5619,7 @@ Sat Jun 27 23:34:18 1998 Fred Fish <fnf@ninemoons.com> Sat Jun 27 12:22:56 1998 Jeffrey A Law (law@cygnus.com) - * Make-lang.in (g++): Depend on mkstemp.o. Link in mkstemp.o + * Make-lang.in (g++): Depend on mkstemp.o. Link in mkstemp.o Sat Jun 27 07:36:09 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> @@ -636,7 +5642,7 @@ Sat Jun 27 07:36:09 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * cp-tree.h (mark_all_runtime_matches): Add function prototype. * except.c (mark_all_runtime_matches): Set TREE_SYMBOL_REFERENCED - flag for all function decls which are in the exception table. + flag for all function decls which are in the exception table. * exception.cc (__cplus_type_matcher): Check for CATCH_ALL_TYPE match. * decl2.c (finish_file): Call mark_all_runtime_matches to make sure code is emitted for any referenced rtti function. @@ -704,7 +5710,7 @@ Sat Jun 27 07:36:09 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * exception.cc (struct cp_eh_info): Add original_value field. (__cplus_type_matcher): Perform type matching on the original exception value, and if we have a match, set the current value. - (__cp_push_exception): Set the original expcetion value. + (__cp_push_exception): Set the original exception value. 1998-06-23 Jason Merrill <jason@yorick.cygnus.com> @@ -739,8 +5745,8 @@ Mon Jun 22 08:50:26 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> Fri Jun 19 23:22:42 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> - * typeck2.c (pop_init_level): Warn about implicit zero initialization - of struct members. + * typeck2.c (pop_init_level): Warn about implicit zero initialization + of struct members. Thu Jun 18 09:32:32 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> @@ -785,7 +5791,7 @@ Thu Jun 18 09:32:32 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1998-06-16 Andrew MacLeod <amacleod@cygnus.com> - * decl.c (grokvardecl): Don't build external assembler names for + * decl.c (grokvardecl): Don't build external assembler names for TYPENAMEs in other namespaces as there is no declarator. * error.c (cp_file_of, cp_line_of): Don't extract file or line number info from DECL_CONTEXT if it is NULL. @@ -821,7 +5827,7 @@ Thu Jun 18 09:32:32 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> (pointer_diff): Likewise. * pt.c (for_each_template_parm): Traverse the TYPE_CONTEXT for - types. + types. * search.c (get_matching_virtual): Note that member templates cannot override virtual functions. @@ -856,7 +5862,7 @@ Thu Jun 18 09:32:32 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1998-06-11 Benjamin Kosnik <bkoz@elmo.cygnus.com> * friend.c (do_friend): Add support for nested classes using - member functions of the enclosing class as friends. + member functions of the enclosing class as friends. 1998-06-10 Mark Mitchell <mark@markmitchell.com> @@ -870,9 +5876,9 @@ Thu Jun 18 09:32:32 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> (expand_member_init): Remove much of this code; it is dead. * typeck.c (convert_arguments): Use convert_default_arg and convert_arg_for_ellipsis, rather than duplicating here. - - * call.c (convert_like): Don't fail silently if - build_user_type_conversion fails. Always return error_mark_node + + * call.c (convert_like): Don't fail silently if + build_user_type_conversion fails. Always return error_mark_node for failure. 1998-06-10 Jason Merrill <jason@yorick.cygnus.com> @@ -931,8 +5937,8 @@ Thu Jun 18 09:32:32 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1998-06-10 Branko Cibej <branko.cibej@hermes.si> - * typeck.c (c_expand_return): Don't warn about void expressions on - return statements in functions returning void. + * typeck.c (c_expand_return): Don't warn about void expressions on + return statements in functions returning void. 1998-06-09 Mark Mitchell <mark@markmitchell.com> @@ -959,26 +5965,26 @@ Mon Jun 8 20:45:52 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * Makefile.in (decl2.o): Depend on dwarf2out.h and dwarfout.h. * cp-tree.h: Add prototype for `maybe_print_template_context' and - `maybe_make_one_only'. + `maybe_make_one_only'. * decl.c (auto_function): Remove unused variable `decl'. * decl2.c: Include dwarf2out.h and dwarfout.h. * lex.c: Remove redundant declarations of `set_float_handler' and - `asm_out_file'. + `asm_out_file'. 1998-06-08 Andrew MacLeod <amacleod@cygnus.com> - * except.c (init_exception_processing): Remove NEW_EH_MODEL compile + * except.c (init_exception_processing): Remove NEW_EH_MODEL compile time flag. Call __cp_eh_info instead of __cp_exception_info. * exception.cc (struct cp_eh_info): Remove NEW_EH_MODEL flag. - (__cp_exception_info): Return offset into cp_eh_info structure to + (__cp_exception_info): Return offset into cp_eh_info structure to match what use to be the start of this structure. (__cp_eh_info): New function to return a pointer to cp_eh_info struct. (__cplus_type_matcher, __cp_push_exception): Remove NEW_EH_MODEL compile time flag. - (__uncatch_exception, __check_eh_spec, std::uncaught_exception): Call + (__uncatch_exception, __check_eh_spec, std::uncaught_exception): Call __cp_eh_info instead of __cp_exception_info. 1998-06-08 Jason Merrill <jason@yorick.cygnus.com> @@ -1002,7 +6008,7 @@ Mon Jun 8 20:45:52 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * lex.c (lang_init_options): New function. (lang_init): Remove flag_exceptions == 2 hack. - + 1998-06-05 Jason Merrill <jason@yorick.cygnus.com> * search.c (envelope_add_decl): Tweak for implicit typename. @@ -1044,7 +6050,7 @@ Mon Jun 8 20:45:52 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> (begin_only_namespace_names, end_only_namespace_names): New functions. * decl2.c (set_decl_namespace): Skip namespace aliases. (do_using_directive): Likewise. - (do_namespace_alias): Produce namespace aliases, fix alias + (do_namespace_alias): Produce namespace aliases, fix alias redeclaration. * error.c (dump_decl): Support SCOPE_REF. * parse.y (extdef): Wrap lookup with namespace_only for namespace @@ -1127,9 +6133,9 @@ Mon Jun 8 20:45:52 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * method.c (build_destructor_name): New fn. * decl2.c (maybe_retrofit_in_chrg): Split out... (grokclassfn): From here. Reorganize. - * decl.c (grok_ctor_properties): Make sure ctors for types with + * decl.c (grok_ctor_properties): Make sure ctors for types with vbases have the in_chrg parm. - * pt.c (instantiate_class_template): Update + * pt.c (instantiate_class_template): Update TYPE_USES_VIRTUAL_BASECLASSES from tsubsted bases. Don't call grok_*_properties. (tsubst): Call grok_ctor_properties and maybe_retrofit_in_chrg. @@ -1141,7 +6147,7 @@ Mon Jun 8 20:45:52 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1998-05-28 Jason Merrill <jason@yorick.cygnus.com> - * decl.c (start_decl): Always pedwarn about vacuously redeclaring + * decl.c (start_decl): Always pedwarn about vacuously redeclaring a member. (start_function): Call check_default_args. * decl2.c (grokfield): Don't call check_default_args. @@ -1170,7 +6176,7 @@ Mon Jun 8 20:45:52 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> (maybe_push_to_top_level): Clear shadowed_labels. * pt.c (instantiate_decl): Reset lineno and filename after calling - regenerate_decl_from_template. + regenerate_decl_from_template. * decl.c (grokdeclarator): Don't try to use TYPE_OBSTACK on an error_mark_node. @@ -1199,7 +6205,7 @@ Mon Jun 8 20:45:52 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1998-05-26 Benjamin Kosnik <bkoz@loony.cygnus.com> * decl.c (start_decl): Check for DECL_LANG_SPECIFIC before - DECL_USE_TEMPLATE. + DECL_USE_TEMPLATE. 1998-05-26 Per Bothner <bothner@cygnus.com> @@ -1244,7 +6250,7 @@ Mon Jun 8 20:45:52 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * cp-tree.h (processing_template_parmlist): Declare. * decl.c (pushtag): Don't call push_template_decl when we - shouldn't. + shouldn't. * pt.c (processing_template_parmlist): New variable. (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): New macro. (complete_template_args): Use it. @@ -1289,7 +6295,7 @@ Mon Jun 8 20:45:52 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * parse.y (xcond): Move call to condition_conversion ... * semantics.c (finish_for_cond): Here. * parse.c: Regenerated. - + 1998-05-24 Jason Merrill <jason@yorick.cygnus.com> * decl.c (push_namespace): Namespaces have type void. @@ -1308,14 +6314,14 @@ Mon Jun 8 20:45:52 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * tree.c (build_srcloc, build_srcloc_here): New fns. * pt.c (add_pending_template): Use build_srcloc_here. (push_tinst_level): Update last_template_error_tick before erroring. - (instantiate_decl): Restore lineno and input_filename before + (instantiate_decl): Restore lineno and input_filename before calling add_pending_template. * decl2.c (finish_file): Set up lineno and input_filename for pending templates. 1998-05-22 Jason Merrill <jason@yorick.cygnus.com> - * decl.c (lang_print_error_function): New fn. + * decl.c (lang_print_error_function): New fn. (init_decl_processing): Set print_error_function to use it. * errfn.c (cp_thing): Don't call maybe_print_template_context here. @@ -1342,7 +6348,7 @@ Mon Jun 8 20:45:52 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * pt.c (determine_specialization): Just return an error_mark_node. Also print the decl we want in error messages. If we complain, return error_mark_node. - (tsubst_friend_function): Set lineno and input_filename so + (tsubst_friend_function): Set lineno and input_filename so error messages will be useful. (instantiate_template): Just return an error_mark_node. (check_explicit_specialization): Don't mess with a returned @@ -1376,7 +6382,7 @@ Thu May 21 11:54:44 1998 Dave Brolley <brolley@cygnus.com> * cp-tree.h: (get_directive_line): Different prototype for cpplib. (GET_DIRECTIVE_LINE): Macro wrapper for get_directive_line. - * Makefile.in (CXX_OBJS): add @extra_cxx_objs@ for cpplib. + * Makefile.in (CXX_OBJS): Add @extra_cxx_objs@ for cpplib. 1998-05-21 Jason Merrill <jason@yorick.cygnus.com> @@ -1409,11 +6415,11 @@ Thu May 21 11:54:44 1998 Dave Brolley <brolley@cygnus.com> CLASSTYPE_TAGS list, just as for ordinary member classes. (pushdecl_class_level): Use DECL_DECLARES_TYPE_P. (lookup_tag): Look for IDENTIFIER_CLASS_VALUEs, just as with - IDENTIFIER_NAMESPACE_VALUEs. + IDENTIFIER_NAMESPACE_VALUEs. * parse.y (component_decl): Move code to ... - * semantics.c (finish_member_class_template): New function. + * semantics.c (finish_member_class_template): New function. Don't put member class templates on the list of components for a - class. + class. * parse.c: Regenerated. * pt.c (classtype_mangled_name): Don't try DECL_CONTEXT on types. In fact, don't use DECL_CONTEXT at all here. @@ -1492,7 +6498,7 @@ Tue May 19 10:05:02 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> definition. * errfn.c (cp_error): Cast function pointer `error' to (errorfn *) - in call to `cp_thing'. + in call to `cp_thing'. (cp_warning): Likewise for function pointer `warning'. * except.c (do_function_call): Remove prototype and definition. @@ -1503,10 +6509,10 @@ Tue May 19 10:05:02 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * parse.y: Include toplev.h. * pt.c (type_unification): Remove unused variable `arg'. - (instantiate_decl): likewise for `save_ti'. + (instantiate_decl): Likewise for `save_ti'. * tree.c (propagate_binfo_offsets): Likewise for `base_binfos'. - + Tue May 19 02:43:25 1998 Jason Merrill <jason@yorick.cygnus.com> * init.c (build_member_call): Handle template_ids. @@ -1520,9 +6526,9 @@ Mon May 18 23:22:52 1998 Jason Merrill <jason@yorick.cygnus.com> Mon May 18 12:28:44 1998 Mark Mitchell <mmitchell@usa.net> * parse.y (.finish_new_placement): New non-terminal. - (unary_expr, new_type_id): Use it. + (unary_expr, new_type_id): Use it. * parse.c: Regenerated. - + Mon May 18 12:20:27 1998 Brendan Kehoe <brendan@cygnus.com> * pt.c (redeclare_class_template): Say where the original definition @@ -1538,7 +6544,7 @@ Mon May 18 03:00:57 1998 Jason Merrill <jason@yorick.cygnus.com> Mon May 18 01:43:01 1998 Martin v. Loewis <loewis@informatik.hu-berlin.de> - * decl.c (lookup_name_real): Don't look at IDENTIFIER_LOCAL_VALUE + * decl.c (lookup_name_real): Don't look at IDENTIFIER_LOCAL_VALUE for a type unless it is one. * class.c (finish_struct_1): Use OVL_CURRENT in error message. @@ -1548,7 +6554,7 @@ Mon May 18 01:24:08 1998 Jeffrey A Law (law@cygnus.com) * Makefile.in (program_transform_name, objdir): Define. * Makefile.in (BISON): Use bison from the build tree if it exists. - (FLEX): Similarly. + (FLEX): Likewise. Sun May 17 14:52:08 1998 Martin v. Loewis <loewis@informatik.hu-berlin.de> @@ -1567,7 +6573,7 @@ Sun May 17 13:53:48 1998 Mark Mitchell <mmitchell@usa.net> * parse.y (.build_new_placement): New non-terminal. (unary_expr, new_placement): Use it. * parse.c: Regenerated. - + Sun May 17 12:32:08 1998 Jason Merrill <jason@yorick.cygnus.com> * decl.c (duplicate_decls): Use CANONICAL_TYPE_VARIANT to compare @@ -1586,7 +6592,7 @@ Fri May 15 20:28:00 1998 Jason Merrill <jason@yorick.cygnus.com> Fri May 15 15:34:02 1998 Benjamin Kosnik <bkoz@rhino.cygnus.com> - * decl.c (duplicate_decls): Clean up, add DECL_DATA_AREA bits. + * decl.c (duplicate_decls): Clean up, add DECL_DATA_AREA bits. Fri May 15 00:46:05 1998 Jason Merrill <jason@yorick.cygnus.com> @@ -1594,20 +6600,20 @@ Fri May 15 00:46:05 1998 Jason Merrill <jason@yorick.cygnus.com> * decl.c (start_decl): Use 'tem'. -Thu May 14 16:30:47 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> +Thu May 14 16:30:47 1998 Andrew MacLeod <amacleod@cygnus.com> * exception.cc: Include eh-common.h. - (struct cp_eh_info): add eh_info struct with NEW_EH_MODEL. + (struct cp_eh_info): Add eh_info struct with NEW_EH_MODEL. (__cplus_type_matcher): First stab at new C++ runtime type matcher. (__cp_push_exception): Initialize eh_info struct as well. * except.c: Remove local structs and include eh-common.h. (init_exception_processing): Set language and version codes. - (call_eh_info): add presence of eh_info to runtime description of + (call_eh_info): Add presence of eh_info to runtime description of struct cp_eh_info. - (expand_end_eh_spec): call start_catch_block() and end_catch_block(). - * semantics.c (finish_try_block): call start_catch_block() and + (expand_end_eh_spec): Call start_catch_block() and end_catch_block(). + * semantics.c (finish_try_block): Call start_catch_block() and end_catch_block(). - * parse.y (function_try_block): call start_catch_block() and + * parse.y (function_try_block): Call start_catch_block() and end_catch_block(). Thu May 14 12:27:34 1998 Brendan Kehoe <brendan@cygnus.com> @@ -1620,11 +6626,11 @@ Thu May 14 12:27:34 1998 Brendan Kehoe <brendan@cygnus.com> Wed May 13 12:54:30 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * Makefile.in (lex.o): Depend on output.h. - + * call.c (add_function_candidate): Remove unused variable `cand'. (add_conv_candidate): Likewise. (build_builtin_candidate): Likewise. - + * cp-tree.h: Add prototype for `types_overlap_p'. * decl.c (signal_catch): Mark parameter `sig' with ATTRIBUTE_UNUSED. @@ -1659,7 +6665,7 @@ Tue May 12 21:37:49 1998 Jason Merrill <jason@yorick.cygnus.com> DECL_NAMESPACE_SCOPE_P. (lang_decl_name): Likewise. * pt.c (tsubst_friend_function, tsubst): Likewise. - * decl.c (pushdecl, redeclaration_error_message, start_decl, + * decl.c (pushdecl, redeclaration_error_message, start_decl, cp_finish_decl, start_function): Likewise. * class.c (finish_struct_1): Likewise. * call.c (build_over_call): Likewise. @@ -1681,7 +6687,7 @@ Mon May 11 11:38:07 1998 Mark Mitchell <mmitchell@usa.net> * pt.c (tsubst): Remove duplicate check for IDENTIFIER_NODE. * call.c (add_template_candidate): Adjust for changes to - fn_type_unification. + fn_type_unification. (add_template_candidate_real): Likewise. (add_template_conv_candidate): Likewise. (build_user_type_conversion_1): Likewise. @@ -1726,11 +6732,11 @@ Mon May 11 11:38:07 1998 Mark Mitchell <mmitchell@usa.net> tsubst_template_argument_vector where appropriate. (regenerate_decl_from_template): Break out from ... (instantiate_decl): Here. - + * lex.c (yyprint): Remove TYPENAME_ELLIPSIS. * parse.h: Regenerated. * parse.c: Really regenerated. - + * cp-tree.h (finish_unary_op_expr): New function. (finish_id_expr): Likewise. (begin_new_placement): Likewise. @@ -1792,7 +6798,7 @@ Sat May 9 14:44:37 1998 Jason Merrill <jason@yorick.cygnus.com> Fri May 8 23:32:42 1998 Martin von Loewis <loewis@informatik.hu-berlin.de> - * cp-tree.def (OVERLOAD): New node. + * cp-tree.def (OVERLOAD): New node. * cp-tree.h (BINDING_TYPE, SET_IDENTIFIER_GLOBAL_VALUE, SET_IDENTIFIER_NAMESPACE_VALUE): Define. (NAMESPACE_BINDING): Remove. @@ -1821,10 +6827,10 @@ Fri May 8 23:32:42 1998 Martin von Loewis <loewis@informatik.hu-berlin.de> * call.c (add_function_candidate): Special-case type of OVERLOAD node. (build_user_conversions_1): Iterate using OVL_NEXT for ctors, convs, fns. - (build_new_function_call): Iterate using OVL_CHAIN. + (build_new_function_call): Iterate using OVL_CHAIN. Print DECL_NAME in when reporting ambiguities. (build_object_call): Iterate using OVL_NEXT for fns, convs. - (build_new_op): Call lookup_function_nonclass. + (build_new_op): Call lookup_function_nonclass. Iterate using OVL_NEXT. (build_op_delete_call): Change detection of members. Do not wrap TREE_LIST around fields and single global functions. @@ -1842,7 +6848,7 @@ Fri May 8 23:32:42 1998 Martin von Loewis <loewis@informatik.hu-berlin.de> fdecls that are OVERLOAD nodes. (validate_lhs): New function. (instantiate_type): Do not copy OVERLOAD nodes. Remove dead - code. Use DECL_NAME in error messages. Split code between global + code. Use DECL_NAME in error messages. Split code between global and member function processing. * decl.c (global_type_node): New static variable. (in_std): New global. @@ -1869,7 +6875,7 @@ Fri May 8 23:32:42 1998 Martin von Loewis <loewis@informatik.hu-berlin.de> (pushtag): If no context, use current_namespace. (duplicate_decls): Don't process DECL_CHAIN. (pushdecl): Set DECL_CONTEXT to current_namespace, if it is not - already set. Never reset it to NULL_TREE. Lookup global variables + already set. Never reset it to NULL_TREE. Lookup global variables in their namespace. Push overloaded templates if they are on namespace level. (pushdecl_namespace_level): New function. @@ -1877,7 +6883,7 @@ Fri May 8 23:32:42 1998 Martin von Loewis <loewis@informatik.hu-berlin.de> (pushdecl_using_decl): New function. (overloaded_globals_p): Remove. (push_overloaded_decl): Create OVERLOAD nodes, and iterate through - them. Use namespace_binding and set_namespace_value. + them. Use namespace_binding and set_namespace_value. (redeclaration_error_message): Complain if the declarations come from different namespaces. (lookup_tag): On namespace level, look in the BINDING_TYPE. @@ -1903,7 +6909,7 @@ Fri May 8 23:32:42 1998 Martin von Loewis <loewis@informatik.hu-berlin.de> (grokvardecl): Add namespace parameter. (grokdeclarator): Process SCOPEs that are namespaces. For mangling, temporarily set the DECL_CONTEXT on anonymous structs. - (start_function): Check for contexts that are namespaces. + (start_function): Check for contexts that are namespaces. Set context for declarations that have not been pushed. (store_parm_decls): Check for ::main only. (finish_function): Likewise. @@ -1939,7 +6945,7 @@ Fri May 8 23:32:42 1998 Martin von Loewis <loewis@informatik.hu-berlin.de> * lang-specs.h (__HONOR_STD): Define if -fnew-abi or -fhonor-std. * lex.c (identifier_type): Loop using OVL_CHAIN. (see_typename): Set looking_for_typename to 2. - (real_yylex): Likewise. + (real_yylex): Likewise. (do_identifier): Expect OVERLOAD nodes instead of TREE_LISTs. (do_scoped_id): Expect OVERLOAD nodes. Change calling convention for qualified_lookup_using_namespace. @@ -1966,7 +6972,7 @@ Fri May 8 23:32:42 1998 Martin von Loewis <loewis@informatik.hu-berlin.de> Set DECL_CONTEXT to current_namespace if not set already. Ignore real contexts that are namespaces. (mangle_class_name_for_template): Skip global_namespace. - Mangle other namepaces as declarations. + Mangle other namespaces as declarations. (lookup_template_function): Set type of OVERLOAD nodes to unknown. (lookup_template_class): Push into namespace of context. If the context is a namespace, set it to global_namespace. @@ -2008,7 +7014,7 @@ Fri May 8 23:32:42 1998 Martin von Loewis <loewis@informatik.hu-berlin.de> * decl.c (duplicate_decls): Check for namespace bindings instead of global bindings. (pushdecl, push_overloaded_decl, lookup_tag, lookup_name_real, - lookup_name_current_level, start_decl, xref_tag, + lookup_name_current_level, start_decl, xref_tag, finish_enum): Likewise. * init.c (build_offset_ref): Likewise. * search.c (lookup_field): Likewise. @@ -2025,17 +7031,17 @@ Fri May 8 23:32:42 1998 Martin von Loewis <loewis@informatik.hu-berlin.de> * parse.y (make_thunk): Likewise. * pt.c (tsubst): Likewise. * tree.c (debug_binfo): Likewise. - * exception.cc, new.cc, new1.cc, new2.cc, tinfo.cc, tinfo.h, + * exception.cc, new.cc, new1.cc, new2.cc, tinfo.cc, tinfo.h, tinfo2.cc, inc/new.h: Add std qualifications. * inc/new: Wrap with namespace std if __HONOR_STD. * inc/typeinfo: Likewise. Fri May 8 00:43:50 1998 Jason Merrill <jason@yorick.cygnus.com> - * call.c (build_user_type_conversion_1): Handle second_conv + * call.c (build_user_type_conversion_1): Handle second_conv properly for templates. -Thu May 7 17:09:25 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> +Thu May 7 17:09:25 1998 Andrew MacLeod <amacleod@cygnus.com> * method.c (build_decl_overload_real): Set TREE_USED flag to zero for build_type_variants nodes as well. @@ -2048,7 +7054,7 @@ Wed May 6 16:49:48 1998 Jim Wilson <wilson@cygnus.com> * Makefile.in (call.o, class.o, decl.o, decl2.o, errfn.o, error.o, except.o, expr.o, friend.o, init.o, lex.o, method.o, pt.o, repo.o, - rtti.o, search.o, semantics.o, sig.o, tree.o, typeck.o, typeck2.o, + rtti.o, search.o, semantics.o, sig.o, tree.o, typeck.o, typeck2.o, xref.o): Add toplev.h dependencies. Wed May 6 16:44:58 1998 Jeffrey A Law (law@cygnus.com) @@ -2065,9 +7071,9 @@ Wed May 6 14:28:18 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> Wed May 6 06:36:41 1998 Robert Lipe <robertl@dgii.com> - * call.c, class.c, decl.c, decl2.c, errfn.c, error.c, except.c, - expr.c, friend.c, init.c, lex.c, method.c, pt.c, repo.c, rtti.c, - search.c, semantics.c, sig.c, tree.c, typeck.c, typeck2.c, + * call.c, class.c, decl.c, decl2.c, errfn.c, error.c, except.c, + expr.c, friend.c, init.c, lex.c, method.c, pt.c, repo.c, rtti.c, + search.c, semantics.c, sig.c, tree.c, typeck.c, typeck2.c, xref.c: Add include of toplev.h. Wed May 6 02:33:39 1998 Jason Merrill <jason@yorick.cygnus.com> @@ -2080,9 +7086,9 @@ Tue May 5 23:54:04 1998 Jason Merrill <jason@yorick.cygnus.com> * init.c (expand_vec_init): The initialization of each array element is a full-expression. -Tue May 5 18:24:13 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> +Tue May 5 18:24:13 1998 Andrew MacLeod <amacleod@cygnus.com> - * method.c (build_mangled_name): Add a call to build_type_variant + * method.c (build_mangled_name): Add a call to build_type_variant to get the right type. Tue May 5 01:25:03 1998 Jason Merrill <jason@yorick.cygnus.com> @@ -2093,7 +7099,7 @@ Tue May 5 01:25:03 1998 Jason Merrill <jason@yorick.cygnus.com> Sun May 3 01:32:14 1998 Jason Merrill <jason@yorick.cygnus.com> - * call.c (build_over_call): Do evaluate arg even if it has empty + * call.c (build_over_call): Do evaluate arg even if it has empty class type. * decl.c (start_function): Don't push a member function. @@ -2101,7 +7107,7 @@ Thu Apr 30 18:59:23 1998 Jim Wilson <wilson@cygnus.com> * Makefile.in (g++FAQ.info): Put -o option before input file. -Thu Apr 30 13:05:33 EDT 1998 Andrew MacLeod <amacleod@cygnus.com> +Thu Apr 30 13:05:33 1998 Andrew MacLeod <amacleod@cygnus.com> * gxxint.texi: Add info for squangling codes K and B. @@ -2130,7 +7136,7 @@ Sun Apr 26 12:10:18 1998 Mark Mitchell <mmitchell@usa.net> (PRIMARY_TEMPLATE_P): Use it. (push_template_decl_real): New function. (redeclare_class_template): Take new template parameters as - input. + input. (is_specialization_of): New function. (comp_template_args): Declare. * decl.c (pushtag): Handle friend template classes. @@ -2150,7 +7156,7 @@ Sun Apr 26 12:10:18 1998 Mark Mitchell <mmitchell@usa.net> with friend templates. * typeck.c (comptypes): Use comp_template_args, rather than expanding it inline. - * parse.y (component_decl): Handle a nested template type + * parse.y (component_decl): Handle a nested template type like other component type declarations. * pt.c (check_explicit_specialization): Handle overloaded @@ -2168,14 +7174,14 @@ Thu Apr 23 21:19:06 1998 Jason Merrill <jason@yorick.cygnus.com> Enforce access control here. Emit overload warnings here. (add_warning): New fn. (joust): Add WARN parm. If not set, call add_warning instead of - printing a warning. Reenable some warnings. + printing a warning. Re-enable some warnings. (tourney): Pass it. (convert_like): Adjust. (build_new_op): Adjust. (build_new_function_call): Adjust. (build_user_type_conversion_1): Adjust. (USER_CONV_FN): Adjust. - * tree.c (build_expr_wrapper, build_expr_ptr_wrapper, + * tree.c (build_expr_wrapper, build_expr_ptr_wrapper, build_int_wrapper): New fns. Thu Apr 23 18:27:53 1998 Mark P. Mitchell <mmitchell@usa.net> @@ -2194,15 +7200,15 @@ Wed Apr 22 13:24:48 1998 Mark Mitchell <mmitchell@usa.net> the DECL_RESULTs of a member TEMPLATE_DECL, not just the TEMPLATE_DECL. - * pt.c (tsubst): Decrease the template-level of - TEMPLATE_TEMPLATE_PARMS. Likewise for the DECL_INITIAL of a - TEMPLATE_PARM_INDEX. - (template_decl_level): New function. - (unify): Make sure to record unifications for template - parameters, even when the parameters exactly match the arguments. - Combine duplicated code for TEMPLATE_TEMPLATE_PARMs and - TEMPLATE_TYPE_PARMS. Don't try to unify template parameters that - aren't from the level we're currently working on. + * pt.c (tsubst): Decrease the template-level of + TEMPLATE_TEMPLATE_PARMS. Likewise for the DECL_INITIAL of a + TEMPLATE_PARM_INDEX. + (template_decl_level): New function. + (unify): Make sure to record unifications for template + parameters, even when the parameters exactly match the arguments. + Combine duplicated code for TEMPLATE_TEMPLATE_PARMs and + TEMPLATE_TYPE_PARMS. Don't try to unify template parameters that + aren't from the level we're currently working on. Tue Apr 21 22:00:04 1998 Mark Mitchell <mmitchell@usa.net> @@ -2345,29 +7351,29 @@ Sun Apr 12 22:31:19 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> Fri Apr 10 12:16:49 1998 Benjamin Kosnik <bkoz@loony.cygnus.com> * decl.c (duplicate_decls): Don't warn for redundant decls if - friend: let add_friend take care of it. + friend: let add_friend take care of it. Thu Apr 9 02:40:48 1998 Jason Merrill <jason@yorick.cygnus.com> * sig.c (build_signature_pointer_constructor): Don't set TREE_HAS_CONSTRUCTOR for a signature pointer. * cvt.c (ocp_convert): Don't force a temporary for internal structs. - * init.c (resolve_offset_ref): Warn about implicit & on pmfs + * init.c (resolve_offset_ref): Warn about implicit & on pmfs here, too. - * typeck.c (build_unary_op): Only allow taking the address of a + * typeck.c (build_unary_op): Only allow taking the address of a real constructor. * typeck2.c (digest_init): Simplify. (store_init_value): Don't pedwarn about using { } for pmfs. Thu Apr 9 22:16:57 1998 Per Bothner <bothner@cygnus.com> - * cp-tree.h (start_decl): Update prototype. - * decl.c (start_decl): Like the C version, new parameters - for the attributes. Call cplus_decl_attributes here, - (pushdecl): Like C version, do build_type_copy if TYPE_DECL, - (grokdeclarator): Pass NULL for new start_decl arguments. - * pt.c (tsubst_expr): Likewise. - * parse.y: Merge cplus_decl_attribute calls into start_decl calls. + * cp-tree.h (start_decl): Update prototype. + * decl.c (start_decl): Like the C version, new parameters + for the attributes. Call cplus_decl_attributes here, + (pushdecl): Like C version, do build_type_copy if TYPE_DECL, + (grokdeclarator): Pass NULL for new start_decl arguments. + * pt.c (tsubst_expr): Likewise. + * parse.y: Merge cplus_decl_attribute calls into start_decl calls. * typeck.c (common_type): Check TYPE_MAIN_VARIANT. * lex.c (build_lang_decl): Add lang_name_java. * class.c (push_lang_context): Add lang_name_java. @@ -2378,14 +7384,14 @@ Thu Apr 9 22:16:57 1998 Benjamin Kosnik <bkoz@loony.cygnus.com> * decl.c (grokdeclarator): Check TYPE_MAIN_VARIANT. * call.c (build_scoped_method_call): Check for TREE_CODE for VOID_TYPE instead of type == void_type_node. - (build_method_call): Ditto. - * decl.c (lookup_name_real): Ditto. - (grokdeclarator): Ditto. - (start_decl): Ditto. - (grokparms): Ditto. - (start_function): Ditto. - (finish_function): Ditto. - (start_method): Ditto. + (build_method_call): Likewise. + * decl.c (lookup_name_real): Likewise. + (grokdeclarator): Likewise. + (start_decl): Likewise. + (grokparms): Likewise. + (start_function): Likewise. + (finish_function): Likewise. + (start_method): Likewise. Thu Apr 9 00:18:44 1998 Dave Brolley (brolley@cygnus.com) @@ -2419,7 +7425,7 @@ Sat Apr 4 12:52:35 1998 Jeffrey A Law (law@cygnus.com) Fri Apr 3 02:22:59 1998 Jason Merrill <jason@yorick.cygnus.com> Implement empty base optimization. - * class.c (finish_struct_1): Add vbase fields earlier. Set + * class.c (finish_struct_1): Add vbase fields earlier. Set CLASSTYPE_SIZE of an empty base to 0. Types with bases can be empty. * search.c (dfs_check_overlap, dfs_no_overlap_yet): New fns. (types_overlap_p): New fn. @@ -2456,7 +7462,7 @@ Wed Apr 1 18:22:25 1998 Jeffrey A Law (law@cygnus.com) * class.c, Make sure system.h is included just after config.h. Delete lingering stdio and errno references too. * decl.c, errfn.c, parse.y, ptree.c search.c, xref.c: Likewise. - + Wed Apr 1 15:38:36 1998 Jason Merrill <jason@yorick.cygnus.com> * friend.c (is_friend): Fix access control for local classes. @@ -2483,7 +7489,7 @@ Tue Mar 31 13:43:57 1998 Jeffrey A Law (law@cygnus.com) Mon Mar 30 12:15:00 1998 Mark Mitchell <mmitchell@usa.net> - * pt.c (fn_type_unification): Allow incomplete unification without + * pt.c (fn_type_unification): Allow incomplete unification without an immediate error message. Mon Mar 30 08:55:42 1998 Jason Merrill <jason@yorick.cygnus.com> @@ -2561,7 +7567,7 @@ Fri Mar 27 20:23:18 1998 Mark Mitchell <mmitchell@usa.net> * error.c (dump_decl): Be a bit more explicit with template type arguments, when verbose. - + Fri Mar 27 18:16:40 1998 Jason Merrill <jason@yorick.cygnus.com> * inc/exception: Reorder closing braces. @@ -2574,7 +7580,7 @@ Fri Mar 27 13:22:18 1998 Mark Mitchell <mmitchell@usa.net> Thu Mar 26 11:16:30 1998 Jason Merrill <jason@yorick.cygnus.com> - * call.c (build_over_call): Check IS_AGGR_TYPE, not + * call.c (build_over_call): Check IS_AGGR_TYPE, not TYPE_LANG_SPECIFIC. * typeck.c (convert_arguments): Likewise. @@ -2633,8 +7639,8 @@ Tue Mar 24 12:21:55 1998 Benjamin Kosnik <bkoz@lisa.cygnus.com> Tue Mar 24 12:21:48 1998 Jim Wilson <wilson@cygnus.com> - * decl.c (init_decl_processing): Initialize TYPE_MAX_VALUE for - boolean_type_node to 1. + * decl.c (init_decl_processing): Initialize TYPE_MAX_VALUE for + boolean_type_node to 1. Tue Mar 24 10:23:47 1998 Mark Mitchell <mmitchell@usa.net> @@ -2673,7 +7679,7 @@ Tue Mar 24 10:23:47 1998 Mark Mitchell <mmitchell@usa.net> (fn_type_unification): Use new interfaces. (type_unification): Likewise. Remove NOP_EXPR hack. (type_unification_real): Likewise. - (unify): Likewise. Deal with unification of complex expresions. + (unify): Likewise. Deal with unification of complex expressions. Mon Mar 23 12:24:37 1998 Jason Merrill <jason@yorick.cygnus.com> @@ -2686,7 +7692,7 @@ Mon Mar 23 12:24:37 1998 Jason Merrill <jason@yorick.cygnus.com> * search.c (lookup_field): Do implicit typename stuff. Sun Mar 22 00:50:42 1998 Nick Clifton <nickc@cygnus.com> - Geoff Noer <noer@cygnus.com> + Geoff Noer <noer@cygnus.com> * Makefile.in: Various fixes for building cygwin32 native toolchains. * Make-lang.in: Likewise. @@ -2706,7 +7712,7 @@ Fri Mar 20 10:42:07 1998 Jason Merrill <jason@yorick.cygnus.com> Fri Mar 20 08:12:43 1998 H.J. Lu (hjl@gnu.org) - * semantics.c (finish_asm_stmt): Fix combine strings. Call + * semantics.c (finish_asm_stmt): Fix combine strings. Call c_expand_asm_operands () if output_operands, input_operands or clobbers is not NULL_TREE. @@ -2714,7 +7720,7 @@ Fri Mar 20 00:10:19 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> * pt.c (complete_template_args): New function. (get_bindings): Deal with specializations of function templates - with return type containing parameters from outer class + with return type containing parameters from outer class templates. (tsubst, TEMPLATE_TEMPLATE_PARM): When reducing parameter level, substitute arguments and compose a new type. @@ -2730,7 +7736,7 @@ Thu Mar 19 11:51:58 1998 Jason Merrill <jason@yorick.cygnus.com> * call.c (standard_conversion): Handle A* -> const A* properly. - * pt.c (get_bindings_real): Rename from get_bindings. Add + * pt.c (get_bindings_real): Rename from get_bindings. Add check_rettype parm. (get_bindings): Pass 1. (get_bindings_overload): Pass 0. @@ -2751,7 +7757,7 @@ Thu Mar 19 02:27:48 1998 Jason Merrill <jason@yorick.cygnus.com> Wed Mar 18 12:41:43 1998 Jason Merrill <jason@yorick.cygnus.com> - * decl.c (make_implicit_typename): Only change the type of a + * decl.c (make_implicit_typename): Only change the type of a TYPENAME_TYPE. Wed Mar 18 10:09:51 1998 Mark Mitchell <mmitchell@usa.net> @@ -2765,7 +7771,7 @@ Wed Mar 18 10:09:51 1998 Mark Mitchell <mmitchell@usa.net> * cp-tree.def: Add ASM_STMT tree node. * Makefile.in, Make-lang.in: Add dependencies on and for semantics.c. - + Wed Mar 18 00:24:10 1998 Jason Merrill <jason@yorick.cygnus.com> * pt.c (push_template_decl): Only check primary templates. @@ -2773,7 +7779,7 @@ Wed Mar 18 00:24:10 1998 Jason Merrill <jason@yorick.cygnus.com> * pt.c (check_explicit_specialization): Complain about default args in explicit specialization. - * parse.y (nomods_initdcl0): Also call cp_finish_decl for a + * parse.y (nomods_initdcl0): Also call cp_finish_decl for a constructor_declarator. Tue Mar 17 14:44:54 1998 Mark Mitchell <mmitchell@usa.net> @@ -2800,7 +7806,7 @@ Mon Mar 16 12:10:39 1998 Jason Merrill <jason@yorick.cygnus.com> * class.c (pushclass): Only use the mi_matrix stuff #ifdef MI_MATRIX. * search.c: Likewise. - * lex.c (do_pending_defargs): Only call + * lex.c (do_pending_defargs): Only call maybe_{begin,end}_member_template_processing for FUNCTION_DECLs. * parse.y (initdcl0_innards): Move maybeasm back into initdcl0 et al. @@ -2813,9 +7819,9 @@ Mon Mar 16 10:54:21 1998 Mark Mitchell <mmitchell@usa.net> * pt.c (tsubst_copy): Deal with BIND_EXPR in a way that more closely mimics the behavior in parse.y. - (tsubst_expr): Return the resuting BLOCK when making a tsubst'ing + (tsubst_expr): Return the resulting BLOCK when making a tsubst'ing into a compound statement. - + Sun Mar 15 02:07:26 1998 Jason Merrill <jason@yorick.cygnus.com> * cp-tree.h (TEMPLATE_PARMS_FOR_INLINE): New macro. @@ -2832,13 +7838,13 @@ Sun Mar 15 01:14:22 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> * lex.c (do_identifier): Handle TEMPLATE_DECL that was added in the class scope to catch redefinition error. - * pt.c (reduce_template_parm_level): Also copy + * pt.c (reduce_template_parm_level): Also copy the DECL_TEMPLATE_PARMS field. Sun Mar 15 10:54:08 1998 Mark Mitchell <mmitchell@usa.net> * pt.c (tsubst): Clear TYPE_REFERENCE_TO when creating a - reduced-level template type parameter. + reduced-level template type parameter. Sun Mar 15 12:26:02 1998 Manfred Hollstein <manfred@s-direktnet.de> @@ -2849,10 +7855,10 @@ Sun Mar 15 12:26:02 1998 Manfred Hollstein <manfred@s-direktnet.de> * typeck2.c (abstract_virtuals_error): Use two loops to emit abstract virtual functions and virtual functions which need a final overrider separately. - + Thu Mar 12 09:39:40 1998 Manfred Hollstein <manfred@s-direktnet.de> - * lang-specs.h: Properly put brackets around array elements in + * lang-specs.h: Properly put brackets around array elements in initializer. * typeck.c (build_binary_op_nodefault): Correctly place parens around @@ -2870,7 +7876,7 @@ Thu Mar 12 09:26:04 1998 Manfred Hollstein <manfred@s-direktnet.de> * except.c (do_unwind): #if 0 definition of unused variables fcall and next_pc. - * expr.c (extract_scalar_init): #if 0 prototype and function + * expr.c (extract_scalar_init): #if 0 prototype and function definition. * init.c (expand_aggr_init_1): Remove unused variable init_type. @@ -2914,13 +7920,13 @@ Fri Mar 6 23:27:35 1998 Jeffrey A Law (law@cygnus.com) Fri Mar 6 10:06:59 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - * method.c: Include "system.h" to get stdlib.h, stdio.h, - ctype.h, string.h, etc. - (issue_nrepeats): Add default case in enumeration switch. - (check_btype): Likewise. - (process_overload_item): Likewise. - - * Makefile.in (method.o): Depend on system.h. + * method.c: Include "system.h" to get stdlib.h, stdio.h, + ctype.h, string.h, etc. + (issue_nrepeats): Add default case in enumeration switch. + (check_btype): Likewise. + (process_overload_item): Likewise. + + * Makefile.in (method.o): Depend on system.h. Wed Mar 4 22:26:53 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> @@ -2931,7 +7937,7 @@ Wed Mar 4 12:11:53 1998 Michael Tiemann <tiemann@axon.cygnus.com> * rtti.c (get_tinfo_fn_dynamic): If this function is called an FLAG_RTTI is unset, initialize type info machinery and continue with FLAG_RTTI enabled. - (get_typeid): Ditto. + (get_typeid): Likewise. Wed Mar 4 11:47:55 1998 Jason Merrill <jason@yorick.cygnus.com> @@ -2950,7 +7956,7 @@ Tue Mar 3 01:38:17 1998 Jason Merrill <jason@yorick.cygnus.com> some formatting quirks. * call.c, class.c, cp-tree.h, cvt.c, decl.c, init.c, lex.c, - method.c, pt.c, ptree.c, typeck.c: Remove support for + method.c, pt.c, ptree.c, typeck.c: Remove support for -fno-ansi-overloading and overloading METHOD_CALL_EXPR. * class.h: Remove. * Makefile.in: Adjust. @@ -2966,7 +7972,7 @@ Mon Mar 2 12:11:06 1998 Jason Merrill <jason@yorick.cygnus.com> (nested_name_specifier): And add it before this use. (typename_sub0): And this use. Also add use without the keyword. (typename_sub1): Likewise. - * pt.c (instantiate_class_template): Don't actually instantiate + * pt.c (instantiate_class_template): Don't actually instantiate anything if our type uses template parms. Mon Mar 2 11:04:59 1998 Jim Wilson <wilson@cygnus.com> @@ -2987,9 +7993,9 @@ Sat Feb 28 12:06:44 1998 Jason Merrill <jason@yorick.cygnus.com> * lex.c (yyprint): Handle a PTYPENAME being a TEMPLATE_DECL. * decl.c (make_typename_type): Handle template-id where the name is a TEMPLATE_DECL. - * call.c (build_scoped_method_call): Handle member template + * call.c (build_scoped_method_call): Handle member template destructor call. - * pt.c (tsubst_copy, METHOD_CALL_EXPR): Don't assume a member + * pt.c (tsubst_copy, METHOD_CALL_EXPR): Don't assume a member destructor is represented by the type. * cp-tree.h (TYPENAME_TYPE_FULLNAME): New macro. @@ -3036,7 +8042,7 @@ Fri Feb 27 02:25:16 1998 Jason Merrill <jason@yorick.cygnus.com> * decl.c (pushtag): Handle member templates. * method.c (do_inline_function_hair): Don't touch IDENTIFIER_GLOBAL_VALUE. - * init.c (build_offset_ref): If name isn't an identifier, just + * init.c (build_offset_ref): If name isn't an identifier, just return it. * spew.c (yylex): Handle PTYPENAME like TYPENAME. @@ -3067,43 +8073,43 @@ Wed Feb 25 00:35:33 1998 Jason Merrill <jason@yorick.cygnus.com> Tue Feb 24 22:15:04 1998 Martin von Loewis <loewis@informatik.hu-berlin.de> * cp-tree.def: Add CPLUS_BINDING node. - * cp-tree.h (tree_binding): new struct - (BINDING_SCOPE, BINDING_VALUE): new macros - (current_namespace, global_namespace): declare extern - (struct lang_decl_flags): new field in_namespace - (DECL_NAMESPACE_USING, DECL_NAMESPACE_USERS): new macros - (DECL_NAMESPACE, SET_DECL_NAMESPACE): new macros - (TREE_INDIRECT_USING): new macro + * cp-tree.h (tree_binding): New struct. + (BINDING_SCOPE, BINDING_VALUE): New macros. + (current_namespace, global_namespace): Declare extern. + (struct lang_decl_flags): New field in_namespace. + (DECL_NAMESPACE_USING, DECL_NAMESPACE_USERS): New macros. + (DECL_NAMESPACE, SET_DECL_NAMESPACE): New macros. + (TREE_INDIRECT_USING): New macro. * decl2.c (current_namespace, global_namespace): Declare. The value is a NAMESPACE_DECL now, not a TREE_LIST. - (is_namespace_ancestor, namespace_ancestor):new static functions. - (add_using_namespace, ambiguous_decl): likewise. - (lookup_using_namespace): new support function for lookup_name. - (qualified_lookup_using_namespace): new support function for - do_scoped_id and lookup_namespace_name - (get_namespace_id): mark as obsolete. + (is_namespace_ancestor, namespace_ancestor): New static functions. + (add_using_namespace, ambiguous_decl): Likewise. + (lookup_using_namespace): New support function for lookup_name. + (qualified_lookup_using_namespace): New support function for + do_scoped_id and lookup_namespace_name. + (get_namespace_id): Mark as obsolete. (current_namespace_id): Likewise. (do_namespace_alias): Implement. (do_using_directive): Implement as call to add_using_namespace. - * decl.c (binding_for_name): new function. - (push_namespace, pop_namespace): implement. - (push_decl): don't install a FUNCTION_DECL in the global branch. - (lookup_namespace_name): implement using qualified lookup. + * decl.c (binding_for_name): New function. + (push_namespace, pop_namespace): Implement. + (push_decl): Don't install a FUNCTION_DECL in the global branch. + (lookup_namespace_name): Implement using qualified lookup. (lookup_name_real): For global scoping, lookup in - global_namespace. For namespace scoping, lookup in given - namespace. For unscoped lookup, iterate over namespace, + global_namespace. For namespace scoping, lookup in given + namespace. For unscoped lookup, iterate over namespace, considering using directives. - (init_decl_processing): initialize global_namespace. + (init_decl_processing): Initialize global_namespace. (grokvardecl): Build assembler name as static name for globals. (grokdeclarator): Remove old namespace mangling. (xref_tag): When installing a global binding for the tag, make sure we have an identifier. - * method.c (build_overload_nested_name): mangle namespaces. + * method.c (build_overload_nested_name): Mangle namespaces. (build_qualified_name): Likewise. (build_decl_overload_real): Likewise. - * lex.c (build_lang_decl): set namespace for new declaration to + * lex.c (build_lang_decl): Set namespace for new declaration to current_namespace. - (do_scoped_id): find global names in global or current + (do_scoped_id): Find global names in global or current namespace, or using qualified namespace lookup, depending on context. * init.c (build_member_call): When scope is namespace, use @@ -3133,7 +8139,7 @@ Tue Feb 24 01:40:24 1998 Jason Merrill <jason@yorick.cygnus.com> * pt.c (instantiate_class_template): Don't instantiate if pedantic and the args use template parms. - * pt.c (push_tinst_level): If the instantiaton uses template parms, + * pt.c (push_tinst_level): If the instantiation uses template parms, fail silently. * decl.c (xref_basetypes): Do call complete_type for basetypes that involve template parameters. @@ -3162,7 +8168,7 @@ Mon Feb 23 02:52:29 1998 Mark Mitchell <mmitchell@usa.net> * Make-lang.in (cc1plus): Note that cc1plus depends on cp/cp-tree.h and cp/cp-tree.def. - + * cp-tree.def (TEMPLATE_CONST_PARM): Remove. (TEMPLATE_PARM_INDEX): New tree code, used to indicate a position in a template parameter list. @@ -3197,7 +8203,7 @@ Mon Feb 23 02:52:29 1998 Mark Mitchell <mmitchell@usa.net> two template functions with the same DECL_ASSEMBLER_NAME the same, since the names are not yet mangled. * error.c (dump_decl): Use TEMPLATE_PARM_INDEX instead of - TEMPLATE_CONST_PARM. + TEMPLATE_CONST_PARM. (dump_expr): Likewise. Use the TEMPLATE_PARM_DECL to get at the decl for a non-type parameter, rather than printing `<tparm ...>'. * friend.c (is_friend): Handle TEMPLATE_DECL friends. @@ -3210,7 +8216,7 @@ Mon Feb 23 02:52:29 1998 Mark Mitchell <mmitchell@usa.net> conditionally calling end_member_template_processing. (do_pending_defargs): Likewise. (do_identifier): Use TEMPLATE_PARM_INDEX instead of - TEMPLATE_CONST_PARM. + TEMPLATE_CONST_PARM. * method.c (build_mangled_template_parm_index): New function. (build_overload_value): Use it. (build_overload_name): Likewise. @@ -3240,14 +8246,14 @@ Mon Feb 23 02:52:29 1998 Mark Mitchell <mmitchell@usa.net> template. (tsubst_copy): Tidy up slightly. Use TEMPLATE_PARM_INDEX instead of TEMPLATE_CONST_PARM. Handle TYPE_DECLs by tsubsting into them. - (unify): Use TEMPLATE_PARM_INDEX instead of TEMPLATE_CONST_PARM. + (unify): Use TEMPLATE_PARM_INDEX instead of TEMPLATE_CONST_PARM. (get_bindings): Call add_to_template_args if necessary. (instantiate_decl): Handle instantiations of friend templates. * search.c (lookup_field_1): Don't treat the TYPE_FIELDS of a TEMPLATE_TYPE_PARM as a list of fields; it's not! - * spew.c (yylex): Do a little manual constant propogation to + * spew.c (yylex): Do a little manual constant propagation to clarify the code. - + Sun Feb 22 19:53:29 1998 Jeffrey A Law (law@cygnus.com) * error.c: Include sys/types.h. @@ -3260,20 +8266,20 @@ Thu Feb 19 10:36:48 1998 Jason Merrill <jason@yorick.cygnus.com> * typeck2.c (process_init_constructor): Sorry about non-trivial labeled initializers. - * parse.y (initlist): Reenable labeled initializers. + * parse.y (initlist): Re-enable labeled initializers. Thu Feb 19 10:15:55 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> - * pt.c (coerce_template_parms) Add a new parameter, is_tmpl_parm, - all callers changed. Rely on the new parameter instead of arg + * pt.c (coerce_template_parms): Add a new parameter, is_tmpl_parm, + all callers changed. Rely on the new parameter instead of arg being a TREE_LIST when determine whether we are working inside template template parameter. Clean up is_type test. - + Thu Feb 19 10:04:12 1998 Jason Merrill <jason@yorick.cygnus.com> * cvt.c (cp_convert_to_pointer): Preserve TREE_CONSTANT. * typeck2.c (initializer_constant_valid_p): Allow conversions - between pointers and refrerences. + between pointers and references. 1998-02-19 Brendan Kehoe <brendan@cygnus.com> @@ -3304,14 +8310,14 @@ Tue Feb 17 14:07:52 1998 Mark Mitchell <mmitchell@usa.net> (datadef): Remove redundant actions. (initdcl0, notype_initdcl0, nomods_initdcl0): Use initdcl0_innards. * parse.c: Regenerated. - + Tue Feb 17 11:54:16 1998 Jason Merrill <jason@yorick.cygnus.com> * parse.y (simple_stmt): Use getdecls() to check for decl. Sat Feb 14 11:50:51 1998 Manfred Hollstein <manfred@s-direktnet.de> - * Make-lang.in (DEMANGLER_INSTALL_NAME, DEMANGLER_CROSS_NAME): New + * Make-lang.in (DEMANGLER_INSTALL_NAME, DEMANGLER_CROSS_NAME): New macros. (c++.install-common): Install c++filt properly as native or as cross variant. @@ -3327,14 +8333,14 @@ Fri Feb 13 14:06:22 1998 Mike Stump <mrs@wrs.com> Fri Feb 13 13:24:32 1998 Jason Merrill <jason@yorick.cygnus.com> - * parse.y (simple_stmt): If the condition isn't a declaration, + * parse.y (simple_stmt): If the condition isn't a declaration, start the controlled block after the test. Fri Feb 13 02:26:10 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * call.c (build_over_call): Convert builtin abs, labs and fabs to tree-codes. - * decl.c (init_decl_processing): Reenable abs, labs and fabs as + * decl.c (init_decl_processing): Re-enable abs, labs and fabs as builtins. Fri Feb 13 01:36:42 1998 Jason Merrill <jason@yorick.cygnus.com> @@ -3363,7 +8369,7 @@ Wed Feb 11 23:28:05 1998 Mark Mitchell <mmitchell@usa.net> Wed Feb 11 16:42:04 1998 Mark Mitchell <mmitchell@usa.net> * tree.c (is_overloaded_fn): Use really_overloaded_fn. - (really_overloaded_fn): Move check here from is_overloaded_fn. + (really_overloaded_fn): Move check here from is_overloaded_fn. (get_first_fn): Use really_overloaded_fn and is_overloaded_fn. Wed Feb 11 15:54:18 1998 Mark Mitchell <mmitchell@usa.net> @@ -3402,7 +8408,7 @@ Mon Feb 9 22:23:31 1998 Mark Mitchell <mmitchell@usa.net> (uses_template_parms): Handle the DECL_INITIAL for a CONST_DECL. * typeck.c (build_component_ref): Assign the correct type to the result of build_vfn_ref. - + Tue Feb 10 23:56:46 1998 Jason Merrill <jason@yorick.cygnus.com> * pt.c (convert_nontype_argument): Fix typo. @@ -3415,19 +8421,19 @@ Tue Feb 10 20:36:52 1998 Jason Merrill <jason@yorick.cygnus.com> * decl.c (grokdeclarator): Use DECL_USE_TEMPLATE instead when deciding to override DECL_ASSEMBLER_NAME. -Tue Feb 10 15:30:55 EST 1998 Andrew MacLeod <amacleod@torpedo.to.cygnus.com> +Tue Feb 10 15:30:55 1998 Andrew MacLeod <amacleod@torpedo.to.cygnus.com> * decl2.c (lang_f_options): Add -fsquangle to option processing list. * cp-tree.h (flag_do_squangling): Add declaration. * lang-options.h: Add -fsquangle and -fno-squangle. * method.c: Add macros and static variables for squangling. - (build_overload_name): Rename to build_mangled_name, add logic for B - compression, and split into process_modifiers and + (build_overload_name): Rename to build_mangled_name, add logic for B + compression, and split into process_modifiers and process_overload_item. - (process_modifiers): New function, to handle constant, reference, - and pointer types. + (process_modifiers): New function, to handle constant, reference, + and pointer types. (process_overload_item): New function, handles issue of type codes. - (build_overload_name): New function, start squangling and call + (build_overload_name): New function, start squangling and call build_mangled_name. (ALLOCATE_TYPEVEC, DEALLOCATE_TYPEVEC): Remove macro and expand inline. (start_squangling): New function to initialize squangling structs. @@ -3440,7 +8446,7 @@ Tue Feb 10 15:30:55 EST 1998 Andrew MacLeod <amacleod@torpedo.to.cygnus.com> use DECL_ASSEMBLER_NAME when squangling is on. (check_btype): New function, checks for B type compression. (build_static_name, build_decl_overload_real): Initiate squangling. - (build_typename_overload, build_overload_with_type): Initiate + (build_typename_overload, build_overload_with_type): Initiate squangling Sun Feb 8 23:47:38 1998 scott snyder <sss@d0linux01.fnal.gov> @@ -3476,7 +8482,7 @@ Tue Feb 3 23:50:52 1998 Mark Mitchell <mmitchell@usa.net> * cvt.c (ocp_convert): Obtain the constant values from constant decls even if the destination type is the same as the type of the - decl. + decl. * decl2.c (finish_file): Make sure that static inlines with definitions are not marked DECL_EXTERNAL before returning. @@ -3485,7 +8491,7 @@ Tue Feb 3 22:43:42 1998 Jason Merrill <jason@yorick.cygnus.com> * decl.c: Lose arg_looking_for_template. (lookup_name_real): Likewise. - * parse.y: Lose processing_template_arg, template_arg1 + * parse.y: Lose processing_template_arg, template_arg1. (primary): Likewise. * spew.c (yylex): Set lastiddecl for PTYPENAMEs, too. @@ -3493,36 +8499,36 @@ Tue Feb 3 22:04:01 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> * error.c (dump_decl): Fix type of default arguments for template template parameters and nontype template parameters. - * parse.y (template_parm): Handle invalid default template + * parse.y (template_parm): Handle invalid default template template arguments here. - * parse.y (template_parm): Use template_arg instead of PTYPENAME + * parse.y (template_parm): Use template_arg instead of PTYPENAME for default template template argument. - * pt.c (coerce_template_parms): Merge default template argument + * pt.c (coerce_template_parms): Merge default template argument codes. Can treat RECORD_TYPE as template name if it is implicitly created. Fix argument index in error message. - * typeck.c (comptypes): Merge template argument comparison codes in + * typeck.c (comptypes): Merge template argument comparison codes in TEMPLATE_TEMPLATE_PARM and RECORD_TYPE. -Tue Jan 6 01:42:44 1998 Mumit Khan <khan@xraylith.wisc.edu> +Tue Jan 6 01:42:44 1998 Mumit Khan <khan@xraylith.wisc.edu> * lex.c (file_name_nondirectory): Also check for '/'. Mon Feb 2 11:24:22 1998 Mark Mitchell <mmitchell@usa.net> * parse.y (primary): Deal with statement-expressions in - templates. + templates. * pt.c (tsubst_copy): Handle BIND_EXPR. * tree.c (mapcar): Likewise. * call.c (add_template_candidate_real): Pass extra parameter to - fn_type_unification. + fn_type_unification. * cp-tree.h (fn_type_unification): Add parameter. * pt.c (fn_type_unification): Add additional parameter to deal with static member functions. (get_bindings): Deal with static member functions. - * cp-tree.h (DECL_NONSTATIC_MEMBER_FUNCTION_P): New macro. + * cp-tree.h (DECL_NONSTATIC_MEMBER_FUNCTION_P): New macro. (revert_static_member_fn): Declare. * decl.c (revert_static_member_fn): Remove declaration. Change linkage from internal to external. @@ -3571,7 +8577,7 @@ Mon Feb 2 00:57:38 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> (grokdeclarator): Add parentheses around && within ||. Add explicit braces to avoid ambiguous `else'. (grokparms): Initialize `type' to NULL_TREE. - (xref_tag): Remove unused label `just_return'. + (xref_tag): Remove unused label `just_return'. (finish_enum): Initialize `minnode' and `maxnode' to NULL_TREE. (finish_function): Initialize `cond' and `thenclause' to NULL_TREE. (hack_incomplete_structures): Add parentheses around assignment @@ -3581,7 +8587,7 @@ Mon Feb 2 00:57:38 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * error.c: Include <stdlib.h>. (dump_expr): Change the type of `i' to size_t. Remove unused - label `error'. + label `error'. * except.c (init_exception_processing): Remove unused variable `d'. (expand_throw): Likewise for `label'. @@ -3607,7 +8613,7 @@ Mon Feb 2 00:57:38 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> `look_for_semicolon' and `look_for_lbrac'. (cons_up_default_function): Initialize `args' to NULL_TREE. (readescape): Initialize `firstdig' to 0. - (real_yylex): Add parentheses around assignment used as truth value. + (real_yylex): Add parentheses around assignment used as truth value. * method.c: Include <strings.h> if we don't have <string.h>. Protect declaration of `index' with autoconf macro. @@ -3628,8 +8634,8 @@ Mon Feb 2 00:57:38 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * repo.c (init_repo): Add parentheses around assignment used as truth value. (finish_repo): Remove unused varable `p'. - - * search.c (get_binfo): Initiize `type' to NULL_TREE. + + * search.c (get_binfo): Initialize `type' to NULL_TREE. (get_base_distance): Likewise. (lookup_field): Initialize `rval_binfo_h', `type', `basetype_path' and `new_v' to NULL_TREE. @@ -3649,7 +8655,7 @@ Mon Feb 2 00:57:38 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> (hash_tree_cons): Initialize hashcode to 0. (can_free): Likewise for `size'. (cp_tree_equal): Add explicit braces to avoid ambiguous `else'. - + * typeck.c (convert_sequence): Hide prototype. (common_type): Add explicit braces to avoid ambiguous `else'. (comp_target_types): Likewise. @@ -3665,7 +8671,7 @@ Mon Feb 2 00:57:38 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * xref.c (GNU_xref_decl): Initialize `cls' to 0. -Sun Feb 1 12:45:34 1998 J"orn Rennecke <amylaar@cygnus.co.uk> +Sun Feb 1 12:45:34 1998 J"orn Rennecke <amylaar@cygnus.co.uk> * decl.c (init_decl_processing): Use set_sizetype. * decl2.c (sizetype): Don't declare. @@ -3688,13 +8694,13 @@ Thu Jan 29 10:39:30 1998 Mark Mitchell <mmitchell@usa.net> Wed Jan 28 23:14:44 1998 Jason Merrill <jason@yorick.cygnus.com> * class.c (instantiate_type): Don't just return a known type if - it's wrong. + it's wrong. Wed Jan 28 11:04:07 1998 Mark Mitchell <mmitchell@usa.net> * class.c (instantiate_type): Remove handling of FUNCTION_DECL since that code could never be reached. - + * error.c (dump_decl): Avoid aborting in the midst of printing an error message about an illegal template declaration. @@ -3703,7 +8709,7 @@ Wed Jan 28 11:04:07 1998 Mark Mitchell <mmitchell@usa.net> * pt.c (convert_nontype_argument): Allow REAL_TYPE and COMPLEX_TYPE template arguments as a g++ extension. - + * cp-tree.def (ALIGNOF_EXPR): New tree code. * decl2.c (grok_alignof): If processing_template_decl, just store the expression. @@ -3715,7 +8721,7 @@ Wed Jan 28 11:04:07 1998 Mark Mitchell <mmitchell@usa.net> * pt.c (uses_template_parms): Correctly determine whether or not a SIZEOF_EXPR/ALIGNOF_EXPR uses template parameters so that constant folding can be done. - + * cp-tree.h (grok_enum_decls): Remove type parameter. * decl.c (grok_enum_decls): Likewise. * decl2.c (grok_x_components): Call grok_enum_decls @@ -3727,7 +8733,7 @@ Wed Jan 28 11:04:07 1998 Mark Mitchell <mmitchell@usa.net> * decl.c (start_function): Make member functions of local classes in extern inline functions have comdat linkage here... (grokdeclarator): Rather than here. - + Wed Jan 28 10:55:47 1998 Jason Merrill <jason@yorick.cygnus.com> * pt.c (convert_nontype_argument): Use decl_constant_value. @@ -3755,18 +8761,18 @@ Tue Jan 27 16:42:21 1998 Mark Mitchell <mmitchell@usa.net> (maybe_push_to_top_level): Save them. (pop_from_top_level): Restore them. (grokfndecl): Use new return value from - check_explicit_specialization. + check_explicit_specialization. (start_decl): Don't check flag_guiding_decls before pushing - decls. + decls. (cp_finish_decl): Remove previous (bogus) change. (grok_declarator): Use decl_function_context rather than - is_local_class. + is_local_class. * decl2.c (finish_file): Pass extra argument to get_bindings. - (build_expr_from_tree): Let build_x_component_ref check + (build_expr_from_tree): Let build_x_component_ref check validity of arguments rather than doing it here. * lex.c (cons_up_default_function): Remove code fooling with processing_specialization, processing_explicit_instantiation - flags, as that is now done in {maybe_push_top,pop_from}_top_level. + flags, as that is now done in {maybe_push_top,pop_from}_top_level. * method.c (build_overload_identifier): Mangle local classes in template functions correctly. * parse.y (finish_member_template_decl): Move to pt.c. @@ -3775,9 +8781,9 @@ Tue Jan 27 16:42:21 1998 Mark Mitchell <mmitchell@usa.net> (determine_specialization): Change interface. Properly look for most specialized versions of template candidates. (check_explicit_specialization): Fully process explicit - instantiations. + instantiations. (push_template_decl): Avoid looking at CLASSTYPE fields in - FUNCTION_DECLS. + FUNCTION_DECLS. (determine_overloaded_function): Remove. (convert_nontype_argument): Change name from convert_nontype_parameter. Use determine_overloaded_function @@ -3788,7 +8794,7 @@ Tue Jan 27 16:42:21 1998 Mark Mitchell <mmitchell@usa.net> (lookup_template_class): Likewise. (tsubst): Likewise. (more_specialized): Take explict template arguments as a - parameter. + parameter. (most_specialized): Likewise. (get_bindings): Likewise. Check that return types match before proclaiming a function a match. @@ -3801,7 +8807,7 @@ Tue Jan 27 16:42:21 1998 Mark Mitchell <mmitchell@usa.net> Tue Jan 27 01:44:02 1998 Jason Merrill <jason@yorick.cygnus.com> - * expr.c (cplus_expand_expr, AGGR_INIT_EXPR): Don't check that + * expr.c (cplus_expand_expr, AGGR_INIT_EXPR): Don't check that return_target and call_target are equivalent. * pt.c (type_unification_real): Just accept function parms that @@ -3819,7 +8825,7 @@ Sat Jan 24 12:13:54 1998 Jason Merrill <jason@yorick.cygnus.com> * error.c (dump_decl): Fix type default template args. (dump_type): Hand TEMPLATE_DECL off to dump_decl. -Fri Jan 23 18:34:37 1998 Mumit Khan <khan@xraylith.wisc.edu> +Fri Jan 23 18:34:37 1998 Mumit Khan <khan@xraylith.wisc.edu> * lex.c (DIR_SEPARATOR): Define to be '/' if not already defined. (file_name_nondirectory): Use. @@ -3827,10 +8833,10 @@ Fri Jan 23 18:34:37 1998 Mumit Khan <khan@xraylith.wisc.edu> Wed Jan 21 10:29:57 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> * pt.c (coerce_template_parms): Don't access elements of ARGLIST - that are not really present. Substitute default arguments in - template template arguments. Correctly convert TEMPLATE_DECL to + that are not really present. Substitute default arguments in + template template arguments. Correctly convert TEMPLATE_DECL to TEMPLATE_TEMPLATE_PARM. - (comp_template_args): TEMPLATE_DECL and TEMPLATE_TEMPLATE_PARM + (comp_template_args): TEMPLATE_DECL and TEMPLATE_TEMPLATE_PARM are no longer treated specially here. * parse.y (template_template_parm): Fix copy error. * decl.c (grokdeclarator): Warn about missing `typename' for nested @@ -3851,15 +8857,15 @@ Wed Jan 21 10:29:57 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> (grokdeclarator): Handle TEMPLATE_DECL. * decl2.c (constructor_name_full): Handle TEMPLATE_TEMPLATE_PARM. * error.c (dump_type): Add TEMPLATE_DECL and TEMPLATE_TEMPLATE_PARM. - (dump_type_prefix, dump_type_suffix) Handle TEMPLATE_TEMPLATE_PARM. + (dump_type_prefix, dump_type_suffix): Handle TEMPLATE_TEMPLATE_PARM. (dump_decl): Handle unnamed template type parameters. Handle template template parameters. (dump_function_name): Handle template template parameters. - * init.c (is_aggr_typedef, is_aggr_type, get_aggr_from_typedef): + * init.c (is_aggr_typedef, is_aggr_type, get_aggr_from_typedef): Handle TEMPLATE_TEMPLATE_PARM. * method.c (build_template_template_parm_names): New function. (build_template_parm_names): Handle TEMPLATE_DECL. - (build_overload_nested_name, build_overload_name): + (build_overload_nested_name, build_overload_name): Handle TEMPLATE_TEMPLATE_PARM. * parse.y (maybe_identifier): New nonterminal. (template_type_parm): Use it. @@ -3873,11 +8879,11 @@ Wed Jan 21 10:29:57 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> (process_template_parm): Handle template template parameters. (coerce_template_parms, comp_template_args): Likewise. (mangle_class_name_for_template, lookup_template_class): Likewise. - (uses_template_parms): Handle TEMPLATE_DECL and + (uses_template_parms): Handle TEMPLATE_DECL and TEMPLATE_TEMPLATE_PARM. (current_template_args): Handle TEMPLATE_DECL. (tsubst, tsubst_copy, unify): Handle TEMPLATE_TEMPLATE_PARM. - * search.c (dfs_walk, dfs_record_inheritance): + * search.c (dfs_walk, dfs_record_inheritance): Handle TEMPLATE_TEMPLATE_PARM. * tree.c (copy_template_template_parm): New function. (mapcar): Handle TEMPLATE_TEMPLATE_PARM. @@ -3893,16 +8899,16 @@ Mon Jan 19 22:40:03 1998 Mark Mitchell <mmitchell@usa.net> * decl2.c (build_expr_from_tree): Issue an error message if the object in a COMPONENT_REF is a TEMPLATE_DECL. - + * typeck.c (incomplete_type_error): Handle TEMPLATE_TYPE_PARMs. - + * class.c (is_local_class): New function. * cp-tree.h (is_local_class): Declare it. (last_tree): Likewise. (begin_tree): Likewise. (end_tree): Likewise. (lookup_template_class): Change prototype. - * decl.c (cp_finish_decl): Check for NULL where necesary. + * decl.c (cp_finish_decl): Check for NULL where necessary. Consider FUNCTION_DECLS to declare objects with top-level binding, when calling make_decl_rtl. (grokdeclarator): Give members of local classes internal linkage. @@ -3922,19 +8928,19 @@ Mon Jan 19 22:40:03 1998 Mark Mitchell <mmitchell@usa.net> * pt.c (saved_trees): New variable. (mangle_class_name_for_template): Change prototype. Use additional function context to name local classes in templates - correctly. + correctly. (classtype_mangled_name): Pass the context. (push_template_decl): Handle local classes and templates, and member functions for such classes. (convert_nontype_parameter): Fix handling of pointer-to-member - constants. + constants. (lookup_template_class): Handle local classes in templates. (tsubst): Likewise. Don't assume that template instantiations - have external linkage; pay attention to the template declaration. + have external linkage; pay attention to the template declaration. (mark_decl_instantiated): Likewise. (begin_tree): New function. (end_tree): Likewise. - + * decl.c (xref_basetypes): Don't call complete_type for basetypes that involve template parameters; that can lead to infinite recursion unnecessarily. @@ -3946,11 +8952,11 @@ Mon Jan 19 22:40:03 1998 Mark Mitchell <mmitchell@usa.net> (build_template_decl): New function. (push_template_delc): Handle out-of-class specializations of member templates. - - * pt.c (check_explicit_specialization): Set up the template - information before registering the specialization. - (coerce_template_parms): Fix thinko. - (tsubst): Handle specializations of member templates correctly. + + * pt.c (check_explicit_specialization): Set up the template + information before registering the specialization. + (coerce_template_parms): Fix thinko. + (tsubst): Handle specializations of member templates correctly. * class.c (finish_struct_methods): Remove calls to check_explicit_specialization from here. @@ -3960,7 +8966,7 @@ Mon Jan 19 22:40:03 1998 Mark Mitchell <mmitchell@usa.net> (begin_explicit_instantiation): Likewise. (end_explicit_instantiation): Likewise. (determine_specialization): Renamed from - determine_explicit_specialization. + determine_explicit_specialization. (comp_template_parms): New function. (processing_explicit_instantiation): New variable. * cvt.c (perform_qualification_conversions): New function. @@ -3970,7 +8976,7 @@ Mon Jan 19 22:40:03 1998 Mark Mitchell <mmitchell@usa.net> instantiation/specialization mismatches. (start_decl): Don't call pushdecl for template specializations, since they don't affect overloading. - (start_function): Likewise + (start_function): Likewise. (grokfndecl): Call check_explicit_specialization a little later. Don't call duplicate_decls for memberm template specializations. (grokdeclarator): Don't update template_count for classes that are @@ -3981,7 +8987,7 @@ Mon Jan 19 22:40:03 1998 Mark Mitchell <mmitchell@usa.net> * parse.y (finish_member_template_decl): New function. (component_decl_1): Use it. (fn.def2): Likewise. - (template_arg_list_opt): New nonterminal. + (template_arg_list_opt): New nonterminal. (template_type): Use it. (self_template_type): Likewise. (template_id): Likewise. @@ -4005,12 +9011,12 @@ Mon Jan 19 22:40:03 1998 Mark Mitchell <mmitchell@usa.net> (comp_template_parms): New function. (coerce_template_parms): Call convert_nontype_parameter. (tsubst): Refine handling of member templates. Use - register_specialization. + register_specialization. (instantiate_template): Use retrieve_specialization. (do_decl_instantiation): Likewise. (instantiate_decl): Likewise. (type_unification): Improve handling of explict template - arguments. + arguments. * tree.c (mapcar): Return error_mark_node, rather than aborting, on VAR_DECLS, FUNCTION_DECLS, and CONST_DECLS. * typeck.c (build_unary_op): Call determine_specialization, rather @@ -4022,7 +9028,7 @@ Mon Jan 19 13:18:51 1998 Jason Merrill <jason@yorick.cygnus.com> Fri Jan 16 11:40:50 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> - * error.c (dump_decl): For enum tags, output the tag, not its value. + * error.c (dump_decl): For enum tags, output the tag, not its value. 1998-01-13 Brendan Kehoe <brendan@cygnus.com> @@ -4052,11 +9058,11 @@ Wed Jan 7 23:47:13 1998 Jason Merrill <jason@yorick.cygnus.com> (expand_exception_blocks): Likewise. (alloc_eh_object): New fn. (expand_throw): Use it. Protect exception init with terminate. - * typeck.c (build_modify_expr): Remove code that ignores trivial + * typeck.c (build_modify_expr): Remove code that ignores trivial methods. Mon Dec 22 11:36:27 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - + * call.c (add_builtin_candidate): Add default case in enumeration switch. (build_new_op): Likewise. @@ -4087,7 +9093,7 @@ Thu Dec 18 14:51:50 1997 Mark Mitchell <mmitchell@usa.net> Thu Dec 18 14:43:19 1997 Jason Merrill <jason@yorick.cygnus.com> - * typeck.c (unary_complex_lvalue): Ignore op0 when taking the + * typeck.c (unary_complex_lvalue): Ignore op0 when taking the address of an OFFSET_REF. * cp-tree.def: Add AGGR_INIT_EXPR. @@ -4100,10 +9106,10 @@ Thu Dec 18 14:43:19 1997 Jason Merrill <jason@yorick.cygnus.com> Wed Dec 17 17:08:52 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> * pt.c (instantiate_class_template): Don't do injection when - processing_template_decl is true, as pollutes current_binding_level - for base classes. + processing_template_decl is true, as pollutes current_binding_level + for base classes. -Wed Dec 17 21:17:39 1997 Peter Schmid <schmid@ltoi.iap.physik.tu-darmstadt.de> +Wed Dec 17 21:17:39 1997 Peter Schmid <schmid@ltoi.iap.physik.tu-darmstadt.de> * pt.c (maybe_fold_nontype_arg): Add prototype. @@ -4123,21 +9129,21 @@ Sun Dec 14 22:34:20 1997 Jason Merrill <jason@yorick.cygnus.com> * cvt.c (cp_convert_to_pointer): Fix base conversion of pm's. - * pt.c (type_unification_real): Change __null to type void* with + * pt.c (type_unification_real): Change __null to type void* with a warning. Sun Dec 14 20:38:35 1997 Mark Mitchell <mmitchell@usa.net> * call.c (implicit_conversion): Don't call build_user_type_conversion_1 with a NULL expr, since it will - crash. + crash. * pt.c (unify): Don't try to unify array bounds if either array is unbounded. Fri Dec 12 16:09:14 1997 Jason Merrill <jason@yorick.cygnus.com> - * errfn.c (cp_pedwarn, cp_pedwarn_at, cp_error_at, cp_warning_at): + * errfn.c (cp_pedwarn, cp_pedwarn_at, cp_error_at, cp_warning_at): Replace extern decls with casts. * decl.c (expand_start_early_try_stmts): Don't mess with a sequence. @@ -4150,7 +9156,7 @@ Thu Dec 11 22:18:37 1997 Jason Merrill <jason@yorick.cygnus.com> * decl2.c (comdat_linkage): Also set DECL_COMDAT. (finish_file): Check DECL_COMDAT instead of weak|one_only. (import_export_vtable): Use make_decl_one_only instead of - comdat_linkage for win32 tweak. + comdat_linkage for win32 tweak. (import_export_decl): Likewise. * pt.c (mark_decl_instantiated): Likewise. @@ -4164,16 +9170,16 @@ Thu Dec 11 21:12:09 1997 Jason Merrill <jason@yorick.cygnus.com> * decl.c: Likewise. Thu Dec 11 20:43:33 1997 Teemu Torma <tot@trema.com> - + * decl.c (ptr_ptr_type_node): Define. (init_decl_processing): Initialize it. * cp-tree.h: Declare it. * exception.cc (__cp_exception_info): Use __get_eh_info. - (__cp_push_exception): Ditto. - (__cp_pop_exception): Ditto. + (__cp_push_exception): Likewise. + (__cp_pop_exception): Likewise. From Scott Snyder <snyder@d0sgif.fnal.gov>: - * except.c (expand_builtin_throw): Use get_saved_pc_ref instead of + * except.c (expand_builtin_throw): Use get_saved_pc_ref instead of saved_pc. (init_exception_processing): Removed saved_pc initialization. @@ -4186,8 +9192,8 @@ Mon Dec 8 23:17:13 1997 Jason Merrill <jason@yorick.cygnus.com> * init.c (expand_vec_init): Don't fold a list of parameters. * decl.c (copy_args_p): Handle copy elision for types with virtual - bases. - * call.c (build_over_call): Likewise. + bases. + * call.c (build_over_call): Likewise. Sun Dec 7 22:38:12 1997 Mark Mitchell <mmitchell@usa.net> @@ -4242,8 +9248,8 @@ Fri Dec 5 01:17:34 1997 Jason Merrill <jason@yorick.cygnus.com> Wed Dec 3 20:02:39 1997 Jason Merrill <jason@yorick.cygnus.com> * init.c (build_new): Use a TARGET_EXPR instead of SAVE_EXPR for - alloc_expr. - * call.c (build_op_delete_call): Adjust. + alloc_expr. + * call.c (build_op_delete_call): Adjust. * except.c (expand_end_catch_block): Lose rethrow region. (expand_start_catch_block): Likewise. @@ -4252,7 +9258,7 @@ Wed Dec 3 20:02:39 1997 Jason Merrill <jason@yorick.cygnus.com> Wed Dec 3 13:24:04 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> * pt.c (tsubst): Remove tree_cons call (places redundant info into - DECL_TEMPLATE_INSTANTIATION). + DECL_TEMPLATE_INSTANTIATION). Wed Dec 3 11:44:52 1997 Jason Merrill <jason@yorick.cygnus.com> @@ -4294,7 +9300,7 @@ Tue Dec 2 01:37:19 1997 Jason Merrill <jason@yorick.cygnus.com> Fri Nov 28 01:58:14 1997 Jason Merrill <jason@yorick.cygnus.com> - * pt.c (check_explicit_specialization): Complain about using a + * pt.c (check_explicit_specialization): Complain about using a template-id for a non-specialization. Fri Nov 28 12:35:19 1997 Scott Christley <scottc@net-community.com> @@ -4304,7 +9310,7 @@ Fri Nov 28 12:35:19 1997 Scott Christley <scottc@net-community.com> Fri Nov 28 01:56:35 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> - * error.c (dump_decl): Handle TEMPLATE_ID_EXPR. + * error.c (dump_decl): Handle TEMPLATE_ID_EXPR. Thu Nov 27 00:59:46 1997 Jason Merrill <jason@yorick.cygnus.com> @@ -4312,9 +9318,9 @@ Thu Nov 27 00:59:46 1997 Jason Merrill <jason@yorick.cygnus.com> handing off to convert_to_reference. * except.c: Lose Unexpected, SetTerminate, SetUnexpected, - TerminateFunctionCall. + TerminateFunctionCall. (init_exception_processing): Likewise. Terminate et al are now - the fns, not ADDR_EXPRs. + the fns, not ADDR_EXPRs. (various): Lose redundant assemble_external calls. (do_unwind): s/BuiltinReturnAddress/builtin_return_address_fndecl/. @@ -4325,7 +9331,7 @@ Thu Nov 27 00:59:46 1997 Jason Merrill <jason@yorick.cygnus.com> * decl2.c (import_export_decl): Just set DECL_COMDAT on VAR_DECLs. * class.c: Remove static pending_hard_virtuals. - (add_virtual_function): Take pointers to pending_virtuals + (add_virtual_function): Take pointers to pending_virtuals and pending_hard_virtuals. (finish_struct_1): Pass them. Declare pending_hard_virtuals. @@ -4334,7 +9340,7 @@ Wed Nov 26 20:28:49 1997 Jason Merrill <jason@yorick.cygnus.com> * decl2.c (import_export_vtable): If we support one_only but not weak symbols, mark instantiated template vtables one_only. (import_export_decl): Likewise for tinfo functions. - (finish_vtable_vardecl): Also write out vtables from explicitly + (finish_vtable_vardecl): Also write out vtables from explicitly instantiated template classes. * pt.c (mark_class_instantiated): Revert last change. @@ -4369,7 +9375,7 @@ Tue Nov 25 11:28:21 1997 Jason Merrill <jason@yorick.cygnus.com> * init.c (build_new): Copy size to the saveable obstack. * init.c (build_new): Stick a CLEANUP_POINT_EXPR inside the - TRY_CATCH_EXPR for now. + TRY_CATCH_EXPR for now. Mon Nov 24 12:15:55 1997 Jason Merrill <jason@yorick.cygnus.com> @@ -4390,14 +9396,14 @@ Fri Nov 21 12:22:07 1997 Jason Merrill <jason@yorick.cygnus.com> (expand_end_eh_spec): Likewise. Call __check_eh_spec instead of doing everything inline. (init_exception_processing): throw_type_match now takes - const void pointers. + const void pointers. * exception.cc (__check_eh_spec): New fn. * inc/exception: Neither terminate nor unexpected return. * decl.c: Make const_ptr_type_node public. * tinfo2.cc (__throw_type_match_rtti): Take the typeinfos constly. * except.c (expand_start_catch_block): We only need the rethrow - region for non-sjlj exceptions. + region for non-sjlj exceptions. (expand_end_catch_block): Likewise. Use outer_context_label_stack. Thu Nov 20 14:40:17 1997 Jason Merrill <jason@yorick.cygnus.com> @@ -4412,7 +9418,7 @@ Thu Nov 20 14:40:17 1997 Jason Merrill <jason@yorick.cygnus.com> * decl.c (init_decl_processing): Update exception specs on new and delete. - * method.c (build_decl_overload_real): Don't mess with global + * method.c (build_decl_overload_real): Don't mess with global placement delete. * init.c (build_new): Check for null throw spec, not nothrow_t. @@ -4427,13 +9433,13 @@ Thu Nov 20 14:40:17 1997 Jason Merrill <jason@yorick.cygnus.com> Wed Nov 19 18:24:14 1997 Jason Merrill <jason@yorick.cygnus.com> - * decl.c (start_decl): Don't just complain about a mismatched + * decl.c (start_decl): Don't just complain about a mismatched scope, fix it. * decl.c (make_implicit_typename): Handle case where t is not - actually from context. + actually from context. * tree.c (get_type_decl): Lose identifier case. - * spew.c (yylex): Lose useless call to identifer_typedecl_value. + * spew.c (yylex): Lose useless call to identifier_typedecl_value. * parse.y (nonnested_type): Just use lookup_name. (complex_type_name): Just use IDENTIFIER_GLOBAL_VALUE. @@ -4448,7 +9454,7 @@ Wed Nov 19 10:39:27 1997 Jason Merrill <jason@yorick.cygnus.com> * decl.c (make_implicit_typename): New fn. (lookup_name_real): Use it. Use current_class_type as the context. -Mon Nov 17 23:42:03 1997 Bruno Haible <haible@ilog.fr> +Mon Nov 17 23:42:03 1997 Bruno Haible <haible@ilog.fr> * pt.c (do_poplevel): Don't prohibit jumps into this contour. @@ -4483,7 +9489,7 @@ Thu Nov 13 01:52:36 1997 Jason Merrill <jason@yorick.cygnus.com> Wed Nov 12 11:04:33 1997 Jason Merrill <jason@yorick.cygnus.com> * pt.c (do_type_instantiation): Fix typo. - (mark_class_instantiated): If we support one_only but not weak + (mark_class_instantiated): If we support one_only but not weak symbols, don't mark this as known. * init.c (build_new): Handle vec delete in EH cleanup. @@ -4491,7 +9497,7 @@ Wed Nov 12 11:04:33 1997 Jason Merrill <jason@yorick.cygnus.com> Wed Nov 12 08:11:55 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> * call.c (build_method_call): Call complete_type before checking - for destructor. + for destructor. Sun Nov 9 01:29:55 1997 Jim Wilson (wilson@cygnus.com) @@ -4524,32 +9530,32 @@ Tue Nov 11 02:53:44 1997 Jason Merrill <jason@lasher.cygnus.com> Mon Nov 10 20:25:31 1997 Jason Merrill <jason@yorick.cygnus.com> * call.c (build_new_method_call): Handle getting a - TEMPLATE_ID_EXPR around a TEMPLATE_DECL. Don't look for a field - if we got template parms. + TEMPLATE_ID_EXPR around a TEMPLATE_DECL. Don't look for a field + if we got template parms. * typeck.c (build_x_function_call): Remember the TEMPLATE_ID_EXPR, - not just the args. + not just the args. * decl2.c (build_expr_from_tree): Tweak last change. * pt.c (tsubst_copy): Use get_first_fn instead of TREE_VALUE. (maybe_fold_nontype_arg): Split out from tsubst_copy. * tree.c (get_first_fn): Just return a TEMPLATE_ID_EXPR. -Mon Nov 10 20:08:38 1997 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> +Mon Nov 10 20:08:38 1997 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> - * pt.c (tsubst_copy): Handle explicit template arguments in + * pt.c (tsubst_copy): Handle explicit template arguments in function calls. * typeck.c (build_x_function_call): Likewise. - * decl2.c (build_expr_from_tree): Lookup function name if it + * decl2.c (build_expr_from_tree): Lookup function name if it hasn't been done. - * pt.c (tsubst): Instantiate template functions properly when - template parameter does not appear in function arguments and return + * pt.c (tsubst): Instantiate template functions properly when + template parameter does not appear in function arguments and return type. (comp_template_args): Handle member templates required by tsubst. Mon Nov 10 20:08:38 1997 Jason Merrill <jason@yorick.cygnus.com> * decl.c (grokdeclarator): Tweak conditions for pedwarn in - previous change. + previous change. Mon Nov 10 20:08:29 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> @@ -4570,10 +9576,10 @@ Mon Nov 10 03:04:20 1997 Jason Merrill <jason@yorick.cygnus.com> (expand_end_catch_block): Likewise. End the region for the eh_cleanup. * exception.cc (__cp_pop_exception): Now takes two parms. Handle popping off the middle of the stack. - * tree.c (lvalue_p, real_lvalue_p): Handle TRY_CATCH_EXPR, + * tree.c (lvalue_p, real_lvalue_p): Handle TRY_CATCH_EXPR, WITH_CLEANUP_EXPR, and UNSAVE_EXPR. (build_cplus_new): Only wrap CALL_EXPRs. - * init.c (expand_default_init): Handle a TRY_CATCH_EXPR around + * init.c (expand_default_init): Handle a TRY_CATCH_EXPR around the constructor call. Sun Nov 9 18:00:26 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> @@ -4642,7 +9648,7 @@ Fri Oct 31 01:47:57 1997 Jason Merrill <jason@yorick.cygnus.com> (__cp_exception_info, __uncatch_exception): New fns. (__cp_push_exception, __cp_pop_exception): New fns. * except.c: Lose saved_throw_{type,value,cleanup,in_catch}. - Lose empty_fndecl. + Lose empty_fndecl. (init_exception_processing): Likewise. __eh_pc is now external. (push_eh_info): New fn. (get_eh_{info,value,type,caught}): New fns. @@ -4670,21 +9676,21 @@ Thu Oct 23 02:01:30 1997 Jason Merrill <jason@yorick.cygnus.com> Mon Oct 20 12:06:34 1997 Jason Merrill <jason@yorick.cygnus.com> - * except.c (expand_exception_blocks): Call do_pending_stack_adust. + * except.c (expand_exception_blocks): Call do_pending_stack_adjust. (expand_end_catch_block): Likewise. (expand_end_eh_spec): Likewise. Mon Oct 20 11:44:20 1997 Mark Mitchell <mmitchell@usa.net> * decl.c (duplicate_decls): Handle template specializations - correctly. + correctly. * error.c (dump_function_name): Fix printing of specializations of member functions that are not member templates. * cp-tree.h (processing_specialization): Make global. * pt.c (processing_specialization): Likewise. * lex.c (cons_up_default_function): Save and restore processing_specialization to avoid confusion. - + Mon Oct 20 10:52:22 1997 Jason Merrill <jason@yorick.cygnus.com> * decl.c (init_decl_processing): Give null_node unknown* type. @@ -4701,7 +9707,7 @@ Sun Oct 19 09:13:01 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * Make-lang.in (g++): Include prefix.o. -Thu Oct 16 15:31:09 1997 Judy Goldberg <judygold@sanwafp.com> +Thu Oct 16 15:31:09 1997 Judy Goldberg <judygold@sanwafp.com> * pt.c (determine_explicit_specialization): Initialize "dummy" to keep Purify quiet. @@ -4727,19 +9733,19 @@ Tue Oct 14 12:01:00 1997 Mark Mitchell <mmitchell@usa.net> so as to avoid incorrect manglings. * method.c (build_decl_overload_real): Don't mangle return types for constructors. - + Tue Oct 14 11:46:14 1997 Jason Merrill <jason@yorick.cygnus.com> * cp-tree.h (scratchalloc, build_scratch_list, make_scratch_vec, scratch_tree_cons): Define as macros for now. - * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, expr.c, init.c, + * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, expr.c, init.c, lex.c, method.c, parse.y, pt.c, rtti.c, search.c, tree.c, typeck.c, typeck2.c: Use them and the expression_obstack variants. Mon Oct 13 17:41:26 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> * decl.c (store_return_init): Allow classes with explicit ctors to - be used with the named return values extension. + be used with the named return values extension. Fri Oct 10 12:21:11 1997 Jason Merrill <jason@yorick.cygnus.com> @@ -4753,7 +9759,7 @@ Thu Oct 9 12:08:21 1997 Jason Merrill <jason@yorick.cygnus.com> * call.c (build_new_method_call): Use simple constructor_name for error messages. -Wed Oct 8 22:44:42 1997 Jeffrey A Law (law@cygnus.com) +Wed Oct 8 22:44:42 1997 Jeffrey A Law <law@cygnus.com> * method.c (build_underscore_int): Don't use ANSI specific features. @@ -4774,9 +9780,9 @@ Tue Oct 7 22:52:10 1997 Jason Merrill <jason@yorick.cygnus.com> Tue Oct 7 22:45:31 1997 Alexandre Oliva <oliva@dcc.unicamp.br> - * typeck.c (build_reinterpret_cast): converting a void pointer + * typeck.c (build_reinterpret_cast): Converting a void pointer to function pointer with a reinterpret_cast produces a warning - if -pedantic is issued + if -pedantic is issued. Tue Oct 7 22:43:43 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> @@ -4803,7 +9809,7 @@ Tue Oct 7 00:48:36 1997 Jason Merrill <jason@yorick.cygnus.com> non-templates. * call.c (build_new_function_call): Fix handling of null explicit - template args. + template args. (build_new_method_call): Likewise. Mon Oct 6 23:44:34 1997 Mark Mitchell <mmitchell@usa.net> @@ -4855,7 +9861,7 @@ Tue Sep 30 00:18:26 1997 Jason Merrill <jason@yorick.cygnus.com> -traditional and -ansi now do not mess with dollars_in_ident. -Mon Sep 29 19:57:51 1997 H.J. Lu (hjl@gnu.ai.mit.edu) +Mon Sep 29 19:57:51 1997 H.J. Lu <hjl@gnu.ai.mit.edu> * Makefile.in (parse.o, decl.o): Also depend on $(srcdir)/../except.h $(srcdir)/../output.h. @@ -4866,37 +9872,37 @@ Mon Sep 29 19:57:51 1997 H.J. Lu (hjl@gnu.ai.mit.edu) * call.c, cp-tree.h, decl.c, tree.c: Finish prototyping. - * expr.c (cplus_expand_expr): Make it static. + * expr.c (cplus_expand_expr): Make it static. * decl2.c, init.c, typeck.c: Include "expr.h". (expand_expr): Use proper values when calling the function. Mon Sep 29 11:05:54 1997 Alexandre Oliva <oliva@dcc.unicamp.br> - * lang-options.h: new -Wold-style-cast flag. - * cp-tree.h (warn_old_style_cast): new variable. - * decl2.c (warn_old_style_cast): ditto. - (lang_decode_option): support -Wold-style-cast. - (reparse_absdcl_as_casts): produce old-style-cast warning. + * lang-options.h: New -Wold-style-cast flag. + * cp-tree.h (warn_old_style_cast): New variable. + * decl2.c (warn_old_style_cast): Likewise. + (lang_decode_option): Support -Wold-style-cast. + (reparse_absdcl_as_casts): Produce old-style-cast warning. Mon Sep 29 09:20:53 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> * decl.c (cp_finish_decl): Allow expand_aggr_init to set - TREE_USED, reset value based on already_used. + TREE_USED, reset value based on already_used. * init.c (expand_member_init): Revert change. - + Mon Sep 29 08:57:53 1997 Jason Merrill <jason@yorick.cygnus.com> * cp-tree.h, decl.c, decl2.c, pt.c: - Lose DECL_C_STATIC and DECL_PUBLIC. Don't pretend statics are public. + Lose DECL_C_STATIC and DECL_PUBLIC. Don't pretend statics are public. * decl2.c (lang_decode_option): Add missing ;. Sat Sep 27 16:22:48 1997 Jason Merrill <jason@yorick.cygnus.com> * friend.c (do_friend): Disable injection for all template-derived - decls. + decls. * decl2.c (lang_decode_option): Handle -fguiding-decls. * parse.y (notype_template_declarator): New nonterminal. (direct_notype_declarator): Use it. @@ -4906,112 +9912,112 @@ Sat Sep 27 16:22:48 1997 Jason Merrill <jason@yorick.cygnus.com> Sat Sep 27 16:21:58 1997 Mark Mitchell <mmitchell@usa.net> - * call.c (add_template_candidate): Add explicit_targs parameter. - (build_scoped_method_call): Use it. - (build_overload_call_real): Likewise. - (build_user_type_conversion_1): Likewise. - (build_new_function_call): Likewise. - (build_object_call): Likewise. - (build_new_op): Likewise. - (build_new_method_call): Likewise. - (build_new_function_call): Handle TEMPLATE_ID_EXPR. - (build_new_method_call): Likewise. + * call.c (add_template_candidate): Add explicit_targs parameter. + (build_scoped_method_call): Use it. + (build_overload_call_real): Likewise. + (build_user_type_conversion_1): Likewise. + (build_new_function_call): Likewise. + (build_object_call): Likewise. + (build_new_op): Likewise. + (build_new_method_call): Likewise. + (build_new_function_call): Handle TEMPLATE_ID_EXPR. + (build_new_method_call): Likewise. - * class.c (finish_struct_methods): Add specialization pass to - determine which methods were specializing which other methods. - (instantiate_type): Handle TEMPLATE_ID_EXPR. + * class.c (finish_struct_methods): Add specialization pass to + determine which methods were specializing which other methods. + (instantiate_type): Handle TEMPLATE_ID_EXPR. - * cp-tree.def (TEMPLATE_ID_EXPR): New tree code. + * cp-tree.def (TEMPLATE_ID_EXPR): New tree code. - * cp-tree.h (name_mangling_version): New variable. + * cp-tree.h (name_mangling_version): New variable. (flag_guiding_decls): Likewise. - (build_template_decl_overload): New function. - (begin_specialization): Likewise. - (reset_specialization): Likewise. - (end_specialization): Likewise. - (determine_explicit_specialization): Likewise. - (check_explicit_specialization): Likewise. - (lookup_template_function): Likewise. - (fn_type_unification): Add explicit_targs parameter. - (type_unification): Likewise. - - * decl.c (duplicate_decls): Add smarts for explicit - specializations. - (grokdeclarator): Handle TEMPLATE_ID_EXPR, and function - specializations. - (grokfndecl): Call check_explicit_specialization. - - * decl2.c (lang_decode_option): Handle -fname-mangling-version. - (build_expr_from_tree): Handle TEMPLATE_ID_EXPR. - (check_classfn): Handle specializations. - - * error.c (dump_function_name): Print specialization arguments. - - * friend.c (do_friend): Don't call pushdecl for template - instantiations. - - * init.c (build_member_call): Handle TEMPLATE_ID_EXPR. - - * lang-options.h: Add -fname-mangling-version, -fguiding-decls, + (build_template_decl_overload): New function. + (begin_specialization): Likewise. + (reset_specialization): Likewise. + (end_specialization): Likewise. + (determine_explicit_specialization): Likewise. + (check_explicit_specialization): Likewise. + (lookup_template_function): Likewise. + (fn_type_unification): Add explicit_targs parameter. + (type_unification): Likewise. + + * decl.c (duplicate_decls): Add smarts for explicit + specializations. + (grokdeclarator): Handle TEMPLATE_ID_EXPR, and function + specializations. + (grokfndecl): Call check_explicit_specialization. + + * decl2.c (lang_decode_option): Handle -fname-mangling-version. + (build_expr_from_tree): Handle TEMPLATE_ID_EXPR. + (check_classfn): Handle specializations. + + * error.c (dump_function_name): Print specialization arguments. + + * friend.c (do_friend): Don't call pushdecl for template + instantiations. + + * init.c (build_member_call): Handle TEMPLATE_ID_EXPR. + + * lang-options.h: Add -fname-mangling-version, -fguiding-decls, and -fno-guiding-decls. - * lex.c (identifier_type): Return PFUNCNAME for template function - names. - - * method.c (build_decl_overload_real): New function. - (build_template_parm_names): New function. - (build_overload_identifier): Use it. - (build_underscore_int): New function. - (build_overload_int): Use it. Add levels for template - parameters. - (build_overload_name): Likewise. Also, handle TYPENAME_TYPEs. - (build_overload_nested_names): Handle template type parameters. - (build_template_decl_overload): New function. - - * parse.y (YYSTYPE): New ntype member. - (nested_name_specifier): Use it. - (nested_name_specifier_1): Likewise. - (PFUNCNAME): New token. - (template_id, object_template_id): New non-terminals. - (template_parm_list): Note specializations. - (template_def): Likewise. - (structsp): Likewise. - (fn.def2): Handle member template specializations. - (component_decl_1): Likewise. - (direct_notype_declarator): Handle template-ids. - (component_decl_1): Likewise. - (direct_notype_declarator): Handle template-ids. - (primary): Handle TEMPLATE_ID_EXPR, and template-ids. - - * pt.c (processing_specializations): New variable. - (template_header_count): Likewise. - (type_unification_real): New function. - (processing_explicit_specialization): Likewise. - (note_template_header): Likewise. - (is_member_template): Handle specializations. - (end_template_decl): Call reset_specialization. - (push_template_decl): Handle member template specializations. - (tsubst): Likewise. - (tsubst_copy): Handle TEMPLATE_ID_EXPR. - (instantiate_template): Handle specializations. - (instantiate_decl): Likewise. - (fn_type_unification): Handle explicit_targs. - (type_unification): Likewise. Allow incomplete unification - without an error message, if allow_incomplete. - (get_bindings): Use new calling sequence for fn_type_unification. - - * spew.c (yylex): Handle PFUNCNAME. - - * tree.c (is_overloaded_fn): Handle TEMPLATE_ID_EXPR. - (really_overloaded_fn): Likewise. - (get_first_fn): Handle function templates. - - * typeck.c (build_x_function_call): Use really_overloaded_fn. - Handle TEMPLATE_ID_EXPR. - (build_x_unary_op): Likewise. - (build_unary_op): Likewise. - (mark_addressable): Templates whose address is taken are marked - as used. + * lex.c (identifier_type): Return PFUNCNAME for template function + names. + + * method.c (build_decl_overload_real): New function. + (build_template_parm_names): New function. + (build_overload_identifier): Use it. + (build_underscore_int): New function. + (build_overload_int): Use it. Add levels for template + parameters. + (build_overload_name): Likewise. Also, handle TYPENAME_TYPEs. + (build_overload_nested_names): Handle template type parameters. + (build_template_decl_overload): New function. + + * parse.y (YYSTYPE): New ntype member. + (nested_name_specifier): Use it. + (nested_name_specifier_1): Likewise. + (PFUNCNAME): New token. + (template_id, object_template_id): New non-terminals. + (template_parm_list): Note specializations. + (template_def): Likewise. + (structsp): Likewise. + (fn.def2): Handle member template specializations. + (component_decl_1): Likewise. + (direct_notype_declarator): Handle template-ids. + (component_decl_1): Likewise. + (direct_notype_declarator): Handle template-ids. + (primary): Handle TEMPLATE_ID_EXPR, and template-ids. + + * pt.c (processing_specializations): New variable. + (template_header_count): Likewise. + (type_unification_real): New function. + (processing_explicit_specialization): Likewise. + (note_template_header): Likewise. + (is_member_template): Handle specializations. + (end_template_decl): Call reset_specialization. + (push_template_decl): Handle member template specializations. + (tsubst): Likewise. + (tsubst_copy): Handle TEMPLATE_ID_EXPR. + (instantiate_template): Handle specializations. + (instantiate_decl): Likewise. + (fn_type_unification): Handle explicit_targs. + (type_unification): Likewise. Allow incomplete unification + without an error message, if allow_incomplete. + (get_bindings): Use new calling sequence for fn_type_unification. + + * spew.c (yylex): Handle PFUNCNAME. + + * tree.c (is_overloaded_fn): Handle TEMPLATE_ID_EXPR. + (really_overloaded_fn): Likewise. + (get_first_fn): Handle function templates. + + * typeck.c (build_x_function_call): Use really_overloaded_fn. + Handle TEMPLATE_ID_EXPR. + (build_x_unary_op): Likewise. + (build_unary_op): Likewise. + (mark_addressable): Templates whose address is taken are marked + as used. 1997-09-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> @@ -5041,7 +10047,7 @@ Thu Sep 25 11:11:13 1997 Jason Merrill <jason@yorick.cygnus.com> Rvalue conversions were removed in London. * call.c (is_subseq): Don't consider lvalue transformations. (build_conv): LVALUE_CONV and RVALUE_CONV get IDENTITY_RANK. - (joust): Reenable ?: kludge. + (joust): Re-enable ?: kludge. 1997-09-22 Brendan Kehoe <brendan@lisa.cygnus.com> @@ -5077,12 +10083,12 @@ Wed Sep 17 10:31:25 1997 Jason Merrill <jason@yorick.cygnus.com> Tue Sep 16 14:06:56 1997 Jason Merrill <jason@yorick.cygnus.com> * call.c (build_new_op): Give better error for syntactically - correct, but semantically invalid, use of undeclared template. + correct, but semantically invalid, use of undeclared template. * call.c (compare_qual): Handle pmfs. * decl.c (store_parm_decls): last_parm_cleanup_insn is the insn - after the exception spec. + after the exception spec. Mon Sep 15 11:52:13 1997 Jason Merrill <jason@yorick.cygnus.com> @@ -5118,9 +10124,9 @@ Thu Sep 11 10:08:45 1997 Mark Mitchell <mmitchell@usa.net> * pt.c (coerce_template_parms): Avoid looking at the TYPE_LANG_DECL portion of a typename type, since there won't be - one. + one. (tsubst): Do constant folding as necessary to make sure that - arguments passed to lookup_template_class really are constants. + arguments passed to lookup_template_class really are constants. Wed Sep 10 11:21:55 1997 Jason Merrill <jason@yorick.cygnus.com> @@ -5137,9 +10143,9 @@ Tue Sep 9 19:49:38 1997 Jason Merrill <jason@yorick.cygnus.com> Tue Sep 9 17:57:25 1997 Mark Mitchell <mmitchell@usa.net> * error.c (dump_decl): Avoid crashing when presented with a - uninitialized constant, as can occur with a template parameter. + uninitialized constant, as can occur with a template parameter. (dump_expr): Make sure that there are enough levels of - current_template_parms before we start diving through them. + current_template_parms before we start diving through them. 1997-09-09 Brendan Kehoe <brendan@lisa.cygnus.com> @@ -5148,7 +10154,7 @@ Tue Sep 9 17:57:25 1997 Mark Mitchell <mmitchell@usa.net> Tue Sep 9 09:36:39 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> - * except.c (expand_throw): Call build_delete for all + * except.c (expand_throw): Call build_delete for all exception types, not just objects with destructors. Mon Sep 8 02:33:20 1997 Jody Goldberg <jodyg@idt.net> @@ -5156,7 +10162,7 @@ Mon Sep 8 02:33:20 1997 Jody Goldberg <jodyg@idt.net> * decl.c (current_local_enum): Remove static. * pt.c (tsubst_enum): Save and restore value of current_local_enum in case template is expanded in enum decl. - (instantiate_class_template) : Use new tsubst_enum signature. + (instantiate_class_template): Use new tsubst_enum signature. (tsubst_expr): Likewise. Mon Sep 8 01:21:43 1997 Mark Mitchell <mmitchell@usa.net> @@ -5168,7 +10174,7 @@ Mon Sep 8 01:21:43 1997 Mark Mitchell <mmitchell@usa.net> member templates using the same parameter names can be declared. (end_member_template_processing): Pop the binding level. (push_template_decl): Mark member templates as static when - appropriate. + appropriate. * lex.c (do_pending_inlines): Pass the function, not its template arguments, to begin_member_template_processing. @@ -5176,17 +10182,17 @@ Mon Sep 8 01:21:43 1997 Mark Mitchell <mmitchell@usa.net> (do_pending_defargs): Likewise. * error.c (dump_expr): Obtain the correct declaration for a - TEMPLATE_CONST_PARM. + TEMPLATE_CONST_PARM. * call.c (add_template_conv_candidate): New function. (build_object_call): Handle member templates, as done in the other build_ functions. - + Sat Sep 6 10:20:27 1997 Mark Mitchell <mmitchell@usa.net> * decl.c (replace_defag): Undo previous change. * lex.c (do_pending_defargs): Deal with member templates. - + * pt.c (is_member_template): Avoid crashing when passed a non-function argument. @@ -5206,24 +10212,24 @@ Fri Sep 5 01:37:17 1997 Mark Mitchell <mmitchell@usa.net> * pt.c (push_template_decl): Likewise. (classtype_mangled_name): Likewise. (lookup_template_class): Likewise. - + * cp-tree.h (DECL_NTPARMS): Change name from DECL_NT_PARMS to DECL_NTPARMS to conform to usage elsewhere. * call.c (add_template_candidate): Likewise. * class.c (instantiate_type): Likewise. * pt.c (instantiate_template): Likewise. (get_bindings): Likewise. - + * class.c (grow_method): Use DECL_FUNCTION_TEMPLATE_P instead of is_member_template. * pt.c (unify): Undo changes to allow multiple levels of template - parameters. + parameters. (type_unification): Likewise. (fn_type_unification): Likewise. (get_class_bindings): Likewise. * cp-tree.h (Likewise). - + * decl.c (replace_defarg): Check that the type of the default parameter does not invlove a template type before complaining about the initialization. @@ -5232,13 +10238,13 @@ Fri Sep 5 01:37:17 1997 Mark Mitchell <mmitchell@usa.net> member templates correctly. * pt.c (is_member_template): Deal with class specializations - correctly. + correctly. (tsubst): Handle "partial instantiation" of member templates - correctly. + correctly. Wed Sep 3 12:30:24 1997 Mark Mitchell <mmitchell@usa.net> - * pt.c (type_unification): Change calling squence to allow for + * pt.c (type_unification): Change calling sequence to allow for multiple levels of template parameters. (tsubst_expr): Likewise. (tsubst): Likewise. @@ -5252,7 +10258,7 @@ Wed Sep 3 12:30:24 1997 Mark Mitchell <mmitchell@usa.net> * decl.c (grokdeclarator): Use it. * decl2.c (finish_file): Use it. * method.c (build_overload_identifier): Use it. - + * call.c (add_template_candidate): Add additional parameter for the function return type. Call fn_type_unification istead of type_unification. @@ -5260,12 +10266,12 @@ Wed Sep 3 12:30:24 1997 Mark Mitchell <mmitchell@usa.net> (build_new_function_call): Likewise. (build_new_op): Likewise. (build_new_method_call): Likewise. - + * class.c (grow_method): Don't give an error message indicating - that two member templates with the same name are ambiguous. + that two member templates with the same name are ambiguous. (finish_struct): Treat member template functions just like member - functions. - + functions. + * cp-tree.h (check_member_template): Add declaration. (begin_member_template_processing): Likewise. (end_member_template_processing): Likewise. @@ -5278,31 +10284,31 @@ Wed Sep 3 12:30:24 1997 Mark Mitchell <mmitchell@usa.net> (get_bindings): Likewise. * decl.c (decls_match): Handle multiple levels of template - parameters. + parameters. (pushdecl): Handle template type params just like other type - declarations. + declarations. (push_class_level_binding): Return immediately if the class_binding_level is NULL. (grokfndecl): If check_classfn() returns a member_template, use the result of the template, not the template itself. - + * decl2.c (check_member_template): New function. Check to see that the entity declared to be a member template can be one. (check_classfn): Allow redeclaration of member template functions with different types; the new functions can be specializations or explicit instantiations. - + * error.c (dump_decl): Handle multiple levels of template - parameters. - (dump_function_decl): Update to handle function templates. + parameters. + (dump_function_decl): Update to handle function templates. * lex.c (do_pending_inlines): Set up template parameter context for member templates. (process_next_inline): Likewise. - * method. (build_overload_identifier): Adjust for multiple levels + * method.c (build_overload_identifier): Adjust for multiple levels of template parameters. - + * parse.y (fn.def2): Add member templates. (component_decl_1): Likewise. @@ -5313,7 +10319,7 @@ Wed Sep 3 12:30:24 1997 Mark Mitchell <mmitchell@usa.net> (current_template_parms): Return a vector of all the template parms, not just the innermost level of parms. (push_template_decl): Deal with the possibility of member - templates. + templates. (lookup_template_class): Likewise. (uses_template_parms): Likewise. (tsubst): Modify processing to TEMPLATE_TYPE_PARM and @@ -5323,7 +10329,7 @@ Wed Sep 3 12:30:24 1997 Mark Mitchell <mmitchell@usa.net> (do_decl_instantiation): Handle member templates. * search.c (lookup_fnfields_1): Handle member template conversion - operators. + operators. * tree.c (cp_tree_equal): Check the levels, as well as the indices, of TEMPLATE_CONST_PARMs. @@ -5331,12 +10337,12 @@ Wed Sep 3 12:30:24 1997 Mark Mitchell <mmitchell@usa.net> * typeck.c (comptypes): Check the levels, as well as the indices, fo TEMPLATE_TYPE_PARMs. (build_x_function_call): Treat member templates like member - functions. - + functions. + Wed Sep 3 11:09:25 1997 Jason Merrill <jason@yorick.cygnus.com> * typeck.c (c_expand_return): Always convert_for_initialization - before checking for returning a pointer to local. + before checking for returning a pointer to local. * pt.c (type_unification): If strict and the function parm doesn't use template parms, just compare types. @@ -5349,7 +10355,7 @@ Wed Sep 3 10:35:49 1997 Klaus Espenlaub <kespenla@student.informatik.uni-ulm. Wed Sep 3 00:02:53 1997 Jason Merrill <jason@yorick.cygnus.com> * typeck.c (convert_arguments): Don't arbitrarily choose the first - of a set of overloaded functions. + of a set of overloaded functions. Tue Sep 2 12:09:13 1997 Jason Merrill <jason@yorick.cygnus.com> @@ -5360,12 +10366,12 @@ Tue Sep 2 12:09:13 1997 Jason Merrill <jason@yorick.cygnus.com> (build_overload_identifier): Pass it. * decl.c (duplicate_decls): Don't bash a previous template - definition with a redeclaration. + definition with a redeclaration. * pt.c (unify): float doesn't match double. * pt.c (do_type_instantiation): Handle getting a _TYPE or a - TYPE_DECL. Handle getting non-template types. + TYPE_DECL. Handle getting non-template types. * parse.y (explicit_instantiation): Use typespec instead of aggr template_type. @@ -5373,7 +10379,7 @@ Tue Sep 2 10:27:08 1997 Richard Henderson <rth@cygnus.com> * typeck.c (build_ptrmemfunc1): Clean up ptr->int cast warnings. -Mon Sep 1 13:19:04 1997 Eugene Mamchits <eugin@ips.ras.ru> +Mon Sep 1 13:19:04 1997 Eugene Mamchits <eugin@ips.ras.ru> * call.c (add_builtin_candidate): Add missing TREE_TYPE. (compare_ics): Likewise. @@ -5381,8 +10387,8 @@ Mon Sep 1 13:19:04 1997 Eugene Mamchits <eugin@ips.ras.ru> Mon Sep 1 13:19:04 1997 Jason Merrill <jason@yorick.cygnus.com> * call.c (joust): Warn about choosing one conversion op over - another because of 'this' argument when the other return type is - better. + another because of 'this' argument when the other return type is + better. (source_type): New fn. * call.c (build_new_op): Strip leading REF_BIND from first operand @@ -5395,7 +10401,7 @@ Thu Aug 28 09:45:23 1997 Jason Merrill <jason@yorick.cygnus.com> * call.c (null_ptr_cst_p): Remove support for (void*)0. -Wed Aug 27 02:03:34 1997 Jeffrey A Law (law@cygnus.com) +Wed Aug 27 02:03:34 1997 Jeffrey A Law <law@cygnus.com> * typeck.c (expand_target_expr): Make definition match declaration. @@ -5415,7 +10421,7 @@ Sat Aug 23 18:02:59 1997 Mark Mitchell <mmitchell@usa.net> * error.c (type_as_string): Put const/volatile on template type parameters where appropriate. -Sat Aug 23 17:47:22 1997 Jeffrey A Law (law@cygnus.com) +Sat Aug 23 17:47:22 1997 Jeffrey A Law <law@cygnus.com> * call.c (strictly_better): Make arguments unsigned ints. @@ -5423,7 +10429,7 @@ Thu Aug 21 18:48:44 1997 Jason Merrill <jason@yorick.cygnus.com> * lex.c (real_yylex): Refer to __complex instead of complex. -Thu Aug 21 22:25:46 1997 J"orn Rennecke <amylaar@cygnus.co.uk> +Thu Aug 21 22:25:46 1997 J"orn Rennecke <amylaar@cygnus.co.uk> * lex.c (real_yylex): Don't use getc directly. @@ -5435,10 +10441,10 @@ Wed Aug 20 03:13:36 1997 H.J. Lu (hjl@gnu.ai.mit.edu) * parse.y, pt.c: Include "except.h". * call.c, class.c, class.h, cp-tree.h, cvt.c, decl.c, decl2.c, - error.c, except.c, expr.c, friend.c, g++spec.c, init.c, input.c, - lex.c, lex.h, method.c, parse.y, pt.c, repo.c, rtti.c, search.c, - sig.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: Finish - prototyping. + error.c, except.c, expr.c, friend.c, g++spec.c, init.c, input.c, + lex.c, lex.h, method.c, parse.y, pt.c, repo.c, rtti.c, search.c, + sig.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: Finish + prototyping. Wed Aug 20 01:34:40 1997 Jason Merrill <jason@yorick.cygnus.com> @@ -5461,7 +10467,7 @@ Tue Aug 19 02:26:07 1997 Jason Merrill <jason@yorick.cygnus.com> * repo.c (finish_repo): Don't crash on no args. * parse.y (named_complex_class_head_sans_basetype): Handle - explicit global scope. + explicit global scope. * decl2.c (handle_class_head): New fn. * pt.c (unify): Add CONST_DECL case. @@ -5494,13 +10500,13 @@ Wed Aug 13 10:46:19 1997 H.J. Lu (hjl@gnu.ai.mit.edu) Tue Aug 12 20:13:57 1997 Jason Merrill <jason@yorick.cygnus.com> - * parse.y: Don't clear the inlines from their obstack until they've + * parse.y: Don't clear the inlines from their obstack until they've all been processed. * decl.c (duplicate_decls): Don't complain about exception - specification mismatch if flag_exceptions is off. + specification mismatch if flag_exceptions is off. -Mon Aug 11 15:01:56 1997 Marc Lehmann <pcg@goof.com> +Mon Aug 11 15:01:56 1997 Marc Lehmann <pcg@goof.com> * Make-lang.in (c++.distclean): Remove g++.c on make distclean. @@ -5508,10 +10514,10 @@ Sun Aug 10 12:06:09 1997 Paul Eggert <eggert@twinsun.com> * cp-tree.h: Replace STDIO_PROTO with PROTO in include files. * cvt.c, error.c, except.c, expr.c, friend.c, init.c, rtti.c: - Include <stdio.h> before include files that formerly used STDIO_PROTO. + Include <stdio.h> before include files that formerly used STDIO_PROTO. * decl.c, g++spec.c, lex.c, method.c, repo.c: - Include "config.h" first, as per autoconf manual. + Include "config.h" first, as per autoconf manual. Fri Aug 8 11:47:48 1997 Jason Merrill <jason@yorick.cygnus.com> @@ -5523,13 +10529,13 @@ Fri Aug 8 11:47:48 1997 Jason Merrill <jason@yorick.cygnus.com> * decl2.c (lang_decode_option): Handle -fhandle-exceptions. * lang-options.h: Add -fhandle-exceptions. - * class.c (build_vtable): vtables are artificial. + * class.c (build_vtable): Vtables are artificial. (prepare_fresh_vtable): Likewise. Wed Aug 6 11:02:36 1997 Jason Merrill <jason@yorick.cygnus.com> * cvt.c (ocp_convert): After converting to the target type, set - LOOKUP_NO_CONVERSION. + LOOKUP_NO_CONVERSION. * call.c (joust): Warn about potentially confusing promotion rules with -Wsign-promo. @@ -5607,18 +10613,18 @@ Fri Jul 18 17:56:08 1997 Jason Merrill <jason@yorick.cygnus.com> Thu Jul 17 18:06:30 1997 Jason Merrill <jason@yorick.cygnus.com> * method.c (build_overload_nested_name): Use static_labelno - instead of var_labelno. + instead of var_labelno. (build_qualified_name): New fn. (build_overload_name): Split out from here. (build_static_name): Use build_qualified_name. - * decl.c (cp_finish_decl): Statics in extern inline functions + * decl.c (cp_finish_decl): Statics in extern inline functions have comdat linkage. (start_function): Initialize static_labelno. Thu Jul 17 11:20:17 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> - * class.c (finish_struct_methods): add check of warn_ctor_dtor_privacy - before "all member functions in class [] are private" + * class.c (finish_struct_methods): Add check of warn_ctor_dtor_privacy + before "all member functions in class [] are private". Wed Jul 16 23:47:08 1997 Jason Merrill <jason@yorick.cygnus.com> @@ -5632,7 +10638,7 @@ Wed Jul 16 12:34:29 1997 Benjamin Kosnik <bkoz@lisa.cygnus.com> Mon Jul 14 03:23:46 1997 Jason Merrill <jason@yorick.cygnus.com> * typeck.c (get_member_function_from_ptrfunc): Promote index - before saving it. + before saving it. Sun Jul 13 00:11:52 1997 Jason Merrill <jason@yorick.cygnus.com> @@ -5686,7 +10692,7 @@ Wed Jul 9 13:44:12 1997 Jason Merrill <jason@yorick.cygnus.com> Wed Jul 9 13:04:38 1997 Geoffrey Noer <noer@cygnus.com> - * decl.c (init_decl_processing): fix Jun 30 patch -- move + * decl.c (init_decl_processing): Fix Jun 30 patch -- move ifndef for Cygwin32 to include SIGSEGV. Thu Jul 3 01:44:05 1997 Jason Merrill <jason@yorick.cygnus.com> @@ -5697,17 +10703,17 @@ Thu Jul 3 01:44:05 1997 Jason Merrill <jason@yorick.cygnus.com> * rtti.c (build_dynamic_cast): Call complete_type on the types. * decl.c (grokfndecl): If the function we chose doesn't actually - match, die. + match, die. * decl2.c (grokclassfn): Don't specify 'const int' for the - artificial destructor parm. + artificial destructor parm. - * pt.c (type_unification): If we are called recursively, nothing + * pt.c (type_unification): If we are called recursively, nothing decays. Mon Jun 30 17:53:21 1997 Geoffrey Noer <noer@cygnus.com> - * decl.c (init_decl_processing): Stop trying to catch signals + * decl.c (init_decl_processing): Stop trying to catch signals other than SIGABRT since the Cygwin32 library doesn't support them correctly yet. This fixes a situation in which g++ causes a hang on SIGSEGVs and other such signals in our Win32-hosted @@ -5719,11 +10725,11 @@ Mon Jun 30 14:50:01 1997 Jason Merrill <jason@yorick.cygnus.com> Fri Jun 27 15:18:49 1997 Jason Merrill <jason@yorick.cygnus.com> - * typeck2.c (store_init_value): Always return the value if our + * typeck2.c (store_init_value): Always return the value if our type needs constructing. * method.c (hack_identifier): Convert class statics from - reference, too. + reference, too. Thu Jun 26 11:44:46 1997 Jason Merrill <jason@yorick.cygnus.com> @@ -5741,7 +10747,7 @@ Thu Jun 19 12:28:43 1997 Brendan Kehoe <brendan@lisa.cygnus.com> Tue Jun 17 18:35:57 1997 Mike Stump <mrs@cygnus.com> * except.c (expand_builtin_throw): Add support - -fno-sjlj-exceptions -fPIC exception handling on the SPARC. + -fno-sjlj-exceptions -fPIC exception handling on the SPARC. Mon Jun 16 01:24:37 1997 Jason Merrill <jason@yorick.cygnus.com> @@ -5749,7 +10755,7 @@ Mon Jun 16 01:24:37 1997 Jason Merrill <jason@yorick.cygnus.com> * cp-tree.h (TI_SPEC_INFO): New macro. (CLASSTYPE_TI_SPEC_INFO): New macro. - * pt.c (push_template_decl): Correctly determine # of template parms + * pt.c (push_template_decl): Correctly determine # of template parms for partial specs. * call.c (compare_ics): Really fix 'this' conversions. @@ -5758,20 +10764,20 @@ Mon Jun 16 01:24:37 1997 Jason Merrill <jason@yorick.cygnus.com> non-template fn. * pt.c (push_template_decl): Complain about mismatch in # of - template parms between a class template and a member template. + template parms between a class template and a member template. Sun Jun 15 02:38:20 1997 Jason Merrill <jason@yorick.cygnus.com> * method.c (synthesize_method): You can't call - function_cannot_inline_p after finish_function. + function_cannot_inline_p after finish_function. * decl.c (finish_function): Turn on flag_inline_functions and turn - off DECL_INLINE before handing a synthesized method to the - backend. + off DECL_INLINE before handing a synthesized method to the + backend. Thu Jun 12 17:35:28 1997 Jason Merrill <jason@yorick.cygnus.com> * method.c (synthesize_method): Remove July 30 change to never set - DECL_INLINE if at_eof. + DECL_INLINE if at_eof. Thu Jun 12 15:25:08 1997 Mike Stump <mrs@cygnus.com> @@ -5811,22 +10817,22 @@ Tue Jun 10 00:22:09 1997 Jason Merrill <jason@yorick.cygnus.com> Mon Jun 9 14:25:30 1997 Mike Stump <mrs@cygnus.com> * Makefile.in, Make-lang.in: Protect C-ls with a comment - character, idea from Paul Eggert <eggert@twinsun.com>. + character, idea from Paul Eggert <eggert@twinsun.com>. Mon Jun 9 01:52:03 1997 Jason Merrill <jason@yorick.cygnus.com> * typeck.c (c_expand_return): Be more persistent in looking for - returned temps. + returned temps. * cvt.c (build_up_reference): Use NOP_EXPR for switching from - pointer to reference. + pointer to reference. * class.c (build_vbase_path): Don't do anything if PATH has no steps. Sun Jun 8 03:07:05 1997 Jason Merrill <jason@yorick.cygnus.com> * init.c (build_member_call, build_offset_ref): - Use do_scoped_id instead of do_identifier. + Use do_scoped_id instead of do_identifier. * cvt.c (convert): Remove bogosity. @@ -5840,13 +10846,13 @@ Fri Jun 6 17:36:39 1997 Jason Merrill <jason@yorick.cygnus.com> * cvt.c (build_up_reference): Call get_binfo to get access control. * decl2.c (import_export_decl): If we don't support weaks, leave - statics undefined. + statics undefined. Fri Jun 6 15:55:49 1997 Mike Stump <mrs@cygnus.com> * except.c (expand_builtin_throw): Add support for machines that - cannot access globals after throw's epilogue when - -fno-sjlj-exceptions is used. + cannot access globals after throw's epilogue when + -fno-sjlj-exceptions is used. Thu Jun 5 16:28:43 1997 Jason Merrill <jason@yorick.cygnus.com> @@ -5863,14 +10869,14 @@ Thu Jun 5 16:28:43 1997 Jason Merrill <jason@yorick.cygnus.com> Tue Jun 3 18:08:23 1997 Jason Merrill <jason@yorick.cygnus.com> * search.c (push_class_decls): A name which ambiguously refers to - several instantiations of the same template just refers to the - template. + several instantiations of the same template just refers to the + template. Tue Jun 3 12:30:40 1997 Benjamin Kosnik <bkoz@cirdan.cygnus.com> - * decl.c (build_enumerator): fix problem with unsigned long + * decl.c (build_enumerator): Fix problem with unsigned long enumerated values being smashed to ints, causing overflow - when computing next enumerated value. (for enum values around + when computing next enumerated value (for enum values around MAX_VAL). Mon Jun 2 17:40:56 1997 Jason Merrill <jason@yorick.cygnus.com> @@ -6003,7 +11009,7 @@ Wed May 14 19:08:28 1997 Mike Stump <mrs@cygnus.com> (struct cp_function): Add last_parm_cleanup_insn. (push_cp_function_context): Likewise. (pop_cp_function_context): Likewise. - + Tue May 13 15:51:20 1997 Jason Merrill <jason@yorick.cygnus.com> * pt.c (tsubst_copy): Handle BIT_NOT_EXPR. @@ -6056,13 +11062,13 @@ Wed Apr 23 18:06:50 1997 Jason Merrill <jason@yorick.cygnus.com> * typeck.c (c_expand_return): Don't complain about returning void to void in an artificial function. - * method.c (make_thunk): Change settings of READONLY/VOLATILE, + * method.c (make_thunk): Change settings of READONLY/VOLATILE, don't set DECL_RESULT, set DECL_ARTIFICIAL. - (emit_thunk, generic code): Also set up DECL_LANG_SPECIFIC. + (emit_thunk, generic code): Also set up DECL_LANG_SPECIFIC. Wed Apr 23 14:43:06 1997 Mike Stump <mrs@cygnus.com> - * init.c (init_decl_processing): Add supoprt for setjmp/longjmp based + * init.c (init_decl_processing): Add support for setjmp/longjmp based exception handling. * except.c (init_exception_processing): Likewise. (expand_end_catch_block): Likewise. @@ -6080,7 +11086,7 @@ Wed Apr 23 14:43:06 1997 Mike Stump <mrs@cygnus.com> (store_parm_decls): Likewise. (cplus_expand_expr_stmt): Likewise. * decl2.c (finish_file): Likewise. - + * Make-lang.in (exception.o): Ok to compile with -O now. * decl.c (maybe_build_cleanup_1): We no longer have to unsave, as @@ -6088,7 +11094,7 @@ Wed Apr 23 14:43:06 1997 Mike Stump <mrs@cygnus.com> * decl2.c (lang_f_options): Remove support for short temps. * lang-options.h: Likewise. - + Wed Apr 23 04:12:06 1997 Jason Merrill <jason@yorick.cygnus.com> * tree.c (varargs_function_p): New fn. @@ -6154,7 +11160,7 @@ Wed Apr 2 12:51:36 1997 Mike Stump <mrs@cygnus.com> * exception.cc (__default_unexpected): Call terminate by default, so that if the user overrides terminate, the correct function will be called. - + Wed Mar 19 14:14:45 1997 Mike Stump <mrs@cygnus.com> * parse.y (left_curly): Avoid trying to use any fields of @@ -6382,7 +11388,7 @@ Tue Feb 11 13:50:48 1997 Mike Stump <mrs@cygnus.com> avoid lossing on systems that require one (ones that define malloc in xm.h). -Mon Feb 10 22:51:13 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> +Mon Feb 10 22:51:13 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> * decl2.c (max_tinst_depth): New variable. (lang_decode_option): Parse "-ftemplate-depth-NN" command line @@ -6551,7 +11557,7 @@ Thu Jan 23 16:39:06 1997 Jason Merrill <jason@yorick.cygnus.com> Tue Jan 21 18:32:04 1997 Mike Stump <mrs@cygnus.com> - * cvt.c (cp_convert): Pedwarn enum to pointer conversions. + * cvt.c (cp_convert): pedwarn enum to pointer conversions. Mon Jan 20 17:59:51 1997 Jason Merrill <jason@yorick.cygnus.com> @@ -6675,7 +11681,7 @@ Fri Dec 27 10:31:40 1996 Paul Eggert <eggert@twinsun.com> * Make-lang.in (g++spec.o): Don't use $< with an explicit target; this isn't portable to some versions of `make' (e.g. Solaris 2.5.1). -Tue Dec 24 10:24:03 1996 Jeffrey A Law (law@cygnus.com) +Tue Dec 24 10:24:03 1996 Jeffrey A Law <law@cygnus.com> * decl.c (grokvardecl): Avoid ANSI style initialization. @@ -6720,7 +11726,7 @@ Sat Dec 7 17:20:22 1996 Jason Merrill <jason@yorick.cygnus.com> * cp-tree.h (TYPE_MAIN_DECL): Use TYPE_STUB_DECL. * *.c: Use TYPE_MAIN_DECL instead of TYPE_NAME where appropriate. - + Fri Dec 6 14:40:09 1996 Jason Merrill <jason@yorick.cygnus.com> * decl.c (grokdeclarator): When giving an anonymous struct a name, @@ -6866,7 +11872,7 @@ Wed Nov 13 12:32:07 1996 Jason Merrill <jason@yorick.cygnus.com> Wed Nov 13 11:51:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com> * g++.c (main): Also set PEXECUTE_SEARCH, to make the invocation - of GCC be path-relative. + of GCC be path-relative. Wed Nov 13 11:27:16 1996 Michael Meissner <meissner@tiktok.cygnus.com> @@ -6881,7 +11887,7 @@ Wed Nov 13 07:53:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com> Wed Nov 13 02:00:26 1996 Jason Merrill <jason@yorick.cygnus.com> - * init.c (expand_default_init): Avoid calling constructors to + * init.c (expand_default_init): Avoid calling constructors to initialize reference temps. * cvt.c (convert_to_reference): Fix. @@ -6974,7 +11980,7 @@ Fri Nov 8 17:38:44 1996 Jason Merrill <jason@yorick.cygnus.com> * decl2.c (finish_file): Don't emit debug info. * decl.c (pushdecl): Lose obsolete code. (grokdeclarator): Still do the long long thing after complaining. - * search.c (note_debug_info_needed): Don't do anything if we're in a + * search.c (note_debug_info_needed): Don't do anything if we're in a template. * method.c (synthesize_method): For non-local classes, push_to_top_level first. @@ -7038,7 +12044,7 @@ Thu Oct 31 17:08:49 1996 Jason Merrill <jason@yorick.cygnus.com> similar code in build_up_ref. * cvt.c (build_up_reference): Drastically simplify. -Mon Oct 28 12:45:05 1996 Jeffrey A Law (law@cygnus.com) +Mon Oct 28 12:45:05 1996 Jeffrey A Law <law@cygnus.com> * typeck.c (signed_or_unsigned_type): If the given type already as the correct signedness, then just return it. @@ -7163,7 +12169,7 @@ Fri Sep 27 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com> * decl2.c (build_expr_from_tree): Use it. * cp-tree.h: Declare it. - * decl.c (start_decl): variable-sized arrays cannot be initialized. + * decl.c (start_decl): Variable-sized arrays cannot be initialized. * error.c (dump_type_suffix): Handle variable arrays. Fri Sep 27 13:14:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com> @@ -7187,7 +12193,7 @@ Thu Sep 26 10:59:00 1996 Jason Merrill <jason@yorick.cygnus.com> calling them. (get_tinfo_fn_dynamic): Extracted from build_typeid. * tinfo2.cc (__dynamic_cast): Adjust. - + * rtti.c (build_typeid): Use resolves_to_fixed_type_p. (build_x_typeid): Likewise. @@ -7266,7 +12272,7 @@ Sun Sep 22 05:31:22 1996 Jason Merrill <jason@yorick.cygnus.com> * typeck2.c (store_init_value): Oops. - * new.{h,cc}, exception.{h,cc}, typeinfo.h, tinfo{2.cc,.cc,.h}: + * new.{h,cc}, exception.{h,cc}, typeinfo.h, tinfo{2.cc,.cc,.h}: New files for C++ lang-support library. * Make-lang.in (CXX_EXTRA_HEADERS): Define. (CXX_LIB2FUNCS): Define. @@ -7391,7 +12397,7 @@ Wed Sep 4 17:16:09 1996 Bob Manson <manson@charmed.cygnus.com> * init.c (perform_member_init): Use add_partial_entry () instead of directly manipulating lists. - (emit_base_init): Ditto. + (emit_base_init): Likewise. Wed Sep 4 12:14:36 1996 Mike Stump <mrs@cygnus.com> @@ -7482,7 +12488,7 @@ Fri Aug 30 10:01:55 1996 Mike Stump <mrs@cygnus.com> to start_function. * parse.y (datadef): Remove non-winning optimization. (decl): Likewise. - (fndef): Remove ambiguous error productions uncovered by grammer + (fndef): Remove ambiguous error productions uncovered by grammar fixing. (constructor_declarator): Add exception_specification_opt here. (component_constructor_declarator): Likewise. @@ -7512,7 +12518,7 @@ Wed Aug 28 01:40:30 1996 Jason Merrill <jason@yorick.cygnus.com> * call.c (joust): Extend the previous change to all comparisons. - * decl2.c, method.c, lex.c: Use MAKE_DECL_ONE_ONLY and + * decl2.c, method.c, lex.c: Use MAKE_DECL_ONE_ONLY and NO_LINKAGE_HEURISTICS. * decl2.c (finish_file): Emit any statics that weren't already. @@ -7547,7 +12553,7 @@ Tue Aug 27 13:12:21 1996 Jason Merrill <jason@yorick.cygnus.com> Tue Aug 27 13:14:58 1996 Bob Manson <manson@charmed.cygnus.com> * rtti.c (build_dynamic_cast): Don't try to dereference exprtype - too early. Make sure we explode if exprtype turns out to be a + too early. Make sure we explode if exprtype turns out to be a NULL_TREE when it shouldn't be. Tue Aug 27 10:56:21 1996 Mike Stump <mrs@cygnus.com> @@ -7561,7 +12567,7 @@ Tue Aug 27 10:56:21 1996 Mike Stump <mrs@cygnus.com> * lex.c (cons_up_default_function): Likewise. * parse.y: Likewise. * pt.c (tsubst): Likewise. - + Mon Aug 26 17:40:03 1996 Mike Stump <mrs@cygnus.com> * decl2.c (groktypefield): Remove unused code. @@ -7573,11 +12579,11 @@ Mon Aug 26 17:00:33 1996 Mike Stump <mrs@cygnus.com> Change type_quals into cv_qualifiers. Change nonempty_type_quals into nonempty_cv_qualifiers. * hash.h: Rebuild. - + * lex.c (make_pointer_declarator): Change type_quals into cv_qualifiers. (make_reference_declarator): Likewise. - + Thu Aug 22 01:09:22 1996 Jason Merrill <jason@yorick.cygnus.com> * decl.c (start_function): Only check interface_* for templates @@ -7594,7 +12600,7 @@ Wed Aug 21 00:13:15 1996 Jason Merrill <jason@yorick.cygnus.com> * call.c (build_new_method_call): Add missing args to cp_error. - * tree.c (error_type): Dont print reference-to-array. + * tree.c (error_type): Don't print reference-to-array. * typeck.c (convert_for_assignment): Don't say contravariance for removing const. @@ -7810,7 +12816,7 @@ Sun Aug 4 15:29:11 1996 Jason Merrill <jason@yorick.cygnus.com> (build_conditional_expr): If both operands are TARGET_EXPRs, wrap the COND_EXPR in a TARGET_EXPR so they use the same slot. - * cvt.c (build_up_reference): Propagate INDIRECT_BIND to + * cvt.c (build_up_reference): Propagate INDIRECT_BIND to recursive calls. * typeck.c (complete_type): Propagate TYPE_NEEDS_{CONSTRUCTING,DESTRUCTOR}. @@ -7907,7 +12913,7 @@ Thu Aug 1 15:18:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com> Thu Aug 1 11:53:51 1996 Bob Manson <manson@charmed.cygnus.com> - * pt.c (instantiate_class_template): Call complete_type. Also, if + * pt.c (instantiate_class_template): Call complete_type. Also, if we're at the end of the file and we just instantiated a template class with a vtable, call finish_prevtable_vardecl. @@ -8063,12 +13069,12 @@ Tue Jul 23 12:46:30 1996 Jason Merrill <jason@yorick.cygnus.com> * cvt.c (implicit_conversion): Do const-ref case first. (add_conv_candidate, build_object_call, op_error): New fns. (ptr_complete_ob, TYPE_PTROB_P): void is not an object type. - ({add,build}_builtin_candidate{,s}, print_z_candidates): Display + ({add,build}_builtin_candidate{,s}, print_z_candidates): Display builtin candidates. (build_new_op): Handle CALL_EXPR. Don't try to decay void. - Fall back on preincrement handling. Use op_error. + Fall back on preincrement handling. Use op_error. Handle warn_synth. - (convert_like): Pass INDIRECT_BIND. Don't try to do anything with + (convert_like): Pass INDIRECT_BIND. Don't try to do anything with an error_mark_node. (build_over_call): Handle PROMOTE_PROTOTYPES and ellipsis promotions properly. @@ -8087,7 +13093,7 @@ Mon Jul 22 12:18:54 1996 Jason Merrill <jason@yorick.cygnus.com> * g++.c (main): Don't link with -lg++. NEW_OVER changes: - * cvt.c (convert_to_reference): Don't use convert_from_refeence on + * cvt.c (convert_to_reference): Don't use convert_from_reference on result of build_type_conversion. (cp_convert): Only call build_method_call for ctors if build_type_conversion failed. @@ -8095,7 +13101,7 @@ Mon Jul 22 12:18:54 1996 Jason Merrill <jason@yorick.cygnus.com> (TYPE_PTR{,OB,MEM}_P): New macros. ({add,build}_builtin_candidate{,s}): New functions. (print_z_candidates): Handle builtins. - (build_user_type_conversion_1): Don't use conversion fns for + (build_user_type_conversion_1): Don't use conversion fns for converting to a base type. (build_user_type_conversion_1): Set ICS_USER_FLAG on AMBIG_CONVs. (build_user_type_conversion): Use convert_from_reference. @@ -8417,7 +13423,7 @@ Fri Jun 7 10:37:33 1996 Mike Stump <mrs@cygnus.com> lifetime of the temporary, don't try it again. * typeck.c (c_expand_return): Don't try and convert the return value twice when we want a reference, once is enough. - + Tue Jun 4 15:41:45 1996 Jason Merrill <jason@yorick.cygnus.com> * pt.c (tsubst_expr, case DECL_STMT): Don't pass @@ -8494,8 +13500,8 @@ Thu May 23 12:13:08 1996 Bob Manson <manson@charmed.cygnus.com> and cant_synth_asn_ref. (finish_base_struct): Remove the code that tries to conditionalize synthesis of copy constructors & assignment operators based on - access permissions. Instead, let it fail when it tries to - synthesize the copy constructor. This will give meaningful error + access permissions. Instead, let it fail when it tries to + synthesize the copy constructor. This will give meaningful error messages instead of silently generating code to perform a bitcopy. Wed May 22 11:45:19 1996 Bob Manson <manson@charmed.cygnus.com> @@ -8514,7 +13520,7 @@ Wed May 22 11:45:19 1996 Bob Manson <manson@charmed.cygnus.com> (init_decl_processing): Use NULL instead of NULL_TREE to initialize named_label_uses. (finish_function): Likewise. - + (start_decl): Complain about defining a static data member in a different type from which it was declared. @@ -8794,11 +13800,11 @@ Wed Apr 24 15:41:15 1996 Bob Manson <manson@charmed.cygnus.com> definition of flagged_type_tree is found before it is used. * lex.c: Likewise. * parse.y: Added the ftype member to the type union, and changed a - number of rules to use it instead of ttype. Added calls to + number of rules to use it instead of ttype. Added calls to check_for_new_type() as appropriate. * typeck2.c (check_for_new_type): New function for checking if a newly defined type appears in the specified tree. - * cp-tree.h: Add new type flagged_type_tree. Add a prototype + * cp-tree.h: Add new type flagged_type_tree. Add a prototype for check_for_new_type(). Wed Apr 24 00:36:21 1996 Jason Merrill <jason@yorick.cygnus.com> @@ -8923,7 +13929,7 @@ Sun Apr 14 11:34:39 1996 Jason Merrill <jason@yorick.cygnus.com> Fri Apr 12 09:08:27 1996 Bob Manson <manson@charmed.cygnus.com> * call.c (build_method_call): Remember the original basetype we - were called with. Give an error message instead of trying + were called with. Give an error message instead of trying (incorrectly) to call a non-static member function through a non-inherited class. @@ -9052,7 +14058,7 @@ Sat Apr 6 13:56:27 1996 Jason Merrill <jason@yorick.cygnus.com> Fri Apr 5 17:02:09 1996 Jason Merrill <jason@yorick.cygnus.com> RTTI rewrite to initialize nodes as needed, not require that - users #include <typeinfo>, complete functionality and reduce wasted + users #include <typeinfo>, complete functionality and reduce wasted space. * rtti.c (init_rtti_processing): New fn. (build_typeid): The vtable entry is now a function. @@ -9152,11 +14158,11 @@ Sat Mar 30 12:14:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com> Fri Mar 29 15:51:36 1996 Bob Manson <manson@charmed.cygnus.com> - * class.c (base_info, finish_base_struct): Replace + * class.c (base_info, finish_base_struct): Replace needs_virtual_dtor with base_has_virtual. (finish_struct_1): Remove the old code that tried to make default - destructors virtual. Use base_has_virtual when checking if we need + destructors virtual. Use base_has_virtual when checking if we need to add a vtable entry for the rtti code. Fri Mar 29 14:02:36 1996 Jason Merrill <jason@yorick.cygnus.com> @@ -9269,7 +14275,7 @@ Fri Mar 22 17:57:55 1996 Mike Stump <mrs@cygnus.com> Fri Mar 22 13:48:29 1996 Jason Merrill <jason@yorick.cygnus.com> * decl.c (grokdeclarator): Call bad_specifiers for typedefs. Also - give an error if initialized. Pedwarn about nested type with the + give an error if initialized. pedwarn about nested type with the same name as its enclosing class. * pt.c (tsubst, case TYPE_DECL): Set DECL_CONTEXT. @@ -9500,7 +14506,7 @@ Wed Mar 13 14:03:34 1996 Jason Merrill <jason@yorick.cygnus.com> Tue Mar 12 14:36:02 1996 Jason Merrill <jason@yorick.cygnus.com> - * init.c (build_new): Pedwarn about init and array new. + * init.c (build_new): pedwarn about init and array new. (expand_vec_init): Handle lists, use convert_for_initialization. * typeck.c (convert_for_initialization): Pass LOOKUP_NO_CONVERSION @@ -9622,7 +14628,7 @@ Mon Mar 4 20:03:33 1996 Jason Merrill <jason@yorick.cygnus.com> * error.c (dump_expr): Support LOOKUP_EXPR and actually do something for CAST_EXPR. - + Mon Feb 19 14:49:18 1996 Rusty Russell <rusty@adelaide.maptek.com.au> * cvt.c (cp_convert): Warn about implicit conversion of the @@ -9892,7 +14898,7 @@ Thu Feb 22 15:30:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com> (repo_compile_flags, repo_template_declared, repo_template_defined, repo_class_defined, repo_inline_used, repo_vtable_used, repo_tinfo_used): #if 0 unused fns. - (repo_get_id, repo_vtable_used): Declare as static. + (repo_get_id, repo_vtable_used): Declare as static. * cp-tree.h (mark_{decl,class}_instantiated, finish_repo): Add prototypes. @@ -9921,7 +14927,7 @@ Thu Feb 22 13:24:15 1996 Brendan Kehoe <brendan@lisa.cygnus.com> (init_lex): Don't set it. (init_parse): Add decl before use. (reduce_count): Only define #ifdef GATHER_STATISTICS && REDUCE_LENGTH. - (current_unit_{name, language}): Delete unused vars. + (current_unit_{name, language}): Delete unused vars. (check_newline): Don't bother setting them, just accept the #pragma. * cp-tree.h (init_repo, peek_yylex): Add prototypes. (current_unit_{name, language}): Delete decls. @@ -10045,7 +15051,7 @@ Thu Feb 22 00:54:22 1996 Jason Merrill <jason@yorick.cygnus.com> Wed Feb 21 16:57:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com> - * init.c (expand_recursive_init{,_1}): Delete decls. + * init.c (expand_recursive_init{,_1}): Delete decls. (sort_member_init): Delete unused var INIT. (emit_base_init): Delete unused var X. (build_offset_ref): Delete unused var CNAME. @@ -10081,7 +15087,7 @@ Wed Feb 21 16:57:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com> * class.c (n_*): Wrap with #ifdef GATHER_STATISTICS. - * class.c (get_vtable_entry): Diable unused function. + * class.c (get_vtable_entry): Disable unused function. (doing_hard_virtuals): Delete unused static global var. (finish_struct_1): Don't init DOING_HARD_VIRTUALS. (prepare_fresh_vtable): Delete unused vars PATH and RESULT. @@ -10112,7 +15118,7 @@ Wed Feb 21 16:57:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com> (grokparms): Delete unused var SAW_VOID. (start_function): Delete unused var OLDDECL. (cplus_expand_expr_stmt): Delete unused var - REMOVE_IMPLICIT_IMMEDIATELY. + REMOVE_IMPLICIT_IMMEDIATELY. * cp-tree.h (pushdecl_nonclass_level): Fix prototype. @@ -10127,7 +15133,7 @@ Wed Feb 21 00:06:17 1996 Jason Merrill <jason@yorick.cygnus.com> (tsubst_expr): Set lineno from TREE_COMPLEXITY in stmt nodes. * parse.y: Use do_pushlevel and do_poplevel. * cp-tree.h: Declare do_poplevel. - + * cp-tree.h: Declare at_eof. * decl.c (cp_finish_decl): Pass it to rest_of_decl_compilation. * decl2.c (import_export_decl): Renamed from import_export_inline. @@ -10744,7 +15750,7 @@ Tue Dec 19 22:36:56 1995 Jason Merrill <jason@yorick.cygnus.com> Mon Dec 18 15:51:33 1995 Jason Merrill <jason@yorick.cygnus.com> * cp-tree.h, decl2.c (flag_weak): New flag to control the use of - weak symbols. + weak symbols. * lang-options.h: Add -f{no-,}weak. * decl.c (init_decl_processing): If the target does not support weak symbols, don't use them. @@ -10771,7 +15777,7 @@ Thu Dec 14 14:16:26 1995 Mike Stump <mrs@cygnus.com> copy constructors well. The compiler would do bitwise copying, instead of ctor calling in some cases. -Wed Dec 13 17:05:54 PST 1995 Paul Eggert <eggert@twinsun.com> +Wed Dec 13 17:05:54 1995 Paul Eggert <eggert@twinsun.com> * g++.c (my_strerror): Return "cannot access" if errno is 0. (pfatal_with_name, perror_exec): Don't assume that @@ -10782,7 +15788,7 @@ Wed Dec 13 17:05:54 PST 1995 Paul Eggert <eggert@twinsun.com> Wed Dec 13 16:22:38 1995 Jason Merrill <jason@yorick.cygnus.com> Lose CLASSTYPE_METHODS/DECL_NEXT_METHOD chain; make - TYPE_METHODS/TREE_CHAIN mean what they used to. + TYPE_METHODS/TREE_CHAIN mean what they used to. * decl2.c (constructor_name_full): Refer to CLASSTYPE_METHOD_VEC instead of TYPE_METHODS. * decl.c (duplicate_decls): Lose references to DECL_NEXT_METHOD. @@ -10823,7 +15829,7 @@ Mon Dec 11 18:56:14 1995 Mike Stump <mrs@cygnus.com> * decl2.c (build_cleanup): New routine, taken from finish_file. (finish_file): Use build_cleanup instead, and don't put function local statics in global dtor list. - + Wed Dec 6 14:34:29 1995 Mike Stump <mrs@cygnus.com> * except.c (expand_throw): Ensure that we have cleanups, if we try @@ -10862,7 +15868,7 @@ Wed Dec 6 11:48:21 1995 Mike Stump <mrs@cygnus.com> * class.c (build_vfn_ref): Remove building_cleanup logic, as we now use UNSAVE_EXPRs. - typeck.c (get_member_function_from_ptrfunc): Remove remnants of + * typeck.c (get_member_function_from_ptrfunc): Remove remnants of building_cleanup logic, as we now use UNSAVE_EXPRs. * cp-tree.h (unsave_expr): Declare it. * decl.c (building_cleanup): Remove. @@ -10956,11 +15962,11 @@ Fri Nov 10 09:18:09 1995 Brendan Kehoe <brendan@lisa.cygnus.com> Mon Nov 6 18:36:13 1995 Brendan Kehoe <brendan@lisa.cygnus.com> * call.c (build_method_call): Make sure instance has a - TYPE_LANG_SPECIFIC node before we dive into it. + TYPE_LANG_SPECIFIC node before we dive into it. Sat Nov 4 20:01:52 1995 Jason Molenda <crash@phydeaux.cygnus.com> - * method.c (make_thunk): use TREE_SET_CODE to set thunk's tree code. + * method.c (make_thunk): Use TREE_SET_CODE to set thunk's tree code. Thu Nov 2 17:56:57 1995 Mike Stump <mrs@cygnus.com> @@ -10995,7 +16001,7 @@ Tue Oct 31 11:56:55 1995 Jason Merrill <jason@yorick.cygnus.com> (emit_thunk): Don't call assemble_external. (make_thunk): Create thunk as a FUNCTION_DECL so that it gets the right mode and ENCODE_SECTION_INFO works. - + * parse.y: Use mark_used. Pass operator names to do_identifier. * lex.c (do_identifier): Handle operator names. |