From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2122) id 0F7F23857824; Tue, 1 Nov 2022 11:43:11 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0F7F23857824 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1667302991; bh=zCoes91cCwlQZ81DJhpPyykdmc1gY+49DXaj5AI4Wiw=; h=From:To:Subject:Date:From; b=G588XFxmZHUV3hFEXIb2m3wiRNXZlRLzqvcFZgZoyczhR39BR+kkgNBZhyXHjqJHE LNQl/q0et77hRUyXE80QP42IOGN3XR3QW0I93fQTIlri0upzdmh4twpQ8XnPVMOAM+ cAnnZHnB9IxVlsAQ+xTrcdxFxMMki3YSJY3AwhzA= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Jason Merrill To: gcc-cvs@gcc.gnu.org, libstdc++-cvs@gcc.gnu.org Subject: [gcc/devel/c++-contracts] c++: move contract_violation to std::experimental X-Act-Checkin: gcc X-Git-Author: Jason Merrill X-Git-Refname: refs/heads/devel/c++-contracts X-Git-Oldrev: 3a3e900ba634451f95443077a890f70003ec1fc6 X-Git-Newrev: a7a4a4ea950bed8f375f6fef8117a41cb238a1a2 Message-Id: <20221101114311.0F7F23857824@sourceware.org> Date: Tue, 1 Nov 2022 11:43:11 +0000 (GMT) List-Id: https://gcc.gnu.org/g:a7a4a4ea950bed8f375f6fef8117a41cb238a1a2 commit a7a4a4ea950bed8f375f6fef8117a41cb238a1a2 Author: Jason Merrill 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 #include -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 #include -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 -#include +#include 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 -#include +#include 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 -#include +#include 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 -#include +#include 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 __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