diff options
Diffstat (limited to 'lib/Frontend/PrecompiledPreamble.cpp')
-rw-r--r-- | lib/Frontend/PrecompiledPreamble.cpp | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/lib/Frontend/PrecompiledPreamble.cpp b/lib/Frontend/PrecompiledPreamble.cpp index 276a9676eaa9..ced32c670288 100644 --- a/lib/Frontend/PrecompiledPreamble.cpp +++ b/lib/Frontend/PrecompiledPreamble.cpp @@ -12,6 +12,7 @@ #include "clang/Frontend/PrecompiledPreamble.h" #include "clang/AST/DeclObjC.h" +#include "clang/Basic/LangStandard.h" #include "clang/Basic/TargetInfo.h" #include "clang/Frontend/CompilerInstance.h" #include "clang/Frontend/CompilerInvocation.h" @@ -26,11 +27,10 @@ #include "llvm/Config/llvm-config.h" #include "llvm/Support/CrashRecoveryContext.h" #include "llvm/Support/FileSystem.h" -#include "llvm/Support/Mutex.h" -#include "llvm/Support/MutexGuard.h" #include "llvm/Support/Process.h" #include "llvm/Support/VirtualFileSystem.h" #include <limits> +#include <mutex> #include <utility> using namespace clang; @@ -95,7 +95,7 @@ public: void removeFile(StringRef File); private: - llvm::sys::SmartMutex<false> Mutex; + std::mutex Mutex; llvm::StringSet<> Files; }; @@ -105,20 +105,20 @@ TemporaryFiles &TemporaryFiles::getInstance() { } TemporaryFiles::~TemporaryFiles() { - llvm::MutexGuard Guard(Mutex); + std::lock_guard<std::mutex> Guard(Mutex); for (const auto &File : Files) llvm::sys::fs::remove(File.getKey()); } void TemporaryFiles::addFile(StringRef File) { - llvm::MutexGuard Guard(Mutex); + std::lock_guard<std::mutex> Guard(Mutex); auto IsInserted = Files.insert(File).second; (void)IsInserted; assert(IsInserted && "File has already been added"); } void TemporaryFiles::removeFile(StringRef File) { - llvm::MutexGuard Guard(Mutex); + std::lock_guard<std::mutex> Guard(Mutex); auto WasPresent = Files.erase(File); (void)WasPresent; assert(WasPresent && "File was not tracked"); @@ -202,7 +202,7 @@ PrecompilePreambleAction::CreateASTConsumer(CompilerInstance &CI, std::unique_ptr<llvm::raw_ostream> OS; if (InMemStorage) { - OS = llvm::make_unique<llvm::raw_string_ostream>(*InMemStorage); + OS = std::make_unique<llvm::raw_string_ostream>(*InMemStorage); } else { std::string OutputFile; OS = GeneratePCHAction::CreateOutputFile(CI, InFile, OutputFile); @@ -213,7 +213,7 @@ PrecompilePreambleAction::CreateASTConsumer(CompilerInstance &CI, if (!CI.getFrontendOpts().RelocatablePCH) Sysroot.clear(); - return llvm::make_unique<PrecompilePreambleConsumer>( + return std::make_unique<PrecompilePreambleConsumer>( *this, CI.getPreprocessor(), CI.getModuleCache(), Sysroot, std::move(OS)); } @@ -303,7 +303,7 @@ llvm::ErrorOr<PrecompiledPreamble> PrecompiledPreamble::Build( Clang->getFrontendOpts().Inputs[0].getKind().getFormat() != InputKind::Source || Clang->getFrontendOpts().Inputs[0].getKind().getLanguage() == - InputKind::LLVM_IR) { + Language::LLVM_IR) { return BuildPreambleError::BadInputs; } @@ -369,9 +369,11 @@ llvm::ErrorOr<PrecompiledPreamble> PrecompiledPreamble::Build( SourceManager &SourceMgr = Clang->getSourceManager(); for (auto &Filename : PreambleDepCollector->getDependencies()) { - const FileEntry *File = Clang->getFileManager().getFile(Filename); - if (!File || File == SourceMgr.getFileEntryForID(SourceMgr.getMainFileID())) + auto FileOrErr = Clang->getFileManager().getFile(Filename); + if (!FileOrErr || + *FileOrErr == SourceMgr.getFileEntryForID(SourceMgr.getMainFileID())) continue; + auto File = *FileOrErr; if (time_t ModTime = File->getModificationTime()) { FilesInPreamble[File->getName()] = PrecompiledPreamble::PreambleFileHash::createForFile(File->getSize(), |