summaryrefslogtreecommitdiffstats
path: root/lld/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lld/lib')
-rw-r--r--lld/lib/ReaderWriter/MachO/ReferenceKinds.cpp24
-rw-r--r--lld/lib/ReaderWriter/MachO/ReferenceKinds.h3
2 files changed, 24 insertions, 3 deletions
diff --git a/lld/lib/ReaderWriter/MachO/ReferenceKinds.cpp b/lld/lib/ReaderWriter/MachO/ReferenceKinds.cpp
index 75c9f1b88b0..f6c2dc510cb 100644
--- a/lld/lib/ReaderWriter/MachO/ReferenceKinds.cpp
+++ b/lld/lib/ReaderWriter/MachO/ReferenceKinds.cpp
@@ -71,13 +71,16 @@ Reference::Kind KindHandler_x86_64::stringToKind(StringRef str) {
.Case("lazyTarget", lazyTarget)
.Case("lazyImmediate", lazyImmediate)
.Case("subordinateFDE", subordinateFDE)
- .Case("subordinateLSDA", subordinateLSDA);
+ .Case("subordinateLSDA", subordinateLSDA)
+ .Default(invalid);
llvm_unreachable("invalid x86_64 Reference kind");
}
StringRef KindHandler_x86_64::kindToString(Reference::Kind kind) {
switch ( (Kinds)kind ) {
+ case invalid:
+ return StringRef("invalid");
case none:
return StringRef("none");
case branch32:
@@ -175,6 +178,9 @@ void KindHandler_x86_64::applyFixup(Kind kind, uint64_t addend,
case subordinateLSDA:
// do nothing
break;
+ case invalid:
+ assert(0 && "invalid Reference Kind");
+ break;
}
}
@@ -194,13 +200,16 @@ Reference::Kind KindHandler_x86::stringToKind(StringRef str) {
.Case("funcRel32", funcRel32)
.Case("pointer32", pointer32)
.Case("lazyTarget", lazyTarget)
- .Case("lazyImmediate", lazyImmediate);
+ .Case("lazyImmediate", lazyImmediate)
+ .Default(invalid);
llvm_unreachable("invalid x86 Reference kind");
}
StringRef KindHandler_x86::kindToString(Reference::Kind kind) {
switch ( (Kinds)kind ) {
+ case invalid:
+ return StringRef("invalid");
case none:
return StringRef("none");
case branch32:
@@ -263,6 +272,9 @@ void KindHandler_x86::applyFixup(Kind kind, uint64_t addend, uint8_t *location,
case subordinateLSDA:
// do nothing
break;
+ case invalid:
+ assert(0 && "invalid Reference Kind");
+ break;
}
}
@@ -287,13 +299,16 @@ Reference::Kind KindHandler_arm::stringToKind(StringRef str) {
.Case("pointer32", pointer32)
.Case("lazyTarget", lazyTarget)
.Case("lazyImmediate", lazyImmediate)
- .Case("subordinateLSDA", subordinateLSDA);
+ .Case("subordinateLSDA", subordinateLSDA)
+ .Default(invalid);
llvm_unreachable("invalid ARM Reference kind");
}
StringRef KindHandler_arm::kindToString(Reference::Kind kind) {
switch ( (Kinds)kind ) {
+ case invalid:
+ return StringRef("invalid");
case none:
return StringRef("none");
case thumbBranch22:
@@ -375,6 +390,9 @@ void KindHandler_arm::applyFixup(Kind kind, uint64_t addend, uint8_t *location,
case subordinateLSDA:
// do nothing
break;
+ case invalid:
+ assert(0 && "invalid Reference Kind");
+ break;
}
}
diff --git a/lld/lib/ReaderWriter/MachO/ReferenceKinds.h b/lld/lib/ReaderWriter/MachO/ReferenceKinds.h
index 063b273c91f..08118082649 100644
--- a/lld/lib/ReaderWriter/MachO/ReferenceKinds.h
+++ b/lld/lib/ReaderWriter/MachO/ReferenceKinds.h
@@ -48,6 +48,7 @@ protected:
class KindHandler_x86_64 : public KindHandler {
public:
enum Kinds {
+ invalid, // used to denote an error creating a Reference
none,
branch32, // CALL or JMP 32-bit pc-rel
ripRel32, // RIP-rel access pc-rel to fix up location
@@ -83,6 +84,7 @@ public:
class KindHandler_x86 : public KindHandler {
public:
enum Kinds {
+ invalid, // used to denote an error creating a Reference
none,
branch32, // CALL or JMP 32-bit pc-rel
abs32, // 32-bit absolute address embedded in instruction
@@ -109,6 +111,7 @@ public:
class KindHandler_arm : public KindHandler {
public:
enum Kinds {
+ invalid, // used to denote an error creating a Reference
none,
thumbBranch22, // thumb b or bl with 22/24-bits of displacement
armBranch24, // arm b or bl with 24-bits of displacement
OpenPOWER on IntegriCloud