diff options
author | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-01-04 15:30:50 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-01-04 15:30:50 +0100 |
commit | 818ab71a415cd234be092111a0aa5e812ec56434 (patch) | |
tree | e08721a9b85169debf961d7ebab013160b616a42 /gcc/cp | |
parent | 21fa2a29dc265ab54c957c37d8a9e9ab07d7cd66 (diff) | |
download | gcc-818ab71a415cd234be092111a0aa5e812ec56434.tar.gz |
Update copyright years.
From-SVN: r232055
Diffstat (limited to 'gcc/cp')
56 files changed, 4286 insertions, 4277 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 4c7e38452ec..362c835899f 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 00000000000..4c7e38452ec --- /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 d478b4a249f..671ce12f216 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 ff725e94fa1..72a9a6c6445 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 4f253563417..4c3c4154b2a 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 68acd3df486..2784edcafe9 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 1c6665d4f5d..d8e02c95ad6 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 ab9ba26cef3..038e4c7c0d5 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 ba841dfef77..276fc1dfa07 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 208f43b430d..bcf26a64f37 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 426d8f3f48b..5e42fa90104 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 8862af1bc4d..f7a45985798 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 2b3a5510b44..3b6cda2bcd0 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 373c9e11aec..3bc27698c74 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 048108d4f02..8cfee4f8a9e 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 2758252aea0..f7ddb00b02c 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 199c3f1bc0e..1bb19ee04b9 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 7df72c53522..e6e5139aaa2 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 f0f7e36cbb4..fc9507e2331 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 6ffeb16ce1d..7454c0af644 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 f24f28059ba..d79f13bce70 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 5004e8f0284..cc28045eb64 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 9bb9ccf6e66..2f0e35a274d 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 af5f2654003..df95133f253 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 3e07dbc3650..1a4b1d457f3 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 e9c9ffc85f2..9a07e1e006f 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 8f8fa4f1e7b..12c25492e95 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 412d6381b16..370816c64e4 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 ad404362229..c73a16bd443 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 0155872e7e5..702b717d7ab 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 5d067bd8392..36b000fb34e 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 35d8cbc5d7f..03cbde090cb 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 09c1183157d..9f7b614a293 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 d50e48d71c3..3b0ea182b2a 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 8a2f31e17f9..9707fac2ad4 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 936542325c9..e69793e7f35 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 7e016409c30..e4967bbfa29 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 3ff30663f08..a8b9f37dd7a 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 533ae0eae2d..bcf0a6cdee2 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 86c07ef02b2..c52d236c649 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 d2453e95ec5..bce12bbb26b 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 6e1ff3542b7..aa657fad562 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 a5f84a0a4b5..9d3e2c3d03c 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 4829a776afb..44dff8739d0 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 891dd4143ef..4396e331287 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 4555b32e3d7..3f23c013cac 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 a9b3987f067..2c8ff992e89 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 2d5c5da7cdd..0a1535daa24 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 f42b1cbf922..a43ff85b8ca 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 05a45c3fbfb..455073ebd3a 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 37bf050b71f..f0e530de95d 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 250fe274669..e918252bb1b 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 05f2785c454..70c89a7ff69 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 25e74e90193..472b41ba5e2 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 68d2e7110b8..c67d7f6833e 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 97481fc0c64..a3a49b6d566 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. |