Skip to content

Commit f7c2c32

Browse files
committed
[ELF] Properly reject unsupported e_machine
Fix an incorrect llvm_unreachable.
1 parent 1af073a commit f7c2c32

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

lld/ELF/Target.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,9 @@ TargetInfo *elf::getTarget() {
8989
return getSPARCV9TargetInfo();
9090
case EM_X86_64:
9191
return getX86_64TargetInfo();
92+
default:
93+
fatal("unsupported e_machine value: " + Twine(config->emachine));
9294
}
93-
llvm_unreachable("unknown target machine");
9495
}
9596

9697
ErrorPlace elf::getErrorPlace(const uint8_t *loc) {
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# RUN: yaml2obj %s -o %t.o
2+
# RUN: not ld.lld %t.o -o /dev/null 2>&1 | FileCheck %s
3+
4+
# CHECK: error: unsupported e_machine value: 9
5+
6+
--- !ELF
7+
FileHeader:
8+
Class: ELFCLASS64
9+
Data: ELFDATA2LSB
10+
Type: ET_REL
11+
Machine: EM_S370

0 commit comments

Comments
 (0)