[llvm] r353679 - Small refactoring of FileError. NFC.

Evgeny Leviant via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 11 02:38:36 PST 2019


​Hi Chandler,


I have asserts disabled in my build, that's why I missed it.

It should be Ok, now


Eugene

________________________________
От: Chandler Carruth <chandlerc at gmail.com>
Отправлено: 11 февраля 2019 г. 13:04
Кому: Evgeny Leviant
Копия: llvm-commits
Тема: Re: [llvm] r353679 - Small refactoring of FileError. NFC.

CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.  If you suspect potential phishing or spam email, report it to ReportSpam at accesssoftek.com
Doesn't appear to build w/ asserts enabled:
http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/43706/steps/build/logs/stdio

Please make sure to build and test changes w/ asserts enabled before landing.

On Mon, Feb 11, 2019 at 1:49 AM Eugene Leviant via llvm-commits <llvm-commits at lists.llvm.org<mailto:llvm-commits at lists.llvm.org>> wrote:
Author: evgeny777
Date: Mon Feb 11 01:49:37 2019
New Revision: 353679

URL: http://llvm.org/viewvc/llvm-project?rev=353679&view=rev
Log:
Small refactoring of FileError. NFC.

Differential revision: https://reviews.llvm.org/D57945

Modified:
    llvm/trunk/include/llvm/Support/Error.h
    llvm/trunk/tools/llvm-objcopy/CopyConfig.cpp
    llvm/trunk/tools/llvm-objcopy/llvm-objcopy.cpp
    llvm/trunk/tools/llvm-objcopy/llvm-objcopy.h

Modified: llvm/trunk/include/llvm/Support/Error.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/Error.h?rev=353679&r1=353678&r2=353679&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Support/Error.h (original)
+++ llvm/trunk/include/llvm/Support/Error.h Mon Feb 11 01:49:37 2019
@@ -1176,7 +1176,7 @@ Error createStringError(std::error_code
 /// show more detailed information to the user.
 class FileError final : public ErrorInfo<FileError> {

-  friend Error createFileError(std::string, Error);
+  friend Error createFileError(const Twine &, Error);

 public:
   void log(raw_ostream &OS) const override {
@@ -1193,15 +1193,15 @@ public:
   static char ID;

 private:
-  FileError(std::string F, std::unique_ptr<ErrorInfoBase> E) {
+  FileError(const Twine &F, std::unique_ptr<ErrorInfoBase> E) {
     assert(E && "Cannot create FileError from Error success value.");
     assert(!F.empty() &&
            "The file name provided to FileError must not be empty.");
-    FileName = F;
+    FileName = F.str();
     Err = std::move(E);
   }

-  static Error build(std::string F, Error E) {
+  static Error build(const Twine &F, Error E) {
     return Error(std::unique_ptr<FileError>(new FileError(F, E.takePayload())));
   }

@@ -1211,11 +1211,17 @@ private:

 /// Concatenate a source file path and/or name with an Error. The resulting
 /// Error is unchecked.
-inline Error createFileError(std::string F, Error E) {
+inline Error createFileError(const Twine &F, Error E) {
   return FileError::build(F, std::move(E));
 }

-Error createFileError(std::string F, ErrorSuccess) = delete;
+/// Concatenate a source file path and/or name with a std::error_code
+/// to form an Error object.
+inline Error createFileError(const Twine &F, std::error_code EC) {
+  return createFileError(F, errorCodeToError(EC));
+}
+
+Error createFileError(const Twine &F, ErrorSuccess) = delete;

 /// Helper for check-and-exit error handling.
 ///

Modified: llvm/trunk/tools/llvm-objcopy/CopyConfig.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objcopy/CopyConfig.cpp?rev=353679&r1=353678&r2=353679&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-objcopy/CopyConfig.cpp (original)
+++ llvm/trunk/tools/llvm-objcopy/CopyConfig.cpp Mon Feb 11 01:49:37 2019
@@ -263,7 +263,7 @@ static Error addSymbolsToRenameFromFile(
   SmallVector<StringRef, 16> Lines;
   auto BufOrErr = MemoryBuffer::getFile(Filename);
   if (!BufOrErr)
-    return createError(Filename, BufOrErr.getError());
+    return createFileError(Filename, BufOrErr.getError());

   BufOrErr.get()->getBuffer().split(Lines, '\n');
   size_t NumLines = Lines.size();

Modified: llvm/trunk/tools/llvm-objcopy/llvm-objcopy.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objcopy/llvm-objcopy.cpp?rev=353679&r1=353678&r2=353679&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-objcopy/llvm-objcopy.cpp (original)
+++ llvm/trunk/tools/llvm-objcopy/llvm-objcopy.cpp Mon Feb 11 01:49:37 2019
@@ -52,11 +52,6 @@ namespace objcopy {
 // The name this program was invoked as.
 StringRef ToolName;

-Error createError(StringRef File, std::error_code EC) {
-  assert(EC);
-  return createFileError(File, make_error<StringError>(EC));
-}
-
 LLVM_ATTRIBUTE_NORETURN void error(Twine Message) {
   WithColor::error(errs(), ToolName) << Message << ".\n";
   errs().flush();
@@ -74,7 +69,8 @@ LLVM_ATTRIBUTE_NORETURN void error(Error
 }

 LLVM_ATTRIBUTE_NORETURN void reportError(StringRef File, std::error_code EC) {
-  error(createError(File, EC));
+  assert(EC);
+  error(createFileError(File, EC));
 }

 LLVM_ATTRIBUTE_NORETURN void reportError(StringRef File, Error E) {

Modified: llvm/trunk/tools/llvm-objcopy/llvm-objcopy.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objcopy/llvm-objcopy.h?rev=353679&r1=353678&r2=353679&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-objcopy/llvm-objcopy.h (original)
+++ llvm/trunk/tools/llvm-objcopy/llvm-objcopy.h Mon Feb 11 01:49:37 2019
@@ -18,8 +18,6 @@
 namespace llvm {
 namespace objcopy {

-Error createError(StringRef File, std::error_code EC);
-
 LLVM_ATTRIBUTE_NORETURN extern void error(Twine Message);
 LLVM_ATTRIBUTE_NORETURN extern void error(Error E);
 LLVM_ATTRIBUTE_NORETURN extern void reportError(StringRef File, Error E);


_______________________________________________
llvm-commits mailing list
llvm-commits at lists.llvm.org<mailto:llvm-commits at lists.llvm.org>
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190211/bdabfec6/attachment.html>


More information about the llvm-commits mailing list