Plug a memory leak in FileCheck when the input file is empty.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177822 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Benjamin Kramer 2013-03-23 13:56:23 +00:00
parent 1f1058fb1a
commit 7cdba152bb

View File

@ -639,11 +639,11 @@ static bool ReadCheckFile(SourceMgr &SM,
<< ec.message() << '\n'; << ec.message() << '\n';
return true; return true;
} }
MemoryBuffer *F = File.take();
// If we want to canonicalize whitespace, strip excess whitespace from the // If we want to canonicalize whitespace, strip excess whitespace from the
// buffer containing the CHECK lines. Remove DOS style line endings. // buffer containing the CHECK lines. Remove DOS style line endings.
F = CanonicalizeInputFile(F, NoCanonicalizeWhiteSpace); MemoryBuffer *F =
CanonicalizeInputFile(File.take(), NoCanonicalizeWhiteSpace);
SM.AddNewSourceBuffer(F, SMLoc()); SM.AddNewSourceBuffer(F, SMLoc());
@ -803,16 +803,16 @@ int main(int argc, char **argv) {
<< ec.message() << '\n'; << ec.message() << '\n';
return 2; return 2;
} }
MemoryBuffer *F = File.take();
if (F->getBufferSize() == 0) { if (File->getBufferSize() == 0) {
errs() << "FileCheck error: '" << InputFilename << "' is empty.\n"; errs() << "FileCheck error: '" << InputFilename << "' is empty.\n";
return 2; return 2;
} }
// Remove duplicate spaces in the input file if requested. // Remove duplicate spaces in the input file if requested.
// Remove DOS style line endings. // Remove DOS style line endings.
F = CanonicalizeInputFile(F, NoCanonicalizeWhiteSpace); MemoryBuffer *F =
CanonicalizeInputFile(File.take(), NoCanonicalizeWhiteSpace);
SM.AddNewSourceBuffer(F, SMLoc()); SM.AddNewSourceBuffer(F, SMLoc());