summaryrefslogtreecommitdiff
path: root/absl/strings/charconv.cc
diff options
context:
space:
mode:
authorGravatar Randolf J <34705014+jun-sheaf@users.noreply.github.com>2022-10-05 23:01:02 +0200
committerGravatar GitHub <noreply@github.com>2022-10-05 23:01:02 +0200
commit541818ee3030fc88ff8f9328bf24ed0c8984d77e (patch)
tree1ad503684edb07d8bf990b2d44a8da8e797413a1 /absl/strings/charconv.cc
parentbeaec233795725fea58fd88b2f9271aa7decabce (diff)
Add clang < 7 to conditions
Diffstat (limited to 'absl/strings/charconv.cc')
-rw-r--r--absl/strings/charconv.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/absl/strings/charconv.cc b/absl/strings/charconv.cc
index 501297c8..c08623c4 100644
--- a/absl/strings/charconv.cc
+++ b/absl/strings/charconv.cc
@@ -339,13 +339,15 @@ template <typename FloatType>
bool HandleEdgeCase(const strings_internal::ParsedFloat& input, bool negative,
FloatType* value) {
if (input.type == strings_internal::FloatType::kNan) {
- // A bug in gcc would cause the compiler to optimize away the buffer
- // we are building below. Declaring the buffer volatile avoids the
- // issue, and has no measurable performance impact in microbenchmarks.
+ // A bug in both clang < 7 and gcc would cause the compiler to optimize
+ // away the buffer we are building below. Declaring the buffer volatile
+ // 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
constexpr ptrdiff_t kNanBufferSize = 128;
-#ifdef __GNUC__
+#if defined(__GNUC__) || (defined(__clang__) && __clang_major__ < 7)
volatile char n_char_sequence[kNanBufferSize];
#else
char n_char_sequence[kNanBufferSize];