1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00

Close input file if exception is thrown

llvm-svn: 1784
This commit is contained in:
Chris Lattner 2002-02-20 18:06:43 +00:00
parent 3b17492321
commit ec7118a6aa

View File

@ -16,16 +16,20 @@ using std::string;
Module *ParseAssemblyFile(const string &Filename) { // throw (ParseException)
FILE *F = stdin;
if (Filename != "-")
if (Filename != "-") {
F = fopen(Filename.c_str(), "r");
if (F == 0) {
throw ParseException(Filename, string("Could not open file '") +
Filename + "'");
if (F == 0)
throw ParseException(Filename, "Could not open file '" + Filename + "'");
}
// TODO: If this throws an exception, F is not closed.
Module *Result = RunVMAsmParser(Filename, F);
Module *Result;
try {
Result = RunVMAsmParser(Filename, F);
} catch (...) {
if (F != stdin) fclose(F); // Make sure to close file descriptor if an
throw; // exception is thrown
}
if (F != stdin)
fclose(F);