This implements the current working draft contracts including
National Body comment resolutions decided at the Nov 2025 WG21
meeting.

Is version 4 OK for trunk?
(I will need to tweak changelogs and update opt-urls before
 committing)
thanks
Iain

Iain Sandoe (4):
  c++, contracts: Remove the abandoned C++2a implementation.
  c++, contracts: Add a contract scope per basic.scope.contract.
  c++, contracts: C++26 base implementation as per P2900R14.
  c++, contracts: Add tests for C++26 contracts.

Nina Ranns (5):
  c++, contracts: Work around GCC IPA bug, PR121936 by wrapping
    terminate.
  c++, contracts: Apply P200R14 constification.
  libstdc++, contracts: Add base P2900R14 contracts support.
  c++, contracts: Allow contract checks as outlined functions.
  c++, contracts: Add caller-side contract checks, and controls.

 gcc/c-family/c-common.cc                      |    4 +-
 gcc/c-family/c-common.h                       |    5 +
 gcc/c-family/c-cppbuiltin.cc                  |    6 +-
 gcc/c-family/c.opt                            |   76 +-
 gcc/config/darwin.h                           |    6 +
 gcc/cp/call.cc                                |    8 +-
 gcc/cp/class.cc                               |    5 +
 gcc/cp/constexpr.cc                           |  103 +-
 gcc/cp/contracts.cc                           | 4156 ++++++++++-------
 gcc/cp/contracts.h                            |  332 +-
 gcc/cp/coroutines.cc                          |    3 -
 gcc/cp/cp-gimplify.cc                         |  173 +-
 gcc/cp/cp-objcp-common.cc                     |   33 -
 gcc/cp/cp-tree.def                            |    6 +-
 gcc/cp/cp-tree.h                              |   63 +-
 gcc/cp/decl.cc                                |  158 +-
 gcc/cp/decl2.cc                               |   29 +-
 gcc/cp/lambda.cc                              |    3 +
 gcc/cp/lex.cc                                 |    6 +-
 gcc/cp/mangle.cc                              |    7 -
 gcc/cp/module.cc                              |   10 +-
 gcc/cp/name-lookup.cc                         |    4 +-
 gcc/cp/name-lookup.h                          |    2 +
 gcc/cp/parser.cc                              |  818 ++--
 gcc/cp/pt.cc                                  |  118 +-
 gcc/cp/search.cc                              |   26 -
 gcc/cp/semantics.cc                           |   36 +-
 gcc/cp/tree.cc                                |   95 +-
 gcc/doc/invoke.texi                           |  153 +-
 .../contracts/backtrace_handler/Makefile      |   13 -
 .../g++.dg/contracts/backtrace_handler/README |   12 -
 .../backtrace_handler/assert_fail.cpp         |   23 -
 .../backtrace_handler/example_out.txt         |   12 -
 .../backtrace_handler/example_pretty.txt      |    8 -
 .../handle_contract_violation.cpp             |   26 -
 .../backtrace_handler/prettytrace.sh          |   30 -
 .../g++.dg/contracts/contracts-access1.C      |  129 -
 .../g++.dg/contracts/contracts-assume1.C      |   30 -
 .../g++.dg/contracts/contracts-assume2.C      |   35 -
 .../g++.dg/contracts/contracts-assume3.C      |   20 -
 .../g++.dg/contracts/contracts-assume4.C      |   20 -
 .../g++.dg/contracts/contracts-assume5.C      |   34 -
 .../g++.dg/contracts/contracts-assume6.C      |   61 -
 .../g++.dg/contracts/contracts-comdat1.C      |   19 -
 .../g++.dg/contracts/contracts-config1.C      |   47 -
 .../g++.dg/contracts/contracts-constexpr1.C   |   75 -
 .../g++.dg/contracts/contracts-constexpr2.C   |   58 -
 .../g++.dg/contracts/contracts-constexpr3.C   |   10 -
 .../g++.dg/contracts/contracts-conversion1.C  |   19 -
 .../g++.dg/contracts/contracts-ctor-dtor1.C   |  177 -
 .../g++.dg/contracts/contracts-ctor-dtor2.C   |   35 -
 .../g++.dg/contracts/contracts-cv1.C          |   37 -
 .../g++.dg/contracts/contracts-deduced1.C     |  108 -
 .../g++.dg/contracts/contracts-deduced2.C     |   85 -
 .../g++.dg/contracts/contracts-err1.C         |    7 -
 .../g++.dg/contracts/contracts-externC.C      |   20 -
 .../g++.dg/contracts/contracts-friend1.C      |   41 -
 .../g++.dg/contracts/contracts-ft1.C          |   14 -
 .../g++.dg/contracts/contracts-ignore1.C      |   30 -
 .../g++.dg/contracts/contracts-ignore2.C      |   27 -
 .../g++.dg/contracts/contracts-large-return.C |   15 -
 .../g++.dg/contracts/contracts-multiline1.C   |   20 -
 .../contracts-multiple-inheritance1.C         |   15 -
 .../contracts-multiple-inheritance2.C         |   33 -
 .../contracts/contracts-nested-class1.C       |   24 -
 .../contracts/contracts-nested-class2.C       |   41 -
 .../g++.dg/contracts/contracts-nocopy1.C      |   24 -
 .../g++.dg/contracts/contracts-override.C     |   43 -
 .../g++.dg/contracts/contracts-post1.C        |   74 -
 .../g++.dg/contracts/contracts-post2.C        |   14 -
 .../g++.dg/contracts/contracts-post3.C        |   16 -
 .../g++.dg/contracts/contracts-post4.C        |   36 -
 .../g++.dg/contracts/contracts-post5.C        |   19 -
 .../g++.dg/contracts/contracts-post6.C        |   30 -
 .../g++.dg/contracts/contracts-post7.C        |   30 -
 .../g++.dg/contracts/contracts-pre1.C         |   36 -
 .../g++.dg/contracts/contracts-pre10.C        |  217 -
 .../g++.dg/contracts/contracts-pre2.C         |  213 -
 .../g++.dg/contracts/contracts-pre2a1.C       |   33 -
 .../g++.dg/contracts/contracts-pre2a2.C       |   23 -
 .../g++.dg/contracts/contracts-pre3.C         |  526 ---
 .../g++.dg/contracts/contracts-pre4.C         |   93 -
 .../g++.dg/contracts/contracts-pre5.C         |   82 -
 .../g++.dg/contracts/contracts-pre6.C         |   74 -
 .../g++.dg/contracts/contracts-pre7.C         |  135 -
 .../g++.dg/contracts/contracts-pre9.C         |  147 -
 .../g++.dg/contracts/contracts-redecl1.C      |  149 -
 .../g++.dg/contracts/contracts-redecl2.C      |  149 -
 .../g++.dg/contracts/contracts-redecl3.C      |  196 -
 .../g++.dg/contracts/contracts-redecl4.C      |   57 -
 .../g++.dg/contracts/contracts-redecl5.C      |  101 -
 .../g++.dg/contracts/contracts-redecl6.C      |  196 -
 .../g++.dg/contracts/contracts-redecl7.C      |   96 -
 .../g++.dg/contracts/contracts-redecl8.C      |   64 -
 .../g++.dg/contracts/contracts-tmpl-attr1.C   |   19 -
 .../g++.dg/contracts/contracts-tmpl-spec1.C   |  122 -
 .../g++.dg/contracts/contracts-tmpl-spec2.C   |  448 --
 .../g++.dg/contracts/contracts-tmpl-spec3.C   |   51 -
 gcc/testsuite/g++.dg/contracts/contracts1.C   |   49 -
 gcc/testsuite/g++.dg/contracts/contracts10.C  |   74 -
 gcc/testsuite/g++.dg/contracts/contracts11.C  |  103 -
 gcc/testsuite/g++.dg/contracts/contracts12.C  |   15 -
 gcc/testsuite/g++.dg/contracts/contracts13.C  |   51 -
 gcc/testsuite/g++.dg/contracts/contracts14.C  |   59 -
 gcc/testsuite/g++.dg/contracts/contracts15.C  |   57 -
 gcc/testsuite/g++.dg/contracts/contracts16.C  |   35 -
 gcc/testsuite/g++.dg/contracts/contracts17.C  |   36 -
 gcc/testsuite/g++.dg/contracts/contracts18.C  |   16 -
 gcc/testsuite/g++.dg/contracts/contracts19.C  |   20 -
 gcc/testsuite/g++.dg/contracts/contracts2.C   |   14 -
 gcc/testsuite/g++.dg/contracts/contracts20.C  |   11 -
 gcc/testsuite/g++.dg/contracts/contracts22.C  |   33 -
 gcc/testsuite/g++.dg/contracts/contracts24.C  |   16 -
 gcc/testsuite/g++.dg/contracts/contracts25.C  |   58 -
 gcc/testsuite/g++.dg/contracts/contracts3.C   |   14 -
 gcc/testsuite/g++.dg/contracts/contracts35.C  |   48 -
 gcc/testsuite/g++.dg/contracts/contracts4.C   |   12 -
 gcc/testsuite/g++.dg/contracts/contracts5.C   |   14 -
 gcc/testsuite/g++.dg/contracts/contracts6.C   |   12 -
 gcc/testsuite/g++.dg/contracts/contracts7.C   |   15 -
 gcc/testsuite/g++.dg/contracts/contracts8.C   |   43 -
 gcc/testsuite/g++.dg/contracts/contracts9.C   |   54 -
 .../cpp26/BZ121936-workaround-noipa.C         |   22 +
 .../cpp26/assertion-statement-errors.C        |   41 +
 .../contracts/cpp26/assertion-statement.C     |   34 +
 .../cpp26/basic.contract.eval.p11-observe.C   |   31 +
 .../contracts/cpp26/basic.contract.eval.p14.C |   25 +
 .../cpp26/basic.contract.eval.p17-2.C         |   47 +
 .../cpp26/basic.contract.eval.p17-3.C         |   58 +
 .../cpp26/basic.contract.eval.p17-4.C         |   55 +
 .../cpp26/basic.contract.eval.p17-5.C         |   52 +
 .../cpp26/basic.contract.eval.p17-SMF-post.C  |   54 +
 .../cpp26/basic.contract.eval.p17-SMF-pre.C   |   54 +
 .../cpp26/basic.contract.eval.p17-SMF2.C      |   57 +
 .../cpp26/basic.contract.eval.p17-SMF3.C      |   56 +
 .../cpp26/basic.contract.eval.p17-SMF4.C      |   56 +
 .../contracts/cpp26/basic.contract.eval.p17.C |   49 +
 .../cpp26/basic.contract.eval.p4-error.C      |   14 +
 .../contracts/cpp26/basic.contract.eval.p4.C  |   27 +
 .../contracts/cpp26/basic.contract.eval.p6.C  |   31 +
 .../cpp26/basic.contract.eval.p6.observe.C    |   17 +
 .../cpp26/basic.contract.eval.p7.3.C          |   14 +
 .../cpp26/basic.contract.eval.p8-2.C          |   12 +
 .../contracts/cpp26/basic.contract.eval.p8.C  |   12 +
 .../contracts/cpp26/basic.scope.contract.p1.C |   42 +
 .../cpp26/basic.scope.contract.p2.1.C         |   11 +
 .../callerside-checks/callerside-checks-all.C |   52 +
 .../callerside-checks-non-trivial.C           |   18 +
 .../callerside-checks-none.C                  |   64 +
 .../callerside-checks/callerside-checks-pre.C |   65 +
 .../contracts/cpp26/callerside-checks/ctor.C  |   23 +
 .../freefunc-noexcept-post.C                  |   49 +
 .../callerside-checks/freefunc-noexcept-pre.C |   49 +
 .../contracts/cpp26/contract-assert-run.C     |   56 +
 .../cpp26/contract-assert-warn-attributes.C   |    7 +
 .../cpp26/contract-violation-noexcept.C       |  112 +
 .../cpp26/contract-violation-noexcept2.C      |   38 +
 .../contracts/cpp26/contract_genericize.C     |   49 +
 .../contracts/cpp26/contracts-friend1.C       |   36 +
 .../contracts/cpp26/contracts-nested-class1.C |   23 +
 .../contracts/cpp26/contracts-nested-class2.C |   38 +
 .../contracts/cpp26/contracts-tmpl-spec2.C    |  446 ++
 .../contracts/cpp26/dcl.contract.func.p4.C    |  138 +
 .../contracts/cpp26/dcl.contract.func.p6.C    |   21 +
 .../contracts/cpp26/dcl.contract.func.p7-t1.C |  161 +
 .../contracts/cpp26/dcl.contract.func.p7-t2.C |  157 +
 .../contracts/cpp26/dcl.contract.func.p7.C    |  335 ++
 .../contracts/cpp26/dcl.contract.res.p1-2.C   |   69 +
 .../contracts/cpp26/dcl.contract.res.p1-NT.C  |  146 +
 .../contracts/cpp26/dcl.contract.res.p1.C     |   23 +
 .../contracts/cpp26/dcl.contract.res.p2.C     |   25 +
 .../g++.dg/contracts/cpp26/debug-and-opt.C    |   15 +
 .../g++.dg/contracts/cpp26/deferred1.C        |   49 +
 .../contract-assert-no-def-check.C            |   25 +
 .../contracts/cpp26/dependent_contract.C      |   32 +
 .../g++.dg/contracts/cpp26/empty-nt-param.C   |   42 +
 .../cpp26/expr.prim.id.unqual.p7-2.C          |   65 +
 .../cpp26/expr.prim.id.unqual.p7-3.C          |   55 +
 .../cpp26/expr.prim.id.unqual.p7-4.C          |   57 +
 .../contracts/cpp26/expr.prim.id.unqual.p7.C  |  139 +
 .../function-contract-specifier-seq-error.C   |   50 +
 .../cpp26/function-contract-specifier-seq.C   |  122 +
 .../cpp26/intro.compliance.general.p2.3.4.C   |   13 +
 gcc/testsuite/g++.dg/contracts/cpp26/lambda.C |    5 +
 .../g++.dg/contracts/cpp26/name_mangling.C    |   15 +
 .../g++.dg/contracts/cpp26/non-trivial-ice.C  |   21 +
 .../outline-checks/freefunc-noexcept-post.C   |   46 +
 .../outline-checks/freefunc-noexcept-pre.C    |   46 +
 .../outline-checks/func-noexcept-assert.C     |   55 +
 .../outline-checks/memberfunc-noexcept-post.C |   49 +
 .../outline-checks/memberfunc-noexcept-pre.C  |   49 +
 .../contracts/cpp26/over.call.func.p3.1.C     |   36 +
 .../g++.dg/contracts/cpp26/pr113968.C         |   23 +
 .../g++.dg/contracts/cpp26/src-loc-0.C        |   18 +
 .../g++.dg/contracts/cpp26/src-loc-1.C        |   18 +
 .../g++.dg/contracts/cpp26/src-loc-2.C        |   20 +
 .../cpp26/throwing-violation-handler.cc       |   23 +
 .../g++.dg/contracts/cpp26/unused_warning.C   |   25 +
 gcc/testsuite/g++.dg/contracts/cpp26/vaargs.C |   35 +
 .../g++.dg/contracts/cpp2a/check-err.C        |   18 +
 .../contracts/except_preload_handler/Makefile |   13 -
 .../contracts/except_preload_handler/README   |   13 -
 .../except_preload_handler/assert_fail.cpp    |   20 -
 .../handle_contract_violation.cpp             |   14 -
 .../noexcept_preload_handler/Makefile         |   13 -
 .../contracts/noexcept_preload_handler/README |   15 -
 .../noexcept_preload_handler/assert_fail.cpp  |   20 -
 .../handle_contract_violation.cpp             |   14 -
 gcc/testsuite/g++.dg/contracts/pr110159.C     |   28 -
 gcc/testsuite/g++.dg/contracts/pr113968.C     |   29 -
 gcc/testsuite/g++.dg/contracts/pr115434.C     |   17 -
 gcc/testsuite/g++.dg/contracts/pr116490.C     |   57 -
 gcc/testsuite/g++.dg/contracts/pr116607.C     |    6 -
 gcc/testsuite/g++.dg/contracts/pr117579.C     |    9 -
 .../g++.dg/contracts/preload_handler/Makefile |   13 -
 .../g++.dg/contracts/preload_handler/README   |    2 -
 .../contracts/preload_handler/assert_fail.cpp |    7 -
 .../handle_contract_violation.cpp             |   15 -
 .../preload_nocontinue_handler/Makefile       |   23 -
 .../preload_nocontinue_handler/README         |   23 -
 .../assert_fail.cpp                           |   10 -
 .../handle_contract_violation.cpp             |   13 -
 .../preload_nocontinue_handler/nocontinue.cpp |   19 -
 gcc/testsuite/g++.dg/coroutines/pr110871.C    |   10 +-
 gcc/testsuite/g++.dg/coroutines/pr110872.C    |   13 +-
 gcc/testsuite/g++.dg/modules/contracts-1_a.C  |   47 -
 gcc/testsuite/g++.dg/modules/contracts-1_b.C  |   31 -
 gcc/testsuite/g++.dg/modules/contracts-2_a.C  |   50 -
 gcc/testsuite/g++.dg/modules/contracts-2_b.C  |   36 -
 gcc/testsuite/g++.dg/modules/contracts-2_c.C  |   22 -
 gcc/testsuite/g++.dg/modules/contracts-3_a.C  |   42 -
 gcc/testsuite/g++.dg/modules/contracts-3_b.C  |   33 -
 gcc/testsuite/g++.dg/modules/contracts-4_a.C  |   29 -
 gcc/testsuite/g++.dg/modules/contracts-4_b.C  |    8 -
 gcc/testsuite/g++.dg/modules/contracts-4_c.C  |    9 -
 gcc/testsuite/g++.dg/modules/contracts-4_d.C  |   22 -
 gcc/testsuite/g++.dg/modules/contracts-5_a.C  |    8 -
 gcc/testsuite/g++.dg/modules/contracts-5_b.C  |   21 -
 .../g++.dg/modules/contracts-tpl-friend-1_a.C |   17 -
 .../g++.dg/modules/contracts-tpl-friend-1_b.C |   19 -
 gcc/testsuite/g++.dg/warn/Wkeyword-macro-1.C  |    2 +-
 gcc/testsuite/g++.dg/warn/Wkeyword-macro-2.C  |    2 +-
 gcc/testsuite/g++.dg/warn/Wkeyword-macro-4.C  |    2 +-
 gcc/testsuite/g++.dg/warn/Wkeyword-macro-5.C  |    2 +-
 gcc/testsuite/g++.dg/warn/Wkeyword-macro-7.C  |    3 +-
 gcc/testsuite/g++.dg/warn/Wkeyword-macro-8.C  |    3 +-
 gcc/tree-core.h                               |    3 +
 gcc/tree.h                                    |    5 +
 libstdc++-v3/include/Makefile.am              |    2 +-
 libstdc++-v3/include/Makefile.in              |    2 +-
 libstdc++-v3/include/bits/version.def         |    9 +
 libstdc++-v3/include/bits/version.h           |   10 +
 libstdc++-v3/include/experimental/contract    |   83 -
 libstdc++-v3/include/std/contracts            |  116 +
 libstdc++-v3/include/std/source_location      |   14 +
 libstdc++-v3/src/experimental/Makefile.am     |    8 +-
 libstdc++-v3/src/experimental/Makefile.in     |   15 +-
 libstdc++-v3/src/experimental/contract.cc     |   78 -
 libstdc++-v3/src/experimental/contract26.cc   |  157 +
 .../contracts/invoke_default_cvh.cc           |   40 +
 .../contracts/invoke_default_cvh2.cc          |   72 +
 261 files changed, 8277 insertions(+), 9624 deletions(-)
 delete mode 100644 gcc/testsuite/g++.dg/contracts/backtrace_handler/Makefile
 delete mode 100644 gcc/testsuite/g++.dg/contracts/backtrace_handler/README
 delete mode 100644 
