reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Derived Classes

tools/lld/include/lld/Core/ArchiveLibraryFile.h
   26 class ArchiveLibraryFile : public File {
tools/lld/include/lld/Core/File.h
  247 class ErrorFile : public File {
tools/lld/include/lld/Core/SharedLibraryFile.h
   20 class SharedLibraryFile : public File {
tools/lld/include/lld/Core/Simple.h
   38 class SimpleFile : public File {
tools/lld/lib/ReaderWriter/MachO/SectCreateFile.h
   23 class SectCreateFile : public File {
tools/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
  624   class NormalizedFile : public lld::File {

Declarations

tools/lld/include/lld/Core/Atom.h
   17 class File;
tools/lld/include/lld/Core/DefinedAtom.h
   18 class File;
tools/lld/include/lld/Core/LinkingContext.h
   27 class File;
tools/lld/include/lld/Core/Reader.h
   30 class File;
tools/lld/include/lld/Core/Writer.h
   18 class File;
tools/lld/include/lld/ReaderWriter/YamlContext.h
   18 class File;
tools/lld/lib/ReaderWriter/MachO/Atoms.h
   23 class File;

References

include/llvm/Support/Casting.h
   34   using SimpleType = From; // The real type this represents...
   37   static SimpleType &getSimplifiedValue(From &Val) { return Val; }
   41   using NonConstSimpleType = typename simplify_type<From>::SimpleType;
   47   static RetType getSimplifiedValue(const From& Val) {
   57   static inline bool doit(const From &Val) {
   76   static inline bool doit(const From &Val) {
   77     return isa_impl<To, From>::doit(Val);
  104   static inline bool doit(const From *Val) {
  106     return isa_impl<To, From>::doit(*Val);
  141 template <class X, class Y> LLVM_NODISCARD inline bool isa(const Y &Val) {
  142   return isa_impl_wrap<X, const Y,
  143                        typename simplify_type<const Y>::SimpleType>::doit(Val);
  236       std::is_same<X, typename simplify_type<X>::SimpleType>::value;
  236       std::is_same<X, typename simplify_type<X>::SimpleType>::value;
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  266                           typename simplify_type<Y*>::SimpleType>::doit(Val);
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
include/llvm/Support/type_traits.h
   55 struct add_const_past_pointer { using type = const T; };
tools/lld/include/lld/Core/ArchiveLibraryFile.h
   26 class ArchiveLibraryFile : public File {
   28   static bool classof(const File *f) {
   34   virtual File *find(StringRef name) = 0;
   37   parseAllMembers(std::vector<std::unique_ptr<File>> &result) = 0;
tools/lld/include/lld/Core/Atom.h
   52   virtual const File& file() const = 0;
tools/lld/include/lld/Core/File.h
  247 class ErrorFile : public File {
tools/lld/include/lld/Core/LinkingContext.h
  157   virtual void createInternalFiles(std::vector<std::unique_ptr<File>> &) const;
  193   virtual void createImplicitFiles(std::vector<std::unique_ptr<File>> &) = 0;
  202   virtual llvm::Error writeFile(const File &linkedFile) const;
  216   virtual llvm::Error handleLoadedFile(File &file) = 0;
  226   virtual std::unique_ptr<File> createEntrySymbolFile() const;
  227   std::unique_ptr<File> createEntrySymbolFile(StringRef filename) const;
  230   virtual std::unique_ptr<File> createUndefinedSymbolFile() const;
  231   std::unique_ptr<File> createUndefinedSymbolFile(StringRef filename) const;
tools/lld/include/lld/Core/Node.h
   59   explicit FileNode(std::unique_ptr<File> f)
   66   File *getFile() { return _file.get(); }
   69   std::unique_ptr<File> _file;
tools/lld/include/lld/Core/Reader.h
   51   virtual ErrorOr<std::unique_ptr<File>>
   73   virtual bool handledDocTag(llvm::yaml::IO &io, const lld::File *&f) const = 0;
   87   ErrorOr<std::unique_ptr<File>>
  103   bool handleTaggedDoc(llvm::yaml::IO &io, const lld::File *&file) const;
tools/lld/include/lld/Core/Resolver.h
   44   llvm::Expected<bool> handleFile(File &);
   47   llvm::Expected<bool> handleArchiveFile(File &);
   50   llvm::Error handleSharedLibrary(File &);
   61   File *getFile(int &index);
   69   llvm::Expected<bool> forEachUndefines(File &file, UndefCallback callback);
   89   std::vector<File *> _files;
   90   std::map<File *, bool> _newUndefinesAdded;
  100   std::map<File *, size_t> _undefineIndex;
tools/lld/include/lld/Core/SharedLibraryFile.h
   20 class SharedLibraryFile : public File {
   22   static bool classof(const File *f) {
tools/lld/include/lld/Core/Simple.h
   38 class SimpleFile : public File {
   40   SimpleFile(StringRef path, File::Kind kind)
  145   explicit SimpleDefinedAtom(const File &f)
  152   const File &file() const override { return _file; }
  241   const File &_file;
  248   SimpleUndefinedAtom(const File &f, StringRef name) : _file(f), _name(name) {
  255   const File &file() const override { return _file; }
  264   const File &_file;
tools/lld/include/lld/Core/Writer.h
   30   virtual llvm::Error writeFile(const File &linkedFile, StringRef path) = 0;
   35   virtual void createImplicitFiles(std::vector<std::unique_ptr<File>> &) {}
tools/lld/include/lld/ReaderWriter/MachOLinkingContext.h
   94   void createImplicitFiles(std::vector<std::unique_ptr<File>> &) override;
  413   llvm::Error handleLoadedFile(File &file) override;
  421   File* flatNamespaceFile() const { return _flatNamespaceFile; }
  493   mutable std::vector<std::unique_ptr<File>> _indirectDylibs;
  501   File *_flatNamespaceFile = nullptr;
tools/lld/include/lld/ReaderWriter/YamlContext.h
   35   File *_file = nullptr;
tools/lld/lib/Core/File.cpp
   16 File::AtomVector<DefinedAtom> File::_noDefinedAtoms;
   17 File::AtomVector<UndefinedAtom> File::_noUndefinedAtoms;
   18 File::AtomVector<SharedLibraryAtom> File::_noSharedLibraryAtoms;
   19 File::AtomVector<AbsoluteAtom> File::_noAbsoluteAtoms;
tools/lld/lib/Core/LinkingContext.cpp
   26 llvm::Error LinkingContext::writeFile(const File &linkedFile) const {
   30 std::unique_ptr<File> LinkingContext::createEntrySymbolFile() const {
   34 std::unique_ptr<File>
   39                                                        File::kindEntryObject));
   45 std::unique_ptr<File> LinkingContext::createUndefinedSymbolFile() const {
   49 std::unique_ptr<File>
   54     new SimpleFile(filename, File::kindUndefinedSymsObject));
   62     std::vector<std::unique_ptr<File>> &result) const {
   63   if (std::unique_ptr<File> file = createEntrySymbolFile())
   65   if (std::unique_ptr<File> file = createUndefinedSymbolFile())
tools/lld/lib/Core/Reader.cpp
   35 ErrorOr<std::unique_ptr<File>>
   63                                const lld::File *&file) const {
tools/lld/lib/Core/Resolver.cpp
   32 llvm::Expected<bool> Resolver::handleFile(File &file) {
   49 llvm::Expected<bool> Resolver::forEachUndefines(File &file,
   74 llvm::Expected<bool> Resolver::handleArchiveFile(File &file) {
   78     if (File *member = archiveFile->find(undefName)) {
   86 llvm::Error Resolver::handleSharedLibrary(File &file) {
  191 File *Resolver::getFile(int &index) {
  217   std::set<File *> seen;
  222     File *file = getFile(index);
  233     case File::kindErrorObject:
  234     case File::kindNormalizedObject:
  235     case File::kindMachObject:
  236     case File::kindCEntryObject:
  237     case File::kindHeaderObject:
  238     case File::kindEntryObject:
  239     case File::kindUndefinedSymsObject:
  240     case File::kindStubHelperObject:
  241     case File::kindResolverMergedObject:
  242     case File::kindSectCreateObject: {
  262     case File::kindArchiveLibrary: {
  276     case File::kindSharedLibrary:
tools/lld/lib/Driver/DarwinLdDriver.cpp
   95 static std::vector<std::unique_ptr<File>>
   97   std::vector<std::unique_ptr<File>> result;
  102 static std::vector<std::unique_ptr<File>>
  103 parseMemberFiles(std::unique_ptr<File> file) {
  104   std::vector<std::unique_ptr<File>> members;
  114 std::vector<std::unique_ptr<File>> loadFile(MachOLinkingContext &ctx,
  123   ErrorOr<std::unique_ptr<File>> fileOrErr =
  127   std::unique_ptr<File> &file = fileOrErr.get();
  138   std::vector<std::unique_ptr<File>> files;
  160   std::vector<std::unique_ptr<File>> files =
  162   for (std::unique_ptr<File> &file : files)
 1134   std::vector<std::unique_ptr<File>> Files;
tools/lld/lib/ReaderWriter/FileArchive.cpp
   50   File *find(StringRef name) override {
   68     std::unique_ptr<File> result;
   72     File *file = result.get();
   81   parseAllMembers(std::vector<std::unique_ptr<File>> &result) override {
   87       std::unique_ptr<File> file;
  139                                     std::unique_ptr<File> &result) const {
  153     ErrorOr<std::unique_ptr<File>> fileOrErr =
  198   std::vector<std::unique_ptr<File>> _filesReturned;
  209   ErrorOr<std::unique_ptr<File>> loadFile(std::unique_ptr<MemoryBuffer> mb,
  212     std::unique_ptr<File> ret =
tools/lld/lib/ReaderWriter/MachO/Atoms.h
   29   MachODefinedAtom(const File &f, const StringRef name, Scope scope,
   37   MachODefinedAtom(const File &f, const StringRef name, Scope scope,
   89   MachODefinedCustomSectionAtom(const File &f, const StringRef name,
  113   MachOTentativeDefAtom(const File &f, const StringRef name, Scope scope,
  143   MachOSharedLibraryAtom(const File &file, StringRef name,
  157   const File &file() const override { return _file; }
  172   const File &_file;
tools/lld/lib/ReaderWriter/MachO/CompactUnwindPass.cpp
   67   UnwindInfoAtom(ArchHandler &archHandler, const File &file, bool isBig,
tools/lld/lib/ReaderWriter/MachO/File.h
   32     : SimpleFile(mb->getBufferIdentifier(), File::kindMachObject),
   37     : SimpleFile(path, File::kindMachObject) {}
  229   static inline bool classof(const File *F) {
  230     return F->kind() == File::kindMachObject;
tools/lld/lib/ReaderWriter/MachO/GOTPass.cpp
   53   GOTEntryAtom(const File &file, bool is64, StringRef name)
tools/lld/lib/ReaderWriter/MachO/LayoutPass.cpp
  136 static void printDefinedAtoms(const File::AtomRange<DefinedAtom> &atomRange) {
  149 void LayoutPass::checkFollowonChain(const File::AtomRange<DefinedAtom> &range) {
  225   const File *leftFile = &leftRoot->file();
  226   const File *rightFile = &rightRoot->file();
  334 void LayoutPass::buildFollowOnTable(const File::AtomRange<DefinedAtom> &range) {
  403 LayoutPass::buildOrdinalOverrideMap(const File::AtomRange<DefinedAtom> &range) {
  423 LayoutPass::decorate(File::AtomRange<DefinedAtom> &atomRange) const {
  435 void LayoutPass::undecorate(File::AtomRange<DefinedAtom> &atomRange,
  447   File::AtomRange<DefinedAtom> atomRange = mergedFile.defined();
tools/lld/lib/ReaderWriter/MachO/LayoutPass.h
   75   void buildFollowOnTable(const File::AtomRange<DefinedAtom> &range);
   78   void buildOrdinalOverrideMap(const File::AtomRange<DefinedAtom> &range);
  106   std::vector<SortKey> decorate(File::AtomRange<DefinedAtom> &atomRange) const;
  108   void undecorate(File::AtomRange<DefinedAtom> &atomRange,
  112   void checkFollowonChain(const File::AtomRange<DefinedAtom> &range);
tools/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp
  179     File *file = node->getFile();
  681   ErrorOr<std::unique_ptr<File>> fileOrErr =
  685   std::unique_ptr<File> &file = fileOrErr.get();
  743                             std::vector<std::unique_ptr<File> > &result) {
  939   const File *objFile = &atom->file();
 1002     File *file = node->getFile();
 1025 llvm::Error MachOLinkingContext::handleLoadedFile(File &file) {
tools/lld/lib/ReaderWriter/MachO/MachONormalizedFile.h
  312 llvm::Expected<std::unique_ptr<lld::File>>
  318 normalizedFromAtoms(const lld::File &atomFile, const MachOLinkingContext &ctxt);
  328   bool handledDocTag(llvm::yaml::IO &io, const lld::File *&file) const override;
tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp
  541   ErrorOr<std::unique_ptr<File>>
  544     std::unique_ptr<File> ret =
  567   ErrorOr<std::unique_ptr<File>>
  570     std::unique_ptr<File> ret =
tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp
  114   void      processDefinedAtoms(const lld::File &atomFile);
  125   llvm::Error addSymbols(const lld::File &atomFile, NormalizedFile &file);
  126   void      addIndirectSymbols(const lld::File &atomFile, NormalizedFile &file);
  127   void      addRebaseAndBindingInfo(const lld::File &, NormalizedFile &file);
  128   void      addExportInfo(const lld::File &, NormalizedFile &file);
  129   void      addSectionRelocs(const lld::File &, NormalizedFile &file);
  130   void      addFunctionStarts(const lld::File &, NormalizedFile &file);
  131   void      buildDataInCodeArray(const lld::File &, NormalizedFile &file);
  132   void      addDependentDylibs(const lld::File &, NormalizedFile &file);
  399 void Util::processDefinedAtoms(const lld::File &atomFile) {
  804   const File *objFile = nullptr;
 1033 llvm::Error Util::addSymbols(const lld::File &atomFile,
 1170 void Util::addIndirectSymbols(const lld::File &atomFile, NormalizedFile &file) {
 1220 void Util::addDependentDylibs(const lld::File &atomFile,
 1292 void Util::addSectionRelocs(const lld::File &, NormalizedFile &file) {
 1335 void Util::addFunctionStarts(const lld::File &, NormalizedFile &file) {
 1379 void Util::buildDataInCodeArray(const lld::File &, NormalizedFile &file) {
 1421 void Util::addRebaseAndBindingInfo(const lld::File &atomFile,
 1533 void Util::addExportInfo(const lld::File &atomFile, NormalizedFile &nFile) {
 1585 normalizedFromAtoms(const lld::File &atomFile,
tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp
 1401 llvm::Expected<std::unique_ptr<lld::File>>
 1410 llvm::Expected<std::unique_ptr<lld::File>>
 1618 llvm::Expected<std::unique_ptr<lld::File>>
tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp
  757                                                  const lld::File *&file) const {
tools/lld/lib/ReaderWriter/MachO/ObjCPass.cpp
   32   ObjCImageInfoAtom(const File &file, bool isBig,
tools/lld/lib/ReaderWriter/MachO/SectCreateFile.h
   23 class SectCreateFile : public File {
   27     SectCreateAtom(const File &file, StringRef segName, StringRef sectName,
tools/lld/lib/ReaderWriter/MachO/StubsPass.cpp
   36   LazyPointerAtom(const File &file, bool is64)
   72   NonLazyPointerAtom(const File &file, bool is64, ContentType contentType)
  109   StubAtom(const File &file, const ArchHandler::StubInfo &stubInfo)
  143   StubHelperAtom(const File &file, const ArchHandler::StubInfo &stubInfo)
  178   StubHelperCommonAtom(const File &file, const ArchHandler::StubInfo &stubInfo)
tools/lld/lib/ReaderWriter/MachO/TLVPass.cpp
   29   TLVPEntryAtom(const File &file, bool is64, StringRef name)
tools/lld/lib/ReaderWriter/MachO/WriterMachO.cpp
   30   llvm::Error writeFile(const lld::File &file, StringRef path) override {
   48   void createImplicitFiles(std::vector<std::unique_ptr<File>> &r) override {
tools/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
   75   RefNameBuilder(const lld::File &file)
  183   RefNameResolver(const lld::File *file, IO &io);
  228   const lld::File  *_content;
  286   static void enumeration(IO &io, lld::File::Kind &value) {
  287     io.enumCase(value, "error-object",   lld::File::kindErrorObject);
  288     io.enumCase(value, "object",         lld::File::kindMachObject);
  289     io.enumCase(value, "shared-library", lld::File::kindSharedLibrary);
  290     io.enumCase(value, "static-library", lld::File::kindArchiveLibrary);
  527 template <typename T> struct SequenceTraits<File::AtomRange<T> > {
  528   static size_t size(IO &io, File::AtomRange<T> &seq) { return seq.size(); }
  529   static T *&element(IO &io, File::AtomRange<T> &seq, size_t index) {
  559   static size_t size(IO &io, std::vector<const lld::File *> &seq) {
  562   static const lld::File *&element(IO &io, std::vector<const lld::File *> &seq,
  562   static const lld::File *&element(IO &io, std::vector<const lld::File *> &seq,
  576     NormArchiveFile(IO &io, const lld::File *file)
  582     const lld::File *denormalize(IO &io) { return this; }
  607     File *find(StringRef name) override {
  616     parseAllMembers(std::vector<std::unique_ptr<File>> &result) override {
  624   class NormalizedFile : public lld::File {
  633     NormalizedFile(IO &io, const lld::File *file)
  645     const lld::File *denormalize(IO &io);
  692   static void mapping(IO &io, const lld::File *&file) {
  704   static void mappingAtoms(IO &io, const lld::File *&file) {
  706     MappingNormalizationHeap<NormalizedFile, const lld::File *>
  726   static void mappingArchive(IO &io, const lld::File *&file) {
  728     MappingNormalizationHeap<NormArchiveFile, const lld::File *>
  759       typedef MappingTraits<const lld::File *>::NormalizedFile NormalizedFile;
  840       typedef MappingTraits<const lld::File *>::NormalizedFile NormalizedFile;
  858     const lld::File &fileFromContext(IO &io) {
  865     const lld::File &file() const override { return _file; }
  920     const lld::File                    &_file;
  947       typedef MappingTraits<const lld::File *>::NormalizedFile NormalizedFile;
 1011       typedef MappingTraits<const lld::File *>::NormalizedFile NormalizedFile;
 1024     const lld::File &fileFromContext(IO &io) {
 1031     const lld::File &file() const override { return _file; }
 1035     const lld::File     &_file;
 1077       typedef MappingTraits<const lld::File *>::NormalizedFile NormalizedFile;
 1093     const lld::File &fileFromContext(IO &io) {
 1100     const lld::File &file() const override { return _file; }
 1107     const lld::File &_file;
 1153       typedef MappingTraits<const lld::File *>::NormalizedFile NormalizedFile;
 1166     const lld::File &fileFromContext(IO &io) {
 1173     const lld::File &file() const override { return _file; }
 1178     const lld::File &_file;
 1191       typedef MappingTraits<const lld::File *>::NormalizedFile NormalizedFile;
 1220 RefNameResolver::RefNameResolver(const lld::File *file, IO &io) : _io(io) {
 1247 inline const lld::File *
 1284   typedef MappingTraits<const lld::File *>::NormalizedFile NormalizedFile;
 1299   llvm::Error writeFile(const lld::File &file, StringRef outPath) override {
 1313     const lld::File *fileRef = &file;
 1329   bool handledDocTag(llvm::yaml::IO &io, const lld::File *&file) const override {
 1331       MappingTraits<const lld::File *>::mappingAtoms(io, file);
 1340   bool handledDocTag(llvm::yaml::IO &io, const lld::File *&file) const override {
 1342       MappingTraits<const lld::File *>::mappingArchive(io, file);
 1358   ErrorOr<std::unique_ptr<File>>
 1368     std::vector<const lld::File *> createdFiles;
 1377     const File *file = createdFiles[0];
 1379     File *f = const_cast<File *>(file);
tools/lld/unittests/MachOTests/MachONormalizedFileToAtomsTests.cpp
   29   llvm::Expected<std::unique_ptr<const lld::File>> atom_f =
   69   llvm::Expected<std::unique_ptr<const lld::File>> atom_f =
   72   const lld::File &file = **atom_f;
usr/include/c++/7.4.0/bits/unique_ptr.h
   68         default_delete(const default_delete<_Up>&) noexcept { }
   72       operator()(_Tp* __ptr) const
   74 	static_assert(!is_void<_Tp>::value,
   76 	static_assert(sizeof(_Tp)>0,
  122 	  using type = _Up*;
  137       using pointer = typename _Ptr<_Tp, _Dp>::type;
  161 	typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type;
  163       __uniq_ptr_impl<_Tp, _Dp> _M_t;
  166       using pointer	  = typename __uniq_ptr_impl<_Tp, _Dp>::pointer;
  167       using element_type  = _Tp;
  252 	unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept
  297           __safe_conversion_up<_Up, _Ep>,
  301 	operator=(unique_ptr<_Up, _Ep>&& __u) noexcept
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  381     : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  602                           is_void<_Tp>>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
 1554     { typedef _Tp     type; };
 1558     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1645     { typedef _Tp&   type; };
 1650     : public __add_lvalue_reference_helper<_Tp>
 1983     { typedef _Up     type; };