diff options
author | Jonas Devlieghere <jonas@devlieghere.com> | 2025-01-31 13:23:26 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-31 13:23:26 -0800 |
commit | 6deee0d5b36c8b4b83209759df8d4933e4922bc8 (patch) | |
tree | 873de1bfbe54afbfc2410c22ce1003f063e552bd /lldb/source/Interpreter/CommandObject.cpp | |
parent | e6d12ad791f6eabb53623664a1563996efce44f7 (diff) | |
download | llvm-6deee0d5b36c8b4b83209759df8d4933e4922bc8.zip llvm-6deee0d5b36c8b4b83209759df8d4933e4922bc8.tar.gz llvm-6deee0d5b36c8b4b83209759df8d4933e4922bc8.tar.bz2 |
[lldb] Use llvm::Error instead of CommandReturnObject for error reporting (#125125)
Use `llvm::Error` instead of `CommandReturnObject` for error reporting.
The command return objects were populated with errors but never
displayed. With this patch they're at least logged.
Diffstat (limited to 'lldb/source/Interpreter/CommandObject.cpp')
-rw-r--r-- | lldb/source/Interpreter/CommandObject.cpp | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/lldb/source/Interpreter/CommandObject.cpp b/lldb/source/Interpreter/CommandObject.cpp index 559e2e7..7008253 100644 --- a/lldb/source/Interpreter/CommandObject.cpp +++ b/lldb/source/Interpreter/CommandObject.cpp @@ -120,17 +120,24 @@ bool CommandObject::ParseOptions(Args &args, CommandReturnObject &result) { if (args_or) { args = std::move(*args_or); error = options->NotifyOptionParsingFinished(&exe_ctx); - } else + } else { error = Status::FromError(args_or.takeError()); + } - if (error.Success()) { - if (options->VerifyOptions(result)) - return true; - } else { + if (error.Fail()) { result.SetError(error.takeError()); + result.SetStatus(eReturnStatusFailed); + return false; } - result.SetStatus(eReturnStatusFailed); - return false; + + if (llvm::Error error = options->VerifyOptions()) { + result.SetError(std::move(error)); + result.SetStatus(eReturnStatusFailed); + return false; + } + + result.SetStatus(eReturnStatusSuccessFinishNoResult); + return true; } return true; } |