C++ ABI changes.
[platform/upstream/gcc.git] / gcc / cp / ChangeLog
index 6167381..21ced62 100644 (file)
@@ -1,3 +1,487 @@
+2002-06-14  Jason Merrill  <jason@redhat.com>
+
+       C++ ABI changes.
+       * class.c (build_base_field): Set DECL_PACKED.
+       (layout_class_type): Don't use tail padding of PODs.
+       * mangle.c (write_unqualified_name): Fix template conversion op
+       mangling.
+
+2002-06-16  Richard Henderson  <rth@redhat.com>
+
+       PR opt/6793
+       * tree.c (cp_cannot_inline_tree_fn): Don't short-circuit test
+       after template instantiation.
+
+2002-06-16  Richard Henderson  <rth@redhat.com>
+
+       * cp-tree.h, decl2.c (flag_ms_extensions): Move to c-common.
+
+2002-06-15  Gabriel Dos Reis  <gdr@codesourcery.com>
+
+       * cp-tree.h (compiler_error): Remove declaration.
+       * lex.c (compiler_error): Remove definition.
+
+2002-06-14  Steve Ellcey  <sje@cup.hp.com>
+
+       * g++spec.c (LIBUNWIND): New.
+       (lang_specific_driver): Add it if USE_UNWIND_EXCEPTIONS is set.
+
+2002-06-13  Jessica Han  <jessica@cup.hp.com>
+
+       * class.c (build_vtable): Use TARGET_VTABLE_ENTRY_ALIGN.
+       (build_vtbl_initializer): Honor TARGET_VTABLE_DATA_ENTRY_DISTANCE.
+       (build_vbase_offset_vtbl_entries): Likewise.
+       * rtti.c (build_headof): Likewise.
+       (get_tinfo_decl_dynamic): Likewise.
+       (create_pseudo_type_info): Likewise.
+
+2002-06-12  Stan Shebs  <shebs@apple.com>
+
+       * mpw-config.in: Remove file, no longer used.
+       * mpw-make.sed: Ditto.
+
+2002-06-07  Zack Weinberg  <zack@codesourcery.com>
+
+       * decl2.c: Update call to cpp_handle_option.
+
+2002-06-07  H.J. Lu  (hjl@gnu.org)
+
+       * decl2.c (flag_use_cxa_atexit): Set to DEFAULT_USE_CXA_ATEXIT.
+
+2002-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
+
+       * error.c (cp_error_at): Fix typo.
+
+2002-06-04  Gabriel Dos Reis  <gdr@codesourcery.com>
+
+       * error.c (cp_diagnostic_starter): Adjust call.
+       (maybe_print_instantiation_context): Change prototype to take a
+       'diagnostic_info *'.
+       (print_instantiation_full_context): Likewise.
+       (print_instantiation_partial_context): Likewise.
+       (cp_diagnostic_starter): Likewise.
+       (cp_diagnostic_finalizer): Likewise.
+       (cp_print_error_function): Likewise.
+       (cp_printer): Take a secondary parameter as a 'text_info *'.
+       Remove output_state savings.  Adjust calls.
+
+2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
+
+       * pt.c (inline_parm_levels): Mark for GC.
+
+       * mangle.c (start_mangling): Allocate G.substitutions here...
+       (init_mangle): ... rather than here.
+       (finish_mangling): Clear the varray pointer when done with it.
+       * spew.c (yylexstring): Don't use VARRAY_FREE. 
+       * search.c (bfs_walk): Don't use VARRAY_FREE. 
+       * decl2.c (pending_statics): Use gengtype to mark.
+       (deferred_fns): Likewise.
+       (ssdf_decls): Likewise.
+       (init_decl2): Delete.
+       * decl.c (pop_from_top_level): Don't use VARRAY_FREE.
+       (cxx_init_decl_processing): Don't call init_decl2.
+       (cxx_pop_function_context): Don't use VARRAY_FREE.
+       * cp-tree.h (struct saved_scope): No need for special marking
+       of varrays.
+       (struct language_function): Likewise.
+       (local_classes): Use gengtype to mark.
+       (init_decl2): Delete prototype.
+       * class.c (init_class_processing): Don't use
+       ggc_add_tree_varray_root.
+       (build_vtbl_initializer): Don't use VARRAY_FREE.
+
+       * decl.c (typename_compare): Don't use same_type_p.
+
+       * decl.c: Include hashtab.h instead of hash.h.
+       (typename_hash): Update to use htab_h.
+       (typename_compare): Likewise.
+       (typename_htab): Use gengtype to mark.
+       (build_typename_type): Update to use htab_h.
+       * Make-lang.in (cp/decl.o): Use HASHTAB_H instead of hash.h.
+
+       * Make-lang.in (gt-cp-tree.h): New rule.
+       (cp/tree.o): Depend on gt-cp-tree.h.
+       * config-lang.in (gtfiles): Add cp/tree.c.
+       * tree.c: Include gt-cp-tree.h.
+       (list_hash_table): Use gengtype to mark.
+       (init_tree): Use gengtype to mark trees.
+
+       * Make-lang.in (cp/decl.o): Add debug.h dependency.
+       * call.c (struct z_candidate): Use gengtype.
+       (USER_CONV_CAND): Use WRAPPER_ZC.
+       (convert_class_to_reference): Use build_zc_wrapper.
+       (build_type_conversion_1): Likewise.
+       (build_over_call): Use WRAPPER_ZC.
+       (add_warning): Use build_zc_wrapper.
+       * cp-lang.c (LANG_HOOKS_MARK_TREE): Delete.
+       * cp-tree.h (struct lang_identifier): Use gengtype.
+       (struct template_parm_index_s): Likewise.
+       (struct ptrmem_cst): Likewise.
+       (struct tree_binding): Likewise.
+       (struct tree_overload): Likewise.
+       (struct tree_srcloc): Likewise.
+       (struct tree_wrapper): Likewise.  Also modify to have a pointer
+       to struct z_candidate rather than void.
+       (enum cp_tree_node_structure_enum): New.
+       (union lang_tree_node): New.
+       (cxx_mark_tree): Delete prototype.
+       (cp_tree_node_structure): New prototype.
+       (build_ptr_wrapper): Delete prototype.
+       (build_int_wrapper): Delete prototype.
+       (build_zc_wrapper): New prototype.
+       * decl.c: Include debug.h
+       (cxx_mark_tree): Delete.
+       (cp_tree_node_structure): New.
+       * tree.c (build_ptr_wrapper): Delete.
+       (build_int_wrapper): Delete.
+       (build_zc_wrapper): New.
+
+       * cp-tree.h [! ENABLE_TREE_CHECKING] (LANG_TYPE_PTRMEM_CHECK):
+       Correct typo.  Patch from k_fukui@highway.ne.jp.
+
+       * semantics.c (current_stmt_tree): Update for change to
+       struct language_function.
+       (finish_mem_initializers): Likewise.
+       * decl.c (cxx_init_decl_processing): Don't set mark_lang_status.
+       * cp-tree.h (struct language_function): Rename from
+       cp_language_function.  Change all uses.
+       (cp_function_chain): Don't need to cast.
+
+       * class.c (duplicate_tag_error): Reset discriminator.
+       (check_bases_and_members): Update for data structure changes.
+       * cp-tree.h (struct lang_id2): Use gengtype.
+       (flagged_type_tree): Likewise.
+       (SET_LANG_ID): Use GGC on struct lang_id2.
+       (struct cp_language_function): Use gengtype.  Remove field
+       'x_vcalls_possible_p'.
+       (current_vcalls_possible_p): Delete.
+       (struct lang_type_header): New.
+       (struct lang_type_class): Rename from struct lang_type.  Include
+       struct lang_type_header.
+       (struct lang_type_ptrmem): New.
+       (struct lang_type): New.
+       (LANG_TYPE_CLASS_CHECK): New.  Use it in all the appropriate macros.
+       (LANG_TYPE_PTRMEM_CHECK): New.  Use it in all the appropriate macros.
+       (TYPE_SET_PTRMEMFUNC_TYPE): Set discriminator, update for changes.
+       (struct lang_decl_flags): Use gengtype.  Add discriminators.
+       (struct lang_decl): Use gengtype.  Add and use discriminators.
+       Update the macros that reference moved fields.
+       (LANG_DECL_U2_CHECK): New function.  Use it when appropriate.
+       (SET_DECL_THUNK_P): Set discriminator too.
+       (clear_inline_text_obstack): Delete prototype.
+       (finish_inline_definitions): Delete prototype.
+       (mark_pending_inlines): Delete prototype.
+       (lang_check_failed): New prototype.
+       * decl.c (struct named_label_use_list): Use gengtype.
+       (struct named_label_list): Likewise.
+       (mark_binding_level): Delete.
+       (mark_named_label_lists): Delete.
+       (push_local_name): Set discriminator on DECL_LANG_SPECIFIC.
+       (cxx_init_decl_processing): Use generated marker routine.
+       (begin_destructor_body): Delete dead set to
+       current_vcalls_possible_p.
+       (mark_lang_function): Delete.
+       (mark_cp_function_context): Delete.
+       (lang_mark_tree): Use generated marker routines.
+       * decl2.c (start_objects): Set discriminator when setting
+       GLOBAL_INIT_PRIORITY.
+       * lex.c (retrofit_lang_decl): Set discriminators.
+       (copy_lang_type): Update for changes to lang_type structure.
+       (cp_make_lang_type): Set discriminator.
+       * parse.y: Use gengtype on YYLVAL.  Don't use dots in identifiers.
+       * search.c: Include ggc.h.
+       * semantics.c (anon_aggr_type_p): Use the macro, don't hand-code it.
+       (finish_inline_definitions): Delete.
+       * spew.c (struct token): Use gengtype.
+       (struct token_chunk): New.
+       (struct unparsed_text): Use gengtype.  Store tokens in chunks.
+       (struct feed): Use gengtype.
+       (feed_obstack): Delete.
+       (feed): Mark as GC root.
+       (pending_inlines): Mark as GC root.
+       (pending_inlines_tail): Likewise.
+       (processing_these_inlines): Likewise.
+       (token_obstack): Make static.
+       (first_token): Likewise.
+       (init_spew): Don't initialise deleted things; use gengtype for roots.
+       (clear_inline_text_obstack): Delete.
+       (feed_input): Use GC for struct feed.  Update for changes to
+       struct unparsed_text.
+       (mark_pending_inlines): Delete.
+       (next_token): Rename from add_token.  Change all callers.  Update
+       for changes to struct unparsed_text.
+       (space_for_token): New.
+       (remove_last_token): New.
+       (alloc_unparsed_text): New.
+       (snarf_block): Take an unparsed_text.  Update for changes to struct
+       unparsed_text.
+       (snarf_method): Update for changes to struct unparsed_text.
+       (snarf_defarg): Update for changes to struct unparsed_text.
+       * tree.c (lang_check_failed): New.
+
+       * Make-lang.in (gt-cp-call.h gt-cp-decl2.h gt-cp-parse.h
+       gt-cp-pt.h gt-cp-repo.h gt-cp-spew.h): New rules.
+       (cp/spew.o): Add dependency on gt-<filename>.h.
+       (cp/decl2.o): Add dependency on gt-<filename>.h.
+       (cp/call.o): Add dependency on gt-<filename>.h.
+       (cp/pt.o): Add dependency on gt-<filename>.h.
+       (cp/repo.o): Add dependency on gt-<filename>.h.
+       (cp/parse.o): Add dependency on gt-<filename>.h.
+       * call.c: Use gengtype for roots.
+       * config-lang.in (gtfiles): Add cp-tree.h decl.h lex.h call.c
+       decl2.c parse.y pt.c repo.c spew.c.
+       * cp-tree.h: Use gengtype for roots.
+       (struct saved_scope): Use GGC, gengtype.
+       (cp_parse_init): Delete prototype.
+       (init_pt): Delete prototype.
+       * decl.c: Use gengtype for roots.
+       (mark_saved_scope): Delete.
+       (cxx_init_decl_processing): Don't call deleted initilisation
+       routines.
+       (signed_size_zero_node): Delete, unused.
+       * decl.h: Use gengtype for roots.
+       * decl2.c: Use gengtype for roots.
+       * lex.h: Use gengtype for roots.
+       * parse.y: Use gengtype for roots.
+       (cp_parse_init): Delete.
+       * pt.c: Use gengtype for roots.
+       (init_pt): Delete.
+       * repo.c: Use gengtype for roots.
+       * spew.c: Use gengtype for roots.
+
+       * Make-lang.in: Allow for filename changes.  Add gtype-cp.h.
+       (cp/decl.o): Add dependency on gtype-cp.h.
+       * decl.c: Remove use of add_deletable_root, use GTY marker instead.
+       Include gtype-cp.h.  Allow for filename changes.
+
+       * Make-lang.in (cp/gt-decl.h): Generate using gengtype.
+       (cp/decl.o): Add cp/gt-decl.h dependency.
+       * config-lang.in (gtfiles): New.
+       * tree.h: Rename struct binding_level to struct cp_binding_level.
+       * decl.c: Rename struct binding_level to struct cp_binding_level.
+       Include cp/gt-decl.h.
+       (struct cp_binding_level): Use gengtype.
+       (make_binding_level): Use GGC on struct cp_binding_level.
+       (mark_binding_level): Use gt_ggc_m_cp_binding_level.
+       (cxx_init_decl_processing): Mark free_binding_level as
+       deletable.
+
+       * decl.c (mark_cp_function_context): Update calling sequence.
+
+       * decl.c (start_function): Don't free 'struct
+       cp_language_function'.
+       (pop_cp_function_context): Likewise.
+       (save_function_data): Allocate it using GC.
+       * semantics.c (genrtl_start_function): Don't free 'struct
+       cp_language_function'.
+
+2002-05-31  Matthew Woodcraft  <mattheww@chiark.greenend.org.uk>
+
+       * lang-specs.h: Use cpp_debug_options.
+
+2002-05-28  Zack Weinberg  <zack@codesourcery.com>
+
+       * mangle.c, tree.c: Include real.h.
+       * Make-lang.in: Update dependency lists.
+
+2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * lex.c: Don't include c-lex.h.
+       * parse.y, spew.c: Don't include c-lex.h; include c-pragma.h.
+
+2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * spew.c (yyungetc, snarf_block): Remove indent_level handling.
+
+2002-05-22  Richard Henderson  <rth@redhat.com>
+
+       * decl.c (obscure_complex_init): Check for VAR_DECL
+       before using DECL_THREAD_LOCAL.
+
+2002-05-22  Richard Henderson  <rth@redhat.com>
+
+       * decl.c (check_tag_decl): Handle RID_THREAD.
+       (obscure_complex_init): Reject run-time init of tls.
+       (grokvardecl, grokdeclarator): Handle RID_THREAD.
+       * lex.c (reswords): Add __thread.
+       (rid_to_yy): Map RID_THREAD to SCSPEC.
+
+2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
+       * cp-tree.h (cxx_post_options): Kill.
+       * cp-lex.c (cxx_post_options): Kill.
+
+2002-05-21  Richard Henderson  <rth@redhat.com>
+
+       * lex.c (rid_to_yy): Add RID_THREAD.
+
+2002-05-21  Alexandre Oliva  <aoliva@redhat.com>
+
+       * init.c (build_vec_init): Test for trivial copy-assignment when
+       copy-assigning arrays.
+
+2002-05-20  Andreas Jaeger  <aj@suse.de>
+
+       * init.c (build_default_init): Remove unused variable.
+
+2002-05-20  Alexandre Oliva  <aoliva@redhat.com>
+
+       * call.c (any_strictly_viable): New.
+       (build_new_op): Use it for COMPOUND_EXPR and ADDR_EXPRs.
+
+2002-05-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       * error.c (dump_type) [TYPEOF_TYPE]: Fix parenthesis printing.
+
+2002-05-19  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       PR c++/186, DR 259
+       * pt.c (do_decl_instantiation): Don't complain explicit
+       instantiation after explicit specialization.
+       (do_type_instantiation): Likewise.
+
+2002-05-19  Alexandre Oliva  <aoliva@redhat.com>
+
+       * cp-tree.h (complete_type_or_diagnostic): Changed prototype,
+       renamed from...
+       (complete_type_or_else): ... this.  Redefined as macro.
+       (cxx_incomplete_type_diagnostic): Declare.
+       (cxx_incomplete_type_error): Define as macro.
+       * init.c (build_delete): Warn about incomplete types other than
+       void, and use the built-in operator delete for them.
+       * typeck.c (complete_type_or_diagnostic): Renamed from
+       complete_type_or_else.  Added warn_only argument, passed to...
+       * typeck2.c (cxx_incomplete_type_diagnostic): ... this.  Print
+       warnings or errors depending on new warn_only argument.  Renamed
+       from...
+       (cxx_incomplete_type_error): ... this.  New implementation in
+       terms of cxx_incomplete_type_diagnostic.
+
+2002-05-18  Jason Merrill  <jason@redhat.com>
+
+       * decl2.c (import_export_decl): If we clear
+       DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set.
+
+2002-05-15  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+       PR c++/6620
+       * pt.c (verify_class_unification): Don't check if PARM is template
+       parameter dependent.  Simplify.
+       (unify) [TEMPLATE_PARM_INDEX]: Handle when ARG is a template
+       parameter dependent expression.
+
+2002-05-14  Jason Merrill  <jason@redhat.com>
+
+       * rtti.c (get_tinfo_decl): Don't call comdat_linkage.
+       Do set DECL_COMDAT.
+       (synthesize_tinfo_var): Take the public decl.
+       (create_real_tinfo_var): Likewise.  Check DECL_COMDAT.
+       (emit_tinfo_decl): Adjust.  Call import_export_decl.
+       * decl2.c (import_export_decl): Simplify tinfo decl handling.
+
+2002-05-14  Alexandre Oliva  <aoliva@redhat.com>
+
+       * cp-tree.h (struct lang_type): Added non_zero_init.
+       (CLASSTYPE_NON_ZERO_INIT_P): New macro.
+       (zero_init_p, force_store_init_value, build_forced_zero_init): Declare.
+       * class.c (check_field_decls): Test non_zero_init.
+       * cvt.c (convert_to_pointer_force): Use cp_convert_to_pointer for
+       zero-to-NULL conversions.
+       * decl.c (obscure_complex_init): Don't reset DECL_INITIAL of a
+       type that needs zero-initialization without zeros.
+       (check_initializer_decl): Compute zero-initializer for types
+       that require a non-trivial one.
+       * init.c (build_forced_zero_init): New function.
+       (build_default_init): Use it.
+       * tree.c (zero_init_p): New function.
+       * typeck2.c (force_store_init_value): New function.
+       (process_init_constructor): Create non-trivial zero-initializers
+       for array members and class fields.
+
+2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * lang-specs.h: Remove redundant -lang-c++.
+
+2002-05-13  Jason Merrill  <jason@redhat.com>
+
+       * class.c (build_vtbl_ref_1): Use fixed_type_or_null.
+       (fixed_type_or_null): See through reference vars.
+       (build_base_path): Vtable contents are constant.
+       * typeck.c (get_member_function_from_ptrfunc): Likewise.
+
+2002-05-12  Jason Merrill  <jason@redhat.com>
+
+       * cp-lang.c (ok_to_generate_alias_set_for_type): Backend-created
+       structs are safe.
+
+2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cp-tree.h (flag_ansi): Remove.
+       * decl2.c (flag_ansi): Remove.
+       (cxx_decode_option): Set flag_iso and flag_undef.
+
+2002-05-09  Jason Merrill  <jason@redhat.com>
+
+       * typeck.c (get_member_function_from_ptrfunc): Reorganize.
+       Use subtraction rather than a bitmask to get the index.
+       * cvt.c (cp_convert_to_pointer): Bail on an error_mark_node.
+
+       * pt.c (tsubst_expr) [ASM_STMT]: Copy ASM_INPUT_P.
+
+2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * Make-lang.in (decl2.o): Update.
+       * cp-tree.h (warn_multichar): Remove.
+       * decl2.c: Include c-common.h.
+       (warn_multichar): Remove.
+
+2002-05-03  Jason Merrill  <jason@redhat.com>
+
+       * tree.c (build_cplus_array_type): Only const and volatile get
+       special handling.
+
+       * decl.c (BOOL_TYPE_SIZE): Move default to defaults.h.
+
+2002-04-30  Mark Mitchell  <mark@codesourcery.com>
+
+       ABI change, returning simple classes from functions.
+       * class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if
+       TYPE_HAS_TRIVIAL_INIT_REF is false or
+       TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true.
+
+2002-04-30  Jason Merrill  <jason@redhat.com>
+
+       PR debug/6436
+       * decl.c (grokdeclarator): Don't override TYPE_NAME of an
+       anonymous class with a typedef if there are attributes.
+
+2002-04-29  Paul Eggert  <eggert@twinsun.com>
+
+       * parse.y (nomods_initdcl0): Replace $<ttype>3 with $<ttype>$.
+
+2002-04-29  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/6477
+       * decl.c (follow_tag_typedef): Check if TYPE_NAME (original) is
+       non-NULL first.
+
+2002-04-29  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/6492
+       * pt.c (tsubst_friend_class): If the friend has an explicit scope,
+       enter that scope before name lookup.
+
+       PR c++/6486
+       * method.c (do_build_copy_constructor): Avoid building
+       cv-qualified reference types.
+
+2002-04-29  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/5719
+       * decl.c (grok_op_properties): Assignment ops don't have to return
+       by value. operator% should.
+
 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
 
        PR c/6343
        (finish_init_stmts): Set STMT_EXPR_NO_SCOPE.
        * semantics.c (begin_gobal_stmt_expr): Adjust call to
        expand_start_stmt_expr.
