mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-03-03 16:13:44 +00:00
[MachO] Remove "virtual" and add "override".
llvm-svn: 205057
This commit is contained in:
parent
9d0698e0f2
commit
bc69bce7de
@ -21,15 +21,15 @@ public:
|
||||
const ArrayRef<uint8_t> content, Scope scope)
|
||||
: SimpleDefinedAtom(f), _name(name), _content(content), _scope(scope) {}
|
||||
|
||||
virtual uint64_t size() const { return rawContent().size(); }
|
||||
uint64_t size() const override { return rawContent().size(); }
|
||||
|
||||
virtual ContentType contentType() const { return DefinedAtom::typeCode; }
|
||||
ContentType contentType() const override { return DefinedAtom::typeCode; }
|
||||
|
||||
virtual StringRef name() const { return _name; }
|
||||
StringRef name() const override { return _name; }
|
||||
|
||||
virtual Scope scope() const { return _scope; }
|
||||
Scope scope() const override { return _scope; }
|
||||
|
||||
virtual ArrayRef<uint8_t> rawContent() const { return _content; }
|
||||
ArrayRef<uint8_t> rawContent() const override { return _content; }
|
||||
|
||||
private:
|
||||
const StringRef _name;
|
||||
|
@ -25,19 +25,19 @@ namespace mach_o {
|
||||
|
||||
class GOTPass : public lld::GOTPass {
|
||||
public:
|
||||
virtual bool noTextRelocs() {
|
||||
bool noTextRelocs() override {
|
||||
return true;
|
||||
}
|
||||
|
||||
virtual bool isGOTAccess(const Reference &, bool &canBypassGOT) {
|
||||
bool isGOTAccess(const Reference &, bool &canBypassGOT) override {
|
||||
return false;
|
||||
}
|
||||
|
||||
virtual void updateReferenceToGOT(const Reference*, bool targetIsNowGOT) {
|
||||
void updateReferenceToGOT(const Reference*, bool targetIsNowGOT) override {
|
||||
|
||||
}
|
||||
|
||||
virtual const DefinedAtom* makeGOTEntry(const Atom&) {
|
||||
const DefinedAtom* makeGOTEntry(const Atom&) override {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
@ -278,10 +278,9 @@ normalizedFromAtoms(const lld::File &atomFile, const MachOLinkingContext &ctxt);
|
||||
|
||||
/// Class for interfacing mach-o yaml files into generic yaml parsing
|
||||
class MachOYamlIOTaggedDocumentHandler : public YamlIOTaggedDocumentHandler {
|
||||
bool handledDocTag(llvm::yaml::IO &io, const lld::File *&file) const;
|
||||
bool handledDocTag(llvm::yaml::IO &io, const lld::File *&file) const override;
|
||||
};
|
||||
|
||||
|
||||
} // namespace mach_o
|
||||
} // namespace lld
|
||||
|
||||
|
@ -78,30 +78,29 @@ public:
|
||||
static const Registry::KindStrings kindStrings[];
|
||||
|
||||
virtual ~KindHandler_x86_64();
|
||||
virtual bool isCallSite(const Reference &);
|
||||
virtual bool isPointer(const Reference &);
|
||||
virtual bool isLazyImmediate(const Reference &);
|
||||
virtual bool isLazyTarget(const Reference &);
|
||||
bool isCallSite(const Reference &) override;
|
||||
bool isPointer(const Reference &) override;
|
||||
bool isLazyImmediate(const Reference &) override;
|
||||
bool isLazyTarget(const Reference &) override;
|
||||
virtual void applyFixup(Reference::KindNamespace ns, Reference::KindArch arch,
|
||||
Reference::KindValue kindValue, uint64_t addend,
|
||||
uint8_t *location, uint64_t fixupAddress,
|
||||
uint64_t targetAddress);
|
||||
uint64_t targetAddress) override;
|
||||
};
|
||||
|
||||
|
||||
class KindHandler_x86 : public KindHandler {
|
||||
public:
|
||||
static const Registry::KindStrings kindStrings[];
|
||||
|
||||
virtual ~KindHandler_x86();
|
||||
virtual bool isCallSite(const Reference &);
|
||||
virtual bool isPointer(const Reference &);
|
||||
virtual bool isLazyImmediate(const Reference &);
|
||||
virtual bool isLazyTarget(const Reference &);
|
||||
bool isCallSite(const Reference &) override;
|
||||
bool isPointer(const Reference &) override;
|
||||
bool isLazyImmediate(const Reference &) override;
|
||||
bool isLazyTarget(const Reference &) override;
|
||||
virtual void applyFixup(Reference::KindNamespace ns, Reference::KindArch arch,
|
||||
Reference::KindValue kindValue, uint64_t addend,
|
||||
uint8_t *location, uint64_t fixupAddress,
|
||||
uint64_t targetAddress);
|
||||
uint64_t targetAddress) override;
|
||||
};
|
||||
|
||||
class KindHandler_arm : public KindHandler {
|
||||
@ -109,18 +108,16 @@ public:
|
||||
static const Registry::KindStrings kindStrings[];
|
||||
|
||||
virtual ~KindHandler_arm();
|
||||
virtual bool isCallSite(const Reference &);
|
||||
virtual bool isPointer(const Reference &);
|
||||
virtual bool isLazyImmediate(const Reference &);
|
||||
virtual bool isLazyTarget(const Reference &);
|
||||
virtual void applyFixup(Reference::KindNamespace ns, Reference::KindArch arch,
|
||||
Reference::KindValue kindValue, uint64_t addend,
|
||||
uint8_t *location, uint64_t fixupAddress,
|
||||
uint64_t targetAddress);
|
||||
bool isCallSite(const Reference &) override;
|
||||
bool isPointer(const Reference &) override;
|
||||
bool isLazyImmediate(const Reference &) override;
|
||||
bool isLazyTarget(const Reference &) override;
|
||||
void applyFixup(Reference::KindNamespace ns, Reference::KindArch arch,
|
||||
Reference::KindValue kindValue, uint64_t addend,
|
||||
uint8_t *location, uint64_t fixupAddress,
|
||||
uint64_t targetAddress) override;
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace mach_o
|
||||
} // namespace lld
|
||||
|
||||
|
@ -34,23 +34,23 @@ public:
|
||||
StubBinderAtom(const File &f) : _file(f) {
|
||||
}
|
||||
|
||||
virtual const File& file() const {
|
||||
const File& file() const override {
|
||||
return _file;
|
||||
}
|
||||
|
||||
virtual StringRef name() const {
|
||||
StringRef name() const override {
|
||||
return StringRef("dyld_stub_binder");
|
||||
}
|
||||
|
||||
virtual StringRef loadName() const {
|
||||
StringRef loadName() const override {
|
||||
return StringRef("/usr/lib/libSystem.B.dylib");
|
||||
}
|
||||
|
||||
virtual bool canBeNullAtRuntime() const {
|
||||
bool canBeNullAtRuntime() const override {
|
||||
return false;
|
||||
}
|
||||
|
||||
virtual Type type() const {
|
||||
Type type() const override {
|
||||
return Type::Unknown;
|
||||
}
|
||||
|
||||
|
@ -36,19 +36,19 @@ public:
|
||||
&lazyPointer, 0);
|
||||
}
|
||||
|
||||
virtual ContentType contentType() const {
|
||||
ContentType contentType() const override {
|
||||
return DefinedAtom::typeStub;
|
||||
}
|
||||
|
||||
virtual uint64_t size() const {
|
||||
uint64_t size() const override {
|
||||
return 6;
|
||||
}
|
||||
|
||||
virtual ContentPermissions permissions() const {
|
||||
ContentPermissions permissions() const override {
|
||||
return DefinedAtom::permR_X;
|
||||
}
|
||||
|
||||
virtual ArrayRef<uint8_t> rawContent() const {
|
||||
ArrayRef<uint8_t> rawContent() const override {
|
||||
static const uint8_t instructions[] =
|
||||
{ 0xFF, 0x25, 0x00, 0x00, 0x00, 0x00 }; // jmp *lazyPointer
|
||||
assert(sizeof(instructions) == this->size());
|
||||
@ -73,19 +73,19 @@ public:
|
||||
&binder, 0);
|
||||
}
|
||||
|
||||
virtual ContentType contentType() const {
|
||||
ContentType contentType() const override {
|
||||
return DefinedAtom::typeStubHelper;
|
||||
}
|
||||
|
||||
virtual uint64_t size() const {
|
||||
uint64_t size() const override {
|
||||
return 12;
|
||||
}
|
||||
|
||||
virtual ContentPermissions permissions() const {
|
||||
ContentPermissions permissions() const override {
|
||||
return DefinedAtom::permR_X;
|
||||
}
|
||||
|
||||
virtual ArrayRef<uint8_t> rawContent() const {
|
||||
ArrayRef<uint8_t> rawContent() const override {
|
||||
static const uint8_t instructions[] =
|
||||
{ 0x68, 0x00, 0x00, 0x00, 0x00, // pushl $dyld_ImageLoaderCache
|
||||
0xFF, 0x25, 0x00, 0x00, 0x00, 0x00, // jmp *_fast_lazy_bind
|
||||
@ -111,19 +111,19 @@ public:
|
||||
&helperCommon, 0);
|
||||
}
|
||||
|
||||
virtual ContentType contentType() const {
|
||||
ContentType contentType() const override {
|
||||
return DefinedAtom::typeStubHelper;
|
||||
}
|
||||
|
||||
virtual uint64_t size() const {
|
||||
uint64_t size() const override {
|
||||
return 10;
|
||||
}
|
||||
|
||||
virtual ContentPermissions permissions() const {
|
||||
ContentPermissions permissions() const override {
|
||||
return DefinedAtom::permR_X;
|
||||
}
|
||||
|
||||
virtual ArrayRef<uint8_t> rawContent() const {
|
||||
ArrayRef<uint8_t> rawContent() const override {
|
||||
static const uint8_t instructions[] =
|
||||
{ 0x68, 0x00, 0x00, 0x00, 0x00, // pushq $lazy-info-offset
|
||||
0xE9, 0x00, 0x00, 0x00, 0x00 }; // jmp helperhelper
|
||||
@ -148,23 +148,23 @@ public:
|
||||
&shlib, 0);
|
||||
}
|
||||
|
||||
virtual ContentType contentType() const {
|
||||
ContentType contentType() const override {
|
||||
return DefinedAtom::typeLazyPointer;
|
||||
}
|
||||
|
||||
virtual Alignment alignment() const {
|
||||
Alignment alignment() const override {
|
||||
return Alignment(2);
|
||||
}
|
||||
|
||||
virtual uint64_t size() const {
|
||||
uint64_t size() const override {
|
||||
return 4;
|
||||
}
|
||||
|
||||
virtual ContentPermissions permissions() const {
|
||||
ContentPermissions permissions() const override {
|
||||
return DefinedAtom::permRW_;
|
||||
}
|
||||
|
||||
virtual ArrayRef<uint8_t> rawContent() const {
|
||||
ArrayRef<uint8_t> rawContent() const override {
|
||||
static const uint8_t bytes[] = { 0x00, 0x00, 0x00, 0x00 };
|
||||
return makeArrayRef(bytes);
|
||||
}
|
||||
@ -186,23 +186,23 @@ public:
|
||||
&shlib, 0);
|
||||
}
|
||||
|
||||
virtual ContentType contentType() const {
|
||||
ContentType contentType() const override {
|
||||
return DefinedAtom::typeGOT;
|
||||
}
|
||||
|
||||
virtual Alignment alignment() const {
|
||||
Alignment alignment() const override {
|
||||
return Alignment(2);
|
||||
}
|
||||
|
||||
virtual uint64_t size() const {
|
||||
uint64_t size() const override {
|
||||
return 4;
|
||||
}
|
||||
|
||||
virtual ContentPermissions permissions() const {
|
||||
ContentPermissions permissions() const override {
|
||||
return DefinedAtom::permRW_;
|
||||
}
|
||||
|
||||
virtual ArrayRef<uint8_t> rawContent() const {
|
||||
ArrayRef<uint8_t> rawContent() const override {
|
||||
static const uint8_t bytes[] = { 0x00, 0x00, 0x00, 0x0 };
|
||||
return makeArrayRef(bytes);
|
||||
}
|
||||
|
@ -37,19 +37,19 @@ public:
|
||||
&lazyPointer, 0);
|
||||
}
|
||||
|
||||
virtual ContentType contentType() const {
|
||||
ContentType contentType() const override {
|
||||
return DefinedAtom::typeStub;
|
||||
}
|
||||
|
||||
virtual uint64_t size() const {
|
||||
uint64_t size() const override {
|
||||
return 6;
|
||||
}
|
||||
|
||||
virtual ContentPermissions permissions() const {
|
||||
ContentPermissions permissions() const override {
|
||||
return DefinedAtom::permR_X;
|
||||
}
|
||||
|
||||
virtual ArrayRef<uint8_t> rawContent() const {
|
||||
ArrayRef<uint8_t> rawContent() const override {
|
||||
static const uint8_t instructions[] =
|
||||
{ 0xFF, 0x25, 0x00, 0x00, 0x00, 0x00 }; // jmp *lazyPointer
|
||||
assert(sizeof(instructions) == this->size());
|
||||
@ -73,19 +73,19 @@ public:
|
||||
&binder, 0);
|
||||
}
|
||||
|
||||
virtual ContentType contentType() const {
|
||||
ContentType contentType() const override {
|
||||
return DefinedAtom::typeStubHelper;
|
||||
}
|
||||
|
||||
virtual uint64_t size() const {
|
||||
uint64_t size() const override {
|
||||
return 16;
|
||||
}
|
||||
|
||||
virtual ContentPermissions permissions() const {
|
||||
ContentPermissions permissions() const override {
|
||||
return DefinedAtom::permR_X;
|
||||
}
|
||||
|
||||
virtual ArrayRef<uint8_t> rawContent() const {
|
||||
ArrayRef<uint8_t> rawContent() const override {
|
||||
static const uint8_t instructions[] =
|
||||
{ 0x4C, 0x8D, 0x1D, 0x00, 0x00, 0x00, 0x00, // leaq cache(%rip),%r11
|
||||
0x41, 0x53, // push %r11
|
||||
@ -111,19 +111,19 @@ public:
|
||||
&helperCommon, 0);
|
||||
}
|
||||
|
||||
virtual ContentType contentType() const {
|
||||
ContentType contentType() const override {
|
||||
return DefinedAtom::typeStubHelper;
|
||||
}
|
||||
|
||||
virtual uint64_t size() const {
|
||||
uint64_t size() const override {
|
||||
return 10;
|
||||
}
|
||||
|
||||
virtual ContentPermissions permissions() const {
|
||||
ContentPermissions permissions() const override {
|
||||
return DefinedAtom::permR_X;
|
||||
}
|
||||
|
||||
virtual ArrayRef<uint8_t> rawContent() const {
|
||||
ArrayRef<uint8_t> rawContent() const override {
|
||||
static const uint8_t instructions[] =
|
||||
{ 0x68, 0x00, 0x00, 0x00, 0x00, // pushq $lazy-info-offset
|
||||
0xE9, 0x00, 0x00, 0x00, 0x00 }; // jmp helperhelper
|
||||
@ -148,23 +148,23 @@ public:
|
||||
LLD_X86_64_RELOC_LAZY_TARGET, 0, &shlib, 0);
|
||||
}
|
||||
|
||||
virtual ContentType contentType() const {
|
||||
ContentType contentType() const override {
|
||||
return DefinedAtom::typeLazyPointer;
|
||||
}
|
||||
|
||||
virtual Alignment alignment() const {
|
||||
Alignment alignment() const override {
|
||||
return Alignment(3);
|
||||
}
|
||||
|
||||
virtual uint64_t size() const {
|
||||
uint64_t size() const override {
|
||||
return 8;
|
||||
}
|
||||
|
||||
virtual ContentPermissions permissions() const {
|
||||
ContentPermissions permissions() const override {
|
||||
return DefinedAtom::permRW_;
|
||||
}
|
||||
|
||||
virtual ArrayRef<uint8_t> rawContent() const {
|
||||
ArrayRef<uint8_t> rawContent() const override {
|
||||
static const uint8_t bytes[] =
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||
return makeArrayRef(bytes);
|
||||
@ -186,23 +186,23 @@ public:
|
||||
&shlib, 0);
|
||||
}
|
||||
|
||||
virtual ContentType contentType() const {
|
||||
ContentType contentType() const override {
|
||||
return DefinedAtom::typeGOT;
|
||||
}
|
||||
|
||||
virtual Alignment alignment() const {
|
||||
Alignment alignment() const override {
|
||||
return Alignment(3);
|
||||
}
|
||||
|
||||
virtual uint64_t size() const {
|
||||
uint64_t size() const override {
|
||||
return 8;
|
||||
}
|
||||
|
||||
virtual ContentPermissions permissions() const {
|
||||
ContentPermissions permissions() const override {
|
||||
return DefinedAtom::permRW_;
|
||||
}
|
||||
|
||||
virtual ArrayRef<uint8_t> rawContent() const {
|
||||
ArrayRef<uint8_t> rawContent() const override {
|
||||
static const uint8_t bytes[] =
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||
return makeArrayRef(bytes);
|
||||
|
@ -37,15 +37,15 @@ public:
|
||||
, _helperBinderAtom(nullptr) {
|
||||
}
|
||||
|
||||
virtual bool noTextRelocs() {
|
||||
bool noTextRelocs() override {
|
||||
return true;
|
||||
}
|
||||
|
||||
virtual bool isCallSite(const Reference &ref) {
|
||||
bool isCallSite(const Reference &ref) override {
|
||||
return _kindHandler.isCallSite(ref);
|
||||
}
|
||||
|
||||
virtual const DefinedAtom* getStub(const Atom& target) {
|
||||
const DefinedAtom* getStub(const Atom& target) override {
|
||||
auto pos = _targetToStub.find(&target);
|
||||
if ( pos != _targetToStub.end() ) {
|
||||
// Reuse an existing stub.
|
||||
@ -121,7 +121,7 @@ public:
|
||||
}
|
||||
|
||||
|
||||
virtual void addStubAtoms(MutableFile &mergedFile) {
|
||||
void addStubAtoms(MutableFile &mergedFile) override {
|
||||
// Exit early if no stubs needed.
|
||||
if (_targetToStub.empty())
|
||||
return;
|
||||
|
Loading…
x
Reference in New Issue
Block a user