+2026-01-28 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36503
+ * config/i386/i386.md (*<insn:any_shift><mode:SWI48>3_sub):
+ Also allow operands[3] & (<mode_bitsize>-1) == (<mode_bitsize>-1)
+ in insn condition. Emit NOT RTX instead of NEG RTX in this case.
+ (*<insn:any_shift><mode:SWI48>3_sub_1): Ditto.
+
+2026-01-28 Robin Dapp <rdapp@oss.qualcomm.com>
+
+ PR target/123824
+ * config/riscv/riscv.cc (riscv_vls_mode_fits_in_gprs_p): New
+ helper.
+ (riscv_pass_vls_aggregate_in_gpr): Use helper and distribute
+ half-fitting vector to GPR and stack.
+ (riscv_pass_aggregate_in_vr): Reformat comment.
+ (riscv_get_arg_info): Use helper.
+ (riscv_pass_by_reference): Ditto.
+
+2026-01-28 Vladimir N. Makarov <vmakarov@redhat.com>
+
+ PR target/121571
+ * lra-constraints.cc (process_alt_operands): Reprocess asm insn
+ when there are no enough regs for the asm-insn.
+
+2026-01-28 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/123575
+ * match.pd (abs ((T)x) -> absu (x)): For vector type
+ arguments require the resulting operation is supported.
+
+2026-01-28 Richard Biener <rguenther@suse.de>
+
+ PR ipa/111036
+ * match.pd (__builtin_constant_p ((T)x)): Strip nop-conversions
+ from __builtin_constant_p arguments.
+
+2026-01-28 Richard Biener <rguenther@suse.de>
+
+ PR rtl-optimization/106859
+ * var-tracking.cc (val_store): Dump -1 as UID if setting_insn
+ is NULL.
+
+2026-01-28 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/123537
+ * match.pd (REDUC (@0 & @1) -> @0[I] & @1[I]): Restrict
+ allowed conversions.
+
+2026-01-28 Karl Meakin <karl.meakin@arm.com>
+
+ * doc/invoke.texi: Document `+sve-bfscale` flag.
+ * config/aarch64/aarch64.h (TARGET_SVE_BFSCALE): New macro.
+ * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins):
+ Define `__AARCH64_FEATURE_SVE_BFSCALE`.
+ * config/aarch64/aarch64-sve-builtins-base.cc: Skip constant
+ folding for floating-point or unpredicated multiplications.
+ * config/aarch64/aarch64-sve-builtins-sve2.def: New `SVE_FUNCTION`s.
+ * config/aarch64/aarch64-sve.md: Modify insns for
+ `SVE_COND_FP_BINARY_INT` to handle BF16 modes.
+ * config/aarch64/aarch64-sve2.md
+ (@aarch64_sve_<optab><mode>, @aarch64_sve_<optab><mode>_single): New insn for `BFSCALE`.
+ Modify insns for `UNSPEC_FSCALE` to handle BF16 modes.
+ * config/aarch64/iterators.md (SVE_FULL_F_SCALAR): Add `VNx8BF` to iterator.
+ (SVE_FULL_F_BFSCALE): New iterator.
+ (SVE_Fx24_BFSCALE): New iterator.
+ (SVE_BFx24): New iterator.
+ (UNSPEC_FMUL): New unspec.
+ (V_INT_EQUIV): Add entries for BF16 modes.
+ (b): Add entries for scalar float modes.
+ (is_bf16): Add entries for BF16 modes and reformat.
+ (SVSCALE_SINGLE_INTARG): Likewise.
+ (SVSCALE_INTARG): Likewise.
+ (SVE_FP_MULL): New iterator.
+
+2026-01-28 Pengfei Li <Pengfei.Li2@arm.com>
+
+ PR middle-end/123447
+ * expr.cc (expand_expr_real_1): Increase stack slot alignment
+ for STRICT_ALIGNMENT targets.
+
+2026-01-28 Andre Vieira <andre.simoesdiasvieira@arm.com>
+
+ PR target/123016
+ * tree-vect-stmts.cc (vectorizable_simd_clone_call): use
+ 'build_truth_vector_type_for_mode' to reconstruct mask's vectype for
+ non-scalar masks.
+
+2026-01-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/101312
+ * langhooks.h (struct lang_hooks_for_types): Remove
+ copy_lang_qualifiers. Add build_lang_qualified_type.
+ * langhooks.cc (lhd_build_lang_qualified_type): New function.
+ * langhooks-def.h (lhd_build_lang_qualified_type): Declare.
+ (LANG_HOOKS_COPY_LANG_QUALIFIERS): Remove.
+ (LANG_HOOKS_BUILD_LANG_QUALIFIED_TYPE): Add.
+ (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use
+ LANG_HOOKS_BUILD_LANG_QUALIFIED_TYPE instead of
+ LANG_HOOKS_COPY_LANG_QUALIFIERS.
+ * attribs.cc (build_type_attribute_qual_variant): Use
+ lang_hooks.types.build_lang_qualified_type instead of
+ build_qualified_type and/or build_qualified_type with
+ optional lang_hooks.types.copy_lang_qualifiers call.
+ (attr_access::array_as_string): Use "array " attribute instead of
+ "array". If attribute has been created or intended quals differ
+ from quals of build_array_type, use copy_node and adjust quals and
+ attributes on the copy, print and then ggc_free.
+
+2026-01-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/123837
+ * ipa-free-lang-data.cc (find_decls_types_r): Remove C++ annotations
+ from {DECL,TYPE}_ATRIBUTES.
+
+2026-01-28 Andrew Pinski <andrew.pinski@oss.qualcomm.com>
+
+ PR tree-optimization/123849
+ * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Handle
+ DEMANGLE_COMPONENT_EXTENDED_BUILTIN_TYPE like DEMANGLE_COMPONENT_BUILTIN_TYPE.
+
+2026-01-28 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/110043
+ * pointer-query.cc (get_offset_range): Fail for integer
+ types with precision larger than ptrdiff_type_node.
+
+2026-01-28 Hongyu Wang <hongyu.wang@intel.com>
+
+ PR target/123779
+ * config/i386/sse.md (*sse4_1_<code>v8qiv8hi2<mask_name>_2):
+ Rename to ...
+ (*sse4_1_<code>v8qiv8hi2_2): ... this, and drop mask conditions.
+ (*avx2_<code>v8qiv8si2<mask_name>_2): Rename to ...
+ (*avx2_<code>v8qiv8si2_2): ... this, and likewise.
+ (*sse4_1_<code>v4qiv4si2<mask_name>_2): Rename to ...
+ (*sse4_1_<code>v4qiv4si2_2): ... this, and likewise.
+ (*sse4_1_<code>v4hiv4si2<mask_name>_2): Rename to ...
+ (*sse4_1_<code>v4hiv4si2_2): ... this, and likewise.
+ (*avx2_<code>v4qiv4di2<mask_name>_2): Rename to ...
+ (*avx2_<code>v4qiv4di2_2): ... this, and likewise.
+ (*avx2_<code>v4hiv4di2<mask_name>_2): Rename to ...
+ (*avx2_<code>v4hiv4di2_2): ... this, and likewise.
+ (*sse4_1_<code>v2hiv2di2<mask_name>_2): Rename to ...
+ (*sse4_1_<code>v2hiv2di2_2): ... this, and likewise.
+ (*sse4_1_<code>v2siv2di2<mask_name>_2): Rename to ...
+ (*sse4_1_<code>v2siv2di2_2): ... this, and likewise.
+ (*avx512f_<code>v8qiv8di2<mask_name>_2): Rename to ...
+ (*avx512f_<code>v8qiv8di2_2): ... this.
+ (*avx512vl_<code>v8qiv8hi2_mask_2): New define_insn_and_split.
+ (*avx512vl_<code>v8qiv8si2_mask_2): Likewise.
+ (*avx512vl_<code>v4qiv4si2_mask_2): Likewise.
+ (*avx512vl_<code>v4hiv4si2_mask_2): Likewise.
+ (*avx512f_<code>v8qiv8di2_mask_2): Likewise.
+ (*avx512vl_<code>v4qiv4di2_mask_2): Likewise.
+ (*avx512vl_<code>v4hiv4di2_mask_2): Likewise.
+ (*avx512vl_<code>v2hiv2di2_mask_2): Likewise.
+ (*avx512vl_<code>v2siv2di2_mask_2): Likewise.
+
+2026-01-28 Nina Ranns <dinka.ranns@gmail.com>
+ Iain Sandoe <iain@sandoe.co.uk>
+ Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ * doc/invoke.texi: Document -fcontracts-client-check= and
+ -fcontracts-definition-check=.
+
+2026-01-28 Nina Ranns <dinka.ranns@gmail.com>
+ Iain Sandoe <iain@sandoe.co.uk>
+ Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ * doc/invoke.texi: Document -fcontract-checks-outlined and
+ -fcontract-disable-optimized-checks.
+
+2026-01-28 Nina Ranns <dinka.ranns@gmail.com>
+ Iain Sandoe <iain@sandoe.co.uk>
+
+ * tree-core.h (struct tree_base): Update tree flag usage comment.
+
+2026-01-28 Nina Ranns <dinka.ranns@gmail.com>
+ Iain Sandoe <iain@sandoe.co.uk>
+
+ * tree.h (CONST_WRAPPER_P): New.
+
+2026-01-28 Nina Ranns <dinka.ranns@gmail.com>
+ Iain Sandoe <iain@sandoe.co.uk>
+
+ * doc/invoke.texi: Document -fcontracts-conservative-ipa.
+
+2026-01-28 Iain Sandoe <iain@sandoe.co.uk>
+ Nina Ranns <dinka.ranns@gmail.com>
+ Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Add cases for contract
+ constant data that need to be in independent link-time 'atoms'.
+ * doc/invoke.texi: Document -fcontracts and
+ -fcontract-evaluation-semantic=.
+
+2026-01-28 Iain Sandoe <iain@sandoe.co.uk>
+ Nina Ranns <dinka.ranns@gmail.com>
+
+ * doc/invoke.texi: Remove documentation of contracts options.
+
2026-01-27 Jakub Jelinek <jakub@redhat.com>
PR other/123841
+2026-01-28 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/123857
+ * checks.adb (Apply_Parameter_Validity_Checks.Add_Validity_Check):
+ Set Is_Checked on the generated {Pre,Post}_Condition pragma and
+ bail out if the parameter is of an Unchecked_Union type.
+
+2026-01-28 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/123832
+ * exp_imgv.adb: Add with and use clauses for Exp_Ch7.
+ (Expand_Image_Attribute): Establish a transient scope before
+ rewriting the attribute as a call to Put_Image.
+ (Expand_Wide_Image_Attribute): Likewise.
+ (Expand_Wide_Wide_Image_Attribute): Likewise.
+ * exp_put_image.ads (Build_Image_Call): Add note about the
+ need for a transient scope when the function is invoked.
+ * exp_put_image.adb (Build_Image_Call): Call Insert_Actions
+ to immediately insert the actions instead of wrapping them
+ in an Expression_With_Actions node.
+
2026-01-25 Sandra Loosemore <sloosemore@baylibre.com>
* gcc-interface/lang.opt.urls: Regenerated.
+2026-01-28 Andrew Pinski <andrew.pinski@oss.qualcomm.com>
+
+ PR c++/102846
+ PR c/102846
+ * known-headers.cc (macro_like_function_used::macro_like_function_used): New.
+ (macro_like_function_used::~macro_like_function_used): New.
+ * known-headers.h (class macro_like_function_used): New class.
+
+2026-01-28 Iain Sandoe <iain@sandoe.co.uk>
+
+ * c.opt: Append a period to the message for
+ -fcontracts-client-check=.
+
+2026-01-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/101312
+ * c-pretty-print.cc (c_pretty_printer::direct_abstract_declarator):
+ Look up "array " attribute instead of "array".
+
+2026-01-28 Nina Ranns <dinka.ranns@gmail.com>
+ Iain Sandoe <iain@sandoe.co.uk>
+ Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ * c.opt (fcontracts-definition-check=,
+ fcontracts-client-check=): New.
+ * c.opt.urls: Regenerate.
+
+2026-01-28 Nina Ranns <dinka.ranns@gmail.com>
+ Iain Sandoe <iain@sandoe.co.uk>
+ Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ * c.opt (fcontract-checks-outlined,
+ fcontract-disable-optimized-checks): New.
+ * c.opt.urls: Regenerate.
+
+2026-01-28 Nina Ranns <dinka.ranns@gmail.com>
+ Iain Sandoe <iain@sandoe.co.uk>
+
+ * c.opt (fcontracts-conservative-ipa): New.
+
+2026-01-28 Iain Sandoe <iain@sandoe.co.uk>
+ Nina Ranns <dinka.ranns@gmail.com>
+ Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ * c-common.cc: Add contract_assert keyword.
+ * c-common.h (enum rid): Likewise.
+ * c-cppbuiltin.cc (c_cpp_builtins): Add C++26 contracts feature test
+ macro.
+ * c.opt: Add a flag to control the TU-wide evaluation semantic. Add
+ a flag to control whether P1494 observable_checkpoints are inserted
+ to separate contract checks.
+ * c.opt.urls: Regenerate.
+
+2026-01-28 Iain Sandoe <iain@sandoe.co.uk>
+ Nina Ranns <dinka.ranns@gmail.com>
+
+ * c-cppbuiltin.cc (c_cpp_builtins): Remove C++2a-specific
+ feature macros.
+ * c.opt: Remove C++2a-specific flags.
+
2026-01-25 Sandra Loosemore <sloosemore@baylibre.com>
* c.opt.urls: Regenerated.
+2026-01-28 Andrew Pinski <andrew.pinski@oss.qualcomm.com>
+
+ PR c++/102846
+ PR c/102846
+ * c-decl.cc (lookup_name_fuzzy): Lookup function-like macro and
+ notify of misuse there.
+
+2026-01-28 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org>
+
+ PR c/123583
+ * c-parser.cc (c_parser_maybe_reclassify_token): Reclassify only
+ C_ID_ID and C_ID_TYPENAME tokens.
+
+2026-01-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/101312
+ * c-tree.h (c_build_lang_qualified_type): Declare.
+ * c-objc-common.h (LANG_HOOKS_BUILD_LANG_QUALIFIED_TYPE): Define.
+ * c-objc-common.cc (c_build_lang_qualified_type): New function.
+
2026-01-27 Qing Zhao <qing.zhao@oracle.com>
PR c/123500
+2026-01-28 Andrew Pinski <andrew.pinski@oss.qualcomm.com>
+
+ PR c++/102846
+ PR c/102846
+ * name-lookup.cc (lookup_name_fuzzy): Lookup function-like macro and
+ notify of misuse there.
+
+2026-01-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/102613
+ * parser.cc: Implement C++23 P2246R1 - Character encoding of
+ diagnostic text.
+ (cp_parser_parenthesized_expression_list): For std attribute
+ argument where the first argument is CPP_STRING, ensure the
+ string is not translated.
+ * semantics.cc: Include c-family/c-pragma.h.
+ (cexpr_str::extract): Use cpp_translate_string to translate
+ string from ordinary literal encoding to SOURCE_CHARSET.
+
+2026-01-28 Jakub Jelinek <jakub@redhat.com>
+
+ * pt.cc (finish_expansion_stmt): Implement part of CWG3044.
+ Add to begin decltype(begin - begin){i} with std::ptrdiff_t
+ i instead of just i.
+
+2026-01-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/101312
+ * cp-tree.h (cxx_build_lang_qualified_type): Declare.
+ * cp-objcp-common.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Remove.
+ (LANG_HOOKS_BUILD_LANG_QUALIFIED_TYPE): Define.
+ * tree.cc (cxx_build_lang_qualified_type): New function.
+
+2026-01-28 Alex Yesmanchyk <aliaksandr.yesmanchyk@gmail.com>
+ Jason Merrill <jason@redhat.com>
+
+ PR c++/38612
+ * typeck2.cc (build_m_component_ref): Improve class mismatch
+ diagnostic.
+
+2026-01-28 vspefs <vspefs@protonmail.com>
+
+ * module.cc (trees_out::type_node): Add case for SPLICE_SCOPE.
+ (trees_in::tree_node): Add case for SPLICE_SCOPE.
+
+2026-01-28 Lucas Chollet <lucas.chollet@free.fr>
+ Jason Merrill <jason@redhat.com>
+
+ PR c++/114450
+ * lambda.cc (generic_lambda_fn_p): Handle null argument.
+ * semantics.cc (finish_id_expression_1): Check for generic lambda.
+
+2026-01-28 Johannes Altmanninger <aclopte@gmail.com>
+ Jason Merrill <jason@redhat.com>
+
+ * typeck.cc (cp_build_array_ref): Suppress unused-value
+ warning for implicit comma expression.
+
+2026-01-28 Nina Ranns <dinka.ranns@gmail.com>
+ Iain Sandoe <iain@sandoe.co.uk>
+ Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ * call.cc (build_cxx_call): Where enabled, wrap calls to
+ functions with contract specifiers.
+ * contracts.cc (enum contract_match_kind): Move to contracts
+ header.
+ (build_contract_condition_function): Copy caller-side wrapper
+ state.
+ (set_contract_wrapper_function, get_contract_wrapper_function,
+ get_orig_func_for_wrapper, contracts_fixup_cdtorname,
+ build_contract_wrapper_function,
+ get_or_create_contract_wrapper_function): New.
+ (start_function_contracts): Handle caller-side wrappers.
+ (maybe_apply_function_contracts): Likewise.
+ (copy_and_remap_contracts): Likewise.
+ (should_contract_wrap_call, maybe_contract_wrap_call,
+ define_contract_wrapper_func, emit_contract_wrapper_func): New.
+ (finish_function_contracts): Handle caller-side wrappers.
+ (get_src_loc_impl_ptr): Likewise.
+ * contracts.h (DECL_IS_WRAPPER_FN_P): New.
+ (enum contract_match_kind): Moved from contracts.cc.
+ (copy_and_remap_contracts): Allow selection on the specific
+ contract kind.
+ (maybe_contract_wrap_call, emit_contract_wrapper_func): New.
+ (set_decl_contracts): Delete dead code.
+ * cp-tree.h (struct lang_decl_fn): Add wrapper function bit.
+ (DECL_CONTRACT_WRAPPER): New.
+ * decl2.cc (c_parse_final_cleanups): Emit wrappers.
+
+2026-01-28 Nina Ranns <dinka.ranns@gmail.com>
+ Iain Sandoe <iain@sandoe.co.uk>
+ Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ * contracts.cc (handle_contracts_p): Check that we are
+ handling an original function, not an outlined check.
+ (set_precondition_function, set_postcondition_function,
+ get_orig_for_outlined, contracts_fixup_name,
+ build_contract_condition_function,
+ build_precondition_function, build_postcondition_function,
+ build_contract_function_decls): New.
+ (start_function_contracts): Update for the case that we
+ outline the contract checks.
+ (build_arg_list, build_thunk_like_call,
+ add_pre_condition_fn_call,
+ get_postcondition_result_parameter,
+ add_post_condition_fn_call): New.
+ (apply_preconditions): Allow outlined checks.
+ (apply_postconditions): Likewise.
+ (get_precondition_function, get_postcondition_function,
+ set_contract_functions, remap_and_emit_conditions,
+ finish_function_contracts): New.
+ (get_src_loc_impl_ptr): Handle outlined checks.
+ (build_contract_check): Likewise.
+ * contracts.h (DECL_PRE_FN, DECL_POST_FN,
+ DECL_IS_PRE_FN_P, DECL_IS_POST_FN_P,
+ get_precondition_function, get_postcondition_function,
+ get_orig_for_outlined, finish_function_contracts,
+ set_contract_functions): New.
+ * cp-tree.h (enum lang_contract_helper): New.
+ (struct lang_decl_fn): Add contract helper enum.
+ (CONTRACT_HELPER): New.
+ (mangle_decl_string): New.
+ * decl.cc (finish_function): Emit outlined checks when
+ in use.
+ * module.cc (trees_out::fn_parms_init): Stream pre and post
+ outlined checks.
+ (trees_in::fn_parms_init): Reload pre and post outlined checks.
+ (check_mergeable_decl): Handle pre and post outlined functions.
+ (module_state_config::get_dialect): Add contracts dialect.
+
+2026-01-28 Nina Ranns <dinka.ranns@gmail.com>
+ Iain Sandoe <iain@sandoe.co.uk>
+
+ * contracts.cc (view_as_const, constify_contract_access,
+ set_parm_used_in_post, check_param_in_postcondition,
+ parm_used_in_post_p, check_postconditions_in_redecl): New.
+ (check_redecl_contract): Handle constification.
+ * contracts.h (constify_contract_access, view_as_const,
+ contract_const_wrapper_p, strip_contract_const_wrapper): New.
+ * cp-tree.h: Update tree flag usage comment.
+ * lambda.cc (build_capture_proxy): Handle constification.
+ * parser.cc (cp_parser_late_contract_condition, cp_parser_contract_assert,
+ cp_parser_function_contract_specifier): Likewise.
+ * pt.cc (tsubst_function_decl, tsubst_expr): Likewise.
+ * semantics.cc (finish_id_expression_1, finish_decltype_type): Likewise.
+
+2026-01-28 Nina Ranns <dinka.ranns@gmail.com>
+ Iain Sandoe <iain@sandoe.co.uk>
+
+ * contracts.cc (__tu_terminate_wrapper): New.
+ (build_terminate_wrapper): New.
+ (declare_terminate_wrapper): New.
+ (maybe_emit_violation_handler_wrappers): Build a no-ipa wrapper
+ for terminating contract violations if required.
+
+2026-01-28 Iain Sandoe <iain@sandoe.co.uk>
+ Nina Ranns <dinka.ranns@gmail.com>
+ Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ * class.cc (check_for_override): Diagnose attemtps to add contracts to
+ virtual functions.
+ * constexpr.cc (cxx_eval_builtin_function_call): Handle
+ observable_checkpoints emitted for contracts.
+ (cxx_eval_constant_expression): Check we do not see contract assertions
+ here...
+ (potential_constant_expression_1): ... but that we do here.
+ * contracts.cc: Implement base C++26 P2600R14 contracts.
+ * contracts.h: Likewise.
+ * cp-gimplify.cc (cp_genericize_r): Lower contract assertions to control
+ flow and calls (where required) to the violation handler.
+ (fold_builtin_source_location): Use revised source_location impl.
+ constructor.
+ (build_source_location_impl): Split out the core of the constructor of
+ source_location so that it can be re-used from the contracts code.
+ * cp-tree.def (ASSERTION_STMT, PRECONDITION_STMT,
+ POSTCONDITION_STMT): Revise to allow space for specifying a semantic,
+ an assertion kind, and (where required) a source location.
+ * cp-tree.h (enum cp_tree_index, builtin_contract_violation_type): Add
+ the contract violation object type.
+ (struct saved_scope): Add a contracts class pointer.
+ (processing_postcondition, contract_class_ptr): New.
+ (struct cp_declarator): Add contract_specifiers.
+ (build_call_a_1): New.
+ (build_source_location_impl): New.
+ * decl.cc (duplicate_decls): Check function contract specifiers on
+ redeclarations. Handle contract specifiers on instantiations.
+ (cxx_init_decl_processing): Initialise the terminate function since
+ this can be called from contracts even when exception processing is
+ disabled. Build the contract violation object layout.
+ (start_decl): Handle checking contract postcondition identifiers.
+ (grokfndecl): Handle function contract specifiers.
+ (grokdeclarator): Likewise.
+ (start_preparsed_function): Start function contracts where needed.
+ (finish_function): Emit contract specifier AST corresponding to the
+ checked contracts.
+ * decl2.cc (c_parse_final_cleanups): Emit helpers for contract
+ violation handler calls.
+ * lex.cc (cxx_init): Add keyword warning for contract_assert.
+ * parser.cc (make_call_declarator): Add contract specifiers.
+ (unparsed_contracts): New.
+ (cp_parser_lambda_introducer): Allow contract specifier lambdas to have
+ a capture default.
+ (cp_parser_lambda_declarator_opt): Parse function contract specifiers.
+ (make_dummy_lambda_op): Account for contract specifiers in declarator.
+ (cp_parser_lambda_body): We have to ensure that deferred contracts are
+ parsed before we finish the lambda.
+ (cp_parser_statement): Handle contract_assert and diagnostics for
+ misplaced pre and post conditions.
+ (attr_chainon): Make this defensive against being passed a missing
+ attribute list.
+ (cp_parser_using_directive): Use attr_chainon instead of chainon.
+ (contract_attribute_p): New.
+ (cp_parser_init_declarator): Handle contract specifier names in
+ attributes.
+ (cp_parser_direct_declarator): Rename attrs to std_attrs for these.
+ (cp_parser_type_specifier_seq): Allow for function contract specifiers.
+ (cp_parser_class_specifier): Handle deferred parsing for function
+ contract specifiers
+ (cp_next_tokens_can_be_contract_attribute_p): True if this can be
+ a function contract specifier (which appear in the same position
+ as the attribute variant).
+ (cp_next_tokens_can_be_std_attribute_p): Allow for contracts.
+ (cp_nth_tokens_can_be_std_attribute_p): Likewise.
+ (cp_next_tokens_can_be_attribute_p): Likewise.
+ (cp_parser_late_contract_condition, cp_parser_late_contracts,
+ cp_parser_contract_assert, cp_parser_function_contract_specifier,
+ cp_parser_function_contract_specifier_seq): New.
+ (cp_parser_skip_std_attribute_spec_seq): Handle contracts case.
+ (cp_parser_skip_attributes_opt): Likewise.
+ (cp_parser_save_default_args): Handle unparsed contract specs.
+ * pt.cc (check_explicit_specialization): Handle removing contract
+ specifiers from instances.
+ (tsubst_contract, tsubst_contract_attribute,
+ tsubst_contract_attributes): New.
+ (tsubst_function_decl): Set contract specs. on substituted func.
+ (tsubst_stmt): Handle contract_assert.
+ (tsubst_expr): Allow for uses of postcondition uses of parm names.
+ (regenerate_decl_from_template): Handle function contract specs.
+ * semantics.cc (set_one_cleanup_loc): Add a location to
+ postcondition specifiers.
+ (finish_non_static_data_member): Diagnose bad uses of members
+ in contract specifiers.
+ (finish_this_expr): Diagnose invalid use of this in contract
+ specifiers.
+ (process_outer_var_ref): Allow use of params in contract specs.
+ (finish_id_expression_1): Likewise.
+ (apply_deduced_return_type): Maybe update postconditions when
+ the return type is changed.
+ * tree.cc (cp_tree_equal): Handle special cases when comparing
+ contracts.
+
+2026-01-28 Iain Sandoe <iain@sandoe.co.uk>
+
+ * cp-tree.h (processing_contract_condition): New.
+ * name-lookup.cc (cp_binding_level_descriptor): Add contract scope.
+ (begin_scope): Likewise.
+ * name-lookup.h (enum scope_kind): Add sk_contract.
+
+2026-01-28 Iain Sandoe <iain@sandoe.co.uk>
+ Nina Ranns <dinka.ranns@gmail.com>
+
+ * contracts.cc: Remove all C++2a contracts code.
+ * contracts.h: Likewise.
+ * coroutines.cc (coro_build_actor_or_destroy_function): Remove
+ unused contracts references.
+ * cp-gimplify.cc (cp_genericize_r): Remove C++2a contracts
+ implementation.
+ * cp-objcp-common.cc (cp_handle_option): Likewise.
+ * cp-tree.h: Remove C++2a contracts code.
+ * decl.cc: Likewise.
+ * decl2.cc: Likewise.
+ * mangle.cc: Likewise.
+ * module.cc: Likewise.
+ * parser.cc: Likewise.
+ * pt.cc: Likewise.
+ * search.cc: Likewise.
+ * semantics.cc: Likewise.
+ * tree.cc: Likewise.
+ * constexpr.cc: Likewise.
+
2026-01-27 Nathaniel Shead <nathanieloshead@gmail.com>
PR c++/122609
+2026-01-28 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/123419
+ * expr.cc (ExprVisitor::visit (VarExp *)): Adjust assertion.
+
+2026-01-28 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/123798
+ * types.cc (insert_aggregate_bitfield): Set DECL_NONADDRESSABLE_P and
+ DECL_PADDING_P on bit-field decls.
+ (finish_aggregate_type): Pass the aligned bit offset to layout_decl.
+
+2026-01-28 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/121477
+ * d-codegen.cc (d_mark_addressable): Give an error if taking the
+ address of a DECL_BIT_FIELD.
+
+2026-01-28 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/123422
+ * expr.cc (ExprVisitor::visit (ArrayLiteralExp *)): Don't add
+ TARGET_EXPR around constructor.
+ * toir.cc (IRVisitor::visit (ReturnStatement *)): Recognize more
+ patterns for return value optimization.
+
2026-01-27 Iain Buclaw <ibuclaw@gdcproject.org>
PR d/120096
+2026-01-28 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/unchecked_union4.adb: New test.
+
+2026-01-28 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/put_image2.adb: New test.
+
+2026-01-28 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/123419
+ * gdc.dg/pr123419.d: New test.
+
+2026-01-28 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/123798
+ * gdc.dg/pr123798.d: New test.
+
+2026-01-28 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36503
+ * gcc.target/i386/pr36503-5.c: New test.
+ * gcc.target/i386/pr36503-6.c: New test.
+
+2026-01-28 Robin Dapp <rdapp@oss.qualcomm.com>
+
+ PR target/123824
+ * gcc.target/riscv/abi/vls-gpr-1.c: New test.
+ * gcc.target/riscv/abi/vls-gpr-10.c: New test.
+ * gcc.target/riscv/abi/vls-gpr-11.c: New test.
+ * gcc.target/riscv/abi/vls-gpr-12.c: New test.
+ * gcc.target/riscv/abi/vls-gpr-13.c: New test.
+ * gcc.target/riscv/abi/vls-gpr-14.c: New test.
+ * gcc.target/riscv/abi/vls-gpr-2.c: New test.
+ * gcc.target/riscv/abi/vls-gpr-3.c: New test.
+ * gcc.target/riscv/abi/vls-gpr-4.c: New test.
+ * gcc.target/riscv/abi/vls-gpr-5.c: New test.
+ * gcc.target/riscv/abi/vls-gpr-6.c: New test.
+ * gcc.target/riscv/abi/vls-gpr-7.c: New test.
+ * gcc.target/riscv/abi/vls-gpr-8.c: New test.
+ * gcc.target/riscv/abi/vls-gpr-9.c: New test.
+
+2026-01-28 Andrew Pinski <andrew.pinski@oss.qualcomm.com>
+
+ PR c++/102846
+ PR c/102846
+ * c-c++-common/function-like-macro-1.c: New test.
+ * c-c++-common/function-like-macro-2.c: New test.
+
+2026-01-28 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/121477
+ * gdc.dg/pr121477.d: New test.
+
+2026-01-28 Vladimir N. Makarov <vmakarov@redhat.com>
+
+ PR target/121571
+ * gcc.target/i386/pr121571.c: New.
+
+2026-01-28 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR d/123422
+ * gdc.dg/torture/pr123422.d: New test.
+
+2026-01-28 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org>
+
+ PR c/123583
+ * gcc.target/avr/pr123583.c: New test.
+ * gcc.target/i386/pr123583.c: New test.
+
+2026-01-28 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/123575
+ * g++.dg/pr123575.C: New testcase.
+
+2026-01-28 Richard Biener <rguenther@suse.de>
+
+ PR ipa/111036
+ * gcc.dg/torture/pr111036.c: New testcase.
+
+2026-01-28 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/123537
+ * gcc.dg/pr123537.c: New testcase.
+
+2026-01-28 Karl Meakin <karl.meakin@arm.com>
+
+ * lib/target-supports.exp: Add `sve-bfscale` to `sve_exts`.
+ * gcc.target/aarch64/pragma_cpp_predefs_4.c: Add test for `__ARM_SVE_FEATURE_BFSCALE`.
+ * gcc.target/aarch64/sme2/acle-asm/mul_bf16_x2.c: New test.
+ * gcc.target/aarch64/sme2/acle-asm/mul_bf16_x4.c: New test.
+ * gcc.target/aarch64/sme2/acle-asm/scale_bf16_x2.c: New test.
+ * gcc.target/aarch64/sme2/acle-asm/scale_bf16_x4.c: New test.
+ * gcc.target/aarch64/sve/acle/asm/scale_bf16.c: New test.
+ * gcc.target/aarch64/sve/acle/general-c/bfscale.c: New test.
+
+2026-01-28 Pengfei Li <Pengfei.Li2@arm.com>
+
+ PR middle-end/123447
+ * gcc.dg/pr123447.c: New test.
+
+2026-01-28 Andre Vieira <andre.simoesdiasvieira@arm.com>
+
+ * gfortran.dg/vect/pr123016.f90: New test.
+
+2026-01-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/102613
+ * g++.dg/cpp1z/constexpr-asm-6.C: New test.
+ * g++.dg/cpp23/charset2.C: New test.
+ * g++.dg/cpp23/charset3.C: New test.
+ * g++.dg/cpp23/charset4.C: New test.
+ * g++.dg/cpp23/charset5.C: New test.
+
+2026-01-28 Jakub Jelinek <jakub@redhat.com>
+
+ * g++.dg/cpp26/expansion-stmt1.C (A::operator -, C::operator -): New.
+ * g++.dg/cpp26/expansion-stmt2.C (A::operator -, C::operator -): New.
+ * g++.dg/cpp26/expansion-stmt3.C (A::operator -, C::operator -): New.
+ * g++.dg/cpp26/expansion-stmt18.C (A::operator -): New.
+ * g++.dg/cpp26/expansion-stmt25.C: New test.
+
+2026-01-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/101312
+ * c-c++-common/pr101312-1.c: New test.
+ * c-c++-common/pr101312-2.c: New test.
+
+2026-01-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/123837
+ * g++.dg/reflect/annotations9.C: New test.
+
+2026-01-28 Andrew Pinski <andrew.pinski@oss.qualcomm.com>
+
+ PR tree-optimization/123849
+ * g++.dg/warn/Wmismatched-new-delete-11.C: New test.
+
+2026-01-28 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/110043
+ * gcc.dg/torture/pr110043.c: New testcase.
+
+2026-01-28 Hongyu Wang <hongyu.wang@intel.com>
+
+ PR target/123779
+ * g++.target/i386/pr123779.C: New test.
+
+2026-01-28 Alex Yesmanchyk <aliaksandr.yesmanchyk@gmail.com>
+ Jason Merrill <jason@redhat.com>
+
+ PR c++/38612
+ * g++.dg/diagnostic/ptrtomem4.C: New test.
+
+2026-01-28 vspefs <vspefs@protonmail.com>
+
+ * g++.dg/modules/splice-scope-tree_a.C: New test.
+ * g++.dg/modules/splice-scope-tree_b.C: New test.
+
+2026-01-28 Lucas Chollet <lucas.chollet@free.fr>
+ Jason Merrill <jason@redhat.com>
+
+ PR c++/114450
+ * g++.dg/warn/Wunused-var-42.C: New test.
+
+2026-01-28 Johannes Altmanninger <aclopte@gmail.com>
+ Jason Merrill <jason@redhat.com>
+
+ * g++.dg/warn/Wunused-value-2.C: New test.
+
+2026-01-28 Nina Ranns <dinka.ranns@gmail.com>
+ Iain Sandoe <iain@sandoe.co.uk>
+ Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ * g++.dg/contracts/cpp26/callerside-checks/callerside-checks-all.C: New test.
+ * g++.dg/contracts/cpp26/callerside-checks/callerside-checks-non-trivial.C: New test.
+ * g++.dg/contracts/cpp26/callerside-checks/callerside-checks-none.C: New test.
+ * g++.dg/contracts/cpp26/callerside-checks/callerside-checks-pre.C: New test.
+ * g++.dg/contracts/cpp26/callerside-checks/ctor.C: New test.
+ * g++.dg/contracts/cpp26/callerside-checks/freefunc-noexcept-post.C: New test.
+ * g++.dg/contracts/cpp26/callerside-checks/freefunc-noexcept-pre.C: New test.
+ * g++.dg/contracts/cpp26/definition-checks/contract-assert-no-def-check.C: New test.
+ * g++.dg/contracts/cpp26/non-trivial-ice.C: New test.
+
+2026-01-28 Nina Ranns <dinka.ranns@gmail.com>
+ Iain Sandoe <iain@sandoe.co.uk>
+ Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ * g++.dg/contracts/cpp26/outline-checks/freefunc-noexcept-post.C: New test.
+ * g++.dg/contracts/cpp26/outline-checks/freefunc-noexcept-pre.C: New test.
+ * g++.dg/contracts/cpp26/outline-checks/func-noexcept-assert.C: New test.
+ * g++.dg/contracts/cpp26/outline-checks/memberfunc-noexcept-post.C: New test.
+ * g++.dg/contracts/cpp26/outline-checks/memberfunc-noexcept-pre.C: New test.
+ * g++.dg/contracts/cpp26/empty-nt-param.C: Test with outlined checks.
+ * g++.dg/contracts/cpp26/expr.prim.id.unqual.p7-3.C: New file.
+ * g++.dg/contracts/cpp26/expr.prim.id.unqual.p7-4.C: New file.
+
+2026-01-28 Iain Sandoe <iain@sandoe.co.uk>
+ Nina Ranns <dinka.ranns@gmail.com>
+ Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ PR c++/113968
+ PR c++/110871
+ PR c++/110872
+ * g++.dg/contracts/cpp26/BZ121936-workaround-noipa.C: New test.
+ * g++.dg/contracts/cpp26/assertion-statement-errors.C: New test.
+ * g++.dg/contracts/cpp26/assertion-statement.C: New test.
+ * g++.dg/contracts/cpp26/basic.contract.eval.p11-observe.C: New test.
+ * g++.dg/contracts/cpp26/basic.contract.eval.p14.C: New test.
+ * g++.dg/contracts/cpp26/basic.contract.eval.p17-2.C: New test.
+ * g++.dg/contracts/cpp26/basic.contract.eval.p17-3.C: New test.
+ * g++.dg/contracts/cpp26/basic.contract.eval.p17-4.C: New test.
+ * g++.dg/contracts/cpp26/basic.contract.eval.p17-5.C: New test.
+ * g++.dg/contracts/cpp26/basic.contract.eval.p17-SMF-post.C: New test.
+ * g++.dg/contracts/cpp26/basic.contract.eval.p17-SMF-pre.C: New test.
+ * g++.dg/contracts/cpp26/basic.contract.eval.p17-SMF2.C: New test.
+ * g++.dg/contracts/cpp26/basic.contract.eval.p17-SMF3.C: New test.
+ * g++.dg/contracts/cpp26/basic.contract.eval.p17-SMF4.C: New test.
+ * g++.dg/contracts/cpp26/basic.contract.eval.p17.C: New test.
+ * g++.dg/contracts/cpp26/basic.contract.eval.p4-error.C: New test.
+ * g++.dg/contracts/cpp26/basic.contract.eval.p4.C: New test.
+ * g++.dg/contracts/cpp26/basic.contract.eval.p6.C: New test.
+ * g++.dg/contracts/cpp26/basic.contract.eval.p6.observe.C: New test.
+ * g++.dg/contracts/cpp26/basic.scope.contract.p1.C: New test.
+ * g++.dg/contracts/cpp26/basic.scope.contract.p2.1.C: New test.
+ * g++.dg/contracts/cpp26/contract-assert-run.C: New test.
+ * g++.dg/contracts/cpp26/contract-assert-warn-attributes.C: New test.
+ * g++.dg/contracts/cpp26/contract-violation-noexcept.C: New test.
+ * g++.dg/contracts/cpp26/contract-violation-noexcept2.C: New test.
+ * g++.dg/contracts/cpp26/contract_genericize.C: New test.
+ * g++.dg/contracts/cpp26/contracts-friend1.C: New test.
+ * g++.dg/contracts/cpp26/contracts-nested-class1.C: New test.
+ * g++.dg/contracts/cpp26/contracts-nested-class2.C: New test.
+ * g++.dg/contracts/cpp26/contracts-tmpl-spec2.C: New test.
+ * g++.dg/contracts/cpp26/dcl.contract.func.p4.C: New test.
+ * g++.dg/contracts/cpp26/dcl.contract.func.p6.C: New test.
+ * g++.dg/contracts/cpp26/dcl.contract.res.p1-NT.C: New test.
+ * g++.dg/contracts/cpp26/dcl.contract.res.p1.C: New test.
+ * g++.dg/contracts/cpp26/dcl.contract.res.p2.C: New test.
+ * g++.dg/contracts/cpp26/debug-and-opt.C: New test.
+ * g++.dg/contracts/cpp26/deferred1.C: New test.
+ * g++.dg/contracts/cpp26/dependent_contract.C: New test.
+ * g++.dg/contracts/cpp26/empty-nt-param.C: New test.
+ * g++.dg/contracts/cpp26/function-contract-specifier-seq-error.C: New test.
+ * g++.dg/contracts/cpp26/function-contract-specifier-seq.C: New test.
+ * g++.dg/contracts/cpp26/lambda.C: New test.
+ * g++.dg/contracts/cpp26/name_mangling.C: New test.
+ * g++.dg/contracts/cpp26/over.call.func.p3.1.C: New test.
+ * g++.dg/contracts/cpp26/pr113968.C: New test.
+ * g++.dg/contracts/cpp26/src-loc-0.C: New test.
+ * g++.dg/contracts/cpp26/src-loc-1.C: New test.
+ * g++.dg/contracts/cpp26/src-loc-2.C: New test.
+ * g++.dg/contracts/cpp26/throwing-violation-handler.cc: New test.
+ * g++.dg/contracts/cpp26/unused_warning.C: New test.
+ * g++.dg/contracts/cpp26/vaargs.C: New test.
+ * g++.dg/contracts/cpp2a/check-err.C: New test.
+ * g++.dg/coroutines/pr110871.C: New test.
+ * g++.dg/coroutines/pr110872.C: New test.
+ * g++.dg/contracts/cpp26/basic.contract.eval.p8.C: New test.
+ * g++.dg/contracts/cpp26/dcl.contract.func.p7.C: New test.
+ * g++.dg/contracts/cpp26/dcl.contract.res.p1-2.C: New test.
+ * g++.dg/contracts/cpp26/expr.prim.id.unqual.p7-2.C: New test.
+ * g++.dg/contracts/cpp26/expr.prim.id.unqual.p7.C: New test.
+ * g++.dg/contracts/cpp26/basic.contract.eval.p7.3.C: New test.
+ * g++.dg/contracts/cpp26/intro.compliance.general.p2.3.4.C: New test.
+ * g++.dg/contracts/cpp26/dcl.contract.func.p7-t1.C: New file.
+ * g++.dg/contracts/cpp26/dcl.contract.func.p7-t2.C: New file.
+
+2026-01-28 Iain Sandoe <iain@sandoe.co.uk>
+ Nina Ranns <dinka.ranns@gmail.com>
+ Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ * g++.dg/warn/Wkeyword-macro-1.C: Update for contract_assert.
+ * g++.dg/warn/Wkeyword-macro-2.C: Likewise.
+ * g++.dg/warn/Wkeyword-macro-4.C: Likewise.
+ * g++.dg/warn/Wkeyword-macro-5.C: Likewise.
+ * g++.dg/warn/Wkeyword-macro-7.C: Likewise.
+ * g++.dg/warn/Wkeyword-macro-8.C: Likewise.
+ * g++.dg/contracts/cpp26/basic.contract.eval.p8-2.C: New file.
+
+2026-01-28 Iain Sandoe <iain@sandoe.co.uk>
+ Nina Ranns <dinka.ranns@gmail.com>
+
+ * g++.dg/contracts/contracts-access1.C: Removed.
+ * g++.dg/contracts/contracts-assume1.C: Removed.
+ * g++.dg/contracts/contracts-assume2.C: Removed.
+ * g++.dg/contracts/contracts-assume3.C: Removed.
+ * g++.dg/contracts/contracts-assume4.C: Removed.
+ * g++.dg/contracts/contracts-assume5.C: Removed.
+ * g++.dg/contracts/contracts-assume6.C: Removed.
+ * g++.dg/contracts/contracts-comdat1.C: Removed.
+ * g++.dg/contracts/contracts-config1.C: Removed.
+ * g++.dg/contracts/contracts-constexpr1.C: Removed.
+ * g++.dg/contracts/contracts-constexpr2.C: Removed.
+ * g++.dg/contracts/contracts-constexpr3.C: Removed.
+ * g++.dg/contracts/contracts-conversion1.C: Removed.
+ * g++.dg/contracts/contracts-ctor-dtor1.C: Removed.
+ * g++.dg/contracts/contracts-ctor-dtor2.C: Removed.
+ * g++.dg/contracts/contracts-cv1.C: Removed.
+ * g++.dg/contracts/contracts-deduced1.C: Removed.
+ * g++.dg/contracts/contracts-deduced2.C: Removed.
+ * g++.dg/contracts/contracts-err1.C: Removed.
+ * g++.dg/contracts/contracts-externC.C: Removed.
+ * g++.dg/contracts/contracts-friend1.C: Removed.
+ * g++.dg/contracts/contracts-ft1.C: Removed.
+ * g++.dg/contracts/contracts-ignore1.C: Removed.
+ * g++.dg/contracts/contracts-ignore2.C: Removed.
+ * g++.dg/contracts/contracts-large-return.C: Removed.
+ * g++.dg/contracts/contracts-multiline1.C: Removed.
+ * g++.dg/contracts/contracts-multiple-inheritance1.C: Removed.
+ * g++.dg/contracts/contracts-multiple-inheritance2.C: Removed.
+ * g++.dg/contracts/contracts-nested-class1.C: Removed.
+ * g++.dg/contracts/contracts-nested-class2.C: Removed.
+ * g++.dg/contracts/contracts-nocopy1.C: Removed.
+ * g++.dg/contracts/contracts-override.C: Removed.
+ * g++.dg/contracts/contracts-post1.C: Removed.
+ * g++.dg/contracts/contracts-post2.C: Removed.
+ * g++.dg/contracts/contracts-post3.C: Removed.
+ * g++.dg/contracts/contracts-post4.C: Removed.
+ * g++.dg/contracts/contracts-post5.C: Removed.
+ * g++.dg/contracts/contracts-post6.C: Removed.
+ * g++.dg/contracts/contracts-post7.C: Removed.
+ * g++.dg/contracts/contracts-pre1.C: Removed.
+ * g++.dg/contracts/contracts-pre10.C: Removed.
+ * g++.dg/contracts/contracts-pre2.C: Removed.
+ * g++.dg/contracts/contracts-pre2a1.C: Removed.
+ * g++.dg/contracts/contracts-pre2a2.C: Removed.
+ * g++.dg/contracts/contracts-pre3.C: Removed.
+ * g++.dg/contracts/contracts-pre4.C: Removed.
+ * g++.dg/contracts/contracts-pre5.C: Removed.
+ * g++.dg/contracts/contracts-pre6.C: Removed.
+ * g++.dg/contracts/contracts-pre7.C: Removed.
+ * g++.dg/contracts/contracts-pre9.C: Removed.
+ * g++.dg/contracts/contracts-redecl1.C: Removed.
+ * g++.dg/contracts/contracts-redecl2.C: Removed.
+ * g++.dg/contracts/contracts-redecl3.C: Removed.
+ * g++.dg/contracts/contracts-redecl4.C: Removed.
+ * g++.dg/contracts/contracts-redecl5.C: Removed.
+ * g++.dg/contracts/contracts-redecl6.C: Removed.
+ * g++.dg/contracts/contracts-redecl7.C: Removed.
+ * g++.dg/contracts/contracts-redecl8.C: Removed.
+ * g++.dg/contracts/contracts-tmpl-attr1.C: Removed.
+ * g++.dg/contracts/contracts-tmpl-spec1.C: Removed.
+ * g++.dg/contracts/contracts-tmpl-spec2.C: Removed.
+ * g++.dg/contracts/contracts-tmpl-spec3.C: Removed.
+ * g++.dg/contracts/contracts1.C: Removed.
+ * g++.dg/contracts/contracts10.C: Removed.
+ * g++.dg/contracts/contracts11.C: Removed.
+ * g++.dg/contracts/contracts12.C: Removed.
+ * g++.dg/contracts/contracts13.C: Removed.
+ * g++.dg/contracts/contracts14.C: Removed.
+ * g++.dg/contracts/contracts15.C: Removed.
+ * g++.dg/contracts/contracts16.C: Removed.
+ * g++.dg/contracts/contracts17.C: Removed.
+ * g++.dg/contracts/contracts18.C: Removed.
+ * g++.dg/contracts/contracts19.C: Removed.
+ * g++.dg/contracts/contracts2.C: Removed.
+ * g++.dg/contracts/contracts20.C: Removed.
+ * g++.dg/contracts/contracts22.C: Removed.
+ * g++.dg/contracts/contracts24.C: Removed.
+ * g++.dg/contracts/contracts25.C: Removed.
+ * g++.dg/contracts/contracts3.C: Removed.
+ * g++.dg/contracts/contracts35.C: Removed.
+ * g++.dg/contracts/contracts4.C: Removed.
+ * g++.dg/contracts/contracts5.C: Removed.
+ * g++.dg/contracts/contracts6.C: Removed.
+ * g++.dg/contracts/contracts7.C: Removed.
+ * g++.dg/contracts/pr110159.C: Removed.
+ * g++.dg/contracts/pr113968.C: Removed.
+ * g++.dg/contracts/pr115434.C: Removed.
+ * g++.dg/contracts/pr116490.C: Removed.
+ * g++.dg/contracts/pr116607.C: Removed.
+ * g++.dg/contracts/pr117579.C: Removed.
+ * g++.dg/contracts/noexcept_preload_handler/Makefile: Removed.
+ * g++.dg/contracts/noexcept_preload_handler/README: Removed.
+ * g++.dg/contracts/noexcept_preload_handler/assert_fail.cpp: Removed.
+ * g++.dg/contracts/noexcept_preload_handler/handle_contract_violation.cpp: Removed.
+ * g++.dg/contracts/preload_handler/Makefile: Removed.
+ * g++.dg/contracts/preload_handler/README: Removed.
+ * g++.dg/contracts/preload_handler/assert_fail.cpp: Removed.
+ * g++.dg/contracts/preload_handler/handle_contract_violation.cpp: Removed.
+ * g++.dg/contracts/preload_nocontinue_handler/Makefile: Removed.
+ * g++.dg/contracts/preload_nocontinue_handler/README: Removed.
+ * g++.dg/contracts/preload_nocontinue_handler/assert_fail.cpp: Removed.
+ * g++.dg/contracts/preload_nocontinue_handler/handle_contract_violation.cpp: Removed.
+ * g++.dg/contracts/preload_nocontinue_handler/nocontinue.cpp: Removed.
+ * g++.dg/contracts/backtrace_handler/Makefile: Removed.
+ * g++.dg/contracts/backtrace_handler/README: Removed.
+ * g++.dg/contracts/backtrace_handler/assert_fail.cpp: Removed.
+ * g++.dg/contracts/backtrace_handler/example_out.txt: Removed.
+ * g++.dg/contracts/backtrace_handler/example_pretty.txt: Removed.
+ * g++.dg/contracts/backtrace_handler/handle_contract_violation.cpp: Removed.
+ * g++.dg/contracts/backtrace_handler/prettytrace.sh: Removed.
+ * g++.dg/coroutines/pr110871.C: Removed.
+ * g++.dg/coroutines/pr110872.C: Removed.
+ * g++.dg/modules/contracts-1_a.C: Removed.
+ * g++.dg/modules/contracts-1_b.C: Removed.
+ * g++.dg/modules/contracts-2_a.C: Removed.
+ * g++.dg/modules/contracts-2_b.C: Removed.
+ * g++.dg/modules/contracts-2_c.C: Removed.
+ * g++.dg/modules/contracts-3_a.C: Removed.
+ * g++.dg/modules/contracts-3_b.C: Removed.
+ * g++.dg/modules/contracts-4_a.C: Removed.
+ * g++.dg/modules/contracts-4_b.C: Removed.
+ * g++.dg/modules/contracts-4_c.C: Removed.
+ * g++.dg/modules/contracts-4_d.C: Removed.
+ * g++.dg/modules/contracts-5_a.C: Removed.
+ * g++.dg/modules/contracts-5_b.C: Removed.
+ * g++.dg/modules/contracts-tpl-friend-1_a.C: Removed.
+ * g++.dg/modules/contracts-tpl-friend-1_b.C: Removed.
+ * g++.dg/contracts/contracts8.C: Removed.
+ * g++.dg/contracts/contracts9.C: Removed.
+ * g++.dg/contracts/except_preload_handler/Makefile: Removed.
+ * g++.dg/contracts/except_preload_handler/README: Removed.
+ * g++.dg/contracts/except_preload_handler/assert_fail.cpp: Removed.
+ * g++.dg/contracts/except_preload_handler/handle_contract_violation.cpp: Removed.
+
2026-01-27 Iain Buclaw <ibuclaw@gdcproject.org>
PR d/120096
+2026-01-28 Jonathan Wakely <jwakely@redhat.com>
+
+ * src/experimental/Makefile.am: Change AM_CXXFLAGS to use C++20
+ by default.
+
+2026-01-28 Jonathan Wakely <jwakely@redhat.com>
+
+ * src/experimental/contract26.cc: Use #error if built without
+ contracts support enabled.
+ * include/std/source_location: Remove stray whitespace.
+
+2026-01-28 Jonathan Wakely <jwakely@redhat.com>
+
+ PR tree-optimization/122197
+ * include/bits/shared_ptr_base.h (~_Sp_counted_deleter): Use
+ diagnostic pragam to disable -Wfree-nonheap-object false
+ positive.
+ (~_Sp_counted_ptr_inplace): Likewise for -Warray-bounds false
+ positive.
+
+2026-01-28 Jonathan Wakely <jwakely@redhat.com>
+
+ * config/locale/gnu/ctype_members.cc (use_table): New function.
+ (ctype<wchar_t>::do_narrow): Use use_table.
+
+2026-01-28 Soumya AR <soumyaa@nvidia.com>
+
+ * include/bits/atomic_base.h:
+ Add fetch_min and fetch_max memberfunctions.
+ * include/bits/version.def:
+ Add __cpp_lib_atomic_min_max feature test macro.
+ * include/bits/version.h (defined): Regenerate.
+ * include/std/atomic: Extend for fetch_min/max non-member functions.
+ * src/c++23/std.cc.in: Export atomic_fetch_min, atomic_fetch_max,
+ atomic_fetch_min_explicit, atomic_fetch_max_explicit.
+ * testsuite/29_atomics/atomic_integral/nonmembers_fetch_minmax.cc:
+ New test.
+ * testsuite/29_atomics/atomic_ref/integral_fetch_minmax.cc: New test.
+
+2026-01-28 Nina Ranns <dinka.ranns@gmail.com>
+ Iain Sandoe <iain@sandoe.co.uk>
+ Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ * include/Makefile.am: Add contract include.
+ * include/Makefile.in: Regenerate.
+ * include/bits/version.def: Add ftm for contracts.
+ * include/bits/version.h: Regenerate.
+ * include/precompiled/stdc++.h: Add contracts header.
+ * include/std/source_location: Befriend the contract_violation
+ class so that we can initialise a source_location from an
+ existing __impl *.
+ * src/c++23/std.cc.in: Add contracts support.
+ * src/experimental/Makefile.am: Add new contract violation
+ implementation, remove the old one.
+ * src/experimental/Makefile.in: Regenerate.
+ * include/experimental/contract: Removed.
+ * src/experimental/contract.cc: Removed.
+ * include/std/contracts: New file.
+ * src/experimental/contract26.cc: New file.
+ * testsuite/18_support/contracts/invoke_default_cvh.cc: New test.
+ * testsuite/18_support/contracts/invoke_default_cvh2.cc: New test.
+
2026-01-23 Tomasz KamiĆski <tkaminsk@redhat.com>
PR libstdc++/123758