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 {
26 void bytes(
const uint8_t *bytes);
27 const uint8_t* bytes()
const;
29 void size(
size_t size);
36 const uint8_t *bytes_ =
nullptr;
51 std::string name()
const override;
71 bool isStatic()
const override;
72 bool isSystemReserved(
const std::string &name)
const override;
77 void annotate()
override;
79 std::string descriptor()
const override;
100 std::string name()
const override;
101 uint16_t index()
const;
119 std::string name()
const override;
120 uint16_t index()
const;
140 std::string typeSeparator()
const override;
141 void dump()
override;
143 const std::vector<std::string>& strings()
override;
155 std::string name()
const override;
156 bool isSystemReserved(
const std::string &name)
const override;
157 static bool isJvmSystemReserved(
const std::string &name);
Base class for ByteCode Attribute.
Base class for ByteCode Class.
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 Ptr instance(std::string name, NamespacePtr ns, SgAsmJvmFileHeader *jfh)
Allocating constructor.
static Ptr instance(SgAsmJvmFileHeader *jfh, SgAsmJvmField *fld)
Allocating constructor.
static Ptr instance(SgAsmJvmFileHeader *jfh, uint16_t index)
Allocating constructor.
static Ptr instance(std::string name, Address va, SgAsmJvmFileHeader *jfh, SgAsmJvmMethod *method)
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.