<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/include/internal/catch_compiler_capabilities.h, branch v2.13.6</title>
<subtitle>Progmasoft Catch3: an independently maintained C++17 test framework with a parallel runner, property checks, snapshots and structured results.</subtitle>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/'/>
<entry>
<title>Add lcc to the list of unwanted compilers that mimic gcc</title>
<updated>2021-04-04T12:05:39+00:00</updated>
<author>
<name>Pavel Kamenov</name>
</author>
<published>2021-03-30T06:25:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=4cb3220a8a648eb5af5c250c939ed49c648cfc04'/>
<id>4cb3220a8a648eb5af5c250c939ed49c648cfc04</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve detection of std::uncaught_exceptions support</title>
<updated>2020-10-06T09:07:53+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-10-06T09:07:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=e6f5e05ebcc46355fe737d8d747f8ed95edc99d1'/>
<id>e6f5e05ebcc46355fe737d8d747f8ed95edc99d1</id>
<content type='text'>
The problem was that Catch2 did not reliably include `&lt;exception&gt;`
before it checked for the feature test macro for
`std::uncaught_exceptions`. To avoid overhead of including
`&lt;exception&gt;` everywhere, the configuration check was split out
into a separate header.

Closes #2021
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The problem was that Catch2 did not reliably include `&lt;exception&gt;`
before it checked for the feature test macro for
`std::uncaught_exceptions`. To avoid overhead of including
`&lt;exception&gt;` everywhere, the configuration check was split out
into a separate header.

Closes #2021
</pre>
</div>
</content>
</entry>
<entry>
<title>Disable __builtin_constant_p when compiling with nvcc</title>
<updated>2020-09-18T14:07:18+00:00</updated>
<author>
<name>Will Pazner</name>
</author>
<published>2020-09-17T16:45:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=00db4fb4970a3f31900581b8018dd77cdbc8f2b4'/>
<id>00db4fb4970a3f31900581b8018dd77cdbc8f2b4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Issue 1992: Better c++17 std::byte detection</title>
<updated>2020-08-03T12:38:56+00:00</updated>
<author>
<name>Gregory Bond</name>
</author>
<published>2020-08-03T03:03:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=708487d201dad267a7846596f5830286dec2cde0'/>
<id>708487d201dad267a7846596f5830286dec2cde0</id>
<content type='text'>
This fixed buld errors for ubuntu-16 + clang and similar situations
where C++17 is supported in the compiler but not the default
C++ standard library.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixed buld errors for ubuntu-16 + clang and similar situations
where C++17 is supported in the compiler but not the default
C++ standard library.
</pre>
</div>
</content>
</entry>
<entry>
<title>Silence clang-tidy's hicpp-vararg (alias of coreguidelines vararg)</title>
<updated>2020-05-09T16:23:12+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-05-09T16:23:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=f0e596e2522f64451f6444edab5c59b8b9e8e082'/>
<id>f0e596e2522f64451f6444edab5c59b8b9e8e082</id>
<content type='text'>
Ideally, clang-tidy would be smart that if one alias of a warning
is suppressed, then the other one is suppressed as well, but as of
right now, it isn't. This means that for now we have to suppress
both aliases of this warning. Opened upstream issue to fix this:
https://bugs.llvm.org/show_bug.cgi?id=45859

Obviously, ideally clang-tidy would also not warn that we are calling
a vararg function when it is an unevaluated magic builtin, but that
also is not happening right now and I opened an issue for it:
https://bugs.llvm.org/show_bug.cgi?id=45860

Closes #1921
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ideally, clang-tidy would be smart that if one alias of a warning
is suppressed, then the other one is suppressed as well, but as of
right now, it isn't. This means that for now we have to suppress
both aliases of this warning. Opened upstream issue to fix this:
https://bugs.llvm.org/show_bug.cgi?id=45859

Obviously, ideally clang-tidy would also not warn that we are calling
a vararg function when it is an unevaluated magic builtin, but that
also is not happening right now and I opened an issue for it:
https://bugs.llvm.org/show_bug.cgi?id=45860

