OSDN Git Service

2006-10-30 Dirk Mueller <dmueller@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index 4568cb2..b705968 100644 (file)
+2006-10-30  Dirk Mueller  <dmueller@suse.de>
+
+       PR c++/28669
+       * decl.c (grokfndecl): Duplicate warning message for
+       easier translation.
+
+2006-10-30  Dirk Mueller  <dmueller@suse.de>
+
+       * typeck.c (build_unary_op): Fix indenting. Use G_().
+
+2006-10-29  Dirk Mueller  <dmueller@suse.de>
+
+       PR c++/29089
+       * typeck.c (build_unary_op): Duplicate warning message
+       for easier translation.
+
+2006-10-29  Dirk Mueller  <dmueller@suse.de>
+
+       PR c++/16307
+       * typeck.c (build_array_ref): Warn for char subscriptions
+       on pointers.
+
+2006-10-29  Kazu Hirata  <kazu@codesourcery.com>
+
+       * decl.c: Fix a comment typo.
+
+2006-10-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR C++/29295
+       * typeck.c (build_unary_op): Use same_type_p when comparing to 
+       boolean type.
+
+2006-10-29  Dirk Mueller  <dmueller@suse.de>
+
+       PR c++/29033
+       * typeck.c (build_binary_op): Duplicate warning message
+       for better translation.
+
+2006-10-23  Rafael Avila de Espindola  <rafael.espindola@gmail.com>
+
+       * decl.c (builtin_function_1): Move common code to
+       add_builtin_function.
+       (builtin_function): Rename to cxx_builtin_function.
+       Change the signature.
+       * call.c: Include langhooks.h.
+       (build_java_interface_fn_ref):  Replace calls to
+       builtin_function with add_builtin_function.
+       * Make-lang.in (cp/call.o): Depend on langhooks.h.
+       * cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
+       cxx_builtin_function.
+       * cp-tree.h (builtin_function): Rename to cxx_builtin_function.
+       Change the signature.
+
+2006-10-22  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR c++/20647
+       * rtti.c (tinfo_base_init): The type info string is always global.
+
+2006-10-20  Lee Millward  <lee.millward@codesourcery.com>
+            Mark Mitchell <mark@codesourcery.com>
+
+        PR c++/28053
+        * decl2.c (grokbitfield): Detect invalid non-integral 
+        types earlier when possible.
+       
+2006-10-18  Mark Shinwell  <shinwell@codesourcery.com>
+
+       PR c++/26884
+       * typeck2.c (digest_init): Raise error upon attempts to
+       initialize arrays with variables.
+
+2006-10-17  Lee Millward  <lee.millward@codesourcery.com> 
+
+        PR c++/27952
+        * cp-tree.h (xref_basetypes): Return bool instead of void.
+        * decl.c (xref_basetypes): Adjust definition. Return false
+        if the class bases are invalid.
+        * parser.c (cp_parser_class_head): Check the return value
+        from xref_basetypes.
+       
+2006-10-17  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/28261
+       * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Add
+       comment.
+
+       PR c++/28261
+       * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): New
+       function.
+       (cp_parser_constructor_declarator_p): Use it.
+       (cp_parser_check_type_definition): Return a value indicating
+       whether or not the definition is valid.
+       (cp_parser_enum_specifier): Skip invalid enum definitions.
+
+2006-10-17  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/29039
+       * typeck2.c (build_functional_cast): Don't zero-initialize
+       non-PODs; instead, call their constructors.
+       * method.c (synthesize_method): Always build mem-initializers, if
+       we're synthesizing the default constructor.
+
+2006-10-17  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/27270
+       * decl.c (reshape_init_class): Move check for designated
+       to ...
+       * parser.c (cp_parser_initializer_list): ... here.
+       * pt.c (tsubst_copy_and_build): Use finish_compound_literal.
+
+2006-10-16  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/27270
+       * typeck2.c (process_init_constructor_array): Reword comment.
+       * pt.c (tsubst_copy_and_built): Call reshape_init before calling
+       digest_init.
+
+       PR c++/29408
+       * parser.c (cp_parser_using_declaration): Stop parsing when
+       something goes wrong with an access declaration.
+
+       PR c++/29435
+       * typeck.c (cxx_sizeof_or_alignof_type): Complete non-dependent
+       types when their sizes are required.  Refine test for VLAs.
+
+       PR c++/28211
+       * parser.c (cp_parser_template_argument): Don't consider "&var" a
+       possible constant-expression.
+       * pt.c (convert_nontype_argument): Refine handling of arguments of
+       pointer type.
+
+2006-10-13  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/28506
+       * parser.c (function_declarator_p): New function.
+       (cp_parser_init_declarator): Use it.
+       (cp_parser_member_declaration): Likewise.
+
+2006-10-12  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/29318
+       * rtti.c (get_tinfo_decl): Refuse to create type info objects for
+       variably modified types.
+
+2006-10-12 Lee Millward <lee.millward@codesourcery.com>
+
+       PR c++/27961
+       * decl.c (start_decl): Return error_mark_node if a
+       function is initialized like a variable.
+       (check_var_type): If a variable of field is declared void,
+       set the type to error_mark_node.
+       (grokdeclarator): Check the return type of check_var_type.
+       * class.c (finish_struct_1): Robustify.
+       
+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.
+       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>