OSDN Git Service

* cp-tree.h (struct tinst_level): Add chain_next GTY
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index cfb6b58..f785c89 100644 (file)
@@ -1,5 +1,326 @@
+2011-06-08  Jakub Jelinek  <jakub@redhat.com>
+
+       * cp-tree.h (struct tinst_level): Add chain_next GTY
+       markup.
+
+2011-06-08  Jason Merrill  <jason@redhat.com>
+
+       PR c++/49322
+       * pt.c (deduction_tsubst_fntype): Don't free the tinst entry
+       if a pending_template entry is pointing at it.
+
+2011-06-07  Jason Merrill  <jason@redhat.com>
+
+       PR c++/48969
+       PR c++/44175
+       * error.c (subst_to_string): New.
+       (cp_printer): Use it for 'S'.
+       (print_instantiation_partial_context_line): Handle subst context.
+       * pt.c (push_tinst_level): Handle subst context.
+       (deduction_tsubst_fntype): Don't track specific substitutions.
+       Use push_tinst_level.
+
+       * pt.c (deduction_tsubst_fntype): Use push_deduction_access_scope.
+       (fn_type_unification): Don't call push_deduction_access_scope here.
+
+2011-06-06  Jason Merrill  <jason@redhat.com>
+
+       PR c++/48780
+       * typeck.c (perform_integral_promotions): Don't promote scoped enums.
+       * call.c (convert_arg_to_ellipsis): Promote them here in old ABI.
+
+2011-06-06  Nicola Pero  <nicola.pero@meta-innovation.com>,
+
+       PR obj-c++/48275
+       * parser.c (cp_parser_objc_at_property_declaration): Allow setter
+       and getter names to use all the allowed method names.
+
+2011-06-06  Jason Merrill  <jason@redhat.com>
+
+       PR c++/49298
+       * semantics.c (potential_constant_expression_1): Handle FIELD_DECL.
+
+       PR objc++/49221
+       * decl.c (cp_finish_decl): Check DECL_FUNCTION_SCOPE_P rather than
+       at_function_scope_p.
+
+       PR c++/49134
+       * tree.c (build_target_expr): Deal with ARM ABI tweaks.
+
+2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       * init.c (build_delete): Warn when deleting type with non-virtual
+       destructor.
+
+2011-06-03  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/49276
+       * mangle.c (write_nested_name): Use CP_DECL_CONTEXT instead of
+       DECL_CONTEXT.
+
+2011-06-01  Jason Merrill  <jason@redhat.com>
+
+       * pt.c (build_non_dependent_expr): Remove special handling of
+       REFERENCE_REF_P.
+
+       PR c++/44175
+       * pt.c (template_args_equal): Handle one arg being NULL_TREE.
+       (deduction_tsubst_fntype): Handle excessive non-infinite recursion.
+
+       PR c++/49253
+       * typeck2.c (build_x_arrow): Don't use build_min_nt.
+
+2010-05-31  Fabien ChĂȘne  <fabien@gcc.gnu.org>
+
+       PR c++/48010
+       * name-lookup.c (supplement_binding_1): If the old binding was a
+       type name, also check that the DECL actually refers to the same
+       type or is not a type.
+
+2011-05-31  Jason Merrill  <jason@redhat.com>
+
+       PR c++/44870
+       * tree.c (lvalue_kind): Recurse on NON_DEPENDENT_EXPR.  Handle
+       ARROW_EXPR, TYPEID_EXPR, and arbitrary class-valued expressions.
+       (build_min_non_dep): Preserve reference refs.
+       (build_min_non_dep_call_vec): Likewise
+
+2011-05-30  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/49223
+       * semantics.c (finish_omp_clauses): Call require_complete_type
+       even for copyin/copyprivate clauses.  Only call
+       cxx_omp_create_clause_info if inner_type is COMPLETE_TYPE_P.
+
+2011-05-28  Jason Merrill  <jason@redhat.com>
+
+       PR c++/46124
+       * parser.c (cp_parser_lambda_expression): Improve error recovery.
+       (cp_parser_lambda_declarator_opt): Likewise.  Return bool.
+
+2011-05-27  Jason Merrill  <jason@redhat.com>
+
+       PR c++/47277
+       * parser.c (cp_parser_pseudo_destructor_name): Commit to parse
+       after we see the ~.
+
+       * mangle.c (mangle_decl_string): Make sure we don't try to mangle
+       templates.
+
+       PR c++/47049
+       * semantics.c (maybe_add_lambda_conv_op): Fix COMDAT sharing.
+       * decl.c (start_preparsed_function): Don't call comdat_linkage for
+       a template.
+
+       PR c++/47132
+       * mangle.c (write_expression): Handle MODOP_EXPR.
+
+       PR c++/47277
+       * parser.c (cp_parser_unqualified_id): Don't check
+       constructor_name_p for enums.
+
+       PR c++/47687
+       * pt.c (dependent_type_p_r): Avoid infinite recursion.
+
+       PR c++/48284
+       * error.c (dump_expr) [COMPONENT_REF]: Use pp_cxx_dot
+       with INDIRECT_REF of REFERENCE_TYPE.
+
+       PR c++/49181
+       * pt.c (get_mostly_instantiated_function_type): Use push_access_scope.
+
+2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * cp-tree.h (building_stmt_tree): Delete.
+       * decl.c (save_function_data): Tweak initializer for x_cur_stmt_list.
+       (build_aggr_init_full_exprs): Call building_stmt_list_p
+       instead of building_stmt_tree.
+       (initialize_local_var): Likewise.
+       (finish_function): Likewise.
+       * decl2.c (finish_anon_union): Likewise.
+       * init.c (begin_init_stmts): Likewise.
+       (finish_init_stmts): Likewise.
+       (expand_aggr_init_1): Likewise.
+       * name-lookup.c (do_local_using_decl): Likewise.
+       (do_namespace_alias): Likewise.
+       (do_using_directive): Likewise.
+       (cp_emit_debug_info_for_using): Likewise.
+       * semantics.c (add_stmt): Assert that stmt_list_stack is non-empty.
+
+2011-05-27  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/42056
+       * typeck2.c (build_functional_cast): Complain early for invalid uses
+       of 'auto' and set type to error_mark_node.
+
+2011-05-26  Jason Merrill  <jason@redhat.com>
+
+       PR c++/47721
+       * parser.c (cp_parser_member_declaration): Allow friend T.
+       * friend.c (make_friend_class): Ignore non-classes.
+       * pt.c (instantiate_class_template_1): Handle TEMPLATE_TYPE_PARM.
+
+       DR 1004
+       * pt.c (convert_template_argument): Don't complain about using
+       injected-class-name as template template argument.
+
+       PR c++/47956
+       * decl.c (check_static_variable_definition): Now static.
+       (cp_finish_decl): Call it here.
+       (grokdeclarator): Not here.
+       * pt.c (instantiate_class_template_1): Or here.
+       * cp-tree.h: Don't declare it.
+
+2011-05-26  Janis Johnson  <janis187@us.ibm.com>
+           Nathan Froyd  <froydnj@codesourcery.com>
+
+       PR c++/2288
+       PR c++/18770
+       * name-lookup.h (enum scope_kind): Add sk_cond.
+       * name-lookup.c (pushdecl_maybe_friend): Get scope of shadowed local.
+       Detect and report error for redeclaration from for-init or if
+       or switch condition.
+       (begin_scope): Handle sk_cond.
+       * semantics.c (begin_if_stmt): Use sk_cond.
+       (begin switch_stmt): Ditto.
+
+2011-05-26  Jason Merrill  <jason@redhat.com>
+
+       PR c++/48211
+       * name-lookup.h (cp_class_binding): Make base a pointer.
+       * name-lookup.c (new_class_binding): Adjust.
+       (poplevel_class): Adjust.
+
+       PR c++/48424
+       * decl.c (grokparms): Function parameter packs don't need to
+       go at the end.
+       * pt.c (type_unification_real): But they aren't deduced otherwise.
+
+2011-05-25  Jason Merrill  <jason@redhat.com>
+
+       PR c++/48536
+       * decl.c (build_enumerator): If incremented enumerator won't fit in
+       previous integral type, find one it will fit in.
+
+       PR c++/48599
+       * decl.c (create_array_type_for_decl): Complain about array of auto.
+
+       PR c++/44994
+       PR c++/49156
+       * error.c (dump_template_bindings): Set processing_template_decl
+       for a partial instantiation.
+
+       PR c++/45401
+       * decl.c (grokdeclarator): Don't change type when adding rvalue ref
+       to another reference type.
+
+       PR c++/44311
+       * decl.c (case_conversion): New.
+       (finish_case_label): Use it.
+
+       * ptree.c (cxx_print_xnode): Handle ARGUMENT_PACK_SELECT.
+
+       PR c++/45698
+       * pt.c (dependent_template_arg_p): See through ARGUMENT_PACK_SELECT.
+
+       PR c++/46005
+       * decl.c (grokdeclarator): Complain about auto typedef.
+
+       PR c++/46245
+       * decl.c (grokdeclarator): Complain later for auto parameter.
+       * pt.c (splice_late_return_type): Handle use in a template
+       type-parameter.
+
+       PR c++/46696
+       * typeck.c (cp_build_modify_expr): Check DECL_DEFAULTED_FN.
+
+       PR c++/47184
+       * parser.c (cp_parser_parameter_declaration): Recognize
+       list-initialization.
+       (cp_parser_direct_declarator): Check for the closing
+       paren before parsing definitely.
+
+       PR c++/48935
+       * parser.c (cp_parser_constructor_declarator_p): Don't check
+       constructor_name_p for enums.
+       (cp_parser_diagnose_invalid_type_name): Correct error message.
+
+       PR c++/45418
+       * init.c (perform_member_init): Handle list-initialization
+       of array of non-trivial class type.
+
+       PR c++/45080
+       * pt.c (instantiate_class_template_1): Call maybe_add_lambda_conv_op.
+       * semantics.c (lambda_function): Check COMPLETE_OR_OPEN_TYPE_P.
+
+       PR c++/48292
+       * pt.c (tsubst_decl) [PARM_DECL]: Handle partial instantiation of
+       function parameter pack.
+       (tsubst_pack_expansion): Likewise.
+
+       * cp-objcp-common.c (cp_common_init_ts): TYPE_ARGUMENT_PACK has
+       TS_COMMON.
+
+2011-05-25  Jakub Jelinek  <jakub@redhat.com>
+
+       * cp-objcp-common.c (cp_common_init_ts): Mark CTOR_INITIALIZER
+       as TS_TYPED.
+
+       PR c++/49136
+       * semantics.c (cxx_eval_bit_field_ref): Handle the
+       case when BIT_FIELD_REF doesn't cover only a single field.
+
+2011-05-24  Jason Merrill  <jason@redhat.com>
+
+       PR c++/49042
+       * pt.c (get_mostly_instantiated_function_type): Use
+       push_deferring_access_checks rather than set flag_access_control.
+
+2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>,
+
+       * parser.c (cp_parser_objc_class_ivars): Deal gracefully with a
+       syntax error in declaring an ObjC instance variable.
+
+2011-05-24  Jason Merrill  <jason@redhat.com>
+
+       PR c++/48884
+       * class.c (pushclass): Accept NULL argument.
+       (popclass): Deal with popping null class.
+       * pt.c (push_access_scope, pop_access_scope): Use them rather than
+       push_to_top_level/pop_from_top_level.
+       (push_deduction_access_scope, pop_defarg_context): New.
+       (fn_type_unification): Use them.
+       * name-lookup.c (lookup_name_real_1): Check current_class_type.
+
+2011-05-24  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * decl.c (grokdeclarator): Use current_class_name.
+
+2011-05-24  Joseph Myers  <joseph@codesourcery.com>
+
+       * Make-lang.in (GXX_OBJS): Remove prefix.o.
+       (g++$(exeext)): Use libcommon-target.a.
+       (CXX_C_OBJS): Remove prefix.o.
+
 2011-05-23  Jason Merrill  <jason@redhat.com>
 
+       * pt.c (tsubst_copy_and_build): Use current_class_name.
+
+       PR c++/49102
+       * call.c (convert_arg_to_ellipsis): Call force_rvalue.
+
+       PR c++/49105
+       * typeck.c (cp_build_c_cast): Don't strip cv-quals when
+       converting to reference.
+       (build_static_cast_1): Update for glvalues.
+
+       PR c++/49105
+       * typeck.c (build_const_cast_1): Handle rvalue references.
+
+       PR c++/47263
+       * decl.c (use_eh_spec_block): Do use an EH spec block for a
+       lambda op().
+
        PR c++/49058
        * call.c (splice_viable): Be strict in templates.