//===------------------ COFF.cpp - COFF format utilities ------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "llvm/ExecutionEngine/Orc/COFF.h" #include "llvm/Object/Binary.h" #define DEBUG_TYPE "orc" namespace llvm::orc { Expected COFFImportFileScanner::operator()(object::Archive &A, MemoryBufferRef MemberBuf, size_t Index) const { // Try to build a binary for the member. auto Bin = object::createBinary(MemberBuf); if (!Bin) { // If we can't then consume the error and return false (i.e. not loadable). consumeError(Bin.takeError()); return false; } // If this is a COFF import file then handle it and return false (not // loadable). if ((*Bin)->isCOFFImportFile()) { ImportedDynamicLibraries.insert((*Bin)->getFileName().str()); return false; } // Otherwise the member is loadable (at least as far as COFFImportFileScanner // is concerned), so return true; return true; } } // namespace llvm::orc