OSDN Git Service

PR c++/28903
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index c3bb4f3..60d2fb2 100644 (file)
@@ -1,3 +1,219 @@
+2006-09-06  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/28903
+       * pt.c (tsubst): Use fold_non_dependent_expr to fold array
+       dimensions.
+
+       PR c++/28886
+       * pt.c (unify): Avoid unnecessary calls to fold_build2 for array
+       dimensions.
+
+2006-09-06  Jason Merrill  <jason@redhat.com>
+
+       PR c++/26696
+       * cvt.c (convert_to_void): Replace a subexpression with no side 
+       effects with void_zero_node.
+       * tree.c (is_overloaded_fn): Look through COMPONENT_REF.
+       (get_first_fn): Ditto.
+       * decl.c (grokdeclarator): No need to look through COMPONENT_REF.
+
+2006-09-05  Jason Merrill  <jason@redhat.com>
+
+       PR c++/26571
+       * parser.c (cp_parser_diagnose_invalid_type_name): Handle the case
+       where the name is a type used incorrectly.
+
+       PR c++/26671
+       * typeck.c (maybe_warn_about_returning_address_of_local): Look 
+       through COMPONENT_REF and ARRAY_REF.    
+
+       PR c++/26102
+       * name-lookup.c (do_class_using_decl): Try to find the base even
+       if bases_dependent_p.
+       * pt.c (type_dependent_expression_p): A USING_DECL is dependent.        
+
+       PR c++/19809
+       * pt.c (tsubst_friend_function): Set DECL_INITIAL before pushdecl.
+
+2006-09-04  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR 23287 Revert my 2006-09-01 patch.
+       * parser.c: Reverted.
+       * pt.c: Reverted.
+
+2006-09-02  Lee Millward  <lee.millward@codesourcery.com>
+
+       PR c++/27670
+       PR c++/27493
+       PR c++/27494
+       PR c++/27397
+       * parser.c (cp_parser_template_parameter_list): Add
+       invalid template parameters to the parameter list as
+       error_mark_node.
+
+2006-09-02  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/28878
+       * except.c (build_throw): Only set current_function_returns_abnormally
+       if cfun is not NULL.
+
+       PR c++/26917
+       * repo.c (repo_file): Remove.
+       (open_repo_file, reopen_repo_file_for_write): Return fopened
+       FILE * instead of setting global repo_file variable.
+       (init_repo): Adjust caller.
+       (finish_repo): Likewise.  Return instead of goto out before
+       reopen_repo_file_for_write has been called.
+
+2006-09-01  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/28705
+       * semantics.c (finish_call_expr): Add assert.
+       * name-lookup.c (lookup_arg_dependent): Check we found an overload
+       or an object.
+
+       PR c++/23287
+       * parser.c (cp_parser_id_expression): Add member_p
+       argument. Update all callers.
+       (cp_parser_unqualified_id): Likewise.  Lookup a destructor name in
+       the object's scope, if valid.
+       (cp_parser_global_scope_opt): Add object_scope_valid_p.  Update
+       callers.
+       (cp_parser_postfix_dot_deref_expression): Set object_scope.
+       * pt.c (tsubst_copy_and_build): Lookup dependent dtor name here.
+
+2006-08-30  Jason Merrill  <jason@redhat.com>
+
+       PR c++/26670
+       * class.c (check_field_decls): Don't unset TYPE_PACKED until all
+       the fields have been processed.
+
+2006-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR C++/28349
+       * call.c (build_x_va_arg): Remove the reference type
+       from the type before creating the pointer type.
+
+2006-08-29  J"orn Rennecke  <joern.rennecke@st.com>
+
+       PR c++/28139
+       * except.c (expand_start_catch_block): Use correct types for bitwise
+       copy.
+
+2006-08-28  Jason Merrill  <jason@redhat.com>
+
+       PR c++/26670
+       * class.c (check_field_decls): Unset TYPE_PACKED (t) if one of the
+       fields can't be packed.
+
+       PR c++/26577
+       * cvt.c (convert_to_void): Don't automatically load from volatiles 
+       of TREE_ADDRESSABLE type.
+
+2006-08-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/28860
+       * cp-tree.h (maybe_process_partial_specialization): Return
+       tree instead of void.
+       * parser.c (cp_parser_class_head): Use return value of
+       maybe_process_partial_specialization.
+       * pt.c (maybe_process_partial_specialization): Return error_mark_node
+       for broken specializations, TYPE otherwise.  Check for template
+       template parameters.
+
+2006-08-27  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/28058
+       * pt.c (register_specialization): Return error_mark_node for
+       specialization-after-instantiation.
+       * decl2.c (mark_used): Mark the main function used when one of its
+       clones is used.
+       
+2006-08-27  Lee Millward  <lee.millward@codesourcery.com>
+
+       PR c++/26573
+       * class.c (check_field_decls): Don't issue error about
+       local classes containing static data members.
+       
+2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
+
+       PR c++/24009
+       * parser.c (struct cp_token): Add input_file_stack_index.
+       (eof_token): Update.
+       (cp_lexer_get_preprocessor_token): Save input_file_stack_tick.
+       (cp_lexer_set_source_position_from_token): Restore input file
+       stack.
+
+2006-08-26  Lee Millward  <lee.millward@codesourcery.com>
+
+       PR c++/28736
+       PR c++/28737
+       PR c++/28738
+       * pt.c (process_template_parm): Store invalid template
+       parameters as a TREE_LIST with a TREE_VALUE of error_mark_node.
+       (push_inline_template_parms_recursive): Check for template
+       parameters having a TREE_VALUE of error_mark_node rather than
+       check the parameter itself.
+       (mangle_class_name_for_template): Likewise.
+       (comp_template_parms): When comparing the individual template
+       parameters, return 1 if either is error_mark_node.
+       (current_template_args): Robustify.
+       (redeclare_class_template): Likewise.
+       
+2006-08-26  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/28588
+       * class.c (resolve_address_of_overloaded_function): Add
+       access_path parameter.  Perform access checks.
+       (instantiate_type): Adjust call to
+       resolve_address_of_overloaded_function.  Remove unnecessary code.
+       * tree.c (is_overloaded_fn): Document.  Return 2 when there are
+       acutally multiple functions.
+       (really_overloaded_fn): Use is_overloaded_fn.
+       * mangle.c (write_expression): Handle BASELINKs.
+       * cp-tree.h (really_overloaded_fn): Return bool.
+       (baselink_for_fns): Declare.
+       * search.c (lookup_member): Check access for single static
+       functions here.
+       * pt.c (convert_nontype_argument_function): Handle BASELINKs.
+       (tsubst_copy_and_build): Generate BASELINKs for template-ids.
+       * semantics.c (finish_call_expr): Use baselink_for_fns.
+       (baselink_for_fns): New function.
+       (finish_id_expression): Use it.
+       * parser.c (cp_parser_template_argument): Don't strip BASELINKs.
+
+       PR c++/28595
+       * pt.c (tsubst): Issue errors about attempts to create VLAs at
+       template-instantiation time.
+
+2006-08-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/28853
+       * typeck2.c (cxx_incomplete_type_diagnostic): Handle template
+       template parameters.  Improve error message for template type
+       parameters.
+
+       PR c++/28852
+       * cp-tree.h (grok_op_properties): Return bool instead of void.
+       * decl.c (grokfndecl): Discard invalid operator declarations.
+       (copy_fn_p): Revert change for PR 27547.
+       (grok_op_properties): Return error status (true on success).
+       * pt.c (tsubst_decl): Discard invalid operator declarations.
+
+2006-08-25  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/28056
+       * decl.c (grokdeclarator): Disallow declarations with qualified
+       names in local scopes.
+
+2006-08-25  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/27787
+       * decl.c (make_typename_type): Only try and resolve it when
+       context is not dependent.  Refactor.
+       * decl2.c (check_classfn): Push to class scope before looking for
+       the function.
+
 2006-08-24  Danny Smith   <dannysmith@users.sourceforge.net>
 
        PR driver/28528
        * method.c (locate_copy): Check for non_reference
        returning error_mark_node.
 
