mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-15 04:29:42 +00:00
[ELF] Fix crash when an input is incompatible with a lazy object file
The diagnostic is concise. It is ok because the case is rare.
This commit is contained in:
parent
b4626f22de
commit
bad1b7fbb0
@ -152,18 +152,17 @@ static bool isCompatible(InputFile *file) {
|
||||
return false;
|
||||
}
|
||||
|
||||
InputFile *existing;
|
||||
InputFile *existing = nullptr;
|
||||
if (!objectFiles.empty())
|
||||
existing = objectFiles[0];
|
||||
else if (!sharedFiles.empty())
|
||||
existing = sharedFiles[0];
|
||||
else if (!bitcodeFiles.empty())
|
||||
existing = bitcodeFiles[0];
|
||||
else
|
||||
llvm_unreachable("Must have -m, OUTPUT_FORMAT or existing input file to "
|
||||
"determine target emulation");
|
||||
|
||||
error(toString(file) + " is incompatible with " + toString(existing));
|
||||
std::string with;
|
||||
if (existing)
|
||||
with = " with " + toString(existing);
|
||||
error(toString(file) + " is incompatible" + with);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -10,3 +10,6 @@
|
||||
// * -m was not used.
|
||||
// CHECK: .a({{.*}}a.o) is incompatible with {{.*}}b.o
|
||||
|
||||
// RUN: not ld.lld --start-lib %ta.o --end-lib %tb.o -o /dev/null 2>&1 | FileCheck %s --check-prefix=CHECK2
|
||||
|
||||
// CHECK2: {{.*}}b.o is incompatible{{$}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user