X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fcp%2FChangeLog;h=636fb21bc77604dfb9b917afbc2520bc9c5be132;hb=40969701f02a48af3c28325b0ffc9d1964ec645d;hp=bdbdd36389b2ed69510bb7636a53fc46b72877df;hpb=16bf97ca2a456f0bc75afbcd7ab2c547caf977a0;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index bdbdd36389b..636fb21bc77 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,531 @@ +2004-02-05 Mark Mitchell + + PR c++/13714 + * typeck.c (lookup_destructor): Tweak error message. + +2004-02-05 Jan Hubicka + + * tree.c (cp_cannot_inline_tree_fn): Allow inlining of comdat + functions. + +2003-02-05 Giovanni Bajo + + PR c++/14008 + * parser.c (cp_parser_diagnose_invalid_typename): Removed parsing + code, only emits the diagnostic now. Added lookup of the identifier + and support for qualified ids. + (cp_parser_parse_and_diagnose_invalid_type_name): New function. + Parse an (invalid) type name as id-expression within a declarator. + (cp_parser_simple_declaration): Use it. + (cp_parser_member_declaration): Likewise. + (cp_parser_make_typename_type): New function. Handle errors through + cp_parser_diagnose_invalid_typename. + (cp_parser_elaborated_type_specifier): Use it. + +2004-02-04 Mark Mitchell + + PR c++/13932 + * call.c (convert_like_real): Use "converting" rather than + "argument" as the descriptive keyword to + dubious_conversion_warnings. + * typeck.c (convert_for_assignment): Do not call + dubious_conversion_warnings. + +2004-02-04 Giovanni Bajo + + PR c++/13086 + * init.c (build_delete): Emit a more informative error message in + case of an incomplete type, and on the correct source line. + +2004-02-04 Kazu Hirata + + * error.c, search.c: Update copyright. + +2004-02-04 Mark Mitchell + + PR c++/9941 + * rtti.c (tinfo_base_init): Use import_export_tinfo to decide the + linkage for the typeinfo name string. + +2004-02-04 Mark Mitchell + + PR c++/13969 + * cp-tree.h (fold_non_dependent_expr): New function. + * parser.c (cp_parser_fold_non_dependent_expr): Remove. + (cp_parser_template_argument): Use fold_non_dependent_expr. + (cp_parser_direct_declarator): Likewise. + * pt.c (fold_non_dependent_expr): New function. + (convert_nontype_argument): Use it. + (tsubst_qualified_id): Simplify. + (tsubst_copy_and_build): Likewise. + +2004-02-04 Mark Mitchell + + * decl.c (cxx_push_function_context): Do not set + current_function_is_thunk. + * method.c (use_thunk): Set CALL_FROM_THUNK on the call to the + actual function. + +2003-02-04 Giovanni Bajo + + PR c++/13997 + * pt.c (more_specialized_class): Increase processing_template_decl + while partial ordering. + +2004-02-03 Mark Mitchell + + PR c++/13925 + * decl.c (start_function): Do not call pushdecl for any + instantiation or specialization of a primary template. + +2004-02-03 Mark Mitchell + + PR c++/13950 + * parser.c (cp_parser_class_name): Robustify. + + PR c++/13970 + * parser.c (cp_parser_cache_group): Do not consume the EOF token. + + PR c++/14002 + * semantics.c (finish_id_expression): Do not return an + IDENTIFIER_NODE when lookup finds a PARM_DECL. + +2004-02-03 Mark Mitchell + + PR c++/13978 + * pt.c (build_non_dependent_expr): Do not build + NON_DEPENDENT_EXPRs for FUNCTION_DECLs or TEMPLATE_DECLs. + + PR c++/13968 + * semantics.c (finish_id_expression): Do not return an + IDENTIFIER_NODE when lookup finds a VAR_DECL. + + PR c++/13975 + * parser.c (cp_parser_simple_declaration): When skipping to the + end of the statement swallow the terminating semicolon. + +2004-02-02 Mark Mitchell + + PR c++/13113 + * init.c (build_offset_ref): Improve error recovery for invalid + uses of non-static member functions. + + PR c++/13854 + * cp-tree.h (cp_build_type_attribute_variant): New function. + * class.c (build_clone): Use cp_build_type_attribute_variant. + * decl.c (duplicate_decls): Likewise. + * pt.c (copy_default_args_to_explicit_spec): Likewise. + (tsubst_function_type): Likewise. + * tree.c (build_exception_variant): Check attributes before + concluding that two types are the same. + (cp_build_type-attribute_variant): New method. + * typeck.c (merge_types): Use cp_build_type_attribute_variant. + + PR c++/13907 + * call.c (convert_class_to_reference): Keep better track of + pedantically invalid user-defined conversions. + +2004-02-01 Giovanni Bajo + + PR c++/13957 + * pt.c (tsubst_qualified_id): Improved error message when a type + is expected but not found. + +2004-01-31 Kazu Hirata + + * class.c: Fix comment typos. + * decl.c: Likewise. + * error.c: Likewise. + * parser.c: Likewise. + * pt.c: Likewise. + * search.c: Likewise. + * typeck.c: Likewise. + +2004-01-30 Richard Henderson + + PR c++/13693 + * method.c (use_thunk): Don't force_target_expr for void thunks. + * tree.c (build_target_expr_with_type): Assert non-void type. + (force_target_expr): Likewise. + +2004-01-30 Michael Matz + + * parser.c (cp_parser_labeled_statement): Accept case ranges. + +2004-01-30 Giovanni Bajo + + DR206 + PR c++/13813 + * decl.c (grokdeclarator): Check immediatly type completeness for + non-dependent types. + +2004-01-30 Giovanni Bajo + + PR c++/13683 + * call.c (convert_arg_to_ellipsis): Don't emit a warning if within + a sizeof expression.block + +2004-01-29 Mark Mitchell + + PR c++/13883 + * mangle.c (write_encoding): Correct encoding of member template + constructors. + +2004-01-28 Giovanni Bajo + + * parser.c (cp_parser_template_id): Parse tentatively `[:' after a + template name as it was `<::' (digraph typo). + (cp_parser_nth_token_starts_template_argument_list_p): New function. + (cp_parser_id_expression): Use it. + (cp_parser_nested_name_specifier_opt): Likewise. + (cp_parser_template_name): Likewise. + (cp_parser_class_name): Likewise. + (cp_lexer_get_preprocessor_token): Use c_lex_with_flags. + +2004-01-28 Mark Mitchell + + PR c++/13791 + * typeck.c (merge_types): Do not merge attributes into + TYPENAME_TYPEs. + + PR c++/13736 + * parser.c (cp_parser_direct_declarator): Do not prevent + backtracking inside a parenthesized declarator. + (cp_parser_parameter_declaration): Fix typo in comment. + +2004-01-28 Jan Hubicka + + * semantics.c (expand_body) Do emit_associated_thunks before + expansion. + +2004-01-27 Devang Patel + + * name-lookup.c: Include "debug.h" + (do_namespace_alias): Invoke debug_hooks to emit debug info + for namespace alias. + (do_local_using_decl): Invoke debug_hooks to emit debug info + for using decl. + (do_class_using_decl): Same. + (do_toplevel_using_decl): Same. + (do_using_directive): Same. + (cp_emit_debug_info_for_using): New function. + * Make-lang.in (cp/parser.o): Depend on debug.h + (cp/name-lookup.o): Same. + +2004-01-26 Kaveh R. Ghazi + + * cp-tree.h (language_function, lang_type_header): Use + BOOL_BITFIELD. + * name-lookup.h (cp_binding_level): Likewise. + +2004-01-26 Mark Mitchell + + PR c++/13663 + * semantics.c (finish_for_expr): Check for unresolved overloaded + functions. + + * class.c (add_method): Just check processing_template_decl to + determine whether or not we are within a template. + * decl2.c (maybe_retrofit_in_chrg): Likewise. + * init.c (decl_constant_value): Check the type of the declaration, + not TREE_READONLY. + * name-lookup.c (maybe_push_to_top_level): Rename to ... + (push_to_top_level): ... this. + * name-lookup.h (maybe_push_to_top_level): Do not declare it. + * pt.c (push_template_decl_real): Reorder condition for speed. + (convert_template_argument): Use dependency-checking functions in + place of uses_template_parms. + (lookup_template_class): Avoid calling uses_template_parms more + than once. + (uses_template_parms): Reimplement, using dependency-checking + functions. + (instantiate_class_template): Use push_to_top_level, not + maybe_push_to_top_level. + (type_unification_real): Simplify. + (type_dependent_expression_p): Handle OFFSET_REFs and + TEMPLATE_DECLs. + (any_dependent_template_arguments_p): Handle multiple levels of + template argument. + * semantics.c (expand_or_defer_fn): Do not check + uses_template_parms for template instantiations. + * typeck.c (comptypes): Avoid calling cp_type_quals. + +2004-01-25 Mark Mitchell + + PR c++/13833 + * call.c (build_over_call): Do not convert arguments when + processing a template. + * pt.c (build_non_dependent_expr): Do not build a + NON_DEPENDENT_EXPR for arithmetic constants. + +2004-01-25 Giovanni Bajo + + PR c++/13810 + * parser.c (cp_parser_type_parameter): When cp_parser_id_expression + returns a TYPE_DECL. no further lookup is required. + * semantics.c (check_template_template_default_arg): A TYPE_DECL + is invalid. Rework to give better diagnostics. + +2004-01-25 Kriang Lerdsuwanakij + + PR c++/13797 + * pt.c (instantiate_class_template): Add an error_mark_node + check. + (tsubst_decl) : Likewise. + +2004-01-23 Andrew Pinski + + PR c++/13701 + * decl.c (finish_function): Move the call to + finish_fname_decls below the call to + finish_eh_spec_block. + +2004-01-21 Kazu Hirata + + * optimize.c, typeck2.c: Update copyright. + +2004-01-21 Kazu Hirata + + * Make-lang.in, call.c, class.c, decl2.c, except.c, expr.c, + init.c, mangle.c, typeck.c: Update copyright. + +2004-01-21 Zdenek Dvorak + + * parser.c (cp_parser_class_specifier): Prevent garbage collection. + +2004-01-20 Kelley Cook + + * Make-lang.in: Replace $(docdir) with doc. + (c++.info, c++.srcinfo): Dummy entry. + (c++.man, c++.srcman): New rules. + (c++.install-man): Revamp rule. + +2004-01-20 Kelley Cook + + * Make-lang.in (CXX_INSTALL_NAME, GXX_INSTALL_NAME, + CXX_TARGET_INSTALL_NAME, GXX_TARGET_INSTALL_NAME): Define via a + immediate $(shell) instead of deferred backquote. + +2004-01-19 Mark Mitchell + + PR c++/13651 + * parser.c (cp_parser_postfix_expression): When encountering + incomplete type on left-hand side of "->" or ".", treat the entire + expression as erroneous. + + PR c++/13592 + * call.c (build_field_call): Remove. + (n_build_method_call): Likewise. + (build_method_call): Likewise. + (build_new_method_call): Do not call build_field_call. + * class.c (n_build_method_call): Remove. + (print_class_statistics): Do not print it. + * cp-tree.h (build_method_call): Remove declaration. + (finish_object_call_expr): Likewise. + (build_new_1): Do not use build_method_call. + * parser.c (cp_parser_postfix_expression): Use finish_call_expr + when the function appearing on the right-hand-side of "." or "->" + is not actually a function. + * pt.c (tsubst_copy_and_build): Likewise. + * semantics.c (finish_object_call_expr): Remove. + +2004-01-18 Mark Mitchell + + PR c++/13710 + * pt.c (tsubst): Use finish_typeof. + +2004-01-16 Jason Merrill + + PR c++/11725 + * except.c (build_throw): In a template, set + current_function_returns_abnormally. + +2004-01-17 Fred Fish + + PR c++/11895 + * decl.c (reshape_init): Handle VECTOR_TYPE like ARRAY_TYPE, + except don't call array_type_nelts() with a VECTOR_TYPE. + +2004-01-16 Jan Hubicka + + * mangle.c (write_mangled_name): Remove inline modifier. + +2004-01-16 Mark Mitchell + + PR c++/13574 + * decl.c (compute_array_index_type): Fix grammar in comment. + * init.c (build_zero_init): Handle zero-sized arrays correctly. + + PR c++/13178 + * call.c (name_as_c_string): Print conversion operator names + correctly. + + PR c++/13478 + * call.c (initialize_reference): Pass -1 for inner parameter to + convert_like_real. + +2004-01-15 Giovanni Bajo + + PR c++/13407 + * parser.c (cp_parser_base_specifier): Check for an invalid + keyword `typename' and emit an user-friendly error message. + +2004-01-15 Geoffrey Keating + + PR pch/13361 + * cp/lex.c (handle_pragma_interface): Duplicate string from tree. + (handle_pragma_implementation): Likewise. + +2004-01-15 Giovanni Bajo + + PR c++/9259 + * typeck.c (build_class_member_access_expr): Allow to access members + of the currently open class. + (finish_class_member_access_expr): Likewise. + +2004-01-15 Alexandre Oliva + + PR c++/13659 + * name-lookup.c (validate_nonmember_using_decl): Take scope and + name by value, instead of computing them. + (do_local_using_decl, do_toplevel_using_decl): Add scope and name + arguments. Pass them to validate_nonmember_using_decl. + * name-lookup.h (do_local_using_decl): Adjust. + (do_toplevel_using_decl): Likewise. + * parser.c (cp_parser_using_declaration): Likewise. + * pt.c (tsubst_expr): Likewise. + +2004-01-15 Alexandre Oliva + + PR c++/13594 + PR c++/13658 + * name-lookup.c (qualified_lookup_using_namespace): Search + strongly-associated namespaces first, and only then try other + namespaces. + +2004-01-15 Kelley Cook + + * Make-lang.in (c++.srcextra): Dummy entry. + +2004-01-15 Giovanni Bajo + + PR c++/8856 + * parser.c (cp_parser_template_name): Don't try to parse a + conversion-function-id, as it cannot be a template-name. + (cp_parser_simple_type_specifier): Check for invalid template-ids + even after a built-in type. + +2004-01-14 Jan Hubicka + + PR c++/12850 + * pt.c (instantiate_decl): Do not increase function_depth. + +2004-01-14 Danny Smith + + PR c++/9021 + PR c++/11005 + * parser.c (cp_parser_elaborated_type_specifier): Warn about + attributes and discard. + * decl.c (xref_tag): Don't overwite existing attributes with + NULL_TREE. + +2004-01-14 Giovanni Bajo + + PR c++/12335 + * parser.c (cp_parser_lookup_name): Return error_mark_node if there + is no destructor while looking up a BIT_NOT_EXPR. + +2004-01-13 Ian Lance Taylor + + * cxxfilt.c: Remove unused file. + +2004-01-14 Jan Hubicka + + Partial fix to PR c++/12850 + * decl2.c (mark_used): Do not proactively instantiate templates + when compiling in unit-at-a-time or not optimizing. + * optimize.c (maybe_clone_body): Do not increase function depth. + +2004-01-13 Giovanni Bajo + + PR c++/13474 + * pt.c (tsubst) : Remove obsolete array index tweaking. + +2003-01-12 Steven Bosscher + + PR c++/13558 + * parser.c (cp_parser_member_declaration): Any non-type is also + not a class or a function. + +2004-01-12 Jason Merrill + + PR c++/12815 + * class.c (build_base_path): Do not mark vtable references as + TREE_CONSTANT. + (build_vtbl_ref_1): Likewise. + +2004-01-12 Richard Henderson + + PR opt/10776 + * typeck2.c (split_nonconstant_init_1, split_nonconstant_init): New. + (store_init_value): Use it. + * decl.c (check_initializer): Expect full initialization code + from store_init_value. + * init.c (expand_aggr_init_1): Likewise. + * decl2.c (maybe_emit_vtables): Abort if runtime init needed. + +2004-01-12 Mark Mitchell + + * class.c (layout_class_type): For non-POD class types, also copy + the DECL_SIZE and DECL_MODE of fields to the base class type. + +2004-01-12 Kriang Lerdsuwanakij + + PR c++/13289 + * pt.c (instantiate_decl): Set DECL_TEMPLATE_INSTANTIATED before + calling regenerate_decl_from_template. + +2004-01-12 Scott Brumbaugh + + PR c++/4100 + * parser.c (cp_parser_decl_specifier_seq): Add check for a friend + decl-specifier occurring along with a class definition. + +2004-01-12 Ian Lance Taylor + + * parser.c (cp_parser_decl_specifier_seq): Add parenthetical + clauses to comments describing declares_class_or_enum. + (cp_parser_type_specifier): Set *declares_class_or_enum to 0, not + false. + +2004-01-12 Jan Hubicka + + * pt.c (for_each_template_parm): Do not check for duplicates. + (for_each_template_parm): Use walk_tree duplicate checking code. + +2004-01-11 Ian Lance Taylor + + PR c++/3478 + * parser.c (cp_parser_decl_specifier_seq): If the first decl_spec + is error_mark_node, don't add any more decl_specs. + (cp_parser_init_declarator): After committing to a declaration, if + the decl_specifiers start with error_mark_node, issue an error and + change the type to "int". + +2004-01-09 Nathanael Nerode + + PR bootstrap/7817 + * Make-lang.in: Copy gcc.1 to g++.1 rather than using .so. + +2004-01-10 Giovanni Bajo + + DR 337 + PR c++/9256 + * pt.c (tsubst): Substitution must fail if we are attempting to + create an array with element type that is an abstract class type. + * decl.c (cp_finish_decl): Strip pointers and array types recursively + before calling abstract_virtuals_error. + 2004-01-09 Alexandre Oliva * name-lookup.c (qualified_lookup_using_namespace): Consider