cp-tree.h (struct language_function): Rename in_function_try_handler to x_in_function...
[gcc.git] / gcc / cp / ChangeLog
index 0058e432db6b25eb29b00ccc4a84fa9a53a9c283..039b155810f2262b3dc40f9fd733f65d9d1330f3 100644 (file)
@@ -1,3 +1,145 @@
+2011-10-13   Diego Novillo  <dnovillo@google.com>
+
+       * cp-tree.h (struct language_function): Rename in_function_try_handler
+       to x_in_function_try_handler.
+       Rename in_base_initializer to x_in_base_initializer.
+       Update all users.
+
+2011-10-13   Diego Novillo  <dnovillo@google.com>
+
+       * class.c (sorted_fields_type_new): Factor out of ...
+       (finish_struct_1): ... here.
+
+2011-10-13  Jason Merrill  <jason@redhat.com>
+
+       PR c++/50618
+       * init.c (expand_aggr_init_1): Don't zero-initialize virtual
+       bases of a base subobject.
+
+2011-10-12  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/50594
+       * decl.c (cxx_init_decl_processing): Add
+       __attribute__((externally_visible)) to operator new and
+       operator delete library fn.
+
+2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       * decl.c (duplicate_decls): Delete old interface with two parallel
+       arrays to hold standard builtin declarations, and replace it with
+       a function based interface that can support creating builtins on
+       the fly in the future.  Change all uses, and poison the old
+       names.  Make sure 0 is not a legitimate builtin index.
+       * except.c (build_eh_type_type): Ditto.
+       (choose_personality_routine): Ditto.
+       * semantics.c (finish_omp_atomic): Ditto.
+       (finish_omp_barrier): Ditto.
+       (finish_omp_flush): Ditto.
+       (finish_omp_taskwait): Ditto.
+
+2011-10-11  Jason Merrill  <jason@redhat.com>
+
+       PR c++/49855
+       PR c++/49896
+       * cp-tree.def (IMPLICIT_CONV_EXPR): New.
+       * call.c (perform_implicit_conversion_flags): Build it
+       instead of NOP_EXPR.
+       * cp-objcp-common.c (cp_common_init_ts): It's typed.
+       * cxx-pretty-print.c (pp_cxx_cast_expression): Handle it.
+       (pp_cxx_expression): Likewise.
+       * error.c (dump_expr): Likewise.
+       * semantics.c (potential_constant_expression_1): Likewise.
+       * tree.c (cp_tree_equal): Likewise.
+       (cp_walk_subtrees): Likewise.
+       * pt.c (iterative_hash_template_arg): Likewise.
+       (for_each_template_parm_r): Likewise.
+       (type_dependent_expression_p): Likewise.
+       (tsubst_copy, tsubst_copy_and_build): Handle IMPLICIT_CONV_EXPR
+       and CONVERT_EXPR.
+       * cp-tree.h (IMPLICIT_CONV_EXPR_DIRECT_INIT): New.
+
+2011-10-11  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/50611
+       * pt.c (tsubst_copy_and_build): If (complain & tf_error) is false
+       do not call unqualified_name_lookup_error.
+
+2011-10-10  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/50660
+       * call.c (conversion_null_warnings): Don't look through references.
+
+2011-10-09  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/38980
+       * init.c (constant_value_1): Add bool parameter.
+       (decl_constant_value_safe): Add.
+       (integral_constant_value): Adjust.
+       (decl_constant_value): Adjust.
+       * cp-tree.h (decl_constant_value_safe): Declare.
+       * typeck.c (decay_conversion): Use decl_constant_value_safe.
+       * call.c (convert_like_real): Likewise.
+
+2011-10-09  Jakub Jelinek  <jakub@redhat.com>
+           Diego Novillo  <dnovillo@google.com>
+
+       * pt.c (reregister_specialization): Use htab_find instead of
+       htab_find_slot with INSERT.
+       (maybe_process_partial_specialization, lookup_template_class_1): Change
+       slot variable type to void ** to avoid aliasing problems.
+       (register_specialization): Likewise.  Use slot != NULL instead of
+       more expensive !optimize_specialization_lookup_p (tmpl) test.
+
+2011-10-08  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/34927
+       * typeck2.c (abstract_virtuals_error_sfinae): Don't produce duplicate
+       inform messages in case of cloned destructor.
+
+2011-10-06  Jason Merrill  <jason@redhat.com>
+
+       PR c++/39164
+       * decl.c (grokfndecl): Diagnose redefinition of defaulted fn.
+
+2011-10-02  Jason Merrill  <jason@redhat.com>
+
+       * pt.c (tsubst_pack_expansion): Re-use ARGUMENT_PACK_SELECTs.
+       Change unsubstituted_packs to bool.
+
+       * parser.c (cp_parser_range_for): Don't try to deduce from {}
+       in a template.
+
+       PR c++/35722
+       Implement N2555 (expanding pack expansion to fixed parm list)
+       * pt.c (coerce_template_parms): Allow expanding a pack expansion
+       to a fixed-length argument list.
+       (unify_pack_expansion): Handle explicit args properly.
+       (unify) [TREE_VEC]: Handle pack expansions here.
+       [TYPE_ARGUMENT_PACK]: Not here.
+       (tsubst_pack_expansion): Don't try to do partial substitution.
+       (pack_deducible_p): New.
+       (fn_type_unification): Use it.
+       (find_parameter_packs_r): Take the TYPE_MAIN_VARIANT
+       of a type parameter.
+       (check_non_deducible_conversion): Split from type_unification_real.
+       (unify_one_argument): Split from type_unification_real...
+       (unify_pack_expansion): ...and here.  Drop call_args_p parm.
+       (type_unification_real, unify, more_specialized_fn): Adjust.
+
+       * class.c (fixed_type_or_null): Handle NSDMI.
+       * method.c (walk_field_subobs): Disable NSDMI noexcept checking
+       for now.
+
+2011-09-30  Jason Merrill  <jason@redhat.com>
+
+       * cp-tree.h (TREE_NEGATED_INT): Remove.
+       * semantics.c (finish_unary_op_expr): Don't set it.
+
+2011-09-30  Janis Johnson  <janisjo@codesourcery.com>
+
+       PR c++/44473
+       * mangle.c (write_type): Handle CV qualifiers for decimal classes.
+
 2011-09-26   Andi Kleen <ak@linux.intel.com>
 
        * repo.c (finish_repo): Use HOST_WIDE_INT_PRINT_HEX_PURE.