+2011-04-11 Jason Merrill <jason@redhat.com>
+
+ PR c++/48523
+ * tree.c (maybe_dummy_object): Use build_x_indirect_ref rather
+ than cp_build_indirect_ref.
+
+ PR c++/48457, Core 1238
+ * call.c (reference_binding): Allow rvalue reference to bind to
+ function lvalue.
+ * tree.c (lvalue_kind): Functions are always lvalues.
+
+2011-04-07 Jason Merrill <jason@redhat.com>
+
+ PR c++/48500
+ * semantics.c (potential_constant_expression_1) [CALL_EXPR]: Check
+ arguments even if we don't know the function.
+
+ PR c++/48481
+ * tree.c (build_overload): Allow an unwrapped FUNCTION_DECL
+ at the end of the chain.
+ * pt.c (dependent_template_p): Use OVL_CURRENT/NEXT.
+ (iterative_hash_template_arg): Likewise.
+
+ PR c++/48481
+ * cp-tree.h (OVL_ARG_DEPENDENT): New.
+ * name-lookup.c (add_function): Set it.
+ * semantics.c (finish_call_expr): Free OVERLOADs if it's set.
+
+ PR c++/48481
+ * call.c (build_user_type_conversion_1): Use lookup_fnfields_slot.
+ Release unused vector.
+
+ PR c++/48451
+ * pt.c (fn_type_unification): Don't clear incomplete pack flag.
+ (type_unification_real): Clear it here instead.
+
+ PR c++/48468
+ * except.c (build_noexcept_spec): Propagate error_mark_node.
+ (finish_noexcept_expr): Likewise.
+
+ PR c++/48452
+ * typeck.c (build_x_compound_expr_from_list): Return error_mark_node
+ in SFINAE context.
+
+ PR c++/48450
+ * call.c (resolve_args): Take complain.
+ (build_new_function_call, build_operator_new_call): Pass it.
+ (build_op_call, build_new_op, build_new_method_call): Pass it.
+
+ PR c++/48450
+ * typeck.c (check_for_casting_away_constness): Take complain.
+ (build_static_cast_1, build_reinterpret_cast_1): Pass it.
+ (build_const_cast_1): Pass it. Take full complain parm.
+ (build_const_cast, cp_build_c_cast): Adjust.
+
+ * tree.c (build_aggr_init_expr): Always return error_mark_node
+ on abstract violation.
+
+ PR c++/48450
+ * tree.c (build_cplus_new, build_aggr_init_expr): Take complain.
+ (bot_manip): Adjust.
+ * cp-tree.h: Adjust.
+ * call.c (convert_like_real, build_cxx_call): Adjust.
+ (perform_direct_initialization_if_possible): Adjust.
+ * cvt.c (ocp_convert): Adjust.
+ * init.c (build_value_init): Adjust.
+ * semantics.c (maybe_add_lambda_conv_op): Adjust.
+ * typeck.c (unary_complex_lvalue, cp_build_modify_expr): Adjust.
+ * typeck2.c (build_functional_cast): Adjust.
+
+ * init.c (build_value_init_noctor): Handle REFERENCE_TYPE at top
+ level.
+ (perform_member_init): Not here.
+ * typeck2.c (build_functional_cast): Limit REFERENCE_TYPE special
+ case to templates.
+ (abstract_virtuals_error_sfinae): Remove RESULT_DECL special case.
+
+ PR c++/48449
+ * typeck2.c (build_functional_cast): Check complain consistently.
+ Use build_value_init and abstract_virtuals_error_sfinae.
+ (abstract_virtuals_error_sfinae): Split out.
+ * cp-tree.h: Declare it.
+ * init.c (build_new_1): Use it.
+ (build_value_init_noctor): Handle FUNCTION_TYPE.
+
+ * semantics.c (finish_decltype_type): Simplify handling of unknown
+ type.
+
+ * semantics.c (finish_decltype_type): Add complain parm.
+ * cp-tree.h: Adjust.
+ * parser.c (cp_parser_decltype): Adjust.
+ * pt.c (tsubst): Adjust.
+
+ PR c++/48450
+ * cvt.c (ocp_convert): Handle converting scoped enum to bool.
+
+2011-03-31 Jason Merrill <jason@redhat.com>
+
+ PR c++/48277
+ * semantics.c (finish_call_expr): Remove assert.
+
+ PR c++/48280
+ * method.c (defaultable_fn_check): Templates are not defaultable.
+
+ * parser.c (cp_parser_init_declarator): Avoid redundant
+ cp_finish_decl for member declarations.
+
+2011-03-30 Jason Merrill <jason@redhat.com>
+
+ PR c++/48212
+ * semantics.c (non_const_var_error): Just return if DECL_INITIAL
+ is error_mark_node.
+
+2011-03-30 Jason Merrill <jason@redhat.com>
+
+ PR c++/48369
+ * semantics.c (potential_constant_expression_1): Handle
+ UNORDERED_EXPR and ORDERED_EXPR.
+
+ PR c++/48281
+ * semantics.c (finish_compound_literal): Do put static/constant
+ arrays in static variables.
+
+ * call.c (convert_like_real) [ck_list]: Build up the
+ initializer_list object directly.
+ * decl.c (build_init_list_var_init): Adjust.
+
+ * call.c (convert_like_real): Correct TREE_CONSTANT on CONSTRUCTOR.
+ * decl.c (reshape_init_array_1): Likewise.
+
+2011-03-29 Jason Merrill <jason@redhat.com>
+
+ PR c++/48265
+ * pt.c (value_dependent_expression_p) [VAR_DECL]: Make sure
+ the variable is constant before looking at its initializer.
+
+ PR c++/48319
+ * pt.c (value_dependent_expression_p): Handle TEMPLATE_ID_EXPR.
+
+ PR c++/48089
+ * semantics.c (potential_constant_expression_1): Change error about
+ use of *this in constructor into sorry.
+
+ PR c++/48296
+ * decl.c (cp_finish_decl): Defer validation of constexpr member
+ functions.
+ * class.c (finalize_literal_type_property): Validate them here.
+ * semantics.c (is_valid_constexpr_fn): Don't check completeness.
+
+ * semantics.c (is_valid_constexpr_fn): Specify input location.
+
+2011-03-28 Jason Merrill <jason@redhat.com>
+
+ PR c++/48313
+ * pt.c (maybe_adjust_types_for_deduction): Handle T&& deduction
+ from overloaded function.
+
+ Core 1232
+ * call.c (build_array_conv): New.
+ (implicit_conversion): Use it.
+
+ * call.c (reference_binding): Allow direct binding to an array
+ rvalue.
+
+ Core 898
+ * parser.c (cp_parser_compound_statement): Add function_body parm.
+ Complain about non-body compound-stmt in constexpr fn.
+ (cp_parser_primary_expression, cp_parser_statement): Adjust.
+ (cp_parser_implicitly_scoped_statement): Adjust.
+ (cp_parser_function_body, cp_parser_try_block): Adjust.
+ (cp_parser_handler, cp_parser_objc_synchronized_statement): Adjust.
+ (cp_parser_objc_try_catch_finally_statement): Adjust.
+
+ Core 898
+ * semantics.c (constexpr_fn_retval): New. Allow using-declaration
+ and using-definition.
+ (register_constexpr_fundef): Call it.
+
+ * except.c (build_noexcept_spec): Call cxx_constant_value after
+ converting to bool.
+
+2011-03-25 Kai Tietz <ktietz@redhat.com>
+
+ * lex.c (interface_strcmp): Handle dos-paths.
+ (handle_pragma_implementation): Use filename_cmp instead of
+ strcmp.
+ (in_main_input_context): Likewise.
+
+2011-03-25 Jason Merrill <jason@redhat.com>
+
+ Core 1135
+ * method.c (defaulted_late_check): Check for exception spec mismatch.
+ (defaultable_fn_check): Allow exception spec and virtual.
+ * class.c (check_for_override): A virtual dtor is non-trivial.
+
+ PR c++/48289
+ * pt.c (build_non_dependent_expr): Keep dereferences outside the
+ NON_DEPENDENT_EXPR.
+
+2011-03-25 Kai Tietz <ktietz@redhat.com>
+
+ * decl.c (decls_match): Replace target hook
+ call of comp_type_attributes by version in tree.c file.
+ * search.c (check_final_overrider): Likewise.
+ * typeck.c (structural_comptypes): Likewise.
+
+2011-03-21 Kai Tietz <ktietz@redhat.com>
+
+ PR target/12171
+ * cxx-pretty-print.c (pp_cxx_ptr_operator):
+ Display allowed attributes for function pointer types.
+ * error.c (dump_type_prefix): Likewise.
+
+ * tree.c (cxx_attribute_table): Adjust table.
+
+2011-03-18 Jason Merrill <jason@redhat.com>
+
+ PR c++/48162
+ * semantics.c (finish_call_expr): Allow TARGET_EXPR for now.
+
+ PR c++/48118
+ * call.c (build_over_call): Don't skip ck_rvalue.
+
+2011-03-17 Jason Merrill <jason@redhat.com>
+
+ PR c++/47504
+ * semantics.c (cxx_eval_constant_expression) [NOP_EXPR]: Don't let
+ the conversion set TREE_OVERFLOW.
+
+ Core 1212
+ * semantics.c (finish_decltype_type): Return T&& for xvalue.
+ * typeck.c (unlowered_expr_type): Preserve cv-quals.
+
+ PR c++/48166
+ * decl.c (revert_static_member_fn): Strip function-cv-quals.
+
+2011-03-16 Jason Merrill <jason@redhat.com>
+
+ PR c++/48089
+ * semantics.c (potential_constant_expression_1): Don't allow *this
+ in a constructor.
+ (register_constexpr_fundef): Use potential_rvalue_constant_expression.
+
+ PR c++/47301
+ * decl.c (compute_array_index_type): Don't bother trying to deal
+ with literal classes in ABI v1.
+
+ PR c++/46336
+ * decl.c (duplicate_decls): Return NULL_TREE for clashing
+ C functions.
+
+ PR c++/47570
+ * semantics.c (cxx_eval_constant_expression) [COMPOUND_EXPR]: Don't
+ use the generic binary expression handling.
+
+2011-03-16 Diego Novillo <dnovillo@google.com>
+
+ * Make-lang.in (CXX_PARSER_H): New.
+ (cp/parser.o): Add dependency on CXX_PARSER_H.
+ Add dependency on tree-pretty-print.h
+ (cp/cp-lang.o): Add dependency on CXX_PARSER_H.
+ * cp-lang.c: Include parser.h.
+ * parser.c: Include parser.h.
+ (struct cp_token): Add bitfield purged_p.
+ Update all users.
+ Move to parser.h.
+ (CPP_PURGED): Remove. Update all users.
+ (struct cp_lexer): Change field buffer to be a VEC of cp_token.
+ Remove field buffer_length.
+ Update all users.
+ Move to parser.h.
+ (struct tree_check): Move to parser.h.
+ (cp_token_position): Likewise.
+ (struct cp_token_cache): Likewise.
+ (CPP_KEYWORD): Likewise.
+ (CPP_TEMPLATE_ID): Likewise.
+ (CPP_NESTED_NAME_SPECIFIER): Likewise.
+ (N_CP_TTYPES): Likewise.
+ (enum cp_parser_status_kind): Likewise.
+ (struct cp_parser_context): Likewise.
+ (struct cp_default_arg_entry_d): Likewise.
+ (struct cp_unparsed_functions_entry_d): Likewise.
+ (struct cp_parser): Likewise.
+ (cp_lexer_dump_tokens): New.
+ (cp_lexer_debug_tokens): New.
+ (cp_lexer_finished_p): New.
+ (cp_lexer_alloc): Factor out of cp_lexer_new_main.
+ (cp_lexer_new_main): Re-write main lexing loop to push
+ tokens into the new VEC buffer.
+ (cp_lexer_print_token): Improve printing of CPP_NUMBER tokens.
+ Do not abort if the token type is not recognized, just print
+ its code.
+ * parser.h: New file.
+ * config-lang.in (gtfiles): Add cp/parser.h.
+
+2011-03-16 Jason Merrill <jason@redhat.com>
+
+ Core 1148
+ * typeck.c (check_return_expr): Fix conditions for setting
+ LOOKUP_PREFER_RVALUE.
+
+ * call.c (build_over_call): Remove require_complete_type_sfinae call.
+
+ PR c++/48132
+ * decl.c (check_array_designated_initializer): Allow integer index.
+ (reshape_init_array_1): Set index on the elements.
+
+2011-03-16 Jason Merrill <jason@redhat.com>
+
+ PR c++/48113
+ * typeck.c (convert_for_initialization): Use
+ perform_implicit_conversion_flags.
+ * call.c (standard_conversion): If LOOKUP_PREFER_RVALUE, set
+ rvaluedness_matches_p on ck_rvalue.
+ (convert_like_real) [ck_rvalue]: And restore it here.
+
+ PR c++/48115
+ * call.c (convert_arg_to_ellipsis): Handle incomplete type.
+
+2011-03-16 Jason Merrill <jason@redhat.com>
+
+ * parser.c (cp_parser_abort_tentative_parse): Make sure we haven't
+ committed to this tentative parse.
+
+ PR c++/47999
+ * semantics.c (finish_call_expr): Preserve reference semantics
+ in templates.
+
+ * call.c (convert_default_arg): Use LOOKUP_IMPLICIT.
+
2011-03-16 Jakub Jelinek <jakub@redhat.com>
* cp-objcp-common.c (cp_function_decl_explicit_p): Don't crash if