| //===- Core/AbsoluteAtom.h - An absolute Atom -----------------------------===// |
| // |
| // The LLVM Linker |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef LLD_CORE_ABSOLUTE_ATOM_H_ |
| #define LLD_CORE_ABSOLUTE_ATOM_H_ |
| |
| #include "lld/Core/Atom.h" |
| |
| namespace lld { |
| |
| /// An AbsoluteAtom has no content. |
| /// It exists to represent content at fixed addresses in memory. |
| class AbsoluteAtom : public Atom { |
| public: |
| virtual uint64_t value() const = 0; |
| |
| static inline bool classof(const Atom *a) { |
| return a->definition() == definitionAbsolute; |
| } |
| static inline bool classof(const AbsoluteAtom *) { return true; } |
| |
| protected: |
| AbsoluteAtom() : Atom(definitionAbsolute) {} |
| virtual ~AbsoluteAtom() {} |
| }; |
| |
| } // namespace lld |
| |
| #endif // LLD_CORE_ABSOLUTE_ATOM_H_ |