OSDN Git Service

PR c++/13714
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index eb8d8ee..636fb21 100644 (file)
@@ -1,4 +1,346 @@
-2003-08-26  Fred Fish  <fnf@intrinsity.com>
+2004-02-05  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/13714
+       * typeck.c (lookup_destructor): Tweak error message.
+
+2004-02-05  Jan Hubicka  <jh@suse.cz>
+
+       * tree.c (cp_cannot_inline_tree_fn):  Allow inlining of comdat
+       functions.
+
+2003-02-05  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       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  <mark@codesourcery.com>
+
+       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  <giovannibajo@gcc.gnu.org>
+
+       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  <kazu@cs.umass.edu>
+
+       * error.c, search.c: Update copyright.
+
+2004-02-04  Mark Mitchell  <mark@codesourcery.com>
+
+       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  <mark@codesourcery.com>
+
+       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  <mark@codesourcery.com>
+
+       * 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  <giovannibajo@gcc.gnu.org>
+
+       PR c++/13997
+       * pt.c (more_specialized_class): Increase processing_template_decl
+       while partial ordering.
+
+2004-02-03  Mark Mitchell  <mark@codesourcery.com>
+
+       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  <mark@codesourcery.com>
+
+       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  <mark@codesourcery.com>
+
+       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  <mark@codesourcery.com>
+
+       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  <giovannibajo@gcc.gnu.org>
+
+       PR c++/13957
+       * pt.c (tsubst_qualified_id): Improved error message when a type
+       is expected but not found.
+
+2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * 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  <rth@redhat.com>
+
+        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  <matz@suse.de>
+
+       * parser.c (cp_parser_labeled_statement): Accept case ranges.
+
+2004-01-30  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       DR206
+       PR c++/13813
+       * decl.c (grokdeclarator): Check immediatly type completeness for
+       non-dependent types.
+
+2004-01-30  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       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  <mark@codesourcery.com>
+
+       PR c++/13883
+       * mangle.c (write_encoding): Correct encoding of member template
+       constructors.
+
+2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       * 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  <mark@codesourcery.com>
+
+       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  <jh@suse.cz>
+
+       * semantics.c (expand_body)  Do emit_associated_thunks before
+       expansion.
+
+2004-01-27  Devang Patel  <dpatel@apple.com>
+
+       * 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  <ghazi@caip.rutgers.edu>
+
+       * cp-tree.h (language_function, lang_type_header): Use
+       BOOL_BITFIELD.
+       * name-lookup.h (cp_binding_level): Likewise.
+
+2004-01-26  Mark Mitchell  <mark@codesourcery.com>
+
+       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  <mark@codesourcery.com>
+
+       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  <giovannibajo@gcc.gnu.org>
+
+       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  <lerdsuwa@users.sourceforge.net>
+
+       PR c++/13797
+       * pt.c (instantiate_class_template): Add an error_mark_node
+       check.
+       (tsubst_decl) <TEMPLATE_DECL case>: Likewise.
+
+2004-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       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  <kazu@cs.umass.edu>
+
+       * optimize.c, typeck2.c: Update copyright.
+
+2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * 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  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       * parser.c (cp_parser_class_specifier): Prevent garbage collection.
+
+2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
+
+       * 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  <kcook@gcc.gnu.org>
+
+       * 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  <mark@codesourcery.com>
+
+       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  <mark@codesourcery.com>
+
+       PR c++/13710
+       * pt.c (tsubst): Use finish_typeof.
+
+2004-01-16  Jason Merrill  <jason@redhat.com>
+
+       PR c++/11725
+       * except.c (build_throw): In a template, set
+       current_function_returns_abnormally.
+
+2004-01-17  Fred Fish  <fnf@intrinsity.com>
 
        PR c++/11895
        * decl.c (reshape_init): Handle VECTOR_TYPE like ARRAY_TYPE,