In progress on 32-bit addends.
authorEric Christopher <echristo@apple.com>
Wed, 16 Jun 2010 21:32:38 +0000 (21:32 +0000)
committerEric Christopher <echristo@apple.com>
Wed, 16 Jun 2010 21:32:38 +0000 (21:32 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106154 91177308-0d34-0410-b5e6-96231b3b80d8

lib/MC/MachObjectWriter.cpp

index 7be7af21b3f0181217839544bead5fa6cafd4748..347615011a961b7607ddbe26dbe54e90466a16b8 100644 (file)
@@ -756,8 +756,14 @@ public:
     MCSymbolData *SD_A = &Asm.getSymbolData(Target.getSymA()->getSymbol());
     unsigned Index = SD_A->getIndex();
 
-    if (Target.getSymB())
+    // We're only going to have a second symbol in pic mode and it'll be a
+    // subtraction from the picbase. For 32-bit pic the addend is the difference
+    // between the picbase and the next address.
+    if (Target.getSymB()) {
       IsPCRel = 1;
+    } else {
+      FixedValue = 0;
+    }
     
     // struct relocation_info (8 bytes)
     MachRelocationEntry MRE;