diff options
| -rw-r--r-- | llvm/lib/XRay/FDRTraceWriter.cpp | 5 |
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(); } |

