OSDN Git Service

PR c++/48322
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index c975530..93cd960 100644 (file)
@@ -1,5 +1,170 @@
+2011-11-20  Jason Merrill  <jason@redhat.com>
+
+       PR c++/48322
+       * cp-tree.h (PACK_EXPANSION_EXTRA_ARGS): New.
+       * cp-tree.def (EXPR_PACK_EXPANSION): Add an operand for it.
+       * pt.c (tsubst_pack_expansion): Set and use it.
+       (iterative_hash_template_arg): Hash it.
+       (template_args_equal): Compare it.
+       (comp_template_args_with_info): Handle nulls.
+       * tree.c (cp_walk_subtrees): Walk it.
+       * typeck.c (structural_comptypes): Compare it.
+       * ptree.c (cxx_print_type): Print it.
+
+       * pt.c (type_unification_real): Set input_location
+       during default arg instantiation.
+
+2011-11-20  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/51230
+       * pt.c (unify_inconsistency): Handle non-type parameters better.
+       * error.c (dump_expr): Handle TEMPLATE_TEMPLATE_PARM.
+
+2011-11-20  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/51194
+       * pt.c (lookup_template_class_1): Go out early if the type of the
+       template is error_mark_node.
+
+2011-11-19  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/51216
+       * semantics.c (potential_constant_expression_1): Handle IF_STMT,
+       DO_STMT, FOR_STMT, and WHILE_STMT.
+
+2011-11-18  Fabien ChĂȘne  <fabien@gcc.gnu.org>
+
+       PR c++/51188
+       * search.c (lookup_field_1): Handle USING_DECLs for the storted
+       case.
+
+2011-11-18  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/51150
+       * pt.c (tsubst_copy_and_build): Handle FIX_TRUNC_EXPR.
+
+2011-11-18  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/51191
+       * pt.c (primary_template_instantiation_p): Don't forget to
+       consider alias declarations.
+
+2011-11-17  Jason Merrill  <jason@redhat.com>
+
+       PR c++/51186
+       * decl.c (grokdeclarator): Improve C++98 trailing return diagnostic.
+
+       N3203
+       * class.c (add_implicitly_declared_members): Update move
+       conditions.
+
+       PR c++/51137
+       * class.c (build_base_path): Don't do calculation in templates.
+
+2011-11-15  Torvald Riegel  <triegel@redhat.com>
+
+       * parser.c (cp_parser_transaction_expression): Require parentheses
+       when parsing transaction expressions.
+
+2011-11-14  Ed Smith-Rowland  <3dw4rd@verizon.net>
+
+       PR c++/51107
+       * typeck.c (check_literal_operator_args): Add processing_specialization
+       to check for void template fn. Test for exact arity for non-template fn.
+
+2011-11-14  Fabien ChĂȘne  <fabien@gcc.gnu.org>
+
+       PR c++/6936
+       PR c++/25994
+       PR c++/26256
+       PR c++/30195
+       * search.c (lookup_field_1): Look through USING_DECL.
+       (lookup_field_r): Call lookup_fnfields_slot instead of
+       lookup_fnfields_1.
+       * semantics.c (finish_member_declaration): Remove the check that
+       prevents USING_DECLs from being verified by
+       pushdecl_class_level. Call add_method for using declarations that
+       designates functions if the using declaration is in a template
+       class. Set DECL_IGNORED_P on class-scope using declarations.
+       * typeck.c (build_class_member_access_expr): Handle USING_DECLs.
+       * class.c (check_field_decls): Keep using declarations.
+       (add_method): Remove two diagnostics about conflicting using
+       declarations.
+       * parser.c (cp_parser_nonclass_name): Handle USING_DECLs.
+       * decl.c (start_enum): Call xref_tag whenever possible.
+       * cp-tree.h (strip_using_decl): Declare, and reident the previous
+       function.
+       * name-lookup.c (strip_using_decl): New function.
+       (supplement_binding_1): Call strip_using_decl on decl and
+       bval. Perform most of the checks with USING_DECLs stripped.  Also
+       check that the target decl and the target bval does not refer to
+       the same declaration. Allow pushing an enum multiple times in a
+       template class. Adjustment to diagnose using redeclarations. Call
+       diagnose_name_conflict.
+       (push_class_level_binding): Call strip_using_decl on decl and
+       bval. Perform most of the checks with USING_DECLs stripped. Return
+       true if both decl and bval refer to USING_DECLs and are dependent.
+       (diagnose_name_conflict): New function.
+
+2011-11-12  Jason Merrill  <jason@redhat.com>
+
+       PR c++/986
+       * call.c (set_up_extended_ref_temp): Warn about references
+       bound to non-static reference members.
+       * init.c (perform_member_init): Pass in the member.
+
+       PR c++/51060
+       * cp-gimplify.c (cp_gimplify_expr): Leave clobbers alone.
+
+2011-11-11  Ed Smith-Rowland  <3dw4rd@verizon.net>
+
+       PR c++/50976
+       * typeck.c (check_literal_operator_args): Reorganize test for string
+       operators so size_t search depends on finding string first.
+
+2011-11-10  Jason Merrill  <jason@redhat.com>
+
+       PR c++/50372
+       * pt.c (convert_nontype_argument_function): Allow decls with
+       internal linkage in C++11.
+       (convert_nontype_argument): Likewise.
+
+       PR c++/50973
+       * decl2.c (mark_used): Defer synthesis of virtual functions.
+       * method.c (use_thunk): Make sure the target function has
+       DECL_INTERFACE_KNOWN.
+
+       PR c++/51079, DR 495
+       * call.c (joust): Check the second conversion sequence
+       before checking templates.
+
+2011-11-09  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/50837
+       * pt.c (tsubst_copy_and_build) [IDENTIFIER_NODE]: In C++11 mode
+       pass allow_non_integral_constant_expression_p = true to
+       finish_id_expression.
+
 2011-11-09  Jason Merrill  <jason@redhat.com>
 
+       PR c++/50972
+       * pt.c (maybe_instantiate_noexcept): Check the return value of
+       push_tinst_level.
+
+       PR c++/51046
+       * parser.c (cp_parser_range_for): check_for_bare_parameter_packs.
+
+       PR c++/51029
+       * class.c (build_base_path): Don't ICE in fold_non_dependent_expr.
+
+       * Make-lang.in (check_g++_parallelize): Add dg-torture.exp.
+       (check-c++0x): Obsolete.
+
+       * pt.c (invalid_nontype_parm_type_p): Avoid printing "<type error>".
+
+       * pt.c (convert_nontype_argument): Only integral arguments
+       get early folding.
+
        * parser.c (cp_parser_alias_declaration): Don't do semantic
        processing if parsing failed.
 
 
 2011-11-09  Dodji Seketeli  <dodji@redhat.com>
 
+       PR c++/51043
+       * cp-tree.h (TYPE_ALIAS_P, TYPE_TEMPLATE_INFO): Don't crash on
+       NULL TYPE_NAME.
+
        PR c++/51027
        * parser.c (cp_parser_alias_declaration): Require ';' at the end
        of the declaration.