X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fcp%2FChangeLog;h=b269645f4b4bfc4758bd104da8ded70f657374bd;hp=9b0eaf1b39ce1b749bf9058a21a8e977efb029aa;hb=ee582a61a63edc4257e8bb2f52ab65356f165249;hpb=f5083c1bb992083bd438841be220b94c3b35ad1f diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 9b0eaf1b39c..b269645f4b4 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,765 @@ +2003-05-17 Kaveh R. Ghazi + + * error.c (cp_error_at, cp_warning_at, cp_pedwarn_at): Eliminate + libiberty VA_ macros, always use stdarg. + * rtti.c (create_pseudo_type_info): Likewise. + * tree.c (build_min_nt, build_min): Likewise. + +2003-05-16 Kaveh R. Ghazi + + * ptree.c (cxx_print_type, cxx_print_xnode): Use string + concatentation on HOST_WIDE_INT_PRINT_* format specifier to + collapse multiple function calls into one. + * tree.c (debug_binfo): Likewise. + +2003-05-15 Jason Merrill + + PR c++/5388 + * call.c (conditional_conversion): Don't consider implicit + conversions if T2 is a base of T1. + * cp-tree.h (DERIVED_FROM_P, UNIQUELY_DERIVED_FROM_P): Make boolean. + (ACCESSIBLY_UNIQUELY_DERIVED_P, PUBLICLY_UNIQUELY_DERIVED_P): Likewise. + + * parser.c (cp_parser_primary_expression): Convert a static data + member from reference. + +2003-05-15 Mark Mitchell + + * call.c (build_op_delete_call): Avoid creating unnecessary types. + * class.c (instantiate_type): Remove tests for tf_no_attributes. + * cp-tree.h (tsubst_flags_t): Remove tf_no_attributes. + (COMPARE_NO_ATTRIBUTES): Remove. + * typeck.c (comptypes): Do not check COMPARE_NO_ATTRIBUTES. + + PR c++/8385 + * semantics.c (finish_typeof): Refine type-dependency check. + +2003-05-13 Jason Merrill + + * typeck.c (build_modify_expr): Don't always stabilize the lhs and + rhs. Do stabilize the lhs of a MODIFY_EXPR used on the lhs. + +2003-05-11 Kriang Lerdsuwanakij + + * method.c (synthesize_method): Call push/pop_deferring_access_checks. + +2003-05-11 Kriang Lerdsuwanakij + + PR c++/10230, c++/10481 + * semantics.c (finish_non_static_data_member): Handle when the + non-static member is not from a base of the current class type. + +2003-05-11 Kriang Lerdsuwanakij + + PR c++/10552 + * pt.c (tsubst_copy): Handle TEMPLATE_DECL that is a member class + template and has dependent context. + +2003-05-10 Kriang Lerdsuwanakij + + * pt.c (instantiate_decl): Call push/pop_deferring_access_checks. + +2003-05-10 Kriang Lerdsuwanakij + + PR c++/9252 + * cp-tree.h (saved_scope): Remove check_access field. + (tsubst_flags_t): Remove tf_parsing. + * decl.c (maybe_push_to_top_level): Don't initialize + scope_chain->check_access. + (make_typename_type, make_unbound_class_template): Don't use + tf_parsing. + (register_dtor_fn): Use push/pop_deferring_access_checks + instead of scope_chain->check_access. + * method.c (use_thunk): Likewise. + * parser.c (cp_parser_explicit_instantiation + (cp_parser_constructor_declarator_p): Don't call + push/pop_deferring_access_checks here. + (cp_parser_template_argument, cp_parser_class_name): Don't use + tf_parsing. + (yyparse): Check flag_access_control. + * pt.c (instantiate_class_template): Call + push/pop_deferring_access_checks. + * semantics.c (push_deferring_access_checks): Propagate + dk_no_check. + (perform_or_defer_access_check): Make sure basetype_path is + a type before comparison. + * call.c (build_op_delete_call, build_over_call): Use + perform_or_defer_access_check. + * class.c (alter_access): Likewise. + * init.c (build_offset_ref): Likewise. + * lex.c (do_identifier): Likewise. + * method.c (hack_identifier): Likewise. + * search.c (lookup_member): Likewise. + * semantics.c (finish_non_static_data_member): Likewise. + (simplify_aggr_init_exprs_r): Use push/pop_deferring_access_checks + instead of flag_access_control. + +2003-05-10 Kriang Lerdsuwanakij + + PR c++/9554 + * parser.c (cp_parser_class_name): Remove check_access parameter. + All caller adjusted. Update declaration. + (cp_parser_lookup_name): Likewise. + * semantics.c (push_deferring_access_checks): Change parameter type + to enum deferring_kind. All caller adjusted. + (resume_deferring_access_checks): Adjust to use new enum. + (stop_deferring_access_checks): Likewise. + (perform_or_defer_access_check): Likewise. + * cp-tree.h (deferring_kind): New enum. + (deferred_access): Adjust field type. + (push_deferring_access_checks): Update declaration. + +2003-05-09 Kriang Lerdsuwanakij + + PR c++/10555, c++/10576 + * pt.c (lookup_template_class): Handle class template with + multiple levels of parameters when one of the levels contain + errors. + +2003-05-08 Jason Merrill + + * init.c (build_new_1): Don't reuse a TARGET_EXPR in an + expression. Undo some of the recent reorg. + +2003-05-07 Richard Henderson + + PR c++/10570 + * cfns.gperf: Comment out POSIX thread cancellation points, + plus abort and raise. + * cfns.h: Regenerate. + +2003-05-07 Jason Merrill + + * call.c (build_conditional_expr): Don't assume that the folded + expression has result_type. + +2003-05-06 Kriang Lerdsuwanakij + + * typeck.c (build_unary_op): Deal with const qualifier in + invalid pointer-to-member earlier. + +2003-05-05 Jason Merrill + + PR c++/9537 + * call.c (conditional_conversion): Build an RVALUE_CONV if + we're just changing the cv-quals. + (build_conditional_expr): Don't call convert to change + cv-quals. + +2003-05-05 Kriang Lerdsuwanakij + + PR c++/10496 + * typeck.c (build_unary_op): Don't output const qualifier when + output invalid pointer-to-member diagnostics. + +2003-05-05 Kriang Lerdsuwanakij + + * decl.c: Fix typos. + +2003-05-05 Kriang Lerdsuwanakij + + PR c++/4494 + * decl.c (start_function): Use same_type_p to check return type + of main. + +2003-05-03 Zack Weinberg + + PR c/10604 + * cp/typeck.c (build_x_compound_expr): No need to check + extra_warnings as well as warn_unused_value. + +2003-05-03 Kriang Lerdsuwanakij + + PR c++/9364, c++/10553, c++/10586 + * decl.c (make_typename_type): Don't crash on illegal code. + +2003-05-03 Nathan Sidwell + + * class.c (finish_struct): Use location_t and input_location + directly. + * decl.c (make_label_decl): Likewise. + (use_label): Likewise. + * decl2.c (warn_if_unknown_interface): Likewise. + (start_static_initialization_or_destruction): Likewise. + (generate_ctor_or_dtor_function): Likewise. + (finish_file): Likewise. + * error.c (print_instantiation_full_context): Likewise. + * init.c (create_temporary_var): Likewise. + * method.c (synthesize_method): Likewise. + * parser.c (cp_token): Likewise. + (cp_lexer_set_source_position_from_token): Likewise. + (cp_lexer_get_preprocessor_token): Likewise. + (cp_parser_statement): Likewise. + * pt.c (tsubst_friend_function): Likewise. + (instantiate_class_template): Likewise. + (tsubst_decl): Likewise. + (tsubst): Likewise. + (instantiate_decl): Likewise. + * semantics.c (begin_class_definition): Likewise. + (expand_body): Likewise. + +2003-05-01 Nathan Sidwell + + * class.c (finish_struct): Rename lineno to input_line. + * decl.c (push_binding_level, pop_binding_level, + suspend_binding_level, resume_binding_level, make_label_decl, + use_label, start_function): Likewise. + * decl2.c (warn_if_unknown_interface, + start_static_initialization_or_destruction, + generate_ctor_or_dtor_function, finish_file): Likewise. + * error.c (cp_line_of, print_instantiation_full_context, + print_instantiation_context): Likewise. + * except.c (check_handlers_1, check_handlers): Likewise. + * init.c (create_temporary_var): Likewise. + * method.c (use_thunk, synthesize_method): Likewise. + * parser.c (cp_lexer_set_source_position_from_token, + cp_lexer_get_preprocessor_token): Likewise. + * pt.c (push_tinst_level, pop_tinst_level, + tsubst_friend_function, instantiate_class_template, tsubst_decl, + tsubst, tsubst_expr, instantiate_decl): Likewise. + * semantics.c (genrtl_try_block, finish_label_stmt, + begin_class_definition, expand_body, + genrtl_finish_function): Likewise. + * tree.c (build_min_nt, build_min): Likewise. + +2003-05-01 Mark Mitchell + + * decl2.c (comdat_linkage): Don't externalize explicit + instantiations. + +2003-05-01 Kriang Lerdsuwanakij + + PR c++/10554 + * decl2.c (do_class_using_decl): Check if operand 0 of SCOPE_REF + is not NULL. + +2003-05-01 Steven Bosscher + + * cp-tree.h (struct lang_id2): Remove. Move fields from here... + (struct lang_identifier): ... to here. + (LANG_ID_FIELD): Remove. + (SET_LANG_ID): Remove. + (IDENTIFIER_LABEL_VALUE): Adjust for new lang_identifier. + (SET_IDENTIFIER_LABEL_VALUE): Likewise. + (IDENTIFIER_IMPLICIT_DECL): Likewise. + (SET_IDENTIFIERL_IMPLICIT_DECL): Likewise. + (IDENTIFIER_ERROR_LOCUS): Likewise. + (SET_IDENTIFIER_ERROR_LOCUS): Likewise. + +2003-05-01 Kriang Lerdsuwanakij + + PR c++/8772 + * pt.c (convert_template_argument): Correct diagnostic. + +2003-04-30 Kriang Lerdsuwanakij + + PR c++/9432, c++/9528 + * decl2.c (validate_nonmember_using_decl): Handle SCOPE_REF. + +2003-04-30 Garbiel Dos Reis + + * decl.c (check_previous_goto_1): Adjust prototype. + (check_previous_goto): Adjust use. + (check_switch_goto): Likewise. + (use_label): Adjust. + (check_previous_goto_1): Don't use pedwarn_with_file_and_line. + (struct named_label_use_list): Use location_t datatype. + +2003-04-29 Mark Mitchell + + PR c++/10551 + * pt.c (mark_decl_instantiated): Defer all explicit instantiations + that have not yet been written out. + +2003-04-29 Mark Mitchell + + PR c++/10549 + * class.c (layout_class_type): Mark overlong bitfields as having + the maximum size permitted by their type, after layout. + + PR c++/10527 + * error.c (dump_expr): Correctly handling of NEW_EXPR.4 + +2003-04-29 Kriang Lerdsuwanakij + + * call.c (build_operator_new_call): Fix typo. + * lang-options.h: Likewise. + +2003-04-29 Mark Mitchell + + PR c++/10515 + * cp-tree.h (lookup_field_1): Declare it. + * search.c (lookup_field_1): Make it public. + * decl.c (reshape_init): Handle designated initializers. + + * decl.c (maybe_commonize_var): Further tweak support for systems + without weak symbols. + +2003-04-27 Mark Mitchell + + * decl.c (maybe_commonize_var): Fix thinko in last patch. + +2003-04-27 Mark Mitchell + + PR c++/10506 + * method.c (use_thunk): Decrement immediate_size_expand. + + PR c++/10503 + * cp-tree.h (DECL_VAR_MARKED_P): New macro. + (DECL_MAYBE_TEMPLATE): Remove. + * class.c (fixed_type_or_null): Avoid infinite recursion. + + * decl.c (maybe_commonize_var): Make the code match the comments. + * pt.c (instantiate_decl): Move call to import_export_decl. + +2003-04-26 Mark Mitchell + + * decl2.c (finish_file): Fix merge botch. + +2003-04-25 Mark Mitchell + + * decl2.c (finish_file): Don't call import_export_decl for + functions that are not defined. + (handle_class_head): Robustify. + * pt.c (instantiate_decl): Do not call cp_finish_decl for + variables that are not defined. + +2003-04-24 Sylvain Pion + + * call.c (print_z_candidates): Fix off by one error. + +2003-04-24 Nathan Sidwell + + PR c++/10337 + * call.c (joust): Don't warn about conversion ops that are exact + or cv-conversions. Rearrange to avoid multiple type comparisons. + +2003-04-23 Mark Mitchell + + PR c++/10471 + * call.c (build_cxx_call): Robustify. + +2003-04-23 Neil Booth + + * Make-lang.in (lex.o): Remove mbchar.h. + * lex.c (MULTIBYTE_CHARS): Lose. + * parser.c (cp_lexer_get_preprocessor_token): CPP_OTHER handled + in c-lex.c. + +2003-04-23 Mark Mitchell + + PR c++/9847 + * cp-tree.h (duplicate_tag_error): Remove. + * class.c (duplicate_tag_error): Remove. + * semantics.c (begin_class_definition): Return immediately for a + duplicate class definition. + + PR c++/10451 + * decl.c (grokdeclarator): Correct logic for "mutable" errors. + +2003-04-22 Mark Mitchell + + PR c++/10446 + * search.c (lookup_fnfields_1): Handle empty slots in the method + vector. + + PR c++/10428 + * decl.c (check_elaborated_type_specifier): New function, split + out from ... + (xref_tag): ... here. Use the new function in more places. + + * rtti.c (throw_bad_typeid): Use build_cxx_call. + +2003-04-21 Mark Mitchell + + * call.c (build_over_call): Use build_cxx_call. + (build_cxx_call): New method, split out of build_over_call. + * cp-tree.h (language_function): Add can_throw. + (build_cxx_call): Declare it. + * decl.c (finish_function): If a function does not contain any + calls to functions that can throw an exception, indicate that + fact. + * decl2.c (mark_used): Do not defer the instantiation of + functions, if the current function does not throw. + * optimize.c (maybe_clone_body): Copy TREE_NOTHROW to the clones. + * pt.c (instantiate_decl): Make sure import_export_decl is called + before emitting things. + * rtti.c (throw_bad_cast): Use build_cxx_call. + (build_dynamic_cast_1): Likewise. + * typeck.c (build_function_call): Likewise. + +2003-04-21 Nathan Sidwell + + PR c++/9881 + * typeck.c (build_unary_op): Fold all COMPONENT_REF addr + expressions. Reverts my 2002-08-08 patch. + + * typeck.c (comp_ptr_ttypes_real): Swap final && operands for + cheaper early exit. + +2003-04-20 Nathan Sidwell + + * cp/decl2.c (start_static_storage_duration_function): Take count + arg, don't check if it wraps round. + (generate_ctor_or_dtor_function): Add locus arg, use it. + (generate_ctor_and_dtor_functions_for_priority): Data arg is a + locus. + (finish_file): Set line numbers to past EOF for synthesized + functions. + +2003-04-20 Nathan Sidwell + + PR c++/10405 + * search.c (lookup_field_1): Final scan goes backwards for + types, forwards for non-types. + +2003-04-17 Roger Sayle + + PR c/10375 + * decl.c (duplicate_decls): Preserve "const", "noreturn" and + "nothrow" function attributes. + +2003-04-17 Kriang Lerdsuwanakij + + PR c++/10347 + * pt.c (type_dependent_expression_p): Handle array new. + +2003-04-15 Mark Mitchell + + PR c++/10381 + * parser.c (cp_parser_primary_expression): Reorganize logic for + dealing with name lookup failures. + +2003-04-15 Jason Merrill + + * decl2.c (mark_used): Don't instantiate anything if + skip_evaluation. + +2003-04-14 Ziemowit Laski + + * tree.c (build_cplus_array_type_1): Do not call + uses_template_parms() on a NULL index_type. + +2003-04-13 Roger Sayle + + * decl.c (duplicate_decls): Preserve pure and malloc attributes. + +2003-04-12 Mark Mitchell + + PR c++/10300 + * init.c (build_new_1): Reorganize. + +2003-04-12 Zack Weinberg + + * class.c (initialize_array) + * decl.c (reshape_init) + * decl2.c (build_expr_from_tree) + * init.c (build_zero_init) + * pt.c (tsubst_copy, tsubst_copy_and_build) + * rtti.c (tinfo_base_init, generic_initializer, ptr_initializer) + (ptm_initializer, class_initializer, get_pseudo_ti_init) + * semantics.c (finish_compound_literal) + * typeck.c (build_ptrmemfunc1) + * typeck2.c (store_init_value, process_init_constructor) + (build_functional_cast): Use build_constructor. + +2003-04-12 Zack Weinberg + + * call.c (print_z_candidates): Use gcc_gettext_width, not + strlen, to determine how much padding to use. + +2003-04-10 Zack Weinberg + + * decl.c: Update all calls to shadow_warning. + +2003-04-10 Mark Mitchell + + * class.c (layout_class_type): Correct handling for overlong + bit-fields whose width is the same as an integer type. + +2003-04-06 Zack Weinberg + + * cp-tree.def: Make fourth element for all 'c' and 'x' nodes zero. + * cp-lang.c (cp_tree_size): New function. + (LANG_HOOKS_TREE_SIZE): Override. + + * cp-tree.h (SOURCE_LOCUS, SRCLOC_FILE, SRCLOC_LINE, struct + tree_srcloc, TS_CP_COMMON, TS_CP_SRCLOC): Kill. + (union lang_tree_node): Remove common and srcloc members. + (build_srcloc_here): Don't prototype. + * decl.c (cp_tree_node_structure): Kill SRCLOC case. + * pt.c (pending_templates): Correct comment. + * tree.c (build_srcloc, build_srcloc_here): Kill. + +2003-04-06 Zack Weinberg + + * call.c: Include intl.h. + (print_z_candidate): Always use inform; get rid of errfn + argument. Reorganize so that all the strings get picked up + by xgettext. Note obligation of caller to pass first argument + through gettext. + (print_z_candidates): Update to match. Indent second and + successive candidates by strlen() of translated message. + (joust): Restructure ambiguous-conversion pedwarn so that + translators see a complete sentence. Update calls to + print_z_candidate. + + * Make-lang.in (cp/call.o): Update dependencies. + +2003-04-05 Kaveh R. Ghazi + + * decl.c (set_current_binding_level): Delete, revert last change. + (current_binding_level): Modify to allow it as as lvalue. + +2003-04-04 Kaveh R. Ghazi + + * name-lookup.c (find_binding): Pass appropriate pointer type to + POP_TIMEVAR_AND_RETURN. + +2003-04-03 Kaveh R. Ghazi + + * Make-lang.in (cp-warn): Add $(STRICT_WARN). + * cp-tree.h: Don't insist on having GNUC. + +2003-04-03 Jason Merrill + + * cvt.c (ocp_convert): Only abort if we try to convert an object + of TREE_ADDRESSABLE type. + + * class.c (build_vtable): Set DECL_ALIGN here. + (get_vtable_decl): Not here. + (layout_vtable_decl): Or here. + (create_vtable_ptr): Or here. + (layout_class_type): Or here. + (check_bitfield_decl): Don't mess with field alignment. + +2003-04-03 Kaveh R. Ghazi + + * operators.def (DEF_SIMPLE_OPERATOR, DEF_ASSN_OPERATOR, + DEF_ASSN_OPERATOR): Delete spurious semi-colon. + * rtti.c (dfs_class_hint_mark): Likewise. + + * decl.c (push_local_name, push_class_level_binding, + maybe_inject_for_scope_var): Don't use POP_TIMEVAR_AND_RETURN in + functions returning void. + * decl2.c (add_using_namespace): Likewise. + + * decl.c (print_binding_level, print_other_binding_stack, + print_binding_stack): Cast argument of %p specifier to void*. + * ptree.c (cxx_print_decl): Likewise. + + * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK, + VAR_FUNCTION_OR_PARM_DECL_CHECK, + VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK, RECORD_OR_UNION_TYPE_CHECK, + BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK, LANG_TYPE_CLASS_CHECK, + LANG_TYPE_PTRMEM_CHECK, LANG_DECL_U2_CHECK): Add __extension__. + + * decl.c (set_current_binding_level): New macro. Use throughout + when setting the current binding level. + + * cp-tree.h (cp_lvalue_kind, base_access): Delete trailing comma + in enum. + * method.c (mangling_flags): Likewise. + + * cp-tree.h (lang_type_header): Add __extension__ and use + CHAR_BITFIELD for members. + +2003-04-02 Geoffrey Keating + + PR other/9274 + * mangle.c: Include gt-cp-mangle.h. + (subst_identifiers): Mark with GTY. + * config-lang.in (gtfiles): Add cp/mangle.c. + * Make-lang.in: (gt-cp-mangle.h): New rule. + (cp/mangle.o): Depends on gt-cp-mangle.h. + +2003-04-01 Andrew Pinski + + * config-lang.in (gtfiles): Add \$(srcdir)/cp/name-lookup.c + after \$(srcdir)/cp/name-lookup.h. + * name-lookup.c: (cxx_binding_make): Use ggc_alloc_clearedinstead + of ggc_alloc. Include gt-cp-name-lookup.h at the end of the file. + * Make-lang.in: (gt-cp-name-lookup.h): Is generated by gengtype. + (cp/name-lookup.o): Depends on gt-cp-name-lookup.h. + +2003-03-31 Jason Merrill + + PR java/10145 + * class.c (check_field_decl): Don't set DECL_ALIGN. + +2003-03-30 Mark Mitchell + + PR c++/7647 + * decl.c (grokdeclarator): Tidy, slightly. + * search.c (lookup_field_1): Add want_type parameter. + (lookup_field_r): Adjust call to lookup_field_1. + +2003-03-30 Gabriel Dos Reis + + * Make-lang.in (cp/name-lookup.o): Add more dependencies. + +2003-03-30 Gabriel Dos Reis + + * cp-tree.h (binding_for_name: Move to name-lookup.h Adjust + prototype. + (cxx_scope_find_binding_for_name): Likewise. + * decl.c (find_binding: Move to name-lookup.c. + (binding_for_name): Likewise. + (cxx_scope_find_binding_for_name): Likewise. + (BINDING_LEVEL): Remove. + (push_binding): Tidy. + (push_class_binding): Likewise. + (pop_binding): Likewise. + (poplevel): Likewise. + (poplevel_class): Likewise. + (set_identifier_type_value_with_scope): Likewise. + (push_overloaded_decl): Likewise. + (lookup_tag): Likewise. + (unqualified_namespace_lookup): Likewise. + (lookup_name_current_level): Likewise. + (maybe_inject_for_scope_var): Likewise. + (namespace_binding): Move to name-lookup.c. + (set_namespace_binding): Likewise. + * decl2.c (lookup_using_namespace): Tidy. + (qualified_lookup_using_namespace): Likewise. + (do_toplevel_using_decl): Likewise. + * name-lookup.c: Include "timevar.h" + * name-lookup.h (cxx_scope): Declare. + (struct cxx_binding): Lose member "has_level". Adjust "scope" + member declaration. + (BINDING_SCOPE): Adjust definition. + (BINDING_HAS_LEVEL_P): Remove. + +2003-03-30 Gabriel Dos Reis + + * name-lookup.c: New file. + * name-lookup.h: Likewise.. + * decl.c (push_binding): Adjust use cxx_binding_make. + (free_bindings): Move to name-lookup.c + (pop_binding): Use cxx_binding_free. + (binding_for_name): Tidy. + * cp-tree.h: Include "name-lookup.h" + (cxx_binding_make): Move to name-lookup.h + (cxx_binding_clear): Likewise. + (struct cxx_binding): Likewise. + (LOCAL_BINDING_P): Likewise. + (INHERITED_VALUE_BINDING_P): Likewise. + (BINDING_SCOPE): Likewise. + (BINDING_HAS_LEVEL_P): Likewise. + (BINDING_VALUE): Likewise. + (BINDING_TYPE): Likewise. + * config-lang.in (gtfiles): Add cp/name-lookup.h + * Make-lang.in (cp/name-lookup.o): New rule. + (CXX_OBJS): Add cp/name-lookup.o + (CXX_TREE_H): Add cp/name-lookup.h + +2003-03-28 Jason Merrill + + PR c++/10245 + * cvt.c (force_rvalue): New fn. + * call.c (build_conditional_expr): Use it. + * cp-tree.h: Declare it. + +2003-03-28 Mike Stump + + * error.c (dump_expr): Add 0x to printed hex numbers to make + output match source code better. + +2003-03-28 Mark Mitchell + + PR c++/10218 + * decl.c (grokfndecl): Return NULL_TREE for bogus out-of-class + definitions. + + * decl2.c (generate_ctor_or_dtor_function): Tolerate a + non-existant ssdf_decls array. + (finish_file): Call generator_ctor_or_dtor_function when there are + static constructors or destructors and no other static + initializations. + +2003-03-28 Nathan Sidwell + + PR c++/10047 + * decl2.c (finish_file): Don't warn about explicitly instantiated + inline decls. + +2003-03-27 Nathan Sidwell + + PR c++/10224 + * pt.c (lookup_template_class): Only check instantiated args if + they do not contain template parameters. + +2003-03-27 Nathan Sidwell + + PR c++/10158 + * parser.c (cp_parser_function_definition): Set + DECL_INITIALIZED_IN_CLASS for members. + * pt.c (instantiate_decl): Only reduce the template args for + friends that are not defined in class. + +2003-03-25 Jason Merrill + + * call.c (print_z_candidate): Change name of first arg to msgid. + (joust): Add comment for translators. + +2003-03-24 Nathan Sidwell + + PR c++/9898, PR c++/383, DR 322 + * pt.c (maybe_adjust_types_for_deduction) : Look + through reference types on both PARM and ARG. + +2003-03-24 Nathan Sidwell + + PR c++/10119 + * error.c (dump_expr) : Use dump_expr. + * pt.c (maybe_fold_nontype_args): New function. + (tsubst_copy) : Subst any template_id args. + : Break out folding code, call it. + (tsubst_copy_and_build) : Call + maybe_fold_nontype_args. + +2003-03-24 Nathan Sidwell + + PR c++/10026 + * decl2.c (arg_assoc_type) : Don't die. + +2003-03-23 Mark Mitchell + + PR c++/7086 + * typeck.c (cxx_mark_addressable): Adjust call to + gen_mem_addressof or put_var_into_stack. + +2003-03-22 Nathan Sidwell + + PR c++/9978, c++/9708 + * cp-tree.h (instantiate_template): Add tsubst_flags parameter. + * call.c (add_template_candidate_real): Adjust + instantiate_template call. + * class.c (resolve_address_of_overloaded_function): Likewise. + * decl.c (build_enumerator): Set TREE_CONSTANT. + * pt.c (check_instantiated_args): New. + (push_inline_template_parms_recursive): Set TREE_CONSTANT, + TREE_READONLY. + (build_template_parm_index): Copy TREE_CONSTANT, TREE_READONLY. + (reduce_template_parm_level): Likewise. + (process_template_parm): Likewise. + (check_explicit_specialization): Adjust instantiate_template call. + (convert_template_argument): Don't check non-type argument here. + (lookup_template_class): Check them here. + (tsubst_friend_function): Adjust instantiate_template call. + (instantiate_template): Add tsubst_flags parameter, use it. Check + instantiated args. + +2003-03-21 Zack Weinberg + + * decl.c: Update calls to shadow_warning. + +2003-03-21 Nathan Sidwell + + PR c++/9898 + * error.c (dump_decl) [CONST_DECL]: Print ''. + (dump_expr) [CONSTRUCTOR]: Print default ctor as a function call. + 2003-03-20 Mark Mitchell * cp/decl2.c (arg_assoc_class): Correct check for namespace-scope @@ -16,8 +778,8 @@ (init_rtti_processing): initialize unemitted_tinfo_decls varray. (get_tinfo_decls): push new tinfo decl on unemitted_tinfo_decls. (emit_tinfo_decl): remove unused second parameter, add assertion - that decl hasn't already been emitted. - + that decl hasn't already been emitted. + 2003-03-19 Nathanael Nerode * dump.c (cp_dump_tree), cp-tree.h (cp_dump_tree): Change return @@ -41,7 +803,7 @@ 2003-03-17 Jason Merrill PR c++/10091 - * typeck.c (build_class_member_access_expr): Compare + * typeck.c (build_class_member_access_expr): Compare TYPE_MAIN_VARIANTs. 2003-03-17 Mark Mitchell @@ -487,14 +1249,14 @@ 2003-03-04 Gabriel Dos Reis - * cp-tree.h (cxx_saved_binding): Declare. - (struct saved_scope): Adjust type of field 'old_binding'. - * decl.c (cxx_saved_binding_make): New macro. - (struct cxx_saved_binding): Define. - (store_bindings): Adjust prototype. Use cxx_saved_binding to save - C++ bindings. - (maybe_push_to_top_level): Adjust local variable type. - (pop_from_top_level): Likewise. + * cp-tree.h (cxx_saved_binding): Declare. + (struct saved_scope): Adjust type of field 'old_binding'. + * decl.c (cxx_saved_binding_make): New macro. + (struct cxx_saved_binding): Define. + (store_bindings): Adjust prototype. Use cxx_saved_binding to save + C++ bindings. + (maybe_push_to_top_level): Adjust local variable type. + (pop_from_top_level): Likewise. 2003-03-04 Tom Tromey @@ -593,9 +1355,9 @@ 2003-02-28 Aldy Hernandez - * parser.c (cp_parser_init_declarator): Revert opaque - vector_opaque_p change. - Do not include target.h. + * parser.c (cp_parser_init_declarator): Revert opaque + vector_opaque_p change. + Do not include target.h. 2003-02-28 Mark Mitchell @@ -611,10 +1373,10 @@ 2003-02-26 Devang Patel - * decl.c (finish_enum): Merge two 'for' loops. Copy value node if required. - Postpone enum setting for template decls. - (build_enumerator): Delay copying value node until finish_enum (). Remove - #if 0'ed code. + * decl.c (finish_enum): Merge two 'for' loops. Copy value node if + required. Postpone enum setting for template decls. + (build_enumerator): Delay copying value node until finish_enum + (). Remove #if 0'ed code. * pt.c (tsubst_enum): Set TREE_TYPE and copy value node. (tsubst_copy): Add check for enum type. @@ -899,7 +1661,7 @@ 2003-02-14 Andrew Pinski - * decl.c: (define_label): Fix warning for return 0 instead of NULL. + * decl.c: (define_label): Fix warning for return 0 instead of NULL. 2003-02-13 Gabriel Dos Reis @@ -1103,7 +1865,7 @@ 2003-01-29 Fariborz Jahanian - * pt.c (last_pending_template) Declare GTY(). + * pt.c (last_pending_template) Declare GTY(). 2003-01-29 Kriang Lerdsuwanakij @@ -1228,7 +1990,7 @@ PR c++/9285 PR c++/9294 * parser.c (cp_parser_simple_declaration): Return quickly when - encountering errors. + encountering errors. 2003-01-21 Kaveh R. Ghazi @@ -1502,10 +2264,10 @@ 2003-01-09 Nathanael Nerode - * cfns.gperf: ANSIfy function declarations. - * cfns.h: Regenerate. - * cp-tree.h: ANSIfy function declarations. - * parser.c: ANSIfy function declarations & definitions. + * cfns.gperf: ANSIfy function declarations. + * cfns.h: Regenerate. + * cp-tree.h: ANSIfy function declarations. + * parser.c: ANSIfy function declarations & definitions. * decl.c (bad_specifiers): Fix parameter order error I introduced. @@ -3628,7 +4390,7 @@ 2002-08-11 Gabriel Dos Reis - * decl.c (duplicate_decls): Replace DECL_SOURCE_FILE + + * decl.c (duplicate_decls): Replace DECL_SOURCE_FILE DECL_SOURCE_LINE with DECL_SOURCE_LOCATION. * optimize.c (maybe_clone_body): Likewise. * pt.c (tsubst_enum): Likewise. @@ -6671,7 +7433,7 @@ * decl.c: Include c-common.h. (shadow_warning): Move to c-common.c. -Wed Dec 5 17:00:49 2001 Richard Kenner +2001-12-05 Richard Kenner * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE. @@ -6788,7 +7550,7 @@ Wed Dec 5 17:00:49 2001 Richard Kenner * Make-lang.in (c++.generated-manpages): New dummy target. -Tue Nov 27 09:03:47 2001 Richard Kenner +2001-11-27 Richard Kenner * Make-lang.in (cp-lang.o): Depends on c-common.h. * cp-lang.c (c-common.h): Include. @@ -7052,7 +7814,7 @@ Tue Nov 27 09:03:47 2001 Richard Kenner * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to pop_everything. -Tue Oct 23 14:00:20 2001 Richard Kenner +2001-10-23 Richard Kenner * cp-lang.c (cxx_get_alias_set): New function. Point LANG_HOOKS_GET_ALIAS_SET to it. @@ -7324,7 +8086,7 @@ Tue Oct 23 14:00:20 2001 Richard Kenner instead of deleted print_* routines. Handle %C, %L, %O, %Q also. (init_error): Adjust to match. -Sat Sep 22 09:15:31 2001 Richard Kenner +2001-09-22 Richard Kenner * Make-lang.in (CXX_C_OBJS): Add attribs.o. @@ -7338,7 +8100,7 @@ Sat Sep 22 09:15:31 2001 Richard Kenner * decl2.c (mark_vtable_entries): Mark FDESC_EXPR. * typeck.c (get_member_function_from_ptrfunc): Mind descriptors. -Fri Sep 21 08:16:19 2001 J"orn Rennecke +2001-09-21 J"orn Rennecke * decl.c (grokdeclarator): Use C syntax for attr_flags declaration. @@ -8552,7 +9314,7 @@ Fri Sep 21 08:16:19 2001 J"orn Rennecke * gxxint.texi: Remove. * Make-lang.in: Remove all traces of gxxint.texi. -Mon Apr 30 16:14:10 2001 Mark P Mitchell +2001-04-30 Mark P Mitchell * decl2.c (start_static_initialization_or_destruction): Correct logic to handle the -fno-use-cxa-atexit case. @@ -8842,7 +9604,7 @@ Mon Apr 30 16:14:10 2001 Mark P Mitchell * lang-specs.h: Add __DEPRECATED. -Thu Apr 5 16:54:29 2001 J"orn Rennecke +2001-04-05 J"orn Rennecke * search.c (get_dynamic_cast_base_type): When building a new constant, set its type to ssizetype. @@ -9743,7 +10505,7 @@ Thu Apr 5 16:54:29 2001 J"orn Rennecke * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES. -Sun Feb 4 15:52:44 2001 Richard Kenner +2001-02-04 Richard Kenner * decl.c (pushdecl): Call abort instead of fatal. * except.c (decl_is_java_type): Call fatal_error instead of fatal. @@ -10698,7 +11460,7 @@ Sun Feb 4 15:52:44 2001 Richard Kenner Cope when there is no partial instantiation of a template template member. -Thu Nov 23 02:16:47 2000 J"orn Rennecke +2000-11-23 J"orn Rennecke * Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H). @@ -11029,7 +11791,7 @@ Thu Nov 23 02:16:47 2000 J"orn Rennecke * typeck2.c (abstract_virtuals_error): Use "because" instead of "since" in error message. -Fri Oct 20 13:54:59 2000 Richard Kenner +2000-10-20 Richard Kenner * typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE. @@ -11098,7 +11860,7 @@ Fri Oct 20 13:54:59 2000 Richard Kenner * dump.c (dequeue_and_dump): Dump TREE_USED. -Tue Oct 17 20:19:06 2000 Brad Lucier +2000-10-17 Brad Lucier * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int). @@ -11336,7 +12098,7 @@ Tue Oct 17 20:19:06 2000 Brad Lucier * lex.c (reswords): Add _Complex. -Thu Sep 14 12:10:45 2000 Richard Kenner +2000-09-14 Richard Kenner * Make-lang.in (cplib2.txt): Depend on cp/Makefile. @@ -12350,7 +13112,7 @@ Thu Sep 14 12:10:45 2000 Richard Kenner rest_of_decl_compilation, for local guards. * lex.c (do_identifier): Remove unused variable. -Wed Jul 26 15:05:51 CEST 2000 Marc Espie +2000-07-26 Marc Espie * parse.y: Add missing ';'. @@ -13375,7 +14137,7 @@ Wed Jul 26 15:05:51 CEST 2000 Marc Espie * cp-tree.h (struct lang_type): Add user_align member. (CLASSTYPE_USER_ALIGN): Define. -Tue Jun 13 15:48:03 2000 Maciej W. Rozycki +2000-06-13 Maciej W. Rozycki * Make-lang.in (c++.install-common): Install g++-cross in $(gcc_tooldir)/bin as g++ and c++; g++ in $(bindir) as @@ -13551,7 +14313,7 @@ Tue Jun 13 15:48:03 2000 Maciej W. Rozycki Avoid unnecessary searching. (__dynamic_cast): Adjust for __dyncast_result::whole_details. -Mon Jun 5 06:48:55 2000 Richard Kenner +2000-06-05 Richard Kenner * decl.c (init_decl_processing): Don't call record_component_aliases. * tree.c (build_cplus_array_type_1): Likewise. @@ -13692,7 +14454,7 @@ Mon Jun 5 06:48:55 2000 Richard Kenner * init.c (resolve_offset_ref): Remove check for TREE_ADDRESSABLE on FIELD_DECLs. -Wed May 31 14:09:00 2000 Richard Kenner +2000-05-31 Richard Kenner * cp-tree.h (c_get_alias_set): Deleted. * Makefile.in (decl.o): Include ../expr.h. @@ -13860,7 +14622,7 @@ Wed May 31 14:09:00 2000 Richard Kenner * Make-lang.in (cplib2.ready): Eradicate. -Sat May 27 11:25:46 2000 Richard Kenner +2000-05-27 Richard Kenner * method.c (mangle_expression): Use TREE_CODE_LENGTH. * tree.c (break_out_calls, build_min_nt): Use TREE_CODE_LENGTH. @@ -14018,7 +14780,7 @@ Sat May 27 11:25:46 2000 Richard Kenner * init.c (sort_member_init): Fix typo in error message generation code. -Mon May 15 11:46:29 2000 Donald Lindsay +2000-05-15 Donald Lindsay * semantics.c (begin_class_definition): make the packed attribute be sensitive to the "-fpack-struct" command line flag @@ -14238,7 +15000,7 @@ Mon May 15 11:46:29 2000 Donald Lindsay reference. * typeck.c (build_component_ref): Fix formatting. -Wed May 17 17:27:44 2000 Andrew Cagney +2000-05-17 Andrew Cagney * decl.c (pop_label): Replace warn_unused with warn_unused_label. * typeck.c (build_x_compound_expr): Replace warn_unused with @@ -14660,7 +15422,7 @@ Wed May 17 17:27:44 2000 Andrew Cagney * decl2.c (grokfield): Issue error on illegal data member declaration. -Mon Apr 17 17:11:16 2000 Mark P Mitchell +2000-04-17 Mark P Mitchell * method.c (make_thunk): Set DECL_CONTEXT for a THUNK_DECL. @@ -14697,7 +15459,7 @@ Mon Apr 17 17:11:16 2000 Mark P Mitchell Use int_size_in_bytes. (emit_thunk): Handle vcall offset thunks. -Sat Apr 15 16:00:01 2000 Richard Kenner +2000-04-15 Richard Kenner * decl2.c (parse_time, varconst_time): Delete declarations. (finish_file): Delete LINENO declaration. @@ -15385,7 +16147,7 @@ Wed Apr 5 15:12:18 MET DST 2000 Jan Hubicka * tinfo.cc (__dynamic_cast): Look for vtable_prefix at appropriate negative offset. -Sun Mar 26 20:15:26 2000 Richard Kenner +2000-03-26 Richard Kenner * class.c (check_field_decl): Fix typo. (build_vtbl_or_vbase_field): Don't clear DECL_SAVED_INSNS. @@ -15420,7 +16182,7 @@ Sun Mar 26 20:15:26 2000 Richard Kenner * dump.c (dequeue_and_dump): Dump DECL_TEMPLATE_RESULT. -Sat Mar 25 09:12:10 2000 Richard Kenner +2000-03-25 Richard Kenner * class.c (build_vbase_pointer_fields): layout_field now place_field. (get_vfield_offset): Use byte_position. @@ -15659,7 +16421,7 @@ Sat Mar 25 09:12:10 2000 Richard Kenner (note_name_declared_in_class): Use OVL_CURRENT to get at a potential overload. -Fri Mar 17 08:09:14 2000 Richard Kenner +2000-03-17 Richard Kenner * class.c (build_vbase_path): Use integer_zerop. (build_vtable_entry): Use tree_low_cst. @@ -15938,7 +16700,7 @@ Fri Mar 17 08:09:14 2000 Richard Kenner * typeck.c (dubious_conversion_warnings): Look through REFERENCE_TYPE. -Mon Mar 6 08:46:47 2000 Richard Kenner +2000-03-06 Richard Kenner * class.c (dfs_modify_vtables): I is now unsigned. (check_bitfield_decl): Use tree_int_cst_sgn and compare_tree_int. @@ -16083,7 +16845,7 @@ Mon Mar 6 08:46:47 2000 Richard Kenner push_eh_cleanup() when handling a Java-style "catch". Pass Java class reference to build_catch_block. -Thu Mar 2 13:32:01 2000 Richard Kenner +2000-03-02 Richard Kenner * typeck.c (comptypes): Treat sizetype like its language equivalent. @@ -16112,7 +16874,7 @@ Thu Mar 2 13:32:01 2000 Richard Kenner * class.c (resolve_address_of_overloaded_function): Pass desired return type to fn_type_unification. -Mon Feb 28 08:15:23 2000 Richard Kenner +2000-02-28 Richard Kenner * class.c (build_vtbl_or_vbase_field, check_methods): Don't clear DECL_FIELD_SIZE. @@ -16130,7 +16892,7 @@ Mon Feb 28 08:15:23 2000 Richard Kenner (friend_accessible_p): Lose TYPE parm. (accessible_p): Adjust. -Sun Feb 27 16:40:33 2000 Richard Kenner +2000-02-27 Richard Kenner * class.c (dfs_build_vtable_offset_vtbl_entries): Don't use size_binop on things that are not sizes; ssize_binop deleted. @@ -16217,7 +16979,7 @@ Sun Feb 27 16:40:33 2000 Richard Kenner * lex.c (check_newline): Tweak filename/lineno setting. * semantics.c (begin_while_stmt): Fix typo in comment. -Sat Feb 26 19:50:23 2000 Richard Kenner +2000-02-26 Richard Kenner * lang-options.h (-fmessage-length=): Add missing option. @@ -16227,7 +16989,7 @@ Sat Feb 26 19:50:23 2000 Richard Kenner * Make-lang.in: Delete refs to LIBGCC2_DEPS. -Fri Feb 25 14:52:33 2000 Jim Wilson +2000-02-25 Jim Wilson * optimize.c (expand_call_inline): Emit the return label before evaluating the return value. @@ -16356,7 +17118,7 @@ Fri Feb 25 14:52:33 2000 Jim Wilson * pt.c (tsubst_decl): Fix formatting. -Sat Feb 19 18:43:13 2000 Richard Kenner +2000-02-19 Richard Kenner * class.c (build_primary_vtable, layout_vtable_decl): Likewise. (avoid_overlap, build_base_field): Likewise. @@ -16627,7 +17389,7 @@ Sat Feb 19 18:43:13 2000 Richard Kenner * parse.y (simple_stmt): Allow :: token in asm parameter list. * parse.c: Rebuilt. -Mon Jan 31 15:35:29 2000 Jim Wilson +2000-01-31 Jim Wilson * class.c (build_vtbl_or_vbase_field): New parameter fcontext. Store it in DECL_FCONTEXT. @@ -16839,12 +17601,12 @@ Mon Jan 31 15:35:29 2000 Jim Wilson (build_vtbl_initializer): Likewise. * decl2.c (finish_file): Likewise. -Thu Jan 27 20:53:36 2000 Jim Wilson +2000-01-27 Jim Wilson * optimize.c (remap_decl): Add walk_tree calls for DECL_SIZE (t) and TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (t))). -Thu Jan 27 13:54:12 2000 Mike Stump +2000-01-27 Mike Stump * decl.c (pushdecl): Fix up shadow warnings with respect to implicit for scopes. @@ -16853,7 +17615,7 @@ Thu Jan 27 13:54:12 2000 Mike Stump * pt.c (unify): Use fold, not maybe_fold_nontype_arg. -Wed Jan 26 22:19:14 2000 J"orn Rennecke +2000-01-26 J"orn Rennecke * optimize.c (calls_setjmp_r): Supply new argument to special_function_p.