Skip to content

Commit 1c4f52b

Browse files
authored
Suppress NVCC unused variable warnings (#2427)
Closes #2306
1 parent 231c58a commit 1c4f52b

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

src/catch2/internal/catch_compiler_capabilities.hpp

+6
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,12 @@
5757

5858
#endif
5959

60+
#if defined(__CUDACC__) && !defined(__clang__)
61+
# define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION _Pragma( "nv_diagnostic push" )
62+
# define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION _Pragma( "nv_diagnostic pop" )
63+
# define CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS _Pragma( "nv_diag_suppress 177" )
64+
#endif
65+
6066
#if defined(__clang__) && !defined(_MSC_VER)
6167

6268
# define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION _Pragma( "clang diagnostic push" )

src/catch2/internal/catch_test_registry.hpp

+4
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ struct AutoReg : Detail::NonCopyable {
7777
static void TestName(); \
7878
CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \
7979
CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
80+
CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \
8081
namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( Catch::makeTestInvoker( &TestName ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ __VA_ARGS__ } ); } /* NOLINT */ \
8182
CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \
8283
static void TestName()
@@ -87,13 +88,15 @@ struct AutoReg : Detail::NonCopyable {
8788
#define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, ... ) \
8889
CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \
8990
CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
91+
CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \
9092
namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( Catch::makeTestInvoker( &QualifiedMethod ), CATCH_INTERNAL_LINEINFO, "&" #QualifiedMethod, Catch::NameAndTags{ __VA_ARGS__ } ); } /* NOLINT */ \
9193
CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION
9294

9395
///////////////////////////////////////////////////////////////////////////////
9496
#define INTERNAL_CATCH_TEST_CASE_METHOD2( TestName, ClassName, ... )\
9597
CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \
9698
CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
99+
CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \
97100
namespace{ \
98101
struct TestName : INTERNAL_CATCH_REMOVE_PARENS(ClassName) { \
99102
void test(); \
@@ -110,6 +113,7 @@ struct AutoReg : Detail::NonCopyable {
110113
do { \
111114
CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \
112115
CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
116+
CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS \
113117
Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( Catch::makeTestInvoker( Function ), CATCH_INTERNAL_LINEINFO, Catch::StringRef(), Catch::NameAndTags{ __VA_ARGS__ } ); /* NOLINT */ \
114118
CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION \
115119
} while(false)

0 commit comments

Comments
 (0)