Assert Info reset need to also reset result disposition to normal to handle uncaught exception correctly
<!--
Please do not submit pull requests changing the `version.hpp`
or the single-include `catch.hpp` file, these are changed
only when a new release is made.

Before submitting a PR you should probably read the contributor documentation
at docs/contributing.md. It will tell you how to properly test your changes.
-->


## Description
<!--
Describe the what and the why of your pull request. Remember that these two
are usually a bit different. As an example, if you have made various changes
to decrease the number of new strings allocated, that's what. The why probably
was that you have a large set of tests and found that this speeds them up.
-->
why?
After CHECK_ELSE is run, uncaught exception would pass unit tests which causes huge issues.

what?
This pull request added two unit tests to demo how uncaught exception are swallowed silently, and fixes that with resetting the result disposition flag to normal. Since populateReaction uses the last assertion info, it needs to be reset after populateReaction is called.

## GitHub Issues
<!-- 
If this PR was motivated by some existing issues, reference them here.

If it is a simple bug-fix, please also add a line like 'Closes #123'
to your commit message, so that it is automatically closed.
If it is not, don't, as it might take several iterations for a feature
to be done properly. If in doubt, leave it open and reference it in the
PR itself, so that maintainers can decide.
-->
Closes #2719

{"label": "catchorg:devel", "ref": "devel", "sha": "4acc51828f7f93f3b2058a63f54d112af4034503"}
**Describe the bug**
After CHECKED_ELSE(true) {} is being run, any exception being thrown in the tests are suppressed and treated as passing when using xml reporter. Using console reporter reports failure.

After CHECKED_ELSE(false) {} is being run, any exception being thrown are suppressed in both console and xml reporter.

**Expected behavior**
Both the console reporter and xml reporter should behave exactly the same, that the exception is reported and test counted as failure in both cases.

**Reproduction steps**
Steps to reproduce the bug.
<!-- Usually this means a small and self-contained piece of code that uses Catch and specifying compiler flags if relevant. -->
```
#include <catch2/catch_test_macros.hpp>
#include <exception>

TEST_CASE("Testing") {
    CHECKED_ELSE(true) {}
    throw std::runtime_error("it is an error");
}
```
Running it with 
./test -r xml
```
<?xml version="1.0" encoding="UTF-8"?>
<Catch2TestRun name="test" rng-seed="3025144594" xml-format-version="2" catch
  <TestCase name="Testing" filename="/home/ross/workspace/catch2-xml/test.cpp
    <OverallResult success="true" skips="0"/>
  </TestCase>
  <OverallResults successes="1" failures="0" expectedFailures="0" skips="0"/>
  <OverallResultsCases successes="1" failures="0" expectedFailures="0" skips=
</Catch2TestRun>
```
And running it directly with
./test
```
...
/home/ross/workspace/catch2-xml/test.cpp:4: FAILED:
  {Unknown expression after the reported line}
due to unexpected exception with message:
  it is an error

===============================================================================
test cases: 1 | 1 failed
assertions: 2 | 1 passed | 1 failed
```
And if the argument inside CHECKED_ELSE is false, exception is suppressed for both console and xml reporter. It also looks like a bug.

```
#include <catch2/catch_test_macros.hpp>
#include <exception>

TEST_CASE("Testing") {
    CHECKED_ELSE(false) {}
    throw std::runtime_error("it is an error");
}
```
Running
./test -r xml
```
<?xml version="1.0" encoding="UTF-8"?>
<Catch2TestRun name="test" rng-seed="3270933764" xml-format-version="2" catch2-version="3.3.2">
  <TestCase name="Testing" filename="/home/ross/workspace/catch2-xml/test.cpp" line="4">
    <OverallResult success="true" skips="0"/>
  </TestCase>
  <OverallResults successes="0" failures="0" expectedFailures="0" skips="0"/>
  <OverallResultsCases successes="1" failures="0" expectedFailures="0" skips="0"/>
</Catch2TestRun>
```
Running 
./test 
```
Randomness seeded to: 1751265161
===============================================================================
test cases: 1 | 1 passed
assertions: - none -
```
**Platform information:**
<!-- Fill in any extra information that might be important for your issue. -->
 - OS: **Ubuntu jammy**
 - Compiler+version: **clang++-15**
 - Catch version: **v3.3.2**


**Additional context**
Add any other context about the problem here.

Exception is treated as passing when used CHECKED_ELSE before in xml reporter
diff --git a/src/catch2/internal/catch_run_context.cpp b/src/catch2/internal/catch_run_context.cpp
index 6f15cfb1a4..e568100d60 100644
--- a/src/catch2/internal/catch_run_context.cpp
+++ b/src/catch2/internal/catch_run_context.cpp
@@ -20,6 +20,7 @@
 #include <catch2/internal/catch_output_redirect.hpp>
 #include <catch2/internal/catch_assertion_handler.hpp>
 #include <catch2/internal/catch_test_failure_exception.hpp>
+#include <catch2/internal/catch_result_type.hpp>
 
 #include <cassert>
 #include <algorithm>
@@ -293,13 +294,14 @@ namespace Catch {
             m_messageScopes.clear();
         }
 
