Skip to content

Commit 0245385

Browse files
committed
attempt patch from github comment
1 parent a9a5ece commit 0245385

File tree

2 files changed

+43
-2
lines changed

2 files changed

+43
-2
lines changed

examples/sol2/CMakeLists.txt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ include(../../cmake/CPM.cmake)
88

99
CPMAddPackage(
1010
NAME lua
11-
GIT_REPOSITORY https://github.com/lua/lua.git
11+
GITHUB_REPOSITORY lua/lua
1212
VERSION 5.3.5
1313
DOWNLOAD_ONLY YES
1414
)
@@ -21,7 +21,13 @@ if(lua_ADDED)
2121
target_include_directories(lua SYSTEM PUBLIC $<BUILD_INTERFACE:${lua_SOURCE_DIR}>)
2222
endif()
2323

24-
CPMAddPackage("gh:ThePhD/[email protected]")
24+
CPMAddPackage(
25+
NAME sol2
26+
GITHUB_REPOSITORY ThePhD/sol2
27+
VERSION 3.3.0
28+
# https://github.com/ThePhD/sol2/issues/1581#issuecomment-2103463524
29+
PATCHES fix_for_clang.patch
30+
)
2531

2632
# ---- Executable ----
2733

examples/sol2/fix_for_clang.patch

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
Common subdirectories: a/.bcr and b/.bcr
2+
Common subdirectories: a/.github and b/.github
3+
diff --git a/sol/sol.hpp b/sol/sol.hpp index 8b0b7d36ea4ef..1a9375d996d2f 100644
4+
--- a/sol/sol.hpp
5+
+++ b/sol/sol.hpp
6+
@@ -19416,7 +19416,13 @@ namespace sol { namespace function_detail {
7+
}
8+
9+
template <bool is_yielding, bool no_trampoline>
10+
- static int call(lua_State* L) noexcept(std::is_nothrow_copy_assignable_v<T>) {
11+
+ static int call(lua_State* L)
12+
+#if SOL_IS_ON(SOL_COMPILER_CLANG)
13+
+ // apparent regression in clang 18 - llvm/llvm-project#91362
14+
+#else
15+
+ noexcept(std::is_nothrow_copy_assignable_v<T>)
16+
+#endif
17+
+ {
18+
int nr;
19+
if constexpr (no_trampoline) {
20+
nr = real_call(L);
21+
@@ -19456,7 +19462,13 @@ namespace sol { namespace function_detail {
22+
}
23+
24+
template <bool is_yielding, bool no_trampoline>
25+
- static int call(lua_State* L) noexcept(std::is_nothrow_copy_assignable_v<T>) {
26+
+ static int call(lua_State* L)
27+
+#if SOL_IS_ON(SOL_COMPILER_CLANG)
28+
+ // apparent regression in clang 18 - llvm/llvm-project#91362
29+
+#else
30+
+ noexcept(std::is_nothrow_copy_assignable_v<T>)
31+
+#endif
32+
+ {
33+
int nr;
34+
if constexpr (no_trampoline) {
35+
nr = real_call(L);

0 commit comments

Comments
 (0)