You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.5 KiB
47 lines
1.5 KiB
From 56cef1c15fb6f5b78e5debcb62d8ac914a0f007c Mon Sep 17 00:00:00 2001 |
|
From: Gleb Mazovetskiy <glex.spb@gmail.com> |
|
Date: Sun, 20 Jul 2025 09:03:08 +0100 |
|
Subject: [PATCH 9/9] Work around #1581 |
|
|
|
See https://github.com/ThePhD/sol2/issues/1581#issuecomment-2103463524 |
|
--- |
|
include/sol/function_types_stateless.hpp | 16 ++++++++++++++-- |
|
1 file changed, 14 insertions(+), 2 deletions(-) |
|
|
|
diff --git include/sol/function_types_stateless.hpp include/sol/function_types_stateless.hpp |
|
index a2f66ba0..fe0f3f0b 100644 |
|
--- include/sol/function_types_stateless.hpp |
|
+++ include/sol/function_types_stateless.hpp |
|
@@ -320,7 +320,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); |
|
@@ -360,7 +366,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); |
|
-- |
|
2.48.1 |
|
|
|
|