Index: src/objects-inl.h |
diff --git a/src/objects-inl.h b/src/objects-inl.h |
index 733969381508cfaf87726c190a9af5b3fa870d35..3608da1c3d992c8366b4cda2a56bbeb6d72ab7c6 100644 |
--- a/src/objects-inl.h |
+++ b/src/objects-inl.h |
@@ -964,6 +964,14 @@ class SeqOneByteSubStringKey : public HashTableKey { |
DCHECK(string_->IsSeqOneByteString()); |
} |
+// VS 2017 on official builds gives this spurious warning: |
+// warning C4789: buffer 'key' of size 16 bytes will be overrun; 4 bytes will |
+// be written starting at offset 16 |
+// https://bugs.chromium.org/p/v8/issues/detail?id=6068 |
+#if defined(V8_CC_MSVC) |
+#pragma warning(push) |
+#pragma warning(disable : 4789) |
+#endif |
uint32_t Hash() override { |
DCHECK(length_ >= 0); |
DCHECK(from_ + length_ <= string_->length()); |
@@ -974,6 +982,9 @@ class SeqOneByteSubStringKey : public HashTableKey { |
DCHECK(result != 0); // Ensure that the hash value of 0 is never computed. |
return result; |
} |
+#if defined(V8_CC_MSVC) |
+#pragma warning(pop) |
+#endif |
uint32_t HashForObject(Object* other) override { |
return String::cast(other)->Hash(); |