-       
+
 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
 
        * decl.c (register_dtor_fn): Pass the address of dso_handle, not
 
        * typeck.c (type_after_usual_arithmetic_conversions):
        If two types have the same variant, return immediately.
-       When two floating-point operands are the same precision: 
+       When two floating-point operands are the same precision:
          convert to float if one of the operands is float;
          if neither operand is one of the standard types, return the type
          of the first operand.
+
 2002-04-10  Nathan Sidwell  <nathan@codesourcery.com>
 
        PR c++/5507
        * init.c (build_member_call): Use build_scoped_ref.
        (resolve_offset_ref): Likewise.
        * call.c (build_scoped_method_call): Likewise.
-       * tree.c (maybe_dummy_object): Kludge around current_class_type being 
+       * tree.c (maybe_dummy_object): Kludge around current_class_type being
        wrong.
        * typeck2.c (build_scoped_ref): Return the binfo via binfo_p parm.
        * cp-tree.h: Adjust.
-       
+
        * init.c (push_base_cleanups): Just use build_scoped_method_call.
 
        PR c++/6179
-       * method.c (implicitly_declare_fn): Pass unqualified type to 
+       * method.c (implicitly_declare_fn): Pass unqualified type to
        synthesize_exception_spec.
 
 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
 
        * semantics.c (finish_eh_cleanup): New fn.
        * cp-tree.h: Add prototype.
