public inbox for libstdc++@gcc.gnu.org
 help / color / mirror / Atom feed
From: "Arsen Arsenović" <arsen@aarsen.me>
To: Jason Merrill <jason@redhat.com>
Cc: gcc-patches@gcc.gnu.org, jwakely@redhat.com,
	libstdc++@gcc.gnu.org, "Arsen Arsenović" <arsen@aarsen.me>
Subject: [PATCH 2/3] contracts: Update testsuite against new default viol. handler format
Date: Thu, 22 Dec 2022 12:03:07 +0100	[thread overview]
Message-ID: <20221222110306.3869396-2-arsen@aarsen.me> (raw)
In-Reply-To: <fb8a7186-55a0-0f2a-1cc6-3e34932c23f2@redhat.com>

This change was almost entirely mechanical.  Save for two files which had very
short matches, these changes were produced by two seds and a Perl script, for
the more involved cases.  The latter will be added in a subsequent commit.  The
former are as follows:

    sed -E -i "/dg-output/s/default std::handle_contract_violation called: \
    (\S+) (\S+) (\S+(<[A-Za-z0-9, ]*)?>?)\
    /contract violation in function \3 at \1:\2: /" *.C
    sed -i '/dg-output/s/  */ /g'

Whichever files remained failing after the above changes were checked-out,
re-ran, with output extracted, and ran through dg-out-generator.pl.

gcc/testsuite/ChangeLog:

	* g++.dg/contracts/contracts-access1.C: Convert to new default
	violation handler.
	* g++.dg/contracts/contracts-config1.C: Ditto.
	* g++.dg/contracts/contracts-constexpr1.C: Ditto.
	* g++.dg/contracts/contracts-ctor-dtor1.C: Ditto.
	* g++.dg/contracts/contracts-deduced2.C: Ditto.
	* g++.dg/contracts/contracts-friend1.C: Ditto.
	* g++.dg/contracts/contracts-multiline1.C: Ditto.
	* g++.dg/contracts/contracts-post3.C: Ditto.
	* g++.dg/contracts/contracts-pre10.C: Ditto.
	* g++.dg/contracts/contracts-pre2.C: Ditto.
	* g++.dg/contracts/contracts-pre2a2.C: Ditto.
	* g++.dg/contracts/contracts-pre3.C: Ditto.
	* g++.dg/contracts/contracts-pre4.C: Ditto.
	* g++.dg/contracts/contracts-pre5.C: Ditto.
	* g++.dg/contracts/contracts-pre7.C: Ditto.
	* g++.dg/contracts/contracts-pre9.C: Ditto.
	* g++.dg/contracts/contracts-redecl3.C: Ditto.
	* g++.dg/contracts/contracts-redecl4.C: Ditto.
	* g++.dg/contracts/contracts-redecl6.C: Ditto.
	* g++.dg/contracts/contracts-redecl7.C: Ditto.
	* g++.dg/contracts/contracts-tmpl-spec1.C: Ditto.
	* g++.dg/contracts/contracts-tmpl-spec2.C: Ditto.
	* g++.dg/contracts/contracts-tmpl-spec3.C: Ditto.
	* g++.dg/contracts/contracts10.C: Ditto.
	* g++.dg/contracts/contracts19.C: Ditto.
	* g++.dg/contracts/contracts25.C: Ditto.
	* g++.dg/contracts/contracts3.C: Ditto.
	* g++.dg/contracts/contracts35.C: Ditto.
	* g++.dg/contracts/contracts5.C: Ditto.
	* g++.dg/contracts/contracts7.C: Ditto.
	* g++.dg/contracts/contracts9.C: Ditto.
---
 .../g++.dg/contracts/contracts-access1.C      |  36 +--
 .../g++.dg/contracts/contracts-config1.C      |  30 ++-
 .../g++.dg/contracts/contracts-constexpr1.C   |  16 +-
 .../g++.dg/contracts/contracts-ctor-dtor1.C   |  96 ++++----
 .../g++.dg/contracts/contracts-deduced2.C     |  20 +-
 .../g++.dg/contracts/contracts-friend1.C      |  10 +-
 .../g++.dg/contracts/contracts-multiline1.C   |   2 +-
 .../g++.dg/contracts/contracts-post3.C        |   2 +-
 .../g++.dg/contracts/contracts-pre10.C        | 122 ++++++----
 .../g++.dg/contracts/contracts-pre2.C         |  36 +--
 .../g++.dg/contracts/contracts-pre2a2.C       |   6 +-
 .../g++.dg/contracts/contracts-pre3.C         | 156 ++++++------
 .../g++.dg/contracts/contracts-pre4.C         |  12 +-
 .../g++.dg/contracts/contracts-pre5.C         |  24 +-
 .../g++.dg/contracts/contracts-pre7.C         |  24 +-
 .../g++.dg/contracts/contracts-pre9.C         |  24 +-
 .../g++.dg/contracts/contracts-redecl3.C      |  36 +--
 .../g++.dg/contracts/contracts-redecl4.C      |  24 +-
 .../g++.dg/contracts/contracts-redecl6.C      |  36 +--
 .../g++.dg/contracts/contracts-redecl7.C      |  18 +-
 .../g++.dg/contracts/contracts-tmpl-spec1.C   |  26 +-
 .../g++.dg/contracts/contracts-tmpl-spec2.C   | 230 +++++++++++-------
 .../g++.dg/contracts/contracts-tmpl-spec3.C   |  27 +-
 gcc/testsuite/g++.dg/contracts/contracts10.C  |  16 +-
 gcc/testsuite/g++.dg/contracts/contracts19.C  |   4 +-
 gcc/testsuite/g++.dg/contracts/contracts25.C  |   8 +-
 gcc/testsuite/g++.dg/contracts/contracts3.C   |   2 +-
 gcc/testsuite/g++.dg/contracts/contracts35.C  |  16 +-
 gcc/testsuite/g++.dg/contracts/contracts5.C   |   2 +-
 gcc/testsuite/g++.dg/contracts/contracts7.C   |   2 +-
 gcc/testsuite/g++.dg/contracts/contracts9.C   |  24 +-
 31 files changed, 594 insertions(+), 493 deletions(-)

diff --git a/gcc/testsuite/g++.dg/contracts/contracts-access1.C b/gcc/testsuite/g++.dg/contracts/contracts-access1.C
index a3a29821017..414b29a1613 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-access1.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-access1.C
@@ -107,22 +107,22 @@ int main()
   return 0;
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 11 Base::b .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 12 Base::b .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 13 Base::b .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 26 Child::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 27 Child::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 28 Child::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 37 VChild::b .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 38 VChild::b .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 39 VChild::b .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 49 TChild<Base>::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 50 TChild<Base>::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 51 TChild<Base>::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 67 PubChild::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 68 PubChild::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 69 PubChild::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 79 TPubChild<PubBase>::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 80 TPubChild<PubBase>::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 81 TPubChild<PubBase>::fun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function Base::b at .*.C:11: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function Base::b at .*.C:12: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function Base::b at .*.C:13: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function Child::fun at .*.C:26: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function Child::fun at .*.C:27: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function Child::fun at .*.C:28: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function VChild::b at .*.C:37: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function VChild::b at .*.C:38: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function VChild::b at .*.C:39: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function TChild<Base>::fun at .*.C:49: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function TChild<Base>::fun at .*.C:50: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function TChild<Base>::fun at .*.C:51: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function PubChild::fun at .*.C:67: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function PubChild::fun at .*.C:68: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function PubChild::fun at .*.C:69: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function TPubChild<PubBase>::fun at .*.C:79: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function TPubChild<PubBase>::fun at .*.C:80: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function TPubChild<PubBase>::fun at .*.C:81: .*(\n|\r\n|\r)*" }
 
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-config1.C b/gcc/testsuite/g++.dg/contracts/contracts-config1.C
index 9e32bac535d..950b0d80084 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-config1.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-config1.C
@@ -24,13 +24,23 @@ int main(int, char **)
   return 0;
 }
 
-// { dg-output "default std::handle_contract_violation called: .*main false default default 1.*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*main false default default 1.*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*main false audit default 1.*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*main false default new_role 1.*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*main false default new_role 1.*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*main false audit new_role 1.*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*main false   1.*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*main false default default 1.*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*main false audit default 1.*(\n|\r\n|\r)*" }
-
+// { dg-output {contract violation in function main at .*:14: false(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function main at .*:15: false(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function main at .*:16: false(\n|\r\n|\r)*} }
+// { dg-output {\[level:audit, continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function main at .*:17: false(\n|\r\n|\r)*} }
+// { dg-output {\[role:new_role, continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function main at .*:18: false(\n|\r\n|\r)*} }
+// { dg-output {\[role:new_role, continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function main at .*:19: false(\n|\r\n|\r)*} }
+// { dg-output {\[level:audit, role:new_role, continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function main at .*:20: false(\n|\r\n|\r)*} }
+// { dg-output {\[level:, role:, continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function main at .*:21: false(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function main at .*:22: false(\n|\r\n|\r)*} }
+// { dg-output {\[level:audit, continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function fun at .*:7: r > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-constexpr1.C b/gcc/testsuite/g++.dg/contracts/contracts-constexpr1.C
index 4c111358d9b..dc2a3854901 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-constexpr1.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-constexpr1.C
@@ -63,12 +63,12 @@ int main(int, char **) {
   return 0;
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 14 ffun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 15 ffun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 38 ftfun<int> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 39 ftfun<int> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 46 explicitfn .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 48 explicitfn .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 38 ftfun<double> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 39 ftfun<double> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ffun at .*.C:14: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ffun at .*.C:15: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ftfun<int> at .*.C:38: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ftfun<int> at .*.C:39: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function explicitfn at .*.C:46: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function explicitfn at .*.C:48: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ftfun<double> at .*.C:38: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ftfun<double> at .*.C:39: .*(\n|\r\n|\r)*" }
 
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-ctor-dtor1.C b/gcc/testsuite/g++.dg/contracts/contracts-ctor-dtor1.C
index bcd6096b5a7..618a7efb07b 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-ctor-dtor1.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-ctor-dtor1.C
@@ -124,54 +124,54 @@ int main(int, char**)
 };
 
 // test0
