summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2024-05-08 03:32:05 +1000
committer Vas Crabb <vas@vastheman.com>2024-05-08 03:32:05 +1000
commit4da99a13f5cd8054ff8f747a0234a74b271b663d (patch)
tree83b327d9e6914fe62c3d81b7a67db547afa2b7bb /3rdparty
parent4413fecfd2bf21dfbc46a72b8114b42635d64c05 (diff)
3rdparty/sol2: Worked around apparent regression in clang 18.
When taking a pointer to a static member function template in a class template, clang reports a substitution error if the noexcept specification uses an expression that depends on class template arguments. See llvm/llvm-project#91362 on GitHub.
Diffstat (limited to '3rdparty')
-rw-r--r--3rdparty/sol2/sol/sol.hpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/3rdparty/sol2/sol/sol.hpp b/3rdparty/sol2/sol/sol.hpp
index 8b0b7d36ea4..0bac66042d5 100644
--- a/3rdparty/sol2/sol/sol.hpp
+++ b/3rdparty/sol2/sol/sol.hpp
@@ -19456,7 +19456,13 @@ namespace sol { namespace function_detail {
}
template <bool is_yielding, bool no_trampoline>
- static int call(lua_State* L) noexcept(std::is_nothrow_copy_assignable_v<T>) {
+ static int call(lua_State* L)
+#if SOL_IS_ON(SOL_COMPILER_CLANG)
+ // apparent regression in clang 18 - llvm/llvm-project#91362
+#else
+ noexcept(std::is_nothrow_copy_assignable_v<T>)
+#endif
+ {
int nr;
if constexpr (no_trampoline) {
nr = real_call(L);