-       * init.c (perform_member_init, expand_cleanup_for_base): Use 
+       * init.c (perform_member_init, expand_cleanup_for_base): Use
        finish_eh_cleanup.
        * cp-tree.def (SUBOBJECT, CTOR_STMT): Remove.
        * cp-tree.h: Remove references.
        PR c++/4884
        * call.c (build_op_delete_call): Allow for the fact the placement
        may be a COMPOUND_EXPR.
-       
+
 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
 
        * cp-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
 
        PR C++/3656
        * semantics.c (finish_base_specifier): Handle erronous base
-       classes. 
+       classes.
 
 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
 
        * except.c: Don't include decl.h or obstack.h.  Do include
        tree-inline.h.
        (build_throw): Destroy temporaries from the thrown
-       expression before calling __cxa_throw.  Construct a thrown 
+       expression before calling __cxa_throw.  Construct a thrown
        temporary directly into the exception object.
        (stabilize_throw_expr): New function.
        (wrap_cleanups_r): New function.
        the C front end but not used, or used only to permit the
        compiler to link.
 
-2002-02-24 Craig Rodrigues  <rodrigc@gcc.gnu.org> 
+2002-02-24 Craig Rodrigues  <rodrigc@gcc.gnu.org>
 
        PR c++/4093
        * cp-tree.h (SET_BINFO_MARKED): Cast false part of condition
 
 2002-02-19  Jason Merrill  <jason@redhat.com>
 
