1#ifndef ROSE_BinaryAnalysis_ByteCode_Jvm_H
2#define ROSE_BinaryAnalysis_ByteCode_Jvm_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_BINARY_ANALYSIS
6#include <Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h>
7#include <Rose/BinaryAnalysis/ByteCode/Analysis.h>
16namespace BinaryAnalysis {
28 const uint8_t* bytes()
const override;
29 size_t size()
const override;
30 Address offset()
const override;
32 void bytes(
const uint8_t* buf);
39 const uint8_t* bytes_;
53 std::string name()
const override;
73 std::string name()
const override;
74 bool isSystemReserved(
const std::string &name)
const override;
76 const Code & code()
const override;
80 void annotate()
override;
82 bool isStatic()
const;
83 std::string descriptor()
const;
102 std::string name()
const override;
103 uint16_t index()
const;
121 std::string name()
const override;
122 uint16_t index()
const;
145 std::string
name()
const override;
146 std::string super_name()
const override;
147 std::string typeSeparator()
const override;
148 void dump()
override;
150 const std::vector<std::string>& strings()
override;
162 std::string name()
const override;
163 bool isSystemReserved(
const std::string &name)
const override;
164 static bool isJvmSystemReserved(
const std::string &name);
Base class for ByteCode Attribute.
Base class for ByteCode Class.
Base class for ByteCode Code.
Base class for ByteCode Container.
Base class for ByteCode Fields.
Base class for ByteCode Interface.
static Ptr instance(SgAsmJvmFileHeader *jfh, uint16_t index)
Allocating constructor.
static std::string name(uint16_t index, const SgAsmJvmConstantPool *)
The string found at the given index into the constant pool.
static Ptr instance(NamespacePtr &ns, SgAsmJvmFileHeader *jfh)
Allocating constructor.
static Ptr instance(uint8_t *bytes, size_t size, Address offset)
Allocating constructor.
static Ptr instance(SgAsmJvmFileHeader *jfh, SgAsmJvmField *fld)
Allocating constructor.
static Ptr instance(SgAsmJvmFileHeader *jfh, uint16_t index)
Allocating constructor.
static Ptr instance(SgAsmJvmFileHeader *, SgAsmJvmMethod *, Address)
Allocating constructor.
Base class for ByteCode Methods.
Reference-counting intrusive smart pointer.
List of SgAsmInstruction nodes.
Represents an JVM constant pool.
std::uint64_t Address
Address.