re PR middle-end/46314 (frontends use ASM_GENERATE_INTERNAL_LABEL)
[gcc.git] / gcc / cp / ChangeLog
index 2e9f535bef283d89f608c3bc446b2165feb2bbf0..bfa4af439166dd346e8a1abf9be0011d797c0acc 100644 (file)
@@ -1,3 +1,161 @@
+2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
+
+       PR middle-end/46314
+       * method.c (make_alias_for_thunk):
+       Use targetm.asm_out.generate_internal_label.
+
+2010-11-05  Jason Merrill  <jason@redhat.com>
+
+       PR c++/45473
+       * search.c (look_for_overrides): A constructor is never virtual.
+
+2010-11-05  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/46160
+       * cp-gimplify.c (cp_gimplify_expr): Drop volatile MEM_REFs
+       on the RHS to avoid infinite recursion with gimplify_expr.
+
+2010-11-05  Jason Merrill  <jason@redhat.com>
+
+       PR c++/46304
+       * pt.c (tsubst_copy): Handle COMPLEX_CST.
+
+2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       Fixed using the Objective-C 2.0 dot-syntax with class names.    
+       * parser.c (cp_parser_primary_expression): Recognize Objective-C
+       2.0 dot-syntax with class names and process it.
+       (cp_parser_nonclass_name): Recognize Objective-C 2.0 dot-syntax
+       with class names.
+       (cp_parser_class_name): Same change.
+       (cp_parser_simple_type_specifier): Tidied comments.
+       
+2010-11-04  Jason Merrill  <jason@redhat.com>
+
+       PR c++/46298
+       * semantics.c (build_constexpr_constructor_member_initializers):
+       Handle an enclosing STATEMENT_LIST.
+
+       * semantics.c (speculative_access_check): New.
+       * cp-tree.h: Declare it.
+       * call.c (build_over_call): Use it.
+       * class.c (type_has_constexpr_default_constructor): Use locate_ctor.
+       * method.c (locate_ctor): Use push/pop_deferring_access_checks.
+
+2010-11-03  Jason Merrill  <jason@redhat.com>
+
+       PR c++/46293
+       * semantics.c (build_data_member_initialization): Handle
+       value-init of aggregate empty base.
+
+       PR c++/46289
+       * call.c (can_convert_array): New fn.
+       (build_aggr_conv): Use it.
+
+       PR c++/46289
+       * semantics.c (build_constexpr_constructor_member_initializers):
+       Avoid ICE on error.
+
+2010-11-02  Dodji Seketeli  <dodji@redhat.com>
+
+       * cp-tree.h (enum tsubst_flags)<tf_no_class_instantiations>:
+       Remove.
+       * pt.c (tsubst): Remove the use of tf_no_class_instantiations.
+
+2010-11-03  Jason Merrill  <jason@redhat.com>
+
+       PR c++/46277
+       * init.c (expand_default_init): Avoid ICE if we can't figure out
+       which function is being called.
+
+2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * class.c (build_base_path, add_vcall_offset): Use build_zero_cst
+       instead of fold_convert.
+       * init.c (build_zero_init): Likewise.
+       * typeck.c (cp_build_binary_op): Likewise.
+
+2010-11-02  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/46170
+       PR c++/46162
+       * pt.c (check_valid_ptrmem_cst_expr): Add a complain parameter to
+        control diagnostic.
+       (convert_nontype_argument, convert_nontype_argument): Pass the
+       complain parameter down to check_valid_ptrmem_cst_expr.
+
+2010-11-02  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/45606
+       * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): Remove.
+       (struct template_parm_index_s)<num_siblings>: New field.
+       (TEMPLATE_PARM_NUM_SIBLINGS): New accessor.
+       (process_template_parm): Extend the API to accept the number of
+       template parms in argument.
+       (cp_set_underlying_type): Remove this.
+       * class.c (build_self_reference): Require canonical type equality
+       back on the self reference of class.
+       * decl2.c (grokfield): Require canonical type equality back on
+       typedef class fields.
+       * name-lookup.c (pushdecl_maybe_friend): Require canonical type
+       equality back on typedefs.
+       * parser.c (cp_parser_template_parameter_list): Do not require
+       canonical type equality on dependent types created during template
+       parameters parsing.
+       * pt.c (fixup_template_type_parm_type, fixup_template_parm_index)
+       (fixup_template_parm, fixup_template_parms): New private
+       functions.
+       (current_template_args): Declare this.
+       (process_template_parm): Pass the total number of template parms
+       to canonical_type_parameter.
+       (build_template_parm_index): Add a new argument to carry the total
+       number of template parms.
+       (reduce_template_parm_level, process_template_parm, make_auto):
+       Adjust.
+       (current_template_args): Fix this for template template
+       parameters.
+       (tsubst_template_parm): Split out of ...
+       (tsubst_template_parms): ... this.
+       (reduce_template_parm_level): Don't loose
+       TEMPLATE_PARM_NUM_SIBLINGS when cloning a TEMPLATE_PARM_INDEX.
+       (template_parm_to_arg): Extracted this function from
+       current_template_args. Make it represent invalid template parms
+       with an error_mark_node instead of a LIST_TREE containing an
+       error_mark_node.
+       (current_template_args): Use template_parm_to_arg.
+       (dependent_template_arg_p): Consider an invalid template argument
+       as dependent.
+       (end_template_parm_list): Do not update template sibling parms
+       here anymore. Use fixup_template_parms instead.
+       (process_template_parm): Pass the number of template parms to
+       canonical_type_parameter.
+       (make_auto): Require structural equality on auto
+       TEMPLATE_TYPE_PARM for now.
+       (unify)<BOUND_TEMPLATE_TEMPLATE_PARM>: Coerce template parameters
+       using all the arguments deduced so far.
+       (tsubst)<TEMPLATE_TYPE_PARM>: Pass the number of sibling parms to
+       canonical_type_parameter.
+       * tree.c (cp_set_underlying_type): Remove.
+       * typeck.c (get_template_parms_of_dependent_type)
+       (incompatible_dependent_types_p): Remove.
+       (structural_comptypes): Do not call incompatible_dependent_types_p
+       anymore.
+       (comp_template_parms_position): Re-organized. Take the length of
+       template parms list in account.
+
+2010-11-01  Jason Merrill  <jason@redhat.com>
+
+       * semantics.c (call_stack, call_stack_tick, cx_error_context): New.
+       (last_cx_error_tick, push_cx_call_context, pop_cx_call_context): New.
+       (cxx_eval_call_expression): Call push/pop_cx_call_context instead
+       of giving follow-on errors.
+       * error.c (maybe_print_constexpr_context): New.
+       (cp_diagnostic_starter): Call it.
+       * cp-tree.h: Declare cx_error_context.
+
+       * semantics.c (cxx_eval_constant_expression): Explain
+       unacceptable use of variable better.
+
 2010-11-01  Gabriel Dos Reis  <gdr@cse.tamu.edu>
            Jason Merrill  <jason@redhat.com>