mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-05 18:49:06 +00:00
[llvm-nm] Fix crash when running with --print-armap on corrupt archives.
error() in llvm-nm intentionally does not return so that the callee can move on to future files/slices. When printing the archive map, this is not currently handled (the caller assumes that error() returns), so processing continues despite there being an error. Also, change one return to a break, so that symbols can be printed even if the archive map is corrupt. llvm-svn: 344268
This commit is contained in:
parent
bf4374359e
commit
31ccce8fd0
@ -1755,12 +1755,14 @@ static void dumpSymbolNamesFromFile(std::string &Filename) {
|
||||
outs() << "Archive map\n";
|
||||
for (; I != E; ++I) {
|
||||
Expected<Archive::Child> C = I->getMember();
|
||||
if (!C)
|
||||
if (!C) {
|
||||
error(C.takeError(), Filename);
|
||||
break;
|
||||
}
|
||||
Expected<StringRef> FileNameOrErr = C->getName();
|
||||
if (!FileNameOrErr) {
|
||||
error(FileNameOrErr.takeError(), Filename);
|
||||
return;
|
||||
break;
|
||||
}
|
||||
StringRef SymName = I->getName();
|
||||
outs() << SymName << " in " << FileNameOrErr.get() << "\n";
|
||||
|
Loading…
Reference in New Issue
Block a user