aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@gcc.gnu.org>2016-01-04 15:30:50 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2016-01-04 15:30:50 +0100
commit818ab71a415cd234be092111a0aa5e812ec56434 (patch)
treee08721a9b85169debf961d7ebab013160b616a42 /gcc/cp
parent21fa2a29dc265ab54c957c37d8a9e9ab07d7cd66 (diff)
downloadgcc-818ab71a415cd234be092111a0aa5e812ec56434.zip
gcc-818ab71a415cd234be092111a0aa5e812ec56434.tar.gz
gcc-818ab71a415cd234be092111a0aa5e812ec56434.tar.bz2
Update copyright years.
From-SVN: r232055
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog4225
-rw-r--r--gcc/cp/ChangeLog-20154230
-rw-r--r--gcc/cp/Make-lang.in2
-rw-r--r--gcc/cp/NEWS2
-rw-r--r--gcc/cp/call.c2
-rw-r--r--gcc/cp/cfns.gperf2
-rw-r--r--gcc/cp/cfns.h2
-rw-r--r--gcc/cp/class.c2
-rw-r--r--gcc/cp/config-lang.in2
-rw-r--r--gcc/cp/constexpr.c2
-rw-r--r--gcc/cp/constraint.cc2
-rw-r--r--gcc/cp/cp-array-notation.c2
-rw-r--r--gcc/cp/cp-cilkplus.c2
-rw-r--r--gcc/cp/cp-gimplify.c2
-rw-r--r--gcc/cp/cp-lang.c2
-rw-r--r--gcc/cp/cp-objcp-common.c2
-rw-r--r--gcc/cp/cp-objcp-common.h2
-rw-r--r--gcc/cp/cp-tree.def2
-rw-r--r--gcc/cp/cp-tree.h2
-rw-r--r--gcc/cp/cp-ubsan.c2
-rw-r--r--gcc/cp/cvt.c2
-rw-r--r--gcc/cp/cxx-pretty-print.c2
-rw-r--r--gcc/cp/cxx-pretty-print.h2
-rw-r--r--gcc/cp/decl.c2
-rw-r--r--gcc/cp/decl.h2
-rw-r--r--gcc/cp/decl2.c2
-rw-r--r--gcc/cp/dump.c2
-rw-r--r--gcc/cp/error.c2
-rw-r--r--gcc/cp/except.c2
-rw-r--r--gcc/cp/expr.c2
-rw-r--r--gcc/cp/friend.c2
-rw-r--r--gcc/cp/g++spec.c2
-rw-r--r--gcc/cp/init.c2
-rw-r--r--gcc/cp/lambda.c2
-rw-r--r--gcc/cp/lang-specs.h2
-rw-r--r--gcc/cp/lex.c2
-rw-r--r--gcc/cp/logic.cc2
-rw-r--r--gcc/cp/mangle.c2
-rw-r--r--gcc/cp/method.c2
-rw-r--r--gcc/cp/name-lookup.c2
-rw-r--r--gcc/cp/name-lookup.h2
-rw-r--r--gcc/cp/operators.def2
-rw-r--r--gcc/cp/optimize.c2
-rw-r--r--gcc/cp/parser.c2
-rw-r--r--gcc/cp/parser.h2
-rw-r--r--gcc/cp/pt.c2
-rw-r--r--gcc/cp/ptree.c2
-rw-r--r--gcc/cp/repo.c2
-rw-r--r--gcc/cp/rtti.c2
-rw-r--r--gcc/cp/search.c2
-rw-r--r--gcc/cp/semantics.c2
-rw-r--r--gcc/cp/tree.c2
-rw-r--r--gcc/cp/type-utils.h2
-rw-r--r--gcc/cp/typeck.c2
-rw-r--r--gcc/cp/typeck2.c2
-rw-r--r--gcc/cp/vtable-class-hierarchy.c2
56 files changed, 4286 insertions, 4277 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 4c7e384..362c835 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,4229 +1,8 @@
-2015-12-24 Jason Merrill <jason@redhat.com>
-
- PR c++/69005
- * call.c (add_template_candidate_real): Don't try to deduce X(X).
-
-2015-12-22 Jason Merrill <jason@redhat.com>
-
- PR c++/66921
- * decl.c (cp_complete_array_type): Allow an initializer that
- already has array type.
-
- PR c++/67257
- * parser.c (cp_parser_single_declaration): Reject a class template
- that also declares a variable.
-
- PR c++/67339
- * parser.c (cp_parser_elaborated_type_specifier): Use CLASS_TYPE_P
- rather than check for RECORD_TYPE.
-
-2015-12-22 Patrick Palka <ppalka@gcc.gnu.org>
-
- * pt.c (make_pack_expansion): Make sure to initialize
- ppd.type_pack_expansion_p.
-
-2015-12-21 David Malcolm <dmalcolm@redhat.com>
-
- * typeck.c (cp_build_binary_op): Update for change in signature
- of build_binary_op. Use error_at to replace an implicit use
- of input_location with param "location" in "invalid operands"
- error.
- (cp_build_binary_op): Replace an error with an error_at, using
- "location", rather than implicitly using input_location.
-
-2015-12-20 Jason Merrill <jason@redhat.com>
-
- PR c++/67411
- * decl2.c (decl_maybe_constant_var_p): Use DECL_HAS_VALUE_EXPR_P.
-
- PR c++/67411
- * lambda.c (generic_lambda_fn_p): Split out from...
- (maybe_add_lambda_conv_op): ...here.
- * semantics.c (process_outer_var_ref): Don't defer maybe-constant
- variables in a generic lambda.
- * pt.c (instantiate_non_dependent_or_null): New.
- * init.c (constant_value_1): Use it.
- * cp-tree.h: Declare it and generic_lambda_fn_p.
-
- PR c++/67411
- * decl2.c (decl_maybe_constant_var_p): A proxy isn't constant.
-
-2015-12-18 Patrick Palka <ppalka@gcc.gnu.org>
-
- PR c++/68978
- * tree.c (lvalue_kind) [MODOP_EXPR]: New case.
-
-2015-12-18 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/67592
- * decl.c (grokdeclarator): Reject constexpr virtual member functions;
- in error messages, prefer %<virtual%> and %<constexpr%> to virtual
- and constexpr, respectively.
-
-2015-12-18 Patrick Palka <ppalka@gcc.gnu.org>
-
- PR c++/68831
- * init.c (build_delete): Use a warning sentinel to disable
- -Waddress warnings when building the conditional that tests
- if the operand is NULL.
-
-2015-12-17 Jason Merrill <jason@redhat.com>
-
- PR c++/67550
- * init.c (constant_value_1): Don't return a CONSTRUCTOR missing
- non-constant elements.
-
- PR c++/67576
- PR c++/25466
- * rtti.c (build_typeid): Use save_expr, not stabilize_reference.
-
-2015-12-16 Patrick Palka <ppalka@gcc.gnu.org>
-
- PR c++/16333
- PR c++/41426
- PR c++/59879
- PR c++/66895
- * typeck.c (convert_for_initialization): Don't perform an early
- decaying conversion if converting to a class type.
-
-2015-12-16 Patrick Palka <ppalka@gcc.gnu.org>
-
- * tree.c (cp_tree_operand_length): Define in terms of
- cp_tree_code_length.
-
-2015-12-16 Martin Sebor <msebor@redhat.com>
-
- PR objc++/68932
- * decl.c (grokdeclarator): Avoid assuming ctype is non-null when
- checking the validity of a flexible array member.
-
-2015-12-16 Paolo Carlini <paolo.carlini@oracle.com>
-
- * pt.c (comp_template_args): Remove.
- (comp_template_args_with_info): Rename to comp_template_args;
- not static.
- (add_pending_template): Adjust call.
- * cp-tree.h (comp_template_args): Add default arguments.
-
-2015-12-16 Jason Merrill <jason@redhat.com>
-
- PR c++/68309
- * pt.c (instantiate_decl): Revert earlier change.
-
- PR c++/63628
- * pt.c (tsubst_pack_expansion): Also make dummy decls if
- retrieve_local_specialization fails.
-
-2015-12-16 David Malcolm <dmalcolm@redhat.com>
-
- * parser.c (cp_lexer_peek_conflict_marker): New function.
- (cp_parser_error): Detect conflict markers and report them as
- such.
-
-2015-12-15 Martin Sebor <msebor@redhat.com>
-
- PR c++/42121
- PR c++/68478
- PR c++/68613
- PR c++/68689
- PR c++/68710
- * class.c (walk_subobject_offsets): Avoid assuming type domain
- is non-null or has an upper bound.
- (layout_class_type): Include type size in error message.
- (flexmems_t): New type.
- (field_nonempty_p, find_flexarrays, diagnose_flexarrays)
- (check_flexarrays): New functions.
- (finish_struct_1): Call check_flexarrays.
- * decl.c (compute_array_index_type): Distinguish flexible array
- members from zero-length arrays.
- (grokdeclarator): Reject flexible array members in unions. Avoid
- rejecting members of incomplete types that are flexible array members.
- * error.c (dump_type_suffix): Handle flexible array members with null
- upper bound.
- * init.c (perform_member_init): Same.
- * pt.c (instantiate_class_template_1): Allow flexible array members.
- (tsubst): Handle flexible array members with null upper bound.
- * typeck2.c (digest_init_r): Warn for initialization of flexible
- array members.
- (process_init_constructor_record): Handle flexible array members.
-
-2015-12-15 Patrick Palka <ppalka@gcc.gnu.org>
-
- PR c++/21802
- PR c++/53223
- * cp-tree.h (cp_tree_code_length): Declare.
- (build_min_non_dep_op_overload): Declare.
- * tree.c (cp_tree_code_length): Define.
- (build_min_non_dep_op_overload): Define.
- (build_win_non_dep_call_vec): Copy the KOENIG_LOOKUP_P flag.
- * typeck.c (build_x_indirect_ref): Use
- build_min_non_dep_op_overload when the given expression
- has been resolved to an operator overload.
- (build_x_binary_op): Likewise.
- (build_x_array_ref): Likewise.
- (build_x_unary_op): Likewise.
- (build_x_compound_expr): Likewise.
- (build_x_modify_expr): Likewise.
- * decl2.c (grok_array_decl): Likewise.
- * call.c (build_new_op_1): If during template processing we
- chose an operator overload that is a hidden friend function, set
- the call's KOENIG_LOOKUP_P flag to 1.
-
-2015-12-14 Jason Merrill <jason@redhat.com>
-
- PR c++/68309
- * pt.c (instantiate_decl): Copy local_specializations for nested
- function.
-
-2015-12-09 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/60218
- * semantics.c (calculate_bases_helper): Don't call dfs_walk_all
- when TYPE_BINFO (type) is null.
- (calculate_bases): Handle gracefully a null vector->length ().
-
-2015-12-08 Martin Sebor <msebor@redhat.com>
-
- PR c++/68711
- * typeck.c (build_class_member_access_expr): Strip NOPs before
- testing a potentially null operand for equality to zero.
-
-2015-12-07 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/68760
- * error.c (dump_global_iord): Use DECL_SOURCE_FILE (t)
- instead of LOCATION_FILE (input_location).
-
-2015-12-07 Ryan Burn <contact@rnburn.com>
-
- PR c++/68683
- * constraint.cc (satisfy_argument_deduction_constraint): Set
- TYPE_CANONICAL to NULL_TREE if PLACEHOLDER_TYPE_CONSTRAINTS are
- changed.
-
-2015-12-07 Jason Merrill <jason@redhat.com>
-
- PR c++/68464
- * cp-gimplify.c (cp_fold): Don't assume X has TREE_TYPE.
- (cp_genericize): Don't do cp_fold_r here.
- (cp_fold_function): New.
- * cp-tree.h: Declare it.
- * decl.c (finish_function): Call it and the pre-genericize plugin
- before NRV processing.
-
- PR c++/68170
- * pt.c (maybe_new_partial_specialization): The injected-class-name
- is not a new partial specialization.
-
- * Make-lang.in (check-c++1z, check-c++-all): Use GXX_TESTSUITE_STDS.
-
-2015-12-06 Jason Merrill <jason@redhat.com>
-
- * parser.c (struct tentative_firewall): New.
- (cp_parser_template_id, cp_parser_decltype_expr): Use it.
-
- * parser.h (struct cp_token): Tell GTY that CPP_DECLTYPE uses
- tree_check_value.
- * parser.c (cp_parser_decltype): Use tree_check_value.
- (saved_checks_value): New.
- (cp_parser_nested_name_specifier_opt): Use it.
- (cp_parser_template_id): Use it.
- (cp_parser_simple_type_specifier): Use it.
- (cp_parser_pre_parsed_nested_name_specifier): Use it.
-
- * semantics.c (finish_qualified_id_expr): Handle
- UNBOUND_CLASS_TEMPLATE.
-
- * parser.c (cp_parser_template_argument): Handle references in
- C++1z mode.
- * constexpr.c (potential_constant_expression_1): Don't error about
- TREE_THIS_VOLATILE on declarations.
- [COMPONENT_REF]: Don't consider the object if we're dealing with
- an overloaded function.
-
- * constraint.cc (strictly_subsumes): New.
- * cp-tree.h: Declare it.
- * pt.c (process_partial_specialization): Use it instead of
- subsumes_constraints.
- (maybe_new_partial_specialization): Do compare null constraints.
- * search.c (lookup_member): Handle currently_open_class returning null.
-
- PR c++/68597, fix auto9.C and auto-neg1.C with -std=c++1z.
- * decl.c (check_tag_decl): Use ds_type_spec in auto diagnostic.
- * typeck.c (check_return_expr): Check for inconsistent deduction.
- * parser.c (class type_id_in_expr_sentinel): New.
- (cp_parser_primary_expression) [RID_VA_ARG]: Use it.
- (cp_parser_new_expression): Use it.
- (cp_parser_trait_expr): Use it.
- (cp_parser_type_id_1): Complain about auto if in_type_id_in_expr_p.
- (cp_parser_default_type_template_argument): Check for auto.
- (cp_parser_type_id_list): Likewise.
- (cp_parser_simple_type_specifier): Allow auto parms if flag_concepts.
- * pt.c (do_auto_deduction): Handle erroneous type.
-
-2015-12-04 Jason Merrill <jason@redhat.com>
-
- PR c++/68645
- * parser.c (cp_parser_direct_declarator)
- (cp_parser_late_return_type_opt): Put Cilk+ attributes on
- declarator->attributes, not std_attributes.
-
-2015-12-04 David Malcolm <dmalcolm@redhat.com>
-
- * cp-tree.h (class cp_expr): New class.
- (finish_parenthesized_expr): Convert return type and param to
- cp_expr.
- (perform_koenig_lookup): Convert return type and param from tree
- to cp_expr.
- (finish_increment_expr): Likewise.
- (finish_unary_op_expr): Likewise.
- (finish_id_expression): Likewise for return type.
- (build_class_member_access_expr): Likewise for param.
- (finish_class_member_access_expr): Likewise.
- (build_x_unary_op): Likewise.
- (build_c_cast): New decl.
- (build_x_modify_expr): Convert return type from tree to cp_expr.
- * cvt.c (cp_convert_and_check): When warning about conversions,
- attempt to use the location of "expr" if available, otherwise
- falling back to the old behavior of using input_location.
- * name-lookup.c (lookup_arg_dependent_1): Convert return type from
- tree to cp_expr.
- (lookup_arg_dependent): Likewise; also for local "ret".
- * name-lookup.h (lookup_arg_dependent): Likewise for return type.
- * parser.c (cp_lexer_previous_token): Skip past purged tokens.
- (struct cp_parser_expression_stack_entry): Convert field "lhs" to
- cp_expr.
- (cp_parser_identifier): Likewise for return type. Use cp_expr
- ctor to preserve the token's location.
- (cp_parser_string_literal): Likewise, building up a meaningful
- location for the case where a compound string literal is built by
- concatentation.
- (cp_parser_userdef_char_literal): Likewise for return type.
- (cp_parser_userdef_numeric_literal): Likewise.
- (cp_parser_statement_expr): Convert return type to cp_expr.
- Generate a suitable location for the expr and return it via the
- cp_expr ctor.
- (cp_parser_fold_expression): Convert return type to cp_expr.
- (cp_parser_primary_expression): Likewise, and for locals "expr",
- "lam", "id_expression", "decl".
- Use cp_expr ctor when parsing literals, to preserve the spelling
- location of the token. Preserve the locations of parentheses.
- Preserve location when calling objc_lookup_ivar.
- Preserve the location for "this" tokens. Generate suitable
- locations for "__builtin_va_arg" constructs and for
- Objective C 2.0 dot-syntax. Set the location for the result of
- finish_id_expression.
- (cp_parser_primary_expression): Convert return type from tree to
- cp_expr.
- (cp_parser_id_expression): Likewise.
- (cp_parser_unqualified_id): Likewise. Also for local "id".
- (cp_parser_postfix_expression): Likewise, also for local
- "postfix_expression". Generate suitable locations for
- C++-style casts, "_Cilk_spawn" constructs. Convert local
- "initializer" to cp_expr and use it to preserve the location of
- compound literals. Capture the location of the closing
- parenthesis of a call site via
- cp_parser_parenthesized_expression_list, and use it to build
- a source range for a call. Use cp_expr in ternary expression.
- (cp_parser_postfix_dot_deref_expression): Convert param from tree to
- cp_expr. Generate and set a location.
- (cp_parser_parenthesized_expression_list): Add "close_paren_loc"
- out-param, and write back to it.
- (cp_parser_unary_expression): Convert return type from tree to
- cp_expr. Also for locals "cast_expression" and "expression".
- Generate and use suitable locations for addresses of
- labels and for cast expressions. Call cp_expr::set_location where
- necessary. Preserve the locations of negated numeric literals.
- (cp_parser_new_expression): Generate meaningful locations/ranges.
- (cp_parser_cast_expression): Convert return type from tree to
- cp_expr; also for local "expr". Use the paren location to generate a
- meaningful range for the expression.
- (cp_parser_binary_expression): Convert return type from tree to
- cp_expr; also for local "rhs". Generate a meaningful location
- for the expression, and use it. Replace call to
- protected_set_expr_location by converting a build2 to a build2_loc
- and using the location in the call to build_x_binary_op, adding a
- cp_expr::set_location to the latter case.
- (cp_parser_question_colon_clause): Convert param from tree to
- cp_expr; also for local "assignment_expr". Set the spelling range
- of the expression.
- (cp_parser_assignment_expression): Likewise for return type and
- locals "expr" and "rhs". Build a meaningful spelling range for
- the expression. Remove saving of input_location in favor of a
- call to cp_expr::set_location.
- (cp_parser_expression): Convert return type and locals
- "expression" and "assignment_expression" to cp_expr. Build a
- meaningful spelling range for assignment expressions.
- (cp_parser_constant_expression): Likewise for return type and
- local "expression".
- (cp_parser_builtin_offsetof): Convert return type and local "expr"
- to cp_expr. Generate suitable locations.
- (cp_parser_lambda_expression): Convert return return type to
- cp_expr.
- (cp_parser_operator_function_id): Likewise.
- (cp_parser_operator): Likewise. Generate a meaningful range,
- using cp_expr's ctor to return it.
- (cp_parser_template_id): When converting a token to
- CPP_TEMPLATE_ID, update the location.
- (cp_parser_initializer_clause): Convert return type and local
- "initializer" to cp_expr.
- (cp_parser_braced_list): Likewise for return type. Generate
- suitable locations.
- (cp_parser_lookup_name): Likewise for return type. Use cp_expr's
- ctor to preserve the location_t of the name.
- (cp_parser_simple_cast_expression): Likewise for return type.
- (cp_parser_functional_cast): Convert return type and local "cast"
- to cp_expr. Generate suitable locations.
- (cp_parser_objc_expression): Convert return type to cp_expr.k Generate
- (cp_parser_objc_message_expression): Generate suitable locations.
- (cp_parser_objc_encode_expression): Convert return type to
- cp_expr. Generate suitable locations.
- (cp_parser_objc_protocol_expression): Generate suitable locations.
- (cp_parser_objc_selector_expression): Generate suitable locations.
- (cp_parser_omp_for_cond): Attempt to use the location
- of "cond" for the binary op.
- (cp_parser_transaction_expression): Issue the tm-not-enabled error
- at the location of the __transaction_foo token, rather than at
- input_location.
- * semantics.c (finish_parenthesized_expr): Convert return type and
- param to cp_expr. Preserve location.
- (perform_koenig_lookup): Likewise for return type
- and param.
- (finish_increment_expr): Likewise. Generate suitable locations.
- (finish_unary_op_expr): Likewise for return type and local "result".
- Generate suitable locations.
- (finish_id_expression): Convert return type to cp_expr and use
- cp_expr ctor to preserve location information.
- * typeck.c (build_class_member_access_expr): Convert param to
- cp_expr.
- (finish_class_member_access_expr): Likewise.
- (cp_build_binary_op): Convert a build2 to a build2_loc.
- (build_x_unary_op): Convert param from tree to cp_expr.
- (build_nop): Preserve the location of EXPR.
- (build_c_cast): Provide an overloaded variant that takes a cp_expr
- and returns a cp_expr.
- (build_x_modify_expr): Convert return type from tree to cp_expr.
-
-2015-12-03 Cesar Philippidis <cesar@codesourcery.com>
-
- * parser.c (cp_ensure_no_oacc_routine): Update error message.
- (cp_parser_oacc_routine): Likewise.
- (cp_parser_late_parsing_oacc_routine): Likewise. Update comment
- describing this function.
- (cp_finalize_oacc_routine): Update error message.
-
-2015-12-02 Jason Merrill <jason@redhat.com>
-
- * Make-lang.in (check-c++1z, check-c++-all): New.
-
-2015-12-02 Markus Trippelsdorf <markus@trippelsdorf.de>
-
- PR c++/67337
- * mangle.c (write_template_prefix): Guard against context==NULL.
-
-2015-12-02 Jason Merrill <jason@redhat.com>
-
- * call.c (build_new_op_1): Don't fold arguments to
- warn_logical_operator or maybe_warn_bool_compare.
-
- * cp-gimplify.c (cp_fold_maybe_rvalue, cp_fold_rvalue): New.
- (c_fully_fold): Use cp_fold_rvalue.
- (cp_fold): Use them for rvalue operands.
-
- * cp-gimplify.c (c_fully_fold): Define.
-
- * cp-gimplify.c (cp_fold): Use fold_build*.
-
-2015-12-02 Joseph Myers <joseph@codesourcery.com>
-
- PR c/68162
- * tree.c (c_build_qualified_type): Add extra arguments.
-
-2015-12-02 Eric Botcazou <ebotcazou@adacore.com>
-
- PR c++/68290
- * constraint.cc (make_constrained_auto): Move to...
- * pt.c (make_auto_1): Add set_canonical parameter and set
- TYPE_CANONICAL on the type only if it is true.
- (make_decltype_auto): Adjust call to make_auto_1.
- (make_auto): Likewise.
- (splice_late_return_type): Likewise.
- (make_constrained_auto): ...here. Call make_auto_1 instead of
- make_auto and pass false. Set TYPE_CANONICAL directly.
-
-2015-12-02 Thomas Schwinge <thomas@codesourcery.com>
-
- * parser.c (cp_parser_omp_clause_name)
- (cp_parser_oacc_all_clauses): Alphabetical sorting.
- * pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_USE_DEVICE.
-
-2015-12-02 Andreas Arnez <arnez@linux.vnet.ibm.com>
-
- PR gcov-profile/68603
- * cp-gimplify.c (genericize_cp_loop): For the back-jump's location
- use the start of the loop body only if the loop is unconditional.
-
-2015-11-26 Andreas Arnez <arnez@linux.vnet.ibm.com>
-
- * cp-gimplify.c (genericize_cp_loop): Change LOOP_EXPR's location
- to start of loop body instead of start of loop.
-
-2015-12-01 Julian Brown <julian@codesourcery.com>
- Cesar Philippidis <cesar@codesourcery.com>
- James Norris <James_Norris@mentor.com>
-
- * cp-tree.h (finish_oacc_host_data): Add prototype.
- * parser.c (cp_parser_omp_clause_name): Add use_device support.
- (cp_parser_oacc_all_clauses): Add use_device support.
- (OACC_HOST_DATA_CLAUSE_MASK): New macro.
- (cp_parser_oacc_host_data): New function.
- (cp_parser_omp_construct): Add host_data support.
- (cp_parser_pragma): Add host_data support.
- * semantics.c (finish_omp_clauses): Add use_device support.
- (finish_oacc_host_data): New function.
-
-2015-11-27 Martin Liska <mliska@suse.cz>
-
- PR c++/68312
- * cp-array-notation.c (expand_sec_reduce_builtin):
- Likewise.
- (create_array_refs): Replace argument with const reference.
- (expand_an_in_modify_expr): Likewise.
- (cp_expand_cond_array_notations): Likewise.
- (expand_unary_array_notation_exprs): Likewise.
-
-2015-11-27 Jakub Jelinek <jakub@redhat.com>
-
- PR c/63326
- * parser.c (cp_parser_statement): Clear in_compound after labels.
-
-2015-11-27 Martin Liska <mliska@suse.cz>
-
- * parser.c (cp_parser_late_parsing_cilk_simd_fn_info):
- Release tokens.
-
-2015-11-26 Andreas Arnez <arnez@linux.vnet.ibm.com>
-
- * cp-gimplify.c (genericize_cp_loop): Change LOOP_EXPR's location
- to start of loop body instead of start of loop.
-
-2015-11-26 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/68508
- * cp-tree.h (cp_ubsan_maybe_instrument_downcast): Add INTYPE argument.
- * cp-ubsan.c (cp_ubsan_maybe_instrument_downcast): Likewise. Use
- it instead of or in addition to TREE_TYPE (op). Use
- is_properly_derived_from, return NULL_TREE if TREE_TYPE (intype) and
- TREE_TYPE (type) are the same type minus qualifiers.
- * typeck.c (build_static_cast_1): Adjust callers.
-
-2015-11-25 Martin Sebor <msebor@redhat.com>
-
- PR c++/67876
- * pt.c (convert_template_argument): Make sure number of tree
- operands is greater than zero before attempting to extract one.
-
-2015-11-25 Ryan Burn <contact@rnburn.com>
-
- PR c++/68434
- * pt.c (tsubst): Set PLACEHOLDER_TYPE_CONSTRAINTS before
- calling canonical_type_parameter.
-
-2015-11-25 Jason Merrill <jason@redhat.com>
-
- * lambda.c (maybe_add_lambda_conv_op): Only set
- no_sanitize_undefined if SANITIZE_NULL.
-
- PR c++/67941
- * lambda.c (maybe_add_lambda_conv_op): Mark _FUN as
- no_sanitize_undefined.
-
- * cp-ubsan.c (cp_ubsan_instrument_vptr_p): Use
- do_ubsan_in_current_function.
-
-2015-11-25 Markus Trippelsdorf <markus@trippelsdorf.de>
- Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/68087
- * constexpr.c (cxx_eval_array_reference): Use tree_fits_shwi_p before
- tree_to_shwi to avoid ICEs.
-
-2015-11-24 Ilya Verbin <ilya.verbin@intel.com>
-
- * parser.c (cp_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING"
- with "if (ENABLE_OFFLOADING)".
-
-2015-11-23 Igor Zamyatin <igor.zamyatin@intel.com>
-
- PR c++/68001
- * cp-gimplify.c (cp_gimplify_expr): Stop the process if see an error.
-
-2015-11-20 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/67354
- * cp-tree.h (defer_mangling_aliases): Declare.
- (generate_mangling_aliases): New prototype.
- * decl2.c (defer_mangling_aliases): New variable.
- (note_mangling_alias): Use !defer_mangling_aliases
- instead of at_eof.
- (generate_mangling_aliases): No longer static. Clear
- defer_mangling_aliases.
- * optimize.c (maybe_thunk_body): Defer emitting mangling aliases
- if !defer_mangling_aliases until the fns are put into the same
- comdat group.
-
-2015-11-19 David Malcolm <dmalcolm@redhat.com>
-
- * cp-tree.h (lookup_member_fuzzy): New decl.
- * search.c: Include spellcheck.h.
- (class lookup_field_fuzzy_info): New class.
- (lookup_field_fuzzy_info::fuzzy_lookup_fnfields): New.
- (lookup_field_fuzzy_info::fuzzy_lookup_field): New.
- (lookup_field_fuzzy_r): New.
- (lookup_member_fuzzy): New.
- * typeck.c (finish_class_member_access_expr): When issuing
- a "has no member named" error, call lookup_member_fuzzy, and
- offer any result as a suggestion.
-
-2015-11-19 Torvald Riegel <triegel@redhat.com>
-
- * except.c (do_free_exception): Use transactional wrapper.
-
-2015-11-19 Jason Merrill <jason@redhat.com>
-
- PR c++/68422
- * cp-tree.h (PACK_EXPANSION_SIZEOF_P): New.
- * parser.c (cp_parser_sizeof_pack): Set it.
- * pt.c (tsubst_copy) [SIZEOF_EXPR]: Likewise.
- (tsubst_pack_expansion): Improve T... shortcut for expression packs.
-
-2015-11-19 Ryan Burn <contact@rnburn.com>
-
- PR c++/68396
- * pt.c (find_parameter_packs_r) [DECLTYPE_TYPE]: When traversing
- the DECLTYPE_TYPE_EXPR, set type_pack_expansion_p to false.
-
-2015-11-19 Jakub Jelinek <jakub@redhat.com>
- Manuel López-Ibáñez <manu@gcc.gnu.org>
-
- PR c++/67409
- * decl.c (identify_goto): Add LOC and DIAG_KIND arguments, call
- emit_diagnostic instead of permerror.
- (check_previous_goto_1): Adjust identify_goto callers, treat all
- cases but crossing initialization and entering scope of decl with
- non-trivial dtor as unconditional hard errors.
- (check_goto): Use identify_goto. Treat all cases but crossing
- initialization and entering scope of decl with non-trivial dtor
- as unconditional hard errors.
-
-2015-11-19 Cesar Philippidis <cesar@codesourcery.com>
-
- * parser.h (struct cp_omp_declare_simd_data): Add clauses member.
- (struct cp_parser): Change type the of oacc_routine to
- cp_omp_declare_simd_data.
- * parser.c (cp_ensure_no_oacc_routine): Rework to use
- cp_omp_declare_simd_data.
- (cp_parser_simple_declaration): Remove boolean first. Update call to
- cp_parser_init_declarator. Don't NULL out oacc_routine.
- (cp_parser_init_declarator): Remove boolean first parameter. Update
- calls to cp_finalize_oacc_routine.
- (cp_parser_late_return_type_opt): Handle acc routines.
- (cp_parser_member_declaration): Remove first variable. Handle
- acc routines like omp declare simd.
- (cp_parser_function_definition_from_specifiers_and_declarator): Update
- call to cp_finalize_oacc_routine.
- (cp_parser_single_declaration): Update call to
- cp_parser_init_declarator.
- (cp_parser_save_member_function_body): Remove first_decl parameter.
- Update call to cp_finalize_oacc_routine.
- (cp_parser_finish_oacc_routine): Delete.
- (cp_parser_oacc_routine): Rework to use cp_omp_declare_simd_data.
- (cp_parser_late_parsing_oacc_routine): New function.
- (cp_finalize_oacc_routine): Remove first argument. Add more error
- handling and set the acc routine and 'omp declare target' attributes.
- (cp_parser_pragma): Remove unnecessary call to
- cp_ensure_no_oacc_routine.
-
-2015-11-17 Cesar Philippidis <cesar@codesourcery.com>
-
- * cp-gimplify.c (cp_fold_r): Add support for OACC_LOOP.
-
-2015-11-17 Jason Merrill <jason@redhat.com>
-
- PR bootstrap/68346
- * typeck.c (build_static_cast_1): Force a NOP when converting to
- the same type.
-
- * cp-tree.h (LITERAL_ZERO_P): Remove.
- * parser.c (cp_parser_postfix_expression, literal_zeros)
- (cp_parser_parenthesized_expression_list): Don't mess with it.
-
- * parser.c (cp_parser_unary_expression): Fold -constant here.
- * typeck.c (cp_build_unary_op): Not here.
-
- PR bootstrap/68361
- * cvt.c (cp_convert_and_check): Use warning_sentinel to suppress
- -Wparentheses.
-
-2015-11-16 Jason Merrill <jason@redhat.com>
-
- * constexpr.c (cxx_eval_builtin_function_call): Use cp_fully_fold
- to fold arguments to __builtin_constant_p.
-
-2015-11-16 Kirill Yukhin <kirill.yukhin@intel.com>
-
- * parser.c (cp_parser_late_parsing_cilk_simd_fn_info): Look for
- "simd" attribute as well. Update error message.
-
-2015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
-
- * parser.c (cp_parser_omp_declare_target): Adjust.
-
-2015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
-
- * vtable-class-hierarchy.c (vtv_generate_init_routine): Adjust.
-
-2015-11-14 Jason Merrill <jason@redhat.com>
-
- PR bootstrap/68346
- * call.c (build_new_op_1): Don't fold arguments to
- warn_tautological_cmp.
-
-2015-11-14 Jakub Jelinek <jakub@redhat.com>
-
- * semantics.c (finish_omp_clauses): Don't mark
- GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable.
-
-2015-11-13 Kai Tietz <ktietz70@googlemail.com>
- Marek Polacek <polacek@redhat.com>
- Jason Merrill <jason@redhat.com>
-
- * call.c (build_conditional_expr_1, convert_like_real)
- (convert_arg_to_ellipsis, convert_for_arg_passing): Don't fold.
- (build_new_op_1, build_over_call, build_cxx_call): Fold for warnings.
- * class.c (build_base_path, determine_primary_bases)
- (update_vtable_entry_for_fn, check_bitfield_decl)
- (layout_nonempty_base_or_field, layout_empty_base)
- (propagate_binfo_offsets, include_empty_classes)
- (layout_class_type, build_vbase_offset_vtbl_entries): Use
- fold_convert.
- * constexpr.c (cxx_eval_builtin_function_call): Fold away the NOP_EXPR.
- (cxx_eval_call_expression): Handle MEM_REF.
- (cxx_eval_pointer_plus_expression): Fold the second operand.
- (cxx_eval_constant_expression): Handle MEM_REF, UNARY_PLUS_EXPR.
- (fold_simple_1, fold_simple): New.
- (maybe_constant_value_1): Factor out from maybe_constant_value.
- (cv_cache, maybe_constant_value): Cache results.
- (maybe_constant_init): Handle null input.
- (potential_constant_expression_1): Handle RESULT_DECL, EMPTY_CLASS_EXPR.
- * cp-array-notation.c (build_array_notation_ref): Fold operands.
- * cp-gimplify.c (cp_fold_r, cp_fold): New.
- (cp_genericize_r): Use fold_convert. Don't fold SIZEOF_EXPR.
- (cp_genericize): Fold everything.
- (contains_label_1, contains_label_p): New.
- (cp_fold, cp_fully_fold): New.
- * cp-tree.h (class cache_map): New.
- * cvt.c (cp_convert_to_pointer, ocp_convert): Use convert_to_*_nofold.
- (cp_convert_and_check): Use cp_fully_fold.
- (convert, convert_force): Don't fold.
- * decl.c (fold_sizeof_expr): Change from fold_sizeof_expr_r.
- (compute_array_index_type): Use cp_fully_fold.
- (build_enumerator): Use fold_convert.
- * decl2.c (get_guard_cond, set_guard): Use fold_convert.
- * init.c (build_zero_init_1): Fold zero-initializers.
- (build_new_1): Fold nelts calculations.
- (build_vec_delete_1): Fold conversions.
- (build_vec_init): Fold maxindex.
- * parser.c (cp_parser_binary_expression): Fold LHS of || and &&.
- (cp_parser_question_colon_clause): Fold LHS.
- * pt.c (convert_nontype_argument): Fold nullptr conversion.
- * semantics.c (finish_unary_op_expr): Fold for warnings.
- (handle_omp_array_sections_1): Fold length and low bound.
- (handle_omp_for_class_iterator): Fold various things.
- * tree.c (builtin_valid_in_constant_expr_p): Add
- BUILT_IN_ATOMIC_ALWAYS_LOCK_FREE.
- (convert_bitfield_to_declared_type): Don't fold.
- (handle_init_priority_attribute): Fold.
- (fold_if_not_in_template): Remove.
- * typeck.c (decay_conversion, build_class_member_access_expr)
- (build_simple_component_ref, cp_build_array_ref, build_vec_cmp)
- (cp_pointer_int_sum, pointer_diff): Don't fold.
- (cp_build_binary_op): Fold for warnings and PMF ops.
- (cp_build_unary_op): Fold negation of a constant, nothing else.
- (expand_ptrmemfunc_cst): Fold operations.
- * typeck2.c (split_nonconstant_init): Fold initializer.
- (store_init_value): Likewise.
- (check_narrowing): Try folding.
- * config-lang.in (gtfiles): Add cp-gimplify.c.
-
-2015-11-13 David Malcolm <dmalcolm@redhat.com>
-
- * error.c (pedwarn_cxx98): Pass line_table to rich_location ctor.
-
-2015-11-12 James Norris <jnorris@codesourcery.com>
-
- * parser.c (cp_parser_oacc_declare): Remove unused.
-
-2015-11-12 James Norris <jnorris@codesourcery.com>
- Joseph Myers <joseph@codesourcery.com>
-
- * parser.c (cp_parser_omp_clause_name): Handle 'device_resident'
- clause.
- (cp_parser_oacc_data_clause): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
- and PRAGMA_OMP_CLAUSE_LINK.
- (cp_paser_oacc_all_clauses): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
- and PRAGMA_OMP_CLAUSE_LINK.
- (OACC_DECLARE_CLAUSE_MASK): New definition.
- (cp_parser_oacc_declare): New function.
- (cp_parser_pragma): Handle PRAGMA_OACC_DECLARE.
- * pt.c (tsubst_expr): Handle OACC_DECLARE.
-
-2015-11-12 Jason Merrill <jason@redhat.com>
-
- * pt.c (check_explicit_specialization): Check the namespace after
- we choose a template.
-
-2015-11-11 Jason Merrill <jason@redhat.com>
-
- * decl.c (duplicate_decls): When combining typedefs, remove the
- new type from the variants list.
-
-2015-11-11 Jason Merrill <jason@redhat.com>
-
- * pt.c (instantiate_class_template_1): Set function_depth around
- instantiation of lambda op().
-
-2015-11-11 Marek Polacek <polacek@redhat.com>
-
- PR c/68107
- PR c++/68266
- * decl.c (grokdeclarator): Call valid_array_size_p. Remove code
- checking the size of an array.
-
-2015-11-11 Dominique d'Humieres <dominiq@lps.ens.fr>
-
- PR bootstrap/68271
- * parser.h (cp_token): Update pragma_kind to 8.
-
-2015-11-11 Andrew MacLeod <amacleod@redhat.com>
-
- * call.c: Remove unused header files.
- * class.c: Likewise.
- * constexpr.c: Likewise.
- * cp-array-notation.c: Likewise.
- * cp-cilkplus.c: Likewise.
- * cp-gimplify.c: Likewise.
- * cp-lang.c: Likewise.
- * cp-objcp-common.c: Likewise.
- * cp-ubsan.c: Likewise.
- * cvt.c: Likewise.
- * cxx-pretty-print.c: Likewise.
- * decl.c: Likewise.
- * decl2.c: Likewise.
- * dump.c: Likewise.
- * error.c: Likewise.
- * except.c: Likewise.
- * expr.c: Likewise.
- * friend.c: Likewise.
- * g++spec.c: Likewise.
- * init.c: Likewise.
- * lambda.c: Likewise.
- * lex.c: Likewise.
- * mangle.c: Likewise.
- * method.c: Likewise.
- * name-lookup.c: Likewise.
- * optimize.c: Likewise.
- * parser.c: Likewise.
- * pt.c: Likewise.
- * ptree.c: Likewise.
- * repo.c: Likewise.
- * rtti.c: Likewise.
- * search.c: Likewise.
- * semantics.c: Likewise.
- * tree.c: Likewise.
- * typeck.c: Likewise.
- * typeck2.c: Likewise.
- * vtable-class-hierarchy.c: Likewise.
-
-2015-11-09 Cesar Philippidis <cesar@codesourcery.com>
-
- * parser.c (cp_finalize_oacc_routine): New boolean first argument.
- (cp_ensure_no_oacc_routine): Update call to cp_finalize_oacc_routine.
- (cp_parser_simple_declaration): Maintain a boolean first to keep track
- of each new declarator. Propagate it to cp_parser_init_declarator.
- (cp_parser_init_declarator): New boolean first argument. Propagate it
- to cp_parser_save_member_function_body and cp_finalize_oacc_routine.
- (cp_parser_member_declaration): Likewise.
- (cp_parser_single_declaration): Update call to
- cp_parser_init_declarator.
- (cp_parser_save_member_function_body): New boolean first_decl argument.
- Propagate it to cp_finalize_oacc_routine.
- (cp_parser_finish_oacc_routine): New boolean first argument. Use it to
- determine if multiple declarators follow a routine construct.
- (cp_parser_oacc_routine): Update call to cp_parser_finish_oacc_routine.
-
-2015-10-19 Martin Sebor <msebor@redhat.com>
-
- PR c++/67913
- PR c++/67927
- * call.c (build_operator_new_call): Do not assume size_check
- is non-null, analogously to the top half of the function.
- * init.c (build_new_1): Detect and diagnose array sizes in
- excess of the maximum of roughly SIZE_MAX / 2.
- Insert a runtime check only for arrays with a non-constant size.
- (build_new): Detect and diagnose negative array sizes.
-
-2015-11-09 Thomas Schwinge <thomas@codesourcery.com>
- Cesar Philippidis <cesar@codesourcery.com>
- James Norris <jnorris@codesourcery.com>
- Julian Brown <julian@codesourcery.com>
- Nathan Sidwell <nathan@codesourcery.com>
-
- * parser.h (struct cp_parser): Add oacc_routine field.
- * parser.c (cp_ensure_no_oacc_routine): New.
- (cp_parser_new): Initialize oacc_routine field.
- (cp_parser_linkage_specification): Call cp_ensure_no_oacc_routine.
- (cp_parser_namespace_definition,
- cp_parser_class_specifier_1): Likewise.
- (cp_parser_init_declarator): Call cp_finalize_oacc_routine.
- (cp_parser_function_definition,
- cp_parser_save_member_function_body): Likewise.
- (OACC_ROUTINE_CLAUSE_MASK): New.
- (cp_parser_finish_oacc_routine, cp_parser_oacc_routine,
- cp_finalize_oacc_routine): New.
- (cp_parser_pragma): Adjust omp_declare_simd checking. Call
- cp_ensure_no_oacc_routine.
- (cp_parser_pragma): Add OpenACC routine handling.
-
-2015-11-08 Martin Sebor <msebor@redhat.com>
-
- PR c++/67942
- * cp/init.c (warn_placement_new_too_small): Convert integer
- operand of POINTER_PLUS_EXPR to ssize_t to determine its signed
- value.
-
-2015-11-06 David Malcolm <dmalcolm@redhat.com>
-
- * error.c (cp_printer): Update for new "caret_p" param for
- textinfo::set_location.
- (pedwarn_cxx98): Update for change in signature of
- diagnostic_set_info.
-
-2015-11-06 Jason Merrill <jason@redhat.com>
-
- Support non-type constrained-type-specifiers.
- * parser.c (check_type_concept): Remove.
- (cp_parser_maybe_constrained_type_specifier): Don't call it.
- (synthesize_implicit_template_parm): Handle non-type and template
- template parameters. Also compare extra args. Return the decl.
- (cp_parser_template_argument): Handle constrained-type-specifiers for
- non-type template parameters.
- (finish_constrained_template_template_parm): Split out from
- cp_parser_constrained_template_template_parm.
- (cp_parser_nonclass_name): Move some logic into
- cp_parser_maybe_concept_name.
- (cp_parser_init_declarator): Fix error recovery.
- (get_concept_from_constraint): Remove.
- (cp_parser_simple_type_specifier): Adjust for
- synthesize_implicit_template_parm returning the decl.
- * constraint.cc (placeholder_extract_concept_and_args)
- (equivalent_placeholder_constraints): Also handle TYPE_DECL
- constrained parms.
-
- * pt.c (push_inline_template_parms_recursive): Don't recreate the
- CONST_DECL.
-
-2015-11-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * init.c (warn_placement_new_too_small): Use %wu format
- rather than %lu when printing bytes_avail.
-
-2015-11-05 Cesar Philippidis <cesar@codesourcery.com>
- Thomas Schwinge <thomas@codesourcery.com>
- James Norris <jnorris@codesourcery.com>
-
- * parser.c (cp_parser_omp_clause_name): Add support for
- PRAGMA_OACC_CLAUSE_INDEPENDENT and PRAGMA_OACC_CLAUSE_TILE.
- (cp_parser_oacc_shape_clause): Allow pointer variables as gang static
- arguments.
- (cp_parser_oacc_clause_tile): New function.
- (cp_parser_omp_clause_default): Add is_oacc argument. Handle
- default(none) in OpenACC.
- (cp_parser_oacc_all_clauses): Add support for
- (cp_parser_omp_all_clauses): Update call to
- cp_parser_omp_clause_default.
- PRAGMA_OACC_CLAUSE_{DEFAULT,INDEPENDENT,TILE,PRIVATE,FIRSTPRIVATE}.
- (OACC_LOOP_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_{PRIVATE,INDEPENDENT,
- TILE}.
- (OACC_KERNELS_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.
- (OACC_PARALLEL_MASK): Add PRAGMA_OACC_CLAUSE_{DEFAULT,PRIVATE,
- FIRSTPRIVATE}.
- (cp_parser_oacc_update): Update the error message for missing clauses.
- * semantics.c (finish_omp_clauses): Add support for
- OMP_CLAUSE_INDEPENDENT and OMP_CLAUSE_TILE.
-
-2015-11-05 Martin Sebor <msebor@redhat.com>
-
- PR c++/67942
- * cp/init.c (warn_placement_new_too_small): Avoid assuming
- the size of the first operand of placement new or its type
- is known.
-
-2015-11-05 Martin Sebor <msebor@redhat.com>
-
- PR c++/67942
- * cp/init.c (warn_placement_new_too_small): New function.
- (build_new_1): Call it.
-
-2015-11-05 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/67846
- * parser.c (cp_parser_lambda_body): Check lambda_return_type
- return value.
- * typeck2.c (cxx_incomplete_type_diagnostic): Print member or
- member function used invalidly.
-
-2015-11-05 Jakub Jelinek <jakub@redhat.com>
- Ilya Verbin <ilya.verbin@intel.com>
-
- * cp-tree.h (finish_omp_for): Add ORIG_INITS argument.
- (omp_privatize_field): Add SHARED argument.
- * parser.c: Include context.h.
- (cp_parser_omp_clause_schedule): Parse schedule
- modifiers, diagnose monotonic together with nonmonotonic.
- (cp_parser_omp_clause_linear): Add DECLARE_SIMD argument. Parse
- parameter name as linear step as id-expression rather than expression.
- (cp_parser_omp_all_clauses): Adjust caller.
- (cp_parser_omp_for_loop_init): Add ORIG_INIT argument,
- initialize it. Adjust omp_privatize_field caller.
- (cp_parser_omp_for_loop): Compute orig_inits, pass it's address
- to finish_omp_for.
- (OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
- (cp_parser_omp_target_data,
- cp_parser_omp_target_enter_data,
- cp_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER
- and GOMP_MAP_FIRSTPRIVATE_REFERENCE.
- (cp_parser_omp_target): Likewise. Evaluate num_teams and
- thread_limit expressions on combined target teams before the target.
- (cp_parser_omp_declare_target): If decl has "omp declare target" or
- "omp declare target link" attribute, and cgraph or varpool node already
- exists, then set corresponding flags. Call finish_omp_clauses
- in the parenthesized extended-list syntax case. Call
- cp_parser_require_pragma_eol instead of cp_parser_skip_to_pragma_eol.
- (cp_parser_omp_end_declare_target): Call cp_parser_require_pragma_eol
- instead of cp_parser_skip_to_pragma_eol.
- * decl2.c (cplus_decl_attributes): Don't diagnose block scope vars
- inside declare target.
- * pt.c (tsubst_omp_clauses): If OMP_CLAUSE_LINEAR_VARIABLE_STRIDE,
- use tsubst_omp_clause_decl instead of tsubst_expr on
- OMP_CLAUSE_LINEAR_STEP. Handle non-static data members in shared
- clauses.
- (tsubst_omp_for_iterator): Adjust omp_privatize_field caller.
- (tsubst_find_omp_teams): New function.
- (tsubst_expr): Evaluate num_teams and thread_limit expressions on
- combined target teams before the target. Use OMP_FOR_ORIG_DECLS for
- all OpenMP/OpenACC/Cilk+ looping constructs. Adjust finish_omp_for
- caller.
- * semantics.c (omp_privatize_field): Add SHARED argument, if true,
- always create artificial var and never put it into the hash table
- or vector.
- (handle_omp_array_sections_1): Adjust omp_privatize_field caller.
- Allow non-zero low-bound on OMP_CLAUSE_REDUCTION array sections.
- (handle_omp_array_sections): For structure element
- based array sections use GOMP_MAP_ALWAYS_POINTER instead of
- GOMP_MAP_FIRSTPRIVATE_POINTER. Encode low-bound into the MEM_REF,
- either into the constant offset, or for variable low-bound using
- POINTER_PLUS_EXPR.
- (finish_omp_clauses): Adjust omp_privatize_field caller. Drop
- generic_field_head, structure elements are now always mapped even
- as array section bases, diagnose same var in data sharing and
- mapping clauses. For references map what they refer to using
- GOMP_MAP_ALWAYS_POINTER for structure elements and
- GOMP_MAP_FIRSTPRIVATE_REFERENCE otherwise. Diagnose if linear step
- on declare simd is neither a constant nor a uniform parameter.
- Allow non-static data members on shared clauses. Look through
- POINTER_PLUS_EXPR for array section reductions. Diagnose nonmonotonic
- modifier on kinds other than dynamic or guided or nonmonotonic
- modifier together with ordered clause. Diagnose the same var or
- function appearing multiple times on the same directive. Fix up
- wording for the to clause if t is neither a FUNCTION_DECL nor a
- VAR_DECL, use special wording for OVERLOADs and TEMPLATE_ID_EXPR.
- (handle_omp_for_class_iterator): Add ORIG_DECLS argument. Call
- c_omp_check_loop_iv_exprs on cond.
- (finish_omp_for): Add ORIG_INITS argument. Call
- c_omp_check_loop_iv_exprs on ORIG_INITS elements. Adjust
- handle_omp_for_class_iterator caller. Call c_omp_check_loop_iv.
- Call add_stmt.
- (finish_omp_atomic): Adjust c_finish_omp_atomic caller.
-
-2015-11-04 Cesar Philippidis <cesar@codesourcery.com>
-
- * (cp_parser_oacc_single_int_clause): New function.
- (cp_parser_oacc_clause_vector_length): Delete.
- (cp_parser_omp_clause_num_gangs): Delete.
- (cp_parser_omp_clause_num_workers): Delete.
- (cp_parser_oacc_all_clauses): Use cp_parser_oacc_single_int_clause
- for num_gangs, num_workers and vector_length.
-
-2015-11-04 Mikhail Maltsev <maltsevm@gmail.com>
-
- * call.c (validate_conversion_obstack): Define unconditionally.
- * constexpr.c (maybe_constant_value, fold_non_dependent_expr): Use
- gcc_checking_assert.
- * cp-tree.h: Use CHECKING_P instead of ENABLE_CHECKING.
- * decl2.c (cxx_post_compilation_parsing_cleanups): Use flag_checking.
- * mangle.c (add_substitution): Likewise.
- * method.c (maybe_explain_implicit_delete): Likewise.
- * parser.c (cp_parser_template_argument_list): Remove conditional
- compilation.
- * pt.c (check_unstripped_args): Rename to...
- (verify_unstripped_args): ... this and remove conditional compilation.
- (retrieve_specialization): Guard call of verify_unstripped_args with
- flag_checking.
- (template_parm_to_arg): Remove conditional compilation.
- (template_parms_to_args, coerce_template_parameter_pack,
- coerce_template_parms): Likewise.
- (tsubst_copy): Use flag_checking.
- (type_unification_real): Remove conditional compilation.
- (build_non_dependent_expr): Use flag_checking.
- * tree.c (build_target_expr): Remove conditional compilation, use
- gcc_checking_assert.
- * typeck.c (comptypes): Likewise.
- * typeck2.c (digest_init_r): Likewise.
-
-2015-11-03 Jason Merrill <jason@redhat.com>
-
- * pt.c (struct find_parameter_pack_data): Add
- type_pack_expansion_p field.
- (find_parameter_packs_r): Use it to turn 'auto' into a parameter pack.
- (uses_parameter_packs, make_pack_expansion)
- (check_for_bare_parameter_packs, fixed_parameter_pack_p): Set it.
-
-2015-11-03 Thomas Schwinge <thomas@codesourcery.com>
- Chung-Lin Tang <cltang@codesourcery.com>
-
- * parser.c (cp_parser_omp_construct, cp_parser_pragma): Handle
- PRAGMA_OACC_ATOMIC.
-
-2015-10-31 Ville Voutilainen <ville.voutilainen@gmail.com>
-
- Remove the implementation of N3994, terse range-for loops.
- * parser.c (cp_parser_for_init_statement): Remove the parsing
- of a terse range-for.
-
-2015-10-31 Jason Merrill <jason@redhat.com>
-
- Implement multiple 'auto' feature from Concepts TS.
- * parser.c (cp_parser_type_id_1): Allow 'auto' if -fconcepts.
- (cp_parser_template_type_arg): Likewise.
- (get_concept_from_constraint): Split out most logic to...
- * constraint.cc (placeholder_extract_concept_and_args): ...here.
- (equivalent_placeholder_constraints, hash_placeholder_constraint): New.
- * cxx-pretty-print.c (pp_cxx_constrained_type_spec): New.
- * cxx-pretty-print.h: Declare it.
- * error.c (dump_type) [TEMPLATE_TYPE_PARM]: Call it.
- * pt.c (is_auto_r, extract_autos_r, extract_autos, auto_hash): New.
- (type_uses_auto): Use is_auto_r.
- (do_auto_deduction): Handle multiple 'auto's if -fconcepts.
- * typeck.c (structural_comptypes) [TEMPLATE_TYPE_PARM]: Compare
- constraints.
-
- * pt.c (for_each_template_parm_r): Use WALK_SUBTREE.
- Return a meaningful value rather than error_mark_node.
- (for_each_template_parm): Return a tree.
- (uses_template_parms_level): Return bool.
- * cp-tree.h: Adjust.
-
- * pt.c (unify): Don't diagnose no common base if we already have
- the same template.
- (do_auto_deduction): Explain deduction failure.
-
- * pt.c (hash_tmpl_and_args): Use iterative_hash_object on template
- uid.
-
- * parser.c (synthesize_implicit_template_parm)
- (finish_fully_implicit_template): Make static.
-
-2015-10-29 Andrew MacLeod <amacleod@redhat.com>
-
- * call.c: Reorder #include's and remove duplicates.
- * class.c: Likewise.
- * constexpr.c: Likewise.
- * cp-array-notation.c: Likewise.
- * cp-cilkplus.c: Likewise.
- * cp-gimplify.c: Likewise.
- * cp-lang.c: Likewise.
- * cp-objcp-common.c: Likewise.
- * cp-ubsan.c: Likewise.
- * cvt.c: Likewise.
- * cxx-pretty-print.c: Likewise.
- * decl.c: Likewise.
- * decl2.c: Likewise.
- * dump.c: Likewise.
- * error.c: Likewise.
- * except.c: Likewise.
- * expr.c: Likewise.
- * friend.c: Likewise.
- * init.c: Likewise.
- * lambda.c: Likewise.
- * lex.c: Likewise.
- * mangle.c: Likewise.
- * method.c: Likewise.
- * name-lookup.c: Likewise.
- * optimize.c: Likewise.
- * parser.c: Likewise.
- * pt.c: Likewise.
- * ptree.c: Likewise.
- * repo.c: Likewise.
- * rtti.c: Likewise.
- * search.c: Likewise.
- * semantics.c: Likewise.
- * tree.c: Likewise.
- * typeck.c: Likewise.
- * typeck2.c: Likewise.
- * vtable-class-hierarchy.c: Likewise.
-
-2015-10-29 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/67845
- * decl.c (grokfndecl): In case of erroneous cv-qualified non-member
- functions consistently reset TREE_TYPE (decl) too.
-
-2015-10-28 Jason Merrill <jason@redhat.com>
-
- DR 1518
- * class.c (type_has_user_provided_or_explicit_constructor): New.
- (check_bases_and_members): Use it.
- * cp-tree.h: Declare it.
-
-2015-10-27 Cesar Philippidis <cesar@codesourcery.com>
- Thomas Schwinge <thomas@codesourcery.com>
- James Norris <jnorris@codesourcery.com>
- Joseph Myers <joseph@codesourcery.com>
- Julian Brown <julian@codesourcery.com>
- Nathan Sidwell <nathan@codesourcery.com>
- Bernd Schmidt <bschmidt@redhat.com>
-
- * parser.c (cp_parser_omp_clause_name): Add auto, gang, seq,
- vector, worker.
- (cp_parser_oacc_simple_clause): New.
- (cp_parser_oacc_shape_clause): New.
- (cp_parser_oacc_all_clauses): Add auto, gang, seq, vector, worker.
- (OACC_LOOP_CLAUSE_MASK): Likewise.
- * semantics.c (finish_omp_clauses): Add auto, gang, seq, vector,
- worker. Unify the handling of teams, tasks and vector_length with
- the other loop shape clauses.
-
-2015-10-27 Thomas Schwinge <thomas@codesourcery.com>
- James Norris <jnorris@codesourcery.com>
- Cesar Philippidis <cesar@codesourcery.com>
-
- PR c/64765
- PR c/64880
- * cp-tree.h (finish_oacc_kernels, finish_oacc_parallel): Don't
- declare functions.
- (finish_omp_construct): Declare function.
- * parser.c (cp_parser_oacc_loop): Add p_name, mask, cclauses
- formal parameters, and handle these. Adjust all users.
- (cp_parser_oacc_kernels, cp_parser_oacc_parallel): Merge functions
- into...
- (cp_parser_oacc_kernels_parallel): ... this new function. Adjust
- all users.
- * semantics.c (finish_oacc_kernels, finish_oacc_parallel): Merge functions into...
- (finish_omp_construct): ... this new function.
-
-2015-10-25 Jason Merrill <jason@redhat.com>
-
- DR 2179
- * pt.c (process_partial_specialization): Handle error_mark_node
- from most_specialized_partial_spec.
-
-2015-10-23 Jason Merrill <jason@redhat.com>
-
- DR 1518
- DR 1630
- PR c++/54835
- PR c++/60417
- * call.c (convert_like_real): Value-initialization can't use
- explicit constructors in C++11 and up.
-
- PR c++/67813
- * constexpr.c (cxx_eval_store_expression): Always use *valp if
- set.
-
-2015-10-22 Jason Merrill <jason@redhat.com>
-
- * call.c (add_template_conv_candidate): Pass DEDUCE_CALL.
- (add_template_candidate_real): Handle it.
- * pt.c (fn_type_unification): Handle it.
-
- * call.c (add_conv_candidate): Remove first_arg parm.
- (add_template_conv_candidate): Likewise.
- (add_template_candidate_real): Don't pass it.
- (build_op_call_1): Likewise.
-
-2015-10-22 Richard Biener <rguenther@suse.de>
-
- * semantics.c (cp_finish_omp_clause_depend_sink): Properly convert
- before folding a MINUS_EXPR.
- (finish_omp_clauses): Likewise.
-
-2015-10-21 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/66781
- * parser.c (cp_parser_enum_specifier): Upon error_at set
- nested_name_specifier to error_mark_node; improve error message.
-
-2015-10-21 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/67847
- * parser.c (cp_parser_enum_specifier): Reject a nested_name_specifier
- which doesn't name a class or namespace.
-
-2015-10-21 Ilya Enkovich <enkovich.gnu@gmail.com>
-
- * call.c (build_conditional_expr_1): Use boolean vector
- type for vector comparison.
- * typeck.c (build_vec_cmp): New.
- (cp_build_binary_op): Use build_vec_cmp for comparison.
-
-2015-10-20 Jason Merrill <jason@redhat.com>
-
- PR c++/66583
- * init.c (innermost_aggr_scope): New.
- (build_field_list): Change uses_unions_p to uses_unions_or_anon_p.
- (sort_mem_initializers): Handle initializers for entire anonymous
- aggregates.
-
-2015-10-20 Marek Polacek <polacek@redhat.com>
-
- * parser.c (is_cilkplus_vector_p): Don't define here.
-
-2015-10-19 Jason Merrill <jason@redhat.com>
-
- PR c++/67064
- * semantics.c (force_paren_expr): Don't mess with hard register vars.
-
- Implement N4268, Do constant evaluation of all non-type template args.
- * parser.c (cp_parser_template_argument): For C++1z just parse a
- constant-expression.
- * pt.c (convert_nontype_argument): For C++1z always call
- maybe_constant_value.
-
- * constexpr.c (cxx_eval_constant_expression): Expand PTRMEM_CST
- only when necessary.
- (cxx_eval_component_reference): Like here.
- * decl2.c (lower_var_init): And here.
- (c_parse_final_cleanups): Call it.
- * typeck2.c (digest_init_r): Not here.
- * decl.c (complete_vars): Or here.
- (cp_finish_decl): Add local statics to symbol table.
-
-2015-10-17 Jason Merrill <jason@redhat.com>
-
- PR c++/68006
- * decl.c (implicit_default_ctor_p): New.
- (start_preparsed_function): Don't clobber on entry to one.
-
-2015-10-16 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/67926
- * constexpr.c (potential_constant_expression_1): Handle
- UNARY_LEFT_FOLD_EXPR, UNARY_RIGHT_FOLD_EXPR, BINARY_LEFT_FOLD_EXPR,
- BINARY_RIGHT_FOLD_EXPR.
-
-2015-10-13 Jakub Jelinek <jakub@redhat.com>
- Aldy Hernandez <aldyh@redhat.com>
-
- * class.c (finish_struct_1): Call finish_omp_declare_simd_methods.
- * cp-gimplify.c (cp_gimplify_expr): Handle OMP_TASKLOOP.
- (cp_genericize_r): Likewise.
- (cxx_omp_finish_clause): Don't diagnose references.
- (cxx_omp_disregard_value_expr): New function.
- * cp-objcp-common.h (LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR): Redefine.
- * cp-tree.h (OMP_FOR_GIMPLIFYING_P): Document for OMP_TASKLOOP.
- (DECL_OMP_PRIVATIZED_MEMBER): Define.
- (finish_omp_declare_simd_methods, push_omp_privatization_clauses,
- pop_omp_privatization_clauses, save_omp_privatization_clauses,
- restore_omp_privatization_clauses, omp_privatize_field,
- cxx_omp_disregard_value_expr): New prototypes.
- (finish_omp_clauses): Add two new arguments.
- (finish_omp_for): Add ORIG_DECLV argument.
- * parser.c (cp_parser_lambda_body): Call
- save_omp_privatization_clauses and restore_omp_privatization_clauses.
- (cp_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
- (cp_parser_omp_var_list_no_open): Handle structure elements for
- map, to and from clauses. Handle array sections in reduction
- clause. Parse this keyword. Formatting fixes.
- (cp_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
- if clause modifiers.
- (cp_parser_omp_clause_num_tasks, cp_parser_omp_clause_grainsize,
- cp_parser_omp_clause_priority, cp_parser_omp_clause_hint,
- cp_parser_omp_clause_defaultmap): New functions.
- (cp_parser_omp_clause_ordered): Parse optional parameter.
- (cp_parser_omp_clause_reduction): Handle array reductions.
- (cp_parser_omp_clause_schedule): Parse optional simd modifier.
- (cp_parser_omp_clause_nogroup, cp_parser_omp_clause_orderedkind):
- New functions.
- (cp_parser_omp_clause_linear): Parse linear clause modifiers.
- (cp_parser_omp_clause_depend_sink): New function.
- (cp_parser_omp_clause_depend): Parse source/sink depend kinds.
- (cp_parser_omp_clause_map): Parse release/delete map kinds and
- optional always modifier.
- (cp_parser_oacc_all_clauses): Adjust cp_parser_omp_clause_if
- and finish_omp_clauses callers.
- (cp_parser_omp_all_clauses): Likewise. Parse OpenMP 4.5 clauses.
- Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
- (OMP_CRITICAL_CLAUSE_MASK): Define.
- (cp_parser_omp_critical): Parse critical clauses.
- (cp_parser_omp_for_incr): Use cp_tree_equal if
- processing_template_decl.
- (cp_parser_omp_for_loop_init): Return tree instead of bool. Handle
- non-static data member iterators.
- (cp_parser_omp_for_loop): Handle doacross loops, adjust
- finish_omp_for and finish_omp_clauses callers.
- (cp_omp_split_clauses): Adjust finish_omp_clauses caller.
- (OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
- (cp_parser_omp_simd): Allow ordered clause if it has no parameter.
- (OMP_FOR_CLAUSE_MASK): Add linear clause.
- (cp_parser_omp_for): Disallow ordered clause when combined with
- distribute. Disallow linear clause when combined with distribute
- and not combined with simd.
- (OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define.
- (cp_parser_omp_ordered): Add CONTEXT argument, return bool instead
- of tree, parse clauses and if depend clause is found, don't parse
- a body.
- (cp_parser_omp_parallel): Disallow copyin clause on target parallel.
- Allow target parallel without for after it.
- (OMP_TASK_CLAUSE_MASK): Add priority clause.
- (OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
- (cp_parser_omp_target_data): Diagnose no map clauses or clauses with
- invalid kinds.
- (OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
- (OMP_TARGET_ENTER_DATA_CLAUSE_MASK,
- OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define.
- (cp_parser_omp_target_enter_data, cp_parser_omp_target_exit_data): New
- functions.
- (OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
- defaultmap and is_device_ptr clauses.
- (cp_parser_omp_target): Parse target parallel and target simd. Set
- OMP_TARGET_COMBINED on combined constructs. Parse target enter data
- and target exit data. Diagnose invalid map kinds.
- (cp_parser_oacc_cache): Adjust finish_omp_clauses caller.
- (OMP_DECLARE_TARGET_CLAUSE_MASK): Define.
- (cp_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
- construct.
- (OMP_TASKLOOP_CLAUSE_MASK): Define.
- (cp_parser_omp_taskloop): New function.
- (cp_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
- handle PRAGMA_OMP_TASKLOOP.
- (cp_parser_pragma): Handle PRAGMA_OMP_ORDERED here directly,
- handle PRAGMA_OMP_TASKLOOP, call push_omp_privatization_clauses
- and pop_omp_privatization_clauses around parsing calls.
- (cp_parser_cilk_for): Adjust finish_omp_clauses caller.
- * pt.c (apply_late_template_attributes): Adjust tsubst_omp_clauses
- and finish_omp_clauses callers.
- (tsubst_omp_clause_decl): Return NULL if decl is NULL.
- For TREE_LIST, copy over OMP_CLAUSE_DEPEND_SINK_NEGATIVE bit.
- Use tsubst_expr instead of tsubst_copy, undo convert_from_reference
- effects.
- (tsubst_omp_clauses): Add ALLOW_FIELDS argument. Handle new
- OpenMP 4.5 clauses. Use tsubst_omp_clause_decl for more clauses.
- If ALLOW_FIELDS, handle non-static data members in the clauses.
- Clear OMP_CLAUSE_LINEAR_STEP if it has been cleared before.
- (omp_parallel_combined_clauses): New variable.
- (tsubst_omp_for_iterator): Add ORIG_DECLV argument, recur on
- OMP_FOR_ORIG_DECLS, handle non-static data member iterators.
- Improve handling of clauses on combined constructs.
- (tsubst_expr): Call push_omp_privatization_clauses and
- pop_omp_privatization_clauses around instantiation of certain
- OpenMP constructs, improve handling of clauses on combined
- constructs, handle OMP_TASKLOOP, adjust tsubst_omp_for_iterator,
- tsubst_omp_clauses and finish_omp_for callers, handle clauses on
- critical and ordered, handle OMP_TARGET_{ENTER,EXIT}_DATA.
- (instantiate_decl): Call save_omp_privatization_clauses and
- restore_omp_privatization_clauses around instantiation.
- (dependent_omp_for_p): Fix up comment typo. Handle SCOPE_REF.
- * semantics.c (omp_private_member_map, omp_private_member_vec,
- omp_private_member_ignore_next): New variables.
- (finish_non_static_data_member): Return dummy decl for privatized
- non-static data members.
- (omp_clause_decl_field, omp_clause_printable_decl,
- omp_note_field_privatization, omp_privatize_field): New functions.
- (handle_omp_array_sections_1): Fix comment typo.
- Add IS_OMP argument, handle structure element bases, diagnose
- bitfields, pass IS_OMP recursively, diagnose known zero length
- array sections in depend clauses, handle array sections in reduction
- clause, diagnose negative length even for pointers.
- (handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
- types, pass IS_OMP down to handle_omp_array_sections_1, handle
- array sections in reduction clause, set
- OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero
- length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
- (finish_omp_reduction_clause): Handle array sections and arrays.
- Use omp_clause_printable_decl.
- (finish_omp_declare_simd_methods, cp_finish_omp_clause_depend_sink):
- New functions.
- (finish_omp_clauses): Add ALLOW_FIELDS and DECLARE_SIMD arguments.
- Handle new OpenMP 4.5 clauses and new restrictions for the old
- ones, handle non-static data members, reject this keyword when not
- allowed.
- (push_omp_privatization_clauses, pop_omp_privatization_clauses,
- save_omp_privatization_clauses, restore_omp_privatization_clauses):
- New functions.
- (handle_omp_for_class_iterator): Handle OMP_TASKLOOP class iterators.
- Add collapse and ordered arguments. Fix handling of lastprivate
- iterators in doacross loops.
- (finish_omp_for): Add ORIG_DECLV argument, handle doacross loops,
- adjust c_finish_omp_for, handle_omp_for_class_iterator and
- finish_omp_clauses callers. Fill in OMP_CLAUSE_LINEAR_STEP on simd
- loops with non-static data member iterators.
-
-2015-10-12 Ville Voutilainen <ville.voutilainen@gmail.com>
-
- PR c++/58566
- * lambda.c (lambda_return_type): Return error_mark_node
- instead of void_type_node for the error cases.
-
-2015-10-08 Jason Merrill <jason@redhat.com>
-
- * cp-tree.h (SIMPLE_TARGET_EXPR_P): New.
- * init.c (get_nsdmi): Use it.
- * typeck2.c (massage_init_elt): Use it.
-
-2015-10-07 Jason Merrill <jason@redhat.com>
-
- PR c++/67557
- * call.c (is_base_field_ref): New.
- (unsafe_copy_elision_p): New.
- (build_over_call): Use it.
-
-2015-10-07 Marek Polacek <polacek@redhat.com>
-
- PR sanitizer/67867
- * search.c (accessible_p): Initialize OTYPE to NULL_TREE.
-
-2015-10-07 Marek Polacek <polacek@redhat.com>
-
- * cp-gimplify.c (genericize_if_stmt): Use protected_set_expr_location.
- (genericize_cp_loop): Likewise.
- * decl.c (cxx_maybe_build_cleanup): Likewise.
- * parser.c (cp_parser_binary_expression): Likewise.
- (cp_parser_omp_for_loop): Likewise.
- (cp_parser_omp_construct): Likewise.
- * semantics.c (finish_transaction_stmt): Likewise.
- (build_transaction_expr): Likewise.
-
-2015-10-06 Jason Merrill <jason@redhat.com>
-
- PR c++/67810
- * parser.c (cp_parser_fold_expr_p): Remove.
- (is_binary_op): New.
- (cp_parser_fold_expression): Take LHS as parameter.
- (cp_parser_primary_expression): Call it after parsing an expression.
- (cp_parser_binary_expression, cp_parser_assignment_operator_opt)
- (cp_parser_expression): Ignore an operator followed by '...'.
- (is_binary_op): New.
- * pt.c (tsubst_unary_left_fold, tsubst_binary_left_fold)
- (tsubst_unary_right_fold, tsubst_binary_right_fold): Handle errors.
-
-2015-10-06 Marek Polacek <polacek@redhat.com>
-
- PR c++/67863
- * call.c (build_conditional_expr_1): Build the COND_EXPR with
- a location.
-
-2015-10-05 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/53856
- * pt.c (check_default_tmpl_args): Per [temp.param]/9, do not
- reject default template arguments in out of class definitions
- of members of non-template classes.
-
-2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree.c (cp_tree_equal): Use real_equal instead of
- REAL_VALUES_EQUAL.
-
-2015-10-04 Jason Merrill <jason@redhat.com>
-
- Implement N4514, C++ Extensions for Transactional Memory.
- * cp-tree.h (struct cp_declarator): Add tx_qualifier field.
- (BCS_NORMAL, BCS_TRANSACTION): New enumerators.
- * lex.c (init_reswords): Limit TM kewords to -fgnu-tm.
- * parser.c (cp_lexer_get_preprocessor_token): Fix @synchronized.
- (make_call_declarator): Take tx_qualifier.
- (cp_parser_tx_qualifier_opt): New.
- (cp_parser_lambda_declarator_opt): Use it.
- (cp_parser_direct_declarator): Likewise.
- (cp_parser_statement): Handle atomic_noexcept, atomic_cancel.
- (cp_parser_compound_statement): Change in_try parameter to bcs_flags.
- (cp_parser_std_attribute): Map optimize_for_synchronized to
- transaction_callable.
- (cp_parser_transaction): Take the token. Handle atomic_noexcept.
- * lambda.c (maybe_add_lambda_conv_op): Handle transaction-safety.
- * call.c (enum conversion_kind): Add ck_tsafe.
- (standard_conversion): Handle transaction-safety conversion.
- (convert_like_real, resolve_address_of_overloaded_function): Likewise.
- (check_methods): Diagnose transaction_safe_dynamic on non-virtual
- function.
- (look_for_tm_attr_overrides): Don't inherit transaction_safe_dynamic.
- * cvt.c (tx_safe_fn_type_p, tx_unsafe_fn_variant)
- (can_convert_tx_safety): New.
- * typeck.c (composite_pointer_type): Handle transaction-safety.
- * name-lookup.h (enum scope_kind): Add sk_transaction.
- * name-lookup.c (begin_scope): Handle it.
- * semantics.c (begin_compound_stmt): Pass it.
- * decl.c (check_previous_goto_1): Check it.
- (struct named_label_entry): Add in_transaction_scope.
- (poplevel_named_label_1): Set it.
- (check_goto): Check it.
- (duplicate_decls): A specialization can be transaction_safe
- independently of its template.
- (grokdeclarator): Handle tx-qualifier.
- * rtti.c (ptr_initializer): Handle transaction-safe.
- * search.c (check_final_overrider): Check transaction_safe_dynamic.
- Don't check transaction_safe.
- * mangle.c (write_function_type): Mangle transaction_safe here.
- (write_CV_qualifiers_for_type): Not here.
- (write_type): Preserve transaction_safe when stripping attributes.
- * error.c (dump_type_suffix): Print transaction_safe.
-
-2015-10-02 Marek Polacek <polacek@redhat.com>
-
- PR c/64249
- * parser.c (cp_parser_statement): Add CHAIN parameter and pass it
- down to cp_parser_selection_statement.
- (cp_parser_selection_statement): Add CHAIN parameter. Add code to
- warn about duplicated if-else-if conditions.
- (cp_parser_implicitly_scoped_statement): Add CHAIN parameter and pass
- it down to cp_parser_statement.
-
-2015-10-01 Ville Voutilainen <ville.voutilainen@gmail.com>
-
- PR c++/54430
- * name-lookup.c (push_binding): Make non-static.
- * name-lookup.h (push_binding): Declare it.
- * parser.c (cp_parser_range_for): Use it, get the range
- declaration away from the scope until the range expression
- has been parsed, then restore the declaration.
-
-2015-09-23 Ville Voutilainen <ville.voutilainen@gmail.com>
-
- Fix small typos in the coding rule enforcement warnings.
- * parser.c (cp_parser_namespace_definition): Replace 'namepace'
- with 'namespace'.
-
-2015-09-22 Nathan Sidwell <nathan@codesourcery.com>
-
- * decl.c (xref_basetypes): Check virtual and/or multiple
- inheritance warning.
- * parser.c (cp_parser_namespace_definition): Check namespaces
- warning.
- * pt.c (push_template_decl_real): Check templates warning.
-
-2015-09-22 Jason Merrill <jason@redhat.com>
-
- * mangle.c (abi_warn_or_compat_version_crosses): New.
- Use it instead of abi_version_crosses.
- (mangle_decl): Deal with -fabi-compat-version and -Wabi separately.
-
-2015-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
-
- Complete the implementation of N4230, Nested namespace definition.
- * parser.c (cp_parser_namespace_definition): Support namespace
- attributes both before and after the namespace identifier.
-
-2015-09-19 Trevor Saunders <tbsaunde@tbsaunde.org>
-
- * cp-gimplify.c (gimplify_must_not_throw_expr): Adjust.
-
-2015-09-18 Ville Voutilainen <ville.voutilainen@gmail.com>
-
- Implement nested namespace definitions.
- * parser.c (cp_parser_namespace_definition): Grok nested namespace
- definitions.
-
-2015-09-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
-
- * parser.c (pragma_lex): Add loc argument. Rearrange the code to
- make it more similar to the C version.
-
-2015-09-17 Andrew Sutton <andrew.n.sutton@gmail.com>
- Jason Merrill <jason@redhat.com>
-
- Implement N4295 fold-expressions.
- * cp-tree.def: Add UNARY_LEFT_FOLD_EXPR, UNARY_RIGHT_FOLD_EXPR,
- BINARY_LEFT_FOLD_EXPR, BINARY_RIGHT_FOLD_EXPR.
- * cp-objcp-common.c (cp_common_init_ts): Handle them.
- * cp-tree.h (FOLD_EXPR_CHECK, BINARY_FOLD_EXPR_CHECK, FOLD_EXPR_P)
- (FOLD_EXPR_MODIFY_P, FOLD_EXPR_OP, FOLD_EXPR_PACK, FOLD_EXPR_INIT): New.
- * parser.c (cp_parser_skip_to_closing_parenthesis): Split out...
- (cp_parser_skip_to_closing_parenthesis_1): This function. Change
- or_comma parameter to or_ttype.
- (cp_parser_fold_operator, cp_parser_fold_expr_p)
- (cp_parser_fold_expression): New.
- (cp_parser_primary_expression): Use them.
- * pt.c (expand_empty_fold, fold_expression, tsubst_fold_expr_pack)
- (tsubst_fold_expr_init, expand_left_fold, tsubst_unary_left_fold)
- (tsubst_binary_left_fold, expand_right_fold)
- (tsubst_unary_right_fold, tsubst_binary_right_fold): New.
- (tsubst_copy): Use them.
- (type_dependent_expression_p): Handle fold-expressions.
- * semantics.c (finish_unary_fold_expr)
- (finish_left_unary_fold_expr, finish_right_unary_fold_expr)
- (finish_binary_fold_expr): New.
-
-2015-09-17 Richard Biener <rguenther@suse.de>
-
- * cp-tree.h (note_decl_for_pch): Remove.
- * class.c (build_clone): Do not call note_decl_for_pch.
- * semantics.c (finish_member_declaration): Likewise.
- (note_decl_for_pch): Remove.
- * decl2.c (c_parse_final_cleanups): Mangle all globals before
- writing the PCH.
-
-2015-09-14 Jason Merrill <jason@redhat.com>
-
- PR c++/44282
- * mangle.c (write_CV_qualifiers_for_type): Also warn about regparm
- mangling with lower -fabi-version.
-
-2015-09-14 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/51911
- * parser.c (cp_parser_new_expression): Enforce 5.3.4/2 (as amended
- per the spirit of DR 1467).
-
-2015-09-11 Mark Wielaard <mjw@redhat.com>
-
- PR c/28901
- * cp-objcp-common.c (cxx_warn_unused_global_decl): Remove hard-coded
- VAR_P TREE_READONLY override.
-
-2015-09-10 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/67318
- * parser.c (cp_parser_parameter_declaration): Consume the ellipsis
- and set template_parameter_pack_p also when the type is null.
-
-2015-09-09 Mark Wielaard <mjw@redhat.com>
-
- * typeck.c (cp_build_binary_op): Check and warn when nonnull arg
- parm against NULL.
-
-2015-09-10 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/67522
- * semantics.c (handle_omp_array_sections_1): Only run
- type_dependent_expression_p on VAR_DECL/PARM_DECLs.
- (finish_omp_clauses) <case OMP_CLAUSE_LINEAR>: Likewise.
- Don't adjust OMP_CLAUSE_LINEAR_STEP if OMP_CLAUSE_DECL
- is not a VAR_DECL/PARM_DECL.
-
- PR c++/67511
- * semantics.c (handle_omp_for_class_iterator): Don't wrap
- error_mark_node into a NOP_EXPR to void_type_node.
-
-2015-09-09 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/53184
- * decl2.c (constrain_class_visibility): Use Wsubobject-linkage.
-
-2015-09-09 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/67504
- * parser.c (cp_parser_omp_clause_collapse): Test tree_fits_shwi_p
- before INTEGRAL_TYPE_P test.
-
-2015-09-08 Jason Merrill <jason@redhat.com>
-
- PR c++/67041
- * pt.c (tsubst_copy_and_build): Handle variables like functions.
-
-2015-09-08 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/67369
- * pt.c (tsubst_copy, [case FUNCTION_DECL]): Do not call tsubst
- if the first argument isn't a template.
-
-2015-09-03 Martin Sebor <msebor@redhat.com>
-
- PR c/66516
- * cp-tree.h (mark_rvalue_use, decay_conversion): Add new
- argument(s).
- * expr.c (mark_rvalue_use): Use new argument.
- * call.c (build_addr_func): Call decay_conversion with new
- argument.
- * pt.c (convert_template_argument): Call reject_gcc_builtin.
- * typeck.c (decay_conversion): Use new argument.
- (c_decl_implicit): Define.
-
-2015-09-02 Balaji V. Iyer <balaji.v.iyer@intel.com>
-
- PR middle-end/60586
- * cp-gimplify.c (cilk_cp_gimplify_call_params_in_spawned_fn): New
- function.
- (cp_gimplify_expr): Added a call to the function
- cilk_cp_gimplify_call_params_in_spawned_fn.
-
-2015-09-01 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/61753
- * decl.c (smallest_type_quals_location): New.
- (check_special_function_return_type): Use the latter; add int and
- const location_t* parameters.
- (grokdeclarator): Adjust check_special_function_return_type call.
-
-2015-08-29 Markus Trippelsdorf <markus@trippelsdorf.de>
-
- PR c++/67371
- * constexpr.c (potential_constant_expression_1): Remove IF_STMT
- case. Move label to COND_EXPR case. Remove checking of
- SWITCH_STMT_BODY.
-
-2015-08-22 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/63693
- * pt.c (resolve_typename_type): Use CLASSTYPE_PRIMARY_TEMPLATE_TYPE
- only on class types.
-
-2015-08-21 Jason Merrill <jason@redhat.com>
-
- PR c++/67240
- * constraint.cc (satisfy_implicit_conversion_constraint): Also
- check for NULL_TREE.
-
-2015-08-21 Paolo Carlini <paolo.carlini@oracle.com>
-
- * decl.c (grokvardecl): Simplify the latter.
-
-2015-08-21 Paolo Carlini <paolo.carlini@oracle.com>
-
- * decl.c (grokvardecl): Complete check added for c++/67065.
-
-2015-08-20 Jason Merrill <jason@redhat.com>
-
- * name-lookup.c (hidden_name_p): Handle OVERLOAD.
-
-2015-08-20 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/67065
- * decl.c (grokvardecl): Reject 'main' as global variable.
-
-2015-08-19 Jason Merrill <jason@redhat.com>
-
- PR c++/66957
- * search.c (protected_accessible_p): Remove redundant access_in_type.
- Add otype parm instead of walking binfo.
- (friend_accessible_p): Check SCOPE itself. Handle class
- templates. Pass through otype.
- (dfs_accessible_post): Handle all accessibility cases.
- (dfs_accessible_pre): New.
- (accessible_p): Use it. Don't check protected access here. Pass
- decl and otype to dfs_walk.
- (member_declared_in_type, dfs_access_in_type_pre): New.
- (access_in_type): Use dfs_access_in_type_pre.
- * friend.c (add_friend): Fix multiple friends with the same name.
-
- * lambda.c (current_nonlambda_scope): New.
-
-2015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org>
-
- * call.c, class.c, cp-tree.h, decl.c, except.c, mangle.c,
- method.c, name-lookup.h, parser.c, parser.h, rtti.c,
- semantics.c, typeck2.c: Remove useless typedefs.
-
-2015-08-18 Jason Merrill <jason@redhat.com>
-
- DR 1155
- * pt.c (convert_nontype_argument): Allow internal linkage in C++11
- and up.
-
-2015-08-17 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/67216
- * call.c (null_ptr_cst_p): In C++11 return 'false' for 'false'.
-
-2015-08-17 Jason Merrill <jason@redhat.com>
-
- PR c++/67244
- * pt.c (tsubst_copy_and_build): Call insert_pending_capture_proxies.
-
- PR c++/67104
- * constexpr.c (array_index_cmp, find_array_ctor_elt): New.
- (cxx_eval_array_reference, cxx_eval_store_expression): Use them.
-
- * constexpr.c (cxx_eval_store_expression): Don't set
- CONSTRUCTOR_NO_IMPLICIT_ZERO if we have an enclosing CONSTRUCTOR
- without it.
- (cxx_eval_array_reference): Check it.
-
- * except.c (check_noexcept_r): Assert that fn is POINTER_TYPE_P.
-
-2015-08-14 Jason Merrill <jason@redhat.com>
-
- PR c++/65974
- * decl2.c (mark_vtable_entries): Suppress -Wdeprecated.
-
-2015-08-12 Jason Merrill <jason@redhat.com>
-
- PR c++/67104
- * constexpr.c (cxx_eval_array_reference): Fix typo.
-
- PR c++/67104
- * constexpr.c (cxx_eval_array_reference): Handle sparse
- CONSTRUCTORs.
-
- PR c++/67108
- * decl2.c (c_parse_final_cleanups): Set at_eof to 2 at end.
- * error.c (dump_template_bindings): Don't tsubst in that case.
-
- PR c++/67161
- * error.c (dump_decl) [TEMPLATE_ID_EXPR]: Pass
- TFF_NO_OMIT_DEFAULT_TEMPLATE_ARGUMENTS.
-
-2015-08-08 Jason Merrill <jason@redhat.com>
-
- PR c++/67152
- * pt.c (process_partial_specialization): Call
- associate_classtype_constraints.
-
- PR c++/67159
- * constraint.cc (finish_template_introduction):
- SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT.
-
- PR c++/67142
- * pt.c (equal): Make sure tmpl is actually a template.
-
- PR c++/67144
- * call.c (joust): Only call more_constrained on decls.
-
-2015-08-06 Andrew Sutton <andrew.n.sutton@gmail.com>
- Braden Obrzut <admin@maniacsvault.net>
- Jason Merrill <jason@redhat.com>
- Ville Voutilainen <ville.voutilainen@gmail.com>
-
- Add C++ Concepts TS support.
- * constraint.cc, logic.cc: New files.
- * Make-lang.in (CXX_AND_OBJCXX_OBJS): Add constraint.o and logic.o.
- (c++.tags): Also process .cc files.
- * call.c (enum rejection_reason_code): Add rr_constraint_failure.
- (print_z_candidate): Handle it.
- (constraint_failure): New.
- (add_function_candidate): Check constraints.
- (build_new_function_call): Handle evaluating concepts.
- (joust): Check more_constrained.
- * class.c (add_method): Check equivalently_constrained.
- (build_clone): Copy constraints.
- (currently_open_class): Return tree.
- (resolve_address_of_overloaded_function): Check constraints.
- * constexpr.c (cxx_eval_constant_expression): Handle REQUIRES_EXPR.
- (potential_constant_expression_1): Likewise.
- * cp-objcp-common.c (cp_tree_size): Handle CONSTRAINT_INFO.
- (cp_common_init_ts): Handle WILDCARD_DECL and REQUIRES_EXPR.
- * cp-tree.def: Add CONSTRAINT_INFO, WILDCARD_DECL, REQUIRES_EXPR,
- SIMPLE_REQ, TYPE_REQ, COMPOUND_REQ, NESTED_REQ, PRED_CONSTR,
- EXPR_CONSTR, TYPE_CONSTR, ICONV_CONSTR, DEDUCT_CONSTR,
- EXCEPT_CONSTR, PARM_CONSTR, CONJ_CONSTR, DISJ_CONSTR.
- * cp-tree.h (struct tree_constraint_info, check_nonnull)
- (check_constraint_info, CI_TEMPLATE_REQS, CI_DECLARATOR_REQS)
- (CI_ASSOCIATED_CONSTRAINTS, CI_NORMALIZED_CONSTRAINTS)
- (CI_ASSUMPTIONS, TEMPLATE_PARMS_CONSTRAINTS)
- (TEMPLATE_PARM_CONSTRAINTS, COMPOUND_REQ_NOEXCEPT_P)
- (PLACEHOLDER_TYPE_CONSTRAINTS, PRED_CONSTR_EXPR, EXPR_CONSTR_EXPR)
- (TYPE_CONSTR_TYPE, ICONV_CONSTR_EXPR, ICONV_CONSTR_TYPE)
- (DEDUCT_CONSTR_EXPR, DEDUCT_CONSTR_PATTERN)
- (DEDUCT_CONSTR_PLACEHOLDER, EXCEPT_CONSTR_EXPR, PARM_CONSTR_PARMS)
- (PARM_CONSTR_OPERAND, CONSTRAINT_VAR_P, CONSTRAINED_PARM_CONCEPT)
- (CONSTRAINED_PARM_EXTRA_ARGS, CONSTRAINED_PARM_PROTOTYPE)
- (DECL_DECLARED_CONCEPT_P, WILDCARD_PACK_P, struct cp_unevaluated)
- (struct local_specialization_stack, enum auto_deduction_context)
- (variable_concept_p, concept_template_p)
- (struct deferring_access_check_sentinel): New.
- (enum cp_tree_node_structure_enum): Add TS_CP_CONSTRAINT_INFO.
- (union lang_tree_node): Add constraint_info field.
- (struct lang_decl_base): Add concept_p flag.
- (enum cp_decl_spec): Add ds_concept.
- (struct cp_declarator): Add requires_clause.
- * cxx-pretty-print.c (cxx_pretty_printer::primary_expression)
- (cxx_pretty_printer::expression): Handle REQUIRES_EXPR,
- TRAIT_EXPR, *_CONSTR.
- (pp_cxx_parameter_declaration_clause): Accept a chain of
- PARM_DECLs.
- (cxx_pretty_printer::declarator): Print requires-clause.
- (pp_cxx_template_declaration): Likewise.
- (pp_cxx_trait_expression): Handle CPTK_IS_SAME_AS.
- (pp_cxx_requires_clause, pp_cxx_requirement)
- (pp_cxx_requirement_list, pp_cxx_requirement_body)
- (pp_cxx_requires_expr, pp_cxx_simple_requirement)
- (pp_cxx_type_requirement, pp_cxx_compound_requirement)
- (pp_cxx_nested_requirement, pp_cxx_predicate_constraint)
- (pp_cxx_expression_constraint, pp_cxx_type_constraint)
- (pp_cxx_implicit_conversion_constraint)
- (pp_cxx_argument_deduction_constraint)
- (pp_cxx_exception_constraint, pp_cxx_parameterized_constraint)
- (pp_cxx_conjunction, pp_cxx_disjunction, pp_cxx_constraint): New.
- * cxx-pretty-print.h: Declare them.
- * decl.c (decls_match): Compare constraints.
- (duplicate_decls): Likewise. Remove constraints before freeing.
- (cxx_init_decl_processing): Call init_constraint_processing.
- (cp_finish_decl): Diagnose concept without initializer.
- (grokfndecl, grokvardecl): Handle concepts and constraints.
- (grokdeclarator): Handle concept, requires-clause.
- (grokparms): No longer static.
- (xref_tag_1): Check constraints.
- (finish_function): Call check_function_concept.
- (cp_tree_node_structure): Handle CONSTRAINT_INFO.
- (check_concept_refinement, is_concept_var, check_concept_fn): New.
- * decl2.c (check_classfn): Compare constraints.
- (mark_used): Don't instantiate concepts.
- * error.c (dump_template_decl): Print constraints.
- (dump_function_decl): Likewise.
- (dump_expr): Handle REQUIRES_EXPR, *_REQ, *_CONSTR.
- * lex.c (init_reswords): Set D_CXX_CONCEPTS.
- * method.c (implicitly_declare_fn): Copy constraints from
- inherited ctor.
- * parser.h (struct cp_parser): Add in_result_type_constraint_p and
- prevent_constrained_type_specifiers fields.
- * parser.c (make_call_declarator): Add requires_clause parm.
- (cp_parser_new): Clear prevent_constrained_type_specifiers.
- (cp_parser_primary_expression): Handle RID_IS_SAME_AS, RID_REQUIRES.
- (cp_parser_postfix_expression): Set prevent_constrained_type_specifiers.
- (cp_parser_trait_expr): Handle RID_IS_SAME_AS.
- (cp_parser_declaration): Handle concept introduction.
- (cp_parser_member_declaration): Likewise.
- (cp_parser_template_parameter): Handle constrained parameter.
- (cp_parser_type_parameter): Handle constraints.
- (cp_parser_decl_specifier_seq): Handle RID_CONCEPT.
- (cp_parser_template_id): Handle partial concept id.
- (cp_parser_type_name): Add overload that takes typename_keyword_p.
- Handle constrained parameter.
- (cp_parser_nonclass_name): Handle concept names.
- (cp_parser_alias_declaration): Handle constraints.
- (cp_parser_late_return_type_opt): Also handle requires-clause.
- (cp_parser_type_id_1): Handle deduction constraint.
- (cp_parser_parameter_declaration): Handle constrained parameters.
- (cp_parser_class_specifier_1): Handle constraints.
- (cp_parser_template_declaration_after_parameters): Split out from
- cp_parser_template_declaration_after_export.
- (cp_parser_single_declaration): Handle constraints.
- (synthesize_implicit_template_parm): Handle constraints.
- (cp_parser_maybe_concept_name, cp_parser_maybe_partial_concept_id)
- (cp_parser_introduction_list, get_id_declarator)
- (get_unqualified_id, is_constrained_parameter)
- (cp_parser_check_constrained_type_parm)
- (cp_parser_constrained_type_template_parm)
- (cp_parser_constrained_template_template_parm)
- (constrained_non_type_template_parm, finish_constrained_parameter)
- (declares_constrained_type_template_parameter)
- (declares_constrained_template_template_parameter)
- (check_type_concept, cp_parser_maybe_constrained_type_specifier)
- (cp_parser_maybe_concept_name, cp_parser_maybe_partial_concept_id)
- (cp_parser_requires_clause, cp_parser_requires_clause_opt)
- (cp_parser_requires_expression)
- (cp_parser_requirement_parameter_list, cp_parser_requirement_body)
- (cp_parser_requirement_list, cp_parser_requirement)
- (cp_parser_simple_requirement, cp_parser_type_requirement)
- (cp_parser_compound_requirement, cp_parser_nested_requirement)
- (cp_parser_template_introduction)
- (cp_parser_explicit_template_declaration)
- (get_concept_from_constraint): New.
- * pt.c (local_specialization_stack): Implement.
- (maybe_new_partial_specialization): New.
- (maybe_process_partial_specialization): Use it.
- (retrieve_local_specialization, register_local_specialization)
- (template_parm_to_arg, build_template_decl, extract_fnparm_pack)
- (tsubst_expr): No longer static.
- (spec_hasher::equal): Compare constraints.
- (determine_specialization): Handle constraints.
- (check_explicit_specialization): Handle concepts.
- (process_template_parm): Handle constraints.
- (end_template_parm_list): Add overload taking no arguments.
- (process_partial_specialization): Handle concepts and constraints.
- Register partial specializations of variable templates.
- (redeclare_class_template): Handle constraints.
- (convert_template_argument): Handle WILDCARD_DECL. Check
- is_compatible_template_arg.
- (coerce_template_parameter_pack): Handle wildcard packs.
- (coerce_template_parms): DR 1430 also applies to concepts. Add
- overloads taking fewer parameters.
- (lookup_template_class_1): Handle constraints.
- (lookup_template_variable): Concepts are always bool.
- (finish_template_variable): Handle concepts and constraints.
- (tsubst_friend_class): Handle constraints.
- (gen_elem_of_pack_expansion_instantiation): Handle constraints.
- (tsubst_pack_expansion): Handle local parameters.
- (tsubst_decl) [FUNCTION_DECL]: Handle constraints.
- (tsubst) [TEMPLATE_TYPE_PARM]: Handle deduction constraints.
- (tsubst_copy_and_build): Handle REQUIRES_EXPR.
- (more_specialized_fn, more_specialized_partial_spec): Check constraints.
- (more_specialized_inst): Split out from most_specialized_instantiation.
- (most_specialized_partial_spec): Check constraints.
- (instantiate_decl): Never instantiate a concept.
- (value_dependent_expression_p): Handle REQUIRES_EXPR, TYPE_REQ,
- variable concepts.
- (type_dependent_expression_p): Handle WILDCARD_DECL, REQUIRES_EXPR.
- (instantiation_dependent_r): Handle REQUIRES_EXPR and concepts.
- (do_auto_deduction): Add overload taking tsubst flags and context enum.
- Handle constraints.
- (get_template_for_ordering, most_constrained_function)
- (is_compatible_template_arg, convert_wildcard_argument)
- (struct constr_entry, struct constr_hasher, decl_constraints)
- (valid_constraints_p, get_constraints, set_constraints)
- (remove_constraints, init_constraint_processing): New.
- * ptree.c (cxx_print_xnode): Handle CONSTRAINT_INFO.
- * search.c (lookup_member): Do lookup in the open partial
- instantiation.
- * semantics.c (finish_template_template_parm): Handle constraints.
- (fixup_template_type): New.
- (finish_template_type): Call it.
- (trait_expr_value, finish_trait_expr): Handle CPTK_IS_SAME_AS.
- * tree.c (cp_tree_equal): Handle local parameters, CONSTRAINT_INFO.
- (cp_walk_subtrees): Handle REQUIRES_EXPR.
- * typeck.c (cp_build_function_call_vec): Check constraints.
-
-2015-08-06 Jason Merrill <jason@redhat.com>
-
- PR c++/66533
- * parser.c (cp_parser_primary_expression): Don't skip to the end
- of the statement if we're parsing tentatively.
-
- PR c++/67130
- PR c++/67131
- PR c++/66260
- * mangle.c (write_expression) [TEMPLATE_ID_EXPR]: Handle variable
- templates.
- * pt.c (tsubst_copy_and_build): Check for argument substitution
- failure.
-
-2015-08-05 Jason Merrill <jason@redhat.com>
-
- * pt.c (determine_specialization): Print candidates after 'no
- match' error.
-
- * decl.c (cp_finish_decl): Tidy.
- * typeck.c (finish_class_member_access_expr): Use
- type_dependent_expression_p.
- * semantics.c (finish_id_expression): Use
- type_dependent_expression_p. Don't build_qualified_name for a
- decl in non-dependent scope.
- * pt.c (type_dependent_expression_p): A TEMPLATE_ID_EXPR of an
- identifier is dependent. Remove variable_template_p check.
-
- PR c++/66260
- PR c++/66596
- PR c++/66649
- PR c++/66923
- * pt.c (lookup_template_variable): Use NULL_TREE for type.
- (instantiate_template_1): Also set DECL_TI_ARGS based on
- the immediate parent.
- (tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: Handle variable templates.
- (finish_template_variable): Add complain parm.
- * cp-tree.h: Adjust.
-
- PR c++/65195
- PR c++/66619
- * semantics.c (finish_id_expression): Call convert_from_reference
- for variable template.
-
-2015-08-04 Jason Merrill <jason@redhat.com>
-
- * pt.c (lookup_template_class_1): Clear elt.spec.
-
- * tree.c (build_target_expr): Copy the location from value.
-
-2015-08-02 Patrick Palka <ppalka@gcc.gnu.org>
-
- * parser.c (cp_parser_selection_statement): Move handling of
- semicolon body to ...
- (cp_parser_implicitly_scoped_statement): .. here. Call
- warn_for_misleading_indentation even when the body is a
- semicolon. Extract token_indent_infos corresponding to the
- guard, body and next tokens. Adjust call to
- warn_for_misleading_indentation accordingly. Take
- token_indent_info argument.
- (cp_parser_already_scoped_statement): Likewise.
- (cp_parser_selection_statement, cp_parser_iteration_statement):
- Extract a token_indent_info corresponding to the guard token.
-
-2015-08-01 Caroline Tice <cmtice@google.com>
-
- PR 66521
- * mangle.c : Add vtable-verify.h to include files.
- (get_mangled_vtable_map_var_name): If the DECL_ASSEMBLER_NAME
- is "<anon>" get the real mangled name for the class instead, and
- also store the real mangled name in a vector for use later.
-
-2015-07-31 Marek Polacek <polacek@redhat.com>
-
- PR sanitizer/66977
- * typeck.c (get_member_function_from_ptrfunc): Don't sanitize
- RSHIFT_EXPR.
-
-2015-07-30 Paolo Carlini <paolo.carlini@oracle.com>
-
- * class.c (check_for_override): Use DECL_SOURCE_LOCATION and "%qD"
- in warning_at instead of "%q+D" in warning.
- (warn_hidden): Likewise but use location_of.
- (finish_struct_anon_r): Likewise use DECL_SOURCE_LOCATION in permerror.
- (check_bitfield_decl, check_field_decls): Likewise in warning_at.
- (check_field_decls): Likewise for permerror.
- (explain_non_literal_class): Likewise for inform.
- (check_bases_and_members, layout_class_type): Likewise for warning_at.
- (note_name_declared_in_class): Use location_of in permerror.
- * name-lookup.c (diagnose_name_conflict): Use location_of in inform.
- (pushdecl_maybe_friend_1): Use DECL_SOURCE_LOCATION in pedwarn,
- inform, and warning_at.
- (check_for_out_of_scope_variable): Likewise for warning_at and
- permerror.
-
-2015-07-30 Jason Merrill <jason@redhat.com>
-
- DR 1558
- PR c++/67021
- * pt.c (tsubst_decl) [TYPE_DECL]: Clear TYPE_DEPENDENT_P_VALID.
-
-2015-07-28 Paolo Carlini <paolo.carlini@oracle.com>
-
- * call.c (build_op_delete_call, convert_like_real, build_over_call):
- Use Use DECL_SOURCE_LOCATION and "%qD" in inform and pedwarn instead
- of "%q+D".
- * constexpr.c (explain_invalid_constexpr_fn): Likewise.
- * decl.c (duplicate_decls): Likewise for warning/warning_at.
- * except.c (maybe_noexcept_warning): Likewise.
- * friend.c (make_friend_class): Likewise for inform.
- * mangle.c (mangle_decl): Likewise for warning/warning_at.
- * method.c (process_subob_fn, walk_field_subobs,
- maybe_explain_implicit_delete): Likewise for inform.
- * parser.c (cp_parser_lambda_introducer): Likewise.
- * pt.c (check_specialization_namespace,
- maybe_process_partial_specialization): Likewise for permerror.
- (redeclare_class_template): Likewise for inform_n.
- (coerce_template_parms, tsubst_copy_and_build): Likewise for inform.
- * search.c (check_final_overrider): Likewise.
- * semantics.c (process_outer_var_ref): Likewise.
-
-2015-07-27 Jason Merrill <jason@redhat.com>
-
- * constexpr.c (cxx_eval_call_expression): Don't add this call to
- the hash table if !depth_ok.
-
-2015-07-27 Marek Polacek <polacek@redhat.com>
-
- PR c++/66555
- PR c/54979
- * call.c (build_new_op_1): Call warn_tautological_cmp.
- * pt.c (tsubst_copy_and_build): Use sentinel to suppress tautological
- compare warnings.
-
-2015-07-26 Patrick Palka <ppalka@gcc.gnu.org>
-
- PR c++/18969
- * typeck.c (check_return_expr): Also do the basic return-value
- validity checking if processing_template_decl and yet types are
- not dependent. Remove obsolete code.
-
-2015-07-26 Paolo Carlini <paolo.carlini@oracle.com>
-
- * decl.c (poplevel): Use Use DECL_SOURCE_LOCATION and "%qD"
- in warning_at instead of "%q+D" in warning.
- (warn_extern_redeclared_static): Likewise for inform.
- (check_redeclaration_no_default_args): Likewise for permerror.
- (duplicate_decls): Likewise.
- (check_previous_goto_1): Likewise for inform.
- (check_goto, start_decl, check_for_uninitialized_const_var,
- start_preparsed_function, finish_function§): Likewise.
- * decl2.c (build_anon_union_vars, c_parse_final_cleanups): Likewise.
- * init.c (sort_mem_initializers): Likewise.
- * typeck.c (convert_for_initialization): Likewise for inform.
- (maybe_warn_about_returning_address_of_local): Likewise.
- * typeck2.c (abstract_virtuals_error_sfinae): Likewise for inform.
- (cxx_incomplete_type_diagnostic): Likewise for emit_diagnostic.
-
-2015-07-25 Patrick Palka <ppalka@gcc.gnu.org>
-
- PR c++/66857
- * cvt.c (ocp_convert): Don't call scalar_constant_value when
- converting to a class type.
-
-2015-07-24 Jason Merrill <jason@redhat.com>
-
- PR c++/64969
- * pt.c (splice_late_return_type): Correct deduced return type for
- abbreviated function template.
-
-2015-07-24 Richard Biener <rguenther@suse.de>
-
- * init.c (build_vec_init): Build iterator bound in the same
- type as the iterator.
-
-2015-07-23 Marek Polacek <polacek@redhat.com>
-
- PR c++/66572
- * pt.c (tsubst_copy_and_build): Add warn_logical_op sentinel.
-
-2015-07-23 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/52987
- * parser.c (cp_parser_simple_declaration): Robustify check avoiding
- redundant error messages.
-
-2015-07-21 Paolo Carlini <paolo.carlini@oracle.com>
-
- * decl.c (grokdeclarator): For an erroneous template parameter
- propagate error_mark_node as type.
-
-2015-07-20 Marek Polacek <polacek@redhat.com>
-
- PR c++/55095
- * typeck.c (cp_build_binary_op): Warn about left shift overflows.
-
-2015-07-15 Jason Merrill <jason@redhat.com>
-
- PR c++/65091
- * parser.c (cp_parser_unqualified_id): Don't accept ~x in a
- template if there is no type x in scope.
-
-2015-07-14 Patrick Palka <ppalka@gcc.gnu.org>
-
- PR c++/66850
- * pt.c (redeclare_class_template): Set the DECL_CONTEXTs of each
- template template parm in the redeclaration.
- (lookup_template_class_1): Peel off irrelevant template levels
- from current_template_parms before augmenting the argument
- list.
-
-2015-07-14 Andrea Azzarone <azzaronea@gmail.com>
-
- PR c++/65071
- * parser.c (cp_parser_sizeof_pack): Also consider template template
- parameters.
-
-2015-07-14 Jason Merrill <jason@redhat.com>
-
- * call.c (build_new_method_call_1): Call reshape_init.
-
-2015-07-14 Paolo Carlini <paolo.carlini@oracle.com>
-
- * pt.c (check_template_shadow): Emit error + inform instead of
- two errors.
-
-2015-07-13 Patrick Palka <ppalka@gcc.gnu.org>
-
- PR c++/65186
- * pt.c (invalid_nontype_parm_type_p): Accept a bound template
- template parm type under C++11 and later.
-
-2015-07-12 Aldy Hernandez <aldyh@redhat.com>
-
- * call.c: Fix double word typos.
- * cp-array-notation.c: Same.
- * cp-tree.h: Same.
- * init.c: Same.
- * name-lookup.c: Same.
- * parser.c: Same.
-
-2015-07-10 Patrick Palka <ppalka@gcc.gnu.org>
-
- PR c++/30044
- * pt.c (begin_template_parm_list): Add a dummy parameter level
- to current_template_parms.
- (end_template_parm_list): Remove the dummy parameter level
- before adding the real one.
- (tsubst): Don't attempt to substitute for template parameters
- corresponding to a dummy argument level.
- (template_parms_to_args): Remove obsolete hack for
- giving template template arguments the proper level.
- (splite_late_return_type): Remove obsolete hack for giving
- template template arguments the proper level.
- * error.c (dump_template_decl): Don't print dummy template
- levels.
-
-2015-07-10 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/54521
- * call.c (convert_like_real): Do not set LOOKUP_ONLYCONVERTING for
- the second step of copy-initialization.
-
-2015-07-10 Jason Merrill <jason@redhat.com>
-
- * pt.c (find_parameter_packs_r): Handle variable templates.
- (variable_template_specialization_p): New.
- * cp-tree.h: Declare it.
-
- * parser.c (cp_parser_template_id): SET_EXPR_LOCATION.
-
-2015-07-10 Eric Botcazou <ebotcazou@adacore.com>
-
- * decl2.c (cpp_check): Revert latest change.
-
-2015-07-09 Jason Merrill <jason@redhat.com>
-
- * pt.c (instantiation_dependent_r) [TRAIT_EXPR]: Call
- value_dependent_expression_p.
-
- * cp-tree.h (struct cp_parameter_declarator): Rename ellipsis_p to
- template_parameter_pack_p.
- * parser.c (declarator_can_be_parameter_pack): False if
- parameter_pack_p is set.
- (make_parameter_declarator): Add template_parameter_pack_p parm.
- (cp_parser_template_parameter): Remove parameter pack parsing.
- (cp_parser_parameter_declaration): Handle all parameter packs.
- Tweak default argument permerror.
-
-2015-07-09 Andrew Sutton <andrew.n.sutton@gmail.com>
-
- * parser.c (cp_parser_default_type_template_argument)
- (cp_parser_default_template_template_argument): Factor out from
- cp_parser_type_parameter.
-
-2015-07-09 Paolo Carlini <paolo.carlini@oracle.com>
-
- * typeck.c (warn_args_num): Rename to error_args_num.
- (convert_arguments): Adjust calls.
-
-2015-07-09 Andrew MacLeod <amacleod@redhat.com>
-
- * cp-ubsan.c: Don't include alloc-pool.h or lto-streamer.h.
-
-2015-07-08 Eric Botcazou <ebotcazou@adacore.com>
-
- * decl2.c (cpp_check): Deal with IS_CONSTEXPR.
-
-2015-07-08 Jakub Jelinek <jakub@redhat.com>
-
- * decl.c (grokfndecl): Handle flag_openmp_simd like flag_openmp.
- * pt.c (apply_late_template_attributes): Likewise.
-
-2015-07-08 Marek Polacek <polacek@redhat.com>
-
- PR c++/66748
- * tree.c (handle_abi_tag_attribute): Check for CLASS_TYPE_P before
- accessing TYPE_LANG_SPECIFIC node.
-
-2015-07-07 Andrew MacLeod <amacleod@redhat.com>
-
- * call.c: Adjust includes.
- * class.c: Likewise.
- * constexpr.c: Likewise.
- * cp-array-notation.c: Likewise.
- * cp-gimplify.c: Likewise.
- * cp-lang.c: Likewise.
- * cp-objcp-common.c: Likewise.
- * cp-ubsan.c: Likewise.
- * cvt.c: Likewise.
- * decl.c: Likewise.
- * decl2.c: Likewise.
- * dump.c: Likewise.
- * error.c: Likewise.
- * except.c: Likewise.
- * expr.c: Likewise.
- * friend.c: Likewise.
- * init.c: Likewise.
- * lambda.c: Likewise.
- * lex.c: Likewise.
- * mangle.c: Likewise.
- * method.c: Likewise.
- * name-lookup.c: Likewise.
- * optimize.c: Likewise.
- * parser.c: Likewise.
- * pt.c: Likewise.
- * ptree.c: Likewise.
- * repo.c: Likewise.
- * rtti.c: Likewise.
- * search.c: Likewise.
- * semantics.c: Likewise.
- * tree.c: Likewise.
- * typeck.c: Likewise.
- * typeck2.c: Likewise.
-
-2015-07-07 Eric Botcazou <ebotcazou@adacore.com>
-
- * decl2.c (cpp_check): Deal with IS_MOVE_CONSTRUCTOR.
-
-2015-07-06 Jason Merrill <jason@redhat.com>
-
- * pt.c (reduce_template_parm_level): Also build the TYPE_DECL
- for a template template parameter.
- (tsubst_decl) [TEMPLATE_DECL]: Use the TEMPLATE_DECL built
- by reduce_template_parm_level.
-
- * pt.c (argument_pack_element_is_expansion_p): A decl pack is an
- expansion.
-
-2015-07-02 Jason Merrill <jason@redhat.com>
-
- PR c++/66743
- * pt.c (for_each_template_parm_r) [UNDERLYING_TYPE]: Use
- TYPE_VALUES_RAW rather than TYPE_FIELDS.
-
-2015-07-02 Andrew Sutton <andrew.n.sutton@gmail.com>
-
- * pt.c (type_dependent_expression_p): Handle expressions
- that refer to variable templates.
-
-2015-07-01 Jason Merrill <jason@redhat.com>
-
- * lex.c (init_reswords): s/CXX0X/CXX11/.
- * parser.c (cp_lexer_get_preprocessor_token): Likewise.
-
- * mangle.c (write_CV_qualifiers_for_type, write_nested_name):
- Attribute mangling is now -fabi-version=10.
-
- PR c++/65945
- * decl.c (cxx_init_decl_processing): Set TYPE_ALIGN of nullptr_t.
- * class.c (layout_nonempty_base_or_field): Warn if that affects
- the offset of a field.
-
-2015-07-01 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/60365
- * parser.c (cp_parser_check_std_attribute): New.
- (cp_parser_std_attribute_list): Call it.
-
-2015-07-01 Patrick Palka <ppalka@gcc.gnu.org>
-
- PR c++/66686
- * pt.c (coerce_template_template_parm) [PARM_DECL]: Don't
- return 0 if tsubst returns a dependent type.
-
-2015-06-30 Jason Merrill <jason@redhat.com>
-
- PR debug/66653
- * decl2.c (is_late_template_attribute): True for tls_model.
-
- PR debug/66653
- * cp-tree.h (CP_DECL_THREAD_LOCAL_P): New.
- (DECL_GNU_TLS_P): Use DECL_LANG_SPECIFIC field.
- (SET_DECL_GNU_TLS_P): New.
- * call.c (make_temporary_var_for_ref_to_temp): Use
- CP_DECL_THREAD_LOCAL_P.
- (set_up_extended_ref_temp): Likewise.
- * decl.c (duplicate_decls, expand_static_init): Likewise.
- (redeclaration_error_message, grokvardecl): Likewise.
- (start_decl, register_dtor_fn, grokdeclarator): Likewise.
- * decl2.c (get_guard, var_needs_tls_wrapper): Likewise.
- (handle_tls_init): Likewise.
- * pt.c (tsubst_decl, tsubst_copy_and_build): Likewise.
- * semantics.c (finish_id_expression): Likewise.
- (handle_omp_array_sections_1, finish_omp_clauses): Likewise.
- (finish_omp_threadprivate): Likewise.
- * tree.c (decl_storage_duration): Likewise.
- * cp-gimplify.c (omp_var_to_track): Likewise.
- (cp_genericize_r): Check that it matches DECL_THREAD_LOCAL_P.
- * lex.c (retrofit_lang_decl): Return if DECL_LANG_SPECIFIC is
- already set.
-
-2015-06-30 Edward Smith-Rowland <3dw4rd@verizon.net>
-
- Implement N4197 - Adding u8 character literals
- * parser.c (cp_parser_primary_expression()): Treat CPP_UTF8CHAR
- and CPP_UTF8CHAR_USERDEF tokens;
- (cp_parser_parenthesized_expression_list()): Treat CPP_UTF8CHAR token.
-
-2015-06-29 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/65977
- * decl.c (grokfndecl): Allow constexpr declarations of friend
- template specializations.
-
-2015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
-
- PR fortran/66605
- * decl.c (finish_function): Call do_warn_unused_parameter.
-
-2015-06-29 Marek Polacek <polacek@redhat.com>
-
- PR c/66322
- * decl.c (struct cp_switch): Add OUTSIDE_RANGE_P.
- (push_switch): Set OUTSIDE_RANGE_P.
- (pop_switch): Update c_do_switch_warnings call.
- (finish_case_label): Update c_add_case_label call.
- * semantics.c (finish_switch_cond): Don't warn about -Wswitch-bool
- here.
-
-2015-06-27 Marek Polacek <polacek@redhat.com>
-
- * call.c: Use VECTOR_TYPE_P.
- * constexpr.c: Likewise.
- * cvt.c: Likewise.
- * decl.c: Likewise.
- * decl2.c: Likewise.
- * init.c: Likewise.
- * semantics.c: Likewise.
- * tree.c: Likewise.
- * typeck.c: Likewise.
- * typeck2.c: Likewise.
-
-2015-06-27 Marek Polacek <polacek@redhat.com>
-
- * call.c (set_up_extended_ref_temp): Use VAR_P.
- * class.c: Use VAR_P throughout.
- * constexpr.c (cxx_eval_constant_expression): Use VAR_P.
- * cp-array-notation.c (make_triplet_val_inv): Likewise.
- * decl.c: Use VAR_OR_FUNCTION_DECL_P or VAR_P
- throughout.
- * decl2.c: Likewise.
- * error.c (dump_decl): Use VAR_P.
- * mangle.c (decl_implicit_alias_p): Likewise.
- * parser.c: Use VAR_P throughout.
- * pt.c: Likewise.
- * semantics.c: Likewise.
- * vtable-class-hierarchy.c: Likewise.
- * tree.c (handle_abi_tag_attribute): Use VAR_OR_FUNCTION_DECL_P.
-
-2015-06-27 Andreas Schwab <schwab@linux-m68k.org>
-
- * pt.c (check_unstripped_args): Mark parameter as unused.
-
-2015-06-26 Jason Merrill <jason@redhat.com>
-
- PR c++/66216
- * class.c (finish_struct): Call fixup_attribute_variants.
-
- PR c++/66684
- * typeck2.c (merge_exception_specifiers): Allow different
- noexcept-specifiers if we've had errors.
-
- PR c++/66255
- * pt.c (check_unstripped_args): Split out from...
- (retrieve_specialization): ...here. Allow typedefs in the type of
- a non-type argument.
-
- PR c++/66067
- * mangle.c (write_nested_name): Limit TYPENAME_TYPE handling to
- TYPE_DECLs.
- * mangle.c (write_template_args): Handle 0 length TREE_VEC.
-
- PR c++/66654
- * typeck2.c (digest_init_r): Only expect reshaping if the class is
- aggregate.
-
-2015-06-26 Marek Polacek <polacek@redhat.com>
-
- * cp-array-notation.c (expand_sec_reduce_builtin): Use INDIRECT_REF_P.
- * cp-ubsan.c (cp_ubsan_check_member_access_r): Likewise.
-
-2015-06-25 Andrew MacLeod <amacleod@redhat.com>
-
- * call.c: Remove ipa-ref.h and plugin-api.h from include list.
- * class.c: Likewise.
- * cp-ubsan.c: Likewise.
- * decl.c: Likewise.
- * decl2.c: Likewise.
- * lambda.c: Likewise.
- * mangle.c: Likewise.
- * method.c: Likewise.
- * optimize.c: Likewise.
- * parser.c: Likewise.
- * semantics.c: Likewise.
- * tree.c: Likewise.
- * vtable-class-hierarchy.c: Likewise.
-
-2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
-
- * constexpr.c (constexpr_fundef_hasher): Inherit from ggc_ptr_hash
- rather than ggc_hasher.
- (constexpr_call_hasher): Likewise.
- * cp-tree.h (cxx_int_tree_map_hasher, named_label_hasher): Likewise.
- * decl.c (typename_hasher): Likewise.
- * mangle.c (conv_type_hasher): Likewise.
- * pt.c (spec_hasher): Likewise.
- * tree.c (cplus_array_hasher, list_hasher): Likewise.
- * typeck2.c (abstract_type_hasher): Likewise.
-
-2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
-
- * class.c (fixed_type_or_null_ref_ht): Inherit from nofree_ptr_hash
- rather than pointer_hash.
- (fixed_type_or_null): Use nofree_ptr_hash instead of pointer_hash.
- * semantics.c (nrv_data): Likewise.
- * tree.c (verify_stmt_tree_r, verify_stmt_tree): Likewise.
-
-2015-06-24 Jason Merrill <jason@redhat.com>
-
- PR c++/66647
- * pt.c (dependent_type_p_r): Check for dependent alias template
- specialization sooner.
-
- PR c++/66501
- * class.c (type_has_nontrivial_assignment): Remove.
- * cp-tree.h: Remove declaration.
- * init.c (vec_copy_assign_is_trivial): New.
- (build_vec_init): Use it.
-
-2015-06-24 Edward Smith-Rowland <3dw4rd@verizon.net>
-
- Implement N3928 - Extending static_assert
- * parser.c (cp_parser_static_assert): Support static_assert with
- no message string. Supply an empty string in this case.
- * semantics.c (finish_static_assert): Don't try to print a message if
- the message strnig is empty.
-
-2015-06-24 Adam Butcher <adam@jessamine.co.uk>
-
- PR c++/65750
- * parser.c (cp_parser_simple_type_specifier): Don't synthesize
- implicit template parm if 'auto' is a placeholder for trailing
- return type.
-
-2015-06-24 Patrick Palka <ppalka@gcc.gnu.org>
-
- Revert:
- 2015-06-23 Patrick Palka <ppalka@gcc.gnu.org>
-
- PR c++/30044
- * parser.c (cp_parser_template_parameter_list): Update
- current_template_parms right after processing a paramater.
- * pt.c (template_parms_to_args): Remove obsolete hack for
- giving template template arguments the proper level.
- (check_default_tmpl_args): Account for tested template
- parameter_lists.
- (splite_late_return_type): Remove obsolete hack for giving
- template template arguments the proper level.
-
-2015-06-24 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/65811
- * decl.c (duplicate_decls): Adjust DECL_COMDAT of newdecl.
-
-2015-06-23 Patrick Palka <ppalka@gcc.gnu.org>
-
- PR c++/30044
- * parser.c (cp_parser_template_parameter_list): Update
- current_template_parms right after processing a paramater.
- * pt.c (template_parms_to_args): Remove obsolete hack for
- giving template template arguments the proper level.
- (check_default_tmpl_args): Account for tested template
- parameter_lists.
- (splite_late_return_type): Remove obsolete hack for giving
- template template arguments the proper level.
-
-2015-06-23 Jason Merrill <jason@redhat.com>
-
- PR c++/65879
- * decl.c (grokfndecl): Check the linkage of ctype, not just
- TYPE_ANONYMOUS_P.
- * tree.c (no_linkage_check): Skip the 'this' pointer.
-
- PR c++/66501
- * class.c (type_has_nontrivial_assignment): New.
- * init.c (build_vec_init): Use it.
- * cp-tree.h: Declare it.
- * method.c (trivial_fn_p): Templates aren't trivial.
-
- PR c++/66542
- * decl.c (expand_static_init): Make sure the destructor is callable
- here even if we have an initializer.
-
-2015-06-04 Pierre-Marie de Rodat <derodat@adacore.com>
-
- * lang-specs.h: Pass "-o %g.s" to cc1plus for headers even if
- -fdump-ada-spec is passed.
-
-2015-06-22 Pierre-Marie de Rodat <derodat@adacore.com>
-
- * decl2.c (cpp_check): Deal with HAS_DEPENDENT_TEMPLATE_ARGS.
-
-2015-06-22 Paolo Carlini <paolo.carlini@oracle.com>
-
- * decl.c (grokdeclarator): Use declspecs->locations[ds_virtual].
-
-2015-06-22 Paolo Carlini <paolo.carlini@oracle.com>
-
- * decl.c (grokdeclarator): Remove pointless code.
-
-2015-06-22 Jason Merrill <jason@redhat.com>
-
- PR c++/66515
- * call.c (implicit_conversion): Only reshape for classes.
-
-2015-06-22 Mikhail Maltsev <maltsevm@gmail.com>
-
- * pt.c (maybe_adjust_types_for_deduction): Use std::swap instead of
- manually swapping.
- * semantics.c (finish_omp_atomic): Likewise.
- * typeck.c (cp_build_array_ref): Likewise.
-
-2015-06-20 Mikhail Maltsev <maltsevm@gmail.com>
-
- PR c++/65882
- * call.c (build_new_op_1): Check tf_warning flag in all cases.
-
-2015-06-19 Jason Merrill <jason@redhat.com>
-
- PR c++/66585
- * pt.c (instantiate_class_template_1): Clear
- cp_unevaluated_operand and c_inhibit_evaluation_warnings.
-
- PR c++/65880
- * decl.c (build_ptrmemfunc_type): Check TYPE_GET_PTRMEMFUNC_TYPE after
- cv-qualifiers.
- * typeck.c (merge_types): build_ptrmemfunc_type before applying
- quals and attributes.
-
- PR c++/65973
- * constexpr.c (build_constexpr_constructor_member_initializers):
- Handle an empty STATEMENT_LIST.
-
- PR c++/65843
- * pt.c (tsubst_copy_and_build): Register a capture proxy in
- local_specializations.
-
-2015-06-17 Jason Merrill <jason@redhat.com>
-
- PR c++/66001
- * constexpr.c (cxx_eval_constant_expression): Handle TRY_BLOCK and
- TRY_FINALLY_EXPR.
- (potential_constant_expression_1): Likewise.
-
-2015-06-17 Jason Merrill <jason@redhat.com>
-
- PR c++/66515
- * call.c (implicit_conversion): Call reshape_init here, early.
- (build_aggr_conv): Not here.
-
-2015-06-17 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/66571
- * pt.c (tsubst_omp_clause_decl): New function.
- (tsubst_omp_clauses): Use it or tsubst_copy instead of
- tsubst_expr on OMP_CLAUSE_DECL.
-
-2015-06-17 Andrew MacLeod <amacleod@redhat.com>
-
- * cp-lang.c (cxx_dwarf_name): Use anon_aggrname_p.
- * cp-tree.h (TYPE_ANONYMOUS_P): Likewise.
- * decl.c (grokdeclarator, xref_tag_1): Likewise.
- * error.c (dump_aggr_type): likewise.
- * pt.c (push_template_decl_real): Likewise.
- * name-lookup.c (make_anon_name): Use anon_aggrname_format.
-
-2015-06-17 Andrew MacLeod <amacleod@redhat.com>
-
- * call.c: Do not include input.h, line-map.h or is-a.h.
- * class.c: Likewise.
- * constexpr.c: Likewise.
- * cp-array-notation.c: Likewise.
- * cp-gimplify.c: Likewise.
- * cp-lang.c: Likewise.
- * cp-objcp-common.c: Likewise.
- * cp-tree.h: Likewise.
- * cp-ubsan.c: Likewise.
- * cvt.c: Likewise.
- * decl.c: Likewise.
- * decl2.c: Likewise.
- * dump.c: Likewise.
- * error.c: Likewise.
- * except.c: Likewise.
- * expr.c: Likewise.
- * friend.c: Likewise.
- * init.c: Likewise.
- * lambda.c: Likewise.
- * lex.c: Likewise.
- * mangle.c: Likewise.
- * method.c: Likewise.
- * name-lookup.c: Likewise.
- * optimize.c: Likewise.
- * parser.c: Likewise.
- * pt.c: Likewise.
- * ptree.c: Likewise.
- * repo.c: Likewise.
- * rtti.c: Likewise.
- * search.c: Likewise.
- * semantics.c: Likewise.
- * tree.c: Likewise.
- * typeck.c: Likewise.
- * typeck2.c: Likewise.
- * vtable-class-hierarchy.c: Likewise.
-
-2015-06-16 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/59682
- * parser.c (cp_parser_new_placement): Reject an empty expression-list.
-
-2015-06-16 Jason Merrill <jason@redhat.com>
-
- PR c++/66536
- * tree.c (replace_placeholders_r) [CONSTRUCTOR]: Handle type
- mismatch.
-
- PR c++/58063
- * tree.c (bot_manip): Remap SAVE_EXPR.
-
- PR c++/66387
- * pt.c (tsubst_copy) [VAR_DECL]: Use process_outer_var_ref.
-
-2015-06-15 Nathan Sidwell <nathan@acm.org>
-
- PR c++/58583
- * cp-tree.h (DECL_INSTANTIATING_NSDMI_P): New.
- * init.c (get_nsdmi): Check for DEFAULT_ARG in template case and
- protect it from recursive instantiation.
-
-2015-06-15 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/51048
- * decl2.c (no_linkage_error): Do not issue a permerror if the DECL
- using a local type is pure virtual.
-
-2015-06-13 Patrick Palka <ppalka@gcc.gnu.org>
-
- * call.c: Remove comment documenting the long-deleted
- function build_method_call.
-
-2015-06-13 Patrick Palka <ppalka@gcc.gnu.org>
-
- PR c++/65168
- * typeck.c (cp_build_binary_op): Warn when comparing an address
- of a reference against NULL.
-
-2015-06-12 Jason Merrill <jason@redhat.com>
-
- PR c++/65719
- * pt.c (tsubst_decl) [VAR_DECL]: Mark namespace-scope
- variables as DECL_NOT_REALLY_EXTERN.
-
-2015-06-11 Jason Merrill <jason@redhat.com>
-
- PR c++/66445
- * constexpr.c (potential_constant_expression_1): Handle a
- DECL_EXPR of TYPE_DECL.
-
- PR c++/66450
- * constexpr.c (cxx_eval_store_expression): Avoid messing up outer
- ctx->ctor.
-
-2015-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
-
- * decl.c (cxx_init_decl_processing): Register the main
- translation unit through the new debug hook.
-
-2015-06-10 Jason Merrill <jason@redhat.com>
-
- PR c++/66289
- * cp-tree.h (TEMPLATE_DECL_COMPLEX_ALIAS_P): New.
- * pt.c (push_template_decl_real): Set it.
- (dependent_alias_template_spec_p): Use it.
- (dependent_type_p_r): Use dependent_alias_template_spec_p.
- (uses_all_template_parms_data, uses_all_template_parms_r)
- (complex_alias_template_p): New.
- (get_template_parm_index): Handle BOUND_TEMPLATE_TEMPLATE_PARM.
-
-2015-06-09 Jason Merrill <jason@redhat.com>
-
- DR 1467
- PR c++/51747
- * typeck2.c (digest_init_r): Replace previous change with
- gcc_unreachable.
-
- PR c++/66387
- * semantics.c (process_outer_var_ref): Make sure the value is
- actually constant before returning it.
- * typeck.c (cp_build_array_ref): Allow subscripting non-lvalue
- array.
-
-2015-06-09 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/65815
- * typeck2.c (digest_nsdmi_init): On aggregates use reshape_init.
- * init.c (expand_default_init): Likewise.
-
-2015-06-09 Jason Merrill <jason@redhat.com>
-
- PR c++/66383
- * tree.c (replace_placeholders_r): Handle placeholders for an
- outer object.
- * typeck2.c (store_init_value): Only replace_placeholders for
- objects of class type.
-
-2015-06-08 Andrew MacLeod <amacleod@redhat.com>
-
- * call.c : Adjust include files.
- * class.c : Likewise.
- * constexpr.c : Likewise.
- * cp-array-notation.c : Likewise.
- * cp-cilkplus.c : Likewise.
- * cp-gimplify.c : Likewise.
- * cp-lang.c : Likewise.
- * cp-objcp-common.c : Likewise.
- * cp-tree.h : Likewise.
- * cp-ubsan.c : Likewise.
- * cvt.c : Likewise.
- * decl.c : Likewise.
- * decl2.c : Likewise.
- * dump.c : Likewise.
- * error.c : Likewise.
- * except.c : Likewise.
- * expr.c : Likewise.
- * friend.c : Likewise.
- * init.c : Likewise.
- * lambda.c : Likewise.
- * lex.c : Likewise.
- * mangle.c : Likewise.
- * method.c : Likewise.
- * name-lookup.c : Likewise.
- * optimize.c : Likewise.
- * parser.c : Likewise.
- * pt.c : Likewise.
- * ptree.c : Likewise.
- * repo.c : Likewise.
- * rtti.c : Likewise.
- * search.c : Likewise.
- * semantics.c : Likewise.
- * tree.c : Likewise.
- * typeck.c : Likewise.
- * typeck2.c : Likewise.
- * vtable-class-hierarchy.c : Likewise.
-
-2015-06-05 Jason Merrill <jason@redhat.com>
-
- PR c++/66405
- * pt.c (argument_pack_element_is_expansion_p): Return 2 if
- the expansion has extra args.
- (use_pack_expansion_extra_args_p): Return true in that case.
-
- PR c++/66405
- * pt.c (type_dependent_expression_p): EXPR_PACK_EXPANSION is
- dependent even if it has a type.
-
-2015-06-05 Aldy Hernandez <aldyh@redhat.com>
-
- * cp-objcp-common.c: Adjust comment for
- cxx_warn_unused_global_decl.
- * cp-objcp-common.h (LANG_HOOKS_WRITE_GLOBALS): Remove
- (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
- * cp-tree.h (note_mangling_alias): Protoize.
- (cp_write_global_declarations): Remove.
- (cxx_post_compilation_parsing_cleanups): Protoize.
- * decl.c (wrapup_globals_for_namespace): Remove use of DATA
- argument.
- * decl2.c (mangling_aliases): New global.
- (build_java_method_aliases): New. Adapted from
- collect_candidates_for_java_method_aliases.
- (collect_candidates_for_java_method_aliases): Remove.
- (build_java_method_aliases): Remove.
- (generate_mangling_aliases): New.
- (note_mangling_alias): New. Moved from mangle_decl.
- (locus_at_end_of_parsing): New global.
- (c_parse_final_cleanups): Rename from
- cp_write_global_declarations.
- Use locus_at_end_of_parsing.
- Call generate_mangling_aliases.
- Rename call to collect_candidates_for_java_method_aliases into
- build_java_method_aliases.
- Remove call to finalize_compilation_unit.
- Move vtable handling into cxx_post_compilation_parsing_cleanups.
- Do not call check_global_declarations or
- emit_debug_global_declarations.
- (cxx_post_compilation_parsing_cleanups): New.
- * mangle.c (mangle_decl): Move code to note_mangling_alias.
- * name-lookup.c (do_namespace_alias): Call early_global_decl.
-
-2015-06-05 Nathan Sidwell <nathan@acm.org>
-
- PR c++/52595
- * parser.c (cp_parser_cache_defarg): Continue looking for
- declarators when scanning a potential template argument list of an
- NSDMI.
-
-2015-06-04 Andrew MacLeod <amacleod@redhat.com>
-
- * call.c: Adjust includes for restructured coretypes.h.
- * class.c: Likewise.
- * constexpr.c: Likewise.
- * cp-array-notation.c: Likewise.
- * cp-gimplify.c: Likewise.
- * cp-lang.c: Likewise.
- * cp-objcp-common.c: Likewise.
- * cp-tree.h: Likewise.
- * cp-ubsan.c: Likewise.
- * cvt.c: Likewise.
- * decl.c: Likewise.
- * decl2.c: Likewise.
- * dump.c: Likewise.
- * error.c: Likewise.
- * except.c: Likewise.
- * expr.c: Likewise.
- * friend.c: Likewise.
- * init.c: Likewise.
- * lambda.c: Likewise.
- * lex.c: Likewise.
- * mangle.c: Likewise.
- * method.c: Likewise.
- * name-lookup.c: Likewise.
- * optimize.c: Likewise.
- * parser.c: Likewise.
- * pt.c: Likewise.
- * ptree.c: Likewise.
- * repo.c: Likewise.
- * rtti.c: Likewise.
- * search.c: Likewise.
- * semantics.c: Likewise.
- * tree.c: Likewise.
- * typeck.c: Likewise.
- * typeck2.c: Likewise.
- * vtable-class-hierarchy.c: Likewise.
-
-2015-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
-
- PR c++/66192
- PR target/66200
- * cp-tree.h (get_guard_cond): Adjust declaration
- * decl.c (expand_static_init): Use atomic load acquire
- and adjust call to get_guard_cond.
- * decl2.c (build_atomic_load_byte): New function.
- (get_guard_cond): Handle thread_safety.
- (one_static_initialization_or_destruction): Adjust call to
- get_guard_cond.
-
-2015-06-03 Jason Merrill <jason@redhat.com>
-
- PR c++/44282
- * mangle.c (mangle_decl): Always SET_IDENTIFIER_GLOBAL_VALUE.
- (write_CV_qualifiers_for_type): Set G.need_abi_warning.
- (decl_implicit_alias_p): Split out from maybe_remove_implicit_alias.
- * cp-tree.h (DECL_REALLY_EXTERN): Handle null DECL_LANG_SPECIFIC.
-
-2015-06-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
- Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/66130
- * typeck.c (invalid_nonstatic_memfn_p): Add location_t parameter and
- use it in the diagnostic.
- (decay_conversion): Adjust call.
- * semantics.c (finish_decltype_type): Likewise.
- * call.c (resolve_args, build_new_op_1,
- perform_implicit_conversion_flags): Adjust calls.
- * cvt.c (ocp_convert, convert_to_void): Likewise.
- * cp-tree.h (invalid_nonstatic_memfn_p): Update declaration.
-
-2015-06-03 Paolo Carlini <paolo.carlini@oracle.com>
-
- * decl.c (check_tag_decl): Use declspecs->locations as locations in
- error_at and warning_at calls.
-
-2015-06-03 Marek Polacek <polacek@redhat.com>
-
- PR sanitizer/66190
- * cp-gimplify.c (struct cp_genericize_data): Add no_sanitize_p.
- (cp_genericize_r): Don't instrument static initializers.
- (cp_genericize_tree): Initialize wtd.no_sanitize_p.
-
-2015-06-02 Andres Tiraboschi <andres.tiraboschi@tallertechnologies.com>
-
- * decl.c (start_function): Call plugin before parsing.
- (finish_function): Call plugin after parsing.
-
-2015-06-02 Patrick Palka <patrick@parcs.ath.cx>
-
- * cp-tree.h (init_error): Remove declaration.
- * error.c (scratch_pretty_printer): Rename to ...
- (actual_pretty_printer): ... this.
- (cxx_pp): Constify and update accordingly.
- (init_error): Remove definition.
- * lex.c (cxx_init): Do not call init_error.
-
-2015-06-02 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/61683
- * parser.c (cp_parser_mem_initializer): Allow for decltype-specifier.
-
-2015-06-01 Jason Merrill <jason@redhat.com>
-
- PR c++/65942
- * decl2.c (mark_used): Don't always instantiate constexpr fns.
- * constexpr.c (cxx_eval_call_expression): Instantiate them here.
-
- PR c++/44282
- * mangle.c (attr_strcmp): New.
- (write_CV_qualifiers_for_type): Also write out attributes that
- affect type identity.
- (write_type): Strip all attributes after writing qualifiers.
-
-2015-05-31 Jason Merrill <jason@redhat.com>
-
- * constexpr.c (cxx_eval_indirect_ref): Try folding first.
-
- PR c++/66320
- * constexpr.c (cxx_eval_constant_expression): Treat a placeholder
- with the wrong type as non-constant.
-
-2015-05-27 Jason Merrill <jason@redhat.com>
-
- * decl.c (check_redeclaration_exception_specification): Depend on
- -Wsystem-headers rather than -pedantic.
-
- * decl.c (warn_extern_redeclared_static): Use the location of
- newdecl in diagnostics, not input_location.
- (validate_constexpr_redeclaration): Likewise.
- (check_redeclaration_no_default_args): Likewise.
- (duplicate_decls): Likewise.
- (check_redeclaration_exception_specification): Likewise.
- Change second diagnostic to inform.
-
-2015-05-24 Nathan Sidwell <nathan@acm.org>
-
- PR c++/66243
- * decl.c (build_enumerator): Don't silently convert scoped enums.
-
-2015-05-24 Jan Hubicka <hubicka@ucw.cz>
-
- PR lto/66180
- * mangle.c (mangle_decl): Mangle anonymous namespace types as
- "<anon>".
-
-2015-05-23 Nathan Sidwell <nathan@acm.org>
-
- PR c++/65936
- * pt.c (lookup_template_class_1): Copy may_alias attribute too.
-
-2015-05-22 Jim Wilson <jim.wilson@linaro.org>
-
- * Make-lang.in (check_g++_parallelize): Update comment.
-
-2015-05-22 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/65598
- * decl.c (grokdeclarator): Use the correct location in error
- messages about 'explicit'.
-
-2015-05-22 Marek Polacek <polacek@redhat.com>
- Edward Smith-Rowland <3dw4rd@verizon.net>
-
- PR c/47043
- * cp-tree.h (build_enumerator): Update declaration.
- * decl.c (build_enumerator): Add attributes parameter. Call
- cplus_decl_attributes.
- * init.c (constant_value_1): Pass tf_none to mark_used.
- * parser.c (cp_parser_enumerator_definition): Parse attributes and
- pass them down to build_enumerator.
- * pt.c (tsubst_enum): Pass decl attributes to build_enumerator.
- * semantics.c (finish_id_expression): Don't warn_deprecated_use here.
-
-2015-05-21 Nathan Sidwell <nathan@acm.org>
-
- PR c++/60943
- * decl2.c (change_return_type): Propagate FUNCTION_REF_QUALIFIED.
-
-2015-05-21 Marek Polacek <polacek@redhat.com>
-
- * typeck.c (warn_args_num): Don't print "declare here" for builtins.
-
-2015-05-20 Jason Merrill <jason@redhat.com>
-
- * pt.c (tsubst_decl) [VAR_DECL]: SET_DECL_IMPLICIT_INSTANTIATION
- before register_specialization.
-
- * decl.c (grok_op_properties): Don't complain about size_t
- placement delete here.
- * call.c (second_parm_is_size_t): Split out from...
- (non_placement_deallocation_fn_p): ...here.
- (build_op_delete_call): Warn about size_t placement delete with
- -Wc++14-compat.
-
-2015-05-19 Nathan Sidwell <nathan@acm.org>
-
- PR c++/65954
- * typeck.c (finish_class_member_access_expr): Diagnose failed
- lookup of enum class member.
-
-2015-05-19 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/66199
- * parser.c (cp_parser_omp_for_loop): Don't add
- OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
- OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
- (cp_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
- constructs.
-
-2015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
-
- * typeck.c (composite_pointer_type): Use std::swap instead of explicit
- swaps.
-
-2015-05-18 Jason Merrill <jason@redhat.com>
-
- * pt.c (retrieve_specialization): Make sure our arguments have
- gone through strip_typedefs.
-
- * pt.c (tsubst_decl) [VAR_DECL]: Call coerce_innermost_template_parms.
- (determine_specialization): Call coerce_template_parms.
-
- DR 1391
- * pt.c (type_unification_real): Check convertibility here.
- (unify_one_argument): Not here.
-
- * tree.c (strip_typedefs_expr) [TRAIT_EXPR]: Fix typo.
- (strip_typedefs) [DECLTYPE_TYPE]: Fix typedef of decltype.
- [TREE_LIST]: Fix no-change case.
-
- * ptree.c (cxx_print_xnode): Handle TRAIT_EXPR.
-
-2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
-
- PR fortran/44054
- * error.c (cp_diagnostic_starter): Use diagnostic_location
- function.
- (cp_print_error_function): Likewise.
- (cp_printer): Replace locus pointer with accessor function.
-
-2015-05-12 David Malcolm <dmalcolm@redhat.com>
-
- * parser.c (cp_parser_selection_statement): Add location and
- guard_kind arguments to calls to
- cp_parser_implicitly_scoped_statement.
- (cp_parser_iteration_statement): Likewise for calls to
- cp_parser_already_scoped_statement.
- (cp_parser_implicitly_scoped_statement): Add "guard_loc" and
- "guard_kind" params; use them to warn for misleading
- indentation.
- (cp_parser_already_scoped_statement): Likewise.
-
-2015-05-11 Jan Hubicka <hubicka@ucw.cz>
-
- * class.c (fixup_type_variants): Do not copy TYPE_METHODS
- (one_inheriting_sig): Assert tat we always set TYPE_METHODS of main variant.
- * semantics.c (finish_member_declaration): Likewise.
- * method.c (lazily_declare_fn): Allways add method to main variant list.
-
-2015-05-09 Aldy Hernandez <aldyh@redhat.com>
-
- PR bootstrap/66085
- * decl2.c (note_mangling_alias): Declare arguments as unused.
-
-2015-05-08 Jason Merrill <jason@redhat.com>
-
- * cp-gimplify.c, parser.c: Adjust to -Wc++11-compat replacing
- -Wc++0x-compat.
-
-2015-05-08 Jason Merrill <jason@redhat.com>
-
- * decl2.c (mangling_aliases): New variable.
- (note_mangling_alias, generate_mangling_aliases): New.
- (cp_write_global_declarations): Call generate_mangling_aliases.
- (generate_mangling_alias): Split out from...
- * mangle.c (mangle_decl): ...here.
- * cp-tree.h: Declare note_mangling_alias.
-
-2015-05-08 Aldy Hernandez <aldyh@redhat.com>
-
- * decl2.c (collect_candidates_for_java_method_aliases): Remove.
- (build_java_method_aliases): Adapt to use create_same_body_alias
- instead of assemble_alias. Move variable declarations to
- definition and tidy up.
- (cp_write_global_declarations): Call build_java_method_aliases
- instead of collecting candidates first.
-
-2015-05-07 Jason Merrill <jason@redhat.com>
-
- PR c++/59012
- * parser.c (cp_parser_std_attribute_list): Handle attribute expansion.
- (cp_parser_std_attribute_spec): Handle alignas pack expansion.
- * decl2.c (is_late_template_attribute): An attribute exp is dependent.
- * pt.c (make_pack_expansion): Allow TREE_LIST for attribute expansion.
- (apply_late_template_attributes): Handle attribute pack expansion.
-
-2015-05-07 Marek Polacek <polacek@redhat.com>
-
- PR c/65179
- * typeck.c (cp_build_binary_op): Warn when left shifting a negative
- value.
-
-2015-05-07 Jason Merrill <jason@redhat.com>
-
- DR 1467
- PR c++/51747
- * typeck2.c (digest_init_r): Fix single element list.
-
-2015-05-05 Jason Merrill <jason@redhat.com>
-
- * cp-gimplify.c (cp_genericize_r): Track TRY_BLOCK and
- MUST_NOT_THROW_EXPR, warn about a THROW_EXPR directly within a
- MUST_NOT_THROW_EXPR.
- (cp_genericize_data): Add try_block field.
- (cp_genericize_tree): Initialize it.
- * except.c (expand_end_catch_block): Set TREE_NO_WARNING on
- implicit rethrow.
-
- * constexpr.c (potential_constant_expression_1) [AT_ENCODE_EXPR]:
- Return false.
-
- * semantics.c (finish_call_expr): Check complain.
-
- * decl2.c (reset_type_linkage_2): Update the DECL_NAME of a
- maybe-in-charge constructor.
-
- * decl.c (start_decl): Don't push the plain VAR_DECL for a
- variable template.
-
- DR 1518
- DR 1630
- PR c++/54835
- PR c++/60417
- * call.c (convert_like_real): Check value-initialization before
- explicit.
- * typeck2.c (process_init_constructor_record): Don't set
- CONSTRUCTOR_IS_DIRECT_INIT.
- (process_init_constructor_array): Likewise.
- * init.c (build_vec_init): Likewise.
-
-2015-05-05 David Malcolm <dmalcolm@redhat.com>
-
- * parser.c (cp_parser_asm_definition): Only test for
- error_mark_node if "outputs" was just set. Likewise for "inputs".
-
-2015-05-04 Paolo Carlini <paolo.carlini@oracle.com>
- Jakub Jelinek <jakub@redhat.com>
-
- PR c++/66007
- * typeck2.c (check_narrowing): Check by-hand that the pedwarn didn't
- result in an actual error.
-
-2015-05-01 Paolo Carlini <paolo.carlini@oracle.com>
- Prathamesh Kulharni <prathamesh.kulkarni@linaro.org>
-
- PR c++/65858
- * typeck2.c (check_narrowing): Set ok = true when pedwarn returns
- false.
-
-2015-04-30 David Malcolm <dmalcolm@redhat.com>
-
- * cp-tree.h (ARGUMENT_PACK_SELECT_ARG): Remove spurious
- trailing semicolon.
-
-2015-04-29 Jason Merrill <jason@redhat.com>
-
- PR c++/50800
- * tree.c (apply_identity_attributes): Fix handling of classes.
-
-2015-04-29 Thomas Schwinge <thomas@codesourcery.com>
-
- * parser.c (cp_parser_oacc_enter_exit_data): Use
- OMP_STANDALONE_CLAUSES.
-
-2015-04-29 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/64667
- * init.c (perform_member_init): Handle references for -Winit-self.
-
-2015-04-29 Thomas Schwinge <thomas@codesourcery.com>
-
- * pt.c (tsubst_expr) <OMP_TARGET_UPDATE>: Use
- OMP_TARGET_UPDATE_CLAUSES instead of OMP_CLAUSES.
-
-2015-04-28 Jason Merrill <jason@redhat.com>
-
- PR c++/65896
- * constexpr.c (cxx_eval_store_expression): Don't try to actually
- store an empty class.
-
- PR c++/65656
- * constexpr.c (cxx_eval_builtin_function_call): Fix
- __builtin_constant_p.
-
- PR c++/50800
- * tree.c (strip_typedefs): Add remove_attributes parm.
- (strip_typedefs_expr): Likewise.
- (apply_identity_attributes): New subroutine of strip_typedefs.
- * pt.c (canonicalize_type_argument): Let strip_typedefs handle attrs.
- (convert_nontype_argument, unify): Likewise.
- * cp-tree.h: Adjust.
-
- PR c++/65734
- * class.c (fixup_attribute_variants): Respect TYPE_USER_ALIGN.
-
-2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
-
- * class.c (layout_class_type): Remove check if
- PCC_BITFIELD_TYPE_MATTERS is defined.
-
-2015-04-27 Jim Wilson <jim.wilson@linaro.org>
-
- * Make-lang.in (c++.mostlyclean): Remove xg++, g++-cross, and cc1plus.
-
-2015-04-24 Jason Merrill <jason@redhat.com>
-
- PR c++/50800
- * typeck.c (structural_comptypes): Don't check TYPE_REF_CAN_ALIAS_ALL.
-
- * constexpr.c (potential_constant_expression_1) [MINUS_EXPR]:
- Remove obsolete code.
- [NE_EXPR]: Likewise.
-
-2015-04-23 Jason Merrill <jason@redhat.com>
-
- PR c++/65646
- * pt.c (check_explicit_specialization): Don't
- SET_DECL_TEMPLATE_SPECIALIZATION for a variable with no template
- headers.
- * decl.c (grokvardecl): Revert earlier fix.
-
-2015-04-20 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/65801
- * typeck2.c (check_narrowing): In C++11 mode too, -Wno-narrowing
- suppresses the diagnostic.
-
-2015-04-20 Ville Voutilainen <ville.voutilainen@gmail.com>
-
- Reject trailing return type for an operator auto().
- * decl.c (grokdeclarator): Reject trailing return types for
- all conversion operators, don't handle conversion operators
- in the previous checks that deal with auto.
-
-2015-04-20 Ilya Verbin <ilya.verbin@intel.com>
-
- * parser.c (cp_parser_omp_target_update): Add missed %> to error_at ().
-
-2015-04-16 Paolo Carlini <paolo.carlini@oracle.com>
-
- * class.c (resolve_address_of_overloaded_function, instantiate_type):
- Rename tsubst_flags_t parameter flags -> complain.
-
-2015-04-16 Paolo Carlini <paolo.carlini@oracle.com>
-
- * call.c (build_op_delete_call, build_over_call): Check mark_used
- return value.
- * class.c (resolve_address_of_overloaded_function): Likewise.
- * decl.c (cxx_maybe_build_cleanup): Likewise.
- * pt.c (gen_elem_of_pack_expansion_instantiation, tsubst_baselink,
- tsubst_qualified_id, tsubst_copy, tsubst_copy_and_build): Likewise.
- * rtti.c (build_dynamic_cast_1): Likewise.
- * semantics.c (process_outer_var_ref): Likewise.
- * typeck.c (build_class_member_access_expr,
- cp_build_function_call_vec, cp_build_addr_expr_1): Likewise.
-
-2015-04-15 Jason Merrill <jason@redhat.com>
-
- * constexpr.c (cxx_eval_store_expression): Ignore clobbers.
- (build_constexpr_constructor_member_initializers): Loop to find
- the BIND_EXPR.
- * decl.c (start_preparsed_function): Clobber the object at the
- beginning of a constructor.
-
- * decl.c (grokmethod): Only set DECL_COMDAT if TREE_PUBLIC is set.
- * method.c (implicitly_declare_fn): Likewise.
- * decl2.c (vague_linkage_p): Check TREE_PUBLIC first.
-
- * decl2.c (determine_visibility): Use get_template_info.
-
-2015-04-15 Jason Merrill <jason@redhat.com>
- Marek Polacek <polacek@redhat.com>
-
- PR c++/65727
- * lambda.c (lambda_expr_this_capture): In unevaluated context go
- through the normal loop, just don't capture.
- (maybe_resolve_dummy): Handle null return.
-
-2015-04-15 Paolo Carlini <paolo.carlini@oracle.com>
-
- * call.c (enforce_access): Emit error + inform.
-
-2015-04-15 Marek Polacek <polacek@redhat.com>
-
- * constexpr.c (use_new_call): Remove #define.
- (lookup_parameter_binding): Remove function.
- (cxx_bind_parameters_in_call): Remove unused code.
- (cxx_eval_call_expression): Likewise.
- (cxx_eval_constant_expression): Likewise.
-
-2015-04-14 Mikhail Maltsev <maltsevm@gmail.com>
-
- * tree.c (replace_placeholders_t): Remove unused type.
- (replace_placeholders): Remove unused pset.
-
-2015-04-14 Jason Merrill <jason@redhat.com>
-
- * pt.c (lookup_template_class_1): Use coerce_innermost_template_parms.
-
- PR c++/65695
- * cvt.c (cp_fold_convert): Avoid wrapping PTRMEM_CST in NOP_EXPR.
-
- PR c++/65721
- * name-lookup.c (do_class_using_decl): Complain about specifying
- the current class even if there are dependent bases.
-
-2015-04-14 David Krauss <david_work@me.com>
-
- PR c++/59766
- * decl.c (grokdeclarator): Do not flag friends with deduced return.
-
-2015-04-14 Momchil Velikov <momchil.velikov@gmail.com>
- Jason Merrill <jason@redhat.com>
-
- PR c++/60994
- * parser.c (cp_parser_class_name): Add enum_ok parameter.
- (cp_parser_qualifying_entity): Use it instead of cp_parser_type_name.
- (cp_parser_diagnose_invalid_type_name): Don't assume a template is
- a class template.
-
-2015-04-12 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/65736
- * constexpr.c (cxx_eval_pointer_plus_expression): Don't fold for VLAs,
- don't fold if op01 isn't divisible by TYPE_SIZE_UNIT. Convert
- the expression to the original type at the end.
-
-2015-04-09 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/65690
- * tree.c (cp_build_qualified_type_real): Copy TYPE_ALIGN and
- TYPE_USER_ALIGN.
-
- PR c++/65690
- * tree.c (build_cplus_array_type): Layout type before variants are
- set, but copy over TYPE_SIZE and TYPE_SIZE_UNIT from the main
- variant.
-
-2015-04-03 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/64085
- * lambda.c (add_capture): Use dependent_type_p for capture by
- reference too.
-
-2015-04-02 Marek Polacek <polacek@redhat.com>
-
- PR c++/65642
- * constexpr.c (cxx_eval_pointer_plus_expression): Call
- cxx_eval_constant_expression on the first operand.
-
-2015-04-01 Jason Merrill <jason@redhat.com>
-
- PR c++/65625
- * decl.c (make_typename_type): Handle seeing a variable template.
-
-2015-04-01 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/56100
- * pt.c (instantiating_current_function_p): New.
- * name-lookup.c (pushdecl_maybe_friend_1): Use it.
- * cp-tree.h (instantiating_current_function_p): Declare.
-
-2015-04-01 Jason Merrill <jason@redhat.com>
-
- PR c++/65646
- * decl.c (grokvardecl): Don't call check_explicit_specialization
- for non-template members of a class template.
-
-2015-04-01 Marek Polacek <polacek@redhat.com>
-
- PR c++/65554
- * class.c (finish_struct): Require that the second field of a
- user-defined initializer_list be of size type.
-
-2015-03-31 Marek Polacek <polacek@redhat.com>
-
- PR c++/65390
- * tree.c (build_cplus_array_type): Use dependent_type_p rather than
- checking for constness.
-
-2015-03-30 Marek Polacek <polacek@redhat.com>
-
- PR c++/65398
- * constexpr.c (cxx_fold_indirect_ref): Don't perform the
- *(&A[i] p+ j) => A[i + j] transformation here.
- (cxx_eval_pointer_plus_expression): New function.
- (cxx_eval_constant_expression): Use it here.
-
-2015-03-27 Tobias Burnus <burnus@net-b.de>
-
- PR c/65586
- * parser.c (cp_parser_omp_for, cp_parser_omp_parallel,
- cp_parser_omp_distribute, cp_parser_omp_teams, cp_parser_omp_target,
- cp_parser_omp_declare): Don't show error for skipped omp pragmas with
- -fopenmp-simd.
-
-2015-03-27 Marek Polacek <polacek@redhat.com>
-
- PR c++/65556
- * semantics.c (finish_switch_cond): If the unlowered type is not an
- enum, use the type of the condition.
-
-2015-03-27 Jason Merrill <jason@redhat.com>
-
- PR c++/65509
- * decl.c (make_rtl_for_nonlocal_decl): Don't defer static
- constants.
-
-2015-03-26 Mikhail Maltsev <maltsevm@gmail.com>
-
- PR c++/65154
- * init.c (build_vec_init): Fix initializing aggregates
- with empty init list.
-
-2015-03-26 Jason Merrill <jason@redhat.com>
-
- PR c++/65525
- * constexpr.c (potential_constant_expression_1): Handle MEM_REF.
-
-2015-03-25 Marek Polacek <polacek@redhat.com>
-
- PR c++/65558
- * name-lookup.c (handle_namespace_attrs): Ignore abi_tag attribute
- on an anonymous namespace.
-
-2015-03-25 Marek Polacek <polacek@redhat.com>
-
- PR c++/61670
- * class.c (remove_zero_width_bit_fields): Check for null DECL_SIZE.
-
-2015-03-24 Jason Merrill <jason@redhat.com>
-
- PR c++/65046
- * cp-tree.h (NAMESPACE_IS_INLINE): Remove.
- * parser.c (cp_parser_namespace_definition): Don't set it.
- * name-lookup.c (handle_namespace_attrs): Check
- DECL_NAMESPACE_ASSOCIATIONS instead.
-
- PR c++/65498
- * pt.c (get_mostly_instantiated_function_type): Just return the
- type of the partially instantiated template in DECL_TI_TEMPLATE.
-
-2015-03-20 Marek Polacek <polacek@redhat.com>
-
- PR c++/65398
- * constexpr.c (cxx_fold_indirect_ref): Transform *(&A[i] p+ j) into
- A[i + j].
-
-2015-03-20 Marek Polacek <polacek@redhat.com>
-
- PR c++/65072
- * typeck.c (lookup_anon_field): Make sure we're dealing with the main
- variant.
-
-2015-03-19 Jason Merrill <jason@redhat.com>
-
- PR c++/65046
- Automatically propagate ABI tags to variables and functions
- from their (return) type.
- * class.c (check_tag): Handle variables and functions.
- (mark_or_check_attr_tags): Split out from find_abi_tags_r.
- (mark_or_check_tags): Likewise.
- (mark_abi_tags): Use it. Rename from mark_type_abi_tags.
- (check_abi_tags): Add single argument overload for decls.
- Handle inheriting tags for decls.
- * mangle.c (write_mangled_name): Call it.
- (mangle_return_type_p): Split out from write_encoding.
- (unmangled_name_p): Split out from write_mangled_name.
- (write_mangled_name): Ignore abi_tag on namespace.
- * cp-tree.h (NAMESPACE_IS_INLINE): Replace NAMESPACE_ABI_TAG.
- * parser.c (cp_parser_namespace_definition): Set it.
- * name-lookup.c (handle_namespace_attrs): Use arguments. Warn
- about abi_tag attribute on non-inline namespace.
- * tree.c (check_abi_tag_args): Split out from handle_abi_tag_attribute.
- (handle_abi_tag_attribute): Allow tags on variables.
-
-2015-03-19 Jakub Jelinek <jakub@redhat.com>
-
- * decl2.c (cplus_decl_attributes): Also add "omp declare target"
- attribute for DECL_EXTERNAL VAR_DECLs.
-
-2015-03-18 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/65340
- * call.c (build_over_call): Pass the tsubst_flags_t argument to
- mark_used.
- * decl2.c (mark_used): Inline the require_deduced_type call and
- guard the error call.
-
-2015-03-16 Jason Merrill <jason@redhat.com>
-
- PR c++/65061
- * parser.c (cp_parser_template_name): Call strip_using_decl.
-
-2015-03-16 Marek Polacek <polacek@redhat.com>
-
- DR 1688
- PR c++/65327
- * decl.c (grokdeclarator): Allow volatile and constexpr together.
-
-2015-03-12 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/65323
- * decl.c (check_default_argument): Don't call
- maybe_warn_zero_as_null_pointer_constant.
-
-2015-03-11 Aldy Hernandez <aldyh@redhat.com>
-
- * cp-gimplify.c (simple_empty_class_p): New.
- * cp-gimplify.c (cp_gimplify_expr): Handle RETURN_EXPR. Abstract
- the code for empty class copies into simple_empty_class_p, and
- adapt it to handle COMPOUND_EXPRs.
-
-2015-03-10 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/65370
- * decl.c (duplicate_decls): Call check_redeclaration_no_default_args
- only if the location of newdecl doesn't match the location of olddecl.
-
-2015-03-10 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/65127
- * parser.c (parsing_nsdmi): Don't return true if current_class_ptr
- is not a PARM_DECL.
-
-2015-03-10 Jason Merrill <jason@redhat.com>
-
- PR c++/65333
- DR 1558
- * pt.c (dependent_type_p_r): Check both class and alias template args.
-
-2015-03-10 Jakub Jelinek <jakub@redhat.com>
-
- PR c/65120
- * parser.c (cp_parser_binary_expression): Check for tcc_comparison
- before preparing arguments to warn_logical_not_parentheses.
- Use maybe_constant_value on rhs.
-
-2015-03-09 Jason Merrill <jason@redhat.com>
-
- PR c++/65339
- * call.c: Don't call maybe_resolve_dummy when calling a constructor.
-
-2015-03-09 Jakub Jelinek <jakub@redhat.com>
-
- PR c/65120
- * parser.c (cp_parser_binary_expression): Don't warn for
- !!x == y or !b == y where b is bool.
-
-2015-03-06 Aldy Hernandez <aldyh@redhat.com>
-
- * ptree.c (cxx_print_lambda_node): New.
- (cxx_print_xnode): Handle LAMBDA_EXPR.
-
-2015-03-03 Aldy Hernandez <aldyh@redhat.com>
-
- PR c++/65295
- * constexpr.c (cxx_eval_constant_expression): Remove assert in
- RESULT_DECL handling.
-
-2015-02-26 Marek Polacek <polacek@redhat.com>
-
- PR c++/65202
- * constexpr.c (cxx_eval_constant_expression): Don't evaluate
- a RETURN_EXPR if its operand is null.
-
-2015-02-25 Jason Merrill <jason@redhat.com>
-
- PR c++/65209
- * decl2.c (constrain_visibility) [VISIBILITY_ANON]: Clear
- DECL_COMDAT.
- (constrain_visibility_for_template): Handle reference arguments.
-
- PR debug/58315
- * decl.c (start_preparsed_function): Use create_artificial_label
- for cdtor_label.
-
-2015-02-17 Paolo Carlini <paolo.carlini@oracle.com>
- Jakub Jelinek <jakub@redhat.com>
-
- PR c++/65075
- * constexpr.c (check_constexpr_bind_expr_vars): Allow
- implicit typedefs for lambda types.
-
-2015-02-13 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/60894
- * decl.c (lookup_and_check_tag): Use strip_using_decl.
-
-2015-02-13 Jason Merrill <jason@redhat.com>
-
- PR c++/65054
- * pt.c (template_args_equal): Look through conversions here.
- * tree.c (cp_tree_equal): Not here.
-
-2015-02-13 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/60211
- * parser.c (cp_parser_pragma): Diagnose PRAGMA_IVDEP at
- pragma_external context.
-
-2015-02-13 Jason Merrill <jason@redhat.com>
-
- PR c++/65051
- * call.c (reference_binding): Don't look for bad conversion
- if TO is incomplete.
-
-2015-02-13 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/64970
- * decl.c (make_typename_type): Pass tsubst_flags_t argument
- to lookup_template_class.
-
-2015-02-13 Jakub Jelinek <jakub@redhat.com>
-
- PR ipa/65034
- * decl.c (start_preparsed_function): Use void_type_node instead
- of NULL_TREE as LABEL_DECL type.
-
-2015-02-12 Jason Merrill <jason@redhat.com>
-
- PR c++/64898
- * mangle.c (write_mangled_name): Fix test for variable template
- instantiation.
-
- * decl.c (begin_destructor_body): Condition clobber on
- -flifetime-dse.
-
-2015-02-12 Andrea Azzarone <azzaronea@gmail.com>
-
- PR c++/64959
- * parser.c (lookup_literal_operator): Return all candidates.
- (cp_parser_userdef_char_literal): Simplify error handling.
- (cp_parser_userdef_numeric_literal): Pass tf_warning_or_error.
- (cp_parser_userdef_string_literal): Pass tf_warning_or_error.
- Also give higher priority to standard string UDL operator.
-
-2015-02-12 Jakub Jelinek <jakub@redhat.com>
-
- PR debug/55541
- * cp-tree.h (BLOCK_OUTER_CURLY_BRACE_P): Define.
- * decl.c (poplevel): If functionbody, try not to create an extra
- BLOCK for function body and use subblocks as that, if it is non-NULL
- and doesn't have siblings. Set BLOCK_OUTER_CURLY_BRACE_P flag.
- (outer_curly_brace_block): Use BLOCK_OUTER_CURLY_BRACE_P flag.
-
- PR sanitizer/64984
- * except.c (check_noexcept_r): Return NULL for internal
- calls.
-
-2015-02-10 Jason Merrill <jason@redhat.com>
-
- PR c++/64994
- * constexpr.c (cxx_eval_call_expression): Walk the clone list.
-
-2015-02-10 Jan Hubicka <hubicka@ucw.cz>
-
- PR ipa/64982
- * method.c (use_thunk): Do not check for stdarg thunks.
-
-2015-02-06 Jason Merrill <jason@redhat.com>
-
- PR c++/64899
- * init.c (build_vec_init): Handle default-initialized array with
- constexpr default constructor.
-
-2015-02-04 Jakub Jelinek <jakub@redhat.com>
-
- PR c/64824
- PR c/64868
- * parser.c (cp_parser_omp_atomic): Handle RDIV_EXPR.
-
-2015-02-03 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/64877
- * typeck.c (cp_build_binary_op): Avoid spurious -Waddress warnings
- for generated expressions.
-
-2015-02-02 Ville Voutilainen <ville.voutilainen@gmail.com>
-
- PR c++/64901
- * decl.c (duplicate_decls): Also duplicate DECL_FINAL_P and
- DECL_OVERRIDE_P.
-
-2015-02-02 Jason Merrill <jason@redhat.com>
-
- * tree.c (handle_abi_tag_attribute): Diagnose invalid arguments.
-
-2015-01-30 Joseph Myers <joseph@codesourcery.com>
-
- * class.c, except.c, parser.c, pt.c: All callers of fatal_error
- changed to pass input_location as first argument.
-
-2015-01-29 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/64717
- * cp-ubsan.c (cp_ubsan_instrument_vptr): Don't wrap vptr
- into SAVE_EXPR.
-
-2015-01-29 Jason Merrill <jason@redhat.com>
-
- PR c++/49508
- * semantics.c (finish_return_stmt): Suppress -Wreturn-type on
- erroneous return statement.
-
- PR c++/64521
- * repo.c (repo_emit_p): It's OK for a clone to be extern at this
- point.
-
-2015-01-27 Caroline Tice <cmtice@google.com>
-
- Committing VTV Cywin/Ming patch for Patrick Wollgast
- * vtable-class-hierarchy.cc (vtv_generate_init_routine): Add
- check for not TARGET_PECOFF at the VTV_PREINIT_PRIORITY checks.
-
-2015-01-27 Jason Merrill <jason@redhat.com>
-
- PR c++/58597
- * lambda.c (maybe_add_lambda_conv_op): Check cfun rather than
- current_function_decl.
-
- PR c++/63889
- * pt.c (finish_template_variable): Move from semantics.c.
- Handle multiple template arg levels. Handle coercion here.
- (lookup_template_variable): Not here.
-
-2015-01-23 Jason Merrill <jason@redhat.com>
-
- PR c++/64314
- PR c++/57510
- * typeck2.c (split_nonconstant_init_1): Remove a sub-CONSTRUCTOR
- that has been completely split out.
-
- PR c++/64701
- * constexpr.c (cxx_eval_constant_expression): Don't crash on C++
- statement codes.
-
- PR c++/64727
- * constexpr.c (cxx_eval_constant_expression): Allow for lvalue use
- of CONST_DECL.
-
-2015-01-21 Jason Merrill <jason@redhat.com>
-
- PR c++/64603
- * constexpr.c (cxx_eval_constant_expression): Only shortcut
- constant CONSTRUCTORs.
-
- PR c++/64647
- * constexpr.c (ensure_literal_type_for_constexpr_object): Don't
- give a hard error in a template instantiation.
-
-2015-01-21 Richard Biener <rguenther@suse.de>
-
- PR middle-end/64313
- * decl.c (duplicate_decls): Call set_builtin_decl_declared_p
- for builtins the user declared correctly.
-
-2015-01-16 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/58614
- * pt.c (unify): When BRACE_ENCLOSED_INITIALIZER_P (arg), handle
- TREE_TYPE (elt) == error_mark_node.
-
-2015-01-15 Jan Hubicka <hubicka@ucw.cz>
-
- PR tree-optimization/62053
- * tree.c (build_cplus_array_type): Layout type after variants are set.
-
-2015-01-15 Jakub Jelinek <jakub@redhat.com>
-
- * cp-gimplify.c (cp_genericize_r): Call
- cp_ubsan_maybe_instrument_member_call for member calls.
- (cp_ubsan_check_member_access_r): New function.
- (cp_genericize_tree): Call cp_ubsan_instrument_member_accesses.
- * cp-tree.h (cp_ubsan_maybe_instrument_member_call,
- cp_ubsan_instrument_member_accesses,
- cp_ubsan_maybe_instrument_downcast,
- cp_ubsan_maybe_instrument_cast_to_vbase): New prototypes.
- * cp-ubsan.c: New file.
- * Make-lang.in (CXX_AND_OBJCXX_OBJS): Add cp/cp-ubsan.o.
- * constexpr.c (cxx_eval_call_expression): Return void_node
- for IFN_UBSAN_VPTR.
- (potential_constant_expression_1): Return true for
- UBSAN_NULL, UBSAN_BOUNDS and UBSAN_VPTR internal calls.
- * typeck.c (build_class_member_access_expr): Provide locus
- for COMPONENT_REFs.
- (build_static_cast_1): Instrument downcasts.
- * class.c (build_base_path): For -fsanitize=vptr and !fixed_type_p
- add ubsan instrumentation for virtual_access.
- * call.c: Include internal-fn.h.
- (set_flags_from_callee): Handle internal calls.
-
-2015-01-15 Momchil Velikov <momchil.velikov@gmail.com>
-
- PR c++/59366
- * name-lookup.c (pushdecl_maybe_friend_1): Hide friend functions
- and function templates, declared only in the class.
- * decl.c (duplicate_decls): Reveal hidden friend functions or
- function templates, if they are redeclared outside the class.
-
-2015-01-15 Jason Merrill <jason@redhat.com>
-
- PR c++/64356
- * constexpr.c (cxx_eval_binary_expression): Fix pasto.
-
- PR c++/63283
- * constexpr.c (potential_constant_expression_1): Handle reference
- args in templates.
-
-2015-01-15 Thomas Schwinge <thomas@codesourcery.com>
- James Norris <jnorris@codesourcery.com>
- Cesar Philippidis <cesar@codesourcery.com>
- Ilmir Usmanov <i.usmanov@samsung.com>
- Jakub Jelinek <jakub@redhat.com>
-
- * parser.c: Include "gomp-constants.h".
- (cp_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
- omp_clause_map_kind. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
- Use OMP_CLAUSE_SET_MAP_KIND.
- (cp_parser_omp_construct, cp_parser_pragma): Handle
- PRAGMA_OACC_CACHE, PRAGMA_OACC_DATA, PRAGMA_OACC_ENTER_DATA,
- PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_PARALLEL,
- PRAGMA_OACC_LOOP, PRAGMA_OACC_UPDATE, PRAGMA_OACC_WAIT.
- (cp_parser_omp_clause_name): Handle "async", "copy", "copyout",
- "create", "delete", "deviceptr", "host", "num_gangs",
- "num_workers", "present", "present_or_copy", "pcopy",
- "present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
- "present_or_create", "pcreate", "vector_length", "wait".
- (OACC_DATA_CLAUSE_MASK, OACC_ENTER_DATA_CLAUSE_MASK)
- (OACC_EXIT_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
- (OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
- (OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
- (cp_parser_omp_var_list_no_open): Handle OMP_CLAUSE__CACHE_.
- (cp_parser_oacc_data_clause, cp_parser_oacc_data_clause_deviceptr)
- (cp_parser_oacc_clause_vector_length, cp_parser_oacc_wait_list)
- (cp_parser_oacc_clause_wait, cp_parser_omp_clause_num_gangs)
- (cp_parser_omp_clause_num_workers, cp_parser_oacc_clause_async)
- (cp_parser_oacc_all_clauses, cp_parser_oacc_cache)
- (cp_parser_oacc_data, cp_parser_oacc_enter_exit_data)
- (cp_parser_oacc_kernels, cp_parser_oacc_loop)
- (cp_parser_oacc_parallel, cp_parser_oacc_update)
- (cp_parser_oacc_wait): New functions.
- * cp-tree.h (finish_oacc_data, finish_oacc_kernels)
- (finish_oacc_parallel): New prototypes.
- * semantics.c: Include "gomp-constants.h".
- (handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR. Use
- GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
- OMP_CLAUSE_SET_MAP_KIND.
- (finish_omp_clauses): Handle OMP_CLAUSE_ASYNC,
- OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_WAIT, OMP_CLAUSE__CACHE_.
- Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
- (finish_oacc_data, finish_oacc_kernels, finish_oacc_parallel): New
- functions.
-
-2015-01-14 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/58671
- * decl2.c (var_defined_without_dynamic_init): Handle gracefully
- self-initialization.
-
-2015-01-13 Jason Merrill <jason@redhat.com>
-
- PR c++/64356
- PR libstdc++/58777
- * constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT
- pointer expressions.
- (cxx_eval_increment_expression): Likewise.
-
- PR c++/64514
- * pt.c (coerce_template_parameter_pack): Return NULL for a
- zero-length fixed parameter pack with a pack expansion arg.
-
- PR c++/64520
- * pt.c (unify): Don't try to deduce to std::initializer_list<T...>.
-
-2015-01-12 Jason Merrill <jason@redhat.com>
-
- PR c++/64547
- * constexpr.c (cxx_eval_call_expression): A call to a void
- function doesn't need to return a value.
-
-2015-01-09 Michael Collison <michael.collison@linaro.org>
-
- * call.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
- input.h, alias.h, symtab.h, options.h, fold-const.h,
- wide-int.h, and inchash.h due to flattening of tree.h.
- * class.c: Ditto.
- * constexpr.c: Ditto.
- * cp-array-notation.c: Ditto.
- * cp-gimplify.c: Ditto.
- * cp-lang.c: Ditto.
- * cp-objcp-common.c: Ditto.
- * cvt.c: Ditto.
- * decl2.c: Ditto.
- * decl.c: Ditto.
- * dump.c: Ditto.
- * error.c: Ditto.
- * except.c: Ditto.
- * expr.c: Ditto.
- * friend.c: Ditto.
- * init.c: Ditto.
- * lambda.c: Ditto.
- * lex.c: Ditto.
- * mangle.c: Ditto.
- * name-lookup.c: Ditto.
- * optimize.c: Ditto.
- * parser.c: Ditto.
- * pt.c: Ditto.
- * ptree.c: Ditto.
- * repo.c: Ditto.
- * rtti.c: Ditto.
- * search.c: Ditto.
- * semantics.c: Ditto.
- * tree.c: Ditto.
- * typeck2.c: Ditto.
- * typeck.c: Ditto.
-
-2015-01-08 Jason Merrill <jason@redhat.com>
-
- * cp-gimplify.c (cp_genericize): Use do_ubsan_in_current_function.
- * decl.c (compute_array_index_type): Likewise.
- * init.c (build_vec_init): Likewise.
- * typeck.c (cp_build_binary_op): Likewise.
-
-2015-01-08 Jason Merrill <jason@redhat.com>
-
- * init.c (build_vec_init): Call ubsan_instrument_bounds to check
- whether an initializer-list is too big for a VLA.
- (throw_bad_array_length): Remove.
- * cp-tree.h: Remove prototype.
-
-2015-01-08 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/60753
- * decl.c (grokfndecl): Add bool parameter.
- (grokdeclarator): Adjust calls.
- (start_decl): Don't set DECL_DELETED_FN here.
-
-2015-01-06 Jason Merrill <jason@redhat.com>
-
- * parser.c (cp_parser_nested_name_specifier_opt): Diagnose invalid
- template-ids.
-
- PR c++/64455
- * pt.c (type_dependent_expression_p): Handle variable templates.
- * constexpr.c (potential_constant_expression_1): Use it.
-
- PR c++/64487
- * semantics.c (finish_offsetof): Handle templates here.
- * parser.c (cp_parser_builtin_offsetof): Not here.
-
- PR c++/64496
- * semantics.c (process_outer_var_ref): Diagnose lambda in local
- class NSDMI.
-
-2015-01-06 Ville Voutilainen <ville.voutilainen@gmail.com>
-
- PR c++/64489
- * class.c (check_field_decls): Make copy assignment operators
- complex only in c++98 mode.
-
-2015-01-05 Trevor Saunders <tsaunders@mozilla.com>
-
- PR c++/31397
- * class.c (check_for_override): Warn when a virtual function is an
- override not marked override.
-
-2015-01-05 Trevor Saunders <tsaunders@mozilla.com>
-
- * class.c (warn_hidden): Use auto_vec<tree> instead of tree_list to
- hold base_fndecls.
- (get_basefndecls): Adjust.
-
-2015-01-05 Jakub Jelinek <jakub@redhat.com>
+2016-01-04 Jakub Jelinek <jakub@redhat.com>
Update copyright years.
-
-2015-01-05 Marek Polacek <polacek@redhat.com>
-
- PR c/64423
- * typeck.c (cp_build_array_ref): Pass loc down to
- warn_array_subscript_with_type_char.
-
-Copyright (C) 2015 Free Software Foundation, Inc.
+Copyright (C) 2016 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gcc/cp/ChangeLog-2015 b/gcc/cp/ChangeLog-2015
new file mode 100644
index 0000000..4c7e384
--- /dev/null
+++ b/gcc/cp/ChangeLog-2015
@@ -0,0 +1,4230 @@
+2015-12-24 Jason Merrill <jason@redhat.com>
+
+ PR c++/69005
+ * call.c (add_template_candidate_real): Don't try to deduce X(X).
+
+2015-12-22 Jason Merrill <jason@redhat.com>
+
+ PR c++/66921
+ * decl.c (cp_complete_array_type): Allow an initializer that
+ already has array type.
+
+ PR c++/67257
+ * parser.c (cp_parser_single_declaration): Reject a class template
+ that also declares a variable.
+
+ PR c++/67339
+ * parser.c (cp_parser_elaborated_type_specifier): Use CLASS_TYPE_P
+ rather than check for RECORD_TYPE.
+
+2015-12-22 Patrick Palka <ppalka@gcc.gnu.org>
+
+ * pt.c (make_pack_expansion): Make sure to initialize
+ ppd.type_pack_expansion_p.
+
+2015-12-21 David Malcolm <dmalcolm@redhat.com>
+
+ * typeck.c (cp_build_binary_op): Update for change in signature
+ of build_binary_op. Use error_at to replace an implicit use
+ of input_location with param "location" in "invalid operands"
+ error.
+ (cp_build_binary_op): Replace an error with an error_at, using
+ "location", rather than implicitly using input_location.
+
+2015-12-20 Jason Merrill <jason@redhat.com>
+
+ PR c++/67411
+ * decl2.c (decl_maybe_constant_var_p): Use DECL_HAS_VALUE_EXPR_P.
+
+ PR c++/67411
+ * lambda.c (generic_lambda_fn_p): Split out from...
+ (maybe_add_lambda_conv_op): ...here.
+ * semantics.c (process_outer_var_ref): Don't defer maybe-constant
+ variables in a generic lambda.
+ * pt.c (instantiate_non_dependent_or_null): New.
+ * init.c (constant_value_1): Use it.
+ * cp-tree.h: Declare it and generic_lambda_fn_p.
+
+ PR c++/67411
+ * decl2.c (decl_maybe_constant_var_p): A proxy isn't constant.
+
+2015-12-18 Patrick Palka <ppalka@gcc.gnu.org>
+
+ PR c++/68978
+ * tree.c (lvalue_kind) [MODOP_EXPR]: New case.
+
+2015-12-18 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/67592
+ * decl.c (grokdeclarator): Reject constexpr virtual member functions;
+ in error messages, prefer %<virtual%> and %<constexpr%> to virtual
+ and constexpr, respectively.
+
+2015-12-18 Patrick Palka <ppalka@gcc.gnu.org>
+
+ PR c++/68831
+ * init.c (build_delete): Use a warning sentinel to disable
+ -Waddress warnings when building the conditional that tests
+ if the operand is NULL.
+
+2015-12-17 Jason Merrill <jason@redhat.com>
+
+ PR c++/67550
+ * init.c (constant_value_1): Don't return a CONSTRUCTOR missing
+ non-constant elements.
+
+ PR c++/67576
+ PR c++/25466
+ * rtti.c (build_typeid): Use save_expr, not stabilize_reference.
+
+2015-12-16 Patrick Palka <ppalka@gcc.gnu.org>
+
+ PR c++/16333
+ PR c++/41426
+ PR c++/59879
+ PR c++/66895
+ * typeck.c (convert_for_initialization): Don't perform an early
+ decaying conversion if converting to a class type.
+
+2015-12-16 Patrick Palka <ppalka@gcc.gnu.org>
+
+ * tree.c (cp_tree_operand_length): Define in terms of
+ cp_tree_code_length.
+
+2015-12-16 Martin Sebor <msebor@redhat.com>
+
+ PR objc++/68932
+ * decl.c (grokdeclarator): Avoid assuming ctype is non-null when
+ checking the validity of a flexible array member.
+
+2015-12-16 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * pt.c (comp_template_args): Remove.
+ (comp_template_args_with_info): Rename to comp_template_args;
+ not static.
+ (add_pending_template): Adjust call.
+ * cp-tree.h (comp_template_args): Add default arguments.
+
+2015-12-16 Jason Merrill <jason@redhat.com>
+
+ PR c++/68309
+ * pt.c (instantiate_decl): Revert earlier change.
+
+ PR c++/63628
+ * pt.c (tsubst_pack_expansion): Also make dummy decls if
+ retrieve_local_specialization fails.
+
+2015-12-16 David Malcolm <dmalcolm@redhat.com>
+
+ * parser.c (cp_lexer_peek_conflict_marker): New function.
+ (cp_parser_error): Detect conflict markers and report them as
+ such.
+
+2015-12-15 Martin Sebor <msebor@redhat.com>
+
+ PR c++/42121
+ PR c++/68478
+ PR c++/68613
+ PR c++/68689
+ PR c++/68710
+ * class.c (walk_subobject_offsets): Avoid assuming type domain
+ is non-null or has an upper bound.
+ (layout_class_type): Include type size in error message.
+ (flexmems_t): New type.
+ (field_nonempty_p, find_flexarrays, diagnose_flexarrays)
+ (check_flexarrays): New functions.
+ (finish_struct_1): Call check_flexarrays.
+ * decl.c (compute_array_index_type): Distinguish flexible array
+ members from zero-length arrays.
+ (grokdeclarator): Reject flexible array members in unions. Avoid
+ rejecting members of incomplete types that are flexible array members.
+ * error.c (dump_type_suffix): Handle flexible array members with null
+ upper bound.
+ * init.c (perform_member_init): Same.
+ * pt.c (instantiate_class_template_1): Allow flexible array members.
+ (tsubst): Handle flexible array members with null upper bound.
+ * typeck2.c (digest_init_r): Warn for initialization of flexible
+ array members.
+ (process_init_constructor_record): Handle flexible array members.
+
+2015-12-15 Patrick Palka <ppalka@gcc.gnu.org>
+
+ PR c++/21802
+ PR c++/53223
+ * cp-tree.h (cp_tree_code_length): Declare.
+ (build_min_non_dep_op_overload): Declare.
+ * tree.c (cp_tree_code_length): Define.
+ (build_min_non_dep_op_overload): Define.
+ (build_win_non_dep_call_vec): Copy the KOENIG_LOOKUP_P flag.
+ * typeck.c (build_x_indirect_ref): Use
+ build_min_non_dep_op_overload when the given expression
+ has been resolved to an operator overload.
+ (build_x_binary_op): Likewise.
+ (build_x_array_ref): Likewise.
+ (build_x_unary_op): Likewise.
+ (build_x_compound_expr): Likewise.
+ (build_x_modify_expr): Likewise.
+ * decl2.c (grok_array_decl): Likewise.
+ * call.c (build_new_op_1): If during template processing we
+ chose an operator overload that is a hidden friend function, set
+ the call's KOENIG_LOOKUP_P flag to 1.
+
+2015-12-14 Jason Merrill <jason@redhat.com>
+
+ PR c++/68309
+ * pt.c (instantiate_decl): Copy local_specializations for nested
+ function.
+
+2015-12-09 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/60218
+ * semantics.c (calculate_bases_helper): Don't call dfs_walk_all
+ when TYPE_BINFO (type) is null.
+ (calculate_bases): Handle gracefully a null vector->length ().
+
+2015-12-08 Martin Sebor <msebor@redhat.com>
+
+ PR c++/68711
+ * typeck.c (build_class_member_access_expr): Strip NOPs before
+ testing a potentially null operand for equality to zero.
+
+2015-12-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/68760
+ * error.c (dump_global_iord): Use DECL_SOURCE_FILE (t)
+ instead of LOCATION_FILE (input_location).
+
+2015-12-07 Ryan Burn <contact@rnburn.com>
+
+ PR c++/68683
+ * constraint.cc (satisfy_argument_deduction_constraint): Set
+ TYPE_CANONICAL to NULL_TREE if PLACEHOLDER_TYPE_CONSTRAINTS are
+ changed.
+
+2015-12-07 Jason Merrill <jason@redhat.com>
+
+ PR c++/68464
+ * cp-gimplify.c (cp_fold): Don't assume X has TREE_TYPE.
+ (cp_genericize): Don't do cp_fold_r here.
+ (cp_fold_function): New.
+ * cp-tree.h: Declare it.
+ * decl.c (finish_function): Call it and the pre-genericize plugin
+ before NRV processing.
+
+ PR c++/68170
+ * pt.c (maybe_new_partial_specialization): The injected-class-name
+ is not a new partial specialization.
+
+ * Make-lang.in (check-c++1z, check-c++-all): Use GXX_TESTSUITE_STDS.
+
+2015-12-06 Jason Merrill <jason@redhat.com>
+
+ * parser.c (struct tentative_firewall): New.
+ (cp_parser_template_id, cp_parser_decltype_expr): Use it.
+
+ * parser.h (struct cp_token): Tell GTY that CPP_DECLTYPE uses
+ tree_check_value.
+ * parser.c (cp_parser_decltype): Use tree_check_value.
+ (saved_checks_value): New.
+ (cp_parser_nested_name_specifier_opt): Use it.
+ (cp_parser_template_id): Use it.
+ (cp_parser_simple_type_specifier): Use it.
+ (cp_parser_pre_parsed_nested_name_specifier): Use it.
+
+ * semantics.c (finish_qualified_id_expr): Handle
+ UNBOUND_CLASS_TEMPLATE.
+
+ * parser.c (cp_parser_template_argument): Handle references in
+ C++1z mode.
+ * constexpr.c (potential_constant_expression_1): Don't error about
+ TREE_THIS_VOLATILE on declarations.
+ [COMPONENT_REF]: Don't consider the object if we're dealing with
+ an overloaded function.
+
+ * constraint.cc (strictly_subsumes): New.
+ * cp-tree.h: Declare it.
+ * pt.c (process_partial_specialization): Use it instead of
+ subsumes_constraints.
+ (maybe_new_partial_specialization): Do compare null constraints.
+ * search.c (lookup_member): Handle currently_open_class returning null.
+
+ PR c++/68597, fix auto9.C and auto-neg1.C with -std=c++1z.
+ * decl.c (check_tag_decl): Use ds_type_spec in auto diagnostic.
+ * typeck.c (check_return_expr): Check for inconsistent deduction.
+ * parser.c (class type_id_in_expr_sentinel): New.
+ (cp_parser_primary_expression) [RID_VA_ARG]: Use it.
+ (cp_parser_new_expression): Use it.
+ (cp_parser_trait_expr): Use it.
+ (cp_parser_type_id_1): Complain about auto if in_type_id_in_expr_p.
+ (cp_parser_default_type_template_argument): Check for auto.
+ (cp_parser_type_id_list): Likewise.
+ (cp_parser_simple_type_specifier): Allow auto parms if flag_concepts.
+ * pt.c (do_auto_deduction): Handle erroneous type.
+
+2015-12-04 Jason Merrill <jason@redhat.com>
+
+ PR c++/68645
+ * parser.c (cp_parser_direct_declarator)
+ (cp_parser_late_return_type_opt): Put Cilk+ attributes on
+ declarator->attributes, not std_attributes.
+
+2015-12-04 David Malcolm <dmalcolm@redhat.com>
+
+ * cp-tree.h (class cp_expr): New class.
+ (finish_parenthesized_expr): Convert return type and param to
+ cp_expr.
+ (perform_koenig_lookup): Convert return type and param from tree
+ to cp_expr.
+ (finish_increment_expr): Likewise.
+ (finish_unary_op_expr): Likewise.
+ (finish_id_expression): Likewise for return type.
+ (build_class_member_access_expr): Likewise for param.
+ (finish_class_member_access_expr): Likewise.
+ (build_x_unary_op): Likewise.
+ (build_c_cast): New decl.
+ (build_x_modify_expr): Convert return type from tree to cp_expr.
+ * cvt.c (cp_convert_and_check): When warning about conversions,
+ attempt to use the location of "expr" if available, otherwise
+ falling back to the old behavior of using input_location.
+ * name-lookup.c (lookup_arg_dependent_1): Convert return type from
+ tree to cp_expr.
+ (lookup_arg_dependent): Likewise; also for local "ret".
+ * name-lookup.h (lookup_arg_dependent): Likewise for return type.
+ * parser.c (cp_lexer_previous_token): Skip past purged tokens.
+ (struct cp_parser_expression_stack_entry): Convert field "lhs" to
+ cp_expr.
+ (cp_parser_identifier): Likewise for return type. Use cp_expr
+ ctor to preserve the token's location.
+ (cp_parser_string_literal): Likewise, building up a meaningful
+ location for the case where a compound string literal is built by
+ concatentation.
+ (cp_parser_userdef_char_literal): Likewise for return type.
+ (cp_parser_userdef_numeric_literal): Likewise.
+ (cp_parser_statement_expr): Convert return type to cp_expr.
+ Generate a suitable location for the expr and return it via the
+ cp_expr ctor.
+ (cp_parser_fold_expression): Convert return type to cp_expr.
+ (cp_parser_primary_expression): Likewise, and for locals "expr",
+ "lam", "id_expression", "decl".
+ Use cp_expr ctor when parsing literals, to preserve the spelling
+ location of the token. Preserve the locations of parentheses.
+ Preserve location when calling objc_lookup_ivar.
+ Preserve the location for "this" tokens. Generate suitable
+ locations for "__builtin_va_arg" constructs and for
+ Objective C 2.0 dot-syntax. Set the location for the result of
+ finish_id_expression.
+ (cp_parser_primary_expression): Convert return type from tree to
+ cp_expr.
+ (cp_parser_id_expression): Likewise.
+ (cp_parser_unqualified_id): Likewise. Also for local "id".
+ (cp_parser_postfix_expression): Likewise, also for local
+ "postfix_expression". Generate suitable locations for
+ C++-style casts, "_Cilk_spawn" constructs. Convert local
+ "initializer" to cp_expr and use it to preserve the location of
+ compound literals. Capture the location of the closing
+ parenthesis of a call site via
+ cp_parser_parenthesized_expression_list, and use it to build
+ a source range for a call. Use cp_expr in ternary expression.
+ (cp_parser_postfix_dot_deref_expression): Convert param from tree to
+ cp_expr. Generate and set a location.
+ (cp_parser_parenthesized_expression_list): Add "close_paren_loc"
+ out-param, and write back to it.
+ (cp_parser_unary_expression): Convert return type from tree to
+ cp_expr. Also for locals "cast_expression" and "expression".
+ Generate and use suitable locations for addresses of
+ labels and for cast expressions. Call cp_expr::set_location where
+ necessary. Preserve the locations of negated numeric literals.
+ (cp_parser_new_expression): Generate meaningful locations/ranges.
+ (cp_parser_cast_expression): Convert return type from tree to
+ cp_expr; also for local "expr". Use the paren location to generate a
+ meaningful range for the expression.
+ (cp_parser_binary_expression): Convert return type from tree to
+ cp_expr; also for local "rhs". Generate a meaningful location
+ for the expression, and use it. Replace call to
+ protected_set_expr_location by converting a build2 to a build2_loc
+ and using the location in the call to build_x_binary_op, adding a
+ cp_expr::set_location to the latter case.
+ (cp_parser_question_colon_clause): Convert param from tree to
+ cp_expr; also for local "assignment_expr". Set the spelling range
+ of the expression.
+ (cp_parser_assignment_expression): Likewise for return type and
+ locals "expr" and "rhs". Build a meaningful spelling range for
+ the expression. Remove saving of input_location in favor of a
+ call to cp_expr::set_location.
+ (cp_parser_expression): Convert return type and locals
+ "expression" and "assignment_expression" to cp_expr. Build a
+ meaningful spelling range for assignment expressions.
+ (cp_parser_constant_expression): Likewise for return type and
+ local "expression".
+ (cp_parser_builtin_offsetof): Convert return type and local "expr"
+ to cp_expr. Generate suitable locations.
+ (cp_parser_lambda_expression): Convert return return type to
+ cp_expr.
+ (cp_parser_operator_function_id): Likewise.
+ (cp_parser_operator): Likewise. Generate a meaningful range,
+ using cp_expr's ctor to return it.
+ (cp_parser_template_id): When converting a token to
+ CPP_TEMPLATE_ID, update the location.
+ (cp_parser_initializer_clause): Convert return type and local
+ "initializer" to cp_expr.
+ (cp_parser_braced_list): Likewise for return type. Generate
+ suitable locations.
+ (cp_parser_lookup_name): Likewise for return type. Use cp_expr's
+ ctor to preserve the location_t of the name.
+ (cp_parser_simple_cast_expression): Likewise for return type.
+ (cp_parser_functional_cast): Convert return type and local "cast"
+ to cp_expr. Generate suitable locations.
+ (cp_parser_objc_expression): Convert return type to cp_expr.k Generate
+ (cp_parser_objc_message_expression): Generate suitable locations.
+ (cp_parser_objc_encode_expression): Convert return type to
+ cp_expr. Generate suitable locations.
+ (cp_parser_objc_protocol_expression): Generate suitable locations.
+ (cp_parser_objc_selector_expression): Generate suitable locations.
+ (cp_parser_omp_for_cond): Attempt to use the location
+ of "cond" for the binary op.
+ (cp_parser_transaction_expression): Issue the tm-not-enabled error
+ at the location of the __transaction_foo token, rather than at
+ input_location.
+ * semantics.c (finish_parenthesized_expr): Convert return type and
+ param to cp_expr. Preserve location.
+ (perform_koenig_lookup): Likewise for return type
+ and param.
+ (finish_increment_expr): Likewise. Generate suitable locations.
+ (finish_unary_op_expr): Likewise for return type and local "result".
+ Generate suitable locations.
+ (finish_id_expression): Convert return type to cp_expr and use
+ cp_expr ctor to preserve location information.
+ * typeck.c (build_class_member_access_expr): Convert param to
+ cp_expr.
+ (finish_class_member_access_expr): Likewise.
+ (cp_build_binary_op): Convert a build2 to a build2_loc.
+ (build_x_unary_op): Convert param from tree to cp_expr.
+ (build_nop): Preserve the location of EXPR.
+ (build_c_cast): Provide an overloaded variant that takes a cp_expr
+ and returns a cp_expr.
+ (build_x_modify_expr): Convert return type from tree to cp_expr.
+
+2015-12-03 Cesar Philippidis <cesar@codesourcery.com>
+
+ * parser.c (cp_ensure_no_oacc_routine): Update error message.
+ (cp_parser_oacc_routine): Likewise.
+ (cp_parser_late_parsing_oacc_routine): Likewise. Update comment
+ describing this function.
+ (cp_finalize_oacc_routine): Update error message.
+
+2015-12-02 Jason Merrill <jason@redhat.com>
+
+ * Make-lang.in (check-c++1z, check-c++-all): New.
+
+2015-12-02 Markus Trippelsdorf <markus@trippelsdorf.de>
+
+ PR c++/67337
+ * mangle.c (write_template_prefix): Guard against context==NULL.
+
+2015-12-02 Jason Merrill <jason@redhat.com>
+
+ * call.c (build_new_op_1): Don't fold arguments to
+ warn_logical_operator or maybe_warn_bool_compare.
+
+ * cp-gimplify.c (cp_fold_maybe_rvalue, cp_fold_rvalue): New.
+ (c_fully_fold): Use cp_fold_rvalue.
+ (cp_fold): Use them for rvalue operands.
+
+ * cp-gimplify.c (c_fully_fold): Define.
+
+ * cp-gimplify.c (cp_fold): Use fold_build*.
+
+2015-12-02 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/68162
+ * tree.c (c_build_qualified_type): Add extra arguments.
+
+2015-12-02 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR c++/68290
+ * constraint.cc (make_constrained_auto): Move to...
+ * pt.c (make_auto_1): Add set_canonical parameter and set
+ TYPE_CANONICAL on the type only if it is true.
+ (make_decltype_auto): Adjust call to make_auto_1.
+ (make_auto): Likewise.
+ (splice_late_return_type): Likewise.
+ (make_constrained_auto): ...here. Call make_auto_1 instead of
+ make_auto and pass false. Set TYPE_CANONICAL directly.
+
+2015-12-02 Thomas Schwinge <thomas@codesourcery.com>
+
+ * parser.c (cp_parser_omp_clause_name)
+ (cp_parser_oacc_all_clauses): Alphabetical sorting.
+ * pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_USE_DEVICE.
+
+2015-12-02 Andreas Arnez <arnez@linux.vnet.ibm.com>
+
+ PR gcov-profile/68603
+ * cp-gimplify.c (genericize_cp_loop): For the back-jump's location
+ use the start of the loop body only if the loop is unconditional.
+
+2015-11-26 Andreas Arnez <arnez@linux.vnet.ibm.com>
+
+ * cp-gimplify.c (genericize_cp_loop): Change LOOP_EXPR's location
+ to start of loop body instead of start of loop.
+
+2015-12-01 Julian Brown <julian@codesourcery.com>
+ Cesar Philippidis <cesar@codesourcery.com>
+ James Norris <James_Norris@mentor.com>
+
+ * cp-tree.h (finish_oacc_host_data): Add prototype.
+ * parser.c (cp_parser_omp_clause_name): Add use_device support.
+ (cp_parser_oacc_all_clauses): Add use_device support.
+ (OACC_HOST_DATA_CLAUSE_MASK): New macro.
+ (cp_parser_oacc_host_data): New function.
+ (cp_parser_omp_construct): Add host_data support.
+ (cp_parser_pragma): Add host_data support.
+ * semantics.c (finish_omp_clauses): Add use_device support.
+ (finish_oacc_host_data): New function.
+
+2015-11-27 Martin Liska <mliska@suse.cz>
+
+ PR c++/68312
+ * cp-array-notation.c (expand_sec_reduce_builtin):
+ Likewise.
+ (create_array_refs): Replace argument with const reference.
+ (expand_an_in_modify_expr): Likewise.
+ (cp_expand_cond_array_notations): Likewise.
+ (expand_unary_array_notation_exprs): Likewise.
+
+2015-11-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/63326
+ * parser.c (cp_parser_statement): Clear in_compound after labels.
+
+2015-11-27 Martin Liska <mliska@suse.cz>
+
+ * parser.c (cp_parser_late_parsing_cilk_simd_fn_info):
+ Release tokens.
+
+2015-11-26 Andreas Arnez <arnez@linux.vnet.ibm.com>
+
+ * cp-gimplify.c (genericize_cp_loop): Change LOOP_EXPR's location
+ to start of loop body instead of start of loop.
+
+2015-11-26 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/68508
+ * cp-tree.h (cp_ubsan_maybe_instrument_downcast): Add INTYPE argument.
+ * cp-ubsan.c (cp_ubsan_maybe_instrument_downcast): Likewise. Use
+ it instead of or in addition to TREE_TYPE (op). Use
+ is_properly_derived_from, return NULL_TREE if TREE_TYPE (intype) and
+ TREE_TYPE (type) are the same type minus qualifiers.
+ * typeck.c (build_static_cast_1): Adjust callers.
+
+2015-11-25 Martin Sebor <msebor@redhat.com>
+
+ PR c++/67876
+ * pt.c (convert_template_argument): Make sure number of tree
+ operands is greater than zero before attempting to extract one.
+
+2015-11-25 Ryan Burn <contact@rnburn.com>
+
+ PR c++/68434
+ * pt.c (tsubst): Set PLACEHOLDER_TYPE_CONSTRAINTS before
+ calling canonical_type_parameter.
+
+2015-11-25 Jason Merrill <jason@redhat.com>
+
+ * lambda.c (maybe_add_lambda_conv_op): Only set
+ no_sanitize_undefined if SANITIZE_NULL.
+
+ PR c++/67941
+ * lambda.c (maybe_add_lambda_conv_op): Mark _FUN as
+ no_sanitize_undefined.
+
+ * cp-ubsan.c (cp_ubsan_instrument_vptr_p): Use
+ do_ubsan_in_current_function.
+
+2015-11-25 Markus Trippelsdorf <markus@trippelsdorf.de>
+ Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/68087
+ * constexpr.c (cxx_eval_array_reference): Use tree_fits_shwi_p before
+ tree_to_shwi to avoid ICEs.
+
+2015-11-24 Ilya Verbin <ilya.verbin@intel.com>
+
+ * parser.c (cp_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING"
+ with "if (ENABLE_OFFLOADING)".
+
+2015-11-23 Igor Zamyatin <igor.zamyatin@intel.com>
+
+ PR c++/68001
+ * cp-gimplify.c (cp_gimplify_expr): Stop the process if see an error.
+
+2015-11-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/67354
+ * cp-tree.h (defer_mangling_aliases): Declare.
+ (generate_mangling_aliases): New prototype.
+ * decl2.c (defer_mangling_aliases): New variable.
+ (note_mangling_alias): Use !defer_mangling_aliases
+ instead of at_eof.
+ (generate_mangling_aliases): No longer static. Clear
+ defer_mangling_aliases.
+ * optimize.c (maybe_thunk_body): Defer emitting mangling aliases
+ if !defer_mangling_aliases until the fns are put into the same
+ comdat group.
+
+2015-11-19 David Malcolm <dmalcolm@redhat.com>
+
+ * cp-tree.h (lookup_member_fuzzy): New decl.
+ * search.c: Include spellcheck.h.
+ (class lookup_field_fuzzy_info): New class.
+ (lookup_field_fuzzy_info::fuzzy_lookup_fnfields): New.
+ (lookup_field_fuzzy_info::fuzzy_lookup_field): New.
+ (lookup_field_fuzzy_r): New.
+ (lookup_member_fuzzy): New.
+ * typeck.c (finish_class_member_access_expr): When issuing
+ a "has no member named" error, call lookup_member_fuzzy, and
+ offer any result as a suggestion.
+
+2015-11-19 Torvald Riegel <triegel@redhat.com>
+
+ * except.c (do_free_exception): Use transactional wrapper.
+
+2015-11-19 Jason Merrill <jason@redhat.com>
+
+ PR c++/68422
+ * cp-tree.h (PACK_EXPANSION_SIZEOF_P): New.
+ * parser.c (cp_parser_sizeof_pack): Set it.
+ * pt.c (tsubst_copy) [SIZEOF_EXPR]: Likewise.
+ (tsubst_pack_expansion): Improve T... shortcut for expression packs.
+
+2015-11-19 Ryan Burn <contact@rnburn.com>
+
+ PR c++/68396
+ * pt.c (find_parameter_packs_r) [DECLTYPE_TYPE]: When traversing
+ the DECLTYPE_TYPE_EXPR, set type_pack_expansion_p to false.
+
+2015-11-19 Jakub Jelinek <jakub@redhat.com>
+ Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR c++/67409
+ * decl.c (identify_goto): Add LOC and DIAG_KIND arguments, call
+ emit_diagnostic instead of permerror.
+ (check_previous_goto_1): Adjust identify_goto callers, treat all
+ cases but crossing initialization and entering scope of decl with
+ non-trivial dtor as unconditional hard errors.
+ (check_goto): Use identify_goto. Treat all cases but crossing
+ initialization and entering scope of decl with non-trivial dtor
+ as unconditional hard errors.
+
+2015-11-19 Cesar Philippidis <cesar@codesourcery.com>
+
+ * parser.h (struct cp_omp_declare_simd_data): Add clauses member.
+ (struct cp_parser): Change type the of oacc_routine to
+ cp_omp_declare_simd_data.
+ * parser.c (cp_ensure_no_oacc_routine): Rework to use
+ cp_omp_declare_simd_data.
+ (cp_parser_simple_declaration): Remove boolean first. Update call to
+ cp_parser_init_declarator. Don't NULL out oacc_routine.
+ (cp_parser_init_declarator): Remove boolean first parameter. Update
+ calls to cp_finalize_oacc_routine.
+ (cp_parser_late_return_type_opt): Handle acc routines.
+ (cp_parser_member_declaration): Remove first variable. Handle
+ acc routines like omp declare simd.
+ (cp_parser_function_definition_from_specifiers_and_declarator): Update
+ call to cp_finalize_oacc_routine.
+ (cp_parser_single_declaration): Update call to
+ cp_parser_init_declarator.
+ (cp_parser_save_member_function_body): Remove first_decl parameter.
+ Update call to cp_finalize_oacc_routine.
+ (cp_parser_finish_oacc_routine): Delete.
+ (cp_parser_oacc_routine): Rework to use cp_omp_declare_simd_data.
+ (cp_parser_late_parsing_oacc_routine): New function.
+ (cp_finalize_oacc_routine): Remove first argument. Add more error
+ handling and set the acc routine and 'omp declare target' attributes.
+ (cp_parser_pragma): Remove unnecessary call to
+ cp_ensure_no_oacc_routine.
+
+2015-11-17 Cesar Philippidis <cesar@codesourcery.com>
+
+ * cp-gimplify.c (cp_fold_r): Add support for OACC_LOOP.
+
+2015-11-17 Jason Merrill <jason@redhat.com>
+
+ PR bootstrap/68346
+ * typeck.c (build_static_cast_1): Force a NOP when converting to
+ the same type.
+
+ * cp-tree.h (LITERAL_ZERO_P): Remove.
+ * parser.c (cp_parser_postfix_expression, literal_zeros)
+ (cp_parser_parenthesized_expression_list): Don't mess with it.
+
+ * parser.c (cp_parser_unary_expression): Fold -constant here.
+ * typeck.c (cp_build_unary_op): Not here.
+
+ PR bootstrap/68361
+ * cvt.c (cp_convert_and_check): Use warning_sentinel to suppress
+ -Wparentheses.
+
+2015-11-16 Jason Merrill <jason@redhat.com>
+
+ * constexpr.c (cxx_eval_builtin_function_call): Use cp_fully_fold
+ to fold arguments to __builtin_constant_p.
+
+2015-11-16 Kirill Yukhin <kirill.yukhin@intel.com>
+
+ * parser.c (cp_parser_late_parsing_cilk_simd_fn_info): Look for
+ "simd" attribute as well. Update error message.
+
+2015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
+
+ * parser.c (cp_parser_omp_declare_target): Adjust.
+
+2015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
+
+ * vtable-class-hierarchy.c (vtv_generate_init_routine): Adjust.
+
+2015-11-14 Jason Merrill <jason@redhat.com>
+
+ PR bootstrap/68346
+ * call.c (build_new_op_1): Don't fold arguments to
+ warn_tautological_cmp.
+
+2015-11-14 Jakub Jelinek <jakub@redhat.com>
+
+ * semantics.c (finish_omp_clauses): Don't mark
+ GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable.
+
+2015-11-13 Kai Tietz <ktietz70@googlemail.com>
+ Marek Polacek <polacek@redhat.com>
+ Jason Merrill <jason@redhat.com>
+
+ * call.c (build_conditional_expr_1, convert_like_real)
+ (convert_arg_to_ellipsis, convert_for_arg_passing): Don't fold.
+ (build_new_op_1, build_over_call, build_cxx_call): Fold for warnings.
+ * class.c (build_base_path, determine_primary_bases)
+ (update_vtable_entry_for_fn, check_bitfield_decl)
+ (layout_nonempty_base_or_field, layout_empty_base)
+ (propagate_binfo_offsets, include_empty_classes)
+ (layout_class_type, build_vbase_offset_vtbl_entries): Use
+ fold_convert.
+ * constexpr.c (cxx_eval_builtin_function_call): Fold away the NOP_EXPR.
+ (cxx_eval_call_expression): Handle MEM_REF.
+ (cxx_eval_pointer_plus_expression): Fold the second operand.
+ (cxx_eval_constant_expression): Handle MEM_REF, UNARY_PLUS_EXPR.
+ (fold_simple_1, fold_simple): New.
+ (maybe_constant_value_1): Factor out from maybe_constant_value.
+ (cv_cache, maybe_constant_value): Cache results.
+ (maybe_constant_init): Handle null input.
+ (potential_constant_expression_1): Handle RESULT_DECL, EMPTY_CLASS_EXPR.
+ * cp-array-notation.c (build_array_notation_ref): Fold operands.
+ * cp-gimplify.c (cp_fold_r, cp_fold): New.
+ (cp_genericize_r): Use fold_convert. Don't fold SIZEOF_EXPR.
+ (cp_genericize): Fold everything.
+ (contains_label_1, contains_label_p): New.
+ (cp_fold, cp_fully_fold): New.
+ * cp-tree.h (class cache_map): New.
+ * cvt.c (cp_convert_to_pointer, ocp_convert): Use convert_to_*_nofold.
+ (cp_convert_and_check): Use cp_fully_fold.
+ (convert, convert_force): Don't fold.
+ * decl.c (fold_sizeof_expr): Change from fold_sizeof_expr_r.
+ (compute_array_index_type): Use cp_fully_fold.
+ (build_enumerator): Use fold_convert.
+ * decl2.c (get_guard_cond, set_guard): Use fold_convert.
+ * init.c (build_zero_init_1): Fold zero-initializers.
+ (build_new_1): Fold nelts calculations.
+ (build_vec_delete_1): Fold conversions.
+ (build_vec_init): Fold maxindex.
+ * parser.c (cp_parser_binary_expression): Fold LHS of || and &&.
+ (cp_parser_question_colon_clause): Fold LHS.
+ * pt.c (convert_nontype_argument): Fold nullptr conversion.
+ * semantics.c (finish_unary_op_expr): Fold for warnings.
+ (handle_omp_array_sections_1): Fold length and low bound.
+ (handle_omp_for_class_iterator): Fold various things.
+ * tree.c (builtin_valid_in_constant_expr_p): Add
+ BUILT_IN_ATOMIC_ALWAYS_LOCK_FREE.
+ (convert_bitfield_to_declared_type): Don't fold.
+ (handle_init_priority_attribute): Fold.
+ (fold_if_not_in_template): Remove.
+ * typeck.c (decay_conversion, build_class_member_access_expr)
+ (build_simple_component_ref, cp_build_array_ref, build_vec_cmp)
+ (cp_pointer_int_sum, pointer_diff): Don't fold.
+ (cp_build_binary_op): Fold for warnings and PMF ops.
+ (cp_build_unary_op): Fold negation of a constant, nothing else.
+ (expand_ptrmemfunc_cst): Fold operations.
+ * typeck2.c (split_nonconstant_init): Fold initializer.
+ (store_init_value): Likewise.
+ (check_narrowing): Try folding.
+ * config-lang.in (gtfiles): Add cp-gimplify.c.
+
+2015-11-13 David Malcolm <dmalcolm@redhat.com>
+
+ * error.c (pedwarn_cxx98): Pass line_table to rich_location ctor.
+
+2015-11-12 James Norris <jnorris@codesourcery.com>
+
+ * parser.c (cp_parser_oacc_declare): Remove unused.
+
+2015-11-12 James Norris <jnorris@codesourcery.com>
+ Joseph Myers <joseph@codesourcery.com>
+
+ * parser.c (cp_parser_omp_clause_name): Handle 'device_resident'
+ clause.
+ (cp_parser_oacc_data_clause): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
+ and PRAGMA_OMP_CLAUSE_LINK.
+ (cp_paser_oacc_all_clauses): Handle PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT
+ and PRAGMA_OMP_CLAUSE_LINK.
+ (OACC_DECLARE_CLAUSE_MASK): New definition.
+ (cp_parser_oacc_declare): New function.
+ (cp_parser_pragma): Handle PRAGMA_OACC_DECLARE.
+ * pt.c (tsubst_expr): Handle OACC_DECLARE.
+
+2015-11-12 Jason Merrill <jason@redhat.com>
+
+ * pt.c (check_explicit_specialization): Check the namespace after
+ we choose a template.
+
+2015-11-11 Jason Merrill <jason@redhat.com>
+
+ * decl.c (duplicate_decls): When combining typedefs, remove the
+ new type from the variants list.
+
+2015-11-11 Jason Merrill <jason@redhat.com>
+
+ * pt.c (instantiate_class_template_1): Set function_depth around
+ instantiation of lambda op().
+
+2015-11-11 Marek Polacek <polacek@redhat.com>
+
+ PR c/68107
+ PR c++/68266
+ * decl.c (grokdeclarator): Call valid_array_size_p. Remove code
+ checking the size of an array.
+
+2015-11-11 Dominique d'Humieres <dominiq@lps.ens.fr>
+
+ PR bootstrap/68271
+ * parser.h (cp_token): Update pragma_kind to 8.
+
+2015-11-11 Andrew MacLeod <amacleod@redhat.com>
+
+ * call.c: Remove unused header files.
+ * class.c: Likewise.
+ * constexpr.c: Likewise.
+ * cp-array-notation.c: Likewise.
+ * cp-cilkplus.c: Likewise.
+ * cp-gimplify.c: Likewise.
+ * cp-lang.c: Likewise.
+ * cp-objcp-common.c: Likewise.
+ * cp-ubsan.c: Likewise.
+ * cvt.c: Likewise.
+ * cxx-pretty-print.c: Likewise.
+ * decl.c: Likewise.
+ * decl2.c: Likewise.
+ * dump.c: Likewise.
+ * error.c: Likewise.
+ * except.c: Likewise.
+ * expr.c: Likewise.
+ * friend.c: Likewise.
+ * g++spec.c: Likewise.
+ * init.c: Likewise.
+ * lambda.c: Likewise.
+ * lex.c: Likewise.
+ * mangle.c: Likewise.
+ * method.c: Likewise.
+ * name-lookup.c: Likewise.
+ * optimize.c: Likewise.
+ * parser.c: Likewise.
+ * pt.c: Likewise.
+ * ptree.c: Likewise.
+ * repo.c: Likewise.
+ * rtti.c: Likewise.
+ * search.c: Likewise.
+ * semantics.c: Likewise.
+ * tree.c: Likewise.
+ * typeck.c: Likewise.
+ * typeck2.c: Likewise.
+ * vtable-class-hierarchy.c: Likewise.
+
+2015-11-09 Cesar Philippidis <cesar@codesourcery.com>
+
+ * parser.c (cp_finalize_oacc_routine): New boolean first argument.
+ (cp_ensure_no_oacc_routine): Update call to cp_finalize_oacc_routine.
+ (cp_parser_simple_declaration): Maintain a boolean first to keep track
+ of each new declarator. Propagate it to cp_parser_init_declarator.
+ (cp_parser_init_declarator): New boolean first argument. Propagate it
+ to cp_parser_save_member_function_body and cp_finalize_oacc_routine.
+ (cp_parser_member_declaration): Likewise.
+ (cp_parser_single_declaration): Update call to
+ cp_parser_init_declarator.
+ (cp_parser_save_member_function_body): New boolean first_decl argument.
+ Propagate it to cp_finalize_oacc_routine.
+ (cp_parser_finish_oacc_routine): New boolean first argument. Use it to
+ determine if multiple declarators follow a routine construct.
+ (cp_parser_oacc_routine): Update call to cp_parser_finish_oacc_routine.
+
+2015-10-19 Martin Sebor <msebor@redhat.com>
+
+ PR c++/67913
+ PR c++/67927
+ * call.c (build_operator_new_call): Do not assume size_check
+ is non-null, analogously to the top half of the function.
+ * init.c (build_new_1): Detect and diagnose array sizes in
+ excess of the maximum of roughly SIZE_MAX / 2.
+ Insert a runtime check only for arrays with a non-constant size.
+ (build_new): Detect and diagnose negative array sizes.
+
+2015-11-09 Thomas Schwinge <thomas@codesourcery.com>
+ Cesar Philippidis <cesar@codesourcery.com>
+ James Norris <jnorris@codesourcery.com>
+ Julian Brown <julian@codesourcery.com>
+ Nathan Sidwell <nathan@codesourcery.com>
+
+ * parser.h (struct cp_parser): Add oacc_routine field.
+ * parser.c (cp_ensure_no_oacc_routine): New.
+ (cp_parser_new): Initialize oacc_routine field.
+ (cp_parser_linkage_specification): Call cp_ensure_no_oacc_routine.
+ (cp_parser_namespace_definition,
+ cp_parser_class_specifier_1): Likewise.
+ (cp_parser_init_declarator): Call cp_finalize_oacc_routine.
+ (cp_parser_function_definition,
+ cp_parser_save_member_function_body): Likewise.
+ (OACC_ROUTINE_CLAUSE_MASK): New.
+ (cp_parser_finish_oacc_routine, cp_parser_oacc_routine,
+ cp_finalize_oacc_routine): New.
+ (cp_parser_pragma): Adjust omp_declare_simd checking. Call
+ cp_ensure_no_oacc_routine.
+ (cp_parser_pragma): Add OpenACC routine handling.
+
+2015-11-08 Martin Sebor <msebor@redhat.com>
+
+ PR c++/67942
+ * cp/init.c (warn_placement_new_too_small): Convert integer
+ operand of POINTER_PLUS_EXPR to ssize_t to determine its signed
+ value.
+
+2015-11-06 David Malcolm <dmalcolm@redhat.com>
+
+ * error.c (cp_printer): Update for new "caret_p" param for
+ textinfo::set_location.
+ (pedwarn_cxx98): Update for change in signature of
+ diagnostic_set_info.
+
+2015-11-06 Jason Merrill <jason@redhat.com>
+
+ Support non-type constrained-type-specifiers.
+ * parser.c (check_type_concept): Remove.
+ (cp_parser_maybe_constrained_type_specifier): Don't call it.
+ (synthesize_implicit_template_parm): Handle non-type and template
+ template parameters. Also compare extra args. Return the decl.
+ (cp_parser_template_argument): Handle constrained-type-specifiers for
+ non-type template parameters.
+ (finish_constrained_template_template_parm): Split out from
+ cp_parser_constrained_template_template_parm.
+ (cp_parser_nonclass_name): Move some logic into
+ cp_parser_maybe_concept_name.
+ (cp_parser_init_declarator): Fix error recovery.
+ (get_concept_from_constraint): Remove.
+ (cp_parser_simple_type_specifier): Adjust for
+ synthesize_implicit_template_parm returning the decl.
+ * constraint.cc (placeholder_extract_concept_and_args)
+ (equivalent_placeholder_constraints): Also handle TYPE_DECL
+ constrained parms.
+
+ * pt.c (push_inline_template_parms_recursive): Don't recreate the
+ CONST_DECL.
+
+2015-11-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * init.c (warn_placement_new_too_small): Use %wu format
+ rather than %lu when printing bytes_avail.
+
+2015-11-05 Cesar Philippidis <cesar@codesourcery.com>
+ Thomas Schwinge <thomas@codesourcery.com>
+ James Norris <jnorris@codesourcery.com>
+
+ * parser.c (cp_parser_omp_clause_name): Add support for
+ PRAGMA_OACC_CLAUSE_INDEPENDENT and PRAGMA_OACC_CLAUSE_TILE.
+ (cp_parser_oacc_shape_clause): Allow pointer variables as gang static
+ arguments.
+ (cp_parser_oacc_clause_tile): New function.
+ (cp_parser_omp_clause_default): Add is_oacc argument. Handle
+ default(none) in OpenACC.
+ (cp_parser_oacc_all_clauses): Add support for
+ (cp_parser_omp_all_clauses): Update call to
+ cp_parser_omp_clause_default.
+ PRAGMA_OACC_CLAUSE_{DEFAULT,INDEPENDENT,TILE,PRIVATE,FIRSTPRIVATE}.
+ (OACC_LOOP_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_{PRIVATE,INDEPENDENT,
+ TILE}.
+ (OACC_KERNELS_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.
+ (OACC_PARALLEL_MASK): Add PRAGMA_OACC_CLAUSE_{DEFAULT,PRIVATE,
+ FIRSTPRIVATE}.
+ (cp_parser_oacc_update): Update the error message for missing clauses.
+ * semantics.c (finish_omp_clauses): Add support for
+ OMP_CLAUSE_INDEPENDENT and OMP_CLAUSE_TILE.
+
+2015-11-05 Martin Sebor <msebor@redhat.com>
+
+ PR c++/67942
+ * cp/init.c (warn_placement_new_too_small): Avoid assuming
+ the size of the first operand of placement new or its type
+ is known.
+
+2015-11-05 Martin Sebor <msebor@redhat.com>
+
+ PR c++/67942
+ * cp/init.c (warn_placement_new_too_small): New function.
+ (build_new_1): Call it.
+
+2015-11-05 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/67846
+ * parser.c (cp_parser_lambda_body): Check lambda_return_type
+ return value.
+ * typeck2.c (cxx_incomplete_type_diagnostic): Print member or
+ member function used invalidly.
+
+2015-11-05 Jakub Jelinek <jakub@redhat.com>
+ Ilya Verbin <ilya.verbin@intel.com>
+
+ * cp-tree.h (finish_omp_for): Add ORIG_INITS argument.
+ (omp_privatize_field): Add SHARED argument.
+ * parser.c: Include context.h.
+ (cp_parser_omp_clause_schedule): Parse schedule
+ modifiers, diagnose monotonic together with nonmonotonic.
+ (cp_parser_omp_clause_linear): Add DECLARE_SIMD argument. Parse
+ parameter name as linear step as id-expression rather than expression.
+ (cp_parser_omp_all_clauses): Adjust caller.
+ (cp_parser_omp_for_loop_init): Add ORIG_INIT argument,
+ initialize it. Adjust omp_privatize_field caller.
+ (cp_parser_omp_for_loop): Compute orig_inits, pass it's address
+ to finish_omp_for.
+ (OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
+ (cp_parser_omp_target_data,
+ cp_parser_omp_target_enter_data,
+ cp_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER
+ and GOMP_MAP_FIRSTPRIVATE_REFERENCE.
+ (cp_parser_omp_target): Likewise. Evaluate num_teams and
+ thread_limit expressions on combined target teams before the target.
+ (cp_parser_omp_declare_target): If decl has "omp declare target" or
+ "omp declare target link" attribute, and cgraph or varpool node already
+ exists, then set corresponding flags. Call finish_omp_clauses
+ in the parenthesized extended-list syntax case. Call
+ cp_parser_require_pragma_eol instead of cp_parser_skip_to_pragma_eol.
+ (cp_parser_omp_end_declare_target): Call cp_parser_require_pragma_eol
+ instead of cp_parser_skip_to_pragma_eol.
+ * decl2.c (cplus_decl_attributes): Don't diagnose block scope vars
+ inside declare target.
+ * pt.c (tsubst_omp_clauses): If OMP_CLAUSE_LINEAR_VARIABLE_STRIDE,
+ use tsubst_omp_clause_decl instead of tsubst_expr on
+ OMP_CLAUSE_LINEAR_STEP. Handle non-static data members in shared
+ clauses.
+ (tsubst_omp_for_iterator): Adjust omp_privatize_field caller.
+ (tsubst_find_omp_teams): New function.
+ (tsubst_expr): Evaluate num_teams and thread_limit expressions on
+ combined target teams before the target. Use OMP_FOR_ORIG_DECLS for
+ all OpenMP/OpenACC/Cilk+ looping constructs. Adjust finish_omp_for
+ caller.
+ * semantics.c (omp_privatize_field): Add SHARED argument, if true,
+ always create artificial var and never put it into the hash table
+ or vector.
+ (handle_omp_array_sections_1): Adjust omp_privatize_field caller.
+ Allow non-zero low-bound on OMP_CLAUSE_REDUCTION array sections.
+ (handle_omp_array_sections): For structure element
+ based array sections use GOMP_MAP_ALWAYS_POINTER instead of
+ GOMP_MAP_FIRSTPRIVATE_POINTER. Encode low-bound into the MEM_REF,
+ either into the constant offset, or for variable low-bound using
+ POINTER_PLUS_EXPR.
+ (finish_omp_clauses): Adjust omp_privatize_field caller. Drop
+ generic_field_head, structure elements are now always mapped even
+ as array section bases, diagnose same var in data sharing and
+ mapping clauses. For references map what they refer to using
+ GOMP_MAP_ALWAYS_POINTER for structure elements and
+ GOMP_MAP_FIRSTPRIVATE_REFERENCE otherwise. Diagnose if linear step
+ on declare simd is neither a constant nor a uniform parameter.
+ Allow non-static data members on shared clauses. Look through
+ POINTER_PLUS_EXPR for array section reductions. Diagnose nonmonotonic
+ modifier on kinds other than dynamic or guided or nonmonotonic
+ modifier together with ordered clause. Diagnose the same var or
+ function appearing multiple times on the same directive. Fix up
+ wording for the to clause if t is neither a FUNCTION_DECL nor a
+ VAR_DECL, use special wording for OVERLOADs and TEMPLATE_ID_EXPR.
+ (handle_omp_for_class_iterator): Add ORIG_DECLS argument. Call
+ c_omp_check_loop_iv_exprs on cond.
+ (finish_omp_for): Add ORIG_INITS argument. Call
+ c_omp_check_loop_iv_exprs on ORIG_INITS elements. Adjust
+ handle_omp_for_class_iterator caller. Call c_omp_check_loop_iv.
+ Call add_stmt.
+ (finish_omp_atomic): Adjust c_finish_omp_atomic caller.
+
+2015-11-04 Cesar Philippidis <cesar@codesourcery.com>
+
+ * (cp_parser_oacc_single_int_clause): New function.
+ (cp_parser_oacc_clause_vector_length): Delete.
+ (cp_parser_omp_clause_num_gangs): Delete.
+ (cp_parser_omp_clause_num_workers): Delete.
+ (cp_parser_oacc_all_clauses): Use cp_parser_oacc_single_int_clause
+ for num_gangs, num_workers and vector_length.
+
+2015-11-04 Mikhail Maltsev <maltsevm@gmail.com>
+
+ * call.c (validate_conversion_obstack): Define unconditionally.
+ * constexpr.c (maybe_constant_value, fold_non_dependent_expr): Use
+ gcc_checking_assert.
+ * cp-tree.h: Use CHECKING_P instead of ENABLE_CHECKING.
+ * decl2.c (cxx_post_compilation_parsing_cleanups): Use flag_checking.
+ * mangle.c (add_substitution): Likewise.
+ * method.c (maybe_explain_implicit_delete): Likewise.
+ * parser.c (cp_parser_template_argument_list): Remove conditional
+ compilation.
+ * pt.c (check_unstripped_args): Rename to...
+ (verify_unstripped_args): ... this and remove conditional compilation.
+ (retrieve_specialization): Guard call of verify_unstripped_args with
+ flag_checking.
+ (template_parm_to_arg): Remove conditional compilation.
+ (template_parms_to_args, coerce_template_parameter_pack,
+ coerce_template_parms): Likewise.
+ (tsubst_copy): Use flag_checking.
+ (type_unification_real): Remove conditional compilation.
+ (build_non_dependent_expr): Use flag_checking.
+ * tree.c (build_target_expr): Remove conditional compilation, use
+ gcc_checking_assert.
+ * typeck.c (comptypes): Likewise.
+ * typeck2.c (digest_init_r): Likewise.
+
+2015-11-03 Jason Merrill <jason@redhat.com>
+
+ * pt.c (struct find_parameter_pack_data): Add
+ type_pack_expansion_p field.
+ (find_parameter_packs_r): Use it to turn 'auto' into a parameter pack.
+ (uses_parameter_packs, make_pack_expansion)
+ (check_for_bare_parameter_packs, fixed_parameter_pack_p): Set it.
+
+2015-11-03 Thomas Schwinge <thomas@codesourcery.com>
+ Chung-Lin Tang <cltang@codesourcery.com>
+
+ * parser.c (cp_parser_omp_construct, cp_parser_pragma): Handle
+ PRAGMA_OACC_ATOMIC.
+
+2015-10-31 Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ Remove the implementation of N3994, terse range-for loops.
+ * parser.c (cp_parser_for_init_statement): Remove the parsing
+ of a terse range-for.
+
+2015-10-31 Jason Merrill <jason@redhat.com>
+
+ Implement multiple 'auto' feature from Concepts TS.
+ * parser.c (cp_parser_type_id_1): Allow 'auto' if -fconcepts.
+ (cp_parser_template_type_arg): Likewise.
+ (get_concept_from_constraint): Split out most logic to...
+ * constraint.cc (placeholder_extract_concept_and_args): ...here.
+ (equivalent_placeholder_constraints, hash_placeholder_constraint): New.
+ * cxx-pretty-print.c (pp_cxx_constrained_type_spec): New.
+ * cxx-pretty-print.h: Declare it.
+ * error.c (dump_type) [TEMPLATE_TYPE_PARM]: Call it.
+ * pt.c (is_auto_r, extract_autos_r, extract_autos, auto_hash): New.
+ (type_uses_auto): Use is_auto_r.
+ (do_auto_deduction): Handle multiple 'auto's if -fconcepts.
+ * typeck.c (structural_comptypes) [TEMPLATE_TYPE_PARM]: Compare
+ constraints.
+
+ * pt.c (for_each_template_parm_r): Use WALK_SUBTREE.
+ Return a meaningful value rather than error_mark_node.
+ (for_each_template_parm): Return a tree.
+ (uses_template_parms_level): Return bool.
+ * cp-tree.h: Adjust.
+
+ * pt.c (unify): Don't diagnose no common base if we already have
+ the same template.
+ (do_auto_deduction): Explain deduction failure.
+
+ * pt.c (hash_tmpl_and_args): Use iterative_hash_object on template
+ uid.
+
+ * parser.c (synthesize_implicit_template_parm)
+ (finish_fully_implicit_template): Make static.
+
+2015-10-29 Andrew MacLeod <amacleod@redhat.com>
+
+ * call.c: Reorder #include's and remove duplicates.
+ * class.c: Likewise.
+ * constexpr.c: Likewise.
+ * cp-array-notation.c: Likewise.
+ * cp-cilkplus.c: Likewise.
+ * cp-gimplify.c: Likewise.
+ * cp-lang.c: Likewise.
+ * cp-objcp-common.c: Likewise.
+ * cp-ubsan.c: Likewise.
+ * cvt.c: Likewise.
+ * cxx-pretty-print.c: Likewise.
+ * decl.c: Likewise.
+ * decl2.c: Likewise.
+ * dump.c: Likewise.
+ * error.c: Likewise.
+ * except.c: Likewise.
+ * expr.c: Likewise.
+ * friend.c: Likewise.
+ * init.c: Likewise.
+ * lambda.c: Likewise.
+ * lex.c: Likewise.
+ * mangle.c: Likewise.
+ * method.c: Likewise.
+ * name-lookup.c: Likewise.
+ * optimize.c: Likewise.
+ * parser.c: Likewise.
+ * pt.c: Likewise.
+ * ptree.c: Likewise.
+ * repo.c: Likewise.
+ * rtti.c: Likewise.
+ * search.c: Likewise.
+ * semantics.c: Likewise.
+ * tree.c: Likewise.
+ * typeck.c: Likewise.
+ * typeck2.c: Likewise.
+ * vtable-class-hierarchy.c: Likewise.
+
+2015-10-29 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/67845
+ * decl.c (grokfndecl): In case of erroneous cv-qualified non-member
+ functions consistently reset TREE_TYPE (decl) too.
+
+2015-10-28 Jason Merrill <jason@redhat.com>
+
+ DR 1518
+ * class.c (type_has_user_provided_or_explicit_constructor): New.
+ (check_bases_and_members): Use it.
+ * cp-tree.h: Declare it.
+
+2015-10-27 Cesar Philippidis <cesar@codesourcery.com>
+ Thomas Schwinge <thomas@codesourcery.com>
+ James Norris <jnorris@codesourcery.com>
+ Joseph Myers <joseph@codesourcery.com>
+ Julian Brown <julian@codesourcery.com>
+ Nathan Sidwell <nathan@codesourcery.com>
+ Bernd Schmidt <bschmidt@redhat.com>
+
+ * parser.c (cp_parser_omp_clause_name): Add auto, gang, seq,
+ vector, worker.
+ (cp_parser_oacc_simple_clause): New.
+ (cp_parser_oacc_shape_clause): New.
+ (cp_parser_oacc_all_clauses): Add auto, gang, seq, vector, worker.
+ (OACC_LOOP_CLAUSE_MASK): Likewise.
+ * semantics.c (finish_omp_clauses): Add auto, gang, seq, vector,
+ worker. Unify the handling of teams, tasks and vector_length with
+ the other loop shape clauses.
+
+2015-10-27 Thomas Schwinge <thomas@codesourcery.com>
+ James Norris <jnorris@codesourcery.com>
+ Cesar Philippidis <cesar@codesourcery.com>
+
+ PR c/64765
+ PR c/64880
+ * cp-tree.h (finish_oacc_kernels, finish_oacc_parallel): Don't
+ declare functions.
+ (finish_omp_construct): Declare function.
+ * parser.c (cp_parser_oacc_loop): Add p_name, mask, cclauses
+ formal parameters, and handle these. Adjust all users.
+ (cp_parser_oacc_kernels, cp_parser_oacc_parallel): Merge functions
+ into...
+ (cp_parser_oacc_kernels_parallel): ... this new function. Adjust
+ all users.
+ * semantics.c (finish_oacc_kernels, finish_oacc_parallel): Merge functions into...
+ (finish_omp_construct): ... this new function.
+
+2015-10-25 Jason Merrill <jason@redhat.com>
+
+ DR 2179
+ * pt.c (process_partial_specialization): Handle error_mark_node
+ from most_specialized_partial_spec.
+
+2015-10-23 Jason Merrill <jason@redhat.com>
+
+ DR 1518
+ DR 1630
+ PR c++/54835
+ PR c++/60417
+ * call.c (convert_like_real): Value-initialization can't use
+ explicit constructors in C++11 and up.
+
+ PR c++/67813
+ * constexpr.c (cxx_eval_store_expression): Always use *valp if
+ set.
+
+2015-10-22 Jason Merrill <jason@redhat.com>
+
+ * call.c (add_template_conv_candidate): Pass DEDUCE_CALL.
+ (add_template_candidate_real): Handle it.
+ * pt.c (fn_type_unification): Handle it.
+
+ * call.c (add_conv_candidate): Remove first_arg parm.
+ (add_template_conv_candidate): Likewise.
+ (add_template_candidate_real): Don't pass it.
+ (build_op_call_1): Likewise.
+
+2015-10-22 Richard Biener <rguenther@suse.de>
+
+ * semantics.c (cp_finish_omp_clause_depend_sink): Properly convert
+ before folding a MINUS_EXPR.
+ (finish_omp_clauses): Likewise.
+
+2015-10-21 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/66781
+ * parser.c (cp_parser_enum_specifier): Upon error_at set
+ nested_name_specifier to error_mark_node; improve error message.
+
+2015-10-21 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/67847
+ * parser.c (cp_parser_enum_specifier): Reject a nested_name_specifier
+ which doesn't name a class or namespace.
+
+2015-10-21 Ilya Enkovich <enkovich.gnu@gmail.com>
+
+ * call.c (build_conditional_expr_1): Use boolean vector
+ type for vector comparison.
+ * typeck.c (build_vec_cmp): New.
+ (cp_build_binary_op): Use build_vec_cmp for comparison.
+
+2015-10-20 Jason Merrill <jason@redhat.com>
+
+ PR c++/66583
+ * init.c (innermost_aggr_scope): New.
+ (build_field_list): Change uses_unions_p to uses_unions_or_anon_p.
+ (sort_mem_initializers): Handle initializers for entire anonymous
+ aggregates.
+
+2015-10-20 Marek Polacek <polacek@redhat.com>
+
+ * parser.c (is_cilkplus_vector_p): Don't define here.
+
+2015-10-19 Jason Merrill <jason@redhat.com>
+
+ PR c++/67064
+ * semantics.c (force_paren_expr): Don't mess with hard register vars.
+
+ Implement N4268, Do constant evaluation of all non-type template args.
+ * parser.c (cp_parser_template_argument): For C++1z just parse a
+ constant-expression.
+ * pt.c (convert_nontype_argument): For C++1z always call
+ maybe_constant_value.
+
+ * constexpr.c (cxx_eval_constant_expression): Expand PTRMEM_CST
+ only when necessary.
+ (cxx_eval_component_reference): Like here.
+ * decl2.c (lower_var_init): And here.
+ (c_parse_final_cleanups): Call it.
+ * typeck2.c (digest_init_r): Not here.
+ * decl.c (complete_vars): Or here.
+ (cp_finish_decl): Add local statics to symbol table.
+
+2015-10-17 Jason Merrill <jason@redhat.com>
+
+ PR c++/68006
+ * decl.c (implicit_default_ctor_p): New.
+ (start_preparsed_function): Don't clobber on entry to one.
+
+2015-10-16 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/67926
+ * constexpr.c (potential_constant_expression_1): Handle
+ UNARY_LEFT_FOLD_EXPR, UNARY_RIGHT_FOLD_EXPR, BINARY_LEFT_FOLD_EXPR,
+ BINARY_RIGHT_FOLD_EXPR.
+
+2015-10-13 Jakub Jelinek <jakub@redhat.com>
+ Aldy Hernandez <aldyh@redhat.com>
+
+ * class.c (finish_struct_1): Call finish_omp_declare_simd_methods.
+ * cp-gimplify.c (cp_gimplify_expr): Handle OMP_TASKLOOP.
+ (cp_genericize_r): Likewise.
+ (cxx_omp_finish_clause): Don't diagnose references.
+ (cxx_omp_disregard_value_expr): New function.
+ * cp-objcp-common.h (LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR): Redefine.
+ * cp-tree.h (OMP_FOR_GIMPLIFYING_P): Document for OMP_TASKLOOP.
+ (DECL_OMP_PRIVATIZED_MEMBER): Define.
+ (finish_omp_declare_simd_methods, push_omp_privatization_clauses,
+ pop_omp_privatization_clauses, save_omp_privatization_clauses,
+ restore_omp_privatization_clauses, omp_privatize_field,
+ cxx_omp_disregard_value_expr): New prototypes.
+ (finish_omp_clauses): Add two new arguments.
+ (finish_omp_for): Add ORIG_DECLV argument.
+ * parser.c (cp_parser_lambda_body): Call
+ save_omp_privatization_clauses and restore_omp_privatization_clauses.
+ (cp_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
+ (cp_parser_omp_var_list_no_open): Handle structure elements for
+ map, to and from clauses. Handle array sections in reduction
+ clause. Parse this keyword. Formatting fixes.
+ (cp_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
+ if clause modifiers.
+ (cp_parser_omp_clause_num_tasks, cp_parser_omp_clause_grainsize,
+ cp_parser_omp_clause_priority, cp_parser_omp_clause_hint,
+ cp_parser_omp_clause_defaultmap): New functions.
+ (cp_parser_omp_clause_ordered): Parse optional parameter.
+ (cp_parser_omp_clause_reduction): Handle array reductions.
+ (cp_parser_omp_clause_schedule): Parse optional simd modifier.
+ (cp_parser_omp_clause_nogroup, cp_parser_omp_clause_orderedkind):
+ New functions.
+ (cp_parser_omp_clause_linear): Parse linear clause modifiers.
+ (cp_parser_omp_clause_depend_sink): New function.
+ (cp_parser_omp_clause_depend): Parse source/sink depend kinds.
+ (cp_parser_omp_clause_map): Parse release/delete map kinds and
+ optional always modifier.
+ (cp_parser_oacc_all_clauses): Adjust cp_parser_omp_clause_if
+ and finish_omp_clauses callers.
+ (cp_parser_omp_all_clauses): Likewise. Parse OpenMP 4.5 clauses.
+ Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
+ (OMP_CRITICAL_CLAUSE_MASK): Define.
+ (cp_parser_omp_critical): Parse critical clauses.
+ (cp_parser_omp_for_incr): Use cp_tree_equal if
+ processing_template_decl.
+ (cp_parser_omp_for_loop_init): Return tree instead of bool. Handle
+ non-static data member iterators.
+ (cp_parser_omp_for_loop): Handle doacross loops, adjust
+ finish_omp_for and finish_omp_clauses callers.
+ (cp_omp_split_clauses): Adjust finish_omp_clauses caller.
+ (OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
+ (cp_parser_omp_simd): Allow ordered clause if it has no parameter.
+ (OMP_FOR_CLAUSE_MASK): Add linear clause.
+ (cp_parser_omp_for): Disallow ordered clause when combined with
+ distribute. Disallow linear clause when combined with distribute
+ and not combined with simd.
+ (OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define.
+ (cp_parser_omp_ordered): Add CONTEXT argument, return bool instead
+ of tree, parse clauses and if depend clause is found, don't parse
+ a body.
+ (cp_parser_omp_parallel): Disallow copyin clause on target parallel.
+ Allow target parallel without for after it.
+ (OMP_TASK_CLAUSE_MASK): Add priority clause.
+ (OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
+ (cp_parser_omp_target_data): Diagnose no map clauses or clauses with
+ invalid kinds.
+ (OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
+ (OMP_TARGET_ENTER_DATA_CLAUSE_MASK,
+ OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define.
+ (cp_parser_omp_target_enter_data, cp_parser_omp_target_exit_data): New
+ functions.
+ (OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
+ defaultmap and is_device_ptr clauses.
+ (cp_parser_omp_target): Parse target parallel and target simd. Set
+ OMP_TARGET_COMBINED on combined constructs. Parse target enter data
+ and target exit data. Diagnose invalid map kinds.
+ (cp_parser_oacc_cache): Adjust finish_omp_clauses caller.
+ (OMP_DECLARE_TARGET_CLAUSE_MASK): Define.
+ (cp_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
+ construct.
+ (OMP_TASKLOOP_CLAUSE_MASK): Define.
+ (cp_parser_omp_taskloop): New function.
+ (cp_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
+ handle PRAGMA_OMP_TASKLOOP.
+ (cp_parser_pragma): Handle PRAGMA_OMP_ORDERED here directly,
+ handle PRAGMA_OMP_TASKLOOP, call push_omp_privatization_clauses
+ and pop_omp_privatization_clauses around parsing calls.
+ (cp_parser_cilk_for): Adjust finish_omp_clauses caller.
+ * pt.c (apply_late_template_attributes): Adjust tsubst_omp_clauses
+ and finish_omp_clauses callers.
+ (tsubst_omp_clause_decl): Return NULL if decl is NULL.
+ For TREE_LIST, copy over OMP_CLAUSE_DEPEND_SINK_NEGATIVE bit.
+ Use tsubst_expr instead of tsubst_copy, undo convert_from_reference
+ effects.
+ (tsubst_omp_clauses): Add ALLOW_FIELDS argument. Handle new
+ OpenMP 4.5 clauses. Use tsubst_omp_clause_decl for more clauses.
+ If ALLOW_FIELDS, handle non-static data members in the clauses.
+ Clear OMP_CLAUSE_LINEAR_STEP if it has been cleared before.
+ (omp_parallel_combined_clauses): New variable.
+ (tsubst_omp_for_iterator): Add ORIG_DECLV argument, recur on
+ OMP_FOR_ORIG_DECLS, handle non-static data member iterators.
+ Improve handling of clauses on combined constructs.
+ (tsubst_expr): Call push_omp_privatization_clauses and
+ pop_omp_privatization_clauses around instantiation of certain
+ OpenMP constructs, improve handling of clauses on combined
+ constructs, handle OMP_TASKLOOP, adjust tsubst_omp_for_iterator,
+ tsubst_omp_clauses and finish_omp_for callers, handle clauses on
+ critical and ordered, handle OMP_TARGET_{ENTER,EXIT}_DATA.
+ (instantiate_decl): Call save_omp_privatization_clauses and
+ restore_omp_privatization_clauses around instantiation.
+ (dependent_omp_for_p): Fix up comment typo. Handle SCOPE_REF.
+ * semantics.c (omp_private_member_map, omp_private_member_vec,
+ omp_private_member_ignore_next): New variables.
+ (finish_non_static_data_member): Return dummy decl for privatized
+ non-static data members.
+ (omp_clause_decl_field, omp_clause_printable_decl,
+ omp_note_field_privatization, omp_privatize_field): New functions.
+ (handle_omp_array_sections_1): Fix comment typo.
+ Add IS_OMP argument, handle structure element bases, diagnose
+ bitfields, pass IS_OMP recursively, diagnose known zero length
+ array sections in depend clauses, handle array sections in reduction
+ clause, diagnose negative length even for pointers.
+ (handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
+ types, pass IS_OMP down to handle_omp_array_sections_1, handle
+ array sections in reduction clause, set
+ OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero
+ length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
+ (finish_omp_reduction_clause): Handle array sections and arrays.
+ Use omp_clause_printable_decl.
+ (finish_omp_declare_simd_methods, cp_finish_omp_clause_depend_sink):
+ New functions.
+ (finish_omp_clauses): Add ALLOW_FIELDS and DECLARE_SIMD arguments.
+ Handle new OpenMP 4.5 clauses and new restrictions for the old
+ ones, handle non-static data members, reject this keyword when not
+ allowed.
+ (push_omp_privatization_clauses, pop_omp_privatization_clauses,
+ save_omp_privatization_clauses, restore_omp_privatization_clauses):
+ New functions.
+ (handle_omp_for_class_iterator): Handle OMP_TASKLOOP class iterators.
+ Add collapse and ordered arguments. Fix handling of lastprivate
+ iterators in doacross loops.
+ (finish_omp_for): Add ORIG_DECLV argument, handle doacross loops,
+ adjust c_finish_omp_for, handle_omp_for_class_iterator and
+ finish_omp_clauses callers. Fill in OMP_CLAUSE_LINEAR_STEP on simd
+ loops with non-static data member iterators.
+
+2015-10-12 Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ PR c++/58566
+ * lambda.c (lambda_return_type): Return error_mark_node
+ instead of void_type_node for the error cases.
+
+2015-10-08 Jason Merrill <jason@redhat.com>
+
+ * cp-tree.h (SIMPLE_TARGET_EXPR_P): New.
+ * init.c (get_nsdmi): Use it.
+ * typeck2.c (massage_init_elt): Use it.
+
+2015-10-07 Jason Merrill <jason@redhat.com>
+
+ PR c++/67557
+ * call.c (is_base_field_ref): New.
+ (unsafe_copy_elision_p): New.
+ (build_over_call): Use it.
+
+2015-10-07 Marek Polacek <polacek@redhat.com>
+
+ PR sanitizer/67867
+ * search.c (accessible_p): Initialize OTYPE to NULL_TREE.
+
+2015-10-07 Marek Polacek <polacek@redhat.com>
+
+ * cp-gimplify.c (genericize_if_stmt): Use protected_set_expr_location.
+ (genericize_cp_loop): Likewise.
+ * decl.c (cxx_maybe_build_cleanup): Likewise.
+ * parser.c (cp_parser_binary_expression): Likewise.
+ (cp_parser_omp_for_loop): Likewise.
+ (cp_parser_omp_construct): Likewise.
+ * semantics.c (finish_transaction_stmt): Likewise.
+ (build_transaction_expr): Likewise.
+
+2015-10-06 Jason Merrill <jason@redhat.com>
+
+ PR c++/67810
+ * parser.c (cp_parser_fold_expr_p): Remove.
+ (is_binary_op): New.
+ (cp_parser_fold_expression): Take LHS as parameter.
+ (cp_parser_primary_expression): Call it after parsing an expression.
+ (cp_parser_binary_expression, cp_parser_assignment_operator_opt)
+ (cp_parser_expression): Ignore an operator followed by '...'.
+ (is_binary_op): New.
+ * pt.c (tsubst_unary_left_fold, tsubst_binary_left_fold)
+ (tsubst_unary_right_fold, tsubst_binary_right_fold): Handle errors.
+
+2015-10-06 Marek Polacek <polacek@redhat.com>
+
+ PR c++/67863
+ * call.c (build_conditional_expr_1): Build the COND_EXPR with
+ a location.
+
+2015-10-05 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/53856
+ * pt.c (check_default_tmpl_args): Per [temp.param]/9, do not
+ reject default template arguments in out of class definitions
+ of members of non-template classes.
+
+2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
+
+ * tree.c (cp_tree_equal): Use real_equal instead of
+ REAL_VALUES_EQUAL.
+
+2015-10-04 Jason Merrill <jason@redhat.com>
+
+ Implement N4514, C++ Extensions for Transactional Memory.
+ * cp-tree.h (struct cp_declarator): Add tx_qualifier field.
+ (BCS_NORMAL, BCS_TRANSACTION): New enumerators.
+ * lex.c (init_reswords): Limit TM kewords to -fgnu-tm.
+ * parser.c (cp_lexer_get_preprocessor_token): Fix @synchronized.
+ (make_call_declarator): Take tx_qualifier.
+ (cp_parser_tx_qualifier_opt): New.
+ (cp_parser_lambda_declarator_opt): Use it.
+ (cp_parser_direct_declarator): Likewise.
+ (cp_parser_statement): Handle atomic_noexcept, atomic_cancel.
+ (cp_parser_compound_statement): Change in_try parameter to bcs_flags.
+ (cp_parser_std_attribute): Map optimize_for_synchronized to
+ transaction_callable.
+ (cp_parser_transaction): Take the token. Handle atomic_noexcept.
+ * lambda.c (maybe_add_lambda_conv_op): Handle transaction-safety.
+ * call.c (enum conversion_kind): Add ck_tsafe.
+ (standard_conversion): Handle transaction-safety conversion.
+ (convert_like_real, resolve_address_of_overloaded_function): Likewise.
+ (check_methods): Diagnose transaction_safe_dynamic on non-virtual
+ function.
+ (look_for_tm_attr_overrides): Don't inherit transaction_safe_dynamic.
+ * cvt.c (tx_safe_fn_type_p, tx_unsafe_fn_variant)
+ (can_convert_tx_safety): New.
+ * typeck.c (composite_pointer_type): Handle transaction-safety.
+ * name-lookup.h (enum scope_kind): Add sk_transaction.
+ * name-lookup.c (begin_scope): Handle it.
+ * semantics.c (begin_compound_stmt): Pass it.
+ * decl.c (check_previous_goto_1): Check it.
+ (struct named_label_entry): Add in_transaction_scope.
+ (poplevel_named_label_1): Set it.
+ (check_goto): Check it.
+ (duplicate_decls): A specialization can be transaction_safe
+ independently of its template.
+ (grokdeclarator): Handle tx-qualifier.
+ * rtti.c (ptr_initializer): Handle transaction-safe.
+ * search.c (check_final_overrider): Check transaction_safe_dynamic.
+ Don't check transaction_safe.
+ * mangle.c (write_function_type): Mangle transaction_safe here.
+ (write_CV_qualifiers_for_type): Not here.
+ (write_type): Preserve transaction_safe when stripping attributes.
+ * error.c (dump_type_suffix): Print transaction_safe.
+
+2015-10-02 Marek Polacek <polacek@redhat.com>
+
+ PR c/64249
+ * parser.c (cp_parser_statement): Add CHAIN parameter and pass it
+ down to cp_parser_selection_statement.
+ (cp_parser_selection_statement): Add CHAIN parameter. Add code to
+ warn about duplicated if-else-if conditions.
+ (cp_parser_implicitly_scoped_statement): Add CHAIN parameter and pass
+ it down to cp_parser_statement.
+
+2015-10-01 Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ PR c++/54430
+ * name-lookup.c (push_binding): Make non-static.
+ * name-lookup.h (push_binding): Declare it.
+ * parser.c (cp_parser_range_for): Use it, get the range
+ declaration away from the scope until the range expression
+ has been parsed, then restore the declaration.
+
+2015-09-23 Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ Fix small typos in the coding rule enforcement warnings.
+ * parser.c (cp_parser_namespace_definition): Replace 'namepace'
+ with 'namespace'.
+
+2015-09-22 Nathan Sidwell <nathan@codesourcery.com>
+
+ * decl.c (xref_basetypes): Check virtual and/or multiple
+ inheritance warning.
+ * parser.c (cp_parser_namespace_definition): Check namespaces
+ warning.
+ * pt.c (push_template_decl_real): Check templates warning.
+
+2015-09-22 Jason Merrill <jason@redhat.com>
+
+ * mangle.c (abi_warn_or_compat_version_crosses): New.
+ Use it instead of abi_version_crosses.
+ (mangle_decl): Deal with -fabi-compat-version and -Wabi separately.
+
+2015-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ Complete the implementation of N4230, Nested namespace definition.
+ * parser.c (cp_parser_namespace_definition): Support namespace
+ attributes both before and after the namespace identifier.
+
+2015-09-19 Trevor Saunders <tbsaunde@tbsaunde.org>
+
+ * cp-gimplify.c (gimplify_must_not_throw_expr): Adjust.
+
+2015-09-18 Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ Implement nested namespace definitions.
+ * parser.c (cp_parser_namespace_definition): Grok nested namespace
+ definitions.
+
+2015-09-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ * parser.c (pragma_lex): Add loc argument. Rearrange the code to
+ make it more similar to the C version.
+
+2015-09-17 Andrew Sutton <andrew.n.sutton@gmail.com>
+ Jason Merrill <jason@redhat.com>
+
+ Implement N4295 fold-expressions.
+ * cp-tree.def: Add UNARY_LEFT_FOLD_EXPR, UNARY_RIGHT_FOLD_EXPR,
+ BINARY_LEFT_FOLD_EXPR, BINARY_RIGHT_FOLD_EXPR.
+ * cp-objcp-common.c (cp_common_init_ts): Handle them.
+ * cp-tree.h (FOLD_EXPR_CHECK, BINARY_FOLD_EXPR_CHECK, FOLD_EXPR_P)
+ (FOLD_EXPR_MODIFY_P, FOLD_EXPR_OP, FOLD_EXPR_PACK, FOLD_EXPR_INIT): New.
+ * parser.c (cp_parser_skip_to_closing_parenthesis): Split out...
+ (cp_parser_skip_to_closing_parenthesis_1): This function. Change
+ or_comma parameter to or_ttype.
+ (cp_parser_fold_operator, cp_parser_fold_expr_p)
+ (cp_parser_fold_expression): New.
+ (cp_parser_primary_expression): Use them.
+ * pt.c (expand_empty_fold, fold_expression, tsubst_fold_expr_pack)
+ (tsubst_fold_expr_init, expand_left_fold, tsubst_unary_left_fold)
+ (tsubst_binary_left_fold, expand_right_fold)
+ (tsubst_unary_right_fold, tsubst_binary_right_fold): New.
+ (tsubst_copy): Use them.
+ (type_dependent_expression_p): Handle fold-expressions.
+ * semantics.c (finish_unary_fold_expr)
+ (finish_left_unary_fold_expr, finish_right_unary_fold_expr)
+ (finish_binary_fold_expr): New.
+
+2015-09-17 Richard Biener <rguenther@suse.de>
+
+ * cp-tree.h (note_decl_for_pch): Remove.
+ * class.c (build_clone): Do not call note_decl_for_pch.
+ * semantics.c (finish_member_declaration): Likewise.
+ (note_decl_for_pch): Remove.
+ * decl2.c (c_parse_final_cleanups): Mangle all globals before
+ writing the PCH.
+
+2015-09-14 Jason Merrill <jason@redhat.com>
+
+ PR c++/44282
+ * mangle.c (write_CV_qualifiers_for_type): Also warn about regparm
+ mangling with lower -fabi-version.
+
+2015-09-14 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/51911
+ * parser.c (cp_parser_new_expression): Enforce 5.3.4/2 (as amended
+ per the spirit of DR 1467).
+
+2015-09-11 Mark Wielaard <mjw@redhat.com>
+
+ PR c/28901
+ * cp-objcp-common.c (cxx_warn_unused_global_decl): Remove hard-coded
+ VAR_P TREE_READONLY override.
+
+2015-09-10 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/67318
+ * parser.c (cp_parser_parameter_declaration): Consume the ellipsis
+ and set template_parameter_pack_p also when the type is null.
+
+2015-09-09 Mark Wielaard <mjw@redhat.com>
+
+ * typeck.c (cp_build_binary_op): Check and warn when nonnull arg
+ parm against NULL.
+
+2015-09-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/67522
+ * semantics.c (handle_omp_array_sections_1): Only run
+ type_dependent_expression_p on VAR_DECL/PARM_DECLs.
+ (finish_omp_clauses) <case OMP_CLAUSE_LINEAR>: Likewise.
+ Don't adjust OMP_CLAUSE_LINEAR_STEP if OMP_CLAUSE_DECL
+ is not a VAR_DECL/PARM_DECL.
+
+ PR c++/67511
+ * semantics.c (handle_omp_for_class_iterator): Don't wrap
+ error_mark_node into a NOP_EXPR to void_type_node.
+
+2015-09-09 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/53184
+ * decl2.c (constrain_class_visibility): Use Wsubobject-linkage.
+
+2015-09-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/67504
+ * parser.c (cp_parser_omp_clause_collapse): Test tree_fits_shwi_p
+ before INTEGRAL_TYPE_P test.
+
+2015-09-08 Jason Merrill <jason@redhat.com>
+
+ PR c++/67041
+ * pt.c (tsubst_copy_and_build): Handle variables like functions.
+
+2015-09-08 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/67369
+ * pt.c (tsubst_copy, [case FUNCTION_DECL]): Do not call tsubst
+ if the first argument isn't a template.
+
+2015-09-03 Martin Sebor <msebor@redhat.com>
+
+ PR c/66516
+ * cp-tree.h (mark_rvalue_use, decay_conversion): Add new
+ argument(s).
+ * expr.c (mark_rvalue_use): Use new argument.
+ * call.c (build_addr_func): Call decay_conversion with new
+ argument.
+ * pt.c (convert_template_argument): Call reject_gcc_builtin.
+ * typeck.c (decay_conversion): Use new argument.
+ (c_decl_implicit): Define.
+
+2015-09-02 Balaji V. Iyer <balaji.v.iyer@intel.com>
+
+ PR middle-end/60586
+ * cp-gimplify.c (cilk_cp_gimplify_call_params_in_spawned_fn): New
+ function.
+ (cp_gimplify_expr): Added a call to the function
+ cilk_cp_gimplify_call_params_in_spawned_fn.
+
+2015-09-01 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/61753
+ * decl.c (smallest_type_quals_location): New.
+ (check_special_function_return_type): Use the latter; add int and
+ const location_t* parameters.
+ (grokdeclarator): Adjust check_special_function_return_type call.
+
+2015-08-29 Markus Trippelsdorf <markus@trippelsdorf.de>
+
+ PR c++/67371
+ * constexpr.c (potential_constant_expression_1): Remove IF_STMT
+ case. Move label to COND_EXPR case. Remove checking of
+ SWITCH_STMT_BODY.
+
+2015-08-22 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/63693
+ * pt.c (resolve_typename_type): Use CLASSTYPE_PRIMARY_TEMPLATE_TYPE
+ only on class types.
+
+2015-08-21 Jason Merrill <jason@redhat.com>
+
+ PR c++/67240
+ * constraint.cc (satisfy_implicit_conversion_constraint): Also
+ check for NULL_TREE.
+
+2015-08-21 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * decl.c (grokvardecl): Simplify the latter.
+
+2015-08-21 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * decl.c (grokvardecl): Complete check added for c++/67065.
+
+2015-08-20 Jason Merrill <jason@redhat.com>
+
+ * name-lookup.c (hidden_name_p): Handle OVERLOAD.
+
+2015-08-20 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/67065
+ * decl.c (grokvardecl): Reject 'main' as global variable.
+
+2015-08-19 Jason Merrill <jason@redhat.com>
+
+ PR c++/66957
+ * search.c (protected_accessible_p): Remove redundant access_in_type.
+ Add otype parm instead of walking binfo.
+ (friend_accessible_p): Check SCOPE itself. Handle class
+ templates. Pass through otype.
+ (dfs_accessible_post): Handle all accessibility cases.
+ (dfs_accessible_pre): New.
+ (accessible_p): Use it. Don't check protected access here. Pass
+ decl and otype to dfs_walk.
+ (member_declared_in_type, dfs_access_in_type_pre): New.
+ (access_in_type): Use dfs_access_in_type_pre.
+ * friend.c (add_friend): Fix multiple friends with the same name.
+
+ * lambda.c (current_nonlambda_scope): New.
+
+2015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org>
+
+ * call.c, class.c, cp-tree.h, decl.c, except.c, mangle.c,
+ method.c, name-lookup.h, parser.c, parser.h, rtti.c,
+ semantics.c, typeck2.c: Remove useless typedefs.
+
+2015-08-18 Jason Merrill <jason@redhat.com>
+
+ DR 1155
+ * pt.c (convert_nontype_argument): Allow internal linkage in C++11
+ and up.
+
+2015-08-17 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/67216
+ * call.c (null_ptr_cst_p): In C++11 return 'false' for 'false'.
+
+2015-08-17 Jason Merrill <jason@redhat.com>
+
+ PR c++/67244
+ * pt.c (tsubst_copy_and_build): Call insert_pending_capture_proxies.
+
+ PR c++/67104
+ * constexpr.c (array_index_cmp, find_array_ctor_elt): New.
+ (cxx_eval_array_reference, cxx_eval_store_expression): Use them.
+
+ * constexpr.c (cxx_eval_store_expression): Don't set
+ CONSTRUCTOR_NO_IMPLICIT_ZERO if we have an enclosing CONSTRUCTOR
+ without it.
+ (cxx_eval_array_reference): Check it.
+
+ * except.c (check_noexcept_r): Assert that fn is POINTER_TYPE_P.
+
+2015-08-14 Jason Merrill <jason@redhat.com>
+
+ PR c++/65974
+ * decl2.c (mark_vtable_entries): Suppress -Wdeprecated.
+
+2015-08-12 Jason Merrill <jason@redhat.com>
+
+ PR c++/67104
+ * constexpr.c (cxx_eval_array_reference): Fix typo.
+
+ PR c++/67104
+ * constexpr.c (cxx_eval_array_reference): Handle sparse
+ CONSTRUCTORs.
+
+ PR c++/67108
+ * decl2.c (c_parse_final_cleanups): Set at_eof to 2 at end.
+ * error.c (dump_template_bindings): Don't tsubst in that case.
+
+ PR c++/67161
+ * error.c (dump_decl) [TEMPLATE_ID_EXPR]: Pass
+ TFF_NO_OMIT_DEFAULT_TEMPLATE_ARGUMENTS.
+
+2015-08-08 Jason Merrill <jason@redhat.com>
+
+ PR c++/67152
+ * pt.c (process_partial_specialization): Call
+ associate_classtype_constraints.
+
+ PR c++/67159
+ * constraint.cc (finish_template_introduction):
+ SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT.
+
+ PR c++/67142
+ * pt.c (equal): Make sure tmpl is actually a template.
+
+ PR c++/67144
+ * call.c (joust): Only call more_constrained on decls.
+
+2015-08-06 Andrew Sutton <andrew.n.sutton@gmail.com>
+ Braden Obrzut <admin@maniacsvault.net>
+ Jason Merrill <jason@redhat.com>
+ Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ Add C++ Concepts TS support.
+ * constraint.cc, logic.cc: New files.
+ * Make-lang.in (CXX_AND_OBJCXX_OBJS): Add constraint.o and logic.o.
+ (c++.tags): Also process .cc files.
+ * call.c (enum rejection_reason_code): Add rr_constraint_failure.
+ (print_z_candidate): Handle it.
+ (constraint_failure): New.
+ (add_function_candidate): Check constraints.
+ (build_new_function_call): Handle evaluating concepts.
+ (joust): Check more_constrained.
+ * class.c (add_method): Check equivalently_constrained.
+ (build_clone): Copy constraints.
+ (currently_open_class): Return tree.
+ (resolve_address_of_overloaded_function): Check constraints.
+ * constexpr.c (cxx_eval_constant_expression): Handle REQUIRES_EXPR.
+ (potential_constant_expression_1): Likewise.
+ * cp-objcp-common.c (cp_tree_size): Handle CONSTRAINT_INFO.
+ (cp_common_init_ts): Handle WILDCARD_DECL and REQUIRES_EXPR.
+ * cp-tree.def: Add CONSTRAINT_INFO, WILDCARD_DECL, REQUIRES_EXPR,
+ SIMPLE_REQ, TYPE_REQ, COMPOUND_REQ, NESTED_REQ, PRED_CONSTR,
+ EXPR_CONSTR, TYPE_CONSTR, ICONV_CONSTR, DEDUCT_CONSTR,
+ EXCEPT_CONSTR, PARM_CONSTR, CONJ_CONSTR, DISJ_CONSTR.
+ * cp-tree.h (struct tree_constraint_info, check_nonnull)
+ (check_constraint_info, CI_TEMPLATE_REQS, CI_DECLARATOR_REQS)
+ (CI_ASSOCIATED_CONSTRAINTS, CI_NORMALIZED_CONSTRAINTS)
+ (CI_ASSUMPTIONS, TEMPLATE_PARMS_CONSTRAINTS)
+ (TEMPLATE_PARM_CONSTRAINTS, COMPOUND_REQ_NOEXCEPT_P)
+ (PLACEHOLDER_TYPE_CONSTRAINTS, PRED_CONSTR_EXPR, EXPR_CONSTR_EXPR)
+ (TYPE_CONSTR_TYPE, ICONV_CONSTR_EXPR, ICONV_CONSTR_TYPE)
+ (DEDUCT_CONSTR_EXPR, DEDUCT_CONSTR_PATTERN)
+ (DEDUCT_CONSTR_PLACEHOLDER, EXCEPT_CONSTR_EXPR, PARM_CONSTR_PARMS)
+ (PARM_CONSTR_OPERAND, CONSTRAINT_VAR_P, CONSTRAINED_PARM_CONCEPT)
+ (CONSTRAINED_PARM_EXTRA_ARGS, CONSTRAINED_PARM_PROTOTYPE)
+ (DECL_DECLARED_CONCEPT_P, WILDCARD_PACK_P, struct cp_unevaluated)
+ (struct local_specialization_stack, enum auto_deduction_context)
+ (variable_concept_p, concept_template_p)
+ (struct deferring_access_check_sentinel): New.
+ (enum cp_tree_node_structure_enum): Add TS_CP_CONSTRAINT_INFO.
+ (union lang_tree_node): Add constraint_info field.
+ (struct lang_decl_base): Add concept_p flag.
+ (enum cp_decl_spec): Add ds_concept.
+ (struct cp_declarator): Add requires_clause.
+ * cxx-pretty-print.c (cxx_pretty_printer::primary_expression)
+ (cxx_pretty_printer::expression): Handle REQUIRES_EXPR,
+ TRAIT_EXPR, *_CONSTR.
+ (pp_cxx_parameter_declaration_clause): Accept a chain of
+ PARM_DECLs.
+ (cxx_pretty_printer::declarator): Print requires-clause.
+ (pp_cxx_template_declaration): Likewise.
+ (pp_cxx_trait_expression): Handle CPTK_IS_SAME_AS.
+ (pp_cxx_requires_clause, pp_cxx_requirement)
+ (pp_cxx_requirement_list, pp_cxx_requirement_body)
+ (pp_cxx_requires_expr, pp_cxx_simple_requirement)
+ (pp_cxx_type_requirement, pp_cxx_compound_requirement)
+ (pp_cxx_nested_requirement, pp_cxx_predicate_constraint)
+ (pp_cxx_expression_constraint, pp_cxx_type_constraint)
+ (pp_cxx_implicit_conversion_constraint)
+ (pp_cxx_argument_deduction_constraint)
+ (pp_cxx_exception_constraint, pp_cxx_parameterized_constraint)
+ (pp_cxx_conjunction, pp_cxx_disjunction, pp_cxx_constraint): New.
+ * cxx-pretty-print.h: Declare them.
+ * decl.c (decls_match): Compare constraints.
+ (duplicate_decls): Likewise. Remove constraints before freeing.
+ (cxx_init_decl_processing): Call init_constraint_processing.
+ (cp_finish_decl): Diagnose concept without initializer.
+ (grokfndecl, grokvardecl): Handle concepts and constraints.
+ (grokdeclarator): Handle concept, requires-clause.
+ (grokparms): No longer static.
+ (xref_tag_1): Check constraints.
+ (finish_function): Call check_function_concept.
+ (cp_tree_node_structure): Handle CONSTRAINT_INFO.
+ (check_concept_refinement, is_concept_var, check_concept_fn): New.
+ * decl2.c (check_classfn): Compare constraints.
+ (mark_used): Don't instantiate concepts.
+ * error.c (dump_template_decl): Print constraints.
+ (dump_function_decl): Likewise.
+ (dump_expr): Handle REQUIRES_EXPR, *_REQ, *_CONSTR.
+ * lex.c (init_reswords): Set D_CXX_CONCEPTS.
+ * method.c (implicitly_declare_fn): Copy constraints from
+ inherited ctor.
+ * parser.h (struct cp_parser): Add in_result_type_constraint_p and
+ prevent_constrained_type_specifiers fields.
+ * parser.c (make_call_declarator): Add requires_clause parm.
+ (cp_parser_new): Clear prevent_constrained_type_specifiers.
+ (cp_parser_primary_expression): Handle RID_IS_SAME_AS, RID_REQUIRES.
+ (cp_parser_postfix_expression): Set prevent_constrained_type_specifiers.
+ (cp_parser_trait_expr): Handle RID_IS_SAME_AS.
+ (cp_parser_declaration): Handle concept introduction.
+ (cp_parser_member_declaration): Likewise.
+ (cp_parser_template_parameter): Handle constrained parameter.
+ (cp_parser_type_parameter): Handle constraints.
+ (cp_parser_decl_specifier_seq): Handle RID_CONCEPT.
+ (cp_parser_template_id): Handle partial concept id.
+ (cp_parser_type_name): Add overload that takes typename_keyword_p.
+ Handle constrained parameter.
+ (cp_parser_nonclass_name): Handle concept names.
+ (cp_parser_alias_declaration): Handle constraints.
+ (cp_parser_late_return_type_opt): Also handle requires-clause.
+ (cp_parser_type_id_1): Handle deduction constraint.
+ (cp_parser_parameter_declaration): Handle constrained parameters.
+ (cp_parser_class_specifier_1): Handle constraints.
+ (cp_parser_template_declaration_after_parameters): Split out from
+ cp_parser_template_declaration_after_export.
+ (cp_parser_single_declaration): Handle constraints.
+ (synthesize_implicit_template_parm): Handle constraints.
+ (cp_parser_maybe_concept_name, cp_parser_maybe_partial_concept_id)
+ (cp_parser_introduction_list, get_id_declarator)
+ (get_unqualified_id, is_constrained_parameter)
+ (cp_parser_check_constrained_type_parm)
+ (cp_parser_constrained_type_template_parm)
+ (cp_parser_constrained_template_template_parm)
+ (constrained_non_type_template_parm, finish_constrained_parameter)
+ (declares_constrained_type_template_parameter)
+ (declares_constrained_template_template_parameter)
+ (check_type_concept, cp_parser_maybe_constrained_type_specifier)
+ (cp_parser_maybe_concept_name, cp_parser_maybe_partial_concept_id)
+ (cp_parser_requires_clause, cp_parser_requires_clause_opt)
+ (cp_parser_requires_expression)
+ (cp_parser_requirement_parameter_list, cp_parser_requirement_body)
+ (cp_parser_requirement_list, cp_parser_requirement)
+ (cp_parser_simple_requirement, cp_parser_type_requirement)
+ (cp_parser_compound_requirement, cp_parser_nested_requirement)
+ (cp_parser_template_introduction)
+ (cp_parser_explicit_template_declaration)
+ (get_concept_from_constraint): New.
+ * pt.c (local_specialization_stack): Implement.
+ (maybe_new_partial_specialization): New.
+ (maybe_process_partial_specialization): Use it.
+ (retrieve_local_specialization, register_local_specialization)
+ (template_parm_to_arg, build_template_decl, extract_fnparm_pack)
+ (tsubst_expr): No longer static.
+ (spec_hasher::equal): Compare constraints.
+ (determine_specialization): Handle constraints.
+ (check_explicit_specialization): Handle concepts.
+ (process_template_parm): Handle constraints.
+ (end_template_parm_list): Add overload taking no arguments.
+ (process_partial_specialization): Handle concepts and constraints.
+ Register partial specializations of variable templates.
+ (redeclare_class_template): Handle constraints.
+ (convert_template_argument): Handle WILDCARD_DECL. Check
+ is_compatible_template_arg.
+ (coerce_template_parameter_pack): Handle wildcard packs.
+ (coerce_template_parms): DR 1430 also applies to concepts. Add
+ overloads taking fewer parameters.
+ (lookup_template_class_1): Handle constraints.
+ (lookup_template_variable): Concepts are always bool.
+ (finish_template_variable): Handle concepts and constraints.
+ (tsubst_friend_class): Handle constraints.
+ (gen_elem_of_pack_expansion_instantiation): Handle constraints.
+ (tsubst_pack_expansion): Handle local parameters.
+ (tsubst_decl) [FUNCTION_DECL]: Handle constraints.
+ (tsubst) [TEMPLATE_TYPE_PARM]: Handle deduction constraints.
+ (tsubst_copy_and_build): Handle REQUIRES_EXPR.
+ (more_specialized_fn, more_specialized_partial_spec): Check constraints.
+ (more_specialized_inst): Split out from most_specialized_instantiation.
+ (most_specialized_partial_spec): Check constraints.
+ (instantiate_decl): Never instantiate a concept.
+ (value_dependent_expression_p): Handle REQUIRES_EXPR, TYPE_REQ,
+ variable concepts.
+ (type_dependent_expression_p): Handle WILDCARD_DECL, REQUIRES_EXPR.
+ (instantiation_dependent_r): Handle REQUIRES_EXPR and concepts.
+ (do_auto_deduction): Add overload taking tsubst flags and context enum.
+ Handle constraints.
+ (get_template_for_ordering, most_constrained_function)
+ (is_compatible_template_arg, convert_wildcard_argument)
+ (struct constr_entry, struct constr_hasher, decl_constraints)
+ (valid_constraints_p, get_constraints, set_constraints)
+ (remove_constraints, init_constraint_processing): New.
+ * ptree.c (cxx_print_xnode): Handle CONSTRAINT_INFO.
+ * search.c (lookup_member): Do lookup in the open partial
+ instantiation.
+ * semantics.c (finish_template_template_parm): Handle constraints.
+ (fixup_template_type): New.
+ (finish_template_type): Call it.
+ (trait_expr_value, finish_trait_expr): Handle CPTK_IS_SAME_AS.
+ * tree.c (cp_tree_equal): Handle local parameters, CONSTRAINT_INFO.
+ (cp_walk_subtrees): Handle REQUIRES_EXPR.
+ * typeck.c (cp_build_function_call_vec): Check constraints.
+
+2015-08-06 Jason Merrill <jason@redhat.com>
+
+ PR c++/66533
+ * parser.c (cp_parser_primary_expression): Don't skip to the end
+ of the statement if we're parsing tentatively.
+
+ PR c++/67130
+ PR c++/67131
+ PR c++/66260
+ * mangle.c (write_expression) [TEMPLATE_ID_EXPR]: Handle variable
+ templates.
+ * pt.c (tsubst_copy_and_build): Check for argument substitution
+ failure.
+
+2015-08-05 Jason Merrill <jason@redhat.com>
+
+ * pt.c (determine_specialization): Print candidates after 'no
+ match' error.
+
+ * decl.c (cp_finish_decl): Tidy.
+ * typeck.c (finish_class_member_access_expr): Use
+ type_dependent_expression_p.
+ * semantics.c (finish_id_expression): Use
+ type_dependent_expression_p. Don't build_qualified_name for a
+ decl in non-dependent scope.
+ * pt.c (type_dependent_expression_p): A TEMPLATE_ID_EXPR of an
+ identifier is dependent. Remove variable_template_p check.
+
+ PR c++/66260
+ PR c++/66596
+ PR c++/66649
+ PR c++/66923
+ * pt.c (lookup_template_variable): Use NULL_TREE for type.
+ (instantiate_template_1): Also set DECL_TI_ARGS based on
+ the immediate parent.
+ (tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: Handle variable templates.
+ (finish_template_variable): Add complain parm.
+ * cp-tree.h: Adjust.
+
+ PR c++/65195
+ PR c++/66619
+ * semantics.c (finish_id_expression): Call convert_from_reference
+ for variable template.
+
+2015-08-04 Jason Merrill <jason@redhat.com>
+
+ * pt.c (lookup_template_class_1): Clear elt.spec.
+
+ * tree.c (build_target_expr): Copy the location from value.
+
+2015-08-02 Patrick Palka <ppalka@gcc.gnu.org>
+
+ * parser.c (cp_parser_selection_statement): Move handling of
+ semicolon body to ...
+ (cp_parser_implicitly_scoped_statement): .. here. Call
+ warn_for_misleading_indentation even when the body is a
+ semicolon. Extract token_indent_infos corresponding to the
+ guard, body and next tokens. Adjust call to
+ warn_for_misleading_indentation accordingly. Take
+ token_indent_info argument.
+ (cp_parser_already_scoped_statement): Likewise.
+ (cp_parser_selection_statement, cp_parser_iteration_statement):
+ Extract a token_indent_info corresponding to the guard token.
+
+2015-08-01 Caroline Tice <cmtice@google.com>
+
+ PR 66521
+ * mangle.c : Add vtable-verify.h to include files.
+ (get_mangled_vtable_map_var_name): If the DECL_ASSEMBLER_NAME
+ is "<anon>" get the real mangled name for the class instead, and
+ also store the real mangled name in a vector for use later.
+
+2015-07-31 Marek Polacek <polacek@redhat.com>
+
+ PR sanitizer/66977
+ * typeck.c (get_member_function_from_ptrfunc): Don't sanitize
+ RSHIFT_EXPR.
+
+2015-07-30 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * class.c (check_for_override): Use DECL_SOURCE_LOCATION and "%qD"
+ in warning_at instead of "%q+D" in warning.
+ (warn_hidden): Likewise but use location_of.
+ (finish_struct_anon_r): Likewise use DECL_SOURCE_LOCATION in permerror.
+ (check_bitfield_decl, check_field_decls): Likewise in warning_at.
+ (check_field_decls): Likewise for permerror.
+ (explain_non_literal_class): Likewise for inform.
+ (check_bases_and_members, layout_class_type): Likewise for warning_at.
+ (note_name_declared_in_class): Use location_of in permerror.
+ * name-lookup.c (diagnose_name_conflict): Use location_of in inform.
+ (pushdecl_maybe_friend_1): Use DECL_SOURCE_LOCATION in pedwarn,
+ inform, and warning_at.
+ (check_for_out_of_scope_variable): Likewise for warning_at and
+ permerror.
+
+2015-07-30 Jason Merrill <jason@redhat.com>
+
+ DR 1558
+ PR c++/67021
+ * pt.c (tsubst_decl) [TYPE_DECL]: Clear TYPE_DEPENDENT_P_VALID.
+
+2015-07-28 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * call.c (build_op_delete_call, convert_like_real, build_over_call):
+ Use Use DECL_SOURCE_LOCATION and "%qD" in inform and pedwarn instead
+ of "%q+D".
+ * constexpr.c (explain_invalid_constexpr_fn): Likewise.
+ * decl.c (duplicate_decls): Likewise for warning/warning_at.
+ * except.c (maybe_noexcept_warning): Likewise.
+ * friend.c (make_friend_class): Likewise for inform.
+ * mangle.c (mangle_decl): Likewise for warning/warning_at.
+ * method.c (process_subob_fn, walk_field_subobs,
+ maybe_explain_implicit_delete): Likewise for inform.
+ * parser.c (cp_parser_lambda_introducer): Likewise.
+ * pt.c (check_specialization_namespace,
+ maybe_process_partial_specialization): Likewise for permerror.
+ (redeclare_class_template): Likewise for inform_n.
+ (coerce_template_parms, tsubst_copy_and_build): Likewise for inform.
+ * search.c (check_final_overrider): Likewise.
+ * semantics.c (process_outer_var_ref): Likewise.
+
+2015-07-27 Jason Merrill <jason@redhat.com>
+
+ * constexpr.c (cxx_eval_call_expression): Don't add this call to
+ the hash table if !depth_ok.
+
+2015-07-27 Marek Polacek <polacek@redhat.com>
+
+ PR c++/66555
+ PR c/54979
+ * call.c (build_new_op_1): Call warn_tautological_cmp.
+ * pt.c (tsubst_copy_and_build): Use sentinel to suppress tautological
+ compare warnings.
+
+2015-07-26 Patrick Palka <ppalka@gcc.gnu.org>
+
+ PR c++/18969
+ * typeck.c (check_return_expr): Also do the basic return-value
+ validity checking if processing_template_decl and yet types are
+ not dependent. Remove obsolete code.
+
+2015-07-26 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * decl.c (poplevel): Use Use DECL_SOURCE_LOCATION and "%qD"
+ in warning_at instead of "%q+D" in warning.
+ (warn_extern_redeclared_static): Likewise for inform.
+ (check_redeclaration_no_default_args): Likewise for permerror.
+ (duplicate_decls): Likewise.
+ (check_previous_goto_1): Likewise for inform.
+ (check_goto, start_decl, check_for_uninitialized_const_var,
+ start_preparsed_function, finish_function§): Likewise.
+ * decl2.c (build_anon_union_vars, c_parse_final_cleanups): Likewise.
+ * init.c (sort_mem_initializers): Likewise.
+ * typeck.c (convert_for_initialization): Likewise for inform.
+ (maybe_warn_about_returning_address_of_local): Likewise.
+ * typeck2.c (abstract_virtuals_error_sfinae): Likewise for inform.
+ (cxx_incomplete_type_diagnostic): Likewise for emit_diagnostic.
+
+2015-07-25 Patrick Palka <ppalka@gcc.gnu.org>
+
+ PR c++/66857
+ * cvt.c (ocp_convert): Don't call scalar_constant_value when
+ converting to a class type.
+
+2015-07-24 Jason Merrill <jason@redhat.com>
+
+ PR c++/64969
+ * pt.c (splice_late_return_type): Correct deduced return type for
+ abbreviated function template.
+
+2015-07-24 Richard Biener <rguenther@suse.de>
+
+ * init.c (build_vec_init): Build iterator bound in the same
+ type as the iterator.
+
+2015-07-23 Marek Polacek <polacek@redhat.com>
+
+ PR c++/66572
+ * pt.c (tsubst_copy_and_build): Add warn_logical_op sentinel.
+
+2015-07-23 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/52987
+ * parser.c (cp_parser_simple_declaration): Robustify check avoiding
+ redundant error messages.
+
+2015-07-21 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * decl.c (grokdeclarator): For an erroneous template parameter
+ propagate error_mark_node as type.
+
+2015-07-20 Marek Polacek <polacek@redhat.com>
+
+ PR c++/55095
+ * typeck.c (cp_build_binary_op): Warn about left shift overflows.
+
+2015-07-15 Jason Merrill <jason@redhat.com>
+
+ PR c++/65091
+ * parser.c (cp_parser_unqualified_id): Don't accept ~x in a
+ template if there is no type x in scope.
+
+2015-07-14 Patrick Palka <ppalka@gcc.gnu.org>
+
+ PR c++/66850
+ * pt.c (redeclare_class_template): Set the DECL_CONTEXTs of each
+ template template parm in the redeclaration.
+ (lookup_template_class_1): Peel off irrelevant template levels
+ from current_template_parms before augmenting the argument
+ list.
+
+2015-07-14 Andrea Azzarone <azzaronea@gmail.com>
+
+ PR c++/65071
+ * parser.c (cp_parser_sizeof_pack): Also consider template template
+ parameters.
+
+2015-07-14 Jason Merrill <jason@redhat.com>
+
+ * call.c (build_new_method_call_1): Call reshape_init.
+
+2015-07-14 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * pt.c (check_template_shadow): Emit error + inform instead of
+ two errors.
+
+2015-07-13 Patrick Palka <ppalka@gcc.gnu.org>
+
+ PR c++/65186
+ * pt.c (invalid_nontype_parm_type_p): Accept a bound template
+ template parm type under C++11 and later.
+
+2015-07-12 Aldy Hernandez <aldyh@redhat.com>
+
+ * call.c: Fix double word typos.
+ * cp-array-notation.c: Same.
+ * cp-tree.h: Same.
+ * init.c: Same.
+ * name-lookup.c: Same.
+ * parser.c: Same.
+
+2015-07-10 Patrick Palka <ppalka@gcc.gnu.org>
+
+ PR c++/30044
+ * pt.c (begin_template_parm_list): Add a dummy parameter level
+ to current_template_parms.
+ (end_template_parm_list): Remove the dummy parameter level
+ before adding the real one.
+ (tsubst): Don't attempt to substitute for template parameters
+ corresponding to a dummy argument level.
+ (template_parms_to_args): Remove obsolete hack for
+ giving template template arguments the proper level.
+ (splite_late_return_type): Remove obsolete hack for giving
+ template template arguments the proper level.
+ * error.c (dump_template_decl): Don't print dummy template
+ levels.
+
+2015-07-10 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/54521
+ * call.c (convert_like_real): Do not set LOOKUP_ONLYCONVERTING for
+ the second step of copy-initialization.
+
+2015-07-10 Jason Merrill <jason@redhat.com>
+
+ * pt.c (find_parameter_packs_r): Handle variable templates.
+ (variable_template_specialization_p): New.
+ * cp-tree.h: Declare it.
+
+ * parser.c (cp_parser_template_id): SET_EXPR_LOCATION.
+
+2015-07-10 Eric Botcazou <ebotcazou@adacore.com>
+
+ * decl2.c (cpp_check): Revert latest change.
+
+2015-07-09 Jason Merrill <jason@redhat.com>
+
+ * pt.c (instantiation_dependent_r) [TRAIT_EXPR]: Call
+ value_dependent_expression_p.
+
+ * cp-tree.h (struct cp_parameter_declarator): Rename ellipsis_p to
+ template_parameter_pack_p.
+ * parser.c (declarator_can_be_parameter_pack): False if
+ parameter_pack_p is set.
+ (make_parameter_declarator): Add template_parameter_pack_p parm.
+ (cp_parser_template_parameter): Remove parameter pack parsing.
+ (cp_parser_parameter_declaration): Handle all parameter packs.
+ Tweak default argument permerror.
+
+2015-07-09 Andrew Sutton <andrew.n.sutton@gmail.com>
+
+ * parser.c (cp_parser_default_type_template_argument)
+ (cp_parser_default_template_template_argument): Factor out from
+ cp_parser_type_parameter.
+
+2015-07-09 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * typeck.c (warn_args_num): Rename to error_args_num.
+ (convert_arguments): Adjust calls.
+
+2015-07-09 Andrew MacLeod <amacleod@redhat.com>
+
+ * cp-ubsan.c: Don't include alloc-pool.h or lto-streamer.h.
+
+2015-07-08 Eric Botcazou <ebotcazou@adacore.com>
+
+ * decl2.c (cpp_check): Deal with IS_CONSTEXPR.
+
+2015-07-08 Jakub Jelinek <jakub@redhat.com>
+
+ * decl.c (grokfndecl): Handle flag_openmp_simd like flag_openmp.
+ * pt.c (apply_late_template_attributes): Likewise.
+
+2015-07-08 Marek Polacek <polacek@redhat.com>
+
+ PR c++/66748
+ * tree.c (handle_abi_tag_attribute): Check for CLASS_TYPE_P before
+ accessing TYPE_LANG_SPECIFIC node.
+
+2015-07-07 Andrew MacLeod <amacleod@redhat.com>
+
+ * call.c: Adjust includes.
+ * class.c: Likewise.
+ * constexpr.c: Likewise.
+ * cp-array-notation.c: Likewise.
+ * cp-gimplify.c: Likewise.
+ * cp-lang.c: Likewise.
+ * cp-objcp-common.c: Likewise.
+ * cp-ubsan.c: Likewise.
+ * cvt.c: Likewise.
+ * decl.c: Likewise.
+ * decl2.c: Likewise.
+ * dump.c: Likewise.
+ * error.c: Likewise.
+ * except.c: Likewise.
+ * expr.c: Likewise.
+ * friend.c: Likewise.
+ * init.c: Likewise.
+ * lambda.c: Likewise.
+ * lex.c: Likewise.
+ * mangle.c: Likewise.
+ * method.c: Likewise.
+ * name-lookup.c: Likewise.
+ * optimize.c: Likewise.
+ * parser.c: Likewise.
+ * pt.c: Likewise.
+ * ptree.c: Likewise.
+ * repo.c: Likewise.
+ * rtti.c: Likewise.
+ * search.c: Likewise.
+ * semantics.c: Likewise.
+ * tree.c: Likewise.
+ * typeck.c: Likewise.
+ * typeck2.c: Likewise.
+
+2015-07-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * decl2.c (cpp_check): Deal with IS_MOVE_CONSTRUCTOR.
+
+2015-07-06 Jason Merrill <jason@redhat.com>
+
+ * pt.c (reduce_template_parm_level): Also build the TYPE_DECL
+ for a template template parameter.
+ (tsubst_decl) [TEMPLATE_DECL]: Use the TEMPLATE_DECL built
+ by reduce_template_parm_level.
+
+ * pt.c (argument_pack_element_is_expansion_p): A decl pack is an
+ expansion.
+
+2015-07-02 Jason Merrill <jason@redhat.com>
+
+ PR c++/66743
+ * pt.c (for_each_template_parm_r) [UNDERLYING_TYPE]: Use
+ TYPE_VALUES_RAW rather than TYPE_FIELDS.
+
+2015-07-02 Andrew Sutton <andrew.n.sutton@gmail.com>
+
+ * pt.c (type_dependent_expression_p): Handle expressions
+ that refer to variable templates.
+
+2015-07-01 Jason Merrill <jason@redhat.com>
+
+ * lex.c (init_reswords): s/CXX0X/CXX11/.
+ * parser.c (cp_lexer_get_preprocessor_token): Likewise.
+
+ * mangle.c (write_CV_qualifiers_for_type, write_nested_name):
+ Attribute mangling is now -fabi-version=10.
+
+ PR c++/65945
+ * decl.c (cxx_init_decl_processing): Set TYPE_ALIGN of nullptr_t.
+ * class.c (layout_nonempty_base_or_field): Warn if that affects
+ the offset of a field.
+
+2015-07-01 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/60365
+ * parser.c (cp_parser_check_std_attribute): New.
+ (cp_parser_std_attribute_list): Call it.
+
+2015-07-01 Patrick Palka <ppalka@gcc.gnu.org>
+
+ PR c++/66686
+ * pt.c (coerce_template_template_parm) [PARM_DECL]: Don't
+ return 0 if tsubst returns a dependent type.
+
+2015-06-30 Jason Merrill <jason@redhat.com>
+
+ PR debug/66653
+ * decl2.c (is_late_template_attribute): True for tls_model.
+
+ PR debug/66653
+ * cp-tree.h (CP_DECL_THREAD_LOCAL_P): New.
+ (DECL_GNU_TLS_P): Use DECL_LANG_SPECIFIC field.
+ (SET_DECL_GNU_TLS_P): New.
+ * call.c (make_temporary_var_for_ref_to_temp): Use
+ CP_DECL_THREAD_LOCAL_P.
+ (set_up_extended_ref_temp): Likewise.
+ * decl.c (duplicate_decls, expand_static_init): Likewise.
+ (redeclaration_error_message, grokvardecl): Likewise.
+ (start_decl, register_dtor_fn, grokdeclarator): Likewise.
+ * decl2.c (get_guard, var_needs_tls_wrapper): Likewise.
+ (handle_tls_init): Likewise.
+ * pt.c (tsubst_decl, tsubst_copy_and_build): Likewise.
+ * semantics.c (finish_id_expression): Likewise.
+ (handle_omp_array_sections_1, finish_omp_clauses): Likewise.
+ (finish_omp_threadprivate): Likewise.
+ * tree.c (decl_storage_duration): Likewise.
+ * cp-gimplify.c (omp_var_to_track): Likewise.
+ (cp_genericize_r): Check that it matches DECL_THREAD_LOCAL_P.
+ * lex.c (retrofit_lang_decl): Return if DECL_LANG_SPECIFIC is
+ already set.
+
+2015-06-30 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ Implement N4197 - Adding u8 character literals
+ * parser.c (cp_parser_primary_expression()): Treat CPP_UTF8CHAR
+ and CPP_UTF8CHAR_USERDEF tokens;
+ (cp_parser_parenthesized_expression_list()): Treat CPP_UTF8CHAR token.
+
+2015-06-29 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/65977
+ * decl.c (grokfndecl): Allow constexpr declarations of friend
+ template specializations.
+
+2015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR fortran/66605
+ * decl.c (finish_function): Call do_warn_unused_parameter.
+
+2015-06-29 Marek Polacek <polacek@redhat.com>
+
+ PR c/66322
+ * decl.c (struct cp_switch): Add OUTSIDE_RANGE_P.
+ (push_switch): Set OUTSIDE_RANGE_P.
+ (pop_switch): Update c_do_switch_warnings call.
+ (finish_case_label): Update c_add_case_label call.
+ * semantics.c (finish_switch_cond): Don't warn about -Wswitch-bool
+ here.
+
+2015-06-27 Marek Polacek <polacek@redhat.com>
+
+ * call.c: Use VECTOR_TYPE_P.
+ * constexpr.c: Likewise.
+ * cvt.c: Likewise.
+ * decl.c: Likewise.
+ * decl2.c: Likewise.
+ * init.c: Likewise.
+ * semantics.c: Likewise.
+ * tree.c: Likewise.
+ * typeck.c: Likewise.
+ * typeck2.c: Likewise.
+
+2015-06-27 Marek Polacek <polacek@redhat.com>
+
+ * call.c (set_up_extended_ref_temp): Use VAR_P.
+ * class.c: Use VAR_P throughout.
+ * constexpr.c (cxx_eval_constant_expression): Use VAR_P.
+ * cp-array-notation.c (make_triplet_val_inv): Likewise.
+ * decl.c: Use VAR_OR_FUNCTION_DECL_P or VAR_P
+ throughout.
+ * decl2.c: Likewise.
+ * error.c (dump_decl): Use VAR_P.
+ * mangle.c (decl_implicit_alias_p): Likewise.
+ * parser.c: Use VAR_P throughout.
+ * pt.c: Likewise.
+ * semantics.c: Likewise.
+ * vtable-class-hierarchy.c: Likewise.
+ * tree.c (handle_abi_tag_attribute): Use VAR_OR_FUNCTION_DECL_P.
+
+2015-06-27 Andreas Schwab <schwab@linux-m68k.org>
+
+ * pt.c (check_unstripped_args): Mark parameter as unused.
+
+2015-06-26 Jason Merrill <jason@redhat.com>
+
+ PR c++/66216
+ * class.c (finish_struct): Call fixup_attribute_variants.
+
+ PR c++/66684
+ * typeck2.c (merge_exception_specifiers): Allow different
+ noexcept-specifiers if we've had errors.
+
+ PR c++/66255
+ * pt.c (check_unstripped_args): Split out from...
+ (retrieve_specialization): ...here. Allow typedefs in the type of
+ a non-type argument.
+
+ PR c++/66067
+ * mangle.c (write_nested_name): Limit TYPENAME_TYPE handling to
+ TYPE_DECLs.
+ * mangle.c (write_template_args): Handle 0 length TREE_VEC.
+
+ PR c++/66654
+ * typeck2.c (digest_init_r): Only expect reshaping if the class is
+ aggregate.
+
+2015-06-26 Marek Polacek <polacek@redhat.com>
+
+ * cp-array-notation.c (expand_sec_reduce_builtin): Use INDIRECT_REF_P.
+ * cp-ubsan.c (cp_ubsan_check_member_access_r): Likewise.
+
+2015-06-25 Andrew MacLeod <amacleod@redhat.com>
+
+ * call.c: Remove ipa-ref.h and plugin-api.h from include list.
+ * class.c: Likewise.
+ * cp-ubsan.c: Likewise.
+ * decl.c: Likewise.
+ * decl2.c: Likewise.
+ * lambda.c: Likewise.
+ * mangle.c: Likewise.
+ * method.c: Likewise.
+ * optimize.c: Likewise.
+ * parser.c: Likewise.
+ * semantics.c: Likewise.
+ * tree.c: Likewise.
+ * vtable-class-hierarchy.c: Likewise.
+
+2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
+
+ * constexpr.c (constexpr_fundef_hasher): Inherit from ggc_ptr_hash
+ rather than ggc_hasher.
+ (constexpr_call_hasher): Likewise.
+ * cp-tree.h (cxx_int_tree_map_hasher, named_label_hasher): Likewise.
+ * decl.c (typename_hasher): Likewise.
+ * mangle.c (conv_type_hasher): Likewise.
+ * pt.c (spec_hasher): Likewise.
+ * tree.c (cplus_array_hasher, list_hasher): Likewise.
+ * typeck2.c (abstract_type_hasher): Likewise.
+
+2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
+
+ * class.c (fixed_type_or_null_ref_ht): Inherit from nofree_ptr_hash
+ rather than pointer_hash.
+ (fixed_type_or_null): Use nofree_ptr_hash instead of pointer_hash.
+ * semantics.c (nrv_data): Likewise.
+ * tree.c (verify_stmt_tree_r, verify_stmt_tree): Likewise.
+
+2015-06-24 Jason Merrill <jason@redhat.com>
+
+ PR c++/66647
+ * pt.c (dependent_type_p_r): Check for dependent alias template
+ specialization sooner.
+
+ PR c++/66501
+ * class.c (type_has_nontrivial_assignment): Remove.
+ * cp-tree.h: Remove declaration.
+ * init.c (vec_copy_assign_is_trivial): New.
+ (build_vec_init): Use it.
+
+2015-06-24 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ Implement N3928 - Extending static_assert
+ * parser.c (cp_parser_static_assert): Support static_assert with
+ no message string. Supply an empty string in this case.
+ * semantics.c (finish_static_assert): Don't try to print a message if
+ the message strnig is empty.
+
+2015-06-24 Adam Butcher <adam@jessamine.co.uk>
+
+ PR c++/65750
+ * parser.c (cp_parser_simple_type_specifier): Don't synthesize
+ implicit template parm if 'auto' is a placeholder for trailing
+ return type.
+
+2015-06-24 Patrick Palka <ppalka@gcc.gnu.org>
+
+ Revert:
+ 2015-06-23 Patrick Palka <ppalka@gcc.gnu.org>
+
+ PR c++/30044
+ * parser.c (cp_parser_template_parameter_list): Update
+ current_template_parms right after processing a paramater.
+ * pt.c (template_parms_to_args): Remove obsolete hack for
+ giving template template arguments the proper level.
+ (check_default_tmpl_args): Account for tested template
+ parameter_lists.
+ (splite_late_return_type): Remove obsolete hack for giving
+ template template arguments the proper level.
+
+2015-06-24 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/65811
+ * decl.c (duplicate_decls): Adjust DECL_COMDAT of newdecl.
+
+2015-06-23 Patrick Palka <ppalka@gcc.gnu.org>
+
+ PR c++/30044
+ * parser.c (cp_parser_template_parameter_list): Update
+ current_template_parms right after processing a paramater.
+ * pt.c (template_parms_to_args): Remove obsolete hack for
+ giving template template arguments the proper level.
+ (check_default_tmpl_args): Account for tested template
+ parameter_lists.
+ (splite_late_return_type): Remove obsolete hack for giving
+ template template arguments the proper level.
+
+2015-06-23 Jason Merrill <jason@redhat.com>
+
+ PR c++/65879
+ * decl.c (grokfndecl): Check the linkage of ctype, not just
+ TYPE_ANONYMOUS_P.
+ * tree.c (no_linkage_check): Skip the 'this' pointer.
+
+ PR c++/66501
+ * class.c (type_has_nontrivial_assignment): New.
+ * init.c (build_vec_init): Use it.
+ * cp-tree.h: Declare it.
+ * method.c (trivial_fn_p): Templates aren't trivial.
+
+ PR c++/66542
+ * decl.c (expand_static_init): Make sure the destructor is callable
+ here even if we have an initializer.
+
+2015-06-04 Pierre-Marie de Rodat <derodat@adacore.com>
+
+ * lang-specs.h: Pass "-o %g.s" to cc1plus for headers even if
+ -fdump-ada-spec is passed.
+
+2015-06-22 Pierre-Marie de Rodat <derodat@adacore.com>
+
+ * decl2.c (cpp_check): Deal with HAS_DEPENDENT_TEMPLATE_ARGS.
+
+2015-06-22 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * decl.c (grokdeclarator): Use declspecs->locations[ds_virtual].
+
+2015-06-22 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * decl.c (grokdeclarator): Remove pointless code.
+
+2015-06-22 Jason Merrill <jason@redhat.com>
+
+ PR c++/66515
+ * call.c (implicit_conversion): Only reshape for classes.
+
+2015-06-22 Mikhail Maltsev <maltsevm@gmail.com>
+
+ * pt.c (maybe_adjust_types_for_deduction): Use std::swap instead of
+ manually swapping.
+ * semantics.c (finish_omp_atomic): Likewise.
+ * typeck.c (cp_build_array_ref): Likewise.
+
+2015-06-20 Mikhail Maltsev <maltsevm@gmail.com>
+
+ PR c++/65882
+ * call.c (build_new_op_1): Check tf_warning flag in all cases.
+
+2015-06-19 Jason Merrill <jason@redhat.com>
+
+ PR c++/66585
+ * pt.c (instantiate_class_template_1): Clear
+ cp_unevaluated_operand and c_inhibit_evaluation_warnings.
+
+ PR c++/65880
+ * decl.c (build_ptrmemfunc_type): Check TYPE_GET_PTRMEMFUNC_TYPE after
+ cv-qualifiers.
+ * typeck.c (merge_types): build_ptrmemfunc_type before applying
+ quals and attributes.
+
+ PR c++/65973
+ * constexpr.c (build_constexpr_constructor_member_initializers):
+ Handle an empty STATEMENT_LIST.
+
+ PR c++/65843
+ * pt.c (tsubst_copy_and_build): Register a capture proxy in
+ local_specializations.
+
+2015-06-17 Jason Merrill <jason@redhat.com>
+
+ PR c++/66001
+ * constexpr.c (cxx_eval_constant_expression): Handle TRY_BLOCK and
+ TRY_FINALLY_EXPR.
+ (potential_constant_expression_1): Likewise.
+
+2015-06-17 Jason Merrill <jason@redhat.com>
+
+ PR c++/66515
+ * call.c (implicit_conversion): Call reshape_init here, early.
+ (build_aggr_conv): Not here.
+
+2015-06-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/66571
+ * pt.c (tsubst_omp_clause_decl): New function.
+ (tsubst_omp_clauses): Use it or tsubst_copy instead of
+ tsubst_expr on OMP_CLAUSE_DECL.
+
+2015-06-17 Andrew MacLeod <amacleod@redhat.com>
+
+ * cp-lang.c (cxx_dwarf_name): Use anon_aggrname_p.
+ * cp-tree.h (TYPE_ANONYMOUS_P): Likewise.
+ * decl.c (grokdeclarator, xref_tag_1): Likewise.
+ * error.c (dump_aggr_type): likewise.
+ * pt.c (push_template_decl_real): Likewise.
+ * name-lookup.c (make_anon_name): Use anon_aggrname_format.
+
+2015-06-17 Andrew MacLeod <amacleod@redhat.com>
+
+ * call.c: Do not include input.h, line-map.h or is-a.h.
+ * class.c: Likewise.
+ * constexpr.c: Likewise.
+ * cp-array-notation.c: Likewise.
+ * cp-gimplify.c: Likewise.
+ * cp-lang.c: Likewise.
+ * cp-objcp-common.c: Likewise.
+ * cp-tree.h: Likewise.
+ * cp-ubsan.c: Likewise.
+ * cvt.c: Likewise.
+ * decl.c: Likewise.
+ * decl2.c: Likewise.
+ * dump.c: Likewise.
+ * error.c: Likewise.
+ * except.c: Likewise.
+ * expr.c: Likewise.
+ * friend.c: Likewise.
+ * init.c: Likewise.
+ * lambda.c: Likewise.
+ * lex.c: Likewise.
+ * mangle.c: Likewise.
+ * method.c: Likewise.
+ * name-lookup.c: Likewise.
+ * optimize.c: Likewise.
+ * parser.c: Likewise.
+ * pt.c: Likewise.
+ * ptree.c: Likewise.
+ * repo.c: Likewise.
+ * rtti.c: Likewise.
+ * search.c: Likewise.
+ * semantics.c: Likewise.
+ * tree.c: Likewise.
+ * typeck.c: Likewise.
+ * typeck2.c: Likewise.
+ * vtable-class-hierarchy.c: Likewise.
+
+2015-06-16 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/59682
+ * parser.c (cp_parser_new_placement): Reject an empty expression-list.
+
+2015-06-16 Jason Merrill <jason@redhat.com>
+
+ PR c++/66536
+ * tree.c (replace_placeholders_r) [CONSTRUCTOR]: Handle type
+ mismatch.
+
+ PR c++/58063
+ * tree.c (bot_manip): Remap SAVE_EXPR.
+
+ PR c++/66387
+ * pt.c (tsubst_copy) [VAR_DECL]: Use process_outer_var_ref.
+
+2015-06-15 Nathan Sidwell <nathan@acm.org>
+
+ PR c++/58583
+ * cp-tree.h (DECL_INSTANTIATING_NSDMI_P): New.
+ * init.c (get_nsdmi): Check for DEFAULT_ARG in template case and
+ protect it from recursive instantiation.
+
+2015-06-15 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/51048
+ * decl2.c (no_linkage_error): Do not issue a permerror if the DECL
+ using a local type is pure virtual.
+
+2015-06-13 Patrick Palka <ppalka@gcc.gnu.org>
+
+ * call.c: Remove comment documenting the long-deleted
+ function build_method_call.
+
+2015-06-13 Patrick Palka <ppalka@gcc.gnu.org>
+
+ PR c++/65168
+ * typeck.c (cp_build_binary_op): Warn when comparing an address
+ of a reference against NULL.
+
+2015-06-12 Jason Merrill <jason@redhat.com>
+
+ PR c++/65719
+ * pt.c (tsubst_decl) [VAR_DECL]: Mark namespace-scope
+ variables as DECL_NOT_REALLY_EXTERN.
+
+2015-06-11 Jason Merrill <jason@redhat.com>
+
+ PR c++/66445
+ * constexpr.c (potential_constant_expression_1): Handle a
+ DECL_EXPR of TYPE_DECL.
+
+ PR c++/66450
+ * constexpr.c (cxx_eval_store_expression): Avoid messing up outer
+ ctx->ctor.
+
+2015-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
+
+ * decl.c (cxx_init_decl_processing): Register the main
+ translation unit through the new debug hook.
+
+2015-06-10 Jason Merrill <jason@redhat.com>
+
+ PR c++/66289
+ * cp-tree.h (TEMPLATE_DECL_COMPLEX_ALIAS_P): New.
+ * pt.c (push_template_decl_real): Set it.
+ (dependent_alias_template_spec_p): Use it.
+ (dependent_type_p_r): Use dependent_alias_template_spec_p.
+ (uses_all_template_parms_data, uses_all_template_parms_r)
+ (complex_alias_template_p): New.
+ (get_template_parm_index): Handle BOUND_TEMPLATE_TEMPLATE_PARM.
+
+2015-06-09 Jason Merrill <jason@redhat.com>
+
+ DR 1467
+ PR c++/51747
+ * typeck2.c (digest_init_r): Replace previous change with
+ gcc_unreachable.
+
+ PR c++/66387
+ * semantics.c (process_outer_var_ref): Make sure the value is
+ actually constant before returning it.
+ * typeck.c (cp_build_array_ref): Allow subscripting non-lvalue
+ array.
+
+2015-06-09 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/65815
+ * typeck2.c (digest_nsdmi_init): On aggregates use reshape_init.
+ * init.c (expand_default_init): Likewise.
+
+2015-06-09 Jason Merrill <jason@redhat.com>
+
+ PR c++/66383
+ * tree.c (replace_placeholders_r): Handle placeholders for an
+ outer object.
+ * typeck2.c (store_init_value): Only replace_placeholders for
+ objects of class type.
+
+2015-06-08 Andrew MacLeod <amacleod@redhat.com>
+
+ * call.c : Adjust include files.
+ * class.c : Likewise.
+ * constexpr.c : Likewise.
+ * cp-array-notation.c : Likewise.
+ * cp-cilkplus.c : Likewise.
+ * cp-gimplify.c : Likewise.
+ * cp-lang.c : Likewise.
+ * cp-objcp-common.c : Likewise.
+ * cp-tree.h : Likewise.
+ * cp-ubsan.c : Likewise.
+ * cvt.c : Likewise.
+ * decl.c : Likewise.
+ * decl2.c : Likewise.
+ * dump.c : Likewise.
+ * error.c : Likewise.
+ * except.c : Likewise.
+ * expr.c : Likewise.
+ * friend.c : Likewise.
+ * init.c : Likewise.
+ * lambda.c : Likewise.
+ * lex.c : Likewise.
+ * mangle.c : Likewise.
+ * method.c : Likewise.
+ * name-lookup.c : Likewise.
+ * optimize.c : Likewise.
+ * parser.c : Likewise.
+ * pt.c : Likewise.
+ * ptree.c : Likewise.
+ * repo.c : Likewise.
+ * rtti.c : Likewise.
+ * search.c : Likewise.
+ * semantics.c : Likewise.
+ * tree.c : Likewise.
+ * typeck.c : Likewise.
+ * typeck2.c : Likewise.
+ * vtable-class-hierarchy.c : Likewise.
+
+2015-06-05 Jason Merrill <jason@redhat.com>
+
+ PR c++/66405
+ * pt.c (argument_pack_element_is_expansion_p): Return 2 if
+ the expansion has extra args.
+ (use_pack_expansion_extra_args_p): Return true in that case.
+
+ PR c++/66405
+ * pt.c (type_dependent_expression_p): EXPR_PACK_EXPANSION is
+ dependent even if it has a type.
+
+2015-06-05 Aldy Hernandez <aldyh@redhat.com>
+
+ * cp-objcp-common.c: Adjust comment for
+ cxx_warn_unused_global_decl.
+ * cp-objcp-common.h (LANG_HOOKS_WRITE_GLOBALS): Remove
+ (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
+ * cp-tree.h (note_mangling_alias): Protoize.
+ (cp_write_global_declarations): Remove.
+ (cxx_post_compilation_parsing_cleanups): Protoize.
+ * decl.c (wrapup_globals_for_namespace): Remove use of DATA
+ argument.
+ * decl2.c (mangling_aliases): New global.
+ (build_java_method_aliases): New. Adapted from
+ collect_candidates_for_java_method_aliases.
+ (collect_candidates_for_java_method_aliases): Remove.
+ (build_java_method_aliases): Remove.
+ (generate_mangling_aliases): New.
+ (note_mangling_alias): New. Moved from mangle_decl.
+ (locus_at_end_of_parsing): New global.
+ (c_parse_final_cleanups): Rename from
+ cp_write_global_declarations.
+ Use locus_at_end_of_parsing.
+ Call generate_mangling_aliases.
+ Rename call to collect_candidates_for_java_method_aliases into
+ build_java_method_aliases.
+ Remove call to finalize_compilation_unit.
+ Move vtable handling into cxx_post_compilation_parsing_cleanups.
+ Do not call check_global_declarations or
+ emit_debug_global_declarations.
+ (cxx_post_compilation_parsing_cleanups): New.
+ * mangle.c (mangle_decl): Move code to note_mangling_alias.
+ * name-lookup.c (do_namespace_alias): Call early_global_decl.
+
+2015-06-05 Nathan Sidwell <nathan@acm.org>
+
+ PR c++/52595
+ * parser.c (cp_parser_cache_defarg): Continue looking for
+ declarators when scanning a potential template argument list of an
+ NSDMI.
+
+2015-06-04 Andrew MacLeod <amacleod@redhat.com>
+
+ * call.c: Adjust includes for restructured coretypes.h.
+ * class.c: Likewise.
+ * constexpr.c: Likewise.
+ * cp-array-notation.c: Likewise.
+ * cp-gimplify.c: Likewise.
+ * cp-lang.c: Likewise.
+ * cp-objcp-common.c: Likewise.
+ * cp-tree.h: Likewise.
+ * cp-ubsan.c: Likewise.
+ * cvt.c: Likewise.
+ * decl.c: Likewise.
+ * decl2.c: Likewise.
+ * dump.c: Likewise.
+ * error.c: Likewise.
+ * except.c: Likewise.
+ * expr.c: Likewise.
+ * friend.c: Likewise.
+ * init.c: Likewise.
+ * lambda.c: Likewise.
+ * lex.c: Likewise.
+ * mangle.c: Likewise.
+ * method.c: Likewise.
+ * name-lookup.c: Likewise.
+ * optimize.c: Likewise.
+ * parser.c: Likewise.
+ * pt.c: Likewise.
+ * ptree.c: Likewise.
+ * repo.c: Likewise.
+ * rtti.c: Likewise.
+ * search.c: Likewise.
+ * semantics.c: Likewise.
+ * tree.c: Likewise.
+ * typeck.c: Likewise.
+ * typeck2.c: Likewise.
+ * vtable-class-hierarchy.c: Likewise.
+
+2015-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
+
+ PR c++/66192
+ PR target/66200
+ * cp-tree.h (get_guard_cond): Adjust declaration
+ * decl.c (expand_static_init): Use atomic load acquire
+ and adjust call to get_guard_cond.
+ * decl2.c (build_atomic_load_byte): New function.
+ (get_guard_cond): Handle thread_safety.
+ (one_static_initialization_or_destruction): Adjust call to
+ get_guard_cond.
+
+2015-06-03 Jason Merrill <jason@redhat.com>
+
+ PR c++/44282
+ * mangle.c (mangle_decl): Always SET_IDENTIFIER_GLOBAL_VALUE.
+ (write_CV_qualifiers_for_type): Set G.need_abi_warning.
+ (decl_implicit_alias_p): Split out from maybe_remove_implicit_alias.
+ * cp-tree.h (DECL_REALLY_EXTERN): Handle null DECL_LANG_SPECIFIC.
+
+2015-06-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
+ Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/66130
+ * typeck.c (invalid_nonstatic_memfn_p): Add location_t parameter and
+ use it in the diagnostic.
+ (decay_conversion): Adjust call.
+ * semantics.c (finish_decltype_type): Likewise.
+ * call.c (resolve_args, build_new_op_1,
+ perform_implicit_conversion_flags): Adjust calls.
+ * cvt.c (ocp_convert, convert_to_void): Likewise.
+ * cp-tree.h (invalid_nonstatic_memfn_p): Update declaration.
+
+2015-06-03 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * decl.c (check_tag_decl): Use declspecs->locations as locations in
+ error_at and warning_at calls.
+
+2015-06-03 Marek Polacek <polacek@redhat.com>
+
+ PR sanitizer/66190
+ * cp-gimplify.c (struct cp_genericize_data): Add no_sanitize_p.
+ (cp_genericize_r): Don't instrument static initializers.
+ (cp_genericize_tree): Initialize wtd.no_sanitize_p.
+
+2015-06-02 Andres Tiraboschi <andres.tiraboschi@tallertechnologies.com>
+
+ * decl.c (start_function): Call plugin before parsing.
+ (finish_function): Call plugin after parsing.
+
+2015-06-02 Patrick Palka <patrick@parcs.ath.cx>
+
+ * cp-tree.h (init_error): Remove declaration.
+ * error.c (scratch_pretty_printer): Rename to ...
+ (actual_pretty_printer): ... this.
+ (cxx_pp): Constify and update accordingly.
+ (init_error): Remove definition.
+ * lex.c (cxx_init): Do not call init_error.
+
+2015-06-02 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/61683
+ * parser.c (cp_parser_mem_initializer): Allow for decltype-specifier.
+
+2015-06-01 Jason Merrill <jason@redhat.com>
+
+ PR c++/65942
+ * decl2.c (mark_used): Don't always instantiate constexpr fns.
+ * constexpr.c (cxx_eval_call_expression): Instantiate them here.
+
+ PR c++/44282
+ * mangle.c (attr_strcmp): New.
+ (write_CV_qualifiers_for_type): Also write out attributes that
+ affect type identity.
+ (write_type): Strip all attributes after writing qualifiers.
+
+2015-05-31 Jason Merrill <jason@redhat.com>
+
+ * constexpr.c (cxx_eval_indirect_ref): Try folding first.
+
+ PR c++/66320
+ * constexpr.c (cxx_eval_constant_expression): Treat a placeholder
+ with the wrong type as non-constant.
+
+2015-05-27 Jason Merrill <jason@redhat.com>
+
+ * decl.c (check_redeclaration_exception_specification): Depend on
+ -Wsystem-headers rather than -pedantic.
+
+ * decl.c (warn_extern_redeclared_static): Use the location of
+ newdecl in diagnostics, not input_location.
+ (validate_constexpr_redeclaration): Likewise.
+ (check_redeclaration_no_default_args): Likewise.
+ (duplicate_decls): Likewise.
+ (check_redeclaration_exception_specification): Likewise.
+ Change second diagnostic to inform.
+
+2015-05-24 Nathan Sidwell <nathan@acm.org>
+
+ PR c++/66243
+ * decl.c (build_enumerator): Don't silently convert scoped enums.
+
+2015-05-24 Jan Hubicka <hubicka@ucw.cz>
+
+ PR lto/66180
+ * mangle.c (mangle_decl): Mangle anonymous namespace types as
+ "<anon>".
+
+2015-05-23 Nathan Sidwell <nathan@acm.org>
+
+ PR c++/65936
+ * pt.c (lookup_template_class_1): Copy may_alias attribute too.
+
+2015-05-22 Jim Wilson <jim.wilson@linaro.org>
+
+ * Make-lang.in (check_g++_parallelize): Update comment.
+
+2015-05-22 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/65598
+ * decl.c (grokdeclarator): Use the correct location in error
+ messages about 'explicit'.
+
+2015-05-22 Marek Polacek <polacek@redhat.com>
+ Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ PR c/47043
+ * cp-tree.h (build_enumerator): Update declaration.
+ * decl.c (build_enumerator): Add attributes parameter. Call
+ cplus_decl_attributes.
+ * init.c (constant_value_1): Pass tf_none to mark_used.
+ * parser.c (cp_parser_enumerator_definition): Parse attributes and
+ pass them down to build_enumerator.
+ * pt.c (tsubst_enum): Pass decl attributes to build_enumerator.
+ * semantics.c (finish_id_expression): Don't warn_deprecated_use here.
+
+2015-05-21 Nathan Sidwell <nathan@acm.org>
+
+ PR c++/60943
+ * decl2.c (change_return_type): Propagate FUNCTION_REF_QUALIFIED.
+
+2015-05-21 Marek Polacek <polacek@redhat.com>
+
+ * typeck.c (warn_args_num): Don't print "declare here" for builtins.
+
+2015-05-20 Jason Merrill <jason@redhat.com>
+
+ * pt.c (tsubst_decl) [VAR_DECL]: SET_DECL_IMPLICIT_INSTANTIATION
+ before register_specialization.
+
+ * decl.c (grok_op_properties): Don't complain about size_t
+ placement delete here.
+ * call.c (second_parm_is_size_t): Split out from...
+ (non_placement_deallocation_fn_p): ...here.
+ (build_op_delete_call): Warn about size_t placement delete with
+ -Wc++14-compat.
+
+2015-05-19 Nathan Sidwell <nathan@acm.org>
+
+ PR c++/65954
+ * typeck.c (finish_class_member_access_expr): Diagnose failed
+ lookup of enum class member.
+
+2015-05-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/66199
+ * parser.c (cp_parser_omp_for_loop): Don't add
+ OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
+ OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
+ (cp_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
+ constructs.
+
+2015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
+
+ * typeck.c (composite_pointer_type): Use std::swap instead of explicit
+ swaps.
+
+2015-05-18 Jason Merrill <jason@redhat.com>
+
+ * pt.c (retrieve_specialization): Make sure our arguments have
+ gone through strip_typedefs.
+
+ * pt.c (tsubst_decl) [VAR_DECL]: Call coerce_innermost_template_parms.
+ (determine_specialization): Call coerce_template_parms.
+
+ DR 1391
+ * pt.c (type_unification_real): Check convertibility here.
+ (unify_one_argument): Not here.
+
+ * tree.c (strip_typedefs_expr) [TRAIT_EXPR]: Fix typo.
+ (strip_typedefs) [DECLTYPE_TYPE]: Fix typedef of decltype.
+ [TREE_LIST]: Fix no-change case.
+
+ * ptree.c (cxx_print_xnode): Handle TRAIT_EXPR.
+
+2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR fortran/44054
+ * error.c (cp_diagnostic_starter): Use diagnostic_location
+ function.
+ (cp_print_error_function): Likewise.
+ (cp_printer): Replace locus pointer with accessor function.
+
+2015-05-12 David Malcolm <dmalcolm@redhat.com>
+
+ * parser.c (cp_parser_selection_statement): Add location and
+ guard_kind arguments to calls to
+ cp_parser_implicitly_scoped_statement.
+ (cp_parser_iteration_statement): Likewise for calls to
+ cp_parser_already_scoped_statement.
+ (cp_parser_implicitly_scoped_statement): Add "guard_loc" and
+ "guard_kind" params; use them to warn for misleading
+ indentation.
+ (cp_parser_already_scoped_statement): Likewise.
+
+2015-05-11 Jan Hubicka <hubicka@ucw.cz>
+
+ * class.c (fixup_type_variants): Do not copy TYPE_METHODS
+ (one_inheriting_sig): Assert tat we always set TYPE_METHODS of main variant.
+ * semantics.c (finish_member_declaration): Likewise.
+ * method.c (lazily_declare_fn): Allways add method to main variant list.
+
+2015-05-09 Aldy Hernandez <aldyh@redhat.com>
+
+ PR bootstrap/66085
+ * decl2.c (note_mangling_alias): Declare arguments as unused.
+
+2015-05-08 Jason Merrill <jason@redhat.com>
+
+ * cp-gimplify.c, parser.c: Adjust to -Wc++11-compat replacing
+ -Wc++0x-compat.
+
+2015-05-08 Jason Merrill <jason@redhat.com>
+
+ * decl2.c (mangling_aliases): New variable.
+ (note_mangling_alias, generate_mangling_aliases): New.
+ (cp_write_global_declarations): Call generate_mangling_aliases.
+ (generate_mangling_alias): Split out from...
+ * mangle.c (mangle_decl): ...here.
+ * cp-tree.h: Declare note_mangling_alias.
+
+2015-05-08 Aldy Hernandez <aldyh@redhat.com>
+
+ * decl2.c (collect_candidates_for_java_method_aliases): Remove.
+ (build_java_method_aliases): Adapt to use create_same_body_alias
+ instead of assemble_alias. Move variable declarations to
+ definition and tidy up.
+ (cp_write_global_declarations): Call build_java_method_aliases
+ instead of collecting candidates first.
+
+2015-05-07 Jason Merrill <jason@redhat.com>
+
+ PR c++/59012
+ * parser.c (cp_parser_std_attribute_list): Handle attribute expansion.
+ (cp_parser_std_attribute_spec): Handle alignas pack expansion.
+ * decl2.c (is_late_template_attribute): An attribute exp is dependent.
+ * pt.c (make_pack_expansion): Allow TREE_LIST for attribute expansion.
+ (apply_late_template_attributes): Handle attribute pack expansion.
+
+2015-05-07 Marek Polacek <polacek@redhat.com>
+
+ PR c/65179
+ * typeck.c (cp_build_binary_op): Warn when left shifting a negative
+ value.
+
+2015-05-07 Jason Merrill <jason@redhat.com>
+
+ DR 1467
+ PR c++/51747
+ * typeck2.c (digest_init_r): Fix single element list.
+
+2015-05-05 Jason Merrill <jason@redhat.com>
+
+ * cp-gimplify.c (cp_genericize_r): Track TRY_BLOCK and
+ MUST_NOT_THROW_EXPR, warn about a THROW_EXPR directly within a
+ MUST_NOT_THROW_EXPR.
+ (cp_genericize_data): Add try_block field.
+ (cp_genericize_tree): Initialize it.
+ * except.c (expand_end_catch_block): Set TREE_NO_WARNING on
+ implicit rethrow.
+
+ * constexpr.c (potential_constant_expression_1) [AT_ENCODE_EXPR]:
+ Return false.
+
+ * semantics.c (finish_call_expr): Check complain.
+
+ * decl2.c (reset_type_linkage_2): Update the DECL_NAME of a
+ maybe-in-charge constructor.
+
+ * decl.c (start_decl): Don't push the plain VAR_DECL for a
+ variable template.
+
+ DR 1518
+ DR 1630
+ PR c++/54835
+ PR c++/60417
+ * call.c (convert_like_real): Check value-initialization before
+ explicit.
+ * typeck2.c (process_init_constructor_record): Don't set
+ CONSTRUCTOR_IS_DIRECT_INIT.
+ (process_init_constructor_array): Likewise.
+ * init.c (build_vec_init): Likewise.
+
+2015-05-05 David Malcolm <dmalcolm@redhat.com>
+
+ * parser.c (cp_parser_asm_definition): Only test for
+ error_mark_node if "outputs" was just set. Likewise for "inputs".
+
+2015-05-04 Paolo Carlini <paolo.carlini@oracle.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/66007
+ * typeck2.c (check_narrowing): Check by-hand that the pedwarn didn't
+ result in an actual error.
+
+2015-05-01 Paolo Carlini <paolo.carlini@oracle.com>
+ Prathamesh Kulharni <prathamesh.kulkarni@linaro.org>
+
+ PR c++/65858
+ * typeck2.c (check_narrowing): Set ok = true when pedwarn returns
+ false.
+
+2015-04-30 David Malcolm <dmalcolm@redhat.com>
+
+ * cp-tree.h (ARGUMENT_PACK_SELECT_ARG): Remove spurious
+ trailing semicolon.
+
+2015-04-29 Jason Merrill <jason@redhat.com>
+
+ PR c++/50800
+ * tree.c (apply_identity_attributes): Fix handling of classes.
+
+2015-04-29 Thomas Schwinge <thomas@codesourcery.com>
+
+ * parser.c (cp_parser_oacc_enter_exit_data): Use
+ OMP_STANDALONE_CLAUSES.
+
+2015-04-29 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/64667
+ * init.c (perform_member_init): Handle references for -Winit-self.
+
+2015-04-29 Thomas Schwinge <thomas@codesourcery.com>
+
+ * pt.c (tsubst_expr) <OMP_TARGET_UPDATE>: Use
+ OMP_TARGET_UPDATE_CLAUSES instead of OMP_CLAUSES.
+
+2015-04-28 Jason Merrill <jason@redhat.com>
+
+ PR c++/65896
+ * constexpr.c (cxx_eval_store_expression): Don't try to actually
+ store an empty class.
+
+ PR c++/65656
+ * constexpr.c (cxx_eval_builtin_function_call): Fix
+ __builtin_constant_p.
+
+ PR c++/50800
+ * tree.c (strip_typedefs): Add remove_attributes parm.
+ (strip_typedefs_expr): Likewise.
+ (apply_identity_attributes): New subroutine of strip_typedefs.
+ * pt.c (canonicalize_type_argument): Let strip_typedefs handle attrs.
+ (convert_nontype_argument, unify): Likewise.
+ * cp-tree.h: Adjust.
+
+ PR c++/65734
+ * class.c (fixup_attribute_variants): Respect TYPE_USER_ALIGN.
+
+2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
+
+ * class.c (layout_class_type): Remove check if
+ PCC_BITFIELD_TYPE_MATTERS is defined.
+
+2015-04-27 Jim Wilson <jim.wilson@linaro.org>
+
+ * Make-lang.in (c++.mostlyclean): Remove xg++, g++-cross, and cc1plus.
+
+2015-04-24 Jason Merrill <jason@redhat.com>
+
+ PR c++/50800
+ * typeck.c (structural_comptypes): Don't check TYPE_REF_CAN_ALIAS_ALL.
+
+ * constexpr.c (potential_constant_expression_1) [MINUS_EXPR]:
+ Remove obsolete code.
+ [NE_EXPR]: Likewise.
+
+2015-04-23 Jason Merrill <jason@redhat.com>
+
+ PR c++/65646
+ * pt.c (check_explicit_specialization): Don't
+ SET_DECL_TEMPLATE_SPECIALIZATION for a variable with no template
+ headers.
+ * decl.c (grokvardecl): Revert earlier fix.
+
+2015-04-20 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/65801
+ * typeck2.c (check_narrowing): In C++11 mode too, -Wno-narrowing
+ suppresses the diagnostic.
+
+2015-04-20 Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ Reject trailing return type for an operator auto().
+ * decl.c (grokdeclarator): Reject trailing return types for
+ all conversion operators, don't handle conversion operators
+ in the previous checks that deal with auto.
+
+2015-04-20 Ilya Verbin <ilya.verbin@intel.com>
+
+ * parser.c (cp_parser_omp_target_update): Add missed %> to error_at ().
+
+2015-04-16 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * class.c (resolve_address_of_overloaded_function, instantiate_type):
+ Rename tsubst_flags_t parameter flags -> complain.
+
+2015-04-16 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * call.c (build_op_delete_call, build_over_call): Check mark_used
+ return value.
+ * class.c (resolve_address_of_overloaded_function): Likewise.
+ * decl.c (cxx_maybe_build_cleanup): Likewise.
+ * pt.c (gen_elem_of_pack_expansion_instantiation, tsubst_baselink,
+ tsubst_qualified_id, tsubst_copy, tsubst_copy_and_build): Likewise.
+ * rtti.c (build_dynamic_cast_1): Likewise.
+ * semantics.c (process_outer_var_ref): Likewise.
+ * typeck.c (build_class_member_access_expr,
+ cp_build_function_call_vec, cp_build_addr_expr_1): Likewise.
+
+2015-04-15 Jason Merrill <jason@redhat.com>
+
+ * constexpr.c (cxx_eval_store_expression): Ignore clobbers.
+ (build_constexpr_constructor_member_initializers): Loop to find
+ the BIND_EXPR.
+ * decl.c (start_preparsed_function): Clobber the object at the
+ beginning of a constructor.
+
+ * decl.c (grokmethod): Only set DECL_COMDAT if TREE_PUBLIC is set.
+ * method.c (implicitly_declare_fn): Likewise.
+ * decl2.c (vague_linkage_p): Check TREE_PUBLIC first.
+
+ * decl2.c (determine_visibility): Use get_template_info.
+
+2015-04-15 Jason Merrill <jason@redhat.com>
+ Marek Polacek <polacek@redhat.com>
+
+ PR c++/65727
+ * lambda.c (lambda_expr_this_capture): In unevaluated context go
+ through the normal loop, just don't capture.
+ (maybe_resolve_dummy): Handle null return.
+
+2015-04-15 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * call.c (enforce_access): Emit error + inform.
+
+2015-04-15 Marek Polacek <polacek@redhat.com>
+
+ * constexpr.c (use_new_call): Remove #define.
+ (lookup_parameter_binding): Remove function.
+ (cxx_bind_parameters_in_call): Remove unused code.
+ (cxx_eval_call_expression): Likewise.
+ (cxx_eval_constant_expression): Likewise.
+
+2015-04-14 Mikhail Maltsev <maltsevm@gmail.com>
+
+ * tree.c (replace_placeholders_t): Remove unused type.
+ (replace_placeholders): Remove unused pset.
+
+2015-04-14 Jason Merrill <jason@redhat.com>
+
+ * pt.c (lookup_template_class_1): Use coerce_innermost_template_parms.
+
+ PR c++/65695
+ * cvt.c (cp_fold_convert): Avoid wrapping PTRMEM_CST in NOP_EXPR.
+
+ PR c++/65721
+ * name-lookup.c (do_class_using_decl): Complain about specifying
+ the current class even if there are dependent bases.
+
+2015-04-14 David Krauss <david_work@me.com>
+
+ PR c++/59766
+ * decl.c (grokdeclarator): Do not flag friends with deduced return.
+
+2015-04-14 Momchil Velikov <momchil.velikov@gmail.com>
+ Jason Merrill <jason@redhat.com>
+
+ PR c++/60994
+ * parser.c (cp_parser_class_name): Add enum_ok parameter.
+ (cp_parser_qualifying_entity): Use it instead of cp_parser_type_name.
+ (cp_parser_diagnose_invalid_type_name): Don't assume a template is
+ a class template.
+
+2015-04-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/65736
+ * constexpr.c (cxx_eval_pointer_plus_expression): Don't fold for VLAs,
+ don't fold if op01 isn't divisible by TYPE_SIZE_UNIT. Convert
+ the expression to the original type at the end.
+
+2015-04-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/65690
+ * tree.c (cp_build_qualified_type_real): Copy TYPE_ALIGN and
+ TYPE_USER_ALIGN.
+
+ PR c++/65690
+ * tree.c (build_cplus_array_type): Layout type before variants are
+ set, but copy over TYPE_SIZE and TYPE_SIZE_UNIT from the main
+ variant.
+
+2015-04-03 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/64085
+ * lambda.c (add_capture): Use dependent_type_p for capture by
+ reference too.
+
+2015-04-02 Marek Polacek <polacek@redhat.com>
+
+ PR c++/65642
+ * constexpr.c (cxx_eval_pointer_plus_expression): Call
+ cxx_eval_constant_expression on the first operand.
+
+2015-04-01 Jason Merrill <jason@redhat.com>
+
+ PR c++/65625
+ * decl.c (make_typename_type): Handle seeing a variable template.
+
+2015-04-01 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/56100
+ * pt.c (instantiating_current_function_p): New.
+ * name-lookup.c (pushdecl_maybe_friend_1): Use it.
+ * cp-tree.h (instantiating_current_function_p): Declare.
+
+2015-04-01 Jason Merrill <jason@redhat.com>
+
+ PR c++/65646
+ * decl.c (grokvardecl): Don't call check_explicit_specialization
+ for non-template members of a class template.
+
+2015-04-01 Marek Polacek <polacek@redhat.com>
+
+ PR c++/65554
+ * class.c (finish_struct): Require that the second field of a
+ user-defined initializer_list be of size type.
+
+2015-03-31 Marek Polacek <polacek@redhat.com>
+
+ PR c++/65390
+ * tree.c (build_cplus_array_type): Use dependent_type_p rather than
+ checking for constness.
+
+2015-03-30 Marek Polacek <polacek@redhat.com>
+
+ PR c++/65398
+ * constexpr.c (cxx_fold_indirect_ref): Don't perform the
+ *(&A[i] p+ j) => A[i + j] transformation here.
+ (cxx_eval_pointer_plus_expression): New function.
+ (cxx_eval_constant_expression): Use it here.
+
+2015-03-27 Tobias Burnus <burnus@net-b.de>
+
+ PR c/65586
+ * parser.c (cp_parser_omp_for, cp_parser_omp_parallel,
+ cp_parser_omp_distribute, cp_parser_omp_teams, cp_parser_omp_target,
+ cp_parser_omp_declare): Don't show error for skipped omp pragmas with
+ -fopenmp-simd.
+
+2015-03-27 Marek Polacek <polacek@redhat.com>
+
+ PR c++/65556
+ * semantics.c (finish_switch_cond): If the unlowered type is not an
+ enum, use the type of the condition.
+
+2015-03-27 Jason Merrill <jason@redhat.com>
+
+ PR c++/65509
+ * decl.c (make_rtl_for_nonlocal_decl): Don't defer static
+ constants.
+
+2015-03-26 Mikhail Maltsev <maltsevm@gmail.com>
+
+ PR c++/65154
+ * init.c (build_vec_init): Fix initializing aggregates
+ with empty init list.
+
+2015-03-26 Jason Merrill <jason@redhat.com>
+
+ PR c++/65525
+ * constexpr.c (potential_constant_expression_1): Handle MEM_REF.
+
+2015-03-25 Marek Polacek <polacek@redhat.com>
+
+ PR c++/65558
+ * name-lookup.c (handle_namespace_attrs): Ignore abi_tag attribute
+ on an anonymous namespace.
+
+2015-03-25 Marek Polacek <polacek@redhat.com>
+
+ PR c++/61670
+ * class.c (remove_zero_width_bit_fields): Check for null DECL_SIZE.
+
+2015-03-24 Jason Merrill <jason@redhat.com>
+
+ PR c++/65046
+ * cp-tree.h (NAMESPACE_IS_INLINE): Remove.
+ * parser.c (cp_parser_namespace_definition): Don't set it.
+ * name-lookup.c (handle_namespace_attrs): Check
+ DECL_NAMESPACE_ASSOCIATIONS instead.
+
+ PR c++/65498
+ * pt.c (get_mostly_instantiated_function_type): Just return the
+ type of the partially instantiated template in DECL_TI_TEMPLATE.
+
+2015-03-20 Marek Polacek <polacek@redhat.com>
+
+ PR c++/65398
+ * constexpr.c (cxx_fold_indirect_ref): Transform *(&A[i] p+ j) into
+ A[i + j].
+
+2015-03-20 Marek Polacek <polacek@redhat.com>
+
+ PR c++/65072
+ * typeck.c (lookup_anon_field): Make sure we're dealing with the main
+ variant.
+
+2015-03-19 Jason Merrill <jason@redhat.com>
+
+ PR c++/65046
+ Automatically propagate ABI tags to variables and functions
+ from their (return) type.
+ * class.c (check_tag): Handle variables and functions.
+ (mark_or_check_attr_tags): Split out from find_abi_tags_r.
+ (mark_or_check_tags): Likewise.
+ (mark_abi_tags): Use it. Rename from mark_type_abi_tags.
+ (check_abi_tags): Add single argument overload for decls.
+ Handle inheriting tags for decls.
+ * mangle.c (write_mangled_name): Call it.
+ (mangle_return_type_p): Split out from write_encoding.
+ (unmangled_name_p): Split out from write_mangled_name.
+ (write_mangled_name): Ignore abi_tag on namespace.
+ * cp-tree.h (NAMESPACE_IS_INLINE): Replace NAMESPACE_ABI_TAG.
+ * parser.c (cp_parser_namespace_definition): Set it.
+ * name-lookup.c (handle_namespace_attrs): Use arguments. Warn
+ about abi_tag attribute on non-inline namespace.
+ * tree.c (check_abi_tag_args): Split out from handle_abi_tag_attribute.
+ (handle_abi_tag_attribute): Allow tags on variables.
+
+2015-03-19 Jakub Jelinek <jakub@redhat.com>
+
+ * decl2.c (cplus_decl_attributes): Also add "omp declare target"
+ attribute for DECL_EXTERNAL VAR_DECLs.
+
+2015-03-18 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/65340
+ * call.c (build_over_call): Pass the tsubst_flags_t argument to
+ mark_used.
+ * decl2.c (mark_used): Inline the require_deduced_type call and
+ guard the error call.
+
+2015-03-16 Jason Merrill <jason@redhat.com>
+
+ PR c++/65061
+ * parser.c (cp_parser_template_name): Call strip_using_decl.
+
+2015-03-16 Marek Polacek <polacek@redhat.com>
+
+ DR 1688
+ PR c++/65327
+ * decl.c (grokdeclarator): Allow volatile and constexpr together.
+
+2015-03-12 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/65323
+ * decl.c (check_default_argument): Don't call
+ maybe_warn_zero_as_null_pointer_constant.
+
+2015-03-11 Aldy Hernandez <aldyh@redhat.com>
+
+ * cp-gimplify.c (simple_empty_class_p): New.
+ * cp-gimplify.c (cp_gimplify_expr): Handle RETURN_EXPR. Abstract
+ the code for empty class copies into simple_empty_class_p, and
+ adapt it to handle COMPOUND_EXPRs.
+
+2015-03-10 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/65370
+ * decl.c (duplicate_decls): Call check_redeclaration_no_default_args
+ only if the location of newdecl doesn't match the location of olddecl.
+
+2015-03-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/65127
+ * parser.c (parsing_nsdmi): Don't return true if current_class_ptr
+ is not a PARM_DECL.
+
+2015-03-10 Jason Merrill <jason@redhat.com>
+
+ PR c++/65333
+ DR 1558
+ * pt.c (dependent_type_p_r): Check both class and alias template args.
+
+2015-03-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/65120
+ * parser.c (cp_parser_binary_expression): Check for tcc_comparison
+ before preparing arguments to warn_logical_not_parentheses.
+ Use maybe_constant_value on rhs.
+
+2015-03-09 Jason Merrill <jason@redhat.com>
+
+ PR c++/65339
+ * call.c: Don't call maybe_resolve_dummy when calling a constructor.
+
+2015-03-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/65120
+ * parser.c (cp_parser_binary_expression): Don't warn for
+ !!x == y or !b == y where b is bool.
+
+2015-03-06 Aldy Hernandez <aldyh@redhat.com>
+
+ * ptree.c (cxx_print_lambda_node): New.
+ (cxx_print_xnode): Handle LAMBDA_EXPR.
+
+2015-03-03 Aldy Hernandez <aldyh@redhat.com>
+
+ PR c++/65295
+ * constexpr.c (cxx_eval_constant_expression): Remove assert in
+ RESULT_DECL handling.
+
+2015-02-26 Marek Polacek <polacek@redhat.com>
+
+ PR c++/65202
+ * constexpr.c (cxx_eval_constant_expression): Don't evaluate
+ a RETURN_EXPR if its operand is null.
+
+2015-02-25 Jason Merrill <jason@redhat.com>
+
+ PR c++/65209
+ * decl2.c (constrain_visibility) [VISIBILITY_ANON]: Clear
+ DECL_COMDAT.
+ (constrain_visibility_for_template): Handle reference arguments.
+
+ PR debug/58315
+ * decl.c (start_preparsed_function): Use create_artificial_label
+ for cdtor_label.
+
+2015-02-17 Paolo Carlini <paolo.carlini@oracle.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/65075
+ * constexpr.c (check_constexpr_bind_expr_vars): Allow
+ implicit typedefs for lambda types.
+
+2015-02-13 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/60894
+ * decl.c (lookup_and_check_tag): Use strip_using_decl.
+
+2015-02-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/65054
+ * pt.c (template_args_equal): Look through conversions here.
+ * tree.c (cp_tree_equal): Not here.
+
+2015-02-13 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/60211
+ * parser.c (cp_parser_pragma): Diagnose PRAGMA_IVDEP at
+ pragma_external context.
+
+2015-02-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/65051
+ * call.c (reference_binding): Don't look for bad conversion
+ if TO is incomplete.
+
+2015-02-13 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/64970
+ * decl.c (make_typename_type): Pass tsubst_flags_t argument
+ to lookup_template_class.
+
+2015-02-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR ipa/65034
+ * decl.c (start_preparsed_function): Use void_type_node instead
+ of NULL_TREE as LABEL_DECL type.
+
+2015-02-12 Jason Merrill <jason@redhat.com>
+
+ PR c++/64898
+ * mangle.c (write_mangled_name): Fix test for variable template
+ instantiation.
+
+ * decl.c (begin_destructor_body): Condition clobber on
+ -flifetime-dse.
+
+2015-02-12 Andrea Azzarone <azzaronea@gmail.com>
+
+ PR c++/64959
+ * parser.c (lookup_literal_operator): Return all candidates.
+ (cp_parser_userdef_char_literal): Simplify error handling.
+ (cp_parser_userdef_numeric_literal): Pass tf_warning_or_error.
+ (cp_parser_userdef_string_literal): Pass tf_warning_or_error.
+ Also give higher priority to standard string UDL operator.
+
+2015-02-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/55541
+ * cp-tree.h (BLOCK_OUTER_CURLY_BRACE_P): Define.
+ * decl.c (poplevel): If functionbody, try not to create an extra
+ BLOCK for function body and use subblocks as that, if it is non-NULL
+ and doesn't have siblings. Set BLOCK_OUTER_CURLY_BRACE_P flag.
+ (outer_curly_brace_block): Use BLOCK_OUTER_CURLY_BRACE_P flag.
+
+ PR sanitizer/64984
+ * except.c (check_noexcept_r): Return NULL for internal
+ calls.
+
+2015-02-10 Jason Merrill <jason@redhat.com>
+
+ PR c++/64994
+ * constexpr.c (cxx_eval_call_expression): Walk the clone list.
+
+2015-02-10 Jan Hubicka <hubicka@ucw.cz>
+
+ PR ipa/64982
+ * method.c (use_thunk): Do not check for stdarg thunks.
+
+2015-02-06 Jason Merrill <jason@redhat.com>
+
+ PR c++/64899
+ * init.c (build_vec_init): Handle default-initialized array with
+ constexpr default constructor.
+
+2015-02-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/64824
+ PR c/64868
+ * parser.c (cp_parser_omp_atomic): Handle RDIV_EXPR.
+
+2015-02-03 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/64877
+ * typeck.c (cp_build_binary_op): Avoid spurious -Waddress warnings
+ for generated expressions.
+
+2015-02-02 Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ PR c++/64901
+ * decl.c (duplicate_decls): Also duplicate DECL_FINAL_P and
+ DECL_OVERRIDE_P.
+
+2015-02-02 Jason Merrill <jason@redhat.com>
+
+ * tree.c (handle_abi_tag_attribute): Diagnose invalid arguments.
+
+2015-01-30 Joseph Myers <joseph@codesourcery.com>
+
+ * class.c, except.c, parser.c, pt.c: All callers of fatal_error
+ changed to pass input_location as first argument.
+
+2015-01-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/64717
+ * cp-ubsan.c (cp_ubsan_instrument_vptr): Don't wrap vptr
+ into SAVE_EXPR.
+
+2015-01-29 Jason Merrill <jason@redhat.com>
+
+ PR c++/49508
+ * semantics.c (finish_return_stmt): Suppress -Wreturn-type on
+ erroneous return statement.
+
+ PR c++/64521
+ * repo.c (repo_emit_p): It's OK for a clone to be extern at this
+ point.
+
+2015-01-27 Caroline Tice <cmtice@google.com>
+
+ Committing VTV Cywin/Ming patch for Patrick Wollgast
+ * vtable-class-hierarchy.cc (vtv_generate_init_routine): Add
+ check for not TARGET_PECOFF at the VTV_PREINIT_PRIORITY checks.
+
+2015-01-27 Jason Merrill <jason@redhat.com>
+
+ PR c++/58597
+ * lambda.c (maybe_add_lambda_conv_op): Check cfun rather than
+ current_function_decl.
+
+ PR c++/63889
+ * pt.c (finish_template_variable): Move from semantics.c.
+ Handle multiple template arg levels. Handle coercion here.
+ (lookup_template_variable): Not here.
+
+2015-01-23 Jason Merrill <jason@redhat.com>
+
+ PR c++/64314
+ PR c++/57510
+ * typeck2.c (split_nonconstant_init_1): Remove a sub-CONSTRUCTOR
+ that has been completely split out.
+
+ PR c++/64701
+ * constexpr.c (cxx_eval_constant_expression): Don't crash on C++
+ statement codes.
+
+ PR c++/64727
+ * constexpr.c (cxx_eval_constant_expression): Allow for lvalue use
+ of CONST_DECL.
+
+2015-01-21 Jason Merrill <jason@redhat.com>
+
+ PR c++/64603
+ * constexpr.c (cxx_eval_constant_expression): Only shortcut
+ constant CONSTRUCTORs.
+
+ PR c++/64647
+ * constexpr.c (ensure_literal_type_for_constexpr_object): Don't
+ give a hard error in a template instantiation.
+
+2015-01-21 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/64313
+ * decl.c (duplicate_decls): Call set_builtin_decl_declared_p
+ for builtins the user declared correctly.
+
+2015-01-16 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/58614
+ * pt.c (unify): When BRACE_ENCLOSED_INITIALIZER_P (arg), handle
+ TREE_TYPE (elt) == error_mark_node.
+
+2015-01-15 Jan Hubicka <hubicka@ucw.cz>
+
+ PR tree-optimization/62053
+ * tree.c (build_cplus_array_type): Layout type after variants are set.
+
+2015-01-15 Jakub Jelinek <jakub@redhat.com>
+
+ * cp-gimplify.c (cp_genericize_r): Call
+ cp_ubsan_maybe_instrument_member_call for member calls.
+ (cp_ubsan_check_member_access_r): New function.
+ (cp_genericize_tree): Call cp_ubsan_instrument_member_accesses.
+ * cp-tree.h (cp_ubsan_maybe_instrument_member_call,
+ cp_ubsan_instrument_member_accesses,
+ cp_ubsan_maybe_instrument_downcast,
+ cp_ubsan_maybe_instrument_cast_to_vbase): New prototypes.
+ * cp-ubsan.c: New file.
+ * Make-lang.in (CXX_AND_OBJCXX_OBJS): Add cp/cp-ubsan.o.
+ * constexpr.c (cxx_eval_call_expression): Return void_node
+ for IFN_UBSAN_VPTR.
+ (potential_constant_expression_1): Return true for
+ UBSAN_NULL, UBSAN_BOUNDS and UBSAN_VPTR internal calls.
+ * typeck.c (build_class_member_access_expr): Provide locus
+ for COMPONENT_REFs.
+ (build_static_cast_1): Instrument downcasts.
+ * class.c (build_base_path): For -fsanitize=vptr and !fixed_type_p
+ add ubsan instrumentation for virtual_access.
+ * call.c: Include internal-fn.h.
+ (set_flags_from_callee): Handle internal calls.
+
+2015-01-15 Momchil Velikov <momchil.velikov@gmail.com>
+
+ PR c++/59366
+ * name-lookup.c (pushdecl_maybe_friend_1): Hide friend functions
+ and function templates, declared only in the class.
+ * decl.c (duplicate_decls): Reveal hidden friend functions or
+ function templates, if they are redeclared outside the class.
+
+2015-01-15 Jason Merrill <jason@redhat.com>
+
+ PR c++/64356
+ * constexpr.c (cxx_eval_binary_expression): Fix pasto.
+
+ PR c++/63283
+ * constexpr.c (potential_constant_expression_1): Handle reference
+ args in templates.
+
+2015-01-15 Thomas Schwinge <thomas@codesourcery.com>
+ James Norris <jnorris@codesourcery.com>
+ Cesar Philippidis <cesar@codesourcery.com>
+ Ilmir Usmanov <i.usmanov@samsung.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ * parser.c: Include "gomp-constants.h".
+ (cp_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
+ omp_clause_map_kind. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
+ Use OMP_CLAUSE_SET_MAP_KIND.
+ (cp_parser_omp_construct, cp_parser_pragma): Handle
+ PRAGMA_OACC_CACHE, PRAGMA_OACC_DATA, PRAGMA_OACC_ENTER_DATA,
+ PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_PARALLEL,
+ PRAGMA_OACC_LOOP, PRAGMA_OACC_UPDATE, PRAGMA_OACC_WAIT.
+ (cp_parser_omp_clause_name): Handle "async", "copy", "copyout",
+ "create", "delete", "deviceptr", "host", "num_gangs",
+ "num_workers", "present", "present_or_copy", "pcopy",
+ "present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
+ "present_or_create", "pcreate", "vector_length", "wait".
+ (OACC_DATA_CLAUSE_MASK, OACC_ENTER_DATA_CLAUSE_MASK)
+ (OACC_EXIT_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
+ (OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
+ (OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
+ (cp_parser_omp_var_list_no_open): Handle OMP_CLAUSE__CACHE_.
+ (cp_parser_oacc_data_clause, cp_parser_oacc_data_clause_deviceptr)
+ (cp_parser_oacc_clause_vector_length, cp_parser_oacc_wait_list)
+ (cp_parser_oacc_clause_wait, cp_parser_omp_clause_num_gangs)
+ (cp_parser_omp_clause_num_workers, cp_parser_oacc_clause_async)
+ (cp_parser_oacc_all_clauses, cp_parser_oacc_cache)
+ (cp_parser_oacc_data, cp_parser_oacc_enter_exit_data)
+ (cp_parser_oacc_kernels, cp_parser_oacc_loop)
+ (cp_parser_oacc_parallel, cp_parser_oacc_update)
+ (cp_parser_oacc_wait): New functions.
+ * cp-tree.h (finish_oacc_data, finish_oacc_kernels)
+ (finish_oacc_parallel): New prototypes.
+ * semantics.c: Include "gomp-constants.h".
+ (handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR. Use
+ GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
+ OMP_CLAUSE_SET_MAP_KIND.
+ (finish_omp_clauses): Handle OMP_CLAUSE_ASYNC,
+ OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_WAIT, OMP_CLAUSE__CACHE_.
+ Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
+ (finish_oacc_data, finish_oacc_kernels, finish_oacc_parallel): New
+ functions.
+
+2015-01-14 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/58671
+ * decl2.c (var_defined_without_dynamic_init): Handle gracefully
+ self-initialization.
+
+2015-01-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/64356
+ PR libstdc++/58777
+ * constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT
+ pointer expressions.
+ (cxx_eval_increment_expression): Likewise.
+
+ PR c++/64514
+ * pt.c (coerce_template_parameter_pack): Return NULL for a
+ zero-length fixed parameter pack with a pack expansion arg.
+
+ PR c++/64520
+ * pt.c (unify): Don't try to deduce to std::initializer_list<T...>.
+
+2015-01-12 Jason Merrill <jason@redhat.com>
+
+ PR c++/64547
+ * constexpr.c (cxx_eval_call_expression): A call to a void
+ function doesn't need to return a value.
+
+2015-01-09 Michael Collison <michael.collison@linaro.org>
+
+ * call.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
+ input.h, alias.h, symtab.h, options.h, fold-const.h,
+ wide-int.h, and inchash.h due to flattening of tree.h.
+ * class.c: Ditto.
+ * constexpr.c: Ditto.
+ * cp-array-notation.c: Ditto.
+ * cp-gimplify.c: Ditto.
+ * cp-lang.c: Ditto.
+ * cp-objcp-common.c: Ditto.
+ * cvt.c: Ditto.
+ * decl2.c: Ditto.
+ * decl.c: Ditto.
+ * dump.c: Ditto.
+ * error.c: Ditto.
+ * except.c: Ditto.
+ * expr.c: Ditto.
+ * friend.c: Ditto.
+ * init.c: Ditto.
+ * lambda.c: Ditto.
+ * lex.c: Ditto.
+ * mangle.c: Ditto.
+ * name-lookup.c: Ditto.
+ * optimize.c: Ditto.
+ * parser.c: Ditto.
+ * pt.c: Ditto.
+ * ptree.c: Ditto.
+ * repo.c: Ditto.
+ * rtti.c: Ditto.
+ * search.c: Ditto.
+ * semantics.c: Ditto.
+ * tree.c: Ditto.
+ * typeck2.c: Ditto.
+ * typeck.c: Ditto.
+
+2015-01-08 Jason Merrill <jason@redhat.com>
+
+ * cp-gimplify.c (cp_genericize): Use do_ubsan_in_current_function.
+ * decl.c (compute_array_index_type): Likewise.
+ * init.c (build_vec_init): Likewise.
+ * typeck.c (cp_build_binary_op): Likewise.
+
+2015-01-08 Jason Merrill <jason@redhat.com>
+
+ * init.c (build_vec_init): Call ubsan_instrument_bounds to check
+ whether an initializer-list is too big for a VLA.
+ (throw_bad_array_length): Remove.
+ * cp-tree.h: Remove prototype.
+
+2015-01-08 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/60753
+ * decl.c (grokfndecl): Add bool parameter.
+ (grokdeclarator): Adjust calls.
+ (start_decl): Don't set DECL_DELETED_FN here.
+
+2015-01-06 Jason Merrill <jason@redhat.com>
+
+ * parser.c (cp_parser_nested_name_specifier_opt): Diagnose invalid
+ template-ids.
+
+ PR c++/64455
+ * pt.c (type_dependent_expression_p): Handle variable templates.
+ * constexpr.c (potential_constant_expression_1): Use it.
+
+ PR c++/64487
+ * semantics.c (finish_offsetof): Handle templates here.
+ * parser.c (cp_parser_builtin_offsetof): Not here.
+
+ PR c++/64496
+ * semantics.c (process_outer_var_ref): Diagnose lambda in local
+ class NSDMI.
+
+2015-01-06 Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ PR c++/64489
+ * class.c (check_field_decls): Make copy assignment operators
+ complex only in c++98 mode.
+
+2015-01-05 Trevor Saunders <tsaunders@mozilla.com>
+
+ PR c++/31397
+ * class.c (check_for_override): Warn when a virtual function is an
+ override not marked override.
+
+2015-01-05 Trevor Saunders <tsaunders@mozilla.com>
+
+ * class.c (warn_hidden): Use auto_vec<tree> instead of tree_list to
+ hold base_fndecls.
+ (get_basefndecls): Adjust.
+
+2015-01-05 Jakub Jelinek <jakub@redhat.com>
+
+ Update copyright years.
+
+2015-01-05 Marek Polacek <polacek@redhat.com>
+
+ PR c/64423
+ * typeck.c (cp_build_array_ref): Pass loc down to
+ warn_array_subscript_with_type_char.
+
+
+Copyright (C) 2015 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
index d478b4a..671ce12 100644
--- a/gcc/cp/Make-lang.in
+++ b/gcc/cp/Make-lang.in
@@ -1,5 +1,5 @@
# Top level -*- makefile -*- fragment for GNU C++.
-# Copyright (C) 1994-2015 Free Software Foundation, Inc.
+# Copyright (C) 1994-2016 Free Software Foundation, Inc.
#This file is part of GCC.
diff --git a/gcc/cp/NEWS b/gcc/cp/NEWS
index ff725e9..72a9a6c 100644
--- a/gcc/cp/NEWS
+++ b/gcc/cp/NEWS
@@ -401,7 +401,7 @@
the exception handling work.
-Copyright (C) 1997-2015 Free Software Foundation, Inc.
+Copyright (C) 1997-2016 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index 4f25356..4c3c415 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -1,5 +1,5 @@
/* Functions related to invoking methods and overloaded functions.
- Copyright (C) 1987-2015 Free Software Foundation, Inc.
+ Copyright (C) 1987-2016 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com) and
modified by Brendan Kehoe (brendan@cygnus.com).
diff --git a/gcc/cp/cfns.gperf b/gcc/cp/cfns.gperf
index 68acd3d..2784edc 100644
--- a/gcc/cp/cfns.gperf
+++ b/gcc/cp/cfns.gperf
@@ -1,5 +1,5 @@
%{
-/* Copyright (C) 2000-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2016 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/cp/cfns.h b/gcc/cp/cfns.h
index 1c6665d..d8e02c9 100644
--- a/gcc/cp/cfns.h
+++ b/gcc/cp/cfns.h
@@ -30,7 +30,7 @@
#line 1 "cfns.gperf"
-/* Copyright (C) 2000-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2016 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index ab9ba26..038e4c7 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -1,5 +1,5 @@
/* Functions related to building classes and their related objects.
- Copyright (C) 1987-2015 Free Software Foundation, Inc.
+ Copyright (C) 1987-2016 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com)
This file is part of GCC.
diff --git a/gcc/cp/config-lang.in b/gcc/cp/config-lang.in
index ba841df..276fc1d 100644
--- a/gcc/cp/config-lang.in
+++ b/gcc/cp/config-lang.in
@@ -1,5 +1,5 @@
# Top level configure fragment for GNU C++.
-# Copyright (C) 1994-2015 Free Software Foundation, Inc.
+# Copyright (C) 1994-2016 Free Software Foundation, Inc.
#This file is part of GCC.
diff --git a/gcc/cp/constexpr.c b/gcc/cp/constexpr.c
index 208f43b..bcf26a6 100644
--- a/gcc/cp/constexpr.c
+++ b/gcc/cp/constexpr.c
@@ -2,7 +2,7 @@
constexpr functions. These routines are used both during actual parsing
and during the instantiation of template functions.
- Copyright (C) 1998-2015 Free Software Foundation, Inc.
+ Copyright (C) 1998-2016 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/cp/constraint.cc b/gcc/cp/constraint.cc
index 426d8f3..5e42fa9 100644
--- a/gcc/cp/constraint.cc
+++ b/gcc/cp/constraint.cc
@@ -1,5 +1,5 @@
/* Processing rules for constraints.
- Copyright (C) 2013-2015 Free Software Foundation, Inc.
+ Copyright (C) 2013-2016 Free Software Foundation, Inc.
Contributed by Andrew Sutton (andrew.n.sutton@gmail.com)
This file is part of GCC.
diff --git a/gcc/cp/cp-array-notation.c b/gcc/cp/cp-array-notation.c
index 8862af1..f7a4598 100644
--- a/gcc/cp/cp-array-notation.c
+++ b/gcc/cp/cp-array-notation.c
@@ -1,7 +1,7 @@
/* This file is part of the Intel(R) Cilk(TM) Plus support
It contains routines to handle Array Notation expression
handling routines in the C++ Compiler.
- Copyright (C) 2013-2015 Free Software Foundation, Inc.
+ Copyright (C) 2013-2016 Free Software Foundation, Inc.
Contributed by Balaji V. Iyer <balaji.v.iyer@intel.com>,
Intel Corporation
diff --git a/gcc/cp/cp-cilkplus.c b/gcc/cp/cp-cilkplus.c
index 2b3a551..3b6cda2 100644
--- a/gcc/cp/cp-cilkplus.c
+++ b/gcc/cp/cp-cilkplus.c
@@ -1,7 +1,7 @@
/* This file is part of the Intel(R) Cilk(TM) Plus support
This file contains routines to handle Cilk Plus specific
routines for the C++ Compiler.
- Copyright (C) 2013-2015 Free Software Foundation, Inc.
+ Copyright (C) 2013-2016 Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldyh@redhat.com>.
This file is part of GCC.
diff --git a/gcc/cp/cp-gimplify.c b/gcc/cp/cp-gimplify.c
index 373c9e1..3bc2769 100644
--- a/gcc/cp/cp-gimplify.c
+++ b/gcc/cp/cp-gimplify.c
@@ -1,6 +1,6 @@
/* C++-specific tree lowering bits; see also c-gimplify.c and tree-gimple.c.
- Copyright (C) 2002-2015 Free Software Foundation, Inc.
+ Copyright (C) 2002-2016 Free Software Foundation, Inc.
Contributed by Jason Merrill <jason@redhat.com>
This file is part of GCC.
diff --git a/gcc/cp/cp-lang.c b/gcc/cp/cp-lang.c
index 048108d..8cfee4f 100644
--- a/gcc/cp/cp-lang.c
+++ b/gcc/cp/cp-lang.c
@@ -1,5 +1,5 @@
/* Language-dependent hooks for C++.
- Copyright (C) 2001-2015 Free Software Foundation, Inc.
+ Copyright (C) 2001-2016 Free Software Foundation, Inc.
Contributed by Alexandre Oliva <aoliva@redhat.com>
This file is part of GCC.
diff --git a/gcc/cp/cp-objcp-common.c b/gcc/cp/cp-objcp-common.c
index 2758252..f7ddb00 100644
--- a/gcc/cp/cp-objcp-common.c
+++ b/gcc/cp/cp-objcp-common.c
@@ -1,5 +1,5 @@
/* Some code common to C++ and ObjC++ front ends.
- Copyright (C) 2004-2015 Free Software Foundation, Inc.
+ Copyright (C) 2004-2016 Free Software Foundation, Inc.
Contributed by Ziemowit Laski <zlaski@apple.com>
This file is part of GCC.
diff --git a/gcc/cp/cp-objcp-common.h b/gcc/cp/cp-objcp-common.h
index 199c3f1..1bb19ee 100644
--- a/gcc/cp/cp-objcp-common.h
+++ b/gcc/cp/cp-objcp-common.h
@@ -1,5 +1,5 @@
/* Language hooks common to C++ and ObjC++ front ends.
- Copyright (C) 2004-2015 Free Software Foundation, Inc.
+ Copyright (C) 2004-2016 Free Software Foundation, Inc.
Contributed by Ziemowit Laski <zlaski@apple.com>
This file is part of GCC.
diff --git a/gcc/cp/cp-tree.def b/gcc/cp/cp-tree.def
index 7df72c5..e6e5139 100644
--- a/gcc/cp/cp-tree.def
+++ b/gcc/cp/cp-tree.def
@@ -1,7 +1,7 @@
/* This file contains the definitions and documentation for the
additional tree codes used in the GNU C++ compiler (see tree.def
for the standard codes).
- Copyright (C) 1987-2015 Free Software Foundation, Inc.
+ Copyright (C) 1987-2016 Free Software Foundation, Inc.
Hacked by Michael Tiemann (tiemann@cygnus.com)
This file is part of GCC.
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index f0f7e36c..fc9507e 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -1,5 +1,5 @@
/* Definitions for C++ parsing and type checking.
- Copyright (C) 1987-2015 Free Software Foundation, Inc.
+ Copyright (C) 1987-2016 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com)
This file is part of GCC.
diff --git a/gcc/cp/cp-ubsan.c b/gcc/cp/cp-ubsan.c
index 6ffeb16..7454c0a 100644
--- a/gcc/cp/cp-ubsan.c
+++ b/gcc/cp/cp-ubsan.c
@@ -1,5 +1,5 @@
/* UndefinedBehaviorSanitizer, undefined behavior detector.
- Copyright (C) 2014 Free Software Foundation, Inc.
+ Copyright (C) 2014-2016 Free Software Foundation, Inc.
Contributed by Jakub Jelinek <jakub@redhat.com>
This file is part of GCC.
diff --git a/gcc/cp/cvt.c b/gcc/cp/cvt.c
index f24f280..d79f13b 100644
--- a/gcc/cp/cvt.c
+++ b/gcc/cp/cvt.c
@@ -1,5 +1,5 @@
/* Language-level data type conversion for GNU C++.
- Copyright (C) 1987-2015 Free Software Foundation, Inc.
+ Copyright (C) 1987-2016 Free Software Foundation, Inc.
Hacked by Michael Tiemann (tiemann@cygnus.com)
This file is part of GCC.
diff --git a/gcc/cp/cxx-pretty-print.c b/gcc/cp/cxx-pretty-print.c
index 5004e8f..cc28045 100644
--- a/gcc/cp/cxx-pretty-print.c
+++ b/gcc/cp/cxx-pretty-print.c
@@ -1,5 +1,5 @@
/* Implementation of subroutines for the GNU C++ pretty-printer.
- Copyright (C) 2003-2015 Free Software Foundation, Inc.
+ Copyright (C) 2003-2016 Free Software Foundation, Inc.
Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
This file is part of GCC.
diff --git a/gcc/cp/cxx-pretty-print.h b/gcc/cp/cxx-pretty-print.h
index 9bb9ccf..2f0e35a 100644
--- a/gcc/cp/cxx-pretty-print.h
+++ b/gcc/cp/cxx-pretty-print.h
@@ -1,5 +1,5 @@
/* Interface for the GNU C++ pretty-printer.
- Copyright (C) 2003-2015 Free Software Foundation, Inc.
+ Copyright (C) 2003-2016 Free Software Foundation, Inc.
Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
This file is part of GCC.
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index af5f265..df95133 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -1,5 +1,5 @@
/* Process declarations and variables for C++ compiler.
- Copyright (C) 1988-2015 Free Software Foundation, Inc.
+ Copyright (C) 1988-2016 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com)
This file is part of GCC.
diff --git a/gcc/cp/decl.h b/gcc/cp/decl.h
index 3e07dbc..1a4b1d4 100644
--- a/gcc/cp/decl.h
+++ b/gcc/cp/decl.h
@@ -1,5 +1,5 @@
/* Variables and structures for declaration processing.
- Copyright (C) 1993-2015 Free Software Foundation, Inc.
+ Copyright (C) 1993-2016 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index e9c9ffc..9a07e1e 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -1,5 +1,5 @@
/* Process declarations and variables for C++ compiler.
- Copyright (C) 1988-2015 Free Software Foundation, Inc.
+ Copyright (C) 1988-2016 Free Software Foundation, Inc.
Hacked by Michael Tiemann (tiemann@cygnus.com)
This file is part of GCC.
diff --git a/gcc/cp/dump.c b/gcc/cp/dump.c
index 8f8fa4f1..12c2549 100644
--- a/gcc/cp/dump.c
+++ b/gcc/cp/dump.c
@@ -1,5 +1,5 @@
/* Tree-dumping functionality for intermediate representation.
- Copyright (C) 1999-2015 Free Software Foundation, Inc.
+ Copyright (C) 1999-2016 Free Software Foundation, Inc.
Written by Mark Mitchell <mark@codesourcery.com>
This file is part of GCC.
diff --git a/gcc/cp/error.c b/gcc/cp/error.c
index 412d638..370816c 100644
--- a/gcc/cp/error.c
+++ b/gcc/cp/error.c
@@ -1,6 +1,6 @@
/* Call-backs for C++ error reporting.
This code is non-reentrant.
- Copyright (C) 1993-2015 Free Software Foundation, Inc.
+ Copyright (C) 1993-2016 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
diff --git a/gcc/cp/except.c b/gcc/cp/except.c
index ad40436..c73a16b 100644
--- a/gcc/cp/except.c
+++ b/gcc/cp/except.c
@@ -1,5 +1,5 @@
/* Handle exceptional things in C++.
- Copyright (C) 1989-2015 Free Software Foundation, Inc.
+ Copyright (C) 1989-2016 Free Software Foundation, Inc.
Contributed by Michael Tiemann <tiemann@cygnus.com>
Rewritten by Mike Stump <mrs@cygnus.com>, based upon an
initial re-implementation courtesy Tad Hunt.
diff --git a/gcc/cp/expr.c b/gcc/cp/expr.c
index 0155872..702b717 100644
--- a/gcc/cp/expr.c
+++ b/gcc/cp/expr.c
@@ -1,6 +1,6 @@
/* Convert language-specific tree expression to rtl instructions,
for GNU compiler.
- Copyright (C) 1988-2015 Free Software Foundation, Inc.
+ Copyright (C) 1988-2016 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/cp/friend.c b/gcc/cp/friend.c
index 5d067bd..36b000f 100644
--- a/gcc/cp/friend.c
+++ b/gcc/cp/friend.c
@@ -1,5 +1,5 @@
/* Help friends in C++.
- Copyright (C) 1997-2015 Free Software Foundation, Inc.
+ Copyright (C) 1997-2016 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/cp/g++spec.c b/gcc/cp/g++spec.c
index 35d8cbc..03cbde0 100644
--- a/gcc/cp/g++spec.c
+++ b/gcc/cp/g++spec.c
@@ -1,5 +1,5 @@
/* Specific flags and argument handling of the C++ front end.
- Copyright (C) 1996-2015 Free Software Foundation, Inc.
+ Copyright (C) 1996-2016 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/cp/init.c b/gcc/cp/init.c
index 09c1183..9f7b614 100644
--- a/gcc/cp/init.c
+++ b/gcc/cp/init.c
@@ -1,5 +1,5 @@
/* Handle initialization things in C++.
- Copyright (C) 1987-2015 Free Software Foundation, Inc.
+ Copyright (C) 1987-2016 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com)
This file is part of GCC.
diff --git a/gcc/cp/lambda.c b/gcc/cp/lambda.c
index d50e48d..3b0ea18 100644
--- a/gcc/cp/lambda.c
+++ b/gcc/cp/lambda.c
@@ -3,7 +3,7 @@
building RTL. These routines are used both during actual parsing
and during the instantiation of template functions.
- Copyright (C) 1998-2015 Free Software Foundation, Inc.
+ Copyright (C) 1998-2016 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h
index 8a2f31e..9707fac 100644
--- a/gcc/cp/lang-specs.h
+++ b/gcc/cp/lang-specs.h
@@ -1,5 +1,5 @@
/* Definitions for specs for C++.
- Copyright (C) 1995-2015 Free Software Foundation, Inc.
+ Copyright (C) 1995-2016 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c
index 9365423..e69793e 100644
--- a/gcc/cp/lex.c
+++ b/gcc/cp/lex.c
@@ -1,5 +1,5 @@
/* Separate lexical analyzer for GNU C++.
- Copyright (C) 1987-2015 Free Software Foundation, Inc.
+ Copyright (C) 1987-2016 Free Software Foundation, Inc.
Hacked by Michael Tiemann (tiemann@cygnus.com)
This file is part of GCC.
diff --git a/gcc/cp/logic.cc b/gcc/cp/logic.cc
index 7e01640..e4967bb 100644
--- a/gcc/cp/logic.cc
+++ b/gcc/cp/logic.cc
@@ -1,5 +1,5 @@
/* Derivation and subsumption rules for constraints.
- Copyright (C) 2013-2015 Free Software Foundation, Inc.
+ Copyright (C) 2013-2016 Free Software Foundation, Inc.
Contributed by Andrew Sutton (andrew.n.sutton@gmail.com)
This file is part of GCC.
diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c
index 3ff3066..a8b9f37 100644
--- a/gcc/cp/mangle.c
+++ b/gcc/cp/mangle.c
@@ -1,5 +1,5 @@
/* Name mangling for the 3.0 C++ ABI.
- Copyright (C) 2000-2015 Free Software Foundation, Inc.
+ Copyright (C) 2000-2016 Free Software Foundation, Inc.
Written by Alex Samuel <samuel@codesourcery.com>
This file is part of GCC.
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index 533ae0e..bcf0a6c 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -1,6 +1,6 @@
/* Handle the hair of processing (but not expanding) inline functions.
Also manage function and variable name overloading.
- Copyright (C) 1987-2015 Free Software Foundation, Inc.
+ Copyright (C) 1987-2016 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com)
This file is part of GCC.
diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c
index 86c07ef..c52d236 100644
--- a/gcc/cp/name-lookup.c
+++ b/gcc/cp/name-lookup.c
@@ -1,5 +1,5 @@
/* Definitions for C++ name lookup routines.
- Copyright (C) 2003-2015 Free Software Foundation, Inc.
+ Copyright (C) 2003-2016 Free Software Foundation, Inc.
Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
This file is part of GCC.
diff --git a/gcc/cp/name-lookup.h b/gcc/cp/name-lookup.h
index d2453e9..bce12bb 100644
--- a/gcc/cp/name-lookup.h
+++ b/gcc/cp/name-lookup.h
@@ -1,5 +1,5 @@
/* Declarations for C++ name lookup routines.
- Copyright (C) 2003-2015 Free Software Foundation, Inc.
+ Copyright (C) 2003-2016 Free Software Foundation, Inc.
Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
This file is part of GCC.
diff --git a/gcc/cp/operators.def b/gcc/cp/operators.def
index 6e1ff35..aa657fa 100644
--- a/gcc/cp/operators.def
+++ b/gcc/cp/operators.def
@@ -5,7 +5,7 @@
non-overloadable operators (like the `?:' ternary operator).
Written by Mark Mitchell <mark@codesourcery.com>
- Copyright (C) 2000-2015 Free Software Foundation, Inc.
+ Copyright (C) 2000-2016 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/cp/optimize.c b/gcc/cp/optimize.c
index a5f84a0..9d3e2c3 100644
--- a/gcc/cp/optimize.c
+++ b/gcc/cp/optimize.c
@@ -1,5 +1,5 @@
/* Perform optimizations on tree structure.
- Copyright (C) 1998-2015 Free Software Foundation, Inc.
+ Copyright (C) 1998-2016 Free Software Foundation, Inc.
Written by Mark Michell (mark@codesourcery.com).
This file is part of GCC.
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index 4829a77..44dff87 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -1,5 +1,5 @@
/* -*- C++ -*- Parser.
- Copyright (C) 2000-2015 Free Software Foundation, Inc.
+ Copyright (C) 2000-2016 Free Software Foundation, Inc.
Written by Mark Mitchell <mark@codesourcery.com>.
This file is part of GCC.
diff --git a/gcc/cp/parser.h b/gcc/cp/parser.h
index 891dd41..4396e33 100644
--- a/gcc/cp/parser.h
+++ b/gcc/cp/parser.h
@@ -1,5 +1,5 @@
/* Data structures and function exported by the C++ Parser.
- Copyright (C) 2010-2015 Free Software Foundation, Inc.
+ Copyright (C) 2010-2016 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 4555b32..3f23c01 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -1,5 +1,5 @@
/* Handle parameterized types (templates) for GNU -*- C++ -*-.
- Copyright (C) 1992-2015 Free Software Foundation, Inc.
+ Copyright (C) 1992-2016 Free Software Foundation, Inc.
Written by Ken Raeburn (raeburn@cygnus.com) while at Watchmaker Computing.
Rewritten by Jason Merrill (jason@cygnus.com).
diff --git a/gcc/cp/ptree.c b/gcc/cp/ptree.c
index a9b3987..2c8ff99 100644
--- a/gcc/cp/ptree.c
+++ b/gcc/cp/ptree.c
@@ -1,5 +1,5 @@
/* Prints out trees in human readable form.
- Copyright (C) 1992-2015 Free Software Foundation, Inc.
+ Copyright (C) 1992-2016 Free Software Foundation, Inc.
Hacked by Michael Tiemann (tiemann@cygnus.com)
This file is part of GCC.
diff --git a/gcc/cp/repo.c b/gcc/cp/repo.c
index 2d5c5da..0a1535d 100644
--- a/gcc/cp/repo.c
+++ b/gcc/cp/repo.c
@@ -1,5 +1,5 @@
/* Code to maintain a C++ template repository.
- Copyright (C) 1995-2015 Free Software Foundation, Inc.
+ Copyright (C) 1995-2016 Free Software Foundation, Inc.
Contributed by Jason Merrill (jason@cygnus.com)
This file is part of GCC.
diff --git a/gcc/cp/rtti.c b/gcc/cp/rtti.c
index f42b1cb..a43ff85 100644
--- a/gcc/cp/rtti.c
+++ b/gcc/cp/rtti.c
@@ -1,5 +1,5 @@
/* RunTime Type Identification
- Copyright (C) 1995-2015 Free Software Foundation, Inc.
+ Copyright (C) 1995-2016 Free Software Foundation, Inc.
Mostly written by Jason Merrill (jason@cygnus.com).
This file is part of GCC.
diff --git a/gcc/cp/search.c b/gcc/cp/search.c
index 05a45c3..455073e 100644
--- a/gcc/cp/search.c
+++ b/gcc/cp/search.c
@@ -1,6 +1,6 @@
/* Breadth-first and depth-first routines for
searching multiple-inheritance lattice for GNU C++.
- Copyright (C) 1987-2015 Free Software Foundation, Inc.
+ Copyright (C) 1987-2016 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com)
This file is part of GCC.
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index 37bf050..f0e530d 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -3,7 +3,7 @@
building RTL. These routines are used both during actual parsing
and during the instantiation of template functions.
- Copyright (C) 1998-2015 Free Software Foundation, Inc.
+ Copyright (C) 1998-2016 Free Software Foundation, Inc.
Written by Mark Mitchell (mmitchell@usa.net) based on code found
formerly in parse.y and pt.c.
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 250fe27..e918252 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -1,5 +1,5 @@
/* Language-dependent node constructors for parse phase of GNU compiler.
- Copyright (C) 1987-2015 Free Software Foundation, Inc.
+ Copyright (C) 1987-2016 Free Software Foundation, Inc.
Hacked by Michael Tiemann (tiemann@cygnus.com)
This file is part of GCC.
diff --git a/gcc/cp/type-utils.h b/gcc/cp/type-utils.h
index 05f2785..70c89a7 100644
--- a/gcc/cp/type-utils.h
+++ b/gcc/cp/type-utils.h
@@ -1,5 +1,5 @@
/* Utilities for querying and manipulating type trees.
- Copyright (C) 2013-2015 Free Software Foundation, Inc.
+ Copyright (C) 2013-2016 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
index 25e74e9..472b41b 100644
--- a/gcc/cp/typeck.c
+++ b/gcc/cp/typeck.c
@@ -1,5 +1,5 @@
/* Build expressions with type checking for C++ compiler.
- Copyright (C) 1987-2015 Free Software Foundation, Inc.
+ Copyright (C) 1987-2016 Free Software Foundation, Inc.
Hacked by Michael Tiemann (tiemann@cygnus.com)
This file is part of GCC.
diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c
index 68d2e71..c67d7f6 100644
--- a/gcc/cp/typeck2.c
+++ b/gcc/cp/typeck2.c
@@ -1,6 +1,6 @@
/* Report error messages, build initializers, and perform
some front-end optimizations for C++ compiler.
- Copyright (C) 1987-2015 Free Software Foundation, Inc.
+ Copyright (C) 1987-2016 Free Software Foundation, Inc.
Hacked by Michael Tiemann (tiemann@cygnus.com)
This file is part of GCC.
diff --git a/gcc/cp/vtable-class-hierarchy.c b/gcc/cp/vtable-class-hierarchy.c
index 97481fc..a3a49b6 100644
--- a/gcc/cp/vtable-class-hierarchy.c
+++ b/gcc/cp/vtable-class-hierarchy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2016 Free Software Foundation, Inc.
This file is part of GCC.