-// { dg-output "default std::handle_contract_violation called: .*.C 11 S::S .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 11 S::S .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 20 SInline::SInline .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 20 SInline::SInline .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 26 SDelegate0::SDelegate0 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 26 SDelegate0::SDelegate0 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 34 SDelegate1::SDelegate1 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 34 SDelegate1::SDelegate1 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 41 SDelegate2::SDelegate2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 40 SDelegate2::SDelegate2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 40 SDelegate2::SDelegate2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 41 SDelegate2::SDelegate2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 48 SDelegate3::SDelegate3 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 47 SDelegate3::SDelegate3 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 47 SDelegate3::SDelegate3 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 48 SDelegate3::SDelegate3 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 55 S1<int>::S1 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 55 S1<int>::S1 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 55 S1<double>::S1 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 55 S1<double>::S1 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 61 S2::S2<int> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 61 S2::S2<int> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 61 S2::S2<double> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 61 S2::S2<double> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 68 S3<int>::S3<int> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 68 S3<int>::S3<int> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 68 S3<int>::S3<double> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 68 S3<int>::S3<double> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 68 S3<double>::S3<int> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 68 S3<double>::S3<int> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 68 S3<double>::S3<double> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 68 S3<double>::S3<double> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 49 SDelegate3::~SDelegate3 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 49 SDelegate3::~SDelegate3 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 42 SDelegate2::~SDelegate2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 42 SDelegate2::~SDelegate2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 35 SDelegate1::~SDelegate1 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 35 SDelegate1::~SDelegate1 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 28 SDelegate0::~SDelegate0 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 28 SDelegate0::~SDelegate0 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 21 SInline::~SInline .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 21 SInline::~SInline .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 12 S::~S .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 12 S::~S .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S::S at .*.C:11 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S::S at .*.C:11 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SInline::SInline at .*.C:20 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SInline::SInline at .*.C:20 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SDelegate0::SDelegate0 at .*.C:26 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SDelegate0::SDelegate0 at .*.C:26 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SDelegate1::SDelegate1 at .*.C:34 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SDelegate1::SDelegate1 at .*.C:34 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SDelegate2::SDelegate2 at .*.C:41 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SDelegate2::SDelegate2 at .*.C:40 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SDelegate2::SDelegate2 at .*.C:40 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SDelegate2::SDelegate2 at .*.C:41 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SDelegate3::SDelegate3 at .*.C:48 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SDelegate3::SDelegate3 at .*.C:47 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SDelegate3::SDelegate3 at .*.C:47 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SDelegate3::SDelegate3 at .*.C:48 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S1<int>::S1 at .*.C:55 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S1<int>::S1 at .*.C:55 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S1<double>::S1 at .*.C:55 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S1<double>::S1 at .*.C:55 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S2::S2<int> at .*.C:61 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S2::S2<int> at .*.C:61 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S2::S2<double> at .*.C:61 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S2::S2<double> at .*.C:61 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S3<int>::S3<int> at .*.C:68 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S3<int>::S3<int> at .*.C:68 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S3<int>::S3<double> at .*.C:68 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S3<int>::S3<double> at .*.C:68 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S3<double>::S3<int> at .*.C:68 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S3<double>::S3<int> at .*.C:68 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S3<double>::S3<double> at .*.C:68 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S3<double>::S3<double> at .*.C:68 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SDelegate3::~SDelegate3 at .*.C:49 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SDelegate3::~SDelegate3 at .*.C:49 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SDelegate2::~SDelegate2 at .*.C:42 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SDelegate2::~SDelegate2 at .*.C:42 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SDelegate1::~SDelegate1 at .*.C:35 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SDelegate1::~SDelegate1 at .*.C:35 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SDelegate0::~SDelegate0 at .*.C:28 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SDelegate0::~SDelegate0 at .*.C:28 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SInline::~SInline at .*.C:21 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function SInline::~SInline at .*.C:21 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S::~S at .*.C:12 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S::~S at .*.C:12 .*(\n|\r\n|\r)*" }
 
 // test1
-// { dg-output "default std::handle_contract_violation called: .*.C 73 G0::G0 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 80 G1::G1 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 81 G1::~G1 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 74 G0::~G0 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function G0::G0 at .*.C:73 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function G1::G1 at .*.C:80 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function G1::~G1 at .*.C:81 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function G0::~G0 at .*.C:74 .*(\n|\r\n|\r)*" }
 
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-deduced2.C b/gcc/testsuite/g++.dg/contracts/contracts-deduced2.C
index da9c019f10a..fd43166e7b0 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-deduced2.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-deduced2.C
@@ -71,14 +71,14 @@ int main(int, char**) {
   return 0;
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 5 g0 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 5 g0 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 12 g1 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 23 g3 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 30 g4 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 37 g5 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 46 g6<int> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 46 g6<double> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 55 g7<int> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 55 g7<double> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function g0 at .*.C:5: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function g0 at .*.C:5: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function g1 at .*.C:12: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function g3 at .*.C:23: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function g4 at .*.C:30: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function g5 at .*.C:37: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function g6<int> at .*.C:46: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function g6<double> at .*.C:46: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function g7<int> at .*.C:55: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function g7<double> at .*.C:55: .*(\n|\r\n|\r)*" }
 
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-friend1.C b/gcc/testsuite/g++.dg/contracts/contracts-friend1.C
index 0ccfbe2c7c3..5eec11ffb26 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-friend1.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-friend1.C
@@ -33,8 +33,8 @@ int main(int, char**) {
   return 0;
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 6 fn0 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 19 fn2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 9 X::fns0 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 10 X::fns1 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 21 X::fns2 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function fn0 at .*.C:6: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function fn2 at .*.C:19: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function X::fns0 at .*.C:9: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function X::fns1 at .*.C:10: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function X::fns2 at .*.C:21: .*(\n|\r\n|\r)*" }
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-multiline1.C b/gcc/testsuite/g++.dg/contracts/contracts-multiline1.C
index 8145c61e827..6ddae0f5b31 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-multiline1.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-multiline1.C
@@ -16,4 +16,4 @@ int main(int, char **)
   ]];
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 8 main x < 10 && y > 123.*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function main at .*.C:8: x < 10 && y > 123.*(\n|\r\n|\r)*" }
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-post3.C b/gcc/testsuite/g++.dg/contracts/contracts-post3.C
index 9f1dffd8f6a..12923282796 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-post3.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-post3.C
@@ -1,7 +1,7 @@
 // { dg-do run }
 // { dg-options "-std=c++2a -fcontracts" }
 // { dg-shouldfail "assert violation" }
-// { dg-output "default std::handle_contract_violation called" }
+// { dg-output "contract violation in function f1" }
 
 int f1(int n)
   [[post r: r > n]]
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-pre10.C b/gcc/testsuite/g++.dg/contracts/contracts-pre10.C
index 877e9ada404..d6dc0ad8c92 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-pre10.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-pre10.C
@@ -140,51 +140,77 @@ int main(int, char**)
   return 0;
 }
 