-       ABI change: Mangle `void (A::*)() const' as 
+       ABI change: Mangle `void (A::*)() const' as
        M1AKFvvE, not MK1AFvvE.
        * mangle.c (write_function_type): Write cv-quals for member
        function type here.
        (coerce_template_template_parms, convert_template_argument,
        coerce_template_parms, maybe_get_template_decl_from_type_decl,
        lookup_template_class, tsubst_friend_function, tsubst_friend_class,
-       instantiate_class_template, tsubst_template_arg_vector, 
-       tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument, 
+       instantiate_class_template, tsubst_template_arg_vector,
+       tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument,
        tsubst_decl, tsubst_arg_types, tsubst_function_type,
-       tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr, 
+       tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr,
        instantiate_template, fn_type_unification,
-       resolve_overloaded_unification, verify_class_unification, 
-       unify, get_bindings_real, do_type_instantiation, 
-       regenerate_decl_from_template, instantiate_decl, 
+       resolve_overloaded_unification, verify_class_unification,
+       unify, get_bindings_real, do_type_instantiation,
+       regenerate_decl_from_template, instantiate_decl,
        tsubst_initializer_list, tsubst_enum,
        get_mostly_instantiated_function_type,
        invalid_nontype_parm_type_p): Likewise.
 2002-02-01  Jason Merrill  <jason@redhat.com>
 
        PR c++/4872
-       * decl.c (finish_function): Warn about a non-void function with 
+       * decl.c (finish_function): Warn about a non-void function with
        no return statement and no abnormal exit.
        * cp-tree.h (struct cp_language_function): Add returns_abnormally.
        (current_function_returns_abnormally): New macro.