mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-04 19:25:51 +00:00
Use the most recent versions in ConanCenter. * Due to a bug in Clang 16, you may get a compile error: "call to 'async_teardown' is ambiguous" * A compiler flag workaround is documented in `BUILD.md`. * At this time, building this with gcc 13 may require editing some files in `.conan/data` * A patch to support gcc13 may be added in a later PR. --------- Co-authored-by: Scott Schurr <scott@ripple.com>
14 lines
730 B
Diff
14 lines
730 B
Diff
diff --git a/snappy.cc b/snappy.cc
|
|
index d414718..e4efb59 100644
|
|
--- a/snappy.cc
|
|
+++ b/snappy.cc
|
|
@@ -1132,7 +1132,7 @@ inline size_t AdvanceToNextTagX86Optimized(const uint8_t** ip_p, size_t* tag) {
|
|
size_t literal_len = *tag >> 2;
|
|
size_t tag_type = *tag;
|
|
bool is_literal;
|
|
-#if defined(__GCC_ASM_FLAG_OUTPUTS__) && defined(__x86_64__)
|
|
+#if defined(__GCC_ASM_FLAG_OUTPUTS__) && defined(__x86_64__) && ( (!defined(__clang__) && !defined(__APPLE__)) || (!defined(__APPLE__) && defined(__clang__) && (__clang_major__ >= 9)) || (defined(__APPLE__) && defined(__clang__) && (__clang_major__ > 11)) )
|
|
// TODO clang misses the fact that the (c & 3) already correctly
|
|
// sets the zero flag.
|
|
asm("and $3, %k[tag_type]\n\t"
|