Go back to producing relocations for out of range symbols.

This brings back the behavior from before r252090 for out of range symbols.

Should bring some arm bots back.

llvm-svn: 252119
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp b/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
index fd678fb..7a0a089 100644
--- a/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
+++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
@@ -639,13 +639,11 @@
 
     // If the symbol is external the linker will handle it.
     // FIXME: Should we handle it as an optimization?
-    if (Sym->isExternal()) {
+
+    // If the symbol is out of range, produce a relocation and hope the
+    // linker can handle it. GNU AS produces an error in this case.
+    if (Sym->isExternal() || Value >= 0x400004)
       IsResolved = false;
-    } else {
-      if (Value >= 0x400004)
-        Asm.getContext().reportFatalError(Fixup.getLoc(),
-                                          "out of range for branch");
-    }
   }
   // We must always generate a relocation for BL/BLX instructions if we have
   // a symbol to reference, as the linker relies on knowing the destination