[llvm] r341912 - [XRay] Ensure lambda outlives llvm::function_ref

Dean Michael Berris via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 11 01:03:30 PDT 2018


Author: dberris
Date: Tue Sep 11 01:03:30 2018
New Revision: 341912

URL: http://llvm.org/viewvc/llvm-project?rev=341912&view=rev
Log:
[XRay] Ensure lambda outlives llvm::function_ref

Follow-up to D51912.

Modified:
    llvm/trunk/include/llvm/XRay/FDRTraceExpander.h
    llvm/trunk/lib/XRay/Trace.cpp

Modified: llvm/trunk/include/llvm/XRay/FDRTraceExpander.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/XRay/FDRTraceExpander.h?rev=341912&r1=341911&r2=341912&view=diff
==============================================================================
--- llvm/trunk/include/llvm/XRay/FDRTraceExpander.h (original)
+++ llvm/trunk/include/llvm/XRay/FDRTraceExpander.h Tue Sep 11 01:03:30 2018
@@ -27,7 +27,7 @@ class TraceExpander : public RecordVisit
   int32_t PID = 0;
   int32_t TID = 0;
   uint64_t BaseTSC = 0;
-  XRayRecord CurrentRecord{};
+  XRayRecord CurrentRecord{0, 0, RecordTypes::ENTER, 0, 0, 0, 0, {}};
   uint16_t CPUId = 0;
   uint16_t LogVersion = 0;
   bool BuildingFunction = false;

Modified: llvm/trunk/lib/XRay/Trace.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/XRay/Trace.cpp?rev=341912&r1=341911&r2=341912&view=diff
==============================================================================
--- llvm/trunk/lib/XRay/Trace.cpp (original)
+++ llvm/trunk/lib/XRay/Trace.cpp Tue Sep 11 01:03:30 2018
@@ -317,8 +317,8 @@ Error loadFDRLog(StringRef Data, bool Is
             return (L.WallclockTime->seconds() < R.WallclockTime->seconds() &&
                     L.WallclockTime->nanos() < R.WallclockTime->nanos());
           });
-      TraceExpander Expander([&](const XRayRecord &R) { Records.push_back(R); },
-                             FileHeader.Version);
+      auto Adder = [&](const XRayRecord &R) { Records.push_back(R); };
+      TraceExpander Expander(Adder, FileHeader.Version);
       for (auto &B : Blocks) {
         for (auto *R : B.Records)
           if (auto E = R->apply(Expander))




More information about the llvm-commits mailing list