<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>