From 07cda033c12bbf0be3f1f360b18dd7bb77104f9c Mon Sep 17 00:00:00 2001 From: Seyong Lee Date: Thu, 23 Jul 2026 15:03:07 -0400 Subject: [PATCH 1/2] This PR adds an OpenACC variant of mdspan default_precondition_violation_handler() function, which fixes the unsupported fprintf error in Kokkos PR #9345. Signed-off-by: Seyong Lee --- include/experimental/__p0009_bits/config.hpp | 6 ++++++ include/experimental/__p0009_bits/macros.hpp | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/include/experimental/__p0009_bits/config.hpp b/include/experimental/__p0009_bits/config.hpp index 3102aa54..1494ea22 100644 --- a/include/experimental/__p0009_bits/config.hpp +++ b/include/experimental/__p0009_bits/config.hpp @@ -99,6 +99,12 @@ static_assert(MDSPAN_IMPL_CPLUSPLUS >= MDSPAN_CXX_STD_14, "mdspan requires C++14 # endif #endif +#ifndef MDSPAN_IMPL_HAS_OPENACC +# if defined(_OPENACC) +# define MDSPAN_IMPL_HAS_OPENACC _OPENACC +# endif +#endif + #ifndef MDSPAN_IMPL_HAS_CPP_ATTRIBUTE # ifndef __has_cpp_attribute # define MDSPAN_IMPL_HAS_CPP_ATTRIBUTE(x) 0 diff --git a/include/experimental/__p0009_bits/macros.hpp b/include/experimental/__p0009_bits/macros.hpp index 7f288dc9..a4db6328 100644 --- a/include/experimental/__p0009_bits/macros.hpp +++ b/include/experimental/__p0009_bits/macros.hpp @@ -24,7 +24,7 @@ #if defined(MDSPAN_IMPL_HAS_SYCL) #include // sycl::ext::oneapi::experimental::printf #endif -#if defined(MDSPAN_IMPL_HAS_CUDA) || defined(MDSPAN_IMPL_HAS_HIP) || defined(MDSPAN_IMPL_HAS_SYCL) +#if defined(MDSPAN_IMPL_HAS_CUDA) || defined(MDSPAN_IMPL_HAS_HIP) || defined(MDSPAN_IMPL_HAS_SYCL) || defined(MDSPAN_IMPL_HAS_OPENACC) #include "assert.h" #endif @@ -130,6 +130,14 @@ MDSPAN_FUNCTION inline void default_precondition_violation_handler(const char* c #endif assert(0); } +#elif defined(MDSPAN_IMPL_HAS_OPENACC) +MDSPAN_FUNCTION inline void default_precondition_violation_handler(const char* cond, const char* file, unsigned line) +{ + (void) cond; + (void) file; + (void) line; + assert(0); +} #else MDSPAN_FUNCTION inline void default_precondition_violation_handler(const char* cond, const char* file, unsigned line) { From 8ac12a1bd62bf584f6c42b476e9a7999b0581d9f Mon Sep 17 00:00:00 2001 From: Seyong Lee Date: Thu, 23 Jul 2026 16:22:52 -0400 Subject: [PATCH 2/2] Update include/experimental/__p0009_bits/macros.hpp applied the suggested change. Co-authored-by: Mark Hoemmen --- include/experimental/__p0009_bits/macros.hpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/include/experimental/__p0009_bits/macros.hpp b/include/experimental/__p0009_bits/macros.hpp index a4db6328..c15cfcbc 100644 --- a/include/experimental/__p0009_bits/macros.hpp +++ b/include/experimental/__p0009_bits/macros.hpp @@ -131,12 +131,9 @@ MDSPAN_FUNCTION inline void default_precondition_violation_handler(const char* c assert(0); } #elif defined(MDSPAN_IMPL_HAS_OPENACC) -MDSPAN_FUNCTION inline void default_precondition_violation_handler(const char* cond, const char* file, unsigned line) +MDSPAN_FUNCTION inline void default_precondition_violation_handler(const char* /* cond */, const char* /* file */, unsigned /* line */) { - (void) cond; - (void) file; - (void) line; - assert(0); + assert(false); } #else MDSPAN_FUNCTION inline void default_precondition_violation_handler(const char* cond, const char* file, unsigned line)