+2014-07-14 Jan Hubicka <hubicka@ucw.cz>
+
+ * class.c (build_clone): Do not clear assembler names of
+ templates.
+ * decl.c (cp_tree_node_structure): Add TEMPLATE_DECL.
+ * cp-objcp-common.c (cp_tree_size): Add TEMPLATE_DECL
+ as a special case return sizeof (struct tree_decl_non_common)
+ for other decls.
+ (cp_common_init_ts): Do not initialize NAMESPACE_DECL;
+ initialize TEMPLATE_DECL as MARK_TS_DECL_COMMON.
+ * cp/cp-tree.h (tree_template_decl): New structure.
+ (cp_tree_node_structure_enum): Add TS_CP_TEMPLATE_DECL.
+ (union cp_lang_tree_node): Add template_decl.
+ (DECL_TEMPLATE_PARMS, DECL_TEMPLATE_RESULT): Update.
+
+2014-07-14 Jason Merrill <jason@redhat.com>
+
+ PR c++/61445
+ PR c++/56947
+ * pt.c (instantiate_decl): Don't check defer_ok for local class
+ members.
+
+2014-07-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/61294
+ * cp-tree.h (LITERAL_ZERO_P): Define.
+ * parser.c (cp_parser_parenthesized_expression_list): Add
+ want_literal_zero_p argument, if true, for literal zeros
+ insert INTEGER_CSTs with LITERAL_ZERO_P flag set.
+ (cp_parser_postfix_expression): Adjust
+ cp_parser_parenthesized_expression_list caller, handle
+ -Wmemset-transposed-args.
+ (literal_zeros): New variable.
+
+2014-07-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/58511
+ * semantics.c (is_instantiation_of_constexpr): Return true for
+ defaulted functions, too.
+ (explain_invalid_constexpr_fn): Only use
+ explain_implicit_non_constexpr if !DECL_DECLARED_CONSTEXPR_P.
+ * method.c (explain_implicit_non_constexpr): Pass
+ DECL_INHERITED_CTOR_BASE to explain_implicit_non_constexpr.
+
+ PR c++/58611
+ * decl.c (check_initializer): Don't finish_compound_literal
+ on erroneous constexpr init.
+
+ PR c++/58612
+ * tree.c (bot_replace): Only replace a dummy 'this' parm.
+
+ PR c++/60628
+ * decl.c (create_array_type_for_decl): Only check for auto once.
+
+ PR c++/58636
+ * call.c (build_list_conv): Don't try to build a list of references.
+
+2014-07-13 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ PR C++/60209 - Declaration of user-defined literal operator cause error
+ * cp/parser.c (cp_parser_operator()): Fold treatment of strings
+ and user-defined string literals. Use the full string parser.
+ (cp_parser_string_literal()): Add flag to not look for literal operator.
+
+2014-07-11 Jason Merrill <jason@redhat.com>
+
+ PR c++/22434
+ PR c++/61288
+ * call.c (build_conditional_expr_1): Avoid reading freed memory.
+
+2014-07-11 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/53159
+ * call.c (build_user_type_conversion_1): Copy LOOKUP_NO_NARROWING
+ into convflags.
+ * decl.c (check_initializer): Don't call check_narrowing here,
+ set LOOKUP_NO_NARROWING.
+ * typeck2.c (digest_init_r): Likewise.
+
+2014-07-10 Jason Merrill <jason@redhat.com>
+
+ PR c++/61661
+ * semantics.c (reduced_constant_expression_p): Handle CONSTRUCTOR.
+
+ PR c++/61659
+ PR c++/61687
+ * decl2.c (mark_all_virtuals): New variable.
+ (maybe_emit_vtables): Check it instead of flag_devirtualize.
+ (cp_write_global_declarations): Set it and give helpful diagnostic
+ if it introduces errors.
+ * class.c (finish_struct_1): Check it.
+ * decl.c (grokdeclarator): Clear virtualp after 'virtual auto' error.
+
+2014-07-09 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/60686
+ * decl.c (grokdeclarator): Adjust error messages about 'explicit'
+ outside class declaration, in friend declaration, and neither on
+ constructor nor conversion operator.
+
+2014-07-09 Paolo Carlini <paolo.carlini@oracle.com>
+
+ DR 1584
+ PR c++/57466
+ * pt.c (check_cv_quals_for_unify): Implement resolution, disregard
+ cv-qualifiers of function types.
+
+2014-07-09 Andrew Sutton <andrew.n.sutton@gmail.com>
+ Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/59361
+ * parser.c (cp_parser_tokens_start_cast_expression): Return 0 for
+ CPP_ELLIPSIS too.
+
+2014-07-07 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * class.c (check_for_override): Wrap the 'final' and 'override'
+ keywords in %< and %>.
+
+2014-07-06 Marek Polacek <polacek@redhat.com>
+
+ PR c/6940
+ * cp-tree.h (DECL_ARRAY_PARAMETER_P): Define.
+ * decl.c (grokdeclarator): Set DECL_ARRAY_PARAMETER_P.
+ * typeck.c (cxx_sizeof_expr): Warn when using sizeof on an array
+ function parameter.
+
+2014-07-02 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * pt.c (convert_template_argument): Use inform instead of error in
+ three places.
+
+2014-06-30 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ PR c++/58781
+ PR c++/60249
+ PR c++/59867
+ * parser.c (cp_parser_userdef_string_literal): Take a tree
+ not a cp_token*.
+ (cp_parser_string_literal): Don't hack the token stream.
+
+2014-06-30 Jason Merrill <jason@redhat.com>
+
+ PR c++/61659
+ PR lto/53808
+ * decl2.c (maybe_emit_vtables): Mark all vtable entries if
+ devirtualizing.
+ * init.c (build_vtbl_address): Don't mark destructor.
+ * class.c (finish_struct_1): Add all classes to keyed_classes
+ if devirtualizing.
+
+ PR c++/61647
+ * pt.c (type_dependent_expression_p): Check BASELINK_OPTYPE.
+
+ PR c++/61566
+ * mangle.c (decl_mangling_context): Look through a TEMPLATE_DECL.
+
+ * decl.c (build_ptrmemfunc_type): Don't give a PMF RECORD_TYPE
+ TYPE_BINFO or TYPE_LANG_SPECIFIC.
+ * cp-tree.h (TYPE_PTRMEMFUNC_FLAG): Use TYPE_LANG_FLAG_2.
+ (TYPE_PTRMEMFUNC_P): Don't expect TYPE_LANG_SPECIFIC.
+ * typeck.c (build_ptrmemfunc_access_expr): Don't use lookup_member.
+ * pt.c (unify): Also check whether the argument is a PMF.
+
+2014-06-30 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/54891
+ * parser.c (cp_parser_tokens_start_cast_expression): In C++11
+ a '[' can also start a primary-expression.
+ (cp_parser_cast_expression): Parse a cast-expression only tentatively
+ when cp_parser_tokens_start_cast_expression returns -1.
+
+2014-06-30 Jason Merrill <jason@redhat.com>
+
+ PR c++/61539
+ * pt.c (unify_one_argument): Type/expression mismatch just causes
+ deduction failure.
+
+ * semantics.c (simplify_aggr_init_expr): Remove remnants of
+ 2014-04-11 change.
+
+2014-06-30 Marek Polacek <polacek@redhat.com>
+
+ * cp-gimplify.c (cp_genericize): Don't instrument returns if the
+ function has no_sanitize_undefined attribute.
+ * decl.c (compute_array_index_type): Don't instrument VLAs if the
+ function has no_sanitize_undefined attribute.
+
+2014-06-30 Igor Zamyatin <igor.zamyatin@intel.com>
+
+ PR middle-end/57541
+ * cp-array-notation.c (expand_sec_reduce_builtin):
+ Check that bultin argument is correct.
+ * call.c (build_cxx_call): Check for 0 arguments in builtin call.
+
+2014-06-28 Jonathan Wakely <jwakely@redhat.com>
+
+ DR 1579
+ PR c++/58051
+ * typeck.c (check_return_expr): Lookup as an rvalue even when the
+ types aren't the same.
+
+2014-06-27 Jason Merrill <jason@redhat.com>
+
+ PR c++/61433
+ * error.c (dump_template_bindings): Don't tsubst in a clone.
+
+2014-06-27 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/61614
+ * semantics.c (finish_compound_literal): Revert r204228.
+
+2014-06-27 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * parser.c (cp_parser_compound_literal_p): New.
+ (cp_parser_postfix_expression, cp_parser_sizeof_operand): Use it.
+
+2014-06-26 Jason Merrill <jason@redhat.com>
+
+ * parser.c (cp_parser_for_init_statement): Change range-for error
+ to pedwarn.
+
+ N3994 Ranged-based for-loops: The Next Generation
+ * parser.c (cp_lexer_nth_token_is): New.
+ (cp_parser_for_init_statement): Allow "for (id : init)".
+
+2014-06-26 Teresa Johnson <tejohnson@google.com>
+
+ * class.c (dump_class_hierarchy): Use saved dump files.
+ (dump_vtable): Ditto.
+ (dump_vtt): Ditto.
+
+2014-06-26 Adam Butcher <adam@jessamine.co.uk>
+
+ PR c++/61537
+ * parser.c (cp_parser_elaborated_type_specifier): Only consider template
+ parameter lists outside of function parameter scope.
+
+2014-06-25 Paolo Carlini <paolo.carlini@oracle.com>
+
+ DR 178
+ PR c++/49132
+ * typeck2.c (process_init_constructor_record): Do not complain about
+ uninitialized const members, because within aggregate-initialization,
+ members without explicit initializers are value-initialized.
+
+2014-06-25 Jakub Jelinek <jakub@redhat.com>
+
+ * semantics.c (finish_omp_clauses): Make sure
+ OMP_CLAUSE_LINEAR_STEP has correct type.
+
+2014-06-24 Jan Hubicka <hubicka@ucw.cz>
+
+ * class.c (check_methods, create_vtable_ptr, determine_key_method,
+ add_vcall_offset_vtbl_entries_1): Guard VINDEX checks by
+ FUNCTION_DECL check.
+ * cp-tree.h (lang_decl_ns): Add ns_using and ns_users.
+ (DECL_NAMESPACE_USING, DECL_NAMESPACE_USERS): Use lang_decl_ns.
+ (DECL_NAMESPACE_ASSOCIATIONS): Use DECL_INITIAL.
+ (DECL_TEMPLATE_INSTANTIATIONS): Use DECL_SIZE_UNIT.
+
+2014-06-24 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/33972
+ * decl.c (grokdeclarator): Do not early check for operator-function-id
+ as non-function.
+
+2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
+
+ * class.c, semantics.c, tree.c, vtable-class-hierarchy.c:
+ Adjust.
+
+2014-06-24 Jakub Jelinek <jakub@redhat.com>
+
+ * parser.c (cp_parser_omp_for_loop): For
+ #pragma omp parallel for simd move lastprivate clause from parallel
+ to for rather than simd.
+
+2014-06-23 Paolo Carlini <paolo.carlini@oracle.com>
+
+ DR 577
+ PR c++/33101
+ * decl.c (grokparms): Accept a single parameter of type 'void'.
+
+2014-06-20 Jason Merrill <jason@redhat.com>
+
+ PR c++/59296
+ * call.c (add_function_candidate): Avoid special 'this' handling
+ if we have a ref-qualifier.
+
+ PR c++/61556
+ * call.c (build_over_call): Call build_this in template path.
+
+2014-06-19 Jason Merrill <jason@redhat.com>
+
+ PR c++/59296
+ * call.c (add_function_candidate): Also set LOOKUP_NO_TEMP_BIND.
+
+2014-06-18 Jason Merrill <jason@redhat.com>
+
+ PR c++/59296
+ * call.c (add_function_candidate): Set LOOKUP_NO_RVAL_BIND for
+ ref-qualifier handling.
+
+ PR c++/61507
+ * pt.c (resolve_overloaded_unification): Preserve
+ ARGUMENT_PACK_EXPLICIT_ARGS.
+
+2014-06-18 Jakub Jelinek <jakub@redhat.com>
+
+ * cp-gimplify.c (cxx_omp_finish_clause): Add a gimple_seq *
+ argument.
+ * cp-tree.h (cxx_omp_finish_clause): Adjust prototype.
+
+2014-06-17 Jason Merrill <jason@redhat.com>
+
+ PR c++/60605
+ * pt.c (check_default_tmpl_args): Check DECL_LOCAL_FUNCTION_P.
+
+2014-06-15 Jason Merrill <jason@redhat.com>
+
+ PR c++/61488
+ * pt.c (check_valid_ptrmem_cst_expr): Fix for template context.
+
+ PR c++/61500
+ * tree.c (lvalue_kind): Handle MEMBER_REF and DOTSTAR_EXPR.
+
+2014-06-15 Jan Hubicka <hubicka@ucw.cz>
+
+ * decl.c (grokvardecl): Fix pasto in previous patch.
+
+2014-06-15 Jan Hubicka <hubicka@ucw.cz>
+
+ * decl.c (duplicate_decls): Use set_decl_tls_model.
+ (grokdeclarator): Likewise.
+ * semantics.c (finish_id_expression): Check TLS only for
+ static variables.
+ (finish_omp_threadprivate): Use decl_default_tls_model.
+ * decl2.c (get_guard): Likewise.
+ * call.c (make_temporary_var_for_ref_to_temp): Likewise.
+
+2014-06-14 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/33101
+ * decl.c (grokparms): Improve error message about void parameters.
+ * error.c (type_to_string): Fix aka cut off code.
+
+2014-06-12 Jason Merrill <jason@redhat.com>
+
+ * call.c (convert_arg_to_ellipsis): Use abi_version_crosses.
+ * cvt.c (type_promotes_to): Likewise.
+ * mangle.c (write_type, write_expression): Likewise.
+ (write_name, write_template_arg): Likewise.
+ (mangle_decl): Make alias based on flag_abi_compat_version.
+ Emit -Wabi warning here.
+ (finish_mangling_internal): Not here. Drop warn parm.
+ (finish_mangling_get_identifier, finish_mangling): Adjust.
+ (mangle_type_string, mangle_special_for_type): Adjust.
+ (mangle_ctor_vtbl_for_type, mangle_thunk): Adjust.
+ (mangle_guard_variable, mangle_tls_init_fn): Adjust.
+ (mangle_tls_wrapper_fn, mangle_ref_init_variable): Adjust.
+
+ * call.c (build_operator_new_call): Remove -fabi-version=1 support.
+ * class.c (walk_subobject_offsets, include_empty_classes): Likewise.
+ (layout_nonempty_base_or_field, end_of_class): Likewise.
+ (layout_empty_base, build_base_field, layout_class_type): Likewise.
+ (is_empty_class, add_vcall_offset_vtbl_entries_1): Likewise.
+ (layout_virtual_bases): Likewise.
+ * decl.c (compute_array_index_type): Likewise.
+ * mangle.c (write_mangled_name, write_prefix): Likewise.
+ (write_template_prefix, write_integer_cst, write_expression): Likewise.
+ (write_template_arg, write_array_type): Likewise.
+ * method.c (lazily_declare_fn): Likewise.
+ * rtti.c (get_pseudo_ti_index): Likewise.
+ * typeck.c (comp_array_types): Likewise.
+
+2014-06-11 Jan Hubicka <hubicka@ucw.cz>
+
+ * vtable-class-hierarchy.c: Update handling for section names
+ that are no longer trees.
+ * decl.c (duplicate_decls): Likewise.
+
+2014-06-11 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/19200
+ * parser.c (cp_parser_init_declarator): Actually pass friend_p
+ to cp_parser_declarator.
+
+2014-06-11 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/60265
+ * parser.c (cp_parser_using_declaration): Handle unscoped enums.
+ * name-lookup.c (validate_nonmember_using_decl): Adjust error
+ message.
+
+2014-06-11 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/19200
+ * parser.c (cp_parser_declarator): Add bool parameter.
+ (cp_parser_direct_declarator): Likewise, use it.
+ (cp_parser_member_declaration): Pass friend_p to cp_parser_declarator.
+ (cp_parser_condition, cp_parser_explicit_instantiation,
+ cp_parser_init_declarator, cp_parser_type_id_1,
+ cp_parser_parameter_declaration, cp_parser_exception_declaration,
+ cp_parser_cache_defarg, cp_parser_objc_class_ivars,
+ cp_parser_objc_struct_declaration, cp_parser_omp_for_loop_init):
+ Adjust.
+ * decl.c (grokdeclarator): Fix handling of friend declared in
+ namespace scope (g++.dg/parse/friend10.C).
+
+2014-06-10 Jan Hubicka <hubicka@ucw.cz>
+
+ * vtable-class-hierarchy.c: Use symtab_get_node (var_decl)
+ ->implicit_section.
+ * optimize.c (cdtor_comdat_group): Fix handling of aliases.
+ (maybe_clone_body): Move symbol across comdat groups.
+ * method.c (use_thunk): Copy implicit section flag.
+
+2014-06-09 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/22556
+ * name-lookup.c (pushdecl_maybe_friend_1): Use comptypes.
+
+2014-06-07 Jan Hubicka <hubicka@ucw.cz>
+
+ * method.c (use_thunk): Use set_decl_section_name.
+ * optimize.c (maybe_clone_body): Use set_decl_section_name.
+ * decl.c (duplicate_decls): Likewise.
+ * vtable-class-hierarchy.c: Likewise.
+
+2014-06-06 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/60184
+ * class.c (check_field_decls): In C++11 mode do not reject
+ static data members and reference-type members in unions.
+
+2014-06-05 Jason Merrill <jason@redhat.com>
+
+ PR c++/43453
+ * decl.c (check_initializer): Collapse a TREE_LIST here.
+ * typeck2.c (store_init_value): Not here.
+
+2014-06-05 Richard Biener <rguenther@suse.de>
+ Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/56961
+ * cp-gimplify.c (cp_gimplify_expr, [MODIFY_EXPR]): Rework
+ handling of empty classes.
+
+2014-06-04 Jason Merrill <jason@redhat.com>
+
+ * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful note
+ for noexcept and thread_local, too.
+
+ PR c++/61343
+ * decl.c (check_initializer): Maybe clear
+ DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
+
+2014-06-05 Richard Biener <rguenther@suse.de>
+
+ PR c++/61004
+ * typeck.c (cp_build_indirect_ref): Do not emit strict-aliasing
+ warnings for accessing empty classes.
+
+2014-06-05 Marek Polacek <polacek@redhat.com>
+
+ PR c/49706
+ * parser.c (cp_parser_binary_expression): Warn when logical not is
+ used on the left hand side operand of a comparison.
+
+2014-06-04 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/43453
+ * typeck.c (cp_build_modify_expr): Handle array of characters
+ initialized by a string literal.
+ * decl.c (check_initializer): Handle parenthesized string literal
+ as initializer.
+ * typeck2.c (store_init_value): Remove redundant check.
+
2014-06-04 Jason Merrill <jason@redhat.com>
PR c++/51253