OSDN Git Service

PR c++/46348
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index 7223529..fb14862 100644 (file)
@@ -1,3 +1,304 @@
+2010-12-08  Jason Merrill  <jason@redhat.com>
+
+       PR c++/46348
+       * semantics.c (cxx_eval_vec_init_1): Handle value-init.
+       (cxx_eval_vec_init): Pass value_init arg.
+
+2010-12-08  Nathan Froyd  <froydnj@codesourcery.com>
+
+       PR c++/45329
+       * call.c (struct conversion): Document bad_p field.
+       (enum rejection_reason_code): Define.
+       (struct conversion_info): Define.
+       (struct rejection_reason): Define.
+       (struct z_candidate): Add `reason' field.
+       (add_candidate): Add `reason' parameter.  Store it in CAND.
+       (alloc_rejection, arity_rejection, arg_conversion_rejection):
+       New functions.
+       (bad_arg_conversion_rejection): New function.
+       (convert_class_to_reference): Add comment.
+       (remaining_arguments): New function.
+       (add_function_candidate): Record rejection reason and pass it to
+       add_candidate.
+       (add_conv_candidate, build_builtin_candidate): Likewise.
+       (add_template_candidate_real): Likewise.
+       (print_conversion_rejection): New function.
+       (print_z_candidate): Print CAND->REASON if it exists.  Adjust
+       diagnostic strings.
+       (print_z_candidates): Add location_t argument.  Adjust calling
+       sequence for print_z_candidate. Print header line directly.
+       (build_user_type_conversion_1): Add reason for rejection to
+       CAND.  Adjust call to print_z_candidates.
+       (print_error_for_call_failure): New function.
+       (build_new_function_call): Call it.  Adjust call to
+       print_z_candidates.
+       (build_operator_new_call): Likewise.
+       (build_op_call): Likewise.
+       (build_conditional_expr): Likewise.
+       (build_new_op): Likewise.
+       (build_new_method_call): Likewise.
+
+2010-12-08  Jason Merrill  <jason@redhat.com>
+
+       PR c++/45822
+       * cp-tree.h (LOOKUP_DEFAULTED): New.
+       * call.c (add_function_candidate): Check it.
+       * method.c (synthesized_method_walk): Set it.
+       (do_build_copy_assign): Likewise.
+       * init.c (perform_member_init): Likewise.
+       (emit_mem_initializers): Likewise.
+
+       PR c++/46736
+       * decl.c (cp_finish_decl): Complain about an implicitly deleted
+       method defaulted outside the class.
+       * method.c (maybe_explain_implicit_delete): Don't check DECL_INITIAL.
+
+2010-12-07  Joseph Myers  <joseph@codesourcery.com>
+
+       * rtti.c: Don't include assert.h.
+
+2010-12-07  Nathan Froyd  <froydnj@codesourcery.com>
+
+       PR c++/45330
+       * cp-tree.h (suggest_alternatives_for, location_of): Declare.
+       * error.c (dump_expr): Handle TYPE_DECL.
+       (location_of): Unstaticize.
+       * name-lookup.c (suggest_alternatives_for): New function.
+       * lex.c (unqualified_name_lookup_error): Call it.
+
+2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * call.c: Include c-family/c-objc.h.
+       * decl.c: Same change.
+       * decl2.c: Same change.
+       * error.c: Same change.
+       * lex.c: Same change.
+       * parser.c: Same change.
+       * pt.c: Same change.
+       * semantics.c: Same change.
+       * typeck.c: Same change.
+       * Make-lang.in (cp/decl.o): Depend on c-family/c-objc.h.
+       (cp/decl2.o): Same change.
+       (cp/call.o): Same change.
+       (cp/error.o): Same change.
+       (cp/lex.o): Same change.
+       (cp/parser.o): Same change.
+       (cp/pt.o): Same change.
+       (cp/semantics.o): Same change.
+       (cp/typeck.o): Same change.
+       * config-lang.in (gtfiles): Added c-family/c-objc.h.
+       
+2010-12-03  Jason Merrill  <jason@redhat.com>
+
+       PR c++/46645
+       * semantics.c (build_data_member_initialization): Remove assert.
+
+       PR c++/46058
+       * tree.c (lvalue_kind) [SCOPE_REF]: Handle non-dependent case.
+
+2010-12-03  Richard Guenther  <rguenther@suse.de>
+
+       PR c/46745
+       * error.c (dump_expr): Handle MEM_REF.
+
+2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
+
+       * cp-tree.h (struct aggr_init_expr_arg_iterator_d): Remove GTY
+       tag.
+
+2010-12-02  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * parser.c (cp_parser_objc_throw_statement): Use
+       cp_parser_expression, not cp_parser_assignment_expression, to
+       parse the argument of a @throw.
+
+2010-12-01  Joseph Myers  <joseph@codesourcery.com>
+
+       * cp-objcp-common.c, lex.c, typeck.c: Don't include toplev.h.
+       * Make-lang.in (cp/lex.o, cp/cp-objcp-common.o, cp/typeck2.o):
+       Update dependencies.
+
+2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * decl.c (finish_function): Call objc_finish_function when
+       compiling Objective-C++.
+       * call.c (standard_conversion): Do not call
+       objc_non_volatilized_type().
+       (implicit_conversion): Same change.
+       * typeck.c (comp_ptr_ttypes_real): Same change.
+
+2010-11-30  Joseph Myers  <joseph@codesourcery.com>
+
+       * cp-gimplify.c, cp-lang.c, cvt.c, cxx-pretty-print.c, error.c,
+       except.c, expr.c, friend.c, init.c, mangle.c, name-lookup.c,
+       optimize.c, parser.c, rtti.c, tree.c, typeck2.c: Don't include
+       toplev.h.
+       * Make-lang.in: Dependencies for above files changed to remove
+       toplev.h.
+
+2010-11-29  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/42260
+       * call.c (add_builtin_candidate): At this point the resulting type
+       of an indirection operator should be complete.
+
+2010-11-29  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/45383
+       Reverted patch for PR c++/42260
+       * cp-tree.h (lookup_conversions): Reverted "Add new bool parameter to
+       declarationE."
+       * search.c (lookup_conversion): Reverted "Use new bool parameter in
+       definition".
+       * call.c (add_builtin_candidates): Reverted "Don't lookup template
+       conversion"
+       (convert_class_to_reference, build_user_type_conversion_1,
+        build_op_call): Reverted "Adjust".
+       * cvt.c (build_expr_type_conversion): Reverted "Likewise".
+
+2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * parser.c (cp_parser_objc_try_catch_finally_statement): Parse
+       @catch(...)  and pass NULL_TREE to objc_begin_catch_clause() in
+       that case.  Improved error recovery.  Reorganized code to be
+       almost identical to c_parser_objc_try_catch_finally_statement.
+
+2010-11-27  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       PR objc++/46222
+       * decl.c (grokdeclarator): Replaced an assert (for a case that can
+       never happen in C++, but could happen in ObjC++ for invalid code)
+       with a check that prints an error message and returns
+       error_mark_node.
+
+2010-11-23  Jeffrey Yasskin <jyasskin@google.com>
+
+       PR c++/46527
+       * pt.c (instantiate_decl): Propagate the template's location to
+       its instance.
+
+2010-11-20  Joseph Myers  <joseph@codesourcery.com>
+
+       * name-lookup.c (handle_namespace_attrs): Don't check
+       HANDLE_PRAGMA_VISIBILITY.
+       * parser.c (cp_parser_namespace_definition): Don't check
+       HANDLE_PRAGMA_VISIBILITY.
+
+2010-11-20  Nathan Froyd  <froydnj@codesourcery.com>
+
+       PR c++/16189
+       PR c++/36888
+       PR c++/45331
+       * parser.c (cp_lexer_set_token_position): New function.
+       (cp_lexer_previous_token_position): New function.
+       (cp_lexer_previous_token): Call it.
+       (cp_parser_class_specifier): Try to gracefully handle a missing
+       semicolon.
+
+2010-11-20  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/46538
+       * decl.c (cp_make_fname_decl): Return error_mark_node if
+       current_binding_level has already sk_function_parms kind.
+
+       PR c++/46526
+       * semantics.c (cxx_eval_call_expression): Unshare the result.
+
+2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * parser.c (cp_parser_objc_protocol_declaration): Pass attributes
+       to objc_declare_protocols.
+
+2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
+
+       PR c/33193
+       * typeck.c (cp_build_unary_op): Call build_real_imag_expr for
+       REALPART_EXPR and IMAGPART_EXPR.
+
+2010-11-16  Jason Merrill  <jason@redhat.com>
+
+       * call.c (convert_like_real): Don't make a temp for copy-list-init.
+       (build_over_call): Don't handle that here.
+       (build_new_method_call): Use COMPLETE_OR_OPEN_TYPE_P for error.
+
+       PR c++/46497
+       * call.c (build_over_call): Check for =delete even when trivial.
+
+       DR 1004
+       * decl.c (make_unbound_class_template): Handle using
+       injected-type-name as template.
+
+2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * typeck.c (cp_build_unary_op): Use
+       objc_build_incr_expr_for_property_ref to build the pre/post
+       increment/decrement of an Objective-C property ref.
+
+2010-11-13  Jason Merrill  <jason@redhat.com>
+
+       * decl.c (cp_finish_decl): Use resolve_nondeduced_context for auto.
+       * init.c (build_new): Likewise.
+       * pt.c (tsubst_decl): Likewise.
+       (do_auto_deduction): Likewise.
+       (resolve_nondeduced_context): Use build_offset_ref and
+       cp_build_addr_expr.
+
+2010-11-12  Joseph Myers  <joseph@codesourcery.com>
+
+       * Make-lang.in (g++spec.o): Use $(OPTS_H).
+
+2010-11-13  Ville Voutilainen <ville.voutilainen@gmail.com> <ville.voutilainen@symbio.com>
+
+       Core 1135, 1136, 1145, 1149
+       * method.c (defaultable_fn_check): Do not disallow defaulting a
+       non-public or explicit special member function on its first
+       declaration.
+
+2010-11-12  James Dennett <jdennett@google.com>
+
+       PR/39415
+       * typeck.c (build_static_cast_1): Convert to the target type
+       when doing static_cast<cv Derived*>(Base*).
+
+2010-11-10  Jason Merrill  <jason@redhat.com>
+
+       PR c++/46420
+       * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: New case.
+       [CONSTRUCTOR]: Use the tsubsted type.
+
+       PR c++/46369
+       * semantics.c (cxx_eval_bit_field_ref): New.
+       (cxx_eval_constant_expression): Call it.
+
+2010-11-10  Joseph Myers  <joseph@codesourcery.com>
+
+       * cvt.c (cp_convert_to_pointer): Use %' in diagnostic.
+       * decl.c (layout_var_decl, maybe_commonize_var, grokdeclarator):
+       Use %' in diagnostics.
+       * decl2.c (check_classfn): Use %' in diagnostic.
+       * init.c (build_java_class_ref): Use %' in diagnostic.
+       (build_delete): Remove trailing '.' from diagnostic.
+       * method.c (do_build_copy_assign, walk_field_subobs): Use %' in
+       diagnostics.
+       * name-lookup.c (pushdecl_maybe_friend): Use %' in diagnostic.
+       * parser.c (cp_parser_exception_specification_opt): Remove
+       trailing '.' from diagnostic.
+       (cp_parser_objc_interstitial_code): Use %qs for quoting in
+       diagnostic.
+       * pt.c (check_valid_ptrmem_cst_expr): Use %< and %> for quoting in
+       diagnostic.
+       * repo.c (reopen_repo_file_for_write): Use %' in diagnostic.
+
+2010-11-10  Nathan Froyd  <froydnj@codesourcery.com>
+
+       PR c++/46065
+       * decl.c (poplevel_named_label_1): Use TREE_CHAIN if necessary.
+
+2010-11-09  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/45894
+       * tree.c (lvalue_kind): Don't crash if ref has NULL type.
+
 2010-11-08  Jason Merrill  <jason@redhat.com>
 
        PR c++/46382
        (type_dependent_expression_p): Added case for AT_ENCODE_EXPR.
        * parser.c (cp_parser_objc_encode_expression): Updated comment.
 
-2010-10-07  Nicola Pero  <nicola@nicola.brainstorm.co.uk>
+2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
 
        Merge from apple/trunk branch on FSF servers.