-// { dg-output "=================================(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 7 M::f<int> .*(\n|\r\n|\r)*" }
-// { dg-output "m.f<int>.-10.: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 7 M::f<double> .*(\n|\r\n|\r)*" }
-// { dg-output "m.f<double>.-11.5.: 11(\n|\r\n|\r)*" }
-// { dg-output "m.f<int>.10.: -10(\n|\r\n|\r)*" }
-// { dg-output "m.f<double>.11.5.: -11(\n|\r\n|\r)*" }
-// { dg-output "=================================(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 10 M::g<int> .*(\n|\r\n|\r)*" }
-// { dg-output "m.g<int>.-10.: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 10 M::g<double> .*(\n|\r\n|\r)*" }
-// { dg-output "m.g<double>.-11.5.: 11(\n|\r\n|\r)*" }
-// { dg-output "m.g<int>.10.: -10(\n|\r\n|\r)*" }
-// { dg-output "m.g<double>.11.5.: -11(\n|\r\n|\r)*" }
-// { dg-output "=================================(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 16 M::f_arg<int> .*(\n|\r\n|\r)*" }
-// { dg-output "m.f_arg.-10.: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 16 M::f_arg<double> .*(\n|\r\n|\r)*" }
-// { dg-output "m.f_arg.-11.5.: 11(\n|\r\n|\r)*" }
-// { dg-output "m.f_arg.10.: -10(\n|\r\n|\r)*" }
-// { dg-output "m.f_arg.11.5.: -11(\n|\r\n|\r)*" }
-// { dg-output "=================================(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 19 M::g_arg<int> .*(\n|\r\n|\r)*" }
-// { dg-output "m.g_arg.-10.: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 19 M::g_arg<double> .*(\n|\r\n|\r)*" }
-// { dg-output "m.g_arg.-11.5.: 11(\n|\r\n|\r)*" }
-// { dg-output "m.g_arg.10.: -10(\n|\r\n|\r)*" }
-// { dg-output "m.g_arg.11.5.: -11(\n|\r\n|\r)*" }
-// { dg-output "=================================(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 25 M::f_ret<int> .*(\n|\r\n|\r)*" }
-// { dg-output "m.f_ret<int>.-10.: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 25 M::f_ret<double> .*(\n|\r\n|\r)*" }
-// { dg-output "m.f_ret<double>.-11.5.: 16.500000(\n|\r\n|\r)*" }
-// { dg-output "m.f_ret<int>.10.: -10(\n|\r\n|\r)*" }
-// { dg-output "m.f_ret<double>.11.5.: -16.500000(\n|\r\n|\r)*" }
-// { dg-output "=================================(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 28 M::g_ret<int> .*(\n|\r\n|\r)*" }
-// { dg-output "m.g_ret<int>.-10.: 15(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 28 M::g_ret<double> .*(\n|\r\n|\r)*" }
-// { dg-output "m.g_ret<double>.-11.5.: 16.500000(\n|\r\n|\r)*" }
-// { dg-output "m.g_ret<int>.10.: -15(\n|\r\n|\r)*" }
-// { dg-output "m.g_ret<double>.11.5.: -16.500000(\n|\r\n|\r)*" }
-// { dg-output "=================================(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 59 S<int>::g<int> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 59 S<int>::g<double> .*(\n|\r\n|\r)*" }
-// { dg-output "=================================(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 59 S<double>::g<int> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 59 S<double>::g<double> .*(\n|\r\n|\r)*" }
+// { dg-output {=================================(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function M::f<int> at .*:7: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {m.f<int>\(-10\): 10(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function M::f<double> at .*:7: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {m.f<double>\(-11.5\): 11(\n|\r\n|\r)*} }
+// { dg-output {m.f<int>\(10\): -10(\n|\r\n|\r)*} }
+// { dg-output {m.f<double>\(11.5\): -11(\n|\r\n|\r)*} }
+// { dg-output {=================================(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function M::g<int> at .*:10: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {m.g<int>\(-10\): 10(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function M::g<double> at .*:10: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {m.g<double>\(-11.5\): 11(\n|\r\n|\r)*} }
+// { dg-output {m.g<int>\(10\): -10(\n|\r\n|\r)*} }
+// { dg-output {m.g<double>\(11.5\): -11(\n|\r\n|\r)*} }
+// { dg-output {=================================(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function M::f_arg<int> at .*:16: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {m.f_arg\(-10\): 10(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function M::f_arg<double> at .*:16: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {m.f_arg\(-11.5\): 11(\n|\r\n|\r)*} }
+// { dg-output {m.f_arg\(10\): -10(\n|\r\n|\r)*} }
+// { dg-output {m.f_arg\(11.5\): -11(\n|\r\n|\r)*} }
+// { dg-output {=================================(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function M::g_arg<int> at .*:19: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {m.g_arg\(-10\): 10(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function M::g_arg<double> at .*:19: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {m.g_arg\(-11.5\): 11(\n|\r\n|\r)*} }
+// { dg-output {m.g_arg\(10\): -10(\n|\r\n|\r)*} }
+// { dg-output {m.g_arg\(11.5\): -11(\n|\r\n|\r)*} }
+// { dg-output {=================================(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function M::f_ret<int> at .*:25: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {m.f_ret<int>\(-10\): 10(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function M::f_ret<double> at .*:25: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {m.f_ret<double>\(-11.5\): 16.500000(\n|\r\n|\r)*} }
+// { dg-output {m.f_ret<int>\(10\): -10(\n|\r\n|\r)*} }
+// { dg-output {m.f_ret<double>\(11.5\): -16.500000(\n|\r\n|\r)*} }
+// { dg-output {=================================(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function M::g_ret<int> at .*:28: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {m.g_ret<int>\(-10\): 15(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function M::g_ret<double> at .*:28: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {m.g_ret<double>\(-11.5\): 16.500000(\n|\r\n|\r)*} }
+// { dg-output {m.g_ret<int>\(10\): -15(\n|\r\n|\r)*} }
+// { dg-output {m.g_ret<double>\(11.5\): -16.500000(\n|\r\n|\r)*} }
+// { dg-output {=================================(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function S<int>::f<int> at .*:56: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function S<int>::f<double> at .*:56: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {=================================(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function S<int>::g<int> at .*:59: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function S<int>::g<double> at .*:59: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {=================================(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function S<double>::f<int> at .*:56: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function S<double>::f<double> at .*:56: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {=================================(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function S<double>::g<int> at .*:59: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function S<double>::g<double> at .*:59: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-pre2.C b/gcc/testsuite/g++.dg/contracts/contracts-pre2.C
index 4fe2f9d0192..4012c4d89ac 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-pre2.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-pre2.C
@@ -174,39 +174,39 @@ namespace nonnullary
   }
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 12 nullary::fun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nullary::fun at .*.C:12: .*(\n|\r\n|\r)*" }
 // { dg-output "fun::x: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 18 nullary::fun2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 19 nullary::fun2 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nullary::fun2 at .*.C:18: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nullary::fun2 at .*.C:19: .*(\n|\r\n|\r)*" }
 // { dg-output "fun2::x: 10 fun2::y: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 146 nullary::funend .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nullary::funend at .*.C:146: .*(\n|\r\n|\r)*" }
 // { dg-output "funend::x: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 39 nonvoid::vfun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nonvoid::vfun at .*.C:39: .*(\n|\r\n|\r)*" }
 // { dg-output "vfun::x: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 45 nonvoid::fun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nonvoid::fun at .*.C:45: .*(\n|\r\n|\r)*" }
 // { dg-output "fun::x: 10(\n|\r\n|\r)*" }
 // { dg-output "main::f: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 52 nonvoid::fun2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 53 nonvoid::fun2 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nonvoid::fun2 at .*.C:52: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nonvoid::fun2 at .*.C:53: .*(\n|\r\n|\r)*" }
 // { dg-output "fun2::x: 10 fun2::y: 10.500000(\n|\r\n|\r)*" }
 // { dg-output "main::d: 10.500000(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 155 nonvoid::funend .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nonvoid::funend at .*.C:155: .*(\n|\r\n|\r)*" }
 // { dg-output "funend::x: 10(\n|\r\n|\r)*" }
 // { dg-output "main::s.z: 1(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 74 nonnullary::vfun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 75 nonnullary::vfun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nonnullary::vfun at .*.C:74: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nonnullary::vfun at .*.C:75: .*(\n|\r\n|\r)*" }
 // { dg-output "vfun::x: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 81 nonnullary::fun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nonnullary::fun at .*.C:81: .*(\n|\r\n|\r)*" }
 // { dg-output "fun::x: 10(\n|\r\n|\r)*" }
 // { dg-output "main::f: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 88 nonnullary::fun2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 89 nonnullary::fun2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 90 nonnullary::fun2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 91 nonnullary::fun2 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nonnullary::fun2 at .*.C:88: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nonnullary::fun2 at .*.C:89: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nonnullary::fun2 at .*.C:90: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nonnullary::fun2 at .*.C:91: .*(\n|\r\n|\r)*" }
 // { dg-output "fun2::x: 10 fun2::y: 10.500000(\n|\r\n|\r)*" }
 // { dg-output "main::d: 10.500000(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 167 nonnullary::funend .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 168 nonnullary::funend .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nonnullary::funend at .*.C:167: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nonnullary::funend at .*.C:168: .*(\n|\r\n|\r)*" }
 // { dg-output "funend::x: 10(\n|\r\n|\r)*" }
 // { dg-output "main::s.z: 1(\n|\r\n|\r)*" }
 
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-pre2a2.C b/gcc/testsuite/g++.dg/contracts/contracts-pre2a2.C
index db9a0c37aa0..288952bbd05 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-pre2a2.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-pre2a2.C
@@ -16,7 +16,7 @@ int main()
   return 0;
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 6 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 9 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 7 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function f at .*\\.C:6: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function f at .*\\.C:9: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function f at .*\\.C:7: .*(\n|\r\n|\r)*" }
 
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-pre3.C b/gcc/testsuite/g++.dg/contracts/contracts-pre3.C
index 1c4e3a98e63..4d45533106d 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-pre3.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-pre3.C
@@ -403,123 +403,123 @@ member::S member::T1::funend(int m, double n)
   return s;
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 37 member::T1::vfun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 38 member::T1::vfun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function member::T1::vfun at .*.C:37:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function member::T1::vfun at .*.C:38:  .*(\n|\r\n|\r)*" }
 // { dg-output "vfun::x: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 45 member::T1::fun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function member::T1::fun at .*.C:45:  .*(\n|\r\n|\r)*" }
 // { dg-output "fun::x: 10(\n|\r\n|\r)*" }
 // { dg-output "main::f: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 52 member::T1::fun2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 53 member::T1::fun2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 54 member::T1::fun2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 55 member::T1::fun2 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function member::T1::fun2 at .*.C:52:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function member::T1::fun2 at .*.C:53:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function member::T1::fun2 at .*.C:54:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function member::T1::fun2 at .*.C:55:  .*(\n|\r\n|\r)*" }
 // { dg-output "fun2::x: 10 fun2::y: 10.500000(\n|\r\n|\r)*" }
 // { dg-output "main::d: 10.500000(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 397 member::T1::funend .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 398 member::T1::funend .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function member::T1::funend at .*.C:397:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function member::T1::funend at .*.C:398:  .*(\n|\r\n|\r)*" }
 // { dg-output "funend::x: 10(\n|\r\n|\r)*" }
 // { dg-output "main::s.z: 1(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 85 special::T1::T1 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 86 special::T1::T1 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 99 special::T1::operator- .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 100 special::T1::operator- .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 92 special::T1::operator. .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 93 special::T1::operator. .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::T1::T1 at .*.C:85:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::T1::T1 at .*.C:86:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::T1::operator- at .*.C:99:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::T1::operator- at .*.C:100:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::T1::operator. at .*.C:92:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::T1::operator. at .*.C:93:  .*(\n|\r\n|\r)*" }
 // { dg-output "==========(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 113 special::T2::T2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 114 special::T2::T2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 127 special::T2::operator- .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 128 special::T2::operator- .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 120 special::T2::operator. .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 121 special::T2::operator. .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::T2::T2 at .*.C:113:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::T2::T2 at .*.C:114:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::T2::operator- at .*.C:127:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::T2::operator- at .*.C:128:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::T2::operator. at .*.C:120:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::T2::operator. at .*.C:121:  .*(\n|\r\n|\r)*" }
 // { dg-output "==========(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 144 special::TC::TC .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 145 special::TC::TC .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 85 special::T1::T1 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 86 special::T1::T1 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::TC::TC at .*.C:144:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::TC::TC at .*.C:145:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::T1::T1 at .*.C:85:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::T1::T1 at .*.C:86:  .*(\n|\r\n|\r)*" }
 // { dg-output "==========(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 156 special::TC::TC .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 144 special::TC::TC .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 145 special::TC::TC .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 85 special::T1::T1 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 86 special::T1::T1 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::TC::TC at .*.C:156:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::TC::TC at .*.C:144:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::TC::TC at .*.C:145:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::T1::T1 at .*.C:85:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::T1::T1 at .*.C:86:  .*(\n|\r\n|\r)*" }
 // { dg-output "==========(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 151 special::TC::~TC .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 106 special::T1::~T1 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 151 special::TC::~TC .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 106 special::T1::~T1 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 134 special::T2::~T2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 106 special::T1::~T1 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 196 virt::T1::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 197 virt::T1::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 198 virt::T1::fun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::TC::~TC at .*.C:151:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::T1::~T1 at .*.C:106:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::TC::~TC at .*.C:151:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::T1::~T1 at .*.C:106:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::T2::~T2 at .*.C:134:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function special::T1::~T1 at .*.C:106:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T1::fun at .*.C:196:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T1::fun at .*.C:197:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T1::fun at .*.C:198:  .*(\n|\r\n|\r)*" }
 // { dg-output "T1::fun::m: -10, T1::fun::n: -20, T1::v: -10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 196 virt::T1::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 197 virt::T1::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 198 virt::T1::fun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T1::fun at .*.C:196:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T1::fun at .*.C:197:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T1::fun at .*.C:198:  .*(\n|\r\n|\r)*" }
 // { dg-output "T1::fun::m: -10, T1::fun::n: -20, T1::v: -10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 211 virt::T3::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 212 virt::T3::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 213 virt::T3::fun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3::fun at .*.C:211:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3::fun at .*.C:212:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3::fun at .*.C:213:  .*(\n|\r\n|\r)*" }
 // { dg-output "T3::fun::m: -10, T3::fun::n: -20, T3::v: -10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 247 virt::T3b::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 248 virt::T3b::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 249 virt::T3b::fun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3b::fun at .*.C:247:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3b::fun at .*.C:248:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3b::fun at .*.C:249:  .*(\n|\r\n|\r)*" }
 // { dg-output "T3b::fun::m: -10, T3b::fun::n: -20, T3b::v: -10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 288 virt::T3c::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 289 virt::T3c::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 290 virt::T3c::fun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3c::fun at .*.C:288:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3c::fun at .*.C:289:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3c::fun at .*.C:290:  .*(\n|\r\n|\r)*" }
 // { dg-output "T3c::fun::m: -10, T3c::fun::n: -20, T3c::v: -10(\n|\r\n|\r)*" }
 // { dg-output "=================(\n|\r\n|\r)*" }
 // { dg-output "T1:(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 196 virt::T1::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 197 virt::T1::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 198 virt::T1::fun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T1::fun at .*.C:196:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T1::fun at .*.C:197:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T1::fun at .*.C:198:  .*(\n|\r\n|\r)*" }
 // { dg-output "T1::fun::m: -1, T1::fun::n: -2, T1::v: -10(\n|\r\n|\r)*" }
 // { dg-output "=================(\n|\r\n|\r)*" }
 // { dg-output "T2:(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 196 virt::T1::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 197 virt::T1::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 198 virt::T1::fun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T1::fun at .*.C:196:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T1::fun at .*.C:197:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T1::fun at .*.C:198:  .*(\n|\r\n|\r)*" }
 // { dg-output "T1::fun::m: -1, T1::fun::n: -2, T1::v: -10(\n|\r\n|\r)*" }
 // { dg-output "=================(\n|\r\n|\r)*" }
 // { dg-output "T3:(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 211 virt::T3::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 212 virt::T3::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 213 virt::T3::fun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3::fun at .*.C:211:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3::fun at .*.C:212:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3::fun at .*.C:213:  .*(\n|\r\n|\r)*" }
 // { dg-output "T3::fun::m: -1, T3::fun::n: -2, T3::v: -10(\n|\r\n|\r)*" }
 // { dg-output "=================(\n|\r\n|\r)*" }
 // { dg-output "T3b:(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 247 virt::T3b::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 248 virt::T3b::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 249 virt::T3b::fun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3b::fun at .*.C:247:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3b::fun at .*.C:248:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3b::fun at .*.C:249:  .*(\n|\r\n|\r)*" }
 // { dg-output "T3b::fun::m: -1, T3b::fun::n: -2, T3b::v: -10(\n|\r\n|\r)*" }
 // { dg-output "=================(\n|\r\n|\r)*" }
 // { dg-output "T3c:(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 288 virt::T3c::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 289 virt::T3c::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 290 virt::T3c::fun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3c::fun at .*.C:288:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3c::fun at .*.C:289:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3c::fun at .*.C:290:  .*(\n|\r\n|\r)*" }
 // { dg-output "T3c::fun::m: -1, T3c::fun::n: -2, T3c::v: -10(\n|\r\n|\r)*" }
 // { dg-output "=============(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 256 virt::T3b::p .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 257 virt::T3b::p .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3b::p at .*.C:256:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3b::p at .*.C:257:  .*(\n|\r\n|\r)*" }
 // { dg-output "T3b::p: a: -3, v: -10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 264 virt::T3b::u .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 265 virt::T3b::u .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3b::u at .*.C:264:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3b::u at .*.C:265:  .*(\n|\r\n|\r)*" }
 // { dg-output "T3b::u: a: -3, z: -10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 272 virt::T3b::n .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3b::n at .*.C:272:  .*(\n|\r\n|\r)*" }
 // { dg-output "T3b::n: a: -3(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 279 virt::T3b::Sn .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3b::Sn at .*.C:279:  .*(\n|\r\n|\r)*" }
 // { dg-output "T3b::Sn: a: -3(\n|\r\n|\r)*" }
 // { dg-output "=============(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 297 virt::T3c::p .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 298 virt::T3c::p .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3c::p at .*.C:297:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3c::p at .*.C:298:  .*(\n|\r\n|\r)*" }
 // { dg-output "T3c::p: a: -3, v: -10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 305 virt::T3c::u .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 306 virt::T3c::u .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3c::u at .*.C:305:  .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3c::u at .*.C:306:  .*(\n|\r\n|\r)*" }
 // { dg-output "T3c::u: a: -3, z: -10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 313 virt::T3c::n .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3c::n at .*.C:313:  .*(\n|\r\n|\r)*" }
 // { dg-output "T3c::n: a: -3(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 320 virt::T3c::Sn .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function virt::T3c::Sn at .*.C:320:  .*(\n|\r\n|\r)*" }
 // { dg-output "T3c::Sn: a: -3(\n|\r\n|\r)*" }
 
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-pre4.C b/gcc/testsuite/g++.dg/contracts/contracts-pre4.C
index 16189cdce9d..1049a5be483 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-pre4.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-pre4.C
@@ -77,16 +77,16 @@ int main(int, char**)
   return 0;
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 7 Base::f .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function Base::f at .*.C:7: .*(\n|\r\n|\r)*" }
 // { dg-output "Base: 0(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 7 Base::f .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function Base::f at .*.C:7: .*(\n|\r\n|\r)*" }
 // { dg-output "Child0: 0(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 7 Child1::f .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function Child1::f at .*.C:7: .*(\n|\r\n|\r)*" }
 // { dg-output "Child1: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 7 Child2::f .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function Child2::f at .*.C:7: .*(\n|\r\n|\r)*" }
 // { dg-output "Child2: 20(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 7 Child3::f .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function Child3::f at .*.C:7: .*(\n|\r\n|\r)*" }
 // { dg-output "Child3: 30(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 7 Child4::f .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function Child4::f at .*.C:7: .*(\n|\r\n|\r)*" }
 // { dg-output "Child4: 40(\n|\r\n|\r)*" }
 
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-pre5.C b/gcc/testsuite/g++.dg/contracts/contracts-pre5.C
index 278a545055f..b9f855b616d 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-pre5.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-pre5.C
@@ -56,26 +56,26 @@ int main(int, char**)
   return 0;
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 8 body<int> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function body<int> at .*.C:8: .*(\n|\r\n|\r)*" }
 // { dg-output "-2(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 8 body<double> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function body<double> at .*.C:8: .*(\n|\r\n|\r)*" }
 // { dg-output "-5(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 16 none<int> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function none<int> at .*.C:16: .*(\n|\r\n|\r)*" }
 // { dg-output "1(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 16 none<double> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function none<double> at .*.C:16: .*(\n|\r\n|\r)*" }
 // { dg-output "2(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 23 arg0<int> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function arg0<int> at .*.C:23: .*(\n|\r\n|\r)*" }
 // { dg-output "-9(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 23 arg0<double> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function arg0<double> at .*.C:23: .*(\n|\r\n|\r)*" }
 // { dg-output "-7(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 30 arg1<int> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 31 arg1<int> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function arg1<int> at .*.C:30: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function arg1<int> at .*.C:31: .*(\n|\r\n|\r)*" }
 // { dg-output "-3(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 30 arg1<double> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 31 arg1<double> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function arg1<double> at .*.C:30: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function arg1<double> at .*.C:31: .*(\n|\r\n|\r)*" }
 // { dg-output "-11(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 38 ret<int> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ret<int> at .*.C:38: .*(\n|\r\n|\r)*" }
 // { dg-output "3(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 38 ret<double> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ret<double> at .*.C:38: .*(\n|\r\n|\r)*" }
 // { dg-output "4(\n|\r\n|\r)*" }
 
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-pre7.C b/gcc/testsuite/g++.dg/contracts/contracts-pre7.C
index aeb8fc042e6..dbf60fb53e3 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-pre7.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-pre7.C
@@ -108,27 +108,27 @@ int main(int, char**)
   return 0;
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 13 ns0::f<int> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ns0::f<int> at .*.C:13: .*(\n|\r\n|\r)*" }
 // { dg-output "1(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 28 ns0::ns1::f<int> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ns0::ns1::f<int> at .*.C:28: .*(\n|\r\n|\r)*" }
 // { dg-output "2(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 46 ns0::ns1::f2<int> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ns0::ns1::f2<int> at .*.C:46: .*(\n|\r\n|\r)*" }
 // { dg-output "3(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 53 ns0::ns1::ns2::f<int> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ns0::ns1::ns2::f<int> at .*.C:53: .*(\n|\r\n|\r)*" }
 // { dg-output "4(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 76 ns0::S<int>::f .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ns0::S<int>::f at .*.C:76: .*(\n|\r\n|\r)*" }
 // { dg-output "5(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 82 ns0::ns1::S2<int>::f .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ns0::ns1::S2<int>::f at .*.C:82: .*(\n|\r\n|\r)*" }
 // { dg-output "6(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 13 ns0::f<double> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ns0::f<double> at .*.C:13: .*(\n|\r\n|\r)*" }
 // { dg-output "7(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 28 ns0::ns1::f<double> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ns0::ns1::f<double> at .*.C:28: .*(\n|\r\n|\r)*" }
 // { dg-output "8(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 46 ns0::ns1::f2<double> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ns0::ns1::f2<double> at .*.C:46: .*(\n|\r\n|\r)*" }
 // { dg-output "9(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 53 ns0::ns1::ns2::f<double> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ns0::ns1::ns2::f<double> at .*.C:53: .*(\n|\r\n|\r)*" }
 // { dg-output "10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 76 ns0::S<double>::f .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ns0::S<double>::f at .*.C:76: .*(\n|\r\n|\r)*" }
 // { dg-output "11(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 82 ns0::ns1::S2<double>::f .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ns0::ns1::S2<double>::f at .*.C:82: .*(\n|\r\n|\r)*" }
 // { dg-output "12(\n|\r\n|\r)*" }
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-pre9.C b/gcc/testsuite/g++.dg/contracts/contracts-pre9.C
index 64c0cfa36df..f1a8b9ce555 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-pre9.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-pre9.C
@@ -108,39 +108,39 @@ int main(int, char**)
   return 0;
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 14 S<int>::f .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S<int>::f at .*.C:14: .*(\n|\r\n|\r)*" }
 // { dg-output "s_int.f.-10.: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 10 S<int>::g .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S<int>::g at .*.C:10: .*(\n|\r\n|\r)*" }
 // { dg-output "s_int.g.-10.: 10(\n|\r\n|\r)*" }
 // { dg-output "s_int.f.10.: -10(\n|\r\n|\r)*" }
 // { dg-output "s_int.g.10.: -10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 14 S<double>::f .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S<double>::f at .*.C:14: .*(\n|\r\n|\r)*" }
 // { dg-output "s_double.f.-10.5.: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 10 S<double>::g .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S<double>::g at .*.C:10: .*(\n|\r\n|\r)*" }
 // { dg-output "s_double.g.-10.5.: 10(\n|\r\n|\r)*" }
 // { dg-output "s_double.f.10.5.: -10(\n|\r\n|\r)*" }
 // { dg-output "s_double.g.10.5.: -10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 33 S_arg<int>::f .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S_arg<int>::f at .*.C:33: .*(\n|\r\n|\r)*" }
 // { dg-output "s_arg_int.f.-10.: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 29 S_arg<int>::g .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S_arg<int>::g at .*.C:29: .*(\n|\r\n|\r)*" }
 // { dg-output "s_arg_int.g.-10.: 10(\n|\r\n|\r)*" }
 // { dg-output "s_arg_int.f.10.: -10(\n|\r\n|\r)*" }
 // { dg-output "s_arg_int.g.10.: -10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 33 S_arg<double>::f .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S_arg<double>::f at .*.C:33: .*(\n|\r\n|\r)*" }
 // { dg-output "s_arg_double.f.-10.: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 29 S_arg<double>::g .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S_arg<double>::g at .*.C:29: .*(\n|\r\n|\r)*" }
 // { dg-output "s_arg_double.g.-10.: 10(\n|\r\n|\r)*" }
 // { dg-output "s_arg_double.f.10.: -10(\n|\r\n|\r)*" }
 // { dg-output "s_arg_double.g.10.: -10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 52 S_ret<int>::f .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S_ret<int>::f at .*.C:52: .*(\n|\r\n|\r)*" }
 // { dg-output "s_ret_int.f.-10.: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 48 S_ret<int>::g .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S_ret<int>::g at .*.C:48: .*(\n|\r\n|\r)*" }
 // { dg-output "s_ret_int.g.-10.: 10(\n|\r\n|\r)*" }
 // { dg-output "s_ret_int.f.10.: -10(\n|\r\n|\r)*" }
 // { dg-output "s_ret_int.g.10.: -10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 52 S_ret<double>::f .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S_ret<double>::f at .*.C:52: .*(\n|\r\n|\r)*" }
 // { dg-output "s_ret_double.f.-10.: 10.000000(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 48 S_ret<double>::g .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S_ret<double>::g at .*.C:48: .*(\n|\r\n|\r)*" }
 // { dg-output "s_ret_double.g.-10.: 10.000000(\n|\r\n|\r)*" }
 // { dg-output "s_ret_double.f.10.: -10.000000(\n|\r\n|\r)*" }
 // { dg-output "s_ret_double.g.10.: -10.000000(\n|\r\n|\r)*" }
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-redecl3.C b/gcc/testsuite/g++.dg/contracts/contracts-redecl3.C
index fdfca3a65ff..a3d42e5daa4 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-redecl3.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-redecl3.C
@@ -160,36 +160,36 @@ namespace nondefining
   }
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 25 defining::T1::vfun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 26 defining::T1::vfun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function defining::T1::vfun at .*.C:25: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function defining::T1::vfun at .*.C:26: .*(\n|\r\n|\r)*" }
 // { dg-output "vfun::x: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 32 defining::T1::fun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function defining::T1::fun at .*.C:32: .*(\n|\r\n|\r)*" }
 // { dg-output "fun::x: 10(\n|\r\n|\r)*" }
 // { dg-output "main::f: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 39 defining::T1::fun2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 40 defining::T1::fun2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 41 defining::T1::fun2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 42 defining::T1::fun2 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function defining::T1::fun2 at .*.C:39: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function defining::T1::fun2 at .*.C:40: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function defining::T1::fun2 at .*.C:41: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function defining::T1::fun2 at .*.C:42: .*(\n|\r\n|\r)*" }
 // { dg-output "fun2::x: 10 fun2::y: 10.500000(\n|\r\n|\r)*" }
 // { dg-output "main::d: 10.500000(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 138 defining::T1::funend .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 139 defining::T1::funend .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function defining::T1::funend at .*.C:138: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function defining::T1::funend at .*.C:139: .*(\n|\r\n|\r)*" }
 // { dg-output "funend::x: 10(\n|\r\n|\r)*" }
 // { dg-output "main::s.z: 1(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 68 nondefining::T1::vfun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 69 nondefining::T1::vfun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nondefining::T1::vfun at .*.C:68: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nondefining::T1::vfun at .*.C:69: .*(\n|\r\n|\r)*" }
 // { dg-output "vfun::x: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 71 nondefining::T1::fun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nondefining::T1::fun at .*.C:71: .*(\n|\r\n|\r)*" }
 // { dg-output "fun::x: 10(\n|\r\n|\r)*" }
 // { dg-output "main::f: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 73 nondefining::T1::fun2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 74 nondefining::T1::fun2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 75 nondefining::T1::fun2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 76 nondefining::T1::fun2 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nondefining::T1::fun2 at .*.C:73: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nondefining::T1::fun2 at .*.C:74: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nondefining::T1::fun2 at .*.C:75: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nondefining::T1::fun2 at .*.C:76: .*(\n|\r\n|\r)*" }
 // { dg-output "fun2::x: 10 fun2::y: 10.500000(\n|\r\n|\r)*" }
 // { dg-output "main::d: 10.500000(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 151 nondefining::T1::funend .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 152 nondefining::T1::funend .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nondefining::T1::funend at .*.C:151: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nondefining::T1::funend at .*.C:152: .*(\n|\r\n|\r)*" }
 // { dg-output "funend::x: 10(\n|\r\n|\r)*" }
 // { dg-output "main::s.z: 1(\n|\r\n|\r)*" }
 
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-redecl4.C b/gcc/testsuite/g++.dg/contracts/contracts-redecl4.C
index c1e234226b6..3fbf222b243 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-redecl4.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-redecl4.C
@@ -33,24 +33,24 @@ int main(int, char **)
   printf("=====\n");
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 10 f .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 11 f .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 12 f .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function f at .*.C:10: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function f at .*.C:11: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function f at .*.C:12: .*(\n|\r\n|\r)*" }
 // { dg-output "f: a: 1, b: 1, c: 1(\n|\r\n|\r)*" }
 // { dg-output "=====(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 10 f .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 11 f .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 12 f .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function f at .*.C:10: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function f at .*.C:11: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function f at .*.C:12: .*(\n|\r\n|\r)*" }
 // { dg-output "f: a: 1, b: 1, c: 10(\n|\r\n|\r)*" }
 // { dg-output "=====(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 10 f .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 11 f .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 12 f .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function f at .*.C:10: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function f at .*.C:11: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function f at .*.C:12: .*(\n|\r\n|\r)*" }
 // { dg-output "f: a: 1, b: 11, c: 10(\n|\r\n|\r)*" }
 // { dg-output "=====(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 10 f .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 11 f .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 12 f .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function f at .*.C:10: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function f at .*.C:11: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function f at .*.C:12: .*(\n|\r\n|\r)*" }
 // { dg-output "f: a: 12, b: 11, c: 10(\n|\r\n|\r)*" }
 // { dg-output "=====(\n|\r\n|\r)*" }
 
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-redecl6.C b/gcc/testsuite/g++.dg/contracts/contracts-redecl6.C
index e79a5aa38ef..c7d12b32a48 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-redecl6.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-redecl6.C
@@ -160,36 +160,36 @@ namespace nondefining
   }
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 25 defining::T1::vfun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 26 defining::T1::vfun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function defining::T1::vfun at .*.C:25: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function defining::T1::vfun at .*.C:26: .*(\n|\r\n|\r)*" }
 // { dg-output "vfun::x: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 32 defining::T1::fun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function defining::T1::fun at .*.C:32: .*(\n|\r\n|\r)*" }
 // { dg-output "fun::x: 10(\n|\r\n|\r)*" }
 // { dg-output "main::f: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 39 defining::T1::fun2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 40 defining::T1::fun2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 41 defining::T1::fun2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 42 defining::T1::fun2 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function defining::T1::fun2 at .*.C:39: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function defining::T1::fun2 at .*.C:40: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function defining::T1::fun2 at .*.C:41: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function defining::T1::fun2 at .*.C:42: .*(\n|\r\n|\r)*" }
 // { dg-output "fun2::x: 10 fun2::y: 10.500000(\n|\r\n|\r)*" }
 // { dg-output "main::d: 10.500000(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 138 defining::T1::funend .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 139 defining::T1::funend .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function defining::T1::funend at .*.C:138: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function defining::T1::funend at .*.C:139: .*(\n|\r\n|\r)*" }
 // { dg-output "funend::x: 10(\n|\r\n|\r)*" }
 // { dg-output "main::s.z: 1(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 68 nondefining::T1::vfun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 69 nondefining::T1::vfun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nondefining::T1::vfun at .*.C:68: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nondefining::T1::vfun at .*.C:69: .*(\n|\r\n|\r)*" }
 // { dg-output "vfun::x: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 71 nondefining::T1::fun .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nondefining::T1::fun at .*.C:71: .*(\n|\r\n|\r)*" }
 // { dg-output "fun::x: 10(\n|\r\n|\r)*" }
 // { dg-output "main::f: 10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 73 nondefining::T1::fun2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 74 nondefining::T1::fun2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 75 nondefining::T1::fun2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 76 nondefining::T1::fun2 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nondefining::T1::fun2 at .*.C:73: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nondefining::T1::fun2 at .*.C:74: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nondefining::T1::fun2 at .*.C:75: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nondefining::T1::fun2 at .*.C:76: .*(\n|\r\n|\r)*" }
 // { dg-output "fun2::x: 10 fun2::y: 10.500000(\n|\r\n|\r)*" }
 // { dg-output "main::d: 10.500000(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 151 nondefining::T1::funend .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 152 nondefining::T1::funend .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nondefining::T1::funend at .*.C:151: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function nondefining::T1::funend at .*.C:152: .*(\n|\r\n|\r)*" }
 // { dg-output "funend::x: 10(\n|\r\n|\r)*" }
 // { dg-output "main::s.z: 1(\n|\r\n|\r)*" }
 
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-redecl7.C b/gcc/testsuite/g++.dg/contracts/contracts-redecl7.C
index e3a57eea632..7503a4195f7 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-redecl7.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-redecl7.C
@@ -77,19 +77,19 @@ int main(int, char**)
   return 0;
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 9 S::now .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S::now at .*.C:9: .*(\n|\r\n|\r)*" }
 // { dg-output "S::now: a: -10, t->pri: -10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 15 now .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function now at .*.C:15: .*(\n|\r\n|\r)*" }
 // { dg-output "now: a: -20, t->pri: -10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 22 later .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 22 later .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function later at .*.C:22: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function later at .*.C:22: .*(\n|\r\n|\r)*" }
 // { dg-output "later: a: -21, t->pri: -10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 27 both .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function both at .*.C:27: .*(\n|\r\n|\r)*" }
 // { dg-output "both: a: -22, t->pri: -10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 36 hidden .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 36 hidden .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function hidden at .*.C:36: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function hidden at .*.C:36: .*(\n|\r\n|\r)*" }
 // { dg-output "hidden: a: -23, t->pri: -10(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 41 hidden2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 41 hidden2 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function hidden2 at .*.C:41: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function hidden2 at .*.C:41: .*(\n|\r\n|\r)*" }
 // { dg-output "hidden2: a: -24, t->pri: -10(\n|\r\n|\r)*" }
 
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec1.C b/gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec1.C
index 57ba7653543..546c0db2f04 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec1.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec1.C
@@ -94,28 +94,28 @@ int main(int, char**)
   return 0;
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 8 body<int> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function body<int> at .*.C:8: .*(\n|\r\n|\r)*" }
 // { dg-output "-2(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 16 body<double> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function body<double> at .*.C:16: .*(\n|\r\n|\r)*" }
 // { dg-output "-3(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 24 none<int> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function none<int> at .*.C:24: .*(\n|\r\n|\r)*" }
 // { dg-output "1(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 31 none<double> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function none<double> at .*.C:31: .*(\n|\r\n|\r)*" }
 // { dg-output "-101(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 38 arg0<int> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function arg0<int> at .*.C:38: .*(\n|\r\n|\r)*" }
 // { dg-output "-9(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 45 arg0<double> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function arg0<double> at .*.C:45: .*(\n|\r\n|\r)*" }
 // { dg-output "11(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 52 arg1<int> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 53 arg1<int> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function arg1<int> at .*.C:52: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function arg1<int> at .*.C:53: .*(\n|\r\n|\r)*" }
 // { dg-output "-3(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 60 arg1<double> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 61 arg1<double> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function arg1<double> at .*.C:60: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function arg1<double> at .*.C:61: .*(\n|\r\n|\r)*" }
 // { dg-output "14(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 68 ret<int> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ret<int> at .*.C:68: .*(\n|\r\n|\r)*" }
 // { dg-output "1(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 75 ret<double> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ret<double> at .*.C:75: .*(\n|\r\n|\r)*" }
 // { dg-output "3(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 75 ret<double> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ret<double> at .*.C:75: .*(\n|\r\n|\r)*" }
 // { dg-output "3.300000(\n|\r\n|\r)*" }
 
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec2.C b/gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec2.C
index 25982dfc826..ebc53788e0c 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec2.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec2.C
@@ -304,92 +304,144 @@ int main(int, char**)
   return 0;
 }
 
