ROSE 0.11.145.272
Disassembler/Null.h
1#ifndef ROSE_BinaryAnalysis_Disassembler_Null_H
2#define ROSE_BinaryAnalysis_Disassembler_Null_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_BINARY_ANALYSIS
5#include <Rose/BinaryAnalysis/Disassembler/Base.h>
6
7#include <Rose/BinaryAnalysis/Architecture/BasicTypes.h>
8
9#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10#include <boost/serialization/access.hpp>
11#include <boost/serialization/base_object.hpp>
12#endif
13
14namespace Rose {
15namespace BinaryAnalysis {
16namespace Disassembler {
17
22class Null: public Base {
23public:
25 using Ptr = NullPtr;
26
27#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28private:
29 friend class boost::serialization::access;
30
31 template<class S>
32 void serialize(S &s, const unsigned /*version*/) {
33 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base);
34 }
35#endif
36
37protected:
39
40public:
41 virtual ~Null();
42
45
46 virtual Base::Ptr clone() const override;
47 virtual SgAsmInstruction* disassembleOne(const MemoryMap::Ptr&, Address va, AddressSet *successors = NULL) override;
49};
50
51} // namespace
52} // namespace
53} // namespace
54
55#endif
56#endif
Virtual base class for instruction disassemblers.
virtual SgAsmInstruction * makeUnknownInstruction(const Exception &) override
Makes an unknown instruction from an exception.
virtual Base::Ptr clone() const override
Creates a new copy of a disassembler.
virtual SgAsmInstruction * disassembleOne(const MemoryMap::Ptr &, Address va, AddressSet *successors=NULL) override
This is the lowest level disassembly function and is implemented in the architecture-specific subclas...
static Ptr instance(const Architecture::BaseConstPtr &)
Allocating constructor.
Reference-counting intrusive smart pointer.
Base class for machine instructions.
std::shared_ptr< const Base > BaseConstPtr
Reference counted pointer for Architecture::Base.
std::uint64_t Address
Address.
Definition Address.h:11
The ROSE library.