================
@@ -85,6 +85,11 @@ double DecodedThread::NanosecondsRange::GetInterpolatedTime(
return interpolate(next_range->nanos);
}
+DecodedThread::TraceItemStorage::TraceItemStorage(
+ const TraceItemStorage &other) {
+ std::memcpy(this, &other, sizeof *this);
----------------
nmosier wrote:
`DecodedThread` does know which member is being used (it uses `enum
TraceItemKind` to tag the union); however, it stores the tag separately in
`DecodedThread::m_item_kinds` for space/alignment reasons.
I added this copy constructor for use by `std::vector<TraceItemStorage>
DecodedThread::m_trace_data`; without it, it raises a compile error because it
doesn't know how to copy/move `TraceItemStorage` elements when resizing the
vector. This means that we can't add a second TraceItemKind argument to the
copy constructor, because std::vector<TraceItemStorage> won't know how to use
that.
https://github.com/llvm/llvm-project/pull/77252
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits