[Lldb-commits] [lldb] [lldb] Change the implementation of Status to store an llvm::Error (NFC) (PR #106774)

Adrian Prantl via lldb-commits lldb-commits at lists.llvm.org
Wed Sep 11 15:08:16 PDT 2024


================
@@ -94,26 +123,49 @@ Status Status::FromErrorStringWithFormat(const char *format, ...) {
   return Status(string);
 }
 
-Status Status::FromError(llvm::Error error) { return Status(std::move(error)); }
+Status Status::FromExpressionError(lldb::ExpressionResults result,
+                                   std::string msg) {
+  return Status(llvm::make_error<ExpressionError>(
+      std::error_code(result, expression_category()), msg));
+}
 
-llvm::Error Status::ToError() const {
-  if (Success())
+/// Creates a deep copy of all known errors and converts all other
+/// errors to a new llvm::StringError.
+static llvm::Error CloneError(llvm::Error &error) {
+  std::vector<std::unique_ptr<llvm::ErrorInfoBase>> info;
----------------
adrian-prantl wrote:

The problem is that we then would need to delay initializing an llvm::Error variable. I could not find any code that makes this look any less ugly than what we have now. (I toyed with an optional<llvm::Error>).

https://github.com/llvm/llvm-project/pull/106774


More information about the lldb-commits mailing list