-        // Reset working state
-        resetAssertionInfo();
+        // Reset working state. assertion info will be reset after
+        // populateReaction is run if it is needed
         m_lastResult = CATCH_MOVE( result );
     }
     void RunContext::resetAssertionInfo() {
         m_lastAssertionInfo.macroName = StringRef();
         m_lastAssertionInfo.capturedExpression = "{Unknown expression after the reported line}"_sr;
+        m_lastAssertionInfo.resultDisposition = ResultDisposition::Normal;
     }
 
     void RunContext::notifyAssertionStarted( AssertionInfo const& info ) {
@@ -447,6 +449,7 @@ namespace Catch {
         AssertionResult result(m_lastAssertionInfo, CATCH_MOVE(tempResult));
 
         assertionEnded(CATCH_MOVE(result) );
+        resetAssertionInfo();
 
         handleUnfinishedSections();
 
@@ -583,6 +586,7 @@ namespace Catch {
             reportExpr(info, ResultWas::ExpressionFailed, &expr, negated );
             populateReaction( reaction );
         }
+        resetAssertionInfo();
     }
     void RunContext::reportExpr(
             AssertionInfo const &info,
@@ -621,6 +625,7 @@ namespace Catch {
             // considered "OK"
             reaction.shouldSkip = true;
         }
+        resetAssertionInfo();
     }
     void RunContext::handleUnexpectedExceptionNotThrown(
             AssertionInfo const& info,
@@ -641,6 +646,7 @@ namespace Catch {
         AssertionResult assertionResult{ info, CATCH_MOVE(data) };
         assertionEnded( CATCH_MOVE(assertionResult) );
         populateReaction( reaction );
+        resetAssertionInfo();
     }
 
     void RunContext::populateReaction( AssertionReaction& reaction ) {
@@ -658,6 +664,7 @@ namespace Catch {
         data.message = "Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE"s;
         AssertionResult assertionResult{ info, CATCH_MOVE( data ) };
         assertionEnded( CATCH_MOVE(assertionResult) );
+        resetAssertionInfo();
     }
     void RunContext::handleNonExpr(
             AssertionInfo const &info,
@@ -672,6 +679,7 @@ namespace Catch {
         const auto isOk = assertionResult.isOk();
         assertionEnded( CATCH_MOVE(assertionResult) );
         if ( !isOk ) { populateReaction( reaction ); }
+        resetAssertionInfo();
     }
 
 

diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 14a68e3494..74017c3884 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -78,6 +78,7 @@ endif(MSVC) #Temporary workaround
 set(TEST_SOURCES
         ${SELF_TEST_DIR}/TestRegistrations.cpp
         ${SELF_TEST_DIR}/IntrospectiveTests/Algorithms.tests.cpp
+        ${SELF_TEST_DIR}/IntrospectiveTests/AssertionHandler.tests.cpp
         ${SELF_TEST_DIR}/IntrospectiveTests/Clara.tests.cpp
         ${SELF_TEST_DIR}/IntrospectiveTests/CmdLine.tests.cpp
         ${SELF_TEST_DIR}/IntrospectiveTests/CmdLineHelpers.tests.cpp
diff --git a/tests/SelfTest/Baselines/automake.sw.approved.txt b/tests/SelfTest/Baselines/automake.sw.approved.txt
index 6b5938a67b..cfddf2171d 100644
--- a/tests/SelfTest/Baselines/automake.sw.approved.txt
+++ b/tests/SelfTest/Baselines/automake.sw.approved.txt
@@ -166,6 +166,7 @@ Nor would this
 :test-result: FAIL INFO gets logged on failure
 :test-result: FAIL INFO gets logged on failure, even if captured before successful assertions
 :test-result: FAIL INFO is reset for each loop
+:test-result: XFAIL Incomplete AssertionHandler
 :test-result: XFAIL Inequality checks that should fail
 :test-result: PASS Inequality checks that should succeed
 :test-result: PASS Lambdas in assertions
@@ -265,6 +266,8 @@ Message from section two
 :test-result: PASS Testing checked-if
 :test-result: XFAIL Testing checked-if 2
 :test-result: XFAIL Testing checked-if 3
+:test-result: XFAIL Testing checked-if 4
+:test-result: XFAIL Testing checked-if 5
 :test-result: FAIL The NO_FAIL macro reports a failure but does not fail the test
 :test-result: PASS The default listing implementation write to provided stream
 :test-result: FAIL This test 'should' fail but doesn't
diff --git a/tests/SelfTest/Baselines/automake.sw.multi.approved.txt b/tests/SelfTest/Baselines/automake.sw.multi.approved.txt
index cd56e64871..80ed132566 100644
--- a/tests/SelfTest/Baselines/automake.sw.multi.approved.txt
+++ b/tests/SelfTest/Baselines/automake.sw.multi.approved.txt
@@ -164,6 +164,7 @@
 :test-result: FAIL INFO gets logged on failure
 :test-result: FAIL INFO gets logged on failure, even if captured before successful assertions
 :test-result: FAIL INFO is reset for each loop
+:test-result: XFAIL Incomplete AssertionHandler
 :test-result: XFAIL Inequality checks that should fail
 :test-result: PASS Inequality checks that should succeed
 :test-result: PASS Lambdas in assertions
@@ -258,6 +259,8 @@
 :test-result: PASS Testing checked-if
 :test-result: XFAIL Testing checked-if 2
 :test-result: XFAIL Testing checked-if 3
+:test-result: XFAIL Testing checked-if 4
+:test-result: XFAIL Testing checked-if 5
 :test-result: FAIL The NO_FAIL macro reports a failure but does not fail the test
 :test-result: PASS The default listing implementation write to provided stream
 :test-result: FAIL This test 'should' fail but doesn't
diff --git a/tests/SelfTest/Baselines/compact.sw.approved.txt b/tests/SelfTest/Baselines/compact.sw.approved.txt
index be7a412035..cac5fc0383 100644
--- a/tests/SelfTest/Baselines/compact.sw.approved.txt
+++ b/tests/SelfTest/Baselines/compact.sw.approved.txt
@@ -961,6 +961,7 @@ Message.tests.cpp:<line number>: passed: i < 10 for: 7 < 10 with 2 messages: 'cu
 Message.tests.cpp:<line number>: passed: i < 10 for: 8 < 10 with 2 messages: 'current counter 8' and 'i := 8'
 Message.tests.cpp:<line number>: passed: i < 10 for: 9 < 10 with 2 messages: 'current counter 9' and 'i := 9'
 Message.tests.cpp:<line number>: failed: i < 10 for: 10 < 10 with 2 messages: 'current counter 10' and 'i := 10'
+AssertionHandler.tests.cpp:<line number>: failed: unexpected exception with message: 'Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE'; expression was: Dummy
 Condition.tests.cpp:<line number>: failed: data.int_seven != 7 for: 7 != 7
 Condition.tests.cpp:<line number>: failed: data.float_nine_point_one != Approx( 9.1f ) for: 9.1f != Approx( 9.1000003815 )
 Condition.tests.cpp:<line number>: failed: data.double_pi != Approx( 3.1415926535 ) for: 3.1415926535 != Approx( 3.1415926535 )
@@ -1750,6 +1751,10 @@ Misc.tests.cpp:<line number>: passed: true
 Misc.tests.cpp:<line number>: failed: explicitly
 Misc.tests.cpp:<line number>: failed - but was ok: false
 Misc.tests.cpp:<line number>: failed: explicitly
+Misc.tests.cpp:<line number>: passed: true
+Misc.tests.cpp:<line number>: failed: unexpected exception with message: 'Uncaught exception should fail!'; expression was: {Unknown expression after the reported line}
+Misc.tests.cpp:<line number>: failed - but was ok: false
+Misc.tests.cpp:<line number>: failed: unexpected exception with message: 'Uncaught exception should fail!'; expression was: {Unknown expression after the reported line}
 Message.tests.cpp:<line number>: failed - but was ok: 1 == 2
 Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("[fakeTag]"s) for: "All available tags:
    1  [fakeTag]
@@ -2538,7 +2543,7 @@ InternalBenchmark.tests.cpp:<line number>: passed: med == 18. for: 18.0 == 18.0
 InternalBenchmark.tests.cpp:<line number>: passed: q3 == 23. for: 23.0 == 23.0
 Misc.tests.cpp:<line number>: passed:
 Misc.tests.cpp:<line number>: passed:
-test cases:  409 |  308 passed |  84 failed | 6 skipped | 11 failed as expected
-assertions: 2225 | 2048 passed | 145 failed | 32 failed as expected
+test cases:  412 |  308 passed |  84 failed | 6 skipped | 14 failed as expected
+assertions: 2229 | 2049 passed | 145 failed | 35 failed as expected
 
 
diff --git a/tests/SelfTest/Baselines/compact.sw.multi.approved.txt b/tests/SelfTest/Baselines/compact.sw.multi.approved.txt
index 6c48ab917f..e3e3fe25c8 100644
--- a/tests/SelfTest/Baselines/compact.sw.multi.approved.txt
+++ b/tests/SelfTest/Baselines/compact.sw.multi.approved.txt
@@ -959,6 +959,7 @@ Message.tests.cpp:<line number>: passed: i < 10 for: 7 < 10 with 2 messages: 'cu
 Message.tests.cpp:<line number>: passed: i < 10 for: 8 < 10 with 2 messages: 'current counter 8' and 'i := 8'
 Message.tests.cpp:<line number>: passed: i < 10 for: 9 < 10 with 2 messages: 'current counter 9' and 'i := 9'
 Message.tests.cpp:<line number>: failed: i < 10 for: 10 < 10 with 2 messages: 'current counter 10' and 'i := 10'
+AssertionHandler.tests.cpp:<line number>: failed: unexpected exception with message: 'Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE'; expression was: Dummy
 Condition.tests.cpp:<line number>: failed: data.int_seven != 7 for: 7 != 7
 Condition.tests.cpp:<line number>: failed: data.float_nine_point_one != Approx( 9.1f ) for: 9.1f != Approx( 9.1000003815 )
 Condition.tests.cpp:<line number>: failed: data.double_pi != Approx( 3.1415926535 ) for: 3.1415926535 != Approx( 3.1415926535 )
@@ -1743,6 +1744,10 @@ Misc.tests.cpp:<line number>: passed: true
 Misc.tests.cpp:<line number>: failed: explicitly
 Misc.tests.cpp:<line number>: failed - but was ok: false
 Misc.tests.cpp:<line number>: failed: explicitly
+Misc.tests.cpp:<line number>: passed: true
+Misc.tests.cpp:<line number>: failed: unexpected exception with message: 'Uncaught exception should fail!'; expression was: {Unknown expression after the reported line}
+Misc.tests.cpp:<line number>: failed - but was ok: false
+Misc.tests.cpp:<line number>: failed: unexpected exception with message: 'Uncaught exception should fail!'; expression was: {Unknown expression after the reported line}
 Message.tests.cpp:<line number>: failed - but was ok: 1 == 2
 Reporters.tests.cpp:<line number>: passed: listingString, ContainsSubstring("[fakeTag]"s) for: "All available tags:
    1  [fakeTag]
@@ -2527,7 +2532,7 @@ InternalBenchmark.tests.cpp:<line number>: passed: med == 18. for: 18.0 == 18.0
 InternalBenchmark.tests.cpp:<line number>: passed: q3 == 23. for: 23.0 == 23.0
 Misc.tests.cpp:<line number>: passed:
 Misc.tests.cpp:<line number>: passed:
-test cases:  409 |  308 passed |  84 failed | 6 skipped | 11 failed as expected
-assertions: 2225 | 2048 passed | 145 failed | 32 failed as expected
+test cases:  412 |  308 passed |  84 failed | 6 skipped | 14 failed as expected
+assertions: 2229 | 2049 passed | 145 failed | 35 failed as expected
 
 
diff --git a/tests/SelfTest/Baselines/console.std.approved.txt b/tests/SelfTest/Baselines/console.std.approved.txt
index 0945f0dfb8..52a1b3a9a0 100644
--- a/tests/SelfTest/Baselines/console.std.approved.txt
+++ b/tests/SelfTest/Baselines/console.std.approved.txt
@@ -659,6 +659,17 @@ with messages:
   current counter 10
   i := 10
 
+-------------------------------------------------------------------------------
+Incomplete AssertionHandler
+-------------------------------------------------------------------------------
+AssertionHandler.tests.cpp:<line number>
+...............................................................................
+
+AssertionHandler.tests.cpp:<line number>: FAILED:
+  REQUIRE( Dummy )
+due to unexpected exception with message:
+  Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE
+
 -------------------------------------------------------------------------------
 Inequality checks that should fail
 -------------------------------------------------------------------------------
@@ -997,6 +1008,28 @@ Misc.tests.cpp:<line number>
 
 Misc.tests.cpp:<line number>: FAILED:
 
+-------------------------------------------------------------------------------
+Testing checked-if 4
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: FAILED:
+  {Unknown expression after the reported line}
+due to unexpected exception with message:
+  Uncaught exception should fail!
+
+-------------------------------------------------------------------------------
+Testing checked-if 5
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: FAILED:
+  {Unknown expression after the reported line}
+due to unexpected exception with message:
+  Uncaught exception should fail!
+
 -------------------------------------------------------------------------------
 Thrown string literals are translated
 -------------------------------------------------------------------------------
@@ -1543,6 +1576,6 @@ due to unexpected exception with message:
   Why would you throw a std::string?
 
 ===============================================================================
-test cases:  409 |  322 passed |  69 failed | 7 skipped | 11 failed as expected
-assertions: 2208 | 2048 passed | 128 failed | 32 failed as expected
+test cases:  412 |  322 passed |  69 failed | 7 skipped | 14 failed as expected
+assertions: 2212 | 2049 passed | 128 failed | 35 failed as expected
 
diff --git a/tests/SelfTest/Baselines/console.sw.approved.txt b/tests/SelfTest/Baselines/console.sw.approved.txt
index 150980e82f..80317f5bda 100644
--- a/tests/SelfTest/Baselines/console.sw.approved.txt
+++ b/tests/SelfTest/Baselines/console.sw.approved.txt
@@ -7143,6 +7143,17 @@ with messages:
   current counter 10
   i := 10
 
+-------------------------------------------------------------------------------
+Incomplete AssertionHandler
+-------------------------------------------------------------------------------
+AssertionHandler.tests.cpp:<line number>
+...............................................................................
+
+AssertionHandler.tests.cpp:<line number>: FAILED:
+  REQUIRE( Dummy )
+due to unexpected exception with message:
+  Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE
+
 -------------------------------------------------------------------------------
 Inequality checks that should fail
 -------------------------------------------------------------------------------
@@ -12522,6 +12533,34 @@ Misc.tests.cpp:<line number>: FAILED - but was ok:
 
 Misc.tests.cpp:<line number>: FAILED:
 
+-------------------------------------------------------------------------------
+Testing checked-if 4
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+  CHECKED_ELSE( true )
+
+Misc.tests.cpp:<line number>: FAILED:
+  {Unknown expression after the reported line}
+due to unexpected exception with message:
+  Uncaught exception should fail!
+
+-------------------------------------------------------------------------------
+Testing checked-if 5
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: FAILED - but was ok:
+  CHECKED_ELSE( false )
+
+Misc.tests.cpp:<line number>: FAILED:
+  {Unknown expression after the reported line}
+due to unexpected exception with message:
+  Uncaught exception should fail!
+
 -------------------------------------------------------------------------------
 The NO_FAIL macro reports a failure but does not fail the test
 -------------------------------------------------------------------------------
@@ -18232,6 +18271,6 @@ Misc.tests.cpp:<line number>
 Misc.tests.cpp:<line number>: PASSED:
 
 ===============================================================================
-test cases:  409 |  308 passed |  84 failed | 6 skipped | 11 failed as expected
-assertions: 2225 | 2048 passed | 145 failed | 32 failed as expected
+test cases:  412 |  308 passed |  84 failed | 6 skipped | 14 failed as expected
+assertions: 2229 | 2049 passed | 145 failed | 35 failed as expected
 
diff --git a/tests/SelfTest/Baselines/console.sw.multi.approved.txt b/tests/SelfTest/Baselines/console.sw.multi.approved.txt
index 4cc942dd49..fb55a0c4a4 100644
--- a/tests/SelfTest/Baselines/console.sw.multi.approved.txt
+++ b/tests/SelfTest/Baselines/console.sw.multi.approved.txt
@@ -7141,6 +7141,17 @@ with messages:
   current counter 10
   i := 10
 
+-------------------------------------------------------------------------------
+Incomplete AssertionHandler
+-------------------------------------------------------------------------------
+AssertionHandler.tests.cpp:<line number>
+...............................................................................
+
+AssertionHandler.tests.cpp:<line number>: FAILED:
+  REQUIRE( Dummy )
+due to unexpected exception with message:
+  Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE
+
 -------------------------------------------------------------------------------
 Inequality checks that should fail
 -------------------------------------------------------------------------------
@@ -12515,6 +12526,34 @@ Misc.tests.cpp:<line number>: FAILED - but was ok:
 
 Misc.tests.cpp:<line number>: FAILED:
 
+-------------------------------------------------------------------------------
+Testing checked-if 4
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: PASSED:
+  CHECKED_ELSE( true )
+
+Misc.tests.cpp:<line number>: FAILED:
+  {Unknown expression after the reported line}
+due to unexpected exception with message:
+  Uncaught exception should fail!
+
+-------------------------------------------------------------------------------
+Testing checked-if 5
+-------------------------------------------------------------------------------
+Misc.tests.cpp:<line number>
+...............................................................................
+
+Misc.tests.cpp:<line number>: FAILED - but was ok:
+  CHECKED_ELSE( false )
+
+Misc.tests.cpp:<line number>: FAILED:
+  {Unknown expression after the reported line}
+due to unexpected exception with message:
+  Uncaught exception should fail!
+
 -------------------------------------------------------------------------------
 The NO_FAIL macro reports a failure but does not fail the test
 -------------------------------------------------------------------------------
@@ -18221,6 +18260,6 @@ Misc.tests.cpp:<line number>
 Misc.tests.cpp:<line number>: PASSED:
 
 ===============================================================================
-test cases:  409 |  308 passed |  84 failed | 6 skipped | 11 failed as expected
-assertions: 2225 | 2048 passed | 145 failed | 32 failed as expected
+test cases:  412 |  308 passed |  84 failed | 6 skipped | 14 failed as expected
+assertions: 2229 | 2049 passed | 145 failed | 35 failed as expected
 
diff --git a/tests/SelfTest/Baselines/junit.sw.approved.txt b/tests/SelfTest/Baselines/junit.sw.approved.txt
index c992154c41..7fb79463ed 100644
--- a/tests/SelfTest/Baselines/junit.sw.approved.txt
+++ b/tests/SelfTest/Baselines/junit.sw.approved.txt
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <testsuitesloose text artifact
 >
-  <testsuite name="<exe-name>" errors="17" failures="128" skipped="12" tests="2237" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}">
+  <testsuite name="<exe-name>" errors="17" failures="128" skipped="12" tests="2241" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}">
     <properties>
       <property name="random-seed" value="1"/>
       <property name="filters" value="&quot;*&quot; ~[!nonportable] ~[!benchmark] ~[approvals]"/>
@@ -796,6 +796,15 @@ i := 10
 at Message.tests.cpp:<line number>
       </failure>
     </testcase>
+    <testcase classname="<exe-name>.global" name="Incomplete AssertionHandler" time="{duration}" status="run">
+      <skipped message="TEST_CASE tagged with !mayfail"/>
+      <error message="Dummy" type="REQUIRE">
+FAILED:
+  REQUIRE( Dummy )
+Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE
+at AssertionHandler.tests.cpp:<line number>
+      </error>
+    </testcase>
     <testcase classname="<exe-name>.global" name="Inequality checks that should fail" time="{duration}" status="run">
       <skipped message="TEST_CASE tagged with !mayfail"/>
       <failure message="data.int_seven != 7" type="CHECK">
@@ -1360,6 +1369,24 @@ FAILED:
 at Misc.tests.cpp:<line number>
       </failure>
     </testcase>
+    <testcase classname="<exe-name>.global" name="Testing checked-if 4" time="{duration}" status="run">
+      <skipped message="TEST_CASE tagged with !mayfail"/>
+      <error message="{Unknown expression after the reported line}">
+FAILED:
+  {Unknown expression after the reported line}
+Uncaught exception should fail!
+at Misc.tests.cpp:<line number>
+      </error>
+    </testcase>
+    <testcase classname="<exe-name>.global" name="Testing checked-if 5" time="{duration}" status="run">
+      <skipped message="TEST_CASE tagged with !mayfail"/>
+      <error message="{Unknown expression after the reported line}">
+FAILED:
+  {Unknown expression after the reported line}
+Uncaught exception should fail!
+at Misc.tests.cpp:<line number>
+      </error>
+    </testcase>
     <testcase classname="<exe-name>.global" name="The NO_FAIL macro reports a failure but does not fail the test" time="{duration}" status="run"/>
     <testcase classname="<exe-name>.global" name="The default listing implementation write to provided stream/Listing tags" time="{duration}" status="run"/>
     <testcase classname="<exe-name>.global" name="The default listing implementation write to provided stream/Listing reporters" time="{duration}" status="run"/>
diff --git a/tests/SelfTest/Baselines/junit.sw.multi.approved.txt b/tests/SelfTest/Baselines/junit.sw.multi.approved.txt
index 79c3236506..4fee867f72 100644
--- a/tests/SelfTest/Baselines/junit.sw.multi.approved.txt
+++ b/tests/SelfTest/Baselines/junit.sw.multi.approved.txt
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <testsuites>
-  <testsuite name="<exe-name>" errors="17" failures="128" skipped="12" tests="2237" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}">
+  <testsuite name="<exe-name>" errors="17" failures="128" skipped="12" tests="2241" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}">
     <properties>
       <property name="random-seed" value="1"/>
       <property name="filters" value="&quot;*&quot; ~[!nonportable] ~[!benchmark] ~[approvals]"/>
@@ -795,6 +795,15 @@ i := 10
 at Message.tests.cpp:<line number>
       </failure>
     </testcase>
+    <testcase classname="<exe-name>.global" name="Incomplete AssertionHandler" time="{duration}" status="run">
+      <skipped message="TEST_CASE tagged with !mayfail"/>
+      <error message="Dummy" type="REQUIRE">
+FAILED:
+  REQUIRE( Dummy )
+Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE
+at AssertionHandler.tests.cpp:<line number>
+      </error>
+    </testcase>
     <testcase classname="<exe-name>.global" name="Inequality checks that should fail" time="{duration}" status="run">
       <skipped message="TEST_CASE tagged with !mayfail"/>
       <failure message="data.int_seven != 7" type="CHECK">
@@ -1359,6 +1368,24 @@ FAILED:
 at Misc.tests.cpp:<line number>
       </failure>
     </testcase>
+    <testcase classname="<exe-name>.global" name="Testing checked-if 4" time="{duration}" status="run">
+      <skipped message="TEST_CASE tagged with !mayfail"/>
+      <error message="{Unknown expression after the reported line}">
+FAILED:
+  {Unknown expression after the reported line}
+Uncaught exception should fail!
+at Misc.tests.cpp:<line number>
+      </error>
+    </testcase>
+    <testcase classname="<exe-name>.global" name="Testing checked-if 5" time="{duration}" status="run">
+      <skipped message="TEST_CASE tagged with !mayfail"/>
+      <error message="{Unknown expression after the reported line}">
+FAILED:
+  {Unknown expression after the reported line}
+Uncaught exception should fail!
+at Misc.tests.cpp:<line number>
+      </error>
+    </testcase>
     <testcase classname="<exe-name>.global" name="The NO_FAIL macro reports a failure but does not fail the test" time="{duration}" status="run"/>
     <testcase classname="<exe-name>.global" name="The default listing implementation write to provided stream/Listing tags" time="{duration}" status="run"/>
     <testcase classname="<exe-name>.global" name="The default listing implementation write to provided stream/Listing reporters" time="{duration}" status="run"/>
diff --git a/tests/SelfTest/Baselines/sonarqube.sw.approved.txt b/tests/SelfTest/Baselines/sonarqube.sw.approved.txt
index 592887f9c4..6cbb7c7b3c 100644
--- a/tests/SelfTest/Baselines/sonarqube.sw.approved.txt
+++ b/tests/SelfTest/Baselines/sonarqube.sw.approved.txt
@@ -2,6 +2,16 @@
 <!-- filters='"*" ~[!nonportable] ~[!benchmark] ~[approvals]' rng-seed=1 -->
 <testExecutions version="1"loose text artifact
 >
+  <file path="tests/<exe-name>/IntrospectiveTests/AssertionHandler.tests.cpp">
+    <testCase name="Incomplete AssertionHandler" duration="{duration}">
+      <skipped message="REQUIRE(Dummy)">
+FAILED:
+	REQUIRE( Dummy )
+Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE
+at AssertionHandler.tests.cpp:<line number>
+      </skipped>
+    </testCase>
+  </file>
   <file path="tests/<exe-name>/IntrospectiveTests/Clara.tests.cpp">
     <testCase name="Clara::Arg supports single-arg parse the way Opt does" duration="{duration}"/>
     <testCase name="Clara::Opt supports accept-many lambdas/Parsing fails on multiple options without accept_many" duration="{duration}"/>
@@ -1727,6 +1737,22 @@ at Misc.tests.cpp:<line number>
     <testCase name="Testing checked-if 3" duration="{duration}">
       <skipped message="FAIL()">
 FAILED:
+at Misc.tests.cpp:<line number>
+      </skipped>
+    </testCase>
+    <testCase name="Testing checked-if 4" duration="{duration}">
+      <skipped message="({Unknown expression after the reported line})">
+FAILED:
+	{Unknown expression after the reported line}
+Uncaught exception should fail!
+at Misc.tests.cpp:<line number>
+      </skipped>
+    </testCase>
+    <testCase name="Testing checked-if 5" duration="{duration}">
+      <skipped message="({Unknown expression after the reported line})">
+FAILED:
+	{Unknown expression after the reported line}
+Uncaught exception should fail!
 at Misc.tests.cpp:<line number>
       </skipped>
     </testCase>
diff --git a/tests/SelfTest/Baselines/sonarqube.sw.multi.approved.txt b/tests/SelfTest/Baselines/sonarqube.sw.multi.approved.txt
index 3509287f78..ba9504cb47 100644
--- a/tests/SelfTest/Baselines/sonarqube.sw.multi.approved.txt
+++ b/tests/SelfTest/Baselines/sonarqube.sw.multi.approved.txt
@@ -1,6 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- filters='"*" ~[!nonportable] ~[!benchmark] ~[approvals]' rng-seed=1 -->
 <testExecutions version="1">
+  <file path="tests/<exe-name>/IntrospectiveTests/AssertionHandler.tests.cpp">
+    <testCase name="Incomplete AssertionHandler" duration="{duration}">
+      <skipped message="REQUIRE(Dummy)">
+FAILED:
+	REQUIRE( Dummy )
+Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE
+at AssertionHandler.tests.cpp:<line number>
+      </skipped>
+    </testCase>
+  </file>
   <file path="tests/<exe-name>/IntrospectiveTests/Clara.tests.cpp">
     <testCase name="Clara::Arg supports single-arg parse the way Opt does" duration="{duration}"/>
     <testCase name="Clara::Opt supports accept-many lambdas/Parsing fails on multiple options without accept_many" duration="{duration}"/>
@@ -1726,6 +1736,22 @@ at Misc.tests.cpp:<line number>
     <testCase name="Testing checked-if 3" duration="{duration}">
       <skipped message="FAIL()">
 FAILED:
+at Misc.tests.cpp:<line number>
+      </skipped>
+    </testCase>
+    <testCase name="Testing checked-if 4" duration="{duration}">
+      <skipped message="({Unknown expression after the reported line})">
+FAILED:
+	{Unknown expression after the reported line}
+Uncaught exception should fail!
+at Misc.tests.cpp:<line number>
+      </skipped>
+    </testCase>
+    <testCase name="Testing checked-if 5" duration="{duration}">
+      <skipped message="({Unknown expression after the reported line})">
+FAILED:
+	{Unknown expression after the reported line}
+Uncaught exception should fail!
 at Misc.tests.cpp:<line number>
       </skipped>
     </testCase>
diff --git a/tests/SelfTest/Baselines/tap.sw.approved.txt b/tests/SelfTest/Baselines/tap.sw.approved.txt
index acd0a1c149..59bd2054da 100644
--- a/tests/SelfTest/Baselines/tap.sw.approved.txt
+++ b/tests/SelfTest/Baselines/tap.sw.approved.txt
@@ -1830,6 +1830,8 @@ ok {test-number} - i < 10 for: 8 < 10 with 2 messages: 'current counter 8' and '
 ok {test-number} - i < 10 for: 9 < 10 with 2 messages: 'current counter 9' and 'i := 9'
 # INFO is reset for each loop
 not ok {test-number} - i < 10 for: 10 < 10 with 2 messages: 'current counter 10' and 'i := 10'
+# Incomplete AssertionHandler
+not ok {test-number} - unexpected exception with message: 'Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE'; expression was: Dummy
 # Inequality checks that should fail
 not ok {test-number} - data.int_seven != 7 for: 7 != 7
 # Inequality checks that should fail
@@ -3067,6 +3069,14 @@ not ok {test-number} - explicitly
 ok {test-number} - false  # TODO
 # Testing checked-if 3
 not ok {test-number} - explicitly
+# Testing checked-if 4
+ok {test-number} - true
+# Testing checked-if 4
+not ok {test-number} - unexpected exception with message: 'Uncaught exception should fail!'; expression was: {Unknown expression after the reported line}
+# Testing checked-if 5
+ok {test-number} - false  # TODO
+# Testing checked-if 5
+not ok {test-number} - unexpected exception with message: 'Uncaught exception should fail!'; expression was: {Unknown expression after the reported line}
 # The NO_FAIL macro reports a failure but does not fail the test
 ok {test-number} - 1 == 2  # TODO
 # The default listing implementation write to provided stream
@@ -4477,5 +4487,5 @@ ok {test-number} - q3 == 23. for: 23.0 == 23.0
 ok {test-number} -
 # xmlentitycheck
 ok {test-number} -
-1..2237
+1..2241
 
diff --git a/tests/SelfTest/Baselines/tap.sw.multi.approved.txt b/tests/SelfTest/Baselines/tap.sw.multi.approved.txt
index 033290497d..3b1a4d852e 100644
--- a/tests/SelfTest/Baselines/tap.sw.multi.approved.txt
+++ b/tests/SelfTest/Baselines/tap.sw.multi.approved.txt
@@ -1828,6 +1828,8 @@ ok {test-number} - i < 10 for: 8 < 10 with 2 messages: 'current counter 8' and '
 ok {test-number} - i < 10 for: 9 < 10 with 2 messages: 'current counter 9' and 'i := 9'
 # INFO is reset for each loop
 not ok {test-number} - i < 10 for: 10 < 10 with 2 messages: 'current counter 10' and 'i := 10'
+# Incomplete AssertionHandler
+not ok {test-number} - unexpected exception with message: 'Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE'; expression was: Dummy
 # Inequality checks that should fail
 not ok {test-number} - data.int_seven != 7 for: 7 != 7
 # Inequality checks that should fail
@@ -3060,6 +3062,14 @@ not ok {test-number} - explicitly
 ok {test-number} - false  # TODO
 # Testing checked-if 3
 not ok {test-number} - explicitly
+# Testing checked-if 4
+ok {test-number} - true
+# Testing checked-if 4
+not ok {test-number} - unexpected exception with message: 'Uncaught exception should fail!'; expression was: {Unknown expression after the reported line}
+# Testing checked-if 5
+ok {test-number} - false  # TODO
+# Testing checked-if 5
+not ok {test-number} - unexpected exception with message: 'Uncaught exception should fail!'; expression was: {Unknown expression after the reported line}
 # The NO_FAIL macro reports a failure but does not fail the test
 ok {test-number} - 1 == 2  # TODO
 # The default listing implementation write to provided stream
@@ -4466,5 +4476,5 @@ ok {test-number} - q3 == 23. for: 23.0 == 23.0
 ok {test-number} -
 # xmlentitycheck
 ok {test-number} -
-1..2237
+1..2241
 
diff --git a/tests/SelfTest/Baselines/teamcity.sw.approved.txt b/tests/SelfTest/Baselines/teamcity.sw.approved.txt
index a298633a16..1f215c1e66 100644
--- a/tests/SelfTest/Baselines/teamcity.sw.approved.txt
+++ b/tests/SelfTest/Baselines/teamcity.sw.approved.txt
@@ -405,6 +405,9 @@
 ##teamcity[testStarted name='INFO is reset for each loop']
 ##teamcity[testFailed name='INFO is reset for each loop' message='Message.tests.cpp:<line number>|n...............................................................................|n|nMessage.tests.cpp:<line number>|nexpression failed with messages:|n  "current counter 10"|n  "i := 10"|n  REQUIRE( i < 10 )|nwith expansion:|n  10 < 10|n']
 ##teamcity[testFinished name='INFO is reset for each loop' duration="{duration}"]
+##teamcity[testStarted name='Incomplete AssertionHandler']
+##teamcity[testIgnored name='Incomplete AssertionHandler' message='AssertionHandler.tests.cpp:<line number>|n...............................................................................|n|nAssertionHandler.tests.cpp:<line number>|nunexpected exception with message:|n  "Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE"|n  REQUIRE( Dummy )|nwith expansion:|n  Dummy|n- failure ignore as test marked as |'ok to fail|'|n']
+##teamcity[testFinished name='Incomplete AssertionHandler' duration="{duration}"]
 ##teamcity[testStarted name='Inequality checks that should fail']
 ##teamcity[testIgnored name='Inequality checks that should fail' message='Condition.tests.cpp:<line number>|n...............................................................................|n|nCondition.tests.cpp:<line number>|nexpression failed|n  CHECK( data.int_seven != 7 )|nwith expansion:|n  7 != 7|n- failure ignore as test marked as |'ok to fail|'|n']
 ##teamcity[testIgnored name='Inequality checks that should fail' message='Condition.tests.cpp:<line number>|nexpression failed|n  CHECK( data.float_nine_point_one != Approx( 9.1f ) )|nwith expansion:|n  9.1f != Approx( 9.1000003815 )|n- failure ignore as test marked as |'ok to fail|'|n']
@@ -639,6 +642,12 @@
 ##teamcity[testStarted name='Testing checked-if 3']
 ##teamcity[testIgnored name='Testing checked-if 3' message='Misc.tests.cpp:<line number>|n...............................................................................|n|nMisc.tests.cpp:<line number>|nexplicit failure- failure ignore as test marked as |'ok to fail|'|n']
 ##teamcity[testFinished name='Testing checked-if 3' duration="{duration}"]
+##teamcity[testStarted name='Testing checked-if 4']
+##teamcity[testIgnored name='Testing checked-if 4' message='Misc.tests.cpp:<line number>|n...............................................................................|n|nMisc.tests.cpp:<line number>|nunexpected exception with message:|n  "Uncaught exception should fail!"|n  {Unknown expression after the reported line}|nwith expansion:|n  {Unknown expression after the reported line}|n- failure ignore as test marked as |'ok to fail|'|n']
+##teamcity[testFinished name='Testing checked-if 4' duration="{duration}"]
+##teamcity[testStarted name='Testing checked-if 5']
+##teamcity[testIgnored name='Testing checked-if 5' message='Misc.tests.cpp:<line number>|n...............................................................................|n|nMisc.tests.cpp:<line number>|nunexpected exception with message:|n  "Uncaught exception should fail!"|n  {Unknown expression after the reported line}|nwith expansion:|n  {Unknown expression after the reported line}|n- failure ignore as test marked as |'ok to fail|'|n']
+##teamcity[testFinished name='Testing checked-if 5' duration="{duration}"]
 ##teamcity[testStarted name='The NO_FAIL macro reports a failure but does not fail the test']
 ##teamcity[testFinished name='The NO_FAIL macro reports a failure but does not fail the test' duration="{duration}"]
 ##teamcity[testStarted name='The default listing implementation write to provided stream']
diff --git a/tests/SelfTest/Baselines/teamcity.sw.multi.approved.txt b/tests/SelfTest/Baselines/teamcity.sw.multi.approved.txt
index 861d64715b..1f557c8f3a 100644
--- a/tests/SelfTest/Baselines/teamcity.sw.multi.approved.txt
+++ b/tests/SelfTest/Baselines/teamcity.sw.multi.approved.txt
@@ -405,6 +405,9 @@
 ##teamcity[testStarted name='INFO is reset for each loop']
 ##teamcity[testFailed name='INFO is reset for each loop' message='Message.tests.cpp:<line number>|n...............................................................................|n|nMessage.tests.cpp:<line number>|nexpression failed with messages:|n  "current counter 10"|n  "i := 10"|n  REQUIRE( i < 10 )|nwith expansion:|n  10 < 10|n']
 ##teamcity[testFinished name='INFO is reset for each loop' duration="{duration}"]
+##teamcity[testStarted name='Incomplete AssertionHandler']
+##teamcity[testIgnored name='Incomplete AssertionHandler' message='AssertionHandler.tests.cpp:<line number>|n...............................................................................|n|nAssertionHandler.tests.cpp:<line number>|nunexpected exception with message:|n  "Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE"|n  REQUIRE( Dummy )|nwith expansion:|n  Dummy|n- failure ignore as test marked as |'ok to fail|'|n']
+##teamcity[testFinished name='Incomplete AssertionHandler' duration="{duration}"]
 ##teamcity[testStarted name='Inequality checks that should fail']
 ##teamcity[testIgnored name='Inequality checks that should fail' message='Condition.tests.cpp:<line number>|n...............................................................................|n|nCondition.tests.cpp:<line number>|nexpression failed|n  CHECK( data.int_seven != 7 )|nwith expansion:|n  7 != 7|n- failure ignore as test marked as |'ok to fail|'|n']
 ##teamcity[testIgnored name='Inequality checks that should fail' message='Condition.tests.cpp:<line number>|nexpression failed|n  CHECK( data.float_nine_point_one != Approx( 9.1f ) )|nwith expansion:|n  9.1f != Approx( 9.1000003815 )|n- failure ignore as test marked as |'ok to fail|'|n']
@@ -639,6 +642,12 @@
 ##teamcity[testStarted name='Testing checked-if 3']
 ##teamcity[testIgnored name='Testing checked-if 3' message='Misc.tests.cpp:<line number>|n...............................................................................|n|nMisc.tests.cpp:<line number>|nexplicit failure- failure ignore as test marked as |'ok to fail|'|n']
 ##teamcity[testFinished name='Testing checked-if 3' duration="{duration}"]
+##teamcity[testStarted name='Testing checked-if 4']
+##teamcity[testIgnored name='Testing checked-if 4' message='Misc.tests.cpp:<line number>|n...............................................................................|n|nMisc.tests.cpp:<line number>|nunexpected exception with message:|n  "Uncaught exception should fail!"|n  {Unknown expression after the reported line}|nwith expansion:|n  {Unknown expression after the reported line}|n- failure ignore as test marked as |'ok to fail|'|n']
+##teamcity[testFinished name='Testing checked-if 4' duration="{duration}"]
+##teamcity[testStarted name='Testing checked-if 5']
+##teamcity[testIgnored name='Testing checked-if 5' message='Misc.tests.cpp:<line number>|n...............................................................................|n|nMisc.tests.cpp:<line number>|nunexpected exception with message:|n  "Uncaught exception should fail!"|n  {Unknown expression after the reported line}|nwith expansion:|n  {Unknown expression after the reported line}|n- failure ignore as test marked as |'ok to fail|'|n']
+##teamcity[testFinished name='Testing checked-if 5' duration="{duration}"]
 ##teamcity[testStarted name='The NO_FAIL macro reports a failure but does not fail the test']
 ##teamcity[testFinished name='The NO_FAIL macro reports a failure but does not fail the test' duration="{duration}"]
 ##teamcity[testStarted name='The default listing implementation write to provided stream']
diff --git a/tests/SelfTest/Baselines/xml.sw.approved.txt b/tests/SelfTest/Baselines/xml.sw.approved.txt
index bf9cf2053f..7f4e8d3aaa 100644
--- a/tests/SelfTest/Baselines/xml.sw.approved.txt
+++ b/tests/SelfTest/Baselines/xml.sw.approved.txt
@@ -8619,6 +8619,20 @@ C
     </Expression>
     <OverallResult success="false" skips="0"/>
   </TestCase>
+  <TestCase name="Incomplete AssertionHandler" tags="[!shouldfail][assertion-handler]" filename="tests/<exe-name>/IntrospectiveTests/AssertionHandler.tests.cpp" >
+    <Expression success="false" type="REQUIRE" filename="tests/<exe-name>/IntrospectiveTests/AssertionHandler.tests.cpp" >
+      <Original>
+        Dummy
+      </Original>
+      <Expanded>
+        Dummy
+      </Expanded>
+      <Exception filename="tests/<exe-name>/IntrospectiveTests/AssertionHandler.tests.cpp" >
+        Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE
+      </Exception>
+    </Expression>
+    <OverallResult success="true" skips="0"/>
+  </TestCase>
   <TestCase name="Inequality checks that should fail" tags="[!shouldfail][.][failing]" filename="tests/<exe-name>/UsageTests/Condition.tests.cpp" >
     <Expression success="false" type="CHECK" filename="tests/<exe-name>/UsageTests/Condition.tests.cpp" >
       <Original>
@@ -14547,6 +14561,50 @@ Message from section two
     <Failure filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" />
     <OverallResult success="true" skips="0"/>
   </TestCase>
+  <TestCase name="Testing checked-if 4" tags="[!shouldfail][checked-if]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
+    <Expression success="true" type="CHECKED_ELSE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
+      <Original>
+        true
+      </Original>
+      <Expanded>
+        true
+      </Expanded>
+    </Expression>
+    <Expression success="false" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
+      <Original>
+        {Unknown expression after the reported line}
+      </Original>
+      <Expanded>
+        {Unknown expression after the reported line}
+      </Expanded>
+      <Exception filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
+        Uncaught exception should fail!
+      </Exception>
+    </Expression>
+    <OverallResult success="true" skips="0"/>
+  </TestCase>
+  <TestCase name="Testing checked-if 5" tags="[!shouldfail][checked-if]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
+    <Expression success="false" type="CHECKED_ELSE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
+      <Original>
+        false
+      </Original>
+      <Expanded>
+        false
+      </Expanded>
+    </Expression>
+    <Expression success="false" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
+      <Original>
+        {Unknown expression after the reported line}
+      </Original>
+      <Expanded>
+        {Unknown expression after the reported line}
+      </Expanded>
+      <Exception filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
+        Uncaught exception should fail!
+      </Exception>
+    </Expression>
+    <OverallResult success="true" skips="0"/>
+  </TestCase>
   <TestCase name="The NO_FAIL macro reports a failure but does not fail the test" tags="[messages]" filename="tests/<exe-name>/UsageTests/Message.tests.cpp" >
     <Expression success="false" type="CHECK_NOFAIL" filename="tests/<exe-name>/UsageTests/Message.tests.cpp" >
       <Original>
@@ -21198,6 +21256,6 @@ b1!
     </Section>
     <OverallResult success="true" skips="0"/>
   </TestCase>
-  <OverallResults successes="2048" failures="145" expectedFailures="32" skips="12"/>
-  <OverallResultsCases successes="308" failures="84" expectedFailures="11" skips="6"/>
+  <OverallResults successes="2049" failures="145" expectedFailures="35" skips="12"/>
+  <OverallResultsCases successes="308" failures="84" expectedFailures="14" skips="6"/>
 </Catch2TestRun>
diff --git a/tests/SelfTest/Baselines/xml.sw.multi.approved.txt b/tests/SelfTest/Baselines/xml.sw.multi.approved.txt
index 41dc8cb315..53afdef42e 100644
--- a/tests/SelfTest/Baselines/xml.sw.multi.approved.txt
+++ b/tests/SelfTest/Baselines/xml.sw.multi.approved.txt
@@ -8619,6 +8619,20 @@ C
     </Expression>
     <OverallResult success="false" skips="0"/>
   </TestCase>
+  <TestCase name="Incomplete AssertionHandler" tags="[!shouldfail][assertion-handler]" filename="tests/<exe-name>/IntrospectiveTests/AssertionHandler.tests.cpp" >
+    <Expression success="false" type="REQUIRE" filename="tests/<exe-name>/IntrospectiveTests/AssertionHandler.tests.cpp" >
+      <Original>
+        Dummy
+      </Original>
+      <Expanded>
+        Dummy
+      </Expanded>
+      <Exception filename="tests/<exe-name>/IntrospectiveTests/AssertionHandler.tests.cpp" >
+        Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE
+      </Exception>
+    </Expression>
+    <OverallResult success="true" skips="0"/>
+  </TestCase>
   <TestCase name="Inequality checks that should fail" tags="[!shouldfail][.][failing]" filename="tests/<exe-name>/UsageTests/Condition.tests.cpp" >
     <Expression success="false" type="CHECK" filename="tests/<exe-name>/UsageTests/Condition.tests.cpp" >
       <Original>
@@ -14547,6 +14561,50 @@ Message from section two
     <Failure filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" />
     <OverallResult success="true" skips="0"/>
   </TestCase>
+  <TestCase name="Testing checked-if 4" tags="[!shouldfail][checked-if]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
+    <Expression success="true" type="CHECKED_ELSE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
+      <Original>
+        true
+      </Original>
+      <Expanded>
+        true
+      </Expanded>
+    </Expression>
+    <Expression success="false" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
+      <Original>
+        {Unknown expression after the reported line}
+      </Original>
+      <Expanded>
+        {Unknown expression after the reported line}
+      </Expanded>
+      <Exception filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
+        Uncaught exception should fail!
+      </Exception>
+    </Expression>
+    <OverallResult success="true" skips="0"/>
+  </TestCase>
+  <TestCase name="Testing checked-if 5" tags="[!shouldfail][checked-if]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
+    <Expression success="false" type="CHECKED_ELSE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
+      <Original>
+        false
+      </Original>
+      <Expanded>
+        false
+      </Expanded>
+    </Expression>
+    <Expression success="false" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
+      <Original>
+        {Unknown expression after the reported line}
+      </Original>
+      <Expanded>
+        {Unknown expression after the reported line}
+      </Expanded>
+      <Exception filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
+        Uncaught exception should fail!
+      </Exception>
+    </Expression>
+    <OverallResult success="true" skips="0"/>
+  </TestCase>
   <TestCase name="The NO_FAIL macro reports a failure but does not fail the test" tags="[messages]" filename="tests/<exe-name>/UsageTests/Message.tests.cpp" >
     <Expression success="false" type="CHECK_NOFAIL" filename="tests/<exe-name>/UsageTests/Message.tests.cpp" >
       <Original>
@@ -21197,6 +21255,6 @@ b1!
     </Section>
     <OverallResult success="true" skips="0"/>
   </TestCase>
-  <OverallResults successes="2048" failures="145" expectedFailures="32" skips="12"/>
-  <OverallResultsCases successes="308" failures="84" expectedFailures="11" skips="6"/>
+  <OverallResults successes="2049" failures="145" expectedFailures="35" skips="12"/>
+  <OverallResultsCases successes="308" failures="84" expectedFailures="14" skips="6"/>
 </Catch2TestRun>
diff --git a/tests/SelfTest/IntrospectiveTests/AssertionHandler.tests.cpp b/tests/SelfTest/IntrospectiveTests/AssertionHandler.tests.cpp
new file mode 100644
index 0000000000..ab09607450
--- /dev/null
+++ b/tests/SelfTest/IntrospectiveTests/AssertionHandler.tests.cpp
@@ -0,0 +1,17 @@
+
+//              Copyright Catch2 Authors
+// Distributed under the Boost Software License, Version 1.0.
+//   (See accompanying file LICENSE.txt or copy at
+//        https://www.boost.org/LICENSE_1_0.txt)
+
+// SPDX-License-Identifier: BSL-1.0
+
+#include <catch2/catch_test_macros.hpp>
+
+TEST_CASE( "Incomplete AssertionHandler", "[assertion-handler][!shouldfail]" ) {
+    Catch::AssertionHandler catchAssertionHandler(
+        "REQUIRE"_catch_sr,
+        CATCH_INTERNAL_LINEINFO,
+        "Dummy",
+        Catch::ResultDisposition::Normal );
+}
diff --git a/tests/SelfTest/UsageTests/Misc.tests.cpp b/tests/SelfTest/UsageTests/Misc.tests.cpp
index 6c1fd68f44..7f06704b41 100644
--- a/tests/SelfTest/UsageTests/Misc.tests.cpp
+++ b/tests/SelfTest/UsageTests/Misc.tests.cpp
@@ -217,6 +217,18 @@ TEST_CASE("Testing checked-if 3", "[checked-if][!shouldfail]") {
     SUCCEED();
 }
 
+[[noreturn]]
+TEST_CASE("Testing checked-if 4", "[checked-if][!shouldfail]") {
+    CHECKED_ELSE(true) {}
+    throw std::runtime_error("Uncaught exception should fail!");
+}
+
+[[noreturn]]
+TEST_CASE("Testing checked-if 5", "[checked-if][!shouldfail]") {
+    CHECKED_ELSE(false) {}
+    throw std::runtime_error("Uncaught exception should fail!");
+}
+
 TEST_CASE( "xmlentitycheck" ) {
     SECTION( "embedded xml: <test>it should be possible to embed xml characters, such as <, \" or &, or even whole <xml>documents</xml> within an attribute</test>" ) {
         SUCCEED(); // We need this here to stop it failing due to no tests

{"runtests": {"run": "PASS", "test": "FAIL", "fix": "PASS"}, "approvaltests": {"run": "PASS", "test": "FAIL", "fix": "PASS"}}
{"testspecs::nomatchedtestsfail": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "randomtestordering": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "list::reporters::output": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "libidentitytest": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wfloat_equal": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "reporters:rngseed:compact": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "reporters:rngseed:xml": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wunused_function": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "unmatchedoutputfilter": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wmissing_declarations": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "filenameastagsmatching": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "list::tests::xmloutput": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wmismatched_tags": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "list::tags::exitcode": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "warnings::unmatchedtestspecisaccepted": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "reporters:filters:xml": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "list::tests::output": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "list::listeners::xmloutput": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "escapespecialcharactersintestnames": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wold_style_cast": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wstrict_aliasing": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wparentheses": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "warnings::multiplewarningscanbespecified": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "noassertions": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "reporters::reporterspecificcolouroverridesdefaultcolour": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wredundant_decls": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "benchmarking::failurereporting::failedassertion": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "errorhandling::invalidtestspecexitsearly": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wextra_semi": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wundef": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "multireporter::capturingreportersdontpropagatestdout": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "multireporter::noncapturingreporterspropagatestdout": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "reporters:rngseed:console": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "testspecs::overridefailurewithnomatchedtests": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wdeprecated": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "testspecs::combiningmatchingandnonmatchingisok-2": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "testsinfile::escapespecialcharacters": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "testsinfile::invalidtestnames-1": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "filteredsection-2": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "list::tags::xmloutput": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "colours::colourmodecanbeexplicitlysettoansi": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "reporters:filters:console": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "reporters::junit::namespacesarenormalized": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wuninitialized": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wmismatched_new_delete": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "reporters:rngseed:junit": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wexceptions": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "reporters:filters:junit": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "filteredsection-1": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "versioncheck": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wunused_parameter": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "benchmarking::failurereporting::failmacro": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "reporters:filters:sonarqube": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "checkconvenienceheaders": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "list::tags::output": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__winit_self": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wextra": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "list::listeners::exitcode": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "reporters:filters:compact": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wpedantic": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "testspecs::warnunmatchedtestspecfailswithunmatchedtestspec": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "benchmarking::failurereporting::shouldfailisrespected": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wvla": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wall": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "negativespecnohiddentests": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "outputs::dashasoutlocationsendsoutputtostdout": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "filteredsection::generatorsdontcauseinfiniteloop-2": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wnull_dereference": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "testspecs::combiningmatchingandnonmatchingisok-1": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wmissing_braces": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "list::tests::exitcode": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "reporters:rngseed:sonarqube": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "reporters:rngseed:tap": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "reporters:filters:tap": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "list::tests::quiet": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "testsinfile::simplespecs": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "reporters::dashaslocationinreporterspecsendsoutputtostdout": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wc__20_compat": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__woverloaded_virtual": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wcast_align": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wmisleading_indentation": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "regressioncheck-1670": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wshadow": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "list::reporters::exitcode": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "testspecs::overrideallskipfailure": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wmissing_noreturn": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "filenameastagstest": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__ffile_prefix_map__home_catch2__": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "testspecs::nonmatchingtestspecisroundtrippable": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wunused": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "list::listeners::output": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wsuggest_override": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "benchmarking::skipbenchmarkmacros": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "reporters::unrecognizedoptioninspeccauseserror": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wcatch_value": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "tagalias": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "list::reporters::xmloutput": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "benchmarking::failurereporting::throwingbenchmark": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "filteredsection::generatorsdontcauseinfiniteloop-1": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "have_flag__wreorder": {"run": "PASS", "test": "PASS", "fix": "PASS"}}
{"passed_count": 102, "failed_count": 14, "skipped_count": 0, "passed_tests": ["testspecs::nomatchedtestsfail", "randomtestordering", "libidentitytest", "have_flag__wfloat_equal", "reporters:rngseed:compact", "reporters:rngseed:xml", "unmatchedoutputfilter", "have_flag__wmissing_declarations", "filenameastagsmatching", "have_flag__wmismatched_tags", "list::tests::output", "have_flag__wold_style_cast", "have_flag__wstrict_aliasing", "noassertions", "benchmarking::failurereporting::failedassertion", "reporters:rngseed:console", "runtests", "testspecs::combiningmatchingandnonmatchingisok-2", "testsinfile::escapespecialcharacters", "testsinfile::invalidtestnames-1", "filteredsection-2", "list::tags::xmloutput", "colours::colourmodecanbeexplicitlysettoansi", "reporters:filters:console", "have_flag__wuninitialized", "have_flag__wmismatched_new_delete", "have_flag__wexceptions", "filteredsection-1", "benchmarking::failurereporting::failmacro", "reporters:filters:sonarqube", "have_flag__winit_self", "have_flag__wextra", "list::listeners::exitcode", "reporters:filters:compact", "approvaltests", "testspecs::warnunmatchedtestspecfailswithunmatchedtestspec", "benchmarking::failurereporting::shouldfailisrespected", "have_flag__wvla", "have_flag__wall", "negativespecnohiddentests", "outputs::dashasoutlocationsendsoutputtostdout", "filteredsection::generatorsdontcauseinfiniteloop-2", "have_flag__wnull_dereference", "testspecs::combiningmatchingandnonmatchingisok-1", "have_flag__wmissing_braces", "reporters:filters:tap", "testsinfile::simplespecs", "reporters::dashaslocationinreporterspecsendsoutputtostdout", "have_flag__wcast_align", "have_flag__wmisleading_indentation", "regressioncheck-1670", "have_flag__wmissing_noreturn", "list::listeners::output", "have_flag__wsuggest_override", "benchmarking::skipbenchmarkmacros", "reporters::unrecognizedoptioninspeccauseserror", "tagalias", "have_flag__wreorder", "list::reporters::output", "have_flag__wunused_function", "list::tests::xmloutput", "list::tags::exitcode", "warnings::unmatchedtestspecisaccepted", "reporters:filters:xml", "list::listeners::xmloutput", "escapespecialcharactersintestnames", "have_flag__wparentheses", "warnings::multiplewarningscanbespecified", "reporters::reporterspecificcolouroverridesdefaultcolour", "have_flag__wredundant_decls", "errorhandling::invalidtestspecexitsearly", "have_flag__wextra_semi", "have_flag__wundef", "multireporter::capturingreportersdontpropagatestdout", "multireporter::noncapturingreporterspropagatestdout", "testspecs::overridefailurewithnomatchedtests", "have_flag__wdeprecated", "reporters::junit::namespacesarenormalized", "reporters:rngseed:junit", "reporters:filters:junit", "versioncheck", "have_flag__wunused_parameter", "checkconvenienceheaders", "list::tags::output", "have_flag__wpedantic", "list::tests::exitcode", "reporters:rngseed:sonarqube", "reporters:rngseed:tap", "list::tests::quiet", "have_flag__wc__20_compat", "have_flag__woverloaded_virtual", "have_flag__wshadow", "list::reporters::exitcode", "testspecs::overrideallskipfailure", "filenameastagstest", "have_flag__ffile_prefix_map__home_catch2__", "testspecs::nonmatchingtestspecisroundtrippable", "have_flag__wunused", "have_flag__wcatch_value", "list::reporters::xmloutput", "benchmarking::failurereporting::throwingbenchmark", "filteredsection::generatorsdontcauseinfiniteloop-1"], "failed_tests": ["have_flag__wdeprecated_register", "have_flag__wdangling", "have_flag__wsuggest_destructor_override", "have_flag__wglobal_constructors", "have_flag__wmissing_prototypes", "have_flag__wreturn_std_move", "have_flag__wabsolute_value", "have_flag__wweak_vtables", "have_flag__wunneeded_internal_declaration", "have_flag__wmismatched_return_types", "have_flag__wcall_to_pure_virtual_from_ctor_dtor", "have_flag__wunreachable_code_aggressive", "have_flag__wmissing_variable_declarations", "have_flag__wexit_time_destructors"], "skipped_tests": []}
{"passed_count": 100, "failed_count": 16, "skipped_count": 0, "passed_tests": ["testspecs::nomatchedtestsfail", "randomtestordering", "libidentitytest", "have_flag__wfloat_equal", "reporters:rngseed:compact", "reporters:rngseed:xml", "unmatchedoutputfilter", "have_flag__wmissing_declarations", "filenameastagsmatching", "have_flag__wmismatched_tags", "list::tests::output", "have_flag__wold_style_cast", "have_flag__wstrict_aliasing", "noassertions", "benchmarking::failurereporting::failedassertion", "reporters:rngseed:console", "testspecs::combiningmatchingandnonmatchingisok-2", "testsinfile::escapespecialcharacters", "testsinfile::invalidtestnames-1", "filteredsection-2", "list::tags::xmloutput", "colours::colourmodecanbeexplicitlysettoansi", "reporters:filters:console", "have_flag__wuninitialized", "have_flag__wmismatched_new_delete", "have_flag__wexceptions", "filteredsection-1", "benchmarking::failurereporting::failmacro", "reporters:filters:sonarqube", "have_flag__winit_self", "have_flag__wextra", "list::listeners::exitcode", "reporters:filters:compact", "testspecs::warnunmatchedtestspecfailswithunmatchedtestspec", "benchmarking::failurereporting::shouldfailisrespected", "have_flag__wvla", "have_flag__wall", "negativespecnohiddentests", "outputs::dashasoutlocationsendsoutputtostdout", "filteredsection::generatorsdontcauseinfiniteloop-2", "have_flag__wnull_dereference", "testspecs::combiningmatchingandnonmatchingisok-1", "have_flag__wmissing_braces", "reporters:filters:tap", "testsinfile::simplespecs", "reporters::dashaslocationinreporterspecsendsoutputtostdout", "have_flag__wcast_align", "have_flag__wmisleading_indentation", "regressioncheck-1670", "have_flag__wmissing_noreturn", "list::listeners::output", "have_flag__wsuggest_override", "benchmarking::skipbenchmarkmacros", "reporters::unrecognizedoptioninspeccauseserror", "tagalias", "have_flag__wreorder", "list::reporters::output", "have_flag__wunused_function", "list::tests::xmloutput", "list::tags::exitcode", "warnings::unmatchedtestspecisaccepted", "reporters:filters:xml", "list::listeners::xmloutput", "escapespecialcharactersintestnames", "have_flag__wparentheses", "warnings::multiplewarningscanbespecified", "reporters::reporterspecificcolouroverridesdefaultcolour", "have_flag__wredundant_decls", "errorhandling::invalidtestspecexitsearly", "have_flag__wextra_semi", "have_flag__wundef", "multireporter::capturingreportersdontpropagatestdout", "multireporter::noncapturingreporterspropagatestdout", "testspecs::overridefailurewithnomatchedtests", "have_flag__wdeprecated", "reporters::junit::namespacesarenormalized", "reporters:rngseed:junit", "reporters:filters:junit", "versioncheck", "have_flag__wunused_parameter", "checkconvenienceheaders", "list::tags::output", "have_flag__wpedantic", "list::tests::exitcode", "reporters:rngseed:sonarqube", "reporters:rngseed:tap", "list::tests::quiet", "have_flag__wc__20_compat", "have_flag__woverloaded_virtual", "have_flag__wshadow", "list::reporters::exitcode", "testspecs::overrideallskipfailure", "filenameastagstest", "have_flag__ffile_prefix_map__home_catch2__", "testspecs::nonmatchingtestspecisroundtrippable", "have_flag__wunused", "have_flag__wcatch_value", "list::reporters::xmloutput", "benchmarking::failurereporting::throwingbenchmark", "filteredsection::generatorsdontcauseinfiniteloop-1"], "failed_tests": ["have_flag__wdeprecated_register", "have_flag__wdangling", "approvaltests", "have_flag__wsuggest_destructor_override", "have_flag__wglobal_constructors", "have_flag__wmissing_prototypes", "have_flag__wreturn_std_move", "have_flag__wabsolute_value", "have_flag__wweak_vtables", "have_flag__wunneeded_internal_declaration", "have_flag__wmismatched_return_types", "runtests", "have_flag__wcall_to_pure_virtual_from_ctor_dtor", "have_flag__wunreachable_code_aggressive", "have_flag__wmissing_variable_declarations", "have_flag__wexit_time_destructors"], "skipped_tests": []}
{"passed_count": 102, "failed_count": 14, "skipped_count": 0, "passed_tests": ["testspecs::nomatchedtestsfail", "randomtestordering", "libidentitytest", "have_flag__wfloat_equal", "reporters:rngseed:compact", "reporters:rngseed:xml", "unmatchedoutputfilter", "have_flag__wmissing_declarations", "filenameastagsmatching", "have_flag__wmismatched_tags", "list::tests::output", "have_flag__wold_style_cast", "have_flag__wstrict_aliasing", "noassertions", "benchmarking::failurereporting::failedassertion", "reporters:rngseed:console", "runtests", "testspecs::combiningmatchingandnonmatchingisok-2", "testsinfile::escapespecialcharacters", "testsinfile::invalidtestnames-1", "filteredsection-2", "list::tags::xmloutput", "colours::colourmodecanbeexplicitlysettoansi", "reporters:filters:console", "have_flag__wuninitialized", "have_flag__wmismatched_new_delete", "have_flag__wexceptions", "filteredsection-1", "benchmarking::failurereporting::failmacro", "reporters:filters:sonarqube", "have_flag__winit_self", "have_flag__wextra", "list::listeners::exitcode", "reporters:filters:compact", "approvaltests", "testspecs::warnunmatchedtestspecfailswithunmatchedtestspec", "benchmarking::failurereporting::shouldfailisrespected", "have_flag__wvla", "have_flag__wall", "negativespecnohiddentests", "outputs::dashasoutlocationsendsoutputtostdout", "filteredsection::generatorsdontcauseinfiniteloop-2", "have_flag__wnull_dereference", "testspecs::combiningmatchingandnonmatchingisok-1", "have_flag__wmissing_braces", "reporters:filters:tap", "testsinfile::simplespecs", "reporters::dashaslocationinreporterspecsendsoutputtostdout", "have_flag__wcast_align", "have_flag__wmisleading_indentation", "regressioncheck-1670", "have_flag__wmissing_noreturn", "list::listeners::output", "have_flag__wsuggest_override", "benchmarking::skipbenchmarkmacros", "reporters::unrecognizedoptioninspeccauseserror", "tagalias", "have_flag__wreorder", "list::reporters::output", "have_flag__wunused_function", "list::tests::xmloutput", "list::tags::exitcode", "warnings::unmatchedtestspecisaccepted", "reporters:filters:xml", "list::listeners::xmloutput", "escapespecialcharactersintestnames", "have_flag__wparentheses", "warnings::multiplewarningscanbespecified", "reporters::reporterspecificcolouroverridesdefaultcolour", "have_flag__wredundant_decls", "errorhandling::invalidtestspecexitsearly", "have_flag__wextra_semi", "have_flag__wundef", "multireporter::capturingreportersdontpropagatestdout", "multireporter::noncapturingreporterspropagatestdout", "testspecs::overridefailurewithnomatchedtests", "have_flag__wdeprecated", "reporters::junit::namespacesarenormalized", "reporters:rngseed:junit", "reporters:filters:junit", "versioncheck", "have_flag__wunused_parameter", "checkconvenienceheaders", "list::tags::output", "have_flag__wpedantic", "list::tests::exitcode", "reporters:rngseed:sonarqube", "reporters:rngseed:tap", "list::tests::quiet", "have_flag__wc__20_compat", "have_flag__woverloaded_virtual", "have_flag__wshadow", "list::reporters::exitcode", "testspecs::overrideallskipfailure", "filenameastagstest", "have_flag__ffile_prefix_map__home_catch2__", "testspecs::nonmatchingtestspecisroundtrippable", "have_flag__wunused", "have_flag__wcatch_value", "list::reporters::xmloutput", "benchmarking::failurereporting::throwingbenchmark", "filteredsection::generatorsdontcauseinfiniteloop-1"], "failed_tests": ["have_flag__wdeprecated_register", "have_flag__wdangling", "have_flag__wsuggest_destructor_override", "have_flag__wglobal_constructors", "have_flag__wmissing_prototypes", "have_flag__wreturn_std_move", "have_flag__wabsolute_value", "have_flag__wweak_vtables", "have_flag__wunneeded_internal_declaration", "have_flag__wmismatched_return_types", "have_flag__wcall_to_pure_virtual_from_ctor_dtor", "have_flag__wunreachable_code_aggressive", "have_flag__wmissing_variable_declarations", "have_flag__wexit_time_destructors"], "skipped_tests": []}