vadimcn created this revision. vadimcn added a reviewer: jingham. vadimcn added a project: LLDB. Herald added a subscriber: JDevlieghere. vadimcn requested review of this revision. Herald added a subscriber: lldb-commits.
Until GCC 6, std::unordered_map could not emplace non-copyable values, which results in this error: "error: call to implicitly-deleted copy constructor of 'lldb_private::ThreadPlanStack'" (due to ThreadPlanStack::m_stack_mutex not being copyable). Using std::piecewise_construct works around this problem. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D109339 Files: lldb/include/lldb/Target/ThreadPlanStack.h Index: lldb/include/lldb/Target/ThreadPlanStack.h =================================================================== --- lldb/include/lldb/Target/ThreadPlanStack.h +++ lldb/include/lldb/Target/ThreadPlanStack.h @@ -124,7 +124,9 @@ void AddThread(Thread &thread) { lldb::tid_t tid = thread.GetID(); - m_plans_list.emplace(tid, thread); + m_plans_list.emplace(std::piecewise_construct, + std::forward_as_tuple(tid), + std::forward_as_tuple(thread)); } bool RemoveTID(lldb::tid_t tid) {
Index: lldb/include/lldb/Target/ThreadPlanStack.h =================================================================== --- lldb/include/lldb/Target/ThreadPlanStack.h +++ lldb/include/lldb/Target/ThreadPlanStack.h @@ -124,7 +124,9 @@ void AddThread(Thread &thread) { lldb::tid_t tid = thread.GetID(); - m_plans_list.emplace(tid, thread); + m_plans_list.emplace(std::piecewise_construct, + std::forward_as_tuple(tid), + std::forward_as_tuple(thread)); } bool RemoveTID(lldb::tid_t tid) {
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits