]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
c++: move contract_violation to std::experimental
authorJason Merrill <jason@redhat.com>
Tue, 25 Oct 2022 20:52:34 +0000 (16:52 -0400)
committerJason Merrill <jason@redhat.com>
Fri, 28 Oct 2022 20:36:00 +0000 (16:36 -0400)
libstdc++-v3/ChangeLog:

* include/experimental/contract: Move into std::experimental
* src/experimental/contract.cc: Adjust.

gcc/testsuite/ChangeLog:

* g++.dg/contracts/contracts14.C
* g++.dg/contracts/contracts15.C
* g++.dg/contracts/contracts16.C
* g++.dg/contracts/contracts17.C: contract_violation is now in
std::experimental.

gcc/testsuite/g++.dg/contracts/contracts14.C
gcc/testsuite/g++.dg/contracts/contracts15.C
gcc/testsuite/g++.dg/contracts/contracts16.C
gcc/testsuite/g++.dg/contracts/contracts17.C
gcc/testsuite/g++.dg/modules/contracts-1_a.C
gcc/testsuite/g++.dg/modules/contracts-2_a.C
gcc/testsuite/g++.dg/modules/contracts-3_a.C
gcc/testsuite/g++.dg/modules/contracts-4_a.C
libstdc++-v3/include/experimental/contract
libstdc++-v3/src/experimental/contract.cc

index cca1e79964ffedfae04ed59a51f2d51fc0138744..4e81155ba11df0de372b9f38089a961a2a91e202 100644 (file)
@@ -15,7 +15,7 @@ __on_contract_violation (bool continue_,
         const char * assertion_role,
         int continuation_mode);
 
