2021-03-01 Nathan Sidwell PR c++/99294 * class.c (fixup_type_variants): Propagate mode, precision, alignment & emptiness. * module.cc (trees_out::type_node): Use TYPE_ALIGN_RAW. (trees_in::tree_node): Rematerialize alignment here. 2021-02-27 Jason Merrill PR c++/90333 * parser.c (cp_parser_lambda_declarator_opt): Accept GNU attributes between () and ->. 2021-02-26 Jakub Jelinek * parser.c (cp_parser_lambda_declarator_opt): Implement P1102R2 - Down with ()! Make ()s optional before lambda specifiers for -std={c,gnu}++2b or with pedwarn in earlier versions. 2021-02-26 Jakub Jelinek PR c++/95451 * lambda.c (is_lambda_ignored_entity): Before checking for LAMBDA_FUNCTION_P, use OVL_FIRST. Drop FUNCTION_DECL check. 2021-02-26 Jason Merrill PR c++/98810 * pt.c (tsubst_copy) [VIEW_CONVERT_EXPR]: Add const to a class non-type template argument that needs it. 2021-02-26 Patrick Palka PR c++/98990 * pt.c (splice_late_return_type): Rebuild the entire return type if we have to adjust the level of an auto within. (type_uses_auto): Adjust call to find_type_usage. * type-utils.h (find_type_usage): Revert r10-6571 change that made this function return a pointer to the auto node. 2021-02-25 Patrick Palka PR c++/99213 PR c++/94521 * error.c (dump_scope): Pass TFF_NO_TEMPLATE_BINDINGS instead of TFF_NO_FUNCTION_ARGUMENTS when dumping a function scope. 2021-02-25 Patrick Palka PR c++/99103 * pt.c (is_spec_or_derived): Drop cv-qualifiers from 'etype'. (maybe_aggr_guide): Fix order of arguments to is_spec_or_derived. 2021-02-25 Marek Polacek DR 1312 PR c++/99176 * constexpr.c (is_std_construct_at): New overload. (is_std_allocator_allocate): New overload. (cxx_eval_call_expression): Use the new overloads. (cxx_eval_constant_expression): Reject casting from void * as per DR 1312. Don't check can_convert. 2021-02-25 Iain Sandoe PR c++/97587 * coroutines.cc (struct param_info): Track rvalue refs. (morph_fn_to_coro): Track rvalue refs, and call the promise CTOR with the frame copy of passed parms. 2021-02-25 Iain Sandoe PR c++/95822 * coroutines.cc (morph_fn_to_coro): Unconditionally remove any set throwing_cleanup marker. 2021-02-25 Nathan Sidwell PR c++/99166 * module.cc (module_state::inform_cmi_p): Renamed field. (module_state::do_import): Adjust. (init_modules, finish_module_processing): Likewise. (handle_module_option): Likewise. 2021-02-25 Nathan Sidwell PR c++/98318 * mapper-client.cc (module_client::open_module_client): Fix typo of fd init. 2021-02-24 Nathan Sidwell PR c++/98718 * module.cc (ool): New indirection vector. (loc_spans::maybe_propagate): Location is not optional. (loc_spans::open): Likewise. Assert monotonically advancing. (module_for_ordinary_loc): Use ool indirection vector. (module_state::write_prepare_maps): Do not count empty macro expansions. Elide empty spans. (module_state::write_macro_maps): Skip empty expansions. (ool_cmp): New qsort comparator. (module_state::write): Create and destroy ool vector. (name_pending_imports): Fix dump push/pop. (preprocess_module): Likewise. Add more dumping. (preprocessed_module): Likewise. 2021-02-24 Iain Sandoe PR c++/96251 * coroutines.cc (coro_common_keyword_context_valid_p): Suppress error reporting when instantiating for a constexpr. 2021-02-23 Nathan Sidwell PR c++/99208 * decl.c (name_unnamed_type): Check DECL identity, not IDENTIFIER identity. 2021-02-23 Patrick Palka PR c++/95468 * pt.c (tsubst_copy_and_build) : New case, copied over from tsubst_copy. 2021-02-23 Patrick Palka * pt.c (instantiation_dependent_expression_p): Check processing_template_decl before calling potential_constant_expression. 2021-02-22 Nathan Sidwell PR c++/99174 * module.cc (struct module_state): Add visited_p flag. (name_pending_imports): Use it to avoid duplicate requests. (preprocess_module): Don't read preprocessor state if we failed to load a module's config. 2021-02-22 Nathan Sidwell PR c++/99153 * decl.c (duplicate_decls): Move DECL_MODULE_IMPORT_P propagation to common-path. * module.cc (set_defining_module): Add assert. 2021-02-19 Nathan Sidwell PR c++/98741 * module.cc (pending_imports): New. (declare_module): Adjust test condition. (name_pending_imports): New. (preprocess_module): Reimplement using pending_imports. (preprocessed_module): Move name-getting to name_pending_imports. * name-lookup.c (append_imported_binding_slot): Assert module ordering is increasing. 2021-02-19 Nathan Sidwell * module.cc (note_cmis): New. (struct module_state): Add inform_read_p bit. (module_state::do_import): Inform of CMI location, if enabled. (init_modules): Canonicalize note_cmis entries. (handle_module_option): Handle -flang-info-module-read=FOO. 2021-02-19 Jason Merrill PR c++/96926 * call.c (perfect_conversion_p): Limit rvalueness test to reference bindings. 2021-02-19 Jason Merrill PR c++/96926 * call.c (perfect_conversion_p): New. (perfect_candidate_p): New. (add_candidates): Ignore templates after a perfect non-template. 2021-02-18 Nathan Sidwell PR c++/99023 * module.cc (canonicalize_header_name): Use cpp_probe_header_unit. (maybe_translate_include): Fix note_includes comparison. (init_modules): Fix note_includes string termination. 2021-02-18 Jakub Jelinek PR c++/99132 * cp-gimplify.c (cp_genericize_r) : Use cp_get_callee_fndecl_nofold instead of cp_get_callee_fndecl to check for immediate function calls. 2021-02-17 Nathan Sidwell PR c++/99023 * module.cc (struct macro_export): Add GTY markers. (macro_exports): Likewise, us a va_gc Vector. 2021-02-17 Jakub Jelinek PR sanitizer/99106 * init.c (build_zero_init_1): For flexible array members just return NULL_TREE instead of returning empty CONSTRUCTOR with non-complete ARRAY_TYPE. 2021-02-17 Nathan Sidwell PR c++/99116 * name-lookup.c (do_pushdecl): Don't peek under template_parm bindings here ... (set_identifier_type_value_with_scope): ... or here. (do_pushtag): Only set_identifier_type_value_with_scope at non-class template parm scope, and use parent scope. 2021-02-17 Nathan Sidwell PR c++/99071 * name-lookup.c (maybe_record_mergeable_decl): Deref the correct pointer. 2021-02-17 Patrick Palka PR debug/96997 PR c++/94034 * tree.c (build_aggr_init_expr): Revert r10-7718 change. 2021-02-12 Nathan Sidwell * module.cc (module_state::write_cluster): Check bindings for imported using-decls. 2021-02-12 Nathan Sidwell PR c++/99040 * module.cc (trees_in::decl_value): Call add_module_namespace_decl for new namespace-scope entities. (module_state::read_cluster): Don't call add_module_decl here. * name-lookup.h (add_module_decl): Rename to ... (add_module_namespace_decl): ... this. * name-lookup.c (newbinding_bookkeeping): Move into ... (do_pushdecl): ... here. Its only remaining caller. (add_module_decl): Rename to ... (add_module_namespace_decl): ... here. Add checking-assert for circularity. Don't call newbinding_bookkeeping, just extern_c checking and incomplete var checking. 2021-02-12 Nathan Sidwell PR c++/99039 PR c++/99040 * cp-tree.h (CPTI_GLOBAL_TYPE): Delete. (global_type_node): Delete. (IDENTIFIER_TYPE_VALUE): Delete. (IDENTIFIER_HAS_TYPE_VALUE): Delete. (get_type_value): Delete. * name-lookup.h (identifier_type_value): Delete. * name-lookup.c (check_module_override): Don't SET_IDENTIFIER_TYPE_VALUE here. (do_pushdecl): Nor here. (identifier_type_value_1, identifier_type_value): Delete. (set_identifier_type_value_with_scope): Only SET_IDENTIFIER_TYPE_VALUE for local and class scopes. (pushdecl_nanmespace_level): Remove shadow stack nadgering. (do_pushtag): Use REAL_IDENTIFIER_TYPE_VALUE. * call.c (check_dtor_name): Use lookup_name. * decl.c (cxx_init_decl_processing): Drop global_type_node. * decl2.c (cplus_decl_attributes): Don't SET_IDENTIFIER_TYPE_VALUE here. * init.c (get_type_value): Delete. * pt.c (instantiate_class_template_1): Don't call pushtag or SET_IDENTIFIER_TYPE_VALUE here. (tsubst): Assert never an identifier. (dependent_type_p): Drop global_type_node assert. * typeck.c (error_args_num): Don't use IDENTIFIER_HAS_TYPE_VALUE to determine ctorness. 2021-02-12 Jakub Jelinek PR c++/97742 * parser.c (cp_parser_requirement_seq): Stop iterating after reaching CPP_EOF. 2021-02-12 Jason Merrill PR c++/97246 PR c++/94546 * pt.c (extract_fnparm_pack): Check DECL_PACK_P here. (register_parameter_specializations): Not here. 2021-02-11 Marek Polacek PR c++/95888 * pt.c (lookup_template_class_1): Pass tf_none to tsubst when looking for the partial instantiation. 2021-02-11 Jakub Jelinek PR c++/99033 * init.c (build_zero_init_1): Handle zero initialiation of flexible array members like initialization of [0] arrays. Use integer_minus_onep instead of comparison to integer_minus_one_node and integer_zerop instead of comparison against size_zero_node. Formatting fixes. 2021-02-11 Marek Polacek PR c++/99063 * semantics.c (finish_do_stmt): Check for unexpanded parameter packs. 2021-02-11 Patrick Palka PR c++/97582 * name-lookup.c (op_unqualified_lookup): Handle an ambiguous lookup result by discarding it if the first element is a class-scope declaration, otherwise return it. (push_operator_bindings): Handle an ambiguous lookup result by doing push_local_binding on each element in the list. 2021-02-11 Marek Polacek * parser.c (cp_parser_selection_statement): Use vec_free. 2021-02-10 Jakub Jelinek PR c++/98988 PR c++/99031 * constexpr.c: Include cgraph.h. (cxx_eval_call_expression): Call varpool_node::finalize_decl on heap artificial vars. (cxx_eval_outermost_constant_expr): Remove varpool nodes for heap artificial vars. 2021-02-10 Nathan Sidwell PR c++/99030 * pt.c (tsubst_copy) [VAR_DECL]: For a DECL_LOCAL_DECL_P T is the answer if there's no local specialization. 2021-02-09 Nathan Sidwell PR c++/98944 * module.cc (module_state::is_rooted): Rename to ... (module_state::has_location): ... here. Adjust callers. (module_state::read_partitions): Adjust validity check. Don't overwrite a known location. 2021-02-09 Jason Merrill PR c++/96905 * pt.c (mark_decl_instantiated): Exit early if consteval. 2021-02-09 Jason Merrill PR c++/98326 PR c++/20408 * cp-gimplify.c (simple_empty_class_p): Don't touch an invisiref parm. 2021-02-09 Jason Merrill PR c++/98994 PR c++/97566 * constexpr.c (cxx_eval_store_expression): Only skip empty fields in RECORD_TYPE. 2021-02-08 Nathan Sidwell * decl.c (start_cleanup_fn): Push function into namespace. 2021-02-08 Nathan Sidwell PR c++/98531 * cp-tree.h (push_abi_namespace, pop_abi_namespace): Declare. * decl.c (push_abi_namespace, pop_abi_namespace): Moved from rtti.c, add default namespace arg. (check_redeclaration_exception_specification): Allow a lazy builtin's eh spec to differ from an lready-declared user declaration. (declare_global_var): Use push/pop_abi_namespace. (get_atexit_node): Push the fndecl into a namespace. * rtti.c (push_abi_namespace, pop_abi_namespace): Moved to decl.c. 2021-02-08 Marek Polacek * cp-tree.h (CLASSTYPE_TI_TEMPLATE): Fix typo. 2021-02-05 Marek Polacek PR c++/98947 * call.c (build_conditional_expr_1): Don't call mark_lvalue_use on arg2/arg3. * expr.c (mark_use) : Don't check read_p when issuing the -Wvolatile warning. Only set TREE_THIS_VOLATILE if a warning was emitted. 2021-02-05 Marek Polacek PR c++/96462 * name-lookup.c (lookup_using_decl): Hoist the destructor check. 2021-02-05 Jakub Jelinek PR c++/97878 * decl.c (check_array_initializer): For structured bindings, require the array type to be complete. 2021-02-04 Jason Merrill PR c++/98717 * constraint.cc (build_concept_check_arguments): Remove assert. (build_concept_check): Allow empty args. 2021-02-04 Tom Greenslade (thomgree) PR c++/90926 * call.c (can_convert_array): Extend to handle all valid aggregate initializers of an array; including by string literals, not just by brace-init-list. (build_aggr_conv): Call can_convert_array more often, not just in brace-init-list case. * typeck2.c (array_string_literal_compatible_p): New function. (digest_init_r): call array_string_literal_compatible_p * cp-tree.h: (array_string_literal_compatible_p): Declare. 2021-02-04 Jason Merrill PR c++/98802 * pt.c (do_class_deduction): No aggregate guide if any_dguides_p. 2021-02-04 Jason Merrill PR c++/95192 * pt.c (tsubst_attribute): Handle error. (apply_late_template_attributes): Return false on error. (tsubst_function_decl): Check its return value. (tsubst_decl): Likewise. (push_template_decl): Assert current_template_parms. (tsubst_template_decl): Set current_template_parms. 2021-02-03 Marek Polacek PR c++/98951 * call.c (struct z_candidate): Mark rewritten and reversed as const. (struct NonPublicField): Mark operator() as const. (struct NonTrivialField): Likewise. 2021-02-03 Jason Merrill PR c++/98926 PR c++/98570 * pt.c (spec_hasher::equal): Set processing_template_decl. * Make-lang.in (check-g++-strict-gc): Add --param hash-table-verification-limit=10000. 2021-02-03 Marek Polacek PR c++/98899 * parser.c (cp_parser_class_specifier_1): Use any possible DEFPARSE_INSTANTIATIONS to update DEFERRED_NOEXCEPT_PATTERN. (cp_parser_save_noexcept): Initialize DEFPARSE_INSTANTIATIONS. * pt.c (tsubst_exception_specification): Stash new_specs into DEFPARSE_INSTANTIATIONS. * tree.c (fixup_deferred_exception_variants): Use UNPARSED_NOEXCEPT_SPEC_P. 2021-02-02 Jason Merrill PR c++/98929 PR c++/96199 * error.c (dump_expr): Ignore dummy object. * pt.c (tsubst_baselink): Handle dependent scope. 2021-02-01 Patrick Palka PR c++/98295 * constexpr.c (cxx_eval_array_reference): Also set new_ctx.object when setting new_ctx.ctor. 2021-02-01 Marek Polacek PR c++/98355 * parser.c (cp_parser_has_attribute_expression): Use uses_template_parms instead of type_dependent_expression_p. 2021-02-01 Jason Merrill PR c++/98570 * cp-tree.h: Declare it. * pt.c (comparing_dependent_aliases): New flag. (template_args_equal, spec_hasher::equal): Set it. (dependent_alias_template_spec_p): Assert that we don't get non-types other than error_mark_node. (instantiate_alias_template): SET_TYPE_STRUCTURAL_EQUALITY on complex alias specializations. Set TYPE_DEPENDENT_P here. (tsubst_decl): Not here. * module.cc (module_state::read_cluster): Set comparing_dependent_aliases instead of comparing_specializations. * tree.c (cp_tree_equal): Remove comparing_specializations module handling. * typeck.c (structural_comptypes): Adjust. (comptypes): Remove comparing_specializations handling. 2021-01-29 Nathan Sidwell PR c++/98843 * module.cc (module_state_config): Add num_entities field. (module_state::read_entities): The entity_ary span is already allocated. (module_state::write_config): Write num_entities. (module_state::read_config): Read num_entities. (module_state::write): Set config's num_entities. (module_state::read_initial): Allocate the entity ary span here. (module_state::read_language): Do not set entity_lwm here. 2021-01-29 Marek Polacek PR c++/96137 * parser.c (cp_parser_class_name): If parser->scope is error_mark_node, return it, otherwise continue. 2021-01-28 Jakub Jelinek PR c++/98841 * typeck.c (build_x_indirect_ref): For *this, return current_class_ref. 2021-01-28 Jakub Jelinek PR c++/33661 PR c++/98847 * decl.c (cp_finish_decl): For register vars with asmspec in templates call set_user_assembler_name and set DECL_HARD_REGISTER. * pt.c (tsubst_expr): When instantiating DECL_HARD_REGISTER vars, pass asmspec_tree to cp_finish_decl. 2021-01-28 Nathan Sidwell PR c++/98770 * module.cc (trees_out::decl_value): Swap is_typedef & TYPE_NAME check order. (trees_in::decl_value): Do typedef frobbing only when installing a new typedef, adjust is_matching_decl call. Swap is_typedef & TYPE_NAME check. (trees_in::is_matching_decl): Add is_typedef parm. Adjust variable names and deal with typedef checking. 2021-01-27 Jason Merrill PR c++/97874 * name-lookup.c (lookup_using_decl): Clean up handling of dependency and inherited constructors. (finish_nonmember_using_decl): Handle DECL_DEPENDENT_P. * pt.c (tsubst_expr): Handle DECL_DEPENDENT_P. 2021-01-26 Jason Merrill PR c++/97474 * call.c (type_passed_as): Don't mark invisiref restrict. 2021-01-26 Jason Merrill PR c++/97566 PR c++/98463 * class.c (layout_class_type): An empty field gets size 0. (is_empty_field): New. (check_bases): Check it. * cp-tree.h (is_empty_field): Declare it. * constexpr.c (cxx_eval_store_expression): Check it. (cx_check_missing_mem_inits): Likewise. * init.c (perform_member_init): Likewise. * typeck2.c (process_init_constructor_record): Likewise. 2021-01-25 Martin Sebor PR c++/98646 * cvt.c (cp_fold_convert): Propagate TREE_NO_WARNING. 2021-01-25 Jason Merrill PR c++/98463 * constexpr.c (get_or_insert_ctor_field): Add check. (cxx_eval_store_expression): Handle discontinuity of refs. 2021-01-23 Anthony Sharp * call.c (complain_about_access): Altered function. * cp-tree.h (complain_about_access): Changed parameters of function. (get_parent_with_private_access): Declared new function. * search.c (get_parent_with_private_access): Defined new function. * semantics.c (enforce_access): Modified function. * typeck.c (complain_about_unrecognized_member): Updated function arguments in complain_about_access. 2021-01-23 Patrick Palka PR c++/97399 * cp-tree.h (shared_member_p): Adjust declaration. * parser.c (cp_parser_init_declarator): If the storage class specifier is sc_static, pass true for static_p to cp_parser_declarator. (cp_parser_direct_declarator): Don't do inject_this_parm when the declarator is a friend. * search.c (shared_member_p): Change return type to bool and adjust function body accordingly. Return false for a dependent USING_DECL instead of aborting. * semantics.c (finish_qualified_id_expr): Rely on shared_member_p even when type-dependent. 2021-01-22 Marek Polacek PR c++/96623 * parser.c (inject_parm_decls): Remove a redundant assignment. (cp_parser_class_specifier_1): Clear current_class_{ptr,ref} before calling inject_parm_decls. 2021-01-22 Jason Merrill PR c++/98744 * call.c (make_base_init_ok): Use DECL_HAS_VTT_PARM_P. 2021-01-22 Jakub Jelinek PR sanitizer/95693 * init.c (build_zero_init_1): Revert the 2018-03-06 change to return build_zero_cst for reference types. * typeck2.c (process_init_constructor_record): Instead call build_zero_cst here during error recovery instead of build_zero_init. 2021-01-22 Marek Polacek PR c++/98545 * mangle.c (write_member_name): Emit abi_warn_or_compat_version_crosses warnings regardless of abi_version_at_least. (write_expression): When the expression is a dependent name and an operator name, write "on" before writing its name. 2021-01-22 Marek Polacek PR c++/97966 * pt.c (instantiate_class_template_1): Instantiate members marked with attribute used only after we're done instantiating the class. 2021-01-21 Patrick Palka PR c++/71879 * semantics.c (finish_decltype_type): Set up a cp_unevaluated sentinel at the start of the function. Remove a now-redundant manual adjustment of cp_unevaluated_operand. 2021-01-21 Nathan Sidwell PR c++/98624 * module.cc (depset::hash::find_dependencies): Add module arg. (trees_out::core_vals): Check state before calling write_location. (sort_cluster, module_state::write): Adjust find_dependencies call. 2021-01-21 Jakub Jelinek PR c++/98672 * constexpr.c (check_for_return_continue_data): Add break_stmt member. (check_for_return_continue): Also look for BREAK_STMT. Handle SWITCH_STMT by ignoring break_stmt from its body. (potential_constant_expression_1) , : If the condition isn't constant true, check if the loop body can contain a return stmt. : Adjust check_for_return_continue_data initializer. : If recursion with tf_none is successful, merge *jump_target from the branches - returns with highest priority, breaks or continues lower. If then branch is potentially constant and doesn't return, check the else branch if it could return, break or continue. 2021-01-21 Nathan Sidwell PR c++/98530 * name-lookup.c (lookup_class_binding): Rearrange a stat-hack. 2021-01-20 Nathan Sidwell * module.cc (bytes_in::i, bytes_in::wi): Avoid left shift of signed type. 2021-01-20 Patrick Palka PR c++/95434 * pt.c (tsubst) : If tsubsting CLASS_PLACEHOLDER_TEMPLATE yields a TEMPLATE_TEMPLATE_PARM, adjust to its TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL. 2021-01-20 Patrick Palka PR c++/82613 * parser.c (cp_parser_class_head): Defer access checking when parsing the base-clause until all bases are seen and attached to the class type. * pt.c (instantiate_class_template): Likewise when substituting into dependent bases. 2021-01-20 Jakub Jelinek PR c++/98742 * semantics.c (finish_omp_clauses) : If error_operand_p, remove clause without further checking. Check for non-NULL TYPE_NAME. 2021-01-19 Marek Polacek PR c++/98659 * pt.c (maybe_instantiate_noexcept): Return false if FN is error_mark_node. 2021-01-19 Marek Polacek PR c++/98687 * name-lookup.c (push_using_decl_bindings): New, broken out of... (finish_nonmember_using_decl): ...here. * name-lookup.h (push_using_decl_bindings): Update declaration. * pt.c (tsubst_expr): Update the call to push_using_decl_bindings. 2021-01-19 Patrick Palka PR c++/41437 PR c++/58993 * search.c (friend_accessible_p): If scope is a hidden friend defined inside a dependent class, consider access from the class. * parser.c (cp_parser_late_parsing_for_member): Don't push a dk_no_check access state. 2021-01-19 Marek Polacek PR c++/98333 * parser.c (cp_parser_class_specifier_1): Perform late-parsing of NSDMIs before late-parsing of noexcept-specifiers. 2021-01-19 Nathan Sidwell * module.cc (identifier): Merge overloads. 2021-01-19 Nathan Sidwell PR c++/98624 * module.cc (trees_out::write_location): Make static. 2021-01-16 Kwok Cheung Yeung * parser.c (cp_parser_omp_clause_detach): New. (cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_DETACH. (OMP_TASK_CLAUSE_MASK): Add mask for PRAGMA_OMP_CLAUSE_DETACH. * pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_DETACH clause. * semantics.c (finish_omp_clauses): Handle OMP_CLAUSE_DETACH clause. Prevent use of detach with mergeable and overriding the data sharing mode of the event handle. 2021-01-15 Nathan Sidwell PR c++/98538 * tree.c (cp_build_qualified_type_real): Propagate an array's dependentness to the copy, if known. 2021-01-15 Jason Merrill PR c++/98642 * call.c (unsafe_return_slot_p): Return int. (init_by_return_slot_p): Split out from... (unsafe_copy_elision_p): ...here. (unsafe_copy_elision_p_opt): New name for old meaning. (build_over_call): Adjust. (make_safe_copy_elision): New. * typeck2.c (split_nonconstant_init_1): Elide copy from safe list-initialization. * cp-tree.h: Adjust. 2021-01-15 Jason Merrill * call.c (base_ctor_for, make_base_init_ok): New. (build_over_call): Use make_base_init_ok. 2021-01-15 Jason Merrill PR c++/63707 * tree.c (build_vec_init_expr): Don't call build_vec_init_elt if we got a CONSTRUCTOR. 2021-01-15 Nathan Sidwell PR c++/98591 * lang-specs.h: Fix handling of -fmodule-only with -fsyntax-only. 2021-01-14 Jason Merrill * typeck2.c (process_init_constructor_record): Use fldtype variable consistently. 2021-01-14 Nathan Sidwell PR c++/98372 * tree.c (cp_tree_equal): Correct map_context logic. 2021-01-13 Marek Polacek PR c++/98231 * name-lookup.c (push_using_decl_bindings): New. * name-lookup.h (push_using_decl_bindings): Declare. * pt.c (tsubst_expr): Call push_using_decl_bindings. 2021-01-13 Nathan Sidwell PR c++/98626 * module.cc (module_add_import_initializers): Pass a zero-element argument vector. 2021-01-12 Patrick Palka PR c++/98611 * tree.c (cp_walk_subtrees) : Visit the template of a CTAD placeholder. 2021-01-12 Marek Polacek PR c++/98620 * typeck2.c (process_init_constructor_record): Don't emit -Wmissing-field-initializers warnings in unevaluated contexts. 2021-01-11 Jakub Jelinek PR c++/98481 * class.c (find_abi_tags_r): Set *walk_subtrees to 2 instead of 1 for types. (mark_abi_tags_r): Likewise. * decl2.c (min_vis_r): Likewise. * tree.c (cp_walk_subtrees): If *walk_subtrees_p is 2, look through typedefs. 2021-01-08 Patrick Palka PR c++/98551 * constexpr.c (cxx_eval_call_expression): Check CLASS_TYPE_P instead of AGGREGATE_TYPE_P before calling replace_result_decl. 2021-01-08 Patrick Palka PR c++/98515 * semantics.c (check_accessibility_of_qualified_id): Punt if we're checking access of a scoped non-static member inside a class template. 2021-01-07 Jakub Jelinek PR c++/98329 * pt.c (tsubst_copy) : Don't call cp_build_bit_cast here, instead just build_min a BIT_CAST_EXPR and set its location. (tsubst_copy_and_build): Handle BIT_CAST_EXPR. 2021-01-07 Marek Polacek PR c++/98441 * decl.c (grokdeclarator): Move the !funcdecl_p check inside the !late_return_type block. 2021-01-07 Jason Merrill * constexpr.c (cxx_bind_parameters_in_call): Add comment. (cxx_eval_store_expression): Add comment. 2021-01-07 Jason Merrill * call.c (has_next): Factor out from... (next_conversion): ...here. (strip_standard_conversion): And here. (is_subseq): And here. (build_conv): Check it. (standard_conversion): Don't call build_conv for ck_identity. 2021-01-06 Martin Sebor PR c++/95768 * error.c (dump_expr): Call c_pretty_printer::unary_expression. 2021-01-05 Patrick Palka * pt.c (unify) : After walking into the type of the NTTP, substitute into the type again. If the type is still dependent, don't unify the NTTP. 2021-01-05 Jakub Jelinek * Make-lang.in (cc1plus-checksum, cc1plus$(exeext): Add $(CODYLIB) after $(BACKEND). 2021-01-05 Jakub Jelinek PR c++/98469 * constexpr.c (cxx_eval_constant_expression) : Punt if lval is true. * semantics.c (cp_build_bit_cast): Call get_target_expr_sfinae on the result if it has a class type. 2021-01-05 Marek Polacek PR c++/82099 * pt.c (resolve_overloaded_unification): Call maybe_instantiate_noexcept after instantiating the function decl. 2021-01-05 Nathan Sidwell * parser.c (cp_parser_module_declaration): Alter diagnostic text to say where is permissable. 2021-01-05 Rainer Orth PR c++/98316 * Make-lang.in (cc1plus$(exeext)): Add $(CODYLIB), $(NETLIBS). 2021-01-02 Jan Hubicka * cp-tree.h (cp_tree_c_finish_parsing): Declare. * decl2.c (c_parse_final_cleanups): Call cp_tree_c_finish_parsing. * tree.c (cp_tree_c_finish_parsing): New function. 2021-01-01 Jakub Jelinek * ChangeLog-2020: Rotate ChangeLog. New file. Copyright (C) 2021 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.