Closes #1921
</pre>
</div>
</content>
</entry>
<entry>
<title>Use macro to determine whether std::uncaught_exceptions is available</title>
<updated>2020-04-14T21:03:58+00:00</updated>
<author>
<name>John Else</name>
</author>
<published>2020-04-13T15:10:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=6fbe5efc717a72c9749c5590c96524e92cddeca6'/>
<id>6fbe5efc717a72c9749c5590c96524e92cddeca6</id>
<content type='text'>
Catch assumes std::uncaught_exceptions is available whenever C++17 is
available, but for macOS versions older than 10.12 this is not the case.

Instead of checking the C++ version, use a macro to check whether the
feature is available.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Catch assumes std::uncaught_exceptions is available whenever C++17 is
available, but for macOS versions older than 10.12 this is not the case.

Instead of checking the C++ version, use a macro to check whether the
feature is available.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove usage of __builtin_constant_p under IBM XL</title>
<updated>2020-04-10T18:55:23+00:00</updated>
<author>
<name>Andrew Gaspar</name>
</author>
<published>2020-04-09T23:52:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=035a0625964a2db0252719904f581d1072d691a1'/>
<id>035a0625964a2db0252719904f581d1072d691a1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Suppress clang-tidy warning about vararg usage in assertion macros</title>
<updated>2020-04-02T18:45:57+00:00</updated>
<author>
<name>Moritz Haase</name>
</author>
<published>2020-04-02T12:22:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=d399a308d04b885433396f4198c0cda999f28d77'/>
<id>d399a308d04b885433396f4198c0cda999f28d77</id>
<content type='text'>
CATCH_INTERNAL_IGNORE_BUT_WARN() introduced with b7b346c triggers
clang-tidy warning 'cppcoreguidelines-pro-type-vararg' for every usage
of assertion macros like CHECK() and REQUIRE(). Silence it via NOLINT
in the '#if defined(__clang__)' block only, as clang-tidy honors those.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CATCH_INTERNAL_IGNORE_BUT_WARN() introduced with b7b346c triggers
clang-tidy warning 'cppcoreguidelines-pro-type-vararg' for every usage
of assertion macros like CHECK() and REQUIRE(). Silence it via NOLINT
in the '#if defined(__clang__)' block only, as clang-tidy honors those.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix compilation error when lambdas are used in assertions</title>
<updated>2020-03-19T12:32:45+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-03-19T12:32:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=3a33315ff8e047b1ff46b1ee2a5be3fdd7fbac08'/>
<id>3a33315ff8e047b1ff46b1ee2a5be3fdd7fbac08</id>
<content type='text'>
This is a partial revert of b7b346c3e5603.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a partial revert of b7b346c3e5603.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make warnings in assertions fire for GCC/Clang again</title>
<updated>2020-03-19T08:45:41+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-03-18T19:59:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=b7b346c3e56030d19ac58d33326b69bbaf226552'/>
<id>b7b346c3e56030d19ac58d33326b69bbaf226552</id>
<content type='text'>
The old code caused warnings to fire under MSVC, and Clang &lt;3.8.
I could not find a GCC version where it worked, but I assume that it
did at some point.

This new code causes all of MSVC, GCC, Clang, in current versions,
to emit signed/unsigned comparison warning in test like this:

```cpp
TEST_CASE() {
    int32_t i = -1;
    uint32_t j = 1;
    REQUIRE(i != j);
}
```

Where previously only MSVC would emit the warning.

Fixes #1880
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The old code caused warnings to fire under MSVC, and Clang &lt;3.8.
I could not find a GCC version where it worked, but I assume that it
did at some point.

This new code causes all of MSVC, GCC, Clang, in current versions,
to emit signed/unsigned comparison warning in test like this:

```cpp
TEST_CASE() {
    int32_t i = -1;
    uint32_t j = 1;
    REQUIRE(i != j);
}
```

Where previously only MSVC would emit the warning.

Fixes #1880
</pre>
</div>
</content>
</entry>
</feed>
