Fixed version of 122160 (the previous one would fold undefined symbols).
[oota-llvm.git] / lib / MC / MachObjectWriter.cpp
index 17615eef6974be696f628901b08aec43a5a96130..11681ca90b162775d263e7d8529a4e3451c3d086 100644 (file)
@@ -1125,7 +1125,14 @@ public:
 
   bool IsSymbolRefDifferenceFullyResolved(const MCAssembler &Asm,
                                           const MCSymbolRefExpr *A,
-                                          const MCSymbolRefExpr *B) const {
+                                          const MCSymbolRefExpr *B,
+                                          bool InSet) const {
+    if (InSet)
+      return true;
+
+    if (!TargetObjectWriter->useAggressiveSymbolFolding())
+      return false;
+
     // The effective address is
     //     addr(atom(A)) + offset(A)
     //   - addr(atom(B)) - offset(B)