[clang] Stop calling a constexpr function to evaluate the boolean condition of (PR #176241)
Akira Hatanaka via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 15 12:51:46 PST 2026
https://github.com/ahatanak created https://github.com/llvm/llvm-project/pull/176241
std::enable_if
This is an attempt to fix a windows build failure after 6fac9b143252bec62c1a5ee9fc1b0f214e7f2f8e.
>From 578aa21a947b5801fdec08f6ada62dfb5a0f6ad4 Mon Sep 17 00:00:00 2001
From: Akira Hatanaka <ahatanak at gmail.com>
Date: Thu, 15 Jan 2026 12:45:50 -0800
Subject: [PATCH] Stop calling a constexpr function to evaluate the boolean
condition of std::enable_if
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 3d994e06d2342..0c7e81f1749cb 100644
--- a/clang/lib/AST/AttrImpl.cpp
+++ b/clang/lib/AST/AttrImpl.cpp
@@ -289,21 +289,20 @@ namespace {
// - DeclArgument
// - OMPTraitInfoArgument
// - VariadicOMPInteropInfoArgument
-template <class T> constexpr bool useDefaultEquality() {
- return std::is_same_v<T, StringRef> || std::is_same_v<T, VersionTuple> ||
- std::is_same_v<T, IdentifierInfo *> || std::is_same_v<T, ParamIdx> ||
- std::is_same_v<T, Attr *> || std::is_same_v<T, char *> ||
- std::is_enum_v<T> || std::is_integral_v<T>;
-}
+#define USE_DEFAULT_EQUALITY \
+ (std::is_same_v<T, StringRef> || std::is_same_v<T, VersionTuple> || \
+ std::is_same_v<T, IdentifierInfo *> || std::is_same_v<T, ParamIdx> || \
+ std::is_same_v<T, Attr *> || std::is_same_v<T, char *> || \
+ std::is_enum_v<T> || std::is_integral_v<T>)
template <class T>
-typename std::enable_if_t<!useDefaultEquality<T>(), bool>
+typename std::enable_if_t<!USE_DEFAULT_EQUALITY, bool>
equalAttrArgs(T A, T B, StructuralEquivalenceContext &Context) {
return false;
}
template <class T>
-typename std::enable_if_t<useDefaultEquality<T>(), bool>
+typename std::enable_if_t<USE_DEFAULT_EQUALITY, bool>
equalAttrArgs(T A1, T A2, StructuralEquivalenceContext &Context) {
return A1 == A2;
}
More information about the cfe-commits
mailing list