mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-15 23:31:37 +00:00
Object/COFF: Fix off-by-one error for object having lots of relocations
llvm-objdump printed out an error message for this off-by-one error, but because it always exits with 0 whether or not it found an error, the test (llvm-objdump/coff-many-relocs.test) succeeded. I made llvm-objdump exit with EXIT_FAILURE when an error is found. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222852 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b69378a26d
commit
d2077b0631
@ -414,7 +414,8 @@ static uint32_t getNumberOfRelocations(const coff_section *Sec,
|
||||
if (getObject(FirstReloc, M, reinterpret_cast<const coff_relocation*>(
|
||||
base + Sec->PointerToRelocations)))
|
||||
return 0;
|
||||
return FirstReloc->VirtualAddress;
|
||||
// -1 to exclude this first relocation entry.
|
||||
return FirstReloc->VirtualAddress - 1;
|
||||
}
|
||||
return Sec->NumberOfRelocations;
|
||||
}
|
||||
|
@ -149,6 +149,7 @@ PrivateHeadersShort("p", cl::desc("Alias for --private-headers"),
|
||||
cl::aliasopt(PrivateHeaders));
|
||||
|
||||
static StringRef ToolName;
|
||||
static int ReturnValue = EXIT_SUCCESS;
|
||||
|
||||
bool llvm::error(std::error_code EC) {
|
||||
if (!EC)
|
||||
@ -156,6 +157,7 @@ bool llvm::error(std::error_code EC) {
|
||||
|
||||
outs() << ToolName << ": error reading file: " << EC.message() << ".\n";
|
||||
outs().flush();
|
||||
ReturnValue = EXIT_FAILURE;
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -895,5 +897,5 @@ int main(int argc, char **argv) {
|
||||
std::for_each(InputFilenames.begin(), InputFilenames.end(),
|
||||
DumpInput);
|
||||
|
||||
return 0;
|
||||
return ReturnValue;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user