[PATCH] D88113: [llvm-objcopy][NFC] refactor error handling. part 1.
James Henderson via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 23 07:42:03 PDT 2020
jhenderson 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() +
----------------
avl wrote:
> 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.
I misremembered how the interface worked. There's an `errorToErrorCode()` function, but that consumes the input `Error`, which we don't want. Leave it as-is.
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