diff options
author | 2024-05-08 03:32:05 +1000 | |
---|---|---|
committer | 2024-05-08 03:32:05 +1000 | |
commit | 4da99a13f5cd8054ff8f747a0234a74b271b663d (patch) | |
tree | 83b327d9e6914fe62c3d81b7a67db547afa2b7bb /3rdparty | |
parent | 4413fecfd2bf21dfbc46a72b8114b42635d64c05 (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.hpp | 8 |
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); |