diff options
author | David Blaikie <dblaikie@gmail.com> | 2014-08-21 20:44:56 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2014-08-21 20:44:56 +0000 |
commit | 1961f14cf965e63d944d8888a089067cde142d10 (patch) | |
tree | 22b9817765f165fa1d6f170c4c029b48e7c8c718 /llvm/utils/FileCheck/FileCheck.cpp | |
parent | e423ed36f064e0830040c623f2f0a66df1c20814 (diff) | |
download | bcm5719-llvm-1961f14cf965e63d944d8888a089067cde142d10.tar.gz bcm5719-llvm-1961f14cf965e63d944d8888a089067cde142d10.zip |
Explicitly pass ownership of the MemoryBuffer to AddNewSourceBuffer using std::unique_ptr
llvm-svn: 216223
Diffstat (limited to 'llvm/utils/FileCheck/FileCheck.cpp')
-rw-r--r-- | llvm/utils/FileCheck/FileCheck.cpp | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/llvm/utils/FileCheck/FileCheck.cpp b/llvm/utils/FileCheck/FileCheck.cpp index e8365fc248a..9203c4cf33c 100644 --- a/llvm/utils/FileCheck/FileCheck.cpp +++ b/llvm/utils/FileCheck/FileCheck.cpp @@ -636,8 +636,9 @@ struct CheckString { /// /// \param PreserveHorizontal Don't squash consecutive horizontal whitespace /// characters to a single space. -static MemoryBuffer *CanonicalizeInputFile(std::unique_ptr<MemoryBuffer> MB, - bool PreserveHorizontal) { +static std::unique_ptr<MemoryBuffer> +CanonicalizeInputFile(std::unique_ptr<MemoryBuffer> MB, + bool PreserveHorizontal) { SmallString<128> NewFile; NewFile.reserve(MB->getBufferSize()); @@ -662,8 +663,8 @@ static MemoryBuffer *CanonicalizeInputFile(std::unique_ptr<MemoryBuffer> MB, ++Ptr; } - return MemoryBuffer::getMemBufferCopy(NewFile.str(), - MB->getBufferIdentifier()); + return std::unique_ptr<MemoryBuffer>( + MemoryBuffer::getMemBufferCopy(NewFile.str(), MB->getBufferIdentifier())); } static bool IsPartOfWord(char c) { @@ -838,25 +839,25 @@ static bool ReadCheckFile(SourceMgr &SM, // If we want to canonicalize whitespace, strip excess whitespace from the // buffer containing the CHECK lines. Remove DOS style line endings. - MemoryBuffer *F = CanonicalizeInputFile(std::move(FileOrErr.get()), - NoCanonicalizeWhiteSpace); - - SM.AddNewSourceBuffer(F, SMLoc()); + std::unique_ptr<MemoryBuffer> F = + CanonicalizeInputFile(std::move(*FileOrErr), NoCanonicalizeWhiteSpace); // Find all instances of CheckPrefix followed by : in the file. StringRef Buffer = F->getBuffer(); + SM.AddNewSourceBuffer(std::move(F), SMLoc()); + std::vector<Pattern> ImplicitNegativeChecks; for (const auto &PatternString : ImplicitCheckNot) { // Create a buffer with fake command line content in order to display the // command line option responsible for the specific implicit CHECK-NOT. std::string Prefix = std::string("-") + ImplicitCheckNot.ArgStr + "='"; std::string Suffix = "'"; - MemoryBuffer *CmdLine = MemoryBuffer::getMemBufferCopy( - Prefix + PatternString + Suffix, "command line"); + std::unique_ptr<MemoryBuffer> CmdLine(MemoryBuffer::getMemBufferCopy( + Prefix + PatternString + Suffix, "command line")); StringRef PatternInBuffer = CmdLine->getBuffer().substr(Prefix.size(), PatternString.size()); - SM.AddNewSourceBuffer(CmdLine, SMLoc()); + SM.AddNewSourceBuffer(std::move(CmdLine), SMLoc()); ImplicitNegativeChecks.push_back(Pattern(Check::CheckNot)); ImplicitNegativeChecks.back().ParsePattern(PatternInBuffer, @@ -1272,18 +1273,18 @@ int main(int argc, char **argv) { // Remove duplicate spaces in the input file if requested. // Remove DOS style line endings. - MemoryBuffer *F = - CanonicalizeInputFile(std::move(File), NoCanonicalizeWhiteSpace); - - SM.AddNewSourceBuffer(F, SMLoc()); - - /// VariableTable - This holds all the current filecheck variables. - StringMap<StringRef> VariableTable; + std::unique_ptr<MemoryBuffer> F = + CanonicalizeInputFile(std::move(File), NoCanonicalizeWhiteSpace); // Check that we have all of the expected strings, in order, in the input // file. StringRef Buffer = F->getBuffer(); + SM.AddNewSourceBuffer(std::move(F), SMLoc()); + + /// VariableTable - This holds all the current filecheck variables. + StringMap<StringRef> VariableTable; + bool hasError = false; unsigned i = 0, j = 0, e = CheckStrings.size(); |