OSDN Git Service

1998-09-20 Martin von L�wis <loewis@informatik.hu-berlin.de>
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index 7cd9e51..6ccd3bf 100644 (file)
@@ -1,3 +1,684 @@
+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): Consistantly 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 ssertion 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 attributres 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
+       paramter. 
+       * 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