OSDN Git Service

gcc/testsuite
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index 191836d..235f7cb 100644 (file)
@@ -1,3 +1,762 @@
+2008-01-22  Tom Tromey  <tromey@redhat.com>
+
+       PR c++/34829:
+       * init.c (build_new_1): Only disallow Java aggregates.
+
+2008-01-22  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/34607
+       * semantics.c (finish_omp_for): Don't call c_finish_omp_for
+       if decl or init is error_mark_node.
+
+       PR c++/34918
+       * error.c (dump_expr): Handle VECTOR_CST.
+
+2008-01-21  Jason Merrill  <jason@redhat.com>
+
+       PR c++/33959
+       * pt.c (tsubst_aggr_type): Make sure our context is complete.
+
+       PR c++/34573
+       * pt.c (retrieve_local_specialization): Robustify.
+       (tsubst_pack_expansion, tsubst_decl): Remove redundant checks.
+
+       PR c++/34846
+       * pt.c (tsubst): Only call retrieve_local_specialization if the
+       original typedef was in a function template.
+
+       PR c++/34196
+       * decl.c (wrap_cleanups_r): Set TRY_CATCH_IS_CLEANUP.
+
+2008-01-21  Richard Guenther  <rguenther@suse.de>
+
+       PR c++/34850
+       * error.c (cp_print_error_function): Deal with recursive
+       BLOCK trees.
+
+2008-01-20  Paolo Carlini  <pcarlini@suse.de>
+
+        PR c++/34891
+        * error.c (dump_expr): Deal with VIEW_CONVERT_EXPR.
+
+2008-01-20  Paolo Carlini  <pcarlini@suse.de>
+
+        PR c++/34776
+       PR c++/34486
+        * name-lookup.c (do_class_using_decl): Do not call constructor_name_p
+       on non-IS_AGGR_TYPE scope.
+       (constructor_name_p): Assert IS_AGGR_TYPE.
+
+2008-01-18  Ian Lance Taylor  <iant@google.com>
+
+       PR c++/33407
+       * decl.c (duplicate_decls): Copy DECL_IS_OPERATOR_NEW flag.
+       (grok_op_properties): For NEW_EXPR and VEC_NEW_EXPR set
+       DECL_IS_OPERATOR_NEW flag.
+
+2008-01-16  Richard Guenther  <rguenther@suse.de>
+
+       PR c++/33819
+       * typeck.c (is_bitfield_expr_with_lowered_type): Recurse
+       for conversions to type variants.
+
+2008-01-15  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * parser.c (cp_parser_template_parameter): Fix C90 issue with mixing
+       declaration and code.  Update copyright year.
+
+2008-01-15  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/34399
+       * friend.c (do_friend): Don't query TYPE_BEING_DEFINED unless we
+       know we have a class type.
+
+2008-01-15  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/34751
+       * pt.c (coerce_template_parameter_pack): When substituting into
+       the type of a non-type template parameter pack. use the
+       deduced/substituted arguments.
+       * parser.c (declarator_can_be_parameter_pack): A pointer-to-member
+       can be a parameter pack with the ellipsis following it.  When we
+       have an erroneous declaration, allow it to be a parameter pack.
+       (cp_parser_template_parameter): Complain about default
+       arguments on non-type template parameter packs, and parse them
+       using the new cp_parser_default_argument.
+       (cp_parser_parameter_declaration): Complain about parameter packs
+       with default arguments. Move parsing of default arguments into a
+       new function, cp_parser_default_argument.
+       (cp_parser_default_argument): New; extracted from
+       cp_parser_parameter_declaration.
+
+2008-01-15  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/34051
+       PR c++/34055
+       PR c++/34102
+       PR c++/34103
+       * typeck.c (check_return_expr): If there are bare parameter packs
+       in the return value, set it to error_mark_node.
+       * tree.c (cp_walk_subtrees): Walk USING_DECL nodes.
+       * pt.c (find_parameter_packs_r): Look at the type of
+       IDENTIFIER_NODEs (e.g., for user-defined conversions).
+       (check_for_bare_parameter_packs): Flip the result: now returns
+       TRUE when there were bare parameter packs, FALSE otherwise.
+       (push_template_decl_real): Deal with flipped result of
+       check_for_bare_parameter_packs.
+       * semantics.c (finish_cond): If there are bare parameter packs in
+       the conditional, set it to error_mark_node.
+       (finish_expr_stmt): If there are bare parameter packs in the
+       expression, set it to error_mark_node.
+       (finish_for_expr): Ditto.
+       (finish_switch_cond): If there are bare parameter packs in
+       the conditional, set it to error_mark_node.
+       (finish_mem_initializers): If there are bare parameter packs in
+       the member initializer, set it to error_mark_node.
+       (finish_member_declaration): Check the attributes of the
+       declaration for bare parameter packs, and remove the attributes if
+       any have bare parameter packs.
+       * parser.c (cp_parser_using_declaration): Check the using
+       declaration for bare parameter packs.
+       (cp_parser_base_clause): If there are bare parameter packs in a
+       base specifier, don't add it to the chain.
+
+2008-01-15  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/34314
+       * error.c (dump_simple_decl): Display ellipsis for template
+       non-type parameter packs.
+       (dump_decl): Display ellipsis for template type parameter packs.
+       (dump_template_decl): Display ellipsis for template template
+       parameter packs.
+       * pt.c (redeclare_class_template): When redeclaring a class
+       template, check for collisions between template parameters and
+       template parameter packs.
+
+2008-01-15  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/33964
+       * pt.c (process_partial_specialization): Don't mark template
+       parameters that occur in non-deduced contexts.
+       (struct pair_fn_data): Add include_nondeduced_p.
+       (for_each_template_parm_r): Only visit non-deduced contexts if
+       include_nondeduced_p is set.
+       (for_each_template_parm): Added parameter include_nondeduced_p,
+       which states whether template parameters found in non-deduced
+       contexts should be visited.
+       (uses_template_parms): Visit all template parameters, even those
+       in non-deduced contexts.
+
+2008-01-15  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/34052
+       * pt.c (check_default_tmpl_args): Check for parameter packs that
+       aren't at the end of a primary template.
+       (push_template_decl_real): Remove check for parameter packs that
+       aren't at the end of a primary template; that now happens in
+       check_default_tmpl_args.
+       * semantics.c (finish_template_template_parm): Use
+       check_default_tmpl_args to check for errors in the template
+       parameter list.
+       
+2008-01-12  Doug Kwan  <dougkwan@google.com>
+
+       * decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
+       instead of OPT_Wreturn_type in warning due to ignored return type
+       qualifiers.
+       * pt.c: (tsubst_function_type): Use OPT_Wignored_qualifiers
+       instead of OPT_Wreturn_type in warning due to ignored return type
+       qualifiers.
+
+2008-01-08  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/33890
+       * semantics.c (finish_omp_for): Don't call
+       fold_build_cleanup_point_expr if processing_template_decl.
+
+2008-01-04  Paolo Carlini  <pcarlini@suse.de>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/34611
+       * error.c (dump_template_argument): Deal with TREE_LIST.
+
+2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
+
+       * parser.c (cp_parser_check_decl_spec): Don't warn about "long
+       long" in C++0x mode; change the warning to note that "long long"
+       is only unsupported in C++98 mode.
+
+2007-12-20  Jason Merrill  <jason@redhat.com>
+
+       PR c++/34111
+       * call.c (standard_conversion): Derived-to-base is considered a
+       standard conversion.
+
+2007-12-19  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/34513
+       * parser.c (cp_parser_omp_parallel): For non-combined parallel
+       call cp_parser_statement rather than
+       cp_parser_already_scoped_statement.
+
+2007-12-18  Jason Merrill  <jason@redhat.com>
+
+       PR c++/34206
+       * pt.c (tsubst_aggr_type): Do nothing if the type already doesn't 
+       use template parms.
+       (dependent_type_p_r): Handle the domain of an array.
+
+2007-12-18  Douglas Gregor  <doug.gregor@gmail.com>
+            Jakub Jelinek  <jakub@redhat.com>
+       
+       PR c++/32565
+       PR c++/33943
+       PR c++/33965
+       * pt.c (template_template_parm_bindings_ok_p): New; verifies
+       bindings of template template parameters after all template
+       arguments have been deduced.
+       (coerce_template_parms): Don't complain when COMPLAIN doesn't
+       include tf_error.
+       (fn_type_unification): Use template_template_parm_bindings_ok_p. 
+       (unify): Deal with variadic, bound template template parameters. 
+       (get_class_bindings): Use template_template_parm_bindings_ok_p. 
+
+2007-12-18  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/34488
+       * decl.c (grokdeclarator): Reject friend sfk_constructor
+       FUNCTION_TYPE.
+
+2007-12-17  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/34506
+       * parser.c (cp_parser_omp_all_clauses): Accept optional comma
+       in between clauses.
+
+2007-12-15  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR debug/7081
+       * cp-lang.c (cp_classify_record): New.
+       (LANG_HOOKS_CLASSIFY_RECORD): Override.
+
+2007-12-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/34238
+       * decl2.c (cp_write_global_declarations): Revert 2007-11-22 change.
+
+       PR c++/34364
+       * rtti.c (build_dynamic_cast): Call convert_from_reference even for
+       dynamic_cast in a template.
+
+2007-12-10  Simon Martin  <simartin@users.sourceforge.net>
+
+       PR c++/34059
+       * typeck.c (build_class_member_access_expr): Compute MEMBER_SCOPE from
+       MEMBER's BASELINK_ACCESS_BINFO instead of its BASELINK_BINFO.
+
+2007-12-10  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/34395
+       * error.c (dump_type_prefix, dump_type_suffix): Handle
+       TYPE_PACK_EXPANSION.
+
+       PR c++/34394
+       * error.c (dump_expr): Handle ABS_EXPR.
+
+2007-12-09  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/34178
+       PR c++/34340
+       * repo.c (repo_emit_p): Return 2 for DECL_INTEGRAL_CONSTANT_VAR_P
+       in class scope rather than DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
+       Return 2 also if DECL_EXPLICIT_INSTANTIATION.
+       * decl2.c (import_export_decl): Don't make VAR_DECLs import_p when
+       flag_use_repository and repo_emit_p returned 2.
+
+2007-12-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/34336
+       * tree.c (stabilize_call, stabilize_init): Do nothing if
+       processing_template_decl.
+
+2007-12-05  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/34271
+       * semantics.c (finish_decltype_type): For SCOPE_REF issue an
+       error instead of assertion failure.
+       * parser.c (cp_parser_decltype): If closing paren is not found,
+       return error_mark_node.
+
+2007-12-04  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/34101
+       * name-lookup.c (arg_assoc_template_arg): Recurse on argument
+       packs.
+       (arg_assoc_type): We don't need to handle TYPE_ARGUMENT_PACK here,
+       since arg_assoc_template_arg will deal with them (better).
+
+2007-12-04  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/33509
+       * pt.c (tsubst_exception_specification): Handle substitutions into
+       member templates, where tsubst_pack_expansion returns a
+       TYPE_PACK_EXPANSION.
+
+2007-12-04  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/33091
+       * pt.c (unify_pack_expansion): If we didn't deduce any actual
+       bindings for the template parameter pack, don't try to keep the
+       empty deduced arguments.
+       (unify): If a parameter is a template-id whose template argument
+       list contains a pack expansion that is not at the end, then we
+       cannot unify against that template-id.
+
+2007-12-02  Paolo Carlini  <pcarlini@suse.de>
+
+        PR c++/34061
+        * pt.c (current_template_args): Use error_operand_p.
+
+2007-12-02  Paolo Carlini  <pcarlini@suse.de>
+
+        PR c++/34273
+        * error.c (dump_decl): Handle TREE_BINFO.
+
+2007-12-01  Ollie Wild  <aaw@google.com>
+
+       PR c++/8171
+       * typeck.c (build_binary_op): Add conversion of pointers to function
+       members appearing as operands to the equality operators.
+
+2007-11-30  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/34275
+       * error.c (dump_expr): Handle OBJ_TYPE_REF.
+
+2007-11-29  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/34270
+       * tree.c (lvalue_p_1) <case COND_EXPR>: Handle x ?: y
+       in templates.
+       * typeck.c (is_bitfield_expr_with_lowered_type) <case COND_EXPR>:
+       Likewise.
+
+       PR c++/34267
+       PR c++/34268
+       * parser.c (cp_parser_decltype): Don't call finish_id_expression
+       on ~type.
+       * semantics.c (finish_decltype_type): Issue error on types, TYPE_DECLs
+       and ~type early.
+
+2007-11-27  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/34181
+       * method.c (use_thunk): Don't inline the call in the thunk.
+
+       PR c++/34213
+       * tree.c (decl_linkage): Static data members and static member
+       functions in anonymous ns classes are lk_external.
+
+2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       PR c++/34081
+       * decl.c (start_preparsed_function): Pass 
+       processing_template_decl for the new allocate_struct_function
+       parameter.
+
+2007-11-25  Richard Guenther  <rguenther@suse.de>
+
+       * decl.c (poplevel): Use BLOCK_CHAIN.
+
+2007-11-24  Ollie Wild  <aaw@google.com>
+
+       * typeck.c (delta_from_ptrmemfunc): New function.
+       (get_member_function_from_ptrfunc): Call delta_from_ptrmemfunc.
+       (build_binary_op): Call delta_from_ptrmemfunc.
+
+2007-11-23  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/30293
+       PR c++/30294
+       * decl.c (cp_finish_decl): Disallow variable or field
+       definitions if extern "Java" aggregates.
+       (grokparms): Disallow parameters with extern "Java"
+       aggregates.
+       (check_function_type): Disallow function return values
+       with extern "Java" aggregates.
+       * init.c (build_new_1): Disallow placement new with
+       extern "Java" aggregates.
+
+2007-11-23  Mark Mitchell  <mark@codesourcery.com>
+           Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+       
+       PR c++/5310
+       * call.c (convert_like_real): Build a zero constant when __null is
+       converted to an integer type.
+       
+2007-11-22  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/34094
+       * decl2.c (cp_write_global_declarations): Issue error about static
+       data members in anonymous namespace which are declared and used,
+       but not defined.
+
+2007-11-20  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/34089
+       * parser.c (cp_parser_class_head): Reject function template ids.
+
+       PR c++/28879
+       * tree.c (build_cplus_array_type_1): Don't pass any VLA types
+       when processing_template_decl to build_array_type.
+
+       PR c++/33962
+       * pt.c (more_specialized_fn): Don't segfault if one or
+       both argument list end with ellipsis.
+
+2007-11-18  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/30988
+       * semantics.c (finish_call_expr): Set
+       current_function_returns_abnormally if fn is noreturn FUNCTION_DECL
+       or OVERLOAD with all noreturn functions.
+
+2007-11-16  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/34100
+       * pt.c (apply_late_template_attributes): Do nothing if decl's type is
+       error_mark_node.
+
+2007-11-13  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/34054
+       PR c++/34056
+       PR c++/34057
+       PR c++/34058
+       PR c++/34060
+       * pt.c (find_parameter_packs_r): If ppd->set_packs_to_error,
+       set to error_mark_node the outermost POINTER_TYPE to the pack if
+       it is seen in a POINTER_TYPE.
+       (push_template_decl_real): If check_for_bare_parameter_packs
+       fails for function return type, set the return type to
+       integer_type_node.  If check_for_bare_parameter_packs failed
+       for non-function, return error_mark_node.
+
+       PR c++/29225
+       * call.c (build_new_op): Call resolve_args before calling
+       build_over_call.
+
+2007-11-11  Tom Tromey  <tromey@redhat.com>
+
+       PR c++/17577:
+       * lex.c (handle_pragma_implementation): Use cpp_included_before.
+
+2007-11-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       PR c++/8570
+       * pt.c (redeclare_class_template): Update error message. Use a
+       note to show the previous declaration.
+       (tsubst_friend_class): Use the location of the friend template as
+       the input location before calling redeclare_class_template.
+
+2007-11-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/34068
+       * semantics.c (finish_pseudo_destructor_expr): Handle
+       object == error_mark_node.
+
+2007-11-10  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/32241
+       * pt.c (tsubst_copy_and_build) <case COMPONENT_REF>: If object_type
+       is not scalar type, let finish_class_member_access_expr handle
+       diagnostics.  Pass BIT_NOT_EXPR argument to
+       finish_pseudo_destructor_expr.  Handle SCOPE_REF properly.
+
+2007-11-09  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/33510
+       * decl.c (cp_complete_array_type): If any of the initializer
+       elements are pack expansions, don't compute the array size yet.
+
+2007-11-08  Andrew Pinski  <pinskia@gmail.com>
+
+       PR c++/30297:
+       * tree.c (decl_linkage): Fields have no linkage.
+
+2007-11-08  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * class.c (build_ctor_vtbl_group): Lay out the new type and decl.
+
+2007-11-07  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/33045
+       PR c++/33837
+       PR c++/33838
+       * semantics.c (finish_decltype_type): See through INDIRECT_REFs.
+       Be careful with ERROR_MARK_NODEs.
+       * parser.c (cp_parser_check_access_in_redeclaration): Handle NULL
+       argument.
+
+2007-11-07  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/33501
+       * call.c (build_over_call): Don't check TREE_ADDRESSABLE
+       on incomplete type.
+
+2007-11-06  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/33977
+       PR c++/33886
+       * tree.c (c_build_qualified_type): Define bridge to
+       cp_build_qualified_type.
+
+2007-11-06  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/31439
+       PR c++/32114
+       PR c++/32115
+       PR c++/32125
+       PR c++/32126
+       PR c++/32127
+       PR c++/32128
+       PR c++/32253
+       PR c++/32566
+       * typeck.c (check_return_expr): Pass address of retval to
+       check_for_bare_parameter_packs.
+       * class.c (build_base_field): Tolerate bases that have no layout
+       due to errors.
+       (end_of_base): Ditto.
+       * tree.c (canonical_type_variant): Be careful with
+       ERROR_MARK_NODE.
+       * cp-tree.h (check_for_bare_parameter_packs): Now accepts a
+       tree*.
+       * pt.c (find_parameter_pack_data): Add set_packs_to_error field,
+       which states whether parameter packs should be replaced with
+       ERROR_MARK_NODE.
+       (find_parameter_packs_r): Pass addresses to cp_walk_tree wherever
+       possible. If set_packs_to_error is set true, replace the parameter
+       pack with ERROR_MARK_NODE. Manage our own pointer sets.
+       (uses_parameter_packs): Don't set parameter packs to
+       ERROR_MARK_NODE.
+       (check_for_bare_parameter_packs): Now takes a pointer to a tree,
+       which may be modified (if it is a parameter pack). Instructs
+       find_parameter_packs_r to replace parameter packs with
+       ERROR_MARK_NODE (so that they won't cause errors later on).
+       (process_template_parm): Pass pointer to
+       check_for_bare_parameter_packs.
+       (process_partial_specialization): Replace pack expansions before
+       the end of the template argument list with ERROR_MARK_NODE.
+       (push_template_decl_real): Pass pointer to
+       check_for_bare_parameter_packs. Replace parameter packs not at the
+       end of the template parameter list with ERROR_MARK_NODE.
+       (convert_template_argument): Be more careful about using DECL_NAME
+       on only declarations.
+       (unify): Can't unify against ERROR_MARK_NODE.
+       * semantics.c (finish_cond): Pass pointer to
+       check_for_bare_parameter_packs.
+       (finish_expr_stmt): Ditto.
+       (finish_for_expr): Ditto.
+       (finish_switch_cond): Pass pointer to
+       check_for_bare_parameter_packs, and call it before we put the
+       condition into the statement.
+       (finish_mem_initializers): Pass pointer to
+       check_for_bare_parameter_packs.
+       (finish_member_declaration): Ditto.
+       * parser.c (cp_parser_base_clause): Ditto.
+       
+2007-11-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/33168
+       * decl.c (cp_finish_decl): Call make_rtl_for_nonlocal_decl already
+       with the final TREE_READONLY flag in place.  processing_template_decl
+       is known to be 0 in this part of function.
+
+       PR c++/33894
+       * cp-tree.h: Update comment - TYPE_LANG_FLAG_0 is not
+       OMP_ATOMIC_DEPENDENT_P in OMP_ATOMIC.
+       * pt.c (tsubst_expr): Assert OMP_ATOMIC_DEPENDENT_P.
+       * semantics.c (finish_omp_atomic): Revert most of the
+       2007-02-05 changes, just keep the new representation of
+       OMP_ATOMIC_DEPENDENT_P OMP_ATOMIC.
+
+2007-11-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR c++/33871
+       * decl2.c (constrain_visibility): Clear DECL_ONE_ONLY if marked
+       local.
+
+2007-11-05  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/33996
+       PR c++/33235
+       PR c++/33930
+       * typeck.c (merge_types): Don't lose rvalue references when
+       merging types.
+       * call.c (build_over_call): Don't elide move constructors just
+       because the copy constructor is trivial (!).
+       (compare_ics): If comparing cv-qualifiers fails, we can still order
+       based on binding lvalues vs. rvalues.
+
+2007-11-05  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/33939
+       * pt.c (unify_pack_expansion): bring handling of function call
+       arguments into line with type_unification_real. 
+
+2007-11-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       * typeck.c (build_binary_op): Use pedwarn instead of error for
+       consistency.
+
+2007-11-05  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/33836
+       * parser.c (cp_parser_unary_expression): For &&label call
+       cp_parser_non_integral_constant_expression and return error_mark_node
+       if it returned true.
+
+       PR c++/33969
+       * decl.c (grokdeclarator): Don't call build_memfn_type if type
+       is neither FUNCTION_TYPE nor METHOD_TYPE.
+
+2007-11-02  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/33516
+       * parser.c (cp_parser_nested_name_specifier_opt): Use
+       TYPE_MAIN_VARIANT (new_scope) as scope if new_scope is an incomplete
+       typedef of currently open class.
+
+2007-11-02  Paolo Carlini  <pcarlini@suse.de>
+
+       PR c++/33495
+       * error.c (dump_expr): Deal specially with statements.
+
+2007-11-01  Jason Merrill  <jason@redhat.com>
+
+       PR c++/30897
+       * pt.c (push_template_decl_real): Set DECL_CONTEXT on template
+       template parms.
+       (lookup_template_class): Use it to get the outer template args
+       for instantiating one.
+
+       PR c++/29236
+       * pt.c (reduce_template_parm_level): tsubst the parameters
+       of a template template parm.
+
+2007-11-01  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/33955
+       * pt.c (find_parameter_packs_r): Handle TYPENAME_TYPE.
+
+2007-11-01  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/32384
+       * parser.c (cp_parser_postfix_dot_deref_expression): If
+       POSTFIX_EXPRESSION is type dependent, try to parse it as pseudo dtor
+       first and if that succeeds and type is SCALAR_TYPE_P, create
+       PSEUDO_DTOR_EXPR.
+
+       PR c++/32260
+       * rtti.c (enum_tinfo_kind): Fix TK_TYPE_INFO_TYPE comment.
+       (typeid_ok_p): Use the same alias set for abi::__type_info_pseudo
+       as for std::type_info.
+
+2007-10-31  Paolo Carlini  <pcarlini@suse.de>
+
+       PR c++/33494
+       * cxx-pretty-print.c (pp_cxx_typeid_expression,
+       pp_cxx_delete_expression): Change to static linkage.
+       * cxx-pretty-print.h: Adjust declarations.
+       * error.c (dump_expr, case EXPR_PACK_EXPANSION, TYPEID_EXPR,
+       MEMBER_REF, DOTSTAR_EXPR, DELETE_EXPR, VEC_DELETE_EXPR,
+       MODOP_EXPR): Forward to pp_expression.
+
+       * cxx-pretty-print.c (pp_cxx_expression, case NON_DEPENDENT_EXPR):
+       Fix typo.
+
+2007-10-31 Christian Bruel  <christian.bruel@st.com>
+           Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/19531
+       * typeck.c (check_return_expr): Don't set named_return_value_okay_p
+       if retval is volatile. 
+       
+2007-10-30  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/33616
+       * decl2.c (build_offset_ref_call_from_tree): Call
+       build_non_dependent_expr on object prior to building ADDR_EXPR from it
+       if FN is DOTSTAR_EXPR.
+
+2007-10-30  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/31993
+       PR c++/32252
+       * pt.c (find_parameter_packs_r): Fix typo in comment.
+       (convert_template_argument): Look at the pattern of a pack
+       expansion to determine what kind of entity we're converting.
+       (coerce_template_parameter_pack): When we have coerced a non-type
+       template parameter pack, substitute into the type of that pack.
+       (tsubst_pack_expansion): When our substitution of a parameter pack
+       is a "trivial" substitution of itself, just substitute into the
+       pack expansion rather than actually expanding.
+
+2007-10-29  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/33841
+       * class.c (check_bitfield_decl): Don't set field's type to error_mark_node
+       for non-integral type bitfields.  Return true if bitfield is correct, false
+       error has been diagnosed.
+       (check_field_decls): If check_bitfield_decl returned false, call also
+       check_field_decl.
+
+2007-10-28  Paolo Carlini  <pcarlini@suse.de>
+           Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/30659
+       * pt.c (do_decl_instantiation): If the VAR_DECL is not a
+       class member error out and return.
+
+2007-10-27  Jakub Jelinek  <jakub@redhat.com>
+
+       * error.c (reinit_cxx_pp): Initialize cxx_pp->enclosing_scope
+       to current_function_decl rather than 0.
+
+       PR c++/33844
+       * cxx-pretty-print.c (pp_cxx_pm_expression) <case MEMBER_REF>: Print
+       ->* rather than .*.
+       * error.c (dump_expr): Handle MEMBER_REF and DOTSTAR_EXPR.
+
+2007-10-27  Jason Merrill  <jason@redhat.com>
+
+       PR c++/5247
+       * call.c (convert_default_arg): Detect recursion.
+
+2007-10-27  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/33842
+       * cxx-pretty-print.h (pp_cxx_offsetof_expression): New prototype.
+       * cxx-pretty-print.c (pp_cxx_primary_expression): Handle
+       OFFSETOF_EXPR.
+       (pp_cxx_offsetof_expression_1, pp_cxx_offsetof_expression): New
+       functions.
+       * error.c (dump_expr): Handle OFFSETOF_EXPR.
+
+2007-10-26  Jason Merrill  <jason@redhat.com>
+
+       PR c++/24791
+       * pt.c (get_template_info): New fn.
+       (template_class_depth): Use it.
+       (push_template_decl_real): Check that the template args of the 
+       definition match the args of the previous declaration.
+
+2007-10-26  Paolo Carlini  <pcarlini@suse.de>
+
+       PR c++/31988
+       * decl2.c (coerce_new_type): Do not allow a default argument for
+       the first parameter.
+
 2007-10-26  Douglas Gregor  <doug.gregor@gmail.com>
 
        PR c++/33839