From 46936d7a55938ede2d4fe6cab7322dcf70ba1a90 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Mon, 24 Feb 2025 07:00:51 -0800 Subject: [PATCH 1/2] Unblock RWC by extending the static call operator workaround --- stl/inc/yvals_core.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/stl/inc/yvals_core.h b/stl/inc/yvals_core.h index 1abaf85d260..b843a987f6e 100644 --- a/stl/inc/yvals_core.h +++ b/stl/inc/yvals_core.h @@ -2014,7 +2014,9 @@ compiler option, or define _ALLOW_RTCc_IN_STL to suppress this error. #define _STL_INTERNAL_STATIC_ASSERT(...) #endif // ^^^ !defined(_ENABLE_STL_INTERNAL_CHECK) ^^^ -#ifdef __CUDACC__ // TRANSITION, CUDA 12.4 doesn't have downlevel support for static call operators +#if defined(__CUDACC__) || (defined(__clang__) && __clang_major__ < 16) +// TRANSITION, CUDA 12.4 doesn't have downlevel support for static call operators +// TRANSITION, VSO-2397560, we don't generally attempt to support old versions of Clang #define _STATIC_CALL_OPERATOR #define _CONST_CALL_OPERATOR const #define _STATIC_LAMBDA From e9e29ea9b7d512529e5effed9edd8eb7685b11ba Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Mon, 24 Feb 2025 10:52:59 -0800 Subject: [PATCH 2/2] Improve comments. Co-authored-by: David Justo --- stl/inc/yvals_core.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stl/inc/yvals_core.h b/stl/inc/yvals_core.h index b843a987f6e..3525693fa21 100644 --- a/stl/inc/yvals_core.h +++ b/stl/inc/yvals_core.h @@ -2015,8 +2015,8 @@ compiler option, or define _ALLOW_RTCc_IN_STL to suppress this error. #endif // ^^^ !defined(_ENABLE_STL_INTERNAL_CHECK) ^^^ #if defined(__CUDACC__) || (defined(__clang__) && __clang_major__ < 16) -// TRANSITION, CUDA 12.4 doesn't have downlevel support for static call operators -// TRANSITION, VSO-2397560, we don't generally attempt to support old versions of Clang +// TRANSITION, CUDA 12.4 doesn't have downlevel support for static call operators. +// TRANSITION, VSO-2397560, temporary workaround for Real World Code relying on ancient Clang versions. #define _STATIC_CALL_OPERATOR #define _CONST_CALL_OPERATOR const #define _STATIC_LAMBDA