gcc/testsuite/g++.dg/contracts/backtrace_handler/assert_fail.cpp
 delete mode 100644 
gcc/testsuite/g++.dg/contracts/backtrace_handler/example_out.txt
 delete mode 100644 
gcc/testsuite/g++.dg/contracts/backtrace_handler/example_pretty.txt
 delete mode 100644 
gcc/testsuite/g++.dg/contracts/backtrace_handler/handle_contract_violation.cpp
 delete mode 100755 
gcc/testsuite/g++.dg/contracts/backtrace_handler/prettytrace.sh
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-access1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-assume1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-assume2.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-assume3.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-assume4.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-assume5.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-assume6.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-comdat1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-config1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-constexpr1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-constexpr2.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-constexpr3.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-conversion1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-ctor-dtor1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-ctor-dtor2.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-cv1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-deduced1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-deduced2.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-err1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-externC.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-friend1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-ft1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-ignore1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-ignore2.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-large-return.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-multiline1.C
 delete mode 100644 
gcc/testsuite/g++.dg/contracts/contracts-multiple-inheritance1.C
 delete mode 100644 
gcc/testsuite/g++.dg/contracts/contracts-multiple-inheritance2.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-nested-class1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-nested-class2.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-nocopy1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-override.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-post1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-post2.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-post3.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-post4.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-post5.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-post6.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-post7.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre10.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre2.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre2a1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre2a2.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre3.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre4.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre5.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre6.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre7.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre9.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-redecl1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-redecl2.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-redecl3.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-redecl4.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-redecl5.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-redecl6.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-redecl7.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-redecl8.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-tmpl-attr1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec2.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec3.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts1.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts10.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts11.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts12.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts13.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts14.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts15.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts16.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts17.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts18.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts19.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts2.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts20.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts22.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts24.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts25.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts3.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts35.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts4.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts5.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts6.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts7.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts8.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/contracts9.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/BZ121936-workaround-noipa.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/assertion-statement-errors.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/assertion-statement.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p11-observe.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p14.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p17-2.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p17-3.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p17-4.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p17-5.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p17-SMF-post.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p17-SMF-pre.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p17-SMF2.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p17-SMF3.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p17-SMF4.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p17.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p4-error.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p4.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p6.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p6.observe.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p7.3.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p8-2.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p8.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/basic.scope.contract.p1.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/basic.scope.contract.p2.1.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/callerside-checks/callerside-checks-all.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/callerside-checks/callerside-checks-non-trivial.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/callerside-checks/callerside-checks-none.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/callerside-checks/callerside-checks-pre.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/callerside-checks/ctor.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/callerside-checks/freefunc-noexcept-post.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/callerside-checks/freefunc-noexcept-pre.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/contract-assert-run.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/contract-assert-warn-attributes.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/contract-violation-noexcept.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/contract-violation-noexcept2.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/contract_genericize.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/contracts-friend1.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/contracts-nested-class1.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/contracts-nested-class2.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/contracts-tmpl-spec2.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/dcl.contract.func.p4.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/dcl.contract.func.p6.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/dcl.contract.func.p7-t1.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/dcl.contract.func.p7-t2.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/dcl.contract.func.p7.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/dcl.contract.res.p1-2.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/dcl.contract.res.p1-NT.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/dcl.contract.res.p1.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/dcl.contract.res.p2.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/debug-and-opt.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/deferred1.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/definition-checks/contract-assert-no-def-check.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/dependent_contract.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/empty-nt-param.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/expr.prim.id.unqual.p7-2.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/expr.prim.id.unqual.p7-3.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/expr.prim.id.unqual.p7-4.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/expr.prim.id.unqual.p7.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/function-contract-specifier-seq-error.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/function-contract-specifier-seq.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/intro.compliance.general.p2.3.4.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/lambda.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/name_mangling.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/non-trivial-ice.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/outline-checks/freefunc-noexcept-post.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/outline-checks/freefunc-noexcept-pre.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/outline-checks/func-noexcept-assert.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/outline-checks/memberfunc-noexcept-post.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/outline-checks/memberfunc-noexcept-pre.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/over.call.func.p3.1.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/pr113968.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/src-loc-0.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/src-loc-1.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/src-loc-2.C
 create mode 100644 
