[PATCH] D88113: [llvm-objcopy][NFC] refactor error handling. part 1.

Alexey Lapshin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 23 07:07:01 PDT 2020


avl added inline comments.


================
Comment at: llvm/tools/llvm-objcopy/MachO/MachOReader.cpp:89
     if (!SecRef)
-      reportError(MachOObj.getFileName(), SecRef.takeError());
+      return createStringError(errc::invalid_argument,
+                               "'" + MachOObj.getFileName() +
----------------
jhenderson wrote:
> Can you use the error code associated with `SecRef` instead of `errc::invalid_argument` here?
As far as I understand that could be done in that way:


```
inline Error errorWithContext(StringRef Context, Error E) {
  assert(E);
  std::string Buf;
  raw_string_ostream OS(Buf);
  Optional<std::error_code> EC;
  handleAllErrors(std::move(E), [&](const ErrorInfoBase &EI) {
    OS << "'" + Context + "': ";
    if (!EC)
      EC = EI.convertToErrorCode();
    EI.log(OS);
    OS << "\n";
  });
  OS.flush();

  return createStringError(*EC, Buf);
}
```

but you`ve asked me to not create a special routine for that.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D88113/new/

https://reviews.llvm.org/D88113



More information about the llvm-commits mailing list