forked from OSchip/llvm-project
[lldb] fix cannot convert from 'nullptr' to 'lldb::thread_result_t'
Summary: On Windows `lldb::thread_result_t` resolves to `typedef unsigned thread_result_t;` and on other platforms it resolves to `typedef void *thread_result_t;`. Therefore one cannot use `nullptr` when returning from a function that returns `thread_result_t`. I've made this change because a windows build bot fails with these errors: ``` E:\build_slave\lldb-x64-windows-ninja\llvm\tools\lldb\source\Core\Communication.cpp(362): error C2440: 'return': cannot convert from 'nullptr' to 'lldb::thread_result_t' E:\build_slave\lldb-x64-windows-ninja\llvm\tools\lldb\source\Core\Communication.cpp(362): note: A native nullptr can only be converted to bool or, using reinterpret_cast, to an integral type ``` and ``` E:\build_slave\lldb-x64-windows-ninja\llvm\tools\lldb\source\Core\Debugger.cpp(1619): error C2440: 'return': cannot convert from 'nullptr' to 'lldb::thread_result_t' E:\build_slave\lldb-x64-windows-ninja\llvm\tools\lldb\source\Core\Debugger.cpp(1619): note: A native nullptr can only be converted to bool or, using reinterpret_cast, to an integral type E:\build_slave\lldb-x64-windows-ninja\llvm\tools\lldb\source\Core\Debugger.cpp(1664): error C2440: 'return': cannot convert from 'nullptr' to 'lldb::thread_result_t' E:\build_slave\lldb-x64-windows-ninja\llvm\tools\lldb\source\Core\Debugger.cpp(1664): note: A native nullptr can only be converted to bool or, using reinterpret_cast, to an integral type ``` This is the failing build: http://lab.llvm.org:8011/builders/lldb-x64-windows-ninja/builds/5035/steps/build/logs/stdio Reviewers: JDevlieghere, teemperor, jankratochvil, labath, clayborg, RKSimon, courbet, jhenderson Reviewed By: labath, clayborg Subscribers: labath, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D62305 llvm-svn: 361503
This commit is contained in:
parent
c63b37dd40
commit
85200645c6
|
@ -359,7 +359,7 @@ lldb::thread_result_t Communication::ReadThread(lldb::thread_arg_t p) {
|
|||
// Let clients know that this thread is exiting
|
||||
comm->BroadcastEvent(eBroadcastBitNoMorePendingInput);
|
||||
comm->BroadcastEvent(eBroadcastBitReadThreadDidExit);
|
||||
return nullptr;
|
||||
return {};
|
||||
}
|
||||
|
||||
void Communication::SetReadThreadBytesReceivedCallback(
|
||||
|
|
|
@ -1616,7 +1616,7 @@ void Debugger::DefaultEventHandler() {
|
|||
|
||||
lldb::thread_result_t Debugger::EventHandlerThread(lldb::thread_arg_t arg) {
|
||||
((Debugger *)arg)->DefaultEventHandler();
|
||||
return nullptr;
|
||||
return {};
|
||||
}
|
||||
|
||||
bool Debugger::StartEventHandlerThread() {
|
||||
|
@ -1661,7 +1661,7 @@ lldb::thread_result_t Debugger::IOHandlerThread(lldb::thread_arg_t arg) {
|
|||
Debugger *debugger = (Debugger *)arg;
|
||||
debugger->ExecuteIOHandlers();
|
||||
debugger->StopEventHandlerThread();
|
||||
return nullptr;
|
||||
return {};
|
||||
}
|
||||
|
||||
bool Debugger::HasIOHandlerThread() { return m_io_handler_thread.IsJoinable(); }
|
||||
|
|
|
@ -73,7 +73,7 @@ void TaskPoolImpl::AddTask(std::function<void()> &&task_fn) {
|
|||
|
||||
lldb::thread_result_t TaskPoolImpl::WorkerPtr(void *pool) {
|
||||
Worker((TaskPoolImpl *)pool);
|
||||
return nullptr;
|
||||
return {};
|
||||
}
|
||||
|
||||
void TaskPoolImpl::Worker(TaskPoolImpl *pool) {
|
||||
|
|
|
@ -109,7 +109,7 @@ lldb::thread_result_t HostProcessWindows::MonitorThread(void *thread_arg) {
|
|||
::CloseHandle(info->process_handle);
|
||||
delete (info);
|
||||
}
|
||||
return 0;
|
||||
return {};
|
||||
}
|
||||
|
||||
void HostProcessWindows::Close() {
|
||||
|
|
|
@ -132,7 +132,7 @@ lldb::thread_result_t DebuggerThread::DebuggerThreadLaunchRoutine(
|
|||
else
|
||||
m_debug_delegate->OnDebuggerError(error, 0);
|
||||
|
||||
return 0;
|
||||
return {};
|
||||
}
|
||||
|
||||
lldb::thread_result_t DebuggerThread::DebuggerThreadAttachRoutine(
|
||||
|
@ -148,7 +148,7 @@ lldb::thread_result_t DebuggerThread::DebuggerThreadAttachRoutine(
|
|||
if (!DebugActiveProcess((DWORD)pid)) {
|
||||
Status error(::GetLastError(), eErrorTypeWin32);
|
||||
m_debug_delegate->OnDebuggerError(error, 0);
|
||||
return 0;
|
||||
return {};
|
||||
}
|
||||
|
||||
// The attach was successful, enter the debug loop. From here on out, this
|
||||
|
@ -156,7 +156,7 @@ lldb::thread_result_t DebuggerThread::DebuggerThreadAttachRoutine(
|
|||
// in DebugLaunch should apply from this point out.
|
||||
DebugLoop();
|
||||
|
||||
return 0;
|
||||
return {};
|
||||
}
|
||||
|
||||
Status DebuggerThread::StopDebugging(bool terminate) {
|
||||
|
|
Loading…
Reference in New Issue