Fix comma-subscript warning suppression to only target GCC 10.1+

Fixes #2416
This commit is contained in:
Martin Hořeňovský 2022-06-06 01:04:07 +02:00
parent e33de8fc05
commit 20d413b8b6
No known key found for this signature in database
GPG Key ID: DE48307B8B0D381A

View File

@ -241,17 +241,19 @@ std::ostream& operator<<(std::ostream& out, helper_1436<T1, T2> const& helper) {
return out;
}
// clang can handle GCC's diagnostic pragma
#if defined( __GNUG__ ) || defined(__clang__)
# pragma GCC diagnostic push
#endif
// Clang and gcc have different names for this warning, and clang also
// warns about an unused value
#if defined(__GNUG__) && !defined(__clang__)
#pragma GCC diagnostic push
#if defined( __GNUG__ ) && !defined( __clang__ ) && \
( __GNUG__ > 10 || ( __GNUG__ == 10 && __GNUC_MINOR__ >= 1 ) )
#pragma GCC diagnostic ignored "-Wcomma-subscript"
#elif defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-comma-subscript"
#pragma clang diagnostic ignored "-Wunused-value"
#endif
TEST_CASE("CAPTURE can deal with complex expressions involving commas", "[messages][capture]") {
CAPTURE(std::vector<int>{1, 2, 3}[0, 1, 2],
std::vector<int>{1, 2, 3}[(0, 1)],
@ -261,9 +263,8 @@ TEST_CASE("CAPTURE can deal with complex expressions involving commas", "[messag
CAPTURE( (1, 2), (2, 3) );
SUCCEED();
}
#ifdef __GNUG__
#pragma GCC diagnostic pop
#if defined( __GNUG__ ) || defined(__clang__)
# pragma GCC diagnostic pop
#endif
TEST_CASE("CAPTURE parses string and character constants", "[messages][capture]") {