Make it possible for the MCObjectWriter to decide if a given fixup is fully
[oota-llvm.git] / include / llvm / MC / MachObjectWriter.h
index 3e3305f083a21c39799787f3c6be11c7158c39ae..198da8fc1736497ba875b605e5a34fb3f4a36044 100644 (file)
@@ -15,9 +15,9 @@
 #include <cassert>
 
 namespace llvm {
-class MCAsmFixup;
 class MCAssembler;
-class MCDataFragment;
+class MCFragment;
+class MCFixup;
 class MCValue;
 class raw_ostream;
 
@@ -31,11 +31,17 @@ public:
   virtual void ExecutePostLayoutBinding(MCAssembler &Asm);
 
   virtual void RecordRelocation(const MCAssembler &Asm,
-                                const MCDataFragment &Fragment,
-                                const MCAsmFixup &Fixup, MCValue Target,
+                                const MCAsmLayout &Layout,
+                                const MCFragment *Fragment,
+                                const MCFixup &Fixup, MCValue Target,
                                 uint64_t &FixedValue);
 
-  virtual void WriteObject(const MCAssembler &Asm);
+  virtual bool IsFixupFullyResolved(const MCAssembler &Asm,
+                                    const MCValue Target,
+                                    bool IsPCRel,
+                                    const MCFragment *DF) const;
+
+  virtual void WriteObject(const MCAssembler &Asm, const MCAsmLayout &Layout);
 };
 
 } // End llvm namespace