-
-// { dg-output "default std::handle_contract_violation called: .*.C 9 body<int> .*(\n|\r\n|\r)*" }
-// { dg-output "-2(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 17 body<double> .*(\n|\r\n|\r)*" }
-// { dg-output "-3(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 25 none<int> .*(\n|\r\n|\r)*" }
-// { dg-output "1(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 32 none<double> .*(\n|\r\n|\r)*" }
-// { dg-output "-101(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 39 arg0<int> .*(\n|\r\n|\r)*" }
-// { dg-output "-9(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 46 arg0<double> .*(\n|\r\n|\r)*" }
-// { dg-output "11(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 53 arg1<int> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 54 arg1<int> .*(\n|\r\n|\r)*" }
-// { dg-output "-3(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 61 arg1<double> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 62 arg1<double> .*(\n|\r\n|\r)*" }
-// { dg-output "14(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 69 ret<int> .*(\n|\r\n|\r)*" }
-// { dg-output "1(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 76 ret<double> .*(\n|\r\n|\r)*" }
-// { dg-output "3(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 76 ret<double> .*(\n|\r\n|\r)*" }
-// { dg-output "3.300000(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 83 g1<int> .*(\n|\r\n|\r)*" }
-// { dg-output "-1(\n|\r\n|\r)*" }
-// { dg-output "-1(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 97 g2<int> .*(\n|\r\n|\r)*" }
-// { dg-output "-1(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 107 g2<double> .*(\n|\r\n|\r)*" }
-// { dg-output "1(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 114 g2<char> .*(\n|\r\n|\r)*" }
-// { dg-output "100(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 124 G3<double, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 125 G3<double, .*(\n|\r\n|\r)*" }
-// { dg-output "G3 general T S(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 139 G3<int, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 140 G3<int, .*(\n|\r\n|\r)*" }
-// { dg-output "G3 partial int S(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 147 G3<int, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 148 G3<int, .*(\n|\r\n|\r)*" }
-// { dg-output "G3 full int double(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 124 G3<char, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 125 G3<char, .*(\n|\r\n|\r)*" }
-// { dg-output "G3 general T S(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 139 G3<int, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 140 G3<int, .*(\n|\r\n|\r)*" }
-// { dg-output "G3 partial int S(\n|\r\n|\r)*" }
-// { dg-output "G3 full int C(\n|\r\n|\r)*" }
-// { dg-output "G3 full int C(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 173 G4<int, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 174 G4<int, .*(\n|\r\n|\r)*" }
-// { dg-output "G4 general T S(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 175 G4<int, .*(\n|\r\n|\r)*" }
-// { dg-output "G4 full double double(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 206 G4<double, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 207 G4<double, .*(\n|\r\n|\r)*" }
-// { dg-output "G4 full double char(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 208 G4<double, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 187 G4<char, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 188 G4<char, .*(\n|\r\n|\r)*" }
-// { dg-output "G4 partial char S(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 189 G4<char, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 220 G5<int, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 221 G5<int, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 222 G5<int, .*(\n|\r\n|\r)*" }
-// { dg-output "G5 gen T S, f gen R(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 220 G5<int, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 221 G5<int, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 222 G5<int, .*(\n|\r\n|\r)*" }
-// { dg-output "G5 gen T S, f gen R(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 233 G5<char, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 234 G5<char, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 235 G5<char, .*(\n|\r\n|\r)*" }
-// { dg-output "G5 partial char S, f gen R(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 233 G5<char, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 234 G5<char, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 235 G5<char, .*(\n|\r\n|\r)*" }
-// { dg-output "G5 partial char S, f gen R(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 244 G5<double, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 245 G5<double, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 246 G5<double, .*(\n|\r\n|\r)*" }
-// { dg-output "G5 full double double, f gen R(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 244 G5<double, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 245 G5<double, .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 246 G5<double, .*(\n|\r\n|\r)*" }
-// { dg-output "G5 full double double, f gen R(\n|\r\n|\r)*" }
-
+// { dg-output {contract violation in function body<int> at .*:9: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {-2(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function body<double> at .*:17: a > 1(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {-3(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function none<int> at .*:25: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {1(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function none<double> at .*:32: a > 1(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {-101(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function arg0<int> at .*:39: t > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {-9(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function arg0<double> at .*:46: t > 1(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {11(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function arg1<int> at .*:53: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function arg1<int> at .*:54: t > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {-3(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function arg1<double> at .*:61: a > 1(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function arg1<double> at .*:62: t > 1(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {14(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function ret<int> at .*:69: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {1(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function ret<double> at .*:76: a > 1(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {3(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function ret<double> at .*:76: a > 1(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {3.300000(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function g1<int> at .*:83: t > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {-1(\n|\r\n|\r)*} }
+// { dg-output {-1(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function g2<int> at .*:97: t > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {-1(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function g2<double> at .*:107: t < 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {1(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function g2<char> at .*:114: t < 'c'(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {100(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G3<double, double>::f at .*:124: t > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G3<double, double>::f at .*:125: s > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {G3 general T S(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G3<int, int>::f at .*:139: t > 1(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G3<int, int>::f at .*:140: s > 1(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {G3 partial int S(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G3<int, double>::f at .*:147: t > 2(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G3<int, double>::f at .*:148: s > 2(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {G3 full int double(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G3<char, char>::f at .*:124: t > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G3<char, char>::f at .*:125: s > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {G3 general T S(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G3<int, char>::f at .*:139: t > 1(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G3<int, char>::f at .*:140: s > 1(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {G3 partial int S(\n|\r\n|\r)*} }
+// { dg-output {G3 full int C(\n|\r\n|\r)*} }
+// { dg-output {G3 full int C(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G4<int, int>::G4 at .*:173: t > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G4<int, int>::G4 at .*:174: s > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {G4 general T S(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G4<int, int>::G4 at .*:175: x > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {G4 full double double(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G4<double, char>::G4 at .*:206: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G4<double, char>::G4 at .*:207: b > 'b'(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {G4 full double char(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G4<double, char>::G4 at .*:208: x > 1(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G4<char, int>::G4 at .*:187: t > 'c'(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G4<char, int>::G4 at .*:188: s > 3(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {G4 partial char S(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G4<char, int>::G4 at .*:189: x2 > 3(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<int, int>::f<int> at .*:220: t > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<int, int>::f<int> at .*:221: s > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<int, int>::f<int> at .*:222: r > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {G5 gen T S, f gen R(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<int, int>::f<double> at .*:220: t > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<int, int>::f<double> at .*:221: s > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<int, int>::f<double> at .*:222: r > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {G5 gen T S, f gen R(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<char, int>::f<int> at .*:233: x > 'z'(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<char, int>::f<int> at .*:234: y > 1(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<char, int>::f<int> at .*:235: z > 1(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {G5 partial char S, f gen R(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<char, int>::f<double> at .*:233: x > 'z'(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<char, int>::f<double> at .*:234: y > 1(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<char, int>::f<double> at .*:235: z > 1(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {G5 partial char S, f gen R(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<double, double>::f<int> at .*:244: a > 2(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<double, double>::f<int> at .*:245: b > 2(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<double, double>::f<int> at .*:246: c > 2(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {G5 full double double, f gen R(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<double, double>::f<double> at .*:244: a > 2(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<double, double>::f<double> at .*:245: b > 2(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<double, double>::f<double> at .*:246: c > 2(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {G5 full double double, f gen R(\n|\r\n|\r)*} }
diff --git a/gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec3.C b/gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec3.C
index 44725893061..7438cafdb65 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec3.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec3.C
@@ -32,14 +32,19 @@ int main(int, char**) {
   return 0;
 }
 
