+2007-04-11 Jan Hubicka <jh@suse.cz>
+
+ * cp/class.c (convert_to_base_statically): Fold produced tree; verify
+ that we are not processing template_decl.
+
+2007-04-09 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/31449
+ * class.c (build_base_path): Ensure that the converted pointer has
+ the same cv-qualification as the input.
+
+2007-04-09 Paolo Carlini <pcarlini@suse.de>
+
+ * tree.c (cp_tree_equal): Deal with TRAIT_EXPR.
+
+2007-04-08 Steven Bosscher <steven@gcc.gnu.org>
+
+ * cp-objcp-common.h (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS):
+ Do not set it.
+ (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do not set it.
+ * tree.c (cp_add_pending_fn_decls): Remove.
+ * cp-tree.h (cp_add_pending_fn_decls): Remove prototype.
+
+2007-04-07 Daniel Berlin <dberlin@dberlin.org>
+
+ Revert change removing staticp.
+
+2007-04-06 Daniel Berlin <dberlin@dberlin.org>
+
+ * cp-objcp-common.c (cxx_staticp): Remove.
+ * cp-objcp-common.h (LANG_HOOKS_STATICP): Remove.
+ * cp-tree.h (cxx_staticp):
+
+2007-04-04 Danny Smith <dannysmith.users.sourceforge.net>
+
+ * class.c (check_for_override): Don't remove dllmport attribute
+ of virtual methods.
+
+2007-04-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/30847
+ * typeck.c (build_modify_expr): For COND_EXPR on LHS, if RHS has void
+ type issue error and return early.
+
+2007-03-30 Jason Merrill <jason@redhat.com>
+
+ PR c++/31187
+ * typeck.c (cp_type_readonly): New fn.
+ * cp-tree.h: Declare it.
+ * decl.c (start_decl): Set implicit DECL_THIS_STATIC here.
+ (cp_finish_decl): Not here.
+
+2007-03-31 Richard Guenther <rguenther@suse.de>
+
+ * optimize.c (maybe_clone_body): Replace splay-tree usage by
+ pointer-map.
+
+2007-03-31 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/31138
+ PR c++/31140
+ PR c++/31141
+ * parser.c (declarator_can_be_parameter_pack): New.
+ (cp_parser_template_parameter): Only parse the `...' if the
+ declarator can be a parameter pack.
+ (cp_parser_parameter_declaration): Ditto. Also, handle when TYPE
+ is NULL.
+ * pt.c (find_parameter_packs_r): Look into the bounds on integer
+ types (they could be used as array bounds).
+ (check_for_bare_parameter_packs): Deal with TEMPLATE_PARM_INDEX.
+ (tsubst_pack_expansion): Handle failure to expand parameter
+ packs.
+
+2007-03-30 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/26099
+ * cp-tree.h (enum cp_trait_kind, struct tree_trait_expr,
+ TRAIT_EXPR_TYPE1, TRAIT_EXPR_TYPE2, TRAIT_EXPR_KIND): Add.
+ (enum cp_tree_node_structure_enum, union lang_tree_node): Update.
+ (CLASS_TYPE_NON_UNION_P): Add.
+ (struct lang_type_class): Add has_complex_dflt.
+ (TYPE_HAS_COMPLEX_DFLT, TYPE_HAS_TRIVIAL_DFLT): Add.
+ (locate_copy, locate_ctor, locate_dtor, finish_trait_expr): Declare.
+ * cp-tree.def: Add TRAIT_EXPR.
+ * cp-objcp-common.c (cp_tree_size): Add TRAIT_EXPR case.
+ * lex.c (struct resword): Add __has_nothrow_assign,
+ __has_nothrow_constructor, __has_nothrow_copy, __has_trivial_assign,
+ __has_trivial_constructor, __has_trivial_copy,
+ __has_trivial_destructor, __has_virtual_destructor, __is_abstract,
+ __is_base_of, __is_class, __is_convertible_to, __is_empty, __is_enum,
+ __is_pod, __is_polymorphic, __is_union.
+ * parser.c (cp_parser_primary_expression): Deal with the new RIDs.
+ (cp_parser_trait_expr): New.
+ * semantics.c (finish_trait_expr, trait_expr_value
+ classtype_has_nothrow_copy_or_assign_p): New.
+ * method.c (locate_copy, locate_ctor, locate_dtor): Do not define
+ as static.
+ * decl.c (cp_tree_node_structure): Add TRAIT_EXPR.
+ * class.c (check_bases, check_field_decl, check_bases_and_members):
+ Deal with TYPE_HAS_COMPLEX_DFLT (t) too.
+ * pt.c (uses_template_parms, tsubst_copy_and_build,
+ value_dependent_expression_p, type_dependent_expression_p): Deal with
+ TRAIT_EXPR.
+ * tree.c (cp_walk_subtrees): Deal with TRAIT_EXPR.
+
+2007-03-29 Richard Guenther <rguenther@suse.de>
+
+ * tree.c (cp_walk_subtrees): Do not set input_location.
+
+2007-03-28 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c++/29077
+ * decl.c (grokfndecl): Properly setup decl if it is a constructor or a
+ destructor.
+
+2007-03-28 Douglas Gregor <doug.gregor@gmail.com>
+
+ * parser.c (struct cp_parser): Update comment for
+ greater_than_is_operator_p.
+ (cp_parser_primary_expression): In C++0x mode, a cast operator can
+ be terminated with a `>>' token when !GREATER_THAN_IS_OPERATOR_P.
+ (TOKEN_PRECEDENCE): In C++0x mode, `>>' is treated like `>' when
+ !GREATER_THAN_IS_OPERATOR_P.
+ (cp_parser_binary_expression): When -Wc++0x-compat, warn about
+ `>>' operators that will become two `>' tokens in C++0x.
+ (cp_parser_parameter_declaration): Treat `>>' like `>' in C++0x
+ mode, allowing it to terminate default arguments.
+ (cp_parser_enclosed_template_argument_list): In C++0x mode, treat
+ `>>' like two consecutive `>' tokens.
+ (cp_parser_skip_to_end_of_template_parameter_list): Ditto.
+ (cp_parser_next_token_ends_template_argument_p): In C++0x, `>>'
+ ends a template argument.
+
+2007-03-28 Douglas Gregor <doug.gregor@gmail.com>
+
+ * decl.c (redeclaration_error_message): Complain when redeclaring
+ a friend function with default template arguments (C++0x mode only).
+ * cp-tree.h (check_default_tmpl_args): Declare.
+ * pt.c (check_default_tmpl_args): In C++0x mode, permit default
+ template arguments in function templates. Add support for checking
+ the default template arguments of friend templates.
+ (push_template_decl_real): Fix call to check_default_tmpl_args.
+ (type_unification_real): If a template parameter has not been
+ deduced but provides a default template argument, substitute into
+ that default template argument.
+ * parser.c (cp_parser_init_declarator): When declaring (but not
+ defining!) a function template in C++0x mode, check for default
+ template arguments.
+
+2007-03-28 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/29993
+ * decl.c (grokdeclarator): Deal with cv-qualified function type
+ typedefs in the same way for member and non-member functions.
+
+2007-03-26 Dirk Mueller <dmueller@suse.de>
+
+ * parser.c (cp_parser_member_declaration): Pedwarn
+ about stray semicolons after member declarations.
+
+2007-03-26 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/30500
+ * pt.c (instantiate_decl): Set in_system_header.
+
+2007-03-22 Mark Mitchell <mark@codesourcery.com>
+
+ * cp-tree.h (current_tempalte_parms): Improve documentation.
+ * pt.c (current_template_args): Likewise.
+
+ PR c++/30863
+ * parser.c (cp_parser_parse_and_diagnose_invalid_type_name): Do
+ not consume tokens when failing.
+
+2007-03-22 Jim Wilson <wilson@specifix.com>
+ Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/31273
+ * call.c (standard_conversion): Use type_decays_to. Keep FCODE
+ consistent with FROM.
+
+2007-03-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * error.c (dump_expr): Handle dependent names that designate types.
+ * cxx-pretty-print.c (pp_cxx_unqualified_id): Handle TYPENAME_TYPE.
+
+2007-03-17 Kazu Hirata <kazu@codesourcery.com>
+
+ * cp-tree.def, parser.c, pt.c: Fix comment typos.
+
+2007-03-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * cvt.c (cp_convert_and_check) : Define.
+ * cp-tree.h (cp_convert_and_check): Declare.
+ * call.c (convert_conversion_warnings): Rename to
+ conversion_null_warnings. The warning for floating-point to
+ integer is handled by convert_and_check in convert_like_real.
+ (convert_like_real): convert_conversion_warnings was renamed as
+ conversion_null_warnings.
+ * typeck.c (build_binary_op): Use cp_convert_and_check to warn for
+ overflow and changes of value during conversion.
+
+2007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c++/30891
+ * parser.c (cp_parser_statement): If 'namespace' is found, this
+ only can be a namespace alias definition, so parse it now.
+ (cp_parser_namespace_alias_definition): if we find an open brace
+ instead of '=', then this is actually a misplaced namespace
+ definition.
+
+2007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c++/24924
+ * decl.c (cxx_init_decl_processing): Move command-line options
+ processing to c-opts.c.
+
+2007-03-15 Douglas Gregor <doug.gregor@gmail.com>
+
+ * ptree.c (cxx_print_type): Use formatting markup for integers
+ when printing template parameter index/level/orig level.
+ (cxx_print_xnode): Ditto.
+ * cp-tree.h (TEMPLATE_PARM_PARAMETER_PACK): Use TREE_LANG_FLAG_0.
+ (struct template_parm_index_s): Remove the PARAMETER_PACK member.
+ Make INDEX, LEVEL, and ORIG_LEVEL integers instead of
+ HOST_WIDE_INTs.
+ (struct saved_scope): Make X_PROCESSING_TEMPLATE_DECL an int,
+ rather than a HOST_WIDE_INT.
+ Turn X_PROCESSING_EXPLICIT_INSTANTIATION, SKIP_EVALUATION, and
+ NEED_POP_FUNCTION_CONTEXT into bool bitfields; reorder fields for
+ better bit-packing.
+ (struct language_function): Make RETURNS_VALUE, RETURNS_NULL,
+ RETURNS_ABNORMALLY, IN_FUNCTION_TRY_HANDLER, and
+ IN_BASE_INITIALIZER bool bitfields.
+ (struct cp_declarator): Make KIND a 4-bit field. Make
+ PARAMETER_PACK_P a bool bitfield just after KIND.
+ * pt.c (uses_parameter_packs): Destroy the pointer set.
+ (make_pack_expansion): Ditto.
+ (check_for_bare_parameter_packs): Ditto.
+ * name-lookup.c (push_to_top_level): Make need_pop a bool value.
+
+2007-03-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR c++/31165
+ * call.c (convert_default_arg): Instead of copying the node,
+ unshare it.
+
+2007-03-15 Dirk Mueller <dmueller@suse.de>
+
+ PR c++/30860
+ * call.c (convert_conversion_warnings): New..
+ (convert_like_real): .. factored out from here.
+ (convert_conversion_warnings): Add warning about
+ false being converted to NULL in argument passing.
+
+2007-03-14 Dirk Mueller <dmueller@suse.de>
+
+ * cp/semantics.c (c_finish_if_stmt): Call empty_if_body_warning.
+ (finish_do_body): Warn about empty body in do/while statement.
+
+2007-03-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * class.c (warn_hidden): Add OPT_Woverloaded_virtual to warning.
+
+2007-03-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c/21438
+ * typeck.c (build_binary_op): Call warn_for_div_zero instead of
+ warning.
+
+2007-03-13 Alexandre Oliva <aoliva@redhat.com>
+
+ * cp/repo.c (init_repo): Initialize random_seed saved options.
+ (finish_repo): Adjust.
+
+2007-03-13 Mark Mitchell <mark@codesourcery.com>
+
+ PR bootstrap/30899
+ * Make-lang.in (doc/g++.1): Use $< to specify the location from
+ which to copy.
+
+2007-03-12 Seongbae Park <seongbae.park@gmail.com>
+
+ * decl.c (compute_array_index_type): New warning flag warn_vla.
+
+2007-03-12 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/30108
+ * call.c (convert_default_arg): Copy non-constant arguments.
+
+2007-03-11 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/31038
+ * parser.c (cp_parser_postfix_expression): Disallow compound
+ literals in constant expressions.
+
+ PR c++/30328
+ * semantics.c (finish_typeof): Use unlowered_expr_type.
+
2007-03-10 Mark Mitchell <mark@codesourcery.com>
PR c++/30274