diff --git a/llvm/include/llvm/ADT/StringRef.h b/llvm/include/llvm/ADT/StringRef.h --- a/llvm/include/llvm/ADT/StringRef.h +++ b/llvm/include/llvm/ADT/StringRef.h @@ -78,11 +78,11 @@ // Constexpr version of std::strlen. static constexpr size_t strLen(const char *Str) { -#if __cplusplus > 201402L - return std::char_traits::length(Str); -#elif __has_builtin(__builtin_strlen) || defined(__GNUC__) || \ +#if __has_builtin(__builtin_strlen) || defined(__GNUC__) || \ (defined(_MSC_VER) && _MSC_VER >= 1916) return __builtin_strlen(Str); +#elif __cplusplus > 201402L && !defined(_MSC_VER) + return std::char_traits::length(Str); #else const char *Begin = Str; while (*Str != '\0')