From 64546dfd3e4a418e1f279b37f8377025c91633ae Mon Sep 17 00:00:00 2001 From: Akira Hatanaka Date: Thu, 15 Jan 2026 13:45:27 -0800 Subject: [PATCH] Stop calling a constexpr function to evaluate the boolean condition of std::enable_if (#176241) This is an attempt to fix a windows build failure after 6fac9b143252bec62c1a5ee9fc1b0f214e7f2f8e. --- clang/lib/AST/AttrImpl.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/clang/lib/AST/AttrImpl.cpp b/clang/lib/AST/AttrImpl.cpp index 3d994e06d234..0c7e81f1749c 100644 --- a/clang/lib/AST/AttrImpl.cpp +++ b/clang/lib/AST/AttrImpl.cpp @@ -289,21 +289,20 @@ namespace { // - DeclArgument // - OMPTraitInfoArgument // - VariadicOMPInteropInfoArgument -template constexpr bool useDefaultEquality() { - return std::is_same_v || std::is_same_v || - std::is_same_v || std::is_same_v || - std::is_same_v || std::is_same_v || - std::is_enum_v || std::is_integral_v; -} +#define USE_DEFAULT_EQUALITY \ + (std::is_same_v || std::is_same_v || \ + std::is_same_v || std::is_same_v || \ + std::is_same_v || std::is_same_v || \ + std::is_enum_v || std::is_integral_v) template -typename std::enable_if_t(), bool> +typename std::enable_if_t equalAttrArgs(T A, T B, StructuralEquivalenceContext &Context) { return false; } template -typename std::enable_if_t(), bool> +typename std::enable_if_t equalAttrArgs(T A1, T A2, StructuralEquivalenceContext &Context) { return A1 == A2; }