From 367d46408a2ae75295483aedac8f3753cf1d8d65 Mon Sep 17 00:00:00 2001 From: Joshua Batista Date: Thu, 28 May 2026 16:28:32 -0700 Subject: [PATCH 1/2] first attempt --- include/llvm/ADT/StringRef.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/llvm/ADT/StringRef.h b/include/llvm/ADT/StringRef.h index df58c78b53..95801f5fd3 100644 --- a/include/llvm/ADT/StringRef.h +++ b/include/llvm/ADT/StringRef.h @@ -576,7 +576,7 @@ namespace llvm { // allowed), but (b) misclassifies the the construction as nothrow. Newer libc++ // releases reject user specializations of this trait outright, and also compute // the trait correctly without help. -#if !defined(_LIBCPP_VERSION) +#if !defined(_LIBCPP_VERSION) && (!defined(_MSC_VER) || _MSC_VER < 1951) namespace std { template<> struct is_nothrow_constructible From ef2c79c1c8e06133a48c55f5d1c851b98d1b9c62 Mon Sep 17 00:00:00 2001 From: Joshua Batista Date: Thu, 28 May 2026 16:55:43 -0700 Subject: [PATCH 2/2] update condition --- include/llvm/ADT/StringRef.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/llvm/ADT/StringRef.h b/include/llvm/ADT/StringRef.h index 95801f5fd3..9b44d994fc 100644 --- a/include/llvm/ADT/StringRef.h +++ b/include/llvm/ADT/StringRef.h @@ -576,7 +576,8 @@ namespace llvm { // allowed), but (b) misclassifies the the construction as nothrow. Newer libc++ // releases reject user specializations of this trait outright, and also compute // the trait correctly without help. -#if !defined(_LIBCPP_VERSION) && (!defined(_MSC_VER) || _MSC_VER < 1951) +#if !defined(_LIBCPP_VERSION) && \ + !(defined(_MSVC_STL_UPDATE) && _MSVC_STL_UPDATE >= 202604L) namespace std { template<> struct is_nothrow_constructible