[llvm] r341032 - [XRay] Move out template and use perfect forwarding

Dean Michael Berris via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 30 01:15:43 PDT 2018


Author: dberris
Date: Thu Aug 30 01:15:42 2018
New Revision: 341032

URL: http://llvm.org/viewvc/llvm-project?rev=341032&view=rev
Log:
[XRay] Move out template and use perfect forwarding

Follow up to D51210.

Modified:
    llvm/trunk/lib/XRay/FDRTraceWriter.cpp

Modified: llvm/trunk/lib/XRay/FDRTraceWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/XRay/FDRTraceWriter.cpp?rev=341032&r1=341031&r2=341032&view=diff
==============================================================================
--- llvm/trunk/lib/XRay/FDRTraceWriter.cpp (original)
+++ llvm/trunk/lib/XRay/FDRTraceWriter.cpp Thu Aug 30 01:15:42 2018
@@ -65,11 +65,12 @@ template <size_t Index> struct IndexedMe
 };
 
 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();
 }




More information about the llvm-commits mailing list