Skip to content

Commit

Permalink
Fix comma-subscript warning suppression to only target GCC 10.1+
Browse files Browse the repository at this point in the history
Fixes #2416
  • Loading branch information
horenmar committed Jun 5, 2022
1 parent e33de8f commit 20d413b
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions projects/SelfTest/UsageTests/Message.tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)],
Expand All @@ -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]") {
Expand Down

0 comments on commit 20d413b

Please sign in to comment.