[llvm] 6d4a502 - [ADT] Avoid ambiguity by using std::memcpy instead of memcpy (NFC).
Adrian Kuegel via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 14 02:44:53 PDT 2025
Author: Adrian Kuegel
Date: 2025-07-14T09:44:28Z
New Revision: 6d4a50272f19c1db65dcf0349b6905f12442f80b
URL: https://github.com/llvm/llvm-project/commit/6d4a50272f19c1db65dcf0349b6905f12442f80b
DIFF: https://github.com/llvm/llvm-project/commit/6d4a50272f19c1db65dcf0349b6905f12442f80b.diff
LOG: [ADT] Avoid ambiguity by using std::memcpy instead of memcpy (NFC).
Added:
Modified:
llvm/include/llvm/ADT/Hashing.h
llvm/include/llvm/ADT/SmallVector.h
Removed:
################################################################################
diff --git a/llvm/include/llvm/ADT/Hashing.h b/llvm/include/llvm/ADT/Hashing.h
index 0093c281aac8a..ad131015a7d99 100644
--- a/llvm/include/llvm/ADT/Hashing.h
+++ b/llvm/include/llvm/ADT/Hashing.h
@@ -136,7 +136,7 @@ namespace detail {
inline uint64_t fetch64(const char *p) {
uint64_t result;
- memcpy(&result, p, sizeof(result));
+ std::memcpy(&result, p, sizeof(result));
if (sys::IsBigEndianHost)
sys::swapByteOrder(result);
return result;
@@ -144,7 +144,7 @@ inline uint64_t fetch64(const char *p) {
inline uint32_t fetch32(const char *p) {
uint32_t result;
- memcpy(&result, p, sizeof(result));
+ std::memcpy(&result, p, sizeof(result));
if (sys::IsBigEndianHost)
sys::swapByteOrder(result);
return result;
@@ -379,7 +379,7 @@ bool store_and_advance(char *&buffer_ptr, char *buffer_end, const T& value,
if (buffer_ptr + store_size > buffer_end)
return false;
const char *value_data = reinterpret_cast<const char *>(&value);
- memcpy(buffer_ptr, value_data + offset, store_size);
+ std::memcpy(buffer_ptr, value_data + offset, store_size);
buffer_ptr += store_size;
return true;
}
@@ -513,7 +513,7 @@ struct hash_combine_recursive_helper {
// with the variadic combine because that formation can have varying
// argument types.
size_t partial_store_size = buffer_end - buffer_ptr;
- memcpy(buffer_ptr, &data, partial_store_size);
+ std::memcpy(buffer_ptr, &data, partial_store_size);
// If the store fails, our buffer is full and ready to hash. We have to
// either initialize the hash state (on the first full buffer) or mix
diff --git a/llvm/include/llvm/ADT/SmallVector.h b/llvm/include/llvm/ADT/SmallVector.h
index 0b8bb48b8fe5e..80f7734b86907 100644
--- a/llvm/include/llvm/ADT/SmallVector.h
+++ b/llvm/include/llvm/ADT/SmallVector.h
@@ -518,7 +518,7 @@ class SmallVectorTemplateBase<T, true> : public SmallVectorTemplateCommon<T> {
// use memcpy here. Note that I and E are iterators and thus might be
// invalid for memcpy if they are equal.
if (I != E)
- memcpy(reinterpret_cast<void *>(Dest), I, (E - I) * sizeof(T));
+ std::memcpy(reinterpret_cast<void *>(Dest), I, (E - I) * sizeof(T));
}
/// Double the size of the allocated memory, guaranteeing space for at
@@ -561,7 +561,7 @@ class SmallVectorTemplateBase<T, true> : public SmallVectorTemplateCommon<T> {
public:
void push_back(ValueParamT Elt) {
const T *EltPtr = reserveForParamAndGetAddress(Elt);
- memcpy(reinterpret_cast<void *>(this->end()), EltPtr, sizeof(T));
+ std::memcpy(reinterpret_cast<void *>(this->end()), EltPtr, sizeof(T));
this->set_size(this->size() + 1);
}
More information about the llvm-commits
mailing list