diff options
author | Rose <83477269+AtariDreams@users.noreply.github.com> | 2023-02-10 13:19:30 -0500 |
---|---|---|
committer | Rose <83477269+AtariDreams@users.noreply.github.com> | 2023-02-14 10:51:42 -0500 |
commit | b7a8491fbd90b7de010b5e7f74e09996520f3e61 (patch) | |
tree | 0e8ce4eed369e701a0e61a4b4edf2270fe3dae2a | |
parent | d6a45e95ab515b55a2437835fdd5873c6572131d (diff) | |
download | abseil-b7a8491fbd90b7de010b5e7f74e09996520f3e61.tar.gz abseil-b7a8491fbd90b7de010b5e7f74e09996520f3e61.tar.bz2 abseil-b7a8491fbd90b7de010b5e7f74e09996520f3e61.zip |
Remove Workarounds for Old Clang Bug
https://bugs.llvm.org/show_bug.cgi?id=38289 has been addressed since 2019.
We just have to check to see if the clang being used to compile with is any version before major version 9.
-rw-r--r-- | absl/numeric/int128.cc | 2 | ||||
-rw-r--r-- | absl/strings/internal/str_format/float_conversion.cc | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/absl/numeric/int128.cc b/absl/numeric/int128.cc index e5526c6f..e0e3bce8 100644 --- a/absl/numeric/int128.cc +++ b/absl/numeric/int128.cc @@ -111,7 +111,7 @@ uint128 MakeUint128FromFloat(T v) { return MakeUint128(0, static_cast<uint64_t>(v)); } -#if defined(__clang__) && !defined(__SSE3__) +#if defined(__clang__) && (__clang_major__ < 9) && !defined(__SSE3__) // Workaround for clang bug: https://bugs.llvm.org/show_bug.cgi?id=38289 // Casting from long double to uint64_t is miscompiled and drops bits. // It is more work, so only use when we need the workaround. diff --git a/absl/strings/internal/str_format/float_conversion.cc b/absl/strings/internal/str_format/float_conversion.cc index 8e497852..fe0ad4bd 100644 --- a/absl/strings/internal/str_format/float_conversion.cc +++ b/absl/strings/internal/str_format/float_conversion.cc @@ -1102,7 +1102,7 @@ void PrintExponent(int exp, char e, Buffer *out) { template <typename Float, typename Int> constexpr bool CanFitMantissa() { return -#if defined(__clang__) && !defined(__SSE3__) +#if defined(__clang__) && (__clang_major__ < 9) && !defined(__SSE3__) // Workaround for clang bug: https://bugs.llvm.org/show_bug.cgi?id=38289 // Casting from long double to uint64_t is miscompiled and drops bits. (!std::is_same<Float, long double>::value || |