OSDN Git Service

PR c++/29175
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index 8b7eae9..1ac313b 100644 (file)
@@ -1,3 +1,318 @@
+2006-10-11  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/29175
+       * decl.c (check_initializer): Issue errors about trying to
+       initialize arrays whose elements have variable size.
+
+2006-10-11  Lee Millward  <lee.millward@codesourcery.com>
+
+       PR c++/29024
+        * cp-tree (struct cp_decl_specifier_seq): Rename to 
+        conflicting_specifiers_p
+        * parser.c (cp_parser_set_storage_class): Set
+        conflicting_specifiers_p for the input decl specifier 
+        if a typedef specifier is present. Rename uses of
+        multiple_specifiers_p to conflicting_specifiers_p.
+        (cp_parser_decl_specifier_seq) <RID_TYPEDEF>: If a storage 
+        class specifier has already been set for this declaration, 
+        set conflicting_specifiers_p to true on the decl_specs.
+        * decl.c (grokdeclarator): Rename uses of
+        multiple_specifiers_p to conflicting_specifiers_p.
+
+2006-10-10  Brooks Moses  <bmoses@stanford.edu>
+
+       * Make-lang.in: Added "c++.pdf" target support.
+
+2006-10-10  Richard Guenther  <rguenther@suse.de>
+
+       PR rtl-optimization/29323
+       * decl.c (finish_function): Set TREE_NOTHROW only for
+       functions that bind local.
+
+2006-10-09  Richard Henderson  <rth@redhat.com>
+
+       Revert emutls patch.
+
+2006-10-04  Richard Henderson  <rth@redhat.com>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       * decl.c (grokvardecl): Don't error if !have_tls.
+       (grokdeclarator): Likewise.
+       * parser.c (cp_parser_omp_threadprivate): Likewise.
+
+2006-10-03  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/29020
+       * friend.c (do_friend): Improve comments; add assertion.
+       * parser.c (cp_parser_nested_name_specifier_opt): Resolve
+       typenames for qualified names used in declarations, even when
+       caching qualified name lookup.
+
+       PR c++/29138
+       * decl2.c (grokfield): Don't handle access declarations here.
+       * parser.c (cp_parser_using_declaration): Handle access
+       declarations too.
+       (cp_parser_block_declaration): Adjust calls to
+       cp_parser_using_declaration.
+       (cp_parser_member_declaration): Likewise.  Use
+       cp_parser_using_declaration to look for access_declarations.
+
+2006-10-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/29291
+       * init.c (build_new): Check for invalid init.
+
+2006-10-02  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/29226
+       * typeck.c (cxx_sizeof_or_alignof_type): Tidy.  In templates, do
+       not try to actually evaluate sizeof for a VLA type.
+
+2006-10-01  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/29105
+       * pt.c (tsubst_baselink): Substituteinto the qualifying scope.
+       * semantics.c (baselink_for_fns): Build a baselink, even when
+       processing a template.
+
+       PR c++/29080
+       * parser.c (cp_parser_postfix_dot_deref_expression): Use
+       BASELINK_ACCESS_BINFO as the qualifying scope when calling
+       adjust_result_of_qualified_name_lookup. 
+
+2006-09-25  Lee Millward  <lee.millward@codesourcery.com>
+
+        PR c++/27329
+        PR c++/26938
+        * cp-tree.h (redeclare_class_template): Adjust declaration
+        to return bool instead of void.
+        * pt.c (redeclare_class_template): Update definition.
+       Return false on error.
+        * decl.c (xref_tag): Return error_mark_node if
+       redeclare_class_template returned false.
+
+       PR c++/27667
+        * cp-tree.h (begin_specialization): Return bool 
+       instead of void.
+        * pt.c (check_specialization_scope): Likwise. 
+       Adjust comment. Return false if a specialization 
+       isn't permitted in the current scope.
+        (begin_specialization): Use the return value of  
+        check_specialization_scope.
+        * parser.c (cp_parser_explicit_specialization): If
+        begin_specialization returned false, skip the rest 
+       of the specialization.
+       
+2006-09-21  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/29016
+       * typeck.c (build_unary_op): Don't form an ADDR_EXPR around a
+       BASELINK.
+
+2006-09-21  Lee Millward  <lee.millward@codesourcery.com>
+
+       PR c++/28861
+       * decl.c (shadow_tag): Return error_mark_node
+        if maybe_process_partial_specialization failed.
+
+       PR c++/28303
+        * decl.c (grokdeclarator): Return error_mark_node on
+        declaration with two or more data types.
+       
+2006-09-20  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       PR target/27650
+       * class.c (check_for_override): Remove dllimport from virtual
+       methods.
+
+2006-09-18  Steven Bosscher  <steven@gcc.gnu.org>
+
+       PR c++/29087
+       * parser.c (cp_parser_labeled_statement): Return nothing.  Do
+       not take in_statement_expr and in_compound as arguments.  Rename
+       to cp_parser_label_for_labeled_statement.  Parse only the label,
+       not the statement.
+       (cp_parser_statement): Parse the statement of a labeled-statement
+       from here, using tail recursion.
+
+2006-09-14  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR C++/29002
+       * init.c (build_zero_init): If we have an error mark node for
+       the array size, return.
+
+2006-09-10  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/28991
+       * cp-objcp-common.c (cxx_staticp): New function.
+       * cp-objcp-common.h (LANG_HOOOKS_STATICP): Use it.
+       * cp-tree.h (cxx_staticp): New function.
+
+2006-09-09  Jason Merrill  <jason@redhat.com>
+
+       PR c++/28996
+       * cvt.c (convert_to_void): Strip COMPONENT_REF to functions.
+
+2006-09-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/28858
+       * parser.c (cp_parser_skip_until_found): Rename to
+       cp_parser_skip_to_end_of_template_parameter_list.  Remove last two
+       parameters.  Track levels of '< ... >'.  Stop at '{', '}', or ';'.
+       Reorganize.  Adjust comment.
+       (cp_parser_template_declaration_after_export): Adjust call.
+       (cp_parser_enclosed_template_argument_list): Likewise.
+
+2006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR C++/28906
+       * init.c (build_new_1): Build a distinct type copy
+       for the array type that was returned from
+       build_cplus_array_type.
+
+2006-09-07  Jason Merrill  <jason@redhat.com>
+
+       PR c++/27371
+       * cvt.c (convert_to_void): Enable previous change.
+
+       PR c++/26957
+       * method.c (use_thunk): Clear DECL_HAS_VALUE_EXPR_P on copied
+       parms.
+
+2006-09-07  Simon Martin  <simartin@users.sourceforge.net>
+
+       PR c++/28284
+       * pt.c (fold_non_dependent_expr): Make sure expr is not
+       dereferenced if it is NULL.
+
+2006-09-06  Zak Kipling  <zak@transversal.com>
+
+       PR c++/26195
+       * decl.c (make_rtl_for_nonlocal_decl),
+       (start_preparsed_function): Don't use lbasename on
+       input_filename when calling get_fileinfo.
+       * semantics.c (begin_class_definition): Likewise.
+       * lex.c (cxx_make_type): Likewise.
+       (handle_pragma_interface): Call get_fileinfo on input_filename,
+       not on the parameter to the directive.
+
+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++/27371
+       * cvt.c (convert_to_void): Strip useless TARGET_EXPR.
+       * cp-tree.h (TARGET_EXPR_IMPLICIT_P): New macro.
+       * tree.c (build_cplus_new): Set it.
+
+       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
        
 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.
+       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>
 
 
 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.
+       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>
 
        * 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>