[llvm] b45b516 - [RuntimeDyld][COFF] Report fatal error on error, rather than emiting diagnostic.

Lang Hames via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 6 15:17:05 PDT 2020


Author: Lang Hames
Date: 2020-10-06T15:16:29-07:00
New Revision: b45b5166f8f91e601ebd7bc73bb6800155c4c9bc

URL: https://github.com/llvm/llvm-project/commit/b45b5166f8f91e601ebd7bc73bb6800155c4c9bc
DIFF: https://github.com/llvm/llvm-project/commit/b45b5166f8f91e601ebd7bc73bb6800155c4c9bc.diff

LOG: [RuntimeDyld][COFF] Report fatal error on error, rather than emiting diagnostic.

Report a fatal error if an IMAGE_REL_AMD64_ADDR32NB cannot be applied due to an
out-of-range target. Previously we emitted a diagnostic to llvm::errs and
continued.

Patch by Dale Martin. Thanks Dale!

Added: 
    

Modified: 
    llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h

Removed: 
    


################################################################################
diff  --git a/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h b/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h
index ebe3ca33d308..9df3e2e3c3bf 100644
--- a/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h
+++ b/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h
@@ -113,11 +113,10 @@ class RuntimeDyldCOFFX86_64 : public RuntimeDyldCOFF {
       // The MemoryManager can make sure this is always true by forcing the
       // memory layout to be: CodeSection < ReadOnlySection < ReadWriteSection.
       const uint64_t ImageBase = getImageBase();
-      if (Value < ImageBase || ((Value - ImageBase) > UINT32_MAX)) {
-        llvm::errs() << "IMAGE_REL_AMD64_ADDR32NB relocation requires an"
-                     << "ordered section layout.\n";
-        write32BitOffset(Target, 0, 0);
-      } else {
+      if (Value < ImageBase || ((Value - ImageBase) > UINT32_MAX))
+        report_fatal_error("IMAGE_REL_AMD64_ADDR32NB relocation requires an "
+                           "ordered section layout");
+      else {
         write32BitOffset(Target, RE.Addend, Value - ImageBase);
       }
       break;


        


More information about the llvm-commits mailing list