1//===------ NullResolver.h - Reject symbol lookup requests ------*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8// 9// Defines a RuntimeDyld::SymbolResolver subclass that rejects all symbol 10// resolution requests, for clients that have no cross-object fixups. 11// 12//===----------------------------------------------------------------------===// 13 14#ifndef LLVM_EXECUTIONENGINE_ORC_NULLRESOLVER_H 15#define LLVM_EXECUTIONENGINE_ORC_NULLRESOLVER_H 16 17#include "llvm/ExecutionEngine/Orc/Legacy.h" 18#include "llvm/ExecutionEngine/RuntimeDyld.h" 19 20namespace llvm { 21namespace orc { 22 23class NullResolver : public SymbolResolver { 24public: 25 SymbolNameSet getResponsibilitySet(const SymbolNameSet &Symbols) final; 26 27 SymbolNameSet lookup(std::shared_ptr<AsynchronousSymbolQuery> Query, 28 SymbolNameSet Symbols) final; 29}; 30 31/// SymbolResolver impliementation that rejects all resolution requests. 32/// Useful for clients that have no cross-object fixups. 33class NullLegacyResolver : public LegacyJITSymbolResolver { 34public: 35 JITSymbol findSymbol(const std::string &Name) final; 36 37 JITSymbol findSymbolInLogicalDylib(const std::string &Name) final; 38}; 39 40} // End namespace orc. 41} // End namespace llvm. 42 43#endif // LLVM_EXECUTIONENGINE_ORC_NULLRESOLVER_H 44