[lld] r236726 - [ARM] llvm_unreachable => make_*_reloc_error in group relocs

Denis Protivensky dprotivensky at accesssoftek.com
Thu May 7 06:41:45 PDT 2015


Author: denis-protivensky
Date: Thu May  7 08:41:44 2015
New Revision: 236726

URL: http://llvm.org/viewvc/llvm-project?rev=236726&view=rev
Log:
[ARM] llvm_unreachable => make_*_reloc_error in group relocs

Modified:
    lld/trunk/lib/ReaderWriter/ELF/ARM/ARMRelocationHandler.cpp

Modified: lld/trunk/lib/ReaderWriter/ELF/ARM/ARMRelocationHandler.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ARM/ARMRelocationHandler.cpp?rev=236726&r1=236725&r2=236726&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/ARM/ARMRelocationHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/ARM/ARMRelocationHandler.cpp Thu May  7 08:41:44 2015
@@ -112,6 +112,11 @@ static Reference::Addend readAddend(cons
   }
 }
 
+static inline std::error_code make_unsupported_range_group_reloc_error() {
+  return make_dynamic_error_code(
+      "Negative offsets for group relocations are not implemented");
+}
+
 static inline std::error_code applyArmReloc(uint8_t *location, uint32_t result,
                                             uint32_t mask = 0xFFFFFFFF) {
   assert(!(result & ~mask));
@@ -475,10 +480,8 @@ static std::error_code relocR_ARM_ALU_PC
 static std::error_code relocR_ARM_ALU_PC_G0_NC(uint8_t *location, uint64_t P,
                                                uint64_t S, int64_t A) {
   int32_t result = (int32_t)(S + A - P);
-
   if (result < 0)
-    llvm_unreachable(
-        "Negative offsets for group relocations has not been implemented");
+    return make_unsupported_range_group_reloc_error();
 
   DEBUG(llvm::dbgs() << "\t\tHandle " << LLVM_FUNCTION_NAME << " -";
         llvm::dbgs() << " S: 0x" << Twine::utohexstr(S);
@@ -494,10 +497,8 @@ static std::error_code relocR_ARM_ALU_PC
 static std::error_code relocR_ARM_ALU_PC_G1_NC(uint8_t *location, uint64_t P,
                                                uint64_t S, int64_t A) {
   int32_t result = (int32_t)(S + A - P);
-
   if (result < 0)
-    llvm_unreachable(
-        "Negative offsets for group relocations has not been implemented");
+    return make_unsupported_range_group_reloc_error();
 
   DEBUG(llvm::dbgs() << "\t\tHandle " << LLVM_FUNCTION_NAME << " -";
         llvm::dbgs() << " S: 0x" << Twine::utohexstr(S);
@@ -513,10 +514,8 @@ static std::error_code relocR_ARM_ALU_PC
 static std::error_code relocR_ARM_LDR_PC_G2(uint8_t *location, uint64_t P,
                                             uint64_t S, int64_t A) {
   int32_t result = (int32_t)(S + A - P);
-
   if (result < 0)
-    llvm_unreachable(
-        "Negative offsets for group relocations has not been implemented");
+    return make_unsupported_range_group_reloc_error();
 
   DEBUG(llvm::dbgs() << "\t\tHandle " << LLVM_FUNCTION_NAME << " -";
         llvm::dbgs() << " S: 0x" << Twine::utohexstr(S);





More information about the llvm-commits mailing list