Use the new ARMConstantPoolSymbol class to handle external symbols.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140939 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/ARM/ARMConstantPoolValue.cpp b/lib/Target/ARM/ARMConstantPoolValue.cpp
index 2d2ab88..63af738 100644
--- a/lib/Target/ARM/ARMConstantPoolValue.cpp
+++ b/lib/Target/ARM/ARMConstantPoolValue.cpp
@@ -41,7 +41,7 @@
                                            ARMCP::ARMCPModifier modifier,
                                            bool addCurrentAddress)
   : MachineConstantPoolValue((Type*)Type::getInt32Ty(C)),
-    LabelId(id), Kind(kind), PCAdjust(PCAdj), Modifier(modifier),
+    S(NULL), LabelId(id), Kind(kind), PCAdjust(PCAdj), Modifier(modifier),
     AddCurrentAddress(addCurrentAddress) {}
 
 ARMConstantPoolValue::ARMConstantPoolValue(LLVMContext &C,
@@ -231,7 +231,6 @@
       if (APC->getGV() == this->CVal &&
           APC->getLabelId() == this->getLabelId() &&
           APC->getPCAdjustment() == this->getPCAdjustment() &&
-          CPV_streq(APC->getSymbol(), this->getSymbol()) &&
           APC->getModifier() == this->getModifier())
         return i;
     }
@@ -274,6 +273,12 @@
 
 ARMConstantPoolSymbol *
 ARMConstantPoolSymbol::Create(LLVMContext &C, const char *s,
+                              unsigned ID, unsigned char PCAdj) {
+  return new ARMConstantPoolSymbol(C, s, ID, PCAdj, ARMCP::no_modifier, false);
+}
+
+ARMConstantPoolSymbol *
+ARMConstantPoolSymbol::Create(LLVMContext &C, const char *s,
                               unsigned ID, unsigned char PCAdj,
                               ARMCP::ARMCPModifier Modifier,
                               bool AddCurrentAddress) {