Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
path: root/src/catch2/internal
diff options
context:
space:
mode:
authorJayesh Badwaik (FZ Juelich)2023-02-08 12:40:55 +0100
committerJayesh Badwaik (FZ Juelich)2023-02-08 12:40:55 +0100
commit644294df60b45cb9ac150cff8ffe49c119cdb349 (patch)
tree354681317676725f973bf446b19c354cff46a4ec /src/catch2/internal
parentf3c0a3cd091aba8341a77e5c8580e5697f0e6892 (diff)
downloadcatch3-644294df60b45cb9ac150cff8ffe49c119cdb349.tar.gz
Suppress declared_but_not_referenced warning for NVHPC
Catch2 suppresses unused variable and equivalent warnings in a couple of places, but most importantly, in the declaration of autoRegistrar in test registry. This warning gets triggered by NVHPC compiler. The current patch adds three macros, namely: CATCH_INTERNAL_START_WARNINGS_SUPPRESSION CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION for the NVHPC Compiler which in particular prevents that warning from occurring. The compiler is detected completely separately from the other compilers in this patch, because from what I found out, NVHPC defines __GNUC__ as well for some reason. (I suspect because it advertises itself as GNU compatible.) We also add a condition to make sure that the `__GNUC__` path is not taken by the NVHPC compiler.
Diffstat (limited to 'src/catch2/internal')
-rw-r--r--src/catch2/internal/catch_compiler_capabilities.hpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/catch2/internal/catch_compiler_capabilities.hpp b/src/catch2/internal/catch_compiler_capabilities.hpp
index 76c5696b..42631a5f 100644
--- a/src/catch2/internal/catch_compiler_capabilities.hpp
+++ b/src/catch2/internal/catch_compiler_capabilities.hpp
@@ -41,7 +41,7 @@
// Only GCC compiler should be used in this block, so other compilers trying to
// mask themselves as GCC should be ignored.
-#if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && !defined(__CUDACC__) && !defined(__LCC__)
+#if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && !defined(__CUDACC__) && !defined(__LCC__) && !defined(__NVCOMPILER)
# define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION _Pragma( "GCC diagnostic push" )
# define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION _Pragma( "GCC diagnostic pop" )
@@ -60,6 +60,12 @@
#endif
+#if defined(__NVCOMPILER)
+# define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION _Pragma( "diag push" )
+# define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION _Pragma( "diag pop" )
+# define CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS _Pragma( "diag_suppress declared_but_not_referenced" )
+#endif
+
#if defined(__CUDACC__) && !defined(__clang__)
# ifdef __NVCC_DIAG_PRAGMA_SUPPORT__
// New pragmas introduced in CUDA 11.5+