summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/XRay/FDRTraceWriter.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/XRay/FDRTraceWriter.cpp b/llvm/lib/XRay/FDRTraceWriter.cpp
index 117b3f3ad91..0fbfba613c6 100644
--- a/llvm/lib/XRay/FDRTraceWriter.cpp
+++ b/llvm/lib/XRay/FDRTraceWriter.cpp
@@ -65,11 +65,12 @@ template <size_t Index> struct IndexedMemcpy {
};
template <uint8_t Kind, class... Data>
-Error writeMetadata(raw_ostream &OS, Data... Ds) {
+Error writeMetadata(raw_ostream &OS, Data&&... Ds) {
MetadataBlob B;
B.Type = 1;
B.RecordKind = Kind;
- IndexedMemcpy<0>::Copy(B.Data, std::make_tuple(Ds...));
+ auto T = std::make_tuple(std::forward<Data>(std::move(Ds))...);
+ IndexedMemcpy<0>::Copy(B.Data, T);
OS.write(reinterpret_cast<const char *>(&B), sizeof(MetadataBlob));
return Error::success();
}
OpenPOWER on IntegriCloud