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

David Blaikie via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 17 17:00:47 PDT 2018


Maybe TraceExpander should use std::function instead?

On Tue, Sep 11, 2018 at 1:04 AM Dean Michael Berris via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> 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))
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180917/d9d17206/attachment.html>


More information about the llvm-commits mailing list