gcc/testsuite/g++.dg/contracts/cpp26/throwing-violation-handler.cc
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/unused_warning.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp26/vaargs.C
 create mode 100644 gcc/testsuite/g++.dg/contracts/cpp2a/check-err.C
 delete mode 100644 
gcc/testsuite/g++.dg/contracts/except_preload_handler/Makefile
 delete mode 100644 gcc/testsuite/g++.dg/contracts/except_preload_handler/README
 delete mode 100644 
gcc/testsuite/g++.dg/contracts/except_preload_handler/assert_fail.cpp
 delete mode 100644 
gcc/testsuite/g++.dg/contracts/except_preload_handler/handle_contract_violation.cpp
 delete mode 100644 
gcc/testsuite/g++.dg/contracts/noexcept_preload_handler/Makefile
 delete mode 100644 
gcc/testsuite/g++.dg/contracts/noexcept_preload_handler/README
 delete mode 100644 
gcc/testsuite/g++.dg/contracts/noexcept_preload_handler/assert_fail.cpp
 delete mode 100644 
gcc/testsuite/g++.dg/contracts/noexcept_preload_handler/handle_contract_violation.cpp
 delete mode 100644 gcc/testsuite/g++.dg/contracts/pr110159.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/pr113968.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/pr115434.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/pr116490.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/pr116607.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/pr117579.C
 delete mode 100644 gcc/testsuite/g++.dg/contracts/preload_handler/Makefile
 delete mode 100644 gcc/testsuite/g++.dg/contracts/preload_handler/README
 delete mode 100644 
