+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
+ * parser.c (cp_parser_decltype): Return ERROR_MARK_NODE if we
+ don't see the leading '('. Only lookup names if we get an
+ IDENTIFIER_NODE.
+
+2007-10-26 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/33744
+ * parser.c (cp_parser_parenthesized_expression_list): Set
+ greater_than_is_operator_p to true in between the parens.
+
+2007-10-26 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/31747
+ * decl.c (grokdeclarator): In case of conflicting specifiers
+ just return error_mark_node.
+
+2007-10-26 Ollie Wild <aaw@google.com>
+
+ * expr.c (cxx_expand_expr): Removed.
+ * cp-tree.h (exx_expand_expr): Removed.
+ * cp-objcp-common.h (LANK_HOOKS_EXPAND_EXPR): Replace cxx_expand_expr
+ with c_expand_expr.
+
+2007-10-25 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/33843
+ * cxx-pretty-print.c (pp_cxx_unqualified_id): Deal with BIT_NOT_EXPR.
+
+2007-10-23 Jason Merrill <jason@redhat.com>
+
+ PR c++/25950 (DR 391)
+ * call.c (struct conversion): Remove check_copy_constructor_p.
+ (reference_binding): Always bind a reference directly to a
+ compatible class rvalue. Pass down LOOKUP_NO_TEMP_BIND during
+ temporary creation.
+ (check_constructor_callable): Remove.
+ (convert_like_real): Don't call it.
+ (initialize_reference): Don't call check_constructor_callable.
+ (standard_conversion): Check LOOKUP_NO_CONVERSION instead of
+ LOOKUP_CONSTRUCTOR_CALLABLE. Don't require a temporary for base
+ conversions if LOOKUP_NO_TEMP_BIND.
+ (implicit_conversion): Pass through LOOKUP_NO_TEMP_BIND.
+ (build_user_type_conversion_1): Pass through LOOKUP_NO_TEMP_BIND for
+ second conversion.
+ * cp-tree.h (LOOKUP_CONSTRUCTOR_CALLABLE): Remove.
+
+2007-10-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/33372
+ * semantics.c (finish_omp_clauses): Check !type_dependent_expression_p
+ before checking if its type is integral.
+
+2007-10-22 Jason Merrill <jason@redhat.com>
+
+ PR c++/33620
+ * class.c (finish_struct_bits): Copy TYPE_ATTRIBUTES.
+ * pt.c (apply_late_template_attributes): Splice out dependent
+ attributes from DECL_ATTRIBUTES.
+
+ * decl.c (cxx_maybe_build_cleanup): Use build_address.
+
+2007-10-17 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * typeck.c (build_binary_op) : Use appropriate warning option
+ instead of unnamed warning.
+
+2007-10-16 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/31446
+ * pt.c (current_template_args): Do not change TREE_LIST elements
+ with a TREE_VALUE of error_mark_node.
+
+2007-10-16 Mark Mitchell <mark@codesourcery.com>
+
+ * typeck.c (cp_apply_type_quals_to_decl): Expand documentation.
+ * decl.c (start_decl): Tidy.
+ (start_decl_1): Call cp_apply_type_quals_to_decl after completing
+ the type.
+ (grokdeclarator): Clarify comment.
+
+2007-10-14 Andrew Pinski <pinskia@gmail.com>
+
+ PR c++/30303
+ * decl.c (grokfndecl): Return NULL after the "definition of
+ implicitly-declared" error happened.
+
+2007-10-12 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c++/26698
+ * call.c (build_user_type_conversion_1): Do not consider conversion
+ functions to convert a (possibly cv-qualified) object to the (possibly
+ cv-qualified) same object type (or a reference to it), to a (possibly
+ cv-qualified) base class of that type (or a reference to it).
+
+2007-10-12 Paolo Carlini <pcarlini@suse.de>
+
+ * pt.c (tsubst): Use template_parm_level_and_index.
+
+2007-10-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/32121
+ * parser.c (cp_parser_compound_statement): Handle label-declarations
+ at the beginning of the compound statement.
+ (cp_parser_block_declaration): Issue diagnostics about __label__
+ not at the beginning of a block.
+
+2007-10-11 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/33461
+ * pt.c (coerce_template_parameter_pack): Do not pass error_mark_node
+ to convert_template_argument.
+ (coerce_template_parms): Return error_mark_node after fixed-length
+ error.
+ (tsubst_decl): Check for error_mark_node the return value of the
+ first tsubst in 'case VAR_DECL'.
+
+2007-10-08 Ollie Wild <aaw@google.com>
+
+ * typeck2.c (digest_init): Call cplus_expand_constant after
+ convert_for_initialization.
+ * cp-objcp-common.h (LANG_HOOKS_EXPAND_CONSTANT): Removed.
+ * expr.c (cplus_expand_constant): Updated function description.
+
+2007-10-04 Jason Merrill <jason@redhat.com>
+
+ PR c++/20416
+ * call.c (initialize_reference): Handle local static reference
+ temps properly.
+
+2007-10-03 Jason Merrill <jason@redhat.com>
+
+ PR c++/32470
+ * name-lookup.c (push_namespace_with_attrs): Fold back into...
+ (push_namespace): Here.
+ (handle_namespace_attrs): New fn for the attr code.
+ (leave_scope): Don't pop_visibility.
+ * name-lookup.h (struct cp_binding_level): Remove has_visibility.
+ * parser.c (cp_parser_namespace_definition): Call
+ handle_namespace_attrs and pop_visibility as appropriate.
+
+ PR c++/11756
+ * mangle.c (write_type) [TYPEOF_TYPE]: Just sorry.
+
+2007-10-03 Alexandre Oliva <aoliva@redhat.com>
+
+ * decl.c (duplicate_decls): Preserve linkage flags for mere
+ redeclarations of gnu_inline definitions.
+
+2007-10-03 Jason Merrill <jason@redhat.com>
+
+ PR c++/15764
+ * decl.c (wrap_cleanups_r): New fn.
+ (wrap_temporary_cleanups): New fn.
+ (initialize_local_var): Call it.
+
+2007-09-29 Jason Merrill <jason@redhat.com>
+
+ PR c++/33094
+ * decl.c (make_rtl_for_nonlocal_decl): It's ok for a member
+ constant to not have DECL_EXTERNAL if it's file-local.
+
+2007-09-28 Ollie Wild <aaw@google.com>
+
+ Revert
+ 2007-09-27 Ollie Wild <aaw@google.com>
+
+ * typeck2.c (digest_init): Call cplus_expand_constant after
+ convert_for_initialization.
+ * cp-objcp-common.h (LANG_HOOKS_EXPAND_CONSTANT): Removed.
+ * expr.c (cplus_expand_constant): Updated function description.
+
+2007-09-28 Jason Merrill <jason@redhat.com>
+
+ PR c++/10179
+ * class.c (layout_empty_base): Take rli parameter, update
+ rli->record_align if empty base has user-specified alignment.
+ (build_base_field): Pass rli to it.
+
+2007-09-28 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/33213
+ * error.c (dump_decl): Deal with TYPE_PACK_EXPANSION.
+
+2007-09-28 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/33118
+ * error.c (dump_expr): Deal with ARGUMENT_PACK_SELECT.
+ (dump_type): Use dump_template_argument for TYPE_ARGUMENT_PACK.
+ (dump_parameters): Just call dump_type for argument packs too.
+
+2007-09-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/31434
+ * tree.c (cp_build_qualified_type_real): Handle TYPE_PACK_EXPANSION
+ qualification by creating qualified PACK_EXPANSION_PATTERN and
+ then calling make_pack_expansion on it.
+
+2007-09-27 Ollie Wild <aaw@google.com>
+
+ * typeck2.c (digest_init): Call cplus_expand_constant after
+ convert_for_initialization.
+ * cp-objcp-common.h (LANG_HOOKS_EXPAND_CONSTANT): Removed.
+ * expr.c (cplus_expand_constant): Updated function description.
+
+2007-09-27 Jason Merrill <jason@redhat.com>
+
+ PR c++/33571
+ * decl2.c (is_late_template_attribute): Don't crash on unknown
+ attribute.
+
+2007-09-27 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/33493
+ * error.c (dump_expr): Deal with DELETE_EXPR and VEC_DELETE_EXPR.
+ * cxx-pretty-print.c (pp_cxx_delete_expression): Add missing
+ spaces in the formatting.
+ * cxx-pretty-print.h (pp_cxx_delete_expression): Declare.
+
+2007-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ * error.c (cxx_print_error_function): Add third argument, pass
+ it over to lhd_print_error_function.
+ (cp_print_error_function): If diagnostic->abstract_origin, print
+ virtual backtrace.
+ * cp-tree.h (struct diagnostic_info): New forward decl.
+ (cxx_print_error_function): Add third argument.
+
+2007-09-25 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c++/33207
+ * name-lookup.c (pushtag): Do not create an implicit typedef before
+ the associated type declaration is known to be valid.
+
+2007-09-25 Jakub Jelinek <jakub@redhat.com>
+
+ * tree.c (cxx_printable_name): Compare FUNCTION_DECL uids
+ rather than pointers.
+
+2007-09-24 Danny Smith <dannysmith@user.sourceforge.net>
+
+ PR c++/14688
+ * search.c (check_final_overrider): Fail if
+ targetm.comp_type_attributes returns 0.
+
+2007-09-24 Jason Merrill <jason@redhat.com>
+
+ PR c++/33239
+ * pt.c (resolve_typename_type): Don't look things up in the original
+ template if it would mean losing template arguments.
+
+2007-09-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/33506
+ * cp-tree.h (cxx_type_hash_eq): New prototype.
+ * cp-objcp-common.h (LANG_HOOKS_TYPE_HASH_EQ): Redefine.
+ * tree.c (cxx_type_hash_eq): New function.
+
+2007-09-24 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/33185
+ * tree.c (cp_build_qualified_type_real): Build a canonical
+ ARRAY_TYPE if the original ARRAY_TYPE was not a canonical type.
+
+2007-09-24 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/33112
+ PR c++/33185
+ * tree.c (cplus_array_compare): Compare pointers, not types.
+ (build_cplus_array_type_1): Store new array type into the hash
+ table before building the canonical type; build the canonical type
+ correctly.
+ (cp_build_qualified_type_real): Put all of the array types with
+ cv-qualified element types into the C++ array hash table, built as
+ variants of the unqualified versions.
+
+2007-09-23 Jason Merrill <jason@redhat.com>
+
+ PR c++/16370
+ * decl.c (grokdeclarator): Look through implicit TYPE_DECLs
+ for deprecation warnings.
+
+2007-09-22 Jason Merrill <jason@redhat.com>
+
+ PR c++/15269
+ * call.c (build_over_call): Warn about deprecated virtuals.
+
+ PR c++/19407
+ * cp-tree.h (ATTR_IS_DEPENDENT): New macro.
+ (MAYBE_TAGGED_TYPE_P): Remove.
+ * pt.c (apply_late_template_attributes): Check ATTR_IS_DEPENDENT
+ instead of calling is_late_template_attribute again.
+ (tsubst_decl) [TYPE_DECL]: Just check if the name is the tag.
+ (tsubst): A typedef is a TYPE_NAME != TYPE_MAIN_DECL.
+ Don't crash on typedefs from non-template classes.
+ * decl2.c (grokfield): Don't sorry about attrs on template parms.
+ (is_late_template_attribute): All attributes applied to template
+ parms or typename types are dependent. Static.
+ (splice_template_attributes): Pass decl through.
+ (save_template_attributes): Likewise.
+
+2007-09-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/33496
+ * pt.c (tsubst_copy) <case SIZEOF_EXPR>: Handle error_mark_node
+ returned from tsubst_pack_expansion.
+ (tsubst_copy_and_build) <case SIZEOF_EXPR>: Likewise.
+ (tsubst_copy_and_build) <case CONSTRUCTOR>: Likewise.
+
+2007-09-20 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/33460
+ * semantics.c (finish_id_expression): Use consistently
+ context_for_name_lookup.
+ * decl.c (fixup_anonymous_aggr): Fix error message for
+ anonymous struct (vs union).
+
+2007-09-19 Jason Merrill <jason@redhat.com>
+
+ PR c++/7586
+ * pt.c (tsubst): Handle typedefs by looking for the specialization.
+ (retrieve_specialization): Only tagged types use
+ DECL_TEMPLATE_INSTANTIATIONS.
+ (instantiate_class_template): Push nested classes too.
+ (tsubst_decl) [TYPE_DECL]: Only check for canonical decl for
+ tagged types.
+ * cp-tree.h (MAYBE_TAGGED_TYPE_P): New macro.
+ * init.c (is_aggr_type): Remove redundant tests.
+ * class.c (push_nested_class): Use CLASS_TYPE_P.
+
+2007-09-20 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/33459
+ * init.c (build_zero_init): If, recursively, build_zero_init
+ returns a NULL_TREE, do not append it to the VEC of constructors.
+
+2007-09-18 Jason Merrill <jason@redhat.com>
+
+ PR c++/17743
+ * pt.c (apply_late_template_attributes): Set processing_template_decl.
+ (tsubst_decl) [TYPE_DECL]: Preserve naming typedef, pass
+ ATTR_FLAG_TYPE_IN_PLACE.
+ (tsubst): Do unqualified lookup to find typedefs from current class.
+ [ARRAY_TYPE]: Propagate alignment info.
+ * decl2.c (is_late_template_attribute): Only defer handling of
+ attribute aligned if the expression is dependent.
+ (save_template_attributes): If we're deferring any attributes,
+ make this a naming typedef.
+
+2007-09-18 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/33462 (again)
+ * cxx-pretty-print.c (pp_cxx_va_arg_expression): Print
+ va_arg instead of __builtin_va_arg.
+
+2007-09-18 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/33462
+ * cxx-pretty-print.c (pp_cxx_va_arg_expression): Add.
+ (pp_cxx_primary_expression): Use it.
+ * cxx-pretty-print.h (pp_cxx_va_arg_expression): Declare.
+ * error.c (dump_expr): Use it.
+
+2007-09-18 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/33463
+ * cxx-pretty-print.c (pp_cxx_postfix_expression): Split
+ out case TYPEID_EXPR to...
+ (pp_cxx_typeid_expression): ... here; use pp_cxx_left_paren
+ and pp_cxx_right_paren.
+ * cxx-pretty-print.h (pp_cxx_typeid_expression): Declare.
+ * error.c (dump_expr): Use it.
+
+2007-09-18 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/33464
+ * cxx-pretty-print.c (pp_cxx_trait_expression): Add.
+ (pp_cxx_primary_expression): Use it.
+ * cxx-pretty-print.h (pp_cxx_trait_expression): Declare.
+ * error.c (dump_expr): Use it.
+
+2007-09-16 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/33124
+ * init.c (build_new): Remove warning for zero-element
+ allocations.
+
+2007-09-16 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/32756
+ * call.c (maybe_handle_implicit_object): Set this_p, clear
+ rvaluedness_matches_p.
+ (compare_ics): Do not compare rvaluedness matching when one of the
+ operands is an implicit object.
+
+2007-09-14 Jason Merrill <jason@redhat.com>
+
+ PR c++/17743, c++/19163
+ * decl2.c (is_late_template_attribute): New fn.
+ (splice_template_attributes, save_template_attributes): New fns.
+ (cplus_decl_attributes): Call save_template_attributes.
+ * pt.c (apply_late_template_attributes): New fn.
+ (instantiate_class_template, tsubst_decl): Use it.
+ * cp-tree.h: Declare is_late_template_attribute.
+
+2007-09-13 Tom Tromey <tromey@redhat.com>
+
+ * parser.c (cp_lexer_new_main): Don't use
+ c_lex_return_raw_strings.
+ (cp_lexer_get_preprocessor_token): Update. Add special case when
+ lexer is NULL.
+
+2007-09-11 Jan Hubicka <jh@suse.cz>
+
+ * method.c (use_thunk): Use tree_rest_of_compilation
+ * cp-objecp-common.h (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
+ (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): Define.
+ * cp-tree.h (expand_body): Kill.
+ (emit_associated_thunks): Declare.
+ * semantics.c (emit_associated_thunks): Export.
+ (expand_body): Kill.
+
+2007-09-09 David Daney <ddaney@avtrex.com>
+
+ PR c++/33324
+ * init.c (build_new_1): Use POINTER_PLUS_EXPR instead of MINUS_EXPR
+ to calculate cookie_ptr.
+
+2007-09-08 Jason Merrill <jason@redhat.com>
+
+ PR c++/33342
+ * pt.c (most_specialized_class): Set processing_template_decl
+ while tsubsting partial spec args.
+
+2007-09-06 Jason Merrill <jason@redhat.com>
+
+ * decl2.c (get_guard): Copy visibility from the guarded variable.
+
+2007-09-06 Jan Hubicka <jh@suse.cz>
+
+ * semantics.c (expand_body): Do not mark arguments of clones used.
+
+2007-09-06 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/32674
+ * decl.c (cp_finish_decl): When processing_template_decl,
+ deal correctly with init as TREE_LIST.
+
+2007-09-06 Tom Tromey <tromey@redhat.com>
+
+ * decl.c (finish_function): Put return's location on line zero of
+ file.
+
2007-09-05 Jason Merrill <jason@redhat.com>
+ PR c++/15745
+ * except.c (prepare_eh_type): Use type_decays_to.
+
PR c++/15097
* init.c (build_delete): Use build_headof to get the address of the
complete object if we aren't using the deleting destructor.