public inbox for libstdc++-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc/devel/c++-contracts] c++: move contract_violation to std::experimental
@ 2022-11-01 11:43 Jason Merrill
0 siblings, 0 replies; only message in thread
From: Jason Merrill @ 2022-11-01 11:43 UTC (permalink / raw)
To: gcc-cvs, libstdc++-cvs
https://gcc.gnu.org/g:a7a4a4ea950bed8f375f6fef8117a41cb238a1a2
commit a7a4a4ea950bed8f375f6fef8117a41cb238a1a2
Author: Jason Merrill <jason@redhat.com>
Date: Tue Oct 25 16:52:34 2022 -0400
c++: move contract_violation to std::experimental
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.
Diff:
---
gcc/testsuite/g++.dg/contracts/contracts14.C | 2 +-
gcc/testsuite/g++.dg/contracts/contracts15.C | 2 +-
gcc/testsuite/g++.dg/contracts/contracts16.C | 2 +-
gcc/testsuite/g++.dg/contracts/contracts17.C | 2 +-
gcc/testsuite/g++.dg/modules/contracts-1_a.C | 4 ++--
gcc/testsuite/g++.dg/modules/contracts-2_a.C | 4 ++--
gcc/testsuite/g++.dg/modules/contracts-3_a.C | 4 ++--
gcc/testsuite/g++.dg/modules/contracts-4_a.C | 4 ++--
libstdc++-v3/src/experimental/contract.cc | 8 ++++----
libstdc++-v3/include/experimental/contract | 10 +++++++---
10 files changed, 23 insertions(+), 19 deletions(-)
diff --git a/gcc/testsuite/g++.dg/contracts/contracts14.C b/gcc/testsuite/g++.dg/contracts/contracts14.C
index cca1e79964f..4e81155ba11 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts14.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts14.C
@@ -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()
diff --git a/gcc/testsuite/g++.dg/contracts/contracts15.C b/gcc/testsuite/g++.dg/contracts/contracts15.C
index fefafdfa66e..af3e539e1ce 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts15.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts15.C
@@ -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()
diff --git a/gcc/testsuite/g++.dg/contracts/contracts16.C b/gcc/testsuite/g++.dg/contracts/contracts16.C
index d80cda46501..1c7054507f2 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts16.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts16.C
@@ -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()
diff --git a/gcc/testsuite/g++.dg/contracts/contracts17.C b/gcc/testsuite/g++.dg/contracts/contracts17.C
index 099e0b2d03e..d165bb05315 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts17.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts17.C
@@ -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()
diff --git a/gcc/testsuite/g++.dg/modules/contracts-1_a.C b/gcc/testsuite/g++.dg/modules/contracts-1_a.C
index 17bd5603e0c..f991ef8644e 100644
--- a/gcc/testsuite/g++.dg/modules/contracts-1_a.C
+++ b/gcc/testsuite/g++.dg/modules/contracts-1_a.C
@@ -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);
diff --git a/gcc/testsuite/g++.dg/modules/contracts-2_a.C b/gcc/testsuite/g++.dg/modules/contracts-2_a.C
index 59b7a8194df..828d680d2a0 100644
--- a/gcc/testsuite/g++.dg/modules/contracts-2_a.C
+++ b/gcc/testsuite/g++.dg/modules/contracts-2_a.C
@@ -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;
diff --git a/gcc/testsuite/g++.dg/modules/contracts-3_a.C b/gcc/testsuite/g++.dg/modules/contracts-3_a.C
index 24e709768ae..a4f03d35842 100644
--- a/gcc/testsuite/g++.dg/modules/contracts-3_a.C
+++ b/gcc/testsuite/g++.dg/modules/contracts-3_a.C
@@ -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);
diff --git a/gcc/testsuite/g++.dg/modules/contracts-4_a.C b/gcc/testsuite/g++.dg/modules/contracts-4_a.C
index 0fe6f02cb94..f269e6c2078 100644
--- a/gcc/testsuite/g++.dg/modules/contracts-4_a.C
+++ b/gcc/testsuite/g++.dg/modules/contracts-4_a.C
@@ -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);
diff --git a/libstdc++-v3/src/experimental/contract.cc b/libstdc++-v3/src/experimental/contract.cc
index 8c649b5aafd..ddb1df47cb5 100644
--- a/libstdc++-v3/src/experimental/contract.cc
+++ b/libstdc++-v3/src/experimental/contract.cc
@@ -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,
diff --git a/libstdc++-v3/include/experimental/contract b/libstdc++-v3/include/experimental/contract
index 7a5f743665b..dc58a38a343 100644
--- a/libstdc++-v3/include/experimental/contract
+++ b/libstdc++-v3/include/experimental/contract
@@ -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
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-11-01 11:43 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-01 11:43 [gcc/devel/c++-contracts] c++: move contract_violation to std::experimental Jason Merrill
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).