-// { dg-output "G5 full double double, f gen R(\n|\r\n|\r)*" }
-// { dg-output "G5 full double double, f gen R(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 10 G5<int, .* t > 0 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 10 G5<int, .* s > 0 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 10 G5<int, .* r > 0 .*(\n|\r\n|\r)*" }
-// { dg-output "G5 gen T S, f gen R(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 10 G5<int, .* t > 0 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 10 G5<int, .* s > 0 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 10 G5<int, .* r > 0 .*(\n|\r\n|\r)*" }
-// { dg-output "G5 gen T S, f gen R(\n|\r\n|\r)*" }
-
+// { dg-output {G5 full double double, f gen R(\n|\r\n|\r)*} }
+// { dg-output {G5 full double double, f gen R(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<int, double>::f<int> at .*:10: t > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<int, double>::f<int> at .*:10: s > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<int, double>::f<int> at .*:10: r > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {G5 gen T S, f gen R(\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<int, double>::f<double> at .*:10: t > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<int, double>::f<double> at .*:10: s > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function G5<int, double>::f<double> at .*:10: r > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {G5 gen T S, f gen R(\n|\r\n|\r)*} }
diff --git a/gcc/testsuite/g++.dg/contracts/contracts10.C b/gcc/testsuite/g++.dg/contracts/contracts10.C
index ce0723c3db4..9ed86312b40 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts10.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts10.C
@@ -62,12 +62,12 @@ int main()
   return 0;
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 47 main .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 48 main .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 49 main .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 100 main .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 13 tns::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 33 tns::fun2 .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 40 tns::TestType::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 24 tns::TestType::fun2 .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function main at .*.C:47: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function main at .*.C:48: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function main at .*.C:49: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function main at .*.C:100: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function tns::fun at .*.C:13: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function tns::fun2 at .*.C:33: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function tns::TestType::fun at .*.C:40: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function tns::TestType::fun2 at .*.C:24: .*(\n|\r\n|\r)*" }
  
