- RelocToApply visit(uint32_t RelocType, RelocationRef R, uint64_t SecAddr = 0,
- uint64_t Value = 0) {
+ RelocToApply visit(uint32_t RelocType, RelocationRef R, uint64_t Value = 0) {
+ if (isa<ELFObjectFileBase>(ObjToVisit))
+ return visitELF(RelocType, R, Value);
+ if (isa<COFFObjectFile>(ObjToVisit))
+ return visitCOFF(RelocType, R, Value);
+ if (isa<MachOObjectFile>(ObjToVisit))
+ return visitMachO(RelocType, R, Value);
+
+ HasError = true;
+ return RelocToApply();
+ }
+
+ bool error() { return HasError; }
+
+private:
+ const ObjectFile &ObjToVisit;
+ bool HasError;
+
+ RelocToApply visitELF(uint32_t RelocType, RelocationRef R, uint64_t Value) {