+2011-04-07 Jason Merrill <jason@redhat.com>
+
+ 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
+ DECL_LANG_SPECIFIC is NULL.
+
+2011-03-15 Jason Merrill <jason@redhat.com>
+
+ Core 1074
+ * pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Don't
+ check value_dependent_expression_p on the operand.
+
+ * semantics.c (push_cx_call_context): Return bool.
+ (cxx_eval_call_expression): Handle excess depth.
+
+ Core 1191
+ * method.c (synthesized_method_walk): Cleanups don't affect the
+ triviality of a constructor, but do affect deletion and exception
+ specification.
+
+2011-03-15 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
+
+ * decl2.c (cp_check_const_attributes): New.
+ (cplus_decl_attributes): Call cp_check_const_attributes.
+
+2011-03-15 Jason Merrill <jason@redhat.com>
+
+ PR c++/34758
+ * call.c (convert_default_arg): Use DECL_ORIGIN of fn. Check for
+ recursion first.
+ (push_defarg_context, pop_defarg_context): New.
+ * parser.c (cp_parser_late_parsing_default_args): Use them.
+ * cp-tree.h: Declare them.
+
+2011-03-11 Dodji Seketeli <dodji@redhat.com>
+
+ * call.c (add_builtin_candidate)<case INDIRECT_REF>: The type of
+ the argument of the indirection operator should not be dependent.
+ Fix the comment.
+
+2011-03-11 Jason Merrill <jason@redhat.com>
+
+ PR c++/47125
+ * pt.c (tsubst) [TYPENAME_TYPE]: Only give errors if tf_error.
+
+ PR c++/47144
+ * parser.c (cp_parser_template_type_arg): Set
+ type_definition_forbidden_message.
+
+ PR c++/47808
+ * decl.c (compute_array_index_type): Discard folding
+ if it didn't produce a constant.
+
+2011-03-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/48035
+ * init.c (build_zero_init_1): Extracted from build_zero_init.
+ Add FIELD_SIZE argument, if non-NULL and field bit_position
+ as not smaller than that, don't add that field's initializer.
+ Pass DECL_SIZE as last argument to build_zero_init_1
+ for DECL_FIELD_IS_BASE fields.
+ (build_zero_init): Use build_zero_init_1.
+
+2011-03-10 Jason Merrill <jason@redhat.com>
+
+ PR c++/48029
+ * pt.c (iterative_hash_template_arg): Remove special case for
+ ARRAY_TYPE.
+
+ PR c++/47198
+ * parser.c (cp_parser_single_declaration): Just return if
+ cp_parser_parse_and_diagnose_invalid_type_name complained.
+
+2011-03-09 Jason Merrill <jason@redhat.com>
+
+ PR c++/44629
+ * pt.c (unify): An unresolved overload is a nondeduced context.
+
+2011-03-09 Martin Jambor <mjambor@suse.cz>
+
+ PR tree-optimization/47714
+ * method.c (use_thunk): Clear addressable flag of thunk arguments.
+
+2011-03-08 Dodji Seketeli <dodji@redhat.com>
+
+ PR c++/47705
+ * pt.c (convert_nontype_argument): Only call decay_conversion on
+ arrays.
+
+2011-03-08 Jason Merrill <jason@redhat.com>
+
+ PR c++/47488
+ * mangle.c (write_template_arg_literal) [STRING_CST]: Sorry.
+
+ PR c++/47705
+ * pt.c (convert_nontype_argument): Don't crash on non-pointer
+ argument to pointer parameter.
+
+ PR c++/45651
+ * pt.c (instantiate_decl): Don't clear DECL_INTERFACE_KNOWN on
+ !TREE_PUBLIC decls.
+
+2011-03-08 Dodji Seketeli <dodji@redhat.com>
+
+ PR c++/47957
+ * name-lookup.c (binding_to_template_parms_of_scope_p): Only
+ consider scopes of primary template definitions. Adjust comments.
+
+2011-03-07 Jason Merrill <jason@redhat.com>
+
+ PR c++/48003
+ * pt.c (convert_nontype_argument): Fix -fpermissive allowing
+ integer overflow.
+ * semantics.c (potential_constant_expression_1): Check TREE_OVERFLOW.
+
+ PR c++/48015
+ * init.c (constant_value_1): Always require init to be TREE_CONSTANT.
+
+ PR c++/48008
+ * mangle.c (write_type): Strip cv-quals from FUNCTION_TYPE here.
+ (write_CV_qualifiers_for_type): Not here.
+
+2011-03-06 Joseph Myers <joseph@codesourcery.com>
+
+ * lang-specs.h: Match -save-temps* instead of -save-temps.
+
+2011-03-05 Jason Merrill <jason@redhat.com>
+
+ * mangle.c (write_expression): Change ABI v6 to v5.
+ (write_type): Likewise.
+
+2011-03-04 Jan Hubicka <jh@suse.cz>
+
+ PR lto/47497
+ * optimize.c (maybe_clone_body): Update call of cgraph_same_body_alias
+ and cgraph_add_thunk.
+ * method.c (make_alias_for_thunk, use_thunk): Likewise.
+ * mangle.c (mangle_decl): Likewise.
+
+2011-03-04 Jason Merrill <jason@redhat.com>
+
+ PR c++/47971
+ * pt.c (tsubst_copy_and_build) [PSEUDO_DTOR_EXPR]: Use tsubst for type.
+ (tsubst_copy) [default]: Just return t if !ENABLE_CHECKING.
+
+ PR c++/46220
+ * search.c (check_final_overrider): Allow pointer to same incomplete
+ class type with different cv-quals.
+
+2011-03-03 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/47974
+ * pt.c (tsubst_template_args): Check argument t for error_mark_node.
+
+2011-03-03 Jason Merrill <jason@redhat.com>
+
+ PR c++/47950
+ * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Retain TREE_CONSTANT.
+
+2011-03-02 Jason Merrill <jason@redhat.com>
+
+ PR c++/47950
+ * parser.c (cp_parser_condition): Don't fold_non_dependent_expr here.
+
+ PR c++/47774
+ * tree.c (build_vec_init_elt): Split out from...
+ (build_vec_init_expr): ...here.
+ (diagnose_non_constexpr_vec_init): New fn.
+ * semantics.c (potential_constant_expression_1): Use it.
+ * cp-tree.h: Declare it.
+
2011-03-01 Jason Merrill <jason@redhat.com>
+ PR c++/46159
+ * parser.c (cp_parser_primary_expression): Don't warn about a
+ failed tentative parse.
+
+ PR c++/47200
+ * semantics.c (cxx_bind_parameters_in_call): Don't call
+ adjust_temp_type on non-constant args.
+
PR c++/47851
* call.c (standard_conversion): Provide requested cv-quals on
class rvalue conversion.