diff --git a/gcc/testsuite/g++.dg/contracts/contracts19.C b/gcc/testsuite/g++.dg/contracts/contracts19.C
index 4a8b43a3186..2f7dc3aeefc 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts19.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts19.C
@@ -14,6 +14,6 @@ int main()
   return 0;
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 11 main .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 12 main .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function main at .*.C:11: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function main at .*.C:12: .*(\n|\r\n|\r)*" }
 
diff --git a/gcc/testsuite/g++.dg/contracts/contracts25.C b/gcc/testsuite/g++.dg/contracts/contracts25.C
index 01217807bc1..8758dd58bcf 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts25.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts25.C
@@ -50,8 +50,8 @@ int main(int, char **) {
   return 0;
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 12 ffun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 30 ftfun<int> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 36 explicitfn .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 30 ftfun<double> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ffun at .*.C:12: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ftfun<int> at .*.C:30: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function explicitfn at .*.C:36: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function ftfun<double> at .*.C:30: .*(\n|\r\n|\r)*" }
 
diff --git a/gcc/testsuite/g++.dg/contracts/contracts3.C b/gcc/testsuite/g++.dg/contracts/contracts3.C
index ecb9fdb1e65..73dc7a15544 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts3.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts3.C
@@ -3,7 +3,7 @@
 // { dg-do run }
 // { dg-options "-std=c++2a -fcontracts" }
 // { dg-shouldfail "assert violation" }
-// { dg-output "default std::handle_contract_violation called" }
+// { dg-output "contract violation in function main" }
 
 int main()
 {
diff --git a/gcc/testsuite/g++.dg/contracts/contracts35.C b/gcc/testsuite/g++.dg/contracts/contracts35.C
index ddd80025afc..dc675d13578 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts35.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts35.C
@@ -32,16 +32,16 @@ int main(int, char **) {
   return 0;
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 8 S::S<int> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 8 S::S<int> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S::S<int> at .*.C:8: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S::S<int> at .*.C:8: .*(\n|\r\n|\r)*" }
 // { dg-output "S::S.T.: -1(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 8 S::S<double> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 8 S::S<double> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S::S<double> at .*.C:8: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S::S<double> at .*.C:8: .*(\n|\r\n|\r)*" }
 // { dg-output "S::S.T.: -2(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 20 S1::S1<int> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 20 S1::S1<int> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S1::S1<int> at .*.C:20: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S1::S1<int> at .*.C:20: .*(\n|\r\n|\r)*" }
 // { dg-output "S1::S1.T.: -3(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 20 S1::S1<double> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 20 S1::S1<double> .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S1::S1<double> at .*.C:20: .*(\n|\r\n|\r)*" }
+// { dg-output "contract violation in function S1::S1<double> at .*.C:20: .*(\n|\r\n|\r)*" }
 // { dg-output "S1::S1.T.: -4(\n|\r\n|\r)*" }
 
diff --git a/gcc/testsuite/g++.dg/contracts/contracts5.C b/gcc/testsuite/g++.dg/contracts/contracts5.C
index 0fa0ec83be5..3c591833bf1 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts5.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts5.C
@@ -3,7 +3,7 @@
 // { dg-do run }
 // { dg-options "-std=c++2a -fcontracts -fcontract-build-level=audit" }
 // { dg-shouldfail "assert violation" }
-// { dg-output "default std::handle_contract_violation called" }
+// { dg-output "contract violation in function main" }
 
 int main()
 {
diff --git a/gcc/testsuite/g++.dg/contracts/contracts7.C b/gcc/testsuite/g++.dg/contracts/contracts7.C
index eaad8f0fc9d..9e7cae9433e 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts7.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts7.C
@@ -4,7 +4,7 @@
 // contract failure is switched on
 // { dg-do run }
 // { dg-options "-std=c++2a -fcontracts -fcontract-continuation-mode=on" }
-// { dg-output "default std::handle_contract_violation called" }
+// { dg-output "contract violation in function main" }
 
 int main()
 {
diff --git a/gcc/testsuite/g++.dg/contracts/contracts9.C b/gcc/testsuite/g++.dg/contracts/contracts9.C
index f566628ec44..aedea845f02 100644
--- a/gcc/testsuite/g++.dg/contracts/contracts9.C
+++ b/gcc/testsuite/g++.dg/contracts/contracts9.C
@@ -35,11 +35,19 @@ int main()
   // return 0;
 }
 
-// { dg-output "default std::handle_contract_violation called: .*.C 12 fun1<int> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 11 fun1<double> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 11 fun1<const char.> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 11 fun1<int> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 12 fun1<int> .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 32 main .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 21 test<int>::fun .*(\n|\r\n|\r)*" }
-// { dg-output "default std::handle_contract_violation called: .*.C 21 test<double>::fun .*(\n|\r\n|\r)*" }
+// { dg-output {contract violation in function fun1<int> at .*:12: \(long long\)b > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function fun1<double> at .*:11: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function fun1<const char\*> at .*:11: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function fun1<int> at .*:11: a > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function fun1<int> at .*:12: \(long long\)b > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function main at .*:32: fun1\(-1, -5\)(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function test<int>::fun at .*:21: b > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
+// { dg-output {contract violation in function test<double>::fun at .*:21: b > 0(\n|\r\n|\r)*} }
+// { dg-output {\[continue:on\](\n|\r\n|\r)*} }
-- 
2.39.0


  parent reply	other threads:[~2022-12-22 11:03 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-10  9:42 [PATCH 0/4] c++: Small tweaks to contracts Arsen Arsenović
2022-12-10  9:43 ` [PATCH 1/4] contracts: Lowercase {MAYBE,NEVER}_CONTINUE Arsen Arsenović
2022-12-10 11:15   ` Jonathan Wakely
2022-12-15 16:25   ` Jason Merrill
2022-12-15 17:39     ` Arsen Arsenović
2022-12-20 17:16       ` Jason Merrill
2022-12-10  9:43 ` [PATCH 2/4] libstdc++: Improve output of default contract violation handler [PR107792] Arsen Arsenović
2022-12-15 16:28   ` Jason Merrill
2022-12-15 17:43     ` Arsen Arsenović
2022-12-20 10:49       ` [PATCH 1/3] " Arsen Arsenović
2022-12-20 10:49         ` [PATCH 2/3] contracts: Update testsuite against new default viol. handler format Arsen Arsenović
2022-12-20 10:49         ` [PATCH 3/3] contrib: Add dg-out-generator.pl Arsen Arsenović
2022-12-20 15:57           ` Jonathan Wakely
2022-12-20 17:23         ` [PATCH 1/3] libstdc++: Improve output of default contract violation handler [PR107792] Jason Merrill
2022-12-22 11:03           ` Arsen Arsenović
2022-12-22 21:40             ` Jason Merrill
2022-12-22 22:02               ` Jonathan Wakely
2022-12-22 11:03           ` Arsen Arsenović [this message]
2022-12-22 11:03           ` [PATCH 3/3] contrib: Add dg-out-generator.pl Arsen Arsenović
2022-12-22 21:43             ` Jason Merrill
2022-12-22 21:56               ` Arsen Arsenović
2022-12-22 22:21                 ` Jason Merrill
2022-12-22 22:56                   ` Arsen Arsenović
2022-12-10  9:43 ` [PATCH 3/4] contracts: Update testsuite against new default viol. handler format Arsen Arsenović
2022-12-10  9:43 ` [PATCH 4/4] contrib: Add dg-out-generator.pl Arsen Arsenović
2022-12-15 16:30   ` Jason Merrill
2022-12-15 17:30     ` Arsen Arsenović

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221222110306.3869396-2-arsen@aarsen.me \
    --to=arsen@aarsen.me \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jason@redhat.com \
    --cc=jwakely@redhat.com \
    --cc=libstdc++@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).