1285163Sdim//===------ NullResolver.h - Reject symbol lookup requests ------*- C++ -*-===//
2285163Sdim//
3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4353358Sdim// See https://llvm.org/LICENSE.txt for license information.
5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6285163Sdim//
7285163Sdim//===----------------------------------------------------------------------===//
8285163Sdim//
9285163Sdim//   Defines a RuntimeDyld::SymbolResolver subclass that rejects all symbol
10285163Sdim// resolution requests, for clients that have no cross-object fixups.
11285163Sdim//
12285163Sdim//===----------------------------------------------------------------------===//
13285163Sdim
14285163Sdim#ifndef LLVM_EXECUTIONENGINE_ORC_NULLRESOLVER_H
15285163Sdim#define LLVM_EXECUTIONENGINE_ORC_NULLRESOLVER_H
16285163Sdim
17341825Sdim#include "llvm/ExecutionEngine/Orc/Legacy.h"
18285163Sdim#include "llvm/ExecutionEngine/RuntimeDyld.h"
19285163Sdim
20285163Sdimnamespace llvm {
21285163Sdimnamespace orc {
22285163Sdim
23341825Sdimclass NullResolver : public SymbolResolver {
24341825Sdimpublic:
25344779Sdim  SymbolNameSet getResponsibilitySet(const SymbolNameSet &Symbols) final;
26341825Sdim
27341825Sdim  SymbolNameSet lookup(std::shared_ptr<AsynchronousSymbolQuery> Query,
28344779Sdim                       SymbolNameSet Symbols) final;
29341825Sdim};
30341825Sdim
31285163Sdim/// SymbolResolver impliementation that rejects all resolution requests.
32285163Sdim/// Useful for clients that have no cross-object fixups.
33341825Sdimclass NullLegacyResolver : public LegacyJITSymbolResolver {
34285163Sdimpublic:
35314564Sdim  JITSymbol findSymbol(const std::string &Name) final;
36285163Sdim
37314564Sdim  JITSymbol findSymbolInLogicalDylib(const std::string &Name) final;
38285163Sdim};
39285163Sdim
40285163Sdim} // End namespace orc.
41285163Sdim} // End namespace llvm.
42285163Sdim
43285163Sdim#endif // LLVM_EXECUTIONENGINE_ORC_NULLRESOLVER_H
44