gcc/testsuite/g++.dg/contracts/preload_handler/assert_fail.cpp
 delete mode 100644 
gcc/testsuite/g++.dg/contracts/preload_handler/handle_contract_violation.cpp
 delete mode 100644 
gcc/testsuite/g++.dg/contracts/preload_nocontinue_handler/Makefile
 delete mode 100644 
gcc/testsuite/g++.dg/contracts/preload_nocontinue_handler/README
 delete mode 100644 
gcc/testsuite/g++.dg/contracts/preload_nocontinue_handler/assert_fail.cpp
 delete mode 100644 
gcc/testsuite/g++.dg/contracts/preload_nocontinue_handler/handle_contract_violation.cpp
 delete mode 100644 
gcc/testsuite/g++.dg/contracts/preload_nocontinue_handler/nocontinue.cpp
 delete mode 100644 gcc/testsuite/g++.dg/modules/contracts-1_a.C
 delete mode 100644 gcc/testsuite/g++.dg/modules/contracts-1_b.C
 delete mode 100644 gcc/testsuite/g++.dg/modules/contracts-2_a.C
 delete mode 100644 gcc/testsuite/g++.dg/modules/contracts-2_b.C
 delete mode 100644 gcc/testsuite/g++.dg/modules/contracts-2_c.C
 delete mode 100644 gcc/testsuite/g++.dg/modules/contracts-3_a.C
 delete mode 100644 gcc/testsuite/g++.dg/modules/contracts-3_b.C
 delete mode 100644 gcc/testsuite/g++.dg/modules/contracts-4_a.C
 delete mode 100644 gcc/testsuite/g++.dg/modules/contracts-4_b.C
 delete mode 100644 gcc/testsuite/g++.dg/modules/contracts-4_c.C
 delete mode 100644 gcc/testsuite/g++.dg/modules/contracts-4_d.C
 delete mode 100644 gcc/testsuite/g++.dg/modules/contracts-5_a.C
 delete mode 100644 gcc/testsuite/g++.dg/modules/contracts-5_b.C
 delete mode 100644 gcc/testsuite/g++.dg/modules/contracts-tpl-friend-1_a.C
 delete mode 100644 gcc/testsuite/g++.dg/modules/contracts-tpl-friend-1_b.C
 delete mode 100644 libstdc++-v3/include/experimental/contract
 create mode 100644 libstdc++-v3/include/std/contracts
 delete mode 100644 libstdc++-v3/src/experimental/contract.cc
 create mode 100644 libstdc++-v3/src/experimental/contract26.cc
 create mode 100644 
libstdc++-v3/testsuite/18_support/contracts/invoke_default_cvh.cc
 create mode 100644 
libstdc++-v3/testsuite/18_support/contracts/invoke_default_cvh2.cc

-- 
2.50.1 (Apple Git-155)


Reply via email to