📄 changelog
字号:
20010617 Release Manager
* GCC 3.0 Released.
2001-06-14 Jason Merrill <jason_merrill@redhat.com>
* class.c (update_vtable_entry_for_fn): Uncomment optimization to use
virtual thunk instead of non-virtual.
(get_matching_virtual): Uncomment.
2001-06-14 Nathan Sidwell <nathan@codesourcery.com>
* class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure
we've not emerged from the hierarchy of RTTI_BINFO on reaching
a non-virtual base.
2001-06-13 Mark Mitchell <mark@codesourcery.com>
* NEWS: Update release number.
2001-06-12 Nathan Sidwell <nathan@codesourcery.com>
PR c++/3130, c++/3131, c++/3132
* cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
* class.c (force_canonical_binfo_r): Move
BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
virtual bases unless they're primary and what they're primary
too has been moved.
(dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
derived binfo.
(mark_primary_bases): Use BINFO_UNSHARED_MARKED.
(layout_nonempty_base_or_field): Add most derived type
parameter. Adjust.
(layout_empty_base): Likewise.
(build_base_field): Likewise.
(build_base_fields): Likewise.
(propagate_binfo_offsets): Add most derived type
parameter. Skip non canonical virtual bases too.
(dfs_set_offset_for_unshared_vbases): Don't skip primary
bases. Do skip canonical bases.
(layout_virtual_bases): Adjust.
(layout_class_type): Adjust.
(dfs_get_primary_binfo): Build list of virtual primary base
candidates.
(get_primary_binfo): Check that the shared virtual primary
base candidate was found first.
(accumulate_vtbl_inits): Don't do anything for non-vptr
containing binfos. For case 1 primary virtual bases, keep
checking that we've not emerged from the hierarchy of RTTI_BINFO.
2001-06-12 Nathan Sidwell <nathan@codesourcery.com>
PR c++/3089
* class.c (dfs_accumulate_vtbl_inits): Always walk down the
hierarchy looking for primary bases for a ctor
vtable. Recursively call oneself, if we meet our primary via
this route and haven't met it yet via inheritance graph order.
2001-06-11 Mark Mitchell <mark@codesourcery.com>
* lang-options.h: Emit documentation for -fno-honor-std, not
-fhonor-std.
2001-06-10 Alexandre Oliva <aoliva@redhat.com>
* typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]:
Don't clobber delta.
(expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn.
2001-06-08 Jakub Jelinek <jakub@redhat.com>
* search.c (lookup_field_r): If looking for type and non-TYPE_DECL
is found, look first if name does not match the structure name.
2001-06-08 Nathan Sidwell <nathan@codesourcery.com>
* decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko
in previous change.
2001-06-08 Nathan Sidwell <nathan@codesourcery.com>
PR c++/2929
* friend.c (do_friend): Use push_decl_namespace for classes at
namespace scope.
2001-06-08 Nathan Sidwell <nathan@codesourcery.com>
Jason Merrill <jason_merrill@redhat.com>
PR c++/3061
* class.c (build_secondary_vtable): Use assert, rather than an error
message.
(dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL.
(dfs_accumulate_vtbl_inits): A lost primary virtual base may
be between ORIG_BINFO and RTTI_BINFO, but neither of them.
Don't set BINFO_VTABLE for a primary virtual base.
2001-06-07 Mark Mitchell <mark@codesourcery.com>
* decl.c (duplicate_decls): Update source position information
when a template function is defined.
2001-06-07 Phil Edwards <pme@sources.redhat.com>
* lang-specs.h: Move -D_GNU_SOURCE to config/linux.h.
2001-06-07 Nathan Sidwell <nathan@codesourcery.com>
PR c++/2914
* decl.c (pushtag): Don't push into a complete type's scope.
2001-06-06 Jason Merrill <jason_merrill@redhat.com>
* cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
(struct lang_decl_flags): Lose generate_with_vtable_p.
(BV_GENERATE_THUNK_WITH_VTABLE_P): Lose.
* class.c (copy_virtuals): Adjust.
* decl2.c (mark_vtable_entries): Adjust.
* method.c (make_thunk, build_vtable_entry): Adjust.
* class.c (update_vtable_entry_for_fn): Only look as far as the
first defining class.
(build_vtbl_initializer): Put nothing in the slot for a function only
defined in a lost primary virtual base.
(add_vcall_offset_vtbl_entries_1): Use the same code for
the lost primary case and the normal case.
(dfs_unshared_virtual_bases): Don't lose a non-virtual primary base.
(get_vfield_offset, get_derived_offset): Lose.
(dfs_find_final_overrider): Use look_for_overrides_here.
(get_matching_virtual): New fn.
* semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P,
not BV_VCALL_INDEX.
* search.c (look_for_overrides_here): Split out from...
(look_for_overrides_r): Here.
* class.c (find_final_overrider): Return error_mark_node on error.
2001-06-06 John David Anglin <dave@hiauly1.hia.nrc.ca>
* call.c (convert_default_arg): Use INTEGRAL_TYPE_P.
(build_over_call): Likewise.
* decl.c (grokparms): Likewise.
* pt.c (tsubst_decl): Likewise.
* typeck.c (convert_arguments): Likewise.
2001-06-05 Mark Mitchell <mark@codesourcery.com>
* semantics.c (begin_class_definition): Robustify.
* pt.c (instantiate_decl): Tell the repository code about the
clones, not the cloned functions.
* repo.c (repo_template_used): Explicitly instantiate the cloned
function, not the clones.
2001-06-05 Nathan Sidwell <nathan@codesourcery.com>
* call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and
ICS_BAD_FLAG on created conversion.
(compare_ics): Break out rank.
2001-06-05 Nathan Sidwell <nathan@codesourcery.com>
* class.c (layout_vtable_decl): Fix off by one error on
build_index_type.
(build_vtt): Likewise.
(build_ctor_vtbl_group): Likewise.
2001-06-05 Nathan Sidwell <nathan@codesourcery.com>
* class.c (maybe_indent_hierarchy): New function.
(dump_class_hierarchy_r): Add flags. Dump extra binfo
information, if enabled. Use maybe_indent_hierarchy. Adjust
output format.
(dump_class_hierarchy): Adjust prototype. Adjust output format.
(dump_array, dump_vtable, dump_vtt): New functions.
(finish_struct_1): Adjust hierarchy dumping.
(initialize_vtable): Call dump_vtable.
(build_vtt): Call dump_vtt.
(build_ctor_vtbl_group): Call dump_vtable.
* decl2.c (flag_dump_class_layout): Remove.
(cxx_decode_option): Remove dump translation unit
and dump class hierarchy check. Call dump_switch_p.
(finish_file): Adjust dumping.
(dump.c): Only dump base classes if not TDF_SLIM.
Only dump namespace members if not TDF_SLIM.
* optimize.c (dump_function): New function.
(optimize_function): Call dump_function.
* semantics.c (expand_body): Use dump_enabled_p.
2001-06-01 Nathan Sidwell <nathan@codesourcery.com>
PR g++/2936
Part missed from first commit
* decl2.c (finish_anon_union): Copy context.
2001-05-30 Nathan Sidwell <nathan@codesourcery.com>
PR g++/2936
* optimize.c (remap_decl): Remap anonymous aggregate members too.
2001-05-26 Nathan Sidwell <nathan@codesourcery.com>
PR g++/2823
* semantics.c (expand_body): Don't optimize thunks.
2001-05-24 Mark Mitchell <mark@codesourcery.com>
* decl.c (duplicate_decls): Tidy.
(init_decl_processing): Always set flag_no_builtin.
2001-05-24 Nathan Sidwell <nathan@codesourcery.com>
PR c++/2184
* decl2.c (do_local_using_decl): Push the decls, even in a
template.
2001-05-22 Mark Mitchell <mark@codesourcery.com>
* optimize.c (initialize_inlined_parameters): Don't set
TREE_READONLY for a VAR_DECL taking the place of an inlined
PARM_DECL.
2001-05-22 Joseph S. Myers <jsm28@cam.ac.uk>
* parse.y: Refer to compound literals as such, not as
constructor-expressions.
2001-05-21 Mark Mitchell <mark@codesourcery.com>
* call.c (build_op_delete_call): Ignore exception-specifications
when looking for matching delete operators.
* init.c (build_new_1): Compute whether or not the allocation
function used is a placement allocation function or not, and
communicate this information to build_op_delete_call.
2001-05-21 Jason Merrill <jason_merrill@redhat.com>
* decl2.c (lang_f_options): Remove huge-objects, vtable-thunks.
(unsupported_options): Correspondingly.
2001-05-19 Zack Weinberg <zackw@stanford.edu>
* except.c (choose_personality_routine): Export. Add
explanatory comment. Take an enum languages, not a boolean.
(initialize_handler_parm): Adjust to match.
* cp-tree.h: Prototype choose_personality_routine.
* lex.c (handle_pragma_java_exceptions): New function.
(init_cp_pragma): Register #pragma GCC java_exceptions.
2001-05-20 Nathan Sidwell <nathan@codesourcery.com>
PR c++/2781
* optimize.c (update_cloned_parm): Copy addressability and other
flags.
2001-05-18 Jason Merrill <jason_merrill@redhat.com>
* class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here.
(get_vtable_decl, build_vtt): Not here.
2001-05-17 Mark Mitchell <mark@codesourcery.com>
* except.c (cp_protect_cleanup_actions): New function.
(init_exception_processing): Don't set protect_cleanup_actions
here. Do set lang_protect_cleanup_actions.
2001-05-16 Nathan Sidwell <nathan@codesourcery.com>
* spew.c (read_token): Call yyerror on all unexpected tokens.
2001-05-12 Richard Henderson <rth@redhat.com>
EH merge from mainline:
2001-04-23 Jason Merrill <jason_merrill@redhat.com>
* except.c (build_throw): Wrap the initialization of the exception
object in a MUST_NOT_THROW_EXPR.
(do_free_exception): #if 0.
* cp-tree.def (EH_SPEC_BLOCK): New.
(MUST_NOT_THROW_EXPR): New.
* cp-tree.h: Update changed function declarations.
(CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove.
(CPTI_CALL_UNEXPECTED): New.
(struct cp_language_function): Rename x_eh_spec_try_block
to x_eh_spec_block.
(EH_SPEC_STMTS, EH_SPEC_RAISES): New.
* decl.c (current_binding_level): If no current function
bindings, revert to scope_chain.
(initialize_predefined_identifiers): Remove __cp_push_exception.
(store_parm_decls): Use begin_eh_spec_block.
(finish_function): Use finish_eh_spec_block.
(mark_lang_function): Update for name changes.
* decl2.c (finish_file): No mark_all_runtime_matches.
* dump.c (cp_dump_tree): Handle new tree codes.
* error.c (dump_expr) [BIND_EXPR]: Fix typo.
* except.c (catch_language_init, catch_language): Remove.
(init_exception_processing): Don't set language code.
Initialize call_unexpected_node, protect_cleanup_actions,
eh_personality_libfunc, lang_eh_runtime_type.
(call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove.
(get_eh_type, get_eh_caught, get_eh_handlers): Remove.
(prepare_eh_type): Split out type canonicalizations ...
(build_eh_type_type): ... from here.
(build_eh_type_type_ref): Remove.
(mark_all_runtime_matches): Remove.
(build_exc_ptr): New.
(do_begin_catch, do_end_catch): New.
(do_pop_exception): Remove.
(build_terminate_handler): Remove.
(choose_personality_routine): Split out language choice from ...
(initialize_handler_parm): ... here.
Use MUST_NOT_THROW_EXPR.
(expand_start_catch_block): Use do_begin_catch. Simplify Java
exception object handling.
(expand_start_eh_spec, expand_end_eh_spec): Remove.
(expand_exception_blocks, alloc_eh_object): Remove.
(begin_eh_spec_block, finish_eh_spec_block): New.
(do_allocate_exception, do_free_exception): New.
(expand_throw): Merge into ...
(build_throw): ... here. Update for abi.
* expr.c (cplus_expand_expr): No expand_internal_throw.
Handle MUST_NOT_THROW_EXPR.
* pt.c (tsubst_expr): Handle EH_SPEC_BLOCK.
* semantics.c (*) Update for except.h name changes.
(genrtl_try_block): No protect_with_terminate.
(genrtl_eh_spec_block): New.
(genrtl_handler): Don't emit the goto here.
(cp_expand_stmt): Handle EH_SPEC_BLOCK.
(genrtl_finish_function): Don't expand_exception_blocks.
* tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK.
* decl.c (struct named_label_list): Rename eh_region to
in_try_scope, add in_catch_scope.
(struct binding_level): Rename eh_region to is_try_scope,
add is_catch_scope.
(note_level_for_try): Rename from note_level_for_eh.
(note_level_for_catch): New.
(poplevel): Copy both is_try_scope and is_catch_scope to
the named_label_list struct.
(check_previous_goto_1): Don't check for catch block via
DECL_ARTIFICIAL; use in_try_scope instead.
(check_goto): Likewise.
* cp-tree.h (note_level_for_try, note_level_for_catch): Declare.
* except.c (expand_start_catch_block): Call note_level_for_catch.
* semantics.c (begin_compound_stmt): Update for note_level_for_try.
* except.c: Use USING_SJLJ_EXCEPTIONS instead of
exceptions_via_longjmp.
2001-05-12 Alexandre Oliva <aoliva@redhat.com>
* cp-tree.h (ptrmemfunc_vbit_where_t): Declare type.
* typeck.c (get_member_function_from_ptrfunc,
build_ptrmemfunc, expand_ptrmemfunc_cst): Take
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -