Add clang < 7 to conditions

pull/1285/head
Randolf J 2 years ago committed by GitHub
parent beaec23379
commit 541818ee30
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      absl/strings/charconv.cc

@ -339,13 +339,15 @@ template <typename FloatType>
bool HandleEdgeCase(const strings_internal::ParsedFloat& input, bool negative, bool HandleEdgeCase(const strings_internal::ParsedFloat& input, bool negative,
FloatType* value) { FloatType* value) {
if (input.type == strings_internal::FloatType::kNan) { if (input.type == strings_internal::FloatType::kNan) {
// A bug in gcc would cause the compiler to optimize away the buffer // A bug in both clang < 7 and gcc would cause the compiler to optimize
// we are building below. Declaring the buffer volatile avoids the // away the buffer we are building below. Declaring the buffer volatile
// issue, and has no measurable performance impact in microbenchmarks. // avoids the issue, and has no measurable performance impact in
// microbenchmarks.
// //
// https://bugs.llvm.org/show_bug.cgi?id=37778
// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86113 // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86113
constexpr ptrdiff_t kNanBufferSize = 128; constexpr ptrdiff_t kNanBufferSize = 128;
#ifdef __GNUC__ #if defined(__GNUC__) || (defined(__clang__) && __clang_major__ < 7)
volatile char n_char_sequence[kNanBufferSize]; volatile char n_char_sequence[kNanBufferSize];
#else #else
char n_char_sequence[kNanBufferSize]; char n_char_sequence[kNanBufferSize];

Loading…
Cancel
Save