-void handle_contract_violation(const std::contract_violation &violation) {
+void handle_contract_violation(const std::experimental::contract_violation &violation) {
   std::cerr << "custom std::handle_contract_violation called:"
     << " " << violation.line_number()
     << " " << violation.file_name()
index fefafdfa66e27b69a8a707e86dadd9e5ca69f43b..af3e539e1cecba8d9793191b01f5639f7de8d0a2 100644 (file)
@@ -15,7 +15,7 @@ __on_contract_violation (bool continue_,
         const char * assertion_role,
         int continuation_mode);
 
-void handle_contract_violation(const std::contract_violation &violation) {
+void handle_contract_violation(const std::experimental::contract_violation &violation) {
   std::cerr << "custom std::handle_contract_violation called:"
     << " " << violation.line_number()
     << " " << violation.file_name()
index d80cda46501ddaa916029259924a22bc671ced75..1c7054507f2ac374cb7a09eed1441ad18296ab7e 100644 (file)
@@ -5,7 +5,7 @@
 #include <iostream>
 #include <experimental/contract>
 
-void handle_contract_violation(const std::contract_violation &violation) {
+void handle_contract_violation(const std::experimental::contract_violation &violation) {
   std::cerr << "custom std::handle_contract_violation called:"
     << " " << violation.line_number()
     << " " << violation.file_name()
index 099e0b2d03ebbe050e62dc77a0b8fb35b2903d84..d165bb05315198c5e2311c95d7b24b42b4bc0989 100644 (file)
@@ -6,7 +6,7 @@
 #include <iostream>
 #include <experimental/contract>
 
-void handle_contract_violation(const std::contract_violation &violation) {
+void handle_contract_violation(const std::experimental::contract_violation &violation) {
   std::cerr << "custom std::handle_contract_violation called:"
     << " " << violation.line_number()
     << " " << violation.file_name()
index 17bd5603e0c766312029734585fb5dba81944c03..f991ef8644eb3d4c3f99fa0c5d10e600c94a9542 100644 (file)
@@ -3,12 +3,12 @@
 // { dg-additional-options "-fmodules-ts -fcontracts -fcontract-continuation-mode=on" }
 module;
 #include <cstdio>
-#include <contract>
+#include <experimental/contract>
 export module foo;
 // { dg-module-cmi foo }
 
 export int violation_count{0};
-extern "C++" export void handle_contract_violation(const std::contract_violation &violation)
+extern "C++" export void handle_contract_violation(const std::experimental::contract_violation &violation)
 {
   violation_count++;
   printf("violation_count: %d\n", violation_count);
index 59b7a8194df3bcb296d2bfdcfe6a656ef66d2a38..828d680d2a091bbeb6e4442fd76f3eea4dc1794c 100644 (file)
@@ -6,13 +6,13 @@
 // { dg-additional-options "-fmodules-ts -fcontracts -fcontract-role=default:maybe,maybe,ignore" }
 module;
 #include <cstdio>
-#include <contract>
+#include <experimental/contract>
 export module foo;
 // { dg-module-cmi foo }
 
 export int violation_count{0};
 export int violation_line_sum{0};
-extern "C++" export void handle_contract_violation(const std::contract_violation &violation)
+extern "C++" export void handle_contract_violation(const std::experimental::contract_violation &violation)
 {
   violation_count++;
   violation_line_sum += violation.line_number () * violation_count;
index 24e709768ae6fadc8313bb918c763069f66e634e..a4f03d358426ce91ee027efa864dd765579cf2be 100644 (file)
@@ -3,12 +3,12 @@
 // { dg-additional-options "-fmodules-ts -fcontracts -fcontract-continuation-mode=on" }
 module;
 #include <cstdio>
-#include <contract>
+#include <experimental/contract>
 export module foo;
 // { dg-module-cmi foo }
 
 export int violation_count{0};
-extern "C++" export void handle_contract_violation(const std::contract_violation &violation)
+extern "C++" export void handle_contract_violation(const std::experimental::contract_violation &violation)
 {
   violation_count++;
   printf("violation_count: %d\n", violation_count);
index 0fe6f02cb9417be6acaa199a51b8484302f6f1e7..f269e6c207826efe39a8e56b83dc67be3aa7c27f 100644 (file)
@@ -4,12 +4,12 @@
 // { dg-additional-options "-fmodules-ts -fcontracts -fcontract-role=default:maybe,maybe,ignore" }
 module;
 #include <cstdio>
-#include <contract>
+#include <experimental/contract>
 export module foo;
 // { dg-module-cmi foo }
 
 export int violation_count{0};
-extern "C++" export void handle_contract_violation(const std::contract_violation &violation)
+extern "C++" export void handle_contract_violation(const std::experimental::contract_violation &violation)
 {
   violation_count++;
   printf("violation_count: %d\n", violation_count);
index 7a5f743665b62891b6ba7ef485ccfb1c22be264b..dc58a38a3435ec0d44862cdaa92843c9b095643d 100644 (file)
@@ -45,6 +45,8 @@ namespace std _GLIBCXX_VISIBILITY(default)
 {
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
+namespace experimental
+{
   // From P1332
   enum class contract_violation_continuation_mode {
     NEVER_CONTINUE, MAYBE_CONTINUE
@@ -76,12 +78,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     { return _M_continue; }
   };
 
-  //void handle_contract_violation (const contract_violation &);
-
-  //int on_contract_violation (bool, int, const char *, const char *, const char *, const char *, const char *, int);
+} // namespace experimental
 
 _GLIBCXX_END_NAMESPACE_VERSION
 } // namespace std
 
+  //void handle_contract_violation (const contract_violation &);
+
+  //int on_contract_violation (bool, int, const char *, const char *, const char *, const char *, const char *, int);
+
 #endif // C++17
 #endif // _GLIBCXX_CONTRACT
index 8c649b5aafd4f75b92f8ba021caf37399254c991..ddb1df47cb570f79a891d64e7c49ca6a6d8501c1 100644 (file)
@@ -1,4 +1,4 @@
-// -*- C++ -*- std::contract_violation and friends
+// -*- C++ -*- std::experimental::contract_violation and friends
 // Copyright (C) 1994-2018 Free Software Foundation, Inc.
 //
 // This file is part of GCC.
@@ -27,7 +27,7 @@
 #include <cstdlib>
 
 __attribute__ ((weak)) void
-handle_contract_violation (const std::contract_violation &violation)
+handle_contract_violation (const std::experimental::contract_violation &violation)
 {
   std::cerr << "default std::handle_contract_violation called: " << std::endl
     << " " << violation.file_name()
@@ -51,8 +51,8 @@ __on_contract_violation (bool continue_,
                         const char *assertion_role,
                         int continuation_mode)
 {
-  using cvmc = std::contract_violation_continuation_mode;
-  std::contract_violation violation (line_number,
+  using cvmc = std::experimental::contract_violation_continuation_mode;
+  std::experimental::contract_violation violation (line_number,
                                     file_name,
                                     function_name,
                                     comment,