aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2024-09-18 14:54:49 -0700
committerAdrian Prantl <aprantl@apple.com>2024-09-23 09:35:27 -0700
commit40d8888f13fb54b0fe840deef23054de6544c184 (patch)
treee14d194f81fb3fa36a75c4419b1c5941f6651c48 /lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h
parentcaf0897c9c7f6f2a142af06bff8680a23d1d4bf5 (diff)
downloadllvm-40d8888f13fb54b0fe840deef23054de6544c184.zip
llvm-40d8888f13fb54b0fe840deef23054de6544c184.tar.gz
llvm-40d8888f13fb54b0fe840deef23054de6544c184.tar.bz2
[lldb] Change the implementation of Status to store an llvm::Error (NFC) (#106774)
(based on a conversation I had with @labath yesterday in https://github.com/llvm/llvm-project/pull/106442) Most APIs that currently vend a Status would be better served by returning llvm::Expected<> instead. If possibles APIs should be refactored to avoid Status. The only legitimate long-term uses of Status are objects that need to store an error for a long time (which should be questioned as a design decision, too). This patch makes the transition to llvm::Error easier by making the places that cannot switch to llvm::Error explicit: They are marked with a call to Status::clone(). Every other API can and should be refactored to use llvm::Expected. In the end Status should only be used in very few places. Whenever an unchecked Error is dropped by Status it logs this to the verbose API channel. Implementation notes: This patch introduces two new kinds of error_category as well as new llvm::Error types. Here is the mapping of lldb::ErrorType to llvm::Errors: ``` (eErrorTypeInvalid) eErrorTypeGeneric llvm::StringError eErrorTypePOSIX llvm::ECError eErrorTypeMachKernel MachKernelError eErrorTypeExpression llvm::ErrorList<ExpressionError> eErrorTypeWin32 Win32Error ``` Relanding with built-in cloning support for llvm::ECError, and support for initializing a Windows error with a NO_ERROR error code.
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h')
0 files changed, 0 insertions, 0 deletions