From c71f42cc2959de3de921fffb47d9ccd77e3e2350 Mon Sep 17 00:00:00 2001 From: "Jayesh Badwaik (FZ Juelich)" Date: Mon, 7 Jun 2021 12:28:16 +0200 Subject: [PATCH] Disable CATCH_INTERNAL_IGNORE_BUT_WARN for NVHPC Compilers - NVHPC's implementation of `__builtin_constant_p` has a bug which results in calls to the immediately evaluated lambda expressions to be reported as unevaluated lambdas. https://developer.nvidia.com/nvidia_bug/3321845. - Hence, we disable CATCH_INTERNAL_IGNORE_BUT_WARN for NVHPC Compilers --- src/catch2/internal/catch_compiler_capabilities.hpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/catch2/internal/catch_compiler_capabilities.hpp b/src/catch2/internal/catch_compiler_capabilities.hpp index 956fd13f..0684050b 100644 --- a/src/catch2/internal/catch_compiler_capabilities.hpp +++ b/src/catch2/internal/catch_compiler_capabilities.hpp @@ -71,8 +71,13 @@ // REQUIRE(std::string("12") + "34" == "1234") // ``` // +// Similarly, NVHPC's implementation of `__builtin_constant_p` has a bug which +// results in calls to the immediately evaluated lambda expressions to be +// reported as unevaluated lambdas. +// https://developer.nvidia.com/nvidia_bug/3321845. +// // Therefore, `CATCH_INTERNAL_IGNORE_BUT_WARN` is not implemented. -# if !defined(__ibmxl__) && !defined(__CUDACC__) +# if !defined(__ibmxl__) && !defined(__CUDACC__) && !defined( __NVCOMPILER ) # define CATCH_INTERNAL_IGNORE_BUT_WARN(...) (void)__builtin_constant_p(__VA_ARGS__) /* NOLINT(cppcoreguidelines-pro-type-vararg, hicpp-vararg) */ # endif