Remove some std stream usage from Support and TableGen

LLVM's coding standards recommend raw_ostream and MemoryBuffer for
reading and writing text.

This has the side effect of allowing clang to compile more of Support
and TableGen in the Microsoft C++ ABI.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187826 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Kleckner
2013-08-06 22:51:21 +00:00
parent 2d66d4cf42
commit 47cfec0284
4 changed files with 25 additions and 19 deletions

View File

@ -7,9 +7,11 @@
//
//===----------------------------------------------------------------------===//
#include "llvm/Support/LockFileManager.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/raw_ostream.h"
#include <fstream>
#include <sys/stat.h>
#include <sys/types.h>
#if LLVM_ON_WIN32
@ -35,16 +37,18 @@ LockFileManager::readLockFile(StringRef LockFileName) {
// Read the owning host and PID out of the lock file. If it appears that the
// owning process is dead, the lock file is invalid.
int PID = 0;
std::string Hostname;
std::ifstream Input(LockFileName.str().c_str());
if (Input >> Hostname >> PID && PID > 0 &&
processStillExecuting(Hostname, PID))
return std::make_pair(Hostname, PID);
OwningPtr<MemoryBuffer> MB;
if (MemoryBuffer::getFile(LockFileName, MB)) {
StringRef Hostname;
StringRef PIDStr;
tie(Hostname, PIDStr) = getToken(MB->getBuffer(), " ");
int PID;
if (PIDStr.getAsInteger(10, PID))
return std::make_pair(std::string(Hostname), PID);
}
// Delete the lock file. It's invalid anyway.
bool Existed;
sys::fs::remove(LockFileName, Existed);
sys::fs::remove(LockFileName);
return None;
}