summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/include/llvm/ADT/FlatArrayMap.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/include/llvm/ADT/FlatArrayMap.h b/llvm/include/llvm/ADT/FlatArrayMap.h
index b414cde7a16..2d60ef88373 100644
--- a/llvm/include/llvm/ADT/FlatArrayMap.h
+++ b/llvm/include/llvm/ADT/FlatArrayMap.h
@@ -96,11 +96,13 @@ namespace llvm {
void copyFrom(const self &RHS) {
- memcpy(Array, RHS.Array, sizeof(value_type) * (MaxArraySize + 1));
+ std::copy(RHS.Array, RHS.Array + MaxArraySize + 1, Array);
NumElements = RHS.NumElements;
}
void init () {
+ // Even if Array contains non POD, use memset for last element,
+ // since it is used as end() iterator only.
memset(Array + MaxArraySize, 0, sizeof(value_type));
NumElements = 0;
}
OpenPOWER on IntegriCloud