Thirdparty: Harmonize patches to document downstream changes
This commit is contained in:
@ -695,13 +695,13 @@ namespace Clipper2Lib
|
||||
// returns true if (and only if) a * b == c * d
|
||||
inline bool ProductsAreEqual(int64_t a, int64_t b, int64_t c, int64_t d)
|
||||
{
|
||||
// -- GODOT start --
|
||||
// #if (defined(__clang__) || defined(__GNUC__)) && UINTPTR_MAX >= UINT64_MAX
|
||||
// const auto ab = static_cast<__int128_t>(a) * static_cast<__int128_t>(b);
|
||||
// const auto cd = static_cast<__int128_t>(c) * static_cast<__int128_t>(d);
|
||||
// return ab == cd;
|
||||
// #else
|
||||
// -- GODOT end --
|
||||
// Work around LLVM issue: https://github.com/llvm/llvm-project/issues/16778
|
||||
// Details: https://github.com/godotengine/godot/pull/95964#issuecomment-2306581804
|
||||
//#if (defined(__clang__) || defined(__GNUC__)) && UINTPTR_MAX >= UINT64_MAX
|
||||
// const auto ab = static_cast<__int128_t>(a) * static_cast<__int128_t>(b);
|
||||
// const auto cd = static_cast<__int128_t>(c) * static_cast<__int128_t>(d);
|
||||
// return ab == cd;
|
||||
//#else
|
||||
// nb: unsigned values needed for calculating overflow carry
|
||||
const auto abs_a = static_cast<uint64_t>(std::abs(a));
|
||||
const auto abs_b = static_cast<uint64_t>(std::abs(b));
|
||||
@ -716,9 +716,7 @@ namespace Clipper2Lib
|
||||
const auto sign_cd = TriSign(c) * TriSign(d);
|
||||
|
||||
return abs_ab == abs_cd && sign_ab == sign_cd;
|
||||
// -- GODOT start --
|
||||
// #endif
|
||||
// -- GODOT end --
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
diff --git a/thirdparty/clipper2/include/clipper2/clipper.core.h b/thirdparty/clipper2/include/clipper2/clipper.core.h
|
||||
index 925c04685e..d0d159b949 100644
|
||||
index 925c04685e..67dd731af6 100644
|
||||
--- a/thirdparty/clipper2/include/clipper2/clipper.core.h
|
||||
+++ b/thirdparty/clipper2/include/clipper2/clipper.core.h
|
||||
@@ -22,6 +22,8 @@
|
||||
@ -1,5 +1,5 @@
|
||||
diff --git a/thirdparty/clipper2/include/clipper2/clipper.core.h b/thirdparty/clipper2/include/clipper2/clipper.core.h
|
||||
index 67dd731af6..0f69bf2d9f 100644
|
||||
index 67dd731af6..dd1b873d5d 100644
|
||||
--- a/thirdparty/clipper2/include/clipper2/clipper.core.h
|
||||
+++ b/thirdparty/clipper2/include/clipper2/clipper.core.h
|
||||
@@ -695,11 +695,13 @@ namespace Clipper2Lib
|
||||
@ -11,24 +11,22 @@ index 67dd731af6..0f69bf2d9f 100644
|
||||
- const auto cd = static_cast<__int128_t>(c) * static_cast<__int128_t>(d);
|
||||
- return ab == cd;
|
||||
-#else
|
||||
+// -- GODOT start --
|
||||
+// #if (defined(__clang__) || defined(__GNUC__)) && UINTPTR_MAX >= UINT64_MAX
|
||||
+// const auto ab = static_cast<__int128_t>(a) * static_cast<__int128_t>(b);
|
||||
+// const auto cd = static_cast<__int128_t>(c) * static_cast<__int128_t>(d);
|
||||
+// return ab == cd;
|
||||
+// #else
|
||||
+// -- GODOT end --
|
||||
+// Work around LLVM issue: https://github.com/llvm/llvm-project/issues/16778
|
||||
+// Details: https://github.com/godotengine/godot/pull/95964#issuecomment-2306581804
|
||||
+//#if (defined(__clang__) || defined(__GNUC__)) && UINTPTR_MAX >= UINT64_MAX
|
||||
+// const auto ab = static_cast<__int128_t>(a) * static_cast<__int128_t>(b);
|
||||
+// const auto cd = static_cast<__int128_t>(c) * static_cast<__int128_t>(d);
|
||||
+// return ab == cd;
|
||||
+//#else
|
||||
// nb: unsigned values needed for calculating overflow carry
|
||||
const auto abs_a = static_cast<uint64_t>(std::abs(a));
|
||||
const auto abs_b = static_cast<uint64_t>(std::abs(b));
|
||||
@@ -714,7 +716,9 @@ namespace Clipper2Lib
|
||||
@@ -714,7 +716,7 @@ namespace Clipper2Lib
|
||||
const auto sign_cd = TriSign(c) * TriSign(d);
|
||||
|
||||
return abs_ab == abs_cd && sign_ab == sign_cd;
|
||||
-#endif
|
||||
+// -- GODOT start --
|
||||
+// #endif
|
||||
+// -- GODOT end --
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
Reference in New Issue
Block a user