<div dir="ltr">Doesn't appear to build w/ asserts enabled:<div><a href="http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/43706/steps/build/logs/stdio">http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/43706/steps/build/logs/stdio</a><br></div><div><br></div><div>Please make sure to build and test changes w/ asserts enabled before landing.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Feb 11, 2019 at 1:49 AM Eugene Leviant via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Author: evgeny777<br>
Date: Mon Feb 11 01:49:37 2019<br>
New Revision: 353679<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=353679&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=353679&view=rev</a><br>
Log:<br>
Small refactoring of FileError. NFC.<br>
<br>
Differential revision: <a href="https://reviews.llvm.org/D57945" rel="noreferrer" target="_blank">https://reviews.llvm.org/D57945</a><br>
<br>
Modified:<br>
llvm/trunk/include/llvm/Support/Error.h<br>
llvm/trunk/tools/llvm-objcopy/CopyConfig.cpp<br>
llvm/trunk/tools/llvm-objcopy/llvm-objcopy.cpp<br>
llvm/trunk/tools/llvm-objcopy/llvm-objcopy.h<br>
<br>
Modified: llvm/trunk/include/llvm/Support/Error.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/Error.h?rev=353679&r1=353678&r2=353679&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/Error.h?rev=353679&r1=353678&r2=353679&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/Support/Error.h (original)<br>
+++ llvm/trunk/include/llvm/Support/Error.h Mon Feb 11 01:49:37 2019<br>
@@ -1176,7 +1176,7 @@ Error createStringError(std::error_code<br>
/// show more detailed information to the user.<br>
class FileError final : public ErrorInfo<FileError> {<br>
<br>
- friend Error createFileError(std::string, Error);<br>
+ friend Error createFileError(const Twine &, Error);<br>
<br>
public:<br>
void log(raw_ostream &OS) const override {<br>
@@ -1193,15 +1193,15 @@ public:<br>
static char ID;<br>
<br>
private:<br>
- FileError(std::string F, std::unique_ptr<ErrorInfoBase> E) {<br>
+ FileError(const Twine &F, std::unique_ptr<ErrorInfoBase> E) {<br>
assert(E && "Cannot create FileError from Error success value.");<br>
assert(!F.empty() &&<br>
"The file name provided to FileError must not be empty.");<br>
- FileName = F;<br>
+ FileName = F.str();<br>
Err = std::move(E);<br>
}<br>
<br>
- static Error build(std::string F, Error E) {<br>
+ static Error build(const Twine &F, Error E) {<br>
return Error(std::unique_ptr<FileError>(new FileError(F, E.takePayload())));<br>
}<br>
<br>
@@ -1211,11 +1211,17 @@ private:<br>
<br>
/// Concatenate a source file path and/or name with an Error. The resulting<br>
/// Error is unchecked.<br>
-inline Error createFileError(std::string F, Error E) {<br>
+inline Error createFileError(const Twine &F, Error E) {<br>
return FileError::build(F, std::move(E));<br>
}<br>
<br>
-Error createFileError(std::string F, ErrorSuccess) = delete;<br>
+/// Concatenate a source file path and/or name with a std::error_code <br>
+/// to form an Error object.<br>
+inline Error createFileError(const Twine &F, std::error_code EC) {<br>
+ return createFileError(F, errorCodeToError(EC));<br>
+}<br>
+<br>
+Error createFileError(const Twine &F, ErrorSuccess) = delete;<br>
<br>
/// Helper for check-and-exit error handling.<br>
///<br>
<br>
Modified: llvm/trunk/tools/llvm-objcopy/CopyConfig.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objcopy/CopyConfig.cpp?rev=353679&r1=353678&r2=353679&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objcopy/CopyConfig.cpp?rev=353679&r1=353678&r2=353679&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/tools/llvm-objcopy/CopyConfig.cpp (original)<br>
+++ llvm/trunk/tools/llvm-objcopy/CopyConfig.cpp Mon Feb 11 01:49:37 2019<br>
@@ -263,7 +263,7 @@ static Error addSymbolsToRenameFromFile(<br>
SmallVector<StringRef, 16> Lines;<br>
auto BufOrErr = MemoryBuffer::getFile(Filename);<br>
if (!BufOrErr)<br>
- return createError(Filename, BufOrErr.getError());<br>
+ return createFileError(Filename, BufOrErr.getError());<br>
<br>
BufOrErr.get()->getBuffer().split(Lines, '\n');<br>
size_t NumLines = Lines.size();<br>
<br>
Modified: llvm/trunk/tools/llvm-objcopy/llvm-objcopy.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objcopy/llvm-objcopy.cpp?rev=353679&r1=353678&r2=353679&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objcopy/llvm-objcopy.cpp?rev=353679&r1=353678&r2=353679&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/tools/llvm-objcopy/llvm-objcopy.cpp (original)<br>
+++ llvm/trunk/tools/llvm-objcopy/llvm-objcopy.cpp Mon Feb 11 01:49:37 2019<br>
@@ -52,11 +52,6 @@ namespace objcopy {<br>
// The name this program was invoked as.<br>
StringRef ToolName;<br>
<br>
-Error createError(StringRef File, std::error_code EC) {<br>
- assert(EC); <br>
- return createFileError(File, make_error<StringError>(EC));<br>
-}<br>
-<br>
LLVM_ATTRIBUTE_NORETURN void error(Twine Message) {<br>
WithColor::error(errs(), ToolName) << Message << ".\n";<br>
errs().flush();<br>
@@ -74,7 +69,8 @@ LLVM_ATTRIBUTE_NORETURN void error(Error<br>
}<br>
<br>
LLVM_ATTRIBUTE_NORETURN void reportError(StringRef File, std::error_code EC) {<br>
- error(createError(File, EC));<br>
+ assert(EC);<br>
+ error(createFileError(File, EC));<br>
}<br>
<br>
LLVM_ATTRIBUTE_NORETURN void reportError(StringRef File, Error E) {<br>
<br>
Modified: llvm/trunk/tools/llvm-objcopy/llvm-objcopy.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objcopy/llvm-objcopy.h?rev=353679&r1=353678&r2=353679&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objcopy/llvm-objcopy.h?rev=353679&r1=353678&r2=353679&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/tools/llvm-objcopy/llvm-objcopy.h (original)<br>
+++ llvm/trunk/tools/llvm-objcopy/llvm-objcopy.h Mon Feb 11 01:49:37 2019<br>
@@ -18,8 +18,6 @@<br>
namespace llvm {<br>
namespace objcopy {<br>
<br>
-Error createError(StringRef File, std::error_code EC);<br>
-<br>
LLVM_ATTRIBUTE_NORETURN extern void error(Twine Message);<br>
LLVM_ATTRIBUTE_NORETURN extern void error(Error E);<br>
LLVM_ATTRIBUTE_NORETURN extern void reportError(StringRef File, Error E);<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div>