1 //===-- llvm/MC/MCObjectFormat.h - Object Format Info -----------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLVM_MC_MCOBJECTFORMAT_H
11 #define LLVM_MC_MCOBJECTFORMAT_H
16 class MCObjectFormat {
18 virtual ~MCObjectFormat();
20 /// isAbsolute - Check if A - B is an absolute value
22 /// \param InSet - True if this expression is in a set. For example:
30 virtual bool isAbsolute(bool InSet, const MCSymbol &A,
31 const MCSymbol &B) const = 0;
34 class MCELFObjectFormat : public MCObjectFormat {
36 virtual bool isAbsolute(bool InSet, const MCSymbol &A,
37 const MCSymbol &B) const;
40 class MCMachOObjectFormat : public MCObjectFormat {
42 virtual bool isAbsolute(bool InSet, const MCSymbol &A,
43 const MCSymbol &B) const;
46 class MCCOFFObjectFormat : public MCObjectFormat {
48 virtual bool isAbsolute(bool InSet, const MCSymbol &A,
49 const MCSymbol &B) const;
52 } // End llvm namespace