-        PR c++/28260
+       PR c++/28260
        * decl.c (duplicate_decls): Return error_mark_node
        on ambiguous declaration.
        
 
 2006-03-22  Jason Merrill  <jason@redhat.com>
 
-        * name-lookup.c (push_namespace_with_attribs): Only apply hidden
-        visibility to anonymous namespaces if HAVE_GAS_HIDDEN.
+       * name-lookup.c (push_namespace_with_attribs): Only apply hidden
+       visibility to anonymous namespaces if HAVE_GAS_HIDDEN.
 
 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
 
                bad_decls list.
                (decl_jump_unsafe): Check for error_mark_node types.
                (check_goto): Don't check cdtor_label.  Don't use identify_goto.
-                * semantics.c (finish_return_stmt): Do check_omp_return before
+               * semantics.c (finish_return_stmt): Do check_omp_return before
                converting to cdtor_label goto.
 
        2005-10-21  Richard Henderson  <rth@redhat.com>
                * cp-tree.h (OMP_ATOMIC_DEPENDENT_P, OMP_ATOMIC_CODE): New.
                (finish_omp_clauses, finish_omp_for, finish_omp_atomic): New.
                * parser.c (cp_parser_omp_clause_copyin): Remove.
-               (cp_parser_omp_all_clauses): Use cp_parser_omp_var_list instead.                Call finish_omp_clauses.
+               (cp_parser_omp_all_clauses): Use cp_parser_omp_var_list instead.
+               Call finish_omp_clauses.
                (cp_parser_omp_clause_if): Don't do error checking here.
                (cp_parser_omp_clause_num_threads): Likewise.
                (cp_parser_omp_clause_schedule): Likewise.
 
 2006-02-03  Lee Millward  <lee.millward@gmail.com>
 
-       * typeck.c (string_conv_p): Pass appropiate
-       OPT_Wxxxx values when calling warning().
-       (build_array_ref, cxx_mark_addressable): Likewise.
-       (check_return_expr): Likewise.
+       * typeck.c (string_conv_p): Pass appropiate
+       OPT_Wxxxx values when calling warning().
+       (build_array_ref, cxx_mark_addressable): Likewise.
+       (check_return_expr): Likewise.
 
-       * init.c (perform_member_init): Likewise.
-       (sort_mem_initializers, emit_mem_initializers): Likewise.
+       * init.c (perform_member_init): Likewise.
+       (sort_mem_initializers, emit_mem_initializers): Likewise.
 
-       * class.c (check_field_decls): Likewise.
-       (warn_about_ambiguous_bases): Likewise.
+       * class.c (check_field_decls): Likewise.
+       (warn_about_ambiguous_bases): Likewise.
 
-       * decl.c (pop_label, poplevel): Likewise.
-       (duplicate_decls, grok_op_properties): Likewise.
-       (start_preparsed_function, finish_function): Likewise.
+       * decl.c (pop_label, poplevel): Likewise.
+       (duplicate_decls, grok_op_properties): Likewise.
+       (start_preparsed_function, finish_function): Likewise.
 
-       * name-lookup.c (pushdecl_maybe_friend): Likewise.
-       (pushdecl_maybe_friend): Likewise.
+       * name-lookup.c (pushdecl_maybe_friend): Likewise.
+       (pushdecl_maybe_friend): Likewise.
 
-       * parser.c (cp_parser_warn_min_max): Likewise.
-       (cp_parser_cast_expression): Likewise.
+       * parser.c (cp_parser_warn_min_max): Likewise.
+       (cp_parser_cast_expression): Likewise.
 
-       * method.c (lazily_declare_fn): Likewise.
-       * cvt.c (convert_to_void): Likewise.
-       * mangle.c (finish_mangling): Likewise.
-       * cp-gimplify.c (gimplify_expr_stmt): Likewise.
+       * method.c (lazily_declare_fn): Likewise.
+       * cvt.c (convert_to_void): Likewise.
+       * mangle.c (finish_mangling): Likewise.
+       * cp-gimplify.c (gimplify_expr_stmt): Likewise.
 
 2006-02-03  Mark Mitchell  <mark@codesourcery.com>
 
 
 2005-12-06  Aldy Hernandez  <aldyh@redhat.com>
 
-       PR C++/24138
+       PR C++/24138
        * decl.c (reshape_init_array_1): Handle max_index of -1.
 
 2005-12-06  Roger Sayle  <roger@eyesopen.com>