Fix PR134, by checking FileOpenable() on each input file before analyzing its

type.

llvm-svn: 10096
This commit is contained in:
Brian Gaeke 2003-11-19 21:52:09 +00:00
parent 734620bc11
commit 1b0a946551

View File

@ -21,6 +21,7 @@
#include "Support/CommandLine.h"
#include "Support/FileUtilities.h"
#include <cctype>
#include <cstring>
using namespace llvm;
@ -113,18 +114,26 @@ void DumpSymbolNamesFromModule (Module *M) {
void DumpSymbolNamesFromFile (std::string &Filename) {
std::string ErrorMessage;
if (!FileOpenable (Filename)) {
std::cerr << ToolName << ": " << Filename << ": " << strerror (errno)
<< "\n";
return;
}
if (IsBytecode (Filename)) {
Module *Result = ParseBytecodeFile(Filename, &ErrorMessage);
if (Result) {
DumpSymbolNamesFromModule (Result);
} else {
std::cerr << ToolName << ": " << Filename << ": " << ErrorMessage << "\n";
return;
}
} else if (IsArchive (Filename)) {
std::vector<Module *> Modules;
if (ReadArchiveFile (Filename, Modules, &ErrorMessage))
if (ReadArchiveFile (Filename, Modules, &ErrorMessage)) {
std::cerr << ToolName << ": " << Filename << ": "
<< ErrorMessage << "\n";
return;
}
MultipleFiles = true;
std::for_each (Modules.begin (), Modules.end (), DumpSymbolNamesFromModule);
}