<div dir="ltr">probably worth linking to the buildbot failure and replying on the original commit thread to inform the original contributor/help provide breadcrumbs to anyone else interested in that change</div><br><div class="gmail_quote"><div dir="ltr">On Sat, Mar 18, 2017 at 7:23 AM Renato Golin via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: rengolin<br class="gmail_msg">
Date: Sat Mar 18 07:31:32 2017<br class="gmail_msg">
New Revision: 298185<br class="gmail_msg">
<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=298185&view=rev" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project?rev=298185&view=rev</a><br class="gmail_msg">
Log:<br class="gmail_msg">
Revert "Modules: Cache PCMs in memory and avoid a use-after-free"<br class="gmail_msg">
<br class="gmail_msg">
This reverts commit r298165, as it broke the ARM builds.<br class="gmail_msg">
<br class="gmail_msg">
Removed:<br class="gmail_msg">
    cfe/trunk/include/clang/Basic/MemoryBufferCache.h<br class="gmail_msg">
    cfe/trunk/lib/Basic/MemoryBufferCache.cpp<br class="gmail_msg">
    cfe/trunk/test/Modules/Inputs/system-out-of-date/X.h<br class="gmail_msg">
    cfe/trunk/test/Modules/Inputs/system-out-of-date/Y.h<br class="gmail_msg">
    cfe/trunk/test/Modules/Inputs/system-out-of-date/Z.h<br class="gmail_msg">
    cfe/trunk/test/Modules/Inputs/system-out-of-date/module.map<br class="gmail_msg">
    cfe/trunk/test/Modules/Inputs/warning-mismatch/Mismatch.h<br class="gmail_msg">
    cfe/trunk/test/Modules/Inputs/warning-mismatch/System.h<br class="gmail_msg">
    cfe/trunk/test/Modules/Inputs/warning-mismatch/module.modulemap<br class="gmail_msg">
    cfe/trunk/test/Modules/outofdate-rebuild.m<br class="gmail_msg">
    cfe/trunk/test/Modules/system-out-of-date-test.m<br class="gmail_msg">
    cfe/trunk/test/Modules/warning-mismatch.m<br class="gmail_msg">
    cfe/trunk/unittests/Basic/MemoryBufferCacheTest.cpp<br class="gmail_msg">
Modified:<br class="gmail_msg">
    cfe/trunk/include/clang/Basic/DiagnosticSerializationKinds.td<br class="gmail_msg">
    cfe/trunk/include/clang/Frontend/ASTUnit.h<br class="gmail_msg">
    cfe/trunk/include/clang/Frontend/CompilerInstance.h<br class="gmail_msg">
    cfe/trunk/include/clang/Lex/Preprocessor.h<br class="gmail_msg">
    cfe/trunk/include/clang/Serialization/ASTReader.h<br class="gmail_msg">
    cfe/trunk/include/clang/Serialization/ASTWriter.h<br class="gmail_msg">
    cfe/trunk/include/clang/Serialization/Module.h<br class="gmail_msg">
    cfe/trunk/include/clang/Serialization/ModuleManager.h<br class="gmail_msg">
    cfe/trunk/lib/Basic/CMakeLists.txt<br class="gmail_msg">
    cfe/trunk/lib/Frontend/ASTUnit.cpp<br class="gmail_msg">
    cfe/trunk/lib/Frontend/CompilerInstance.cpp<br class="gmail_msg">
    cfe/trunk/lib/Lex/Preprocessor.cpp<br class="gmail_msg">
    cfe/trunk/lib/Serialization/ASTReader.cpp<br class="gmail_msg">
    cfe/trunk/lib/Serialization/ASTWriter.cpp<br class="gmail_msg">
    cfe/trunk/lib/Serialization/GeneratePCH.cpp<br class="gmail_msg">
    cfe/trunk/lib/Serialization/ModuleManager.cpp<br class="gmail_msg">
    cfe/trunk/unittests/Basic/CMakeLists.txt<br class="gmail_msg">
    cfe/trunk/unittests/Basic/SourceManagerTest.cpp<br class="gmail_msg">
    cfe/trunk/unittests/Lex/LexerTest.cpp<br class="gmail_msg">
    cfe/trunk/unittests/Lex/PPCallbacksTest.cpp<br class="gmail_msg">
    cfe/trunk/unittests/Lex/PPConditionalDirectiveRecordTest.cpp<br class="gmail_msg">
<br class="gmail_msg">
Modified: cfe/trunk/include/clang/Basic/DiagnosticSerializationKinds.td<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSerializationKinds.td?rev=298185&r1=298184&r2=298185&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSerializationKinds.td?rev=298185&r1=298184&r2=298185&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/include/clang/Basic/DiagnosticSerializationKinds.td (original)<br class="gmail_msg">
+++ cfe/trunk/include/clang/Basic/DiagnosticSerializationKinds.td Sat Mar 18 07:31:32 2017<br class="gmail_msg">
@@ -176,11 +176,6 @@ def warn_duplicate_module_file_extension<br class="gmail_msg">
   "duplicate module file extension block name '%0'">,<br class="gmail_msg">
   InGroup<ModuleFileExtension>;<br class="gmail_msg">
<br class="gmail_msg">
-def warn_module_system_bit_conflict : Warning<<br class="gmail_msg">
-  "module file '%0' was validated as a system module and is now being imported "<br class="gmail_msg">
-  "as a non-system module; any difference in diagnostic options will be ignored">,<br class="gmail_msg">
-  InGroup<ModuleConflict>;<br class="gmail_msg">
-<br class="gmail_msg">
 } // let CategoryName<br class="gmail_msg">
 } // let Component<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
Removed: cfe/trunk/include/clang/Basic/MemoryBufferCache.h<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/MemoryBufferCache.h?rev=298184&view=auto" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/MemoryBufferCache.h?rev=298184&view=auto</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/include/clang/Basic/MemoryBufferCache.h (original)<br class="gmail_msg">
+++ cfe/trunk/include/clang/Basic/MemoryBufferCache.h (removed)<br class="gmail_msg">
@@ -1,80 +0,0 @@<br class="gmail_msg">
-//===- MemoryBufferCache.h - Cache for loaded memory buffers ----*- C++ -*-===//<br class="gmail_msg">
-//<br class="gmail_msg">
-//                     The LLVM Compiler Infrastructure<br class="gmail_msg">
-//<br class="gmail_msg">
-// This file is distributed under the University of Illinois Open Source<br class="gmail_msg">
-// License. See LICENSE.TXT for details.<br class="gmail_msg">
-//<br class="gmail_msg">
-//===----------------------------------------------------------------------===//<br class="gmail_msg">
-<br class="gmail_msg">
-#ifndef LLVM_CLANG_BASIC_MEMORYBUFFERCACHE_H<br class="gmail_msg">
-#define LLVM_CLANG_BASIC_MEMORYBUFFERCACHE_H<br class="gmail_msg">
-<br class="gmail_msg">
-#include "llvm/ADT/IntrusiveRefCntPtr.h"<br class="gmail_msg">
-#include "llvm/ADT/StringMap.h"<br class="gmail_msg">
-#include <memory><br class="gmail_msg">
-<br class="gmail_msg">
-namespace llvm {<br class="gmail_msg">
-class MemoryBuffer;<br class="gmail_msg">
-} // end namespace llvm<br class="gmail_msg">
-<br class="gmail_msg">
-namespace clang {<br class="gmail_msg">
-<br class="gmail_msg">
-/// Manage memory buffers across multiple users.<br class="gmail_msg">
-///<br class="gmail_msg">
-/// Ensures that multiple users have a consistent view of each buffer.  This is<br class="gmail_msg">
-/// used by \a CompilerInstance when building PCMs to ensure that each \a<br class="gmail_msg">
-/// ModuleManager sees the same files.<br class="gmail_msg">
-///<br class="gmail_msg">
-/// \a finalizeCurrentBuffers() should be called before creating a new user.<br class="gmail_msg">
-/// This locks in the current buffers, ensuring that no buffer that has already<br class="gmail_msg">
-/// been accessed can be purged, preventing use-after-frees.<br class="gmail_msg">
-class MemoryBufferCache : public llvm::RefCountedBase<MemoryBufferCache> {<br class="gmail_msg">
-  struct BufferEntry {<br class="gmail_msg">
-    std::unique_ptr<llvm::MemoryBuffer> Buffer;<br class="gmail_msg">
-<br class="gmail_msg">
-    /// Track the timeline of when this was added to the cache.<br class="gmail_msg">
-    unsigned Index;<br class="gmail_msg">
-  };<br class="gmail_msg">
-<br class="gmail_msg">
-  /// Cache of buffers.<br class="gmail_msg">
-  llvm::StringMap<BufferEntry> Buffers;<br class="gmail_msg">
-<br class="gmail_msg">
-  /// Monotonically increasing index.<br class="gmail_msg">
-  unsigned NextIndex = 0;<br class="gmail_msg">
-<br class="gmail_msg">
-  /// Bumped to prevent "older" buffers from being removed.<br class="gmail_msg">
-  unsigned FirstRemovableIndex = 0;<br class="gmail_msg">
-<br class="gmail_msg">
-public:<br class="gmail_msg">
-  /// Store the Buffer under the Filename.<br class="gmail_msg">
-  ///<br class="gmail_msg">
-  /// \pre There is not already buffer is not already in the cache.<br class="gmail_msg">
-  /// \return a reference to the buffer as a convenience.<br class="gmail_msg">
-  llvm::MemoryBuffer &addBuffer(llvm::StringRef Filename,<br class="gmail_msg">
-                                std::unique_ptr<llvm::MemoryBuffer> Buffer);<br class="gmail_msg">
-<br class="gmail_msg">
-  /// Try to remove a buffer from the cache.<br class="gmail_msg">
-  ///<br class="gmail_msg">
-  /// \return false on success, iff \c !isBufferFinal().<br class="gmail_msg">
-  bool tryToRemoveBuffer(llvm::StringRef Filename);<br class="gmail_msg">
-<br class="gmail_msg">
-  /// Get a pointer to the buffer if it exists; else nullptr.<br class="gmail_msg">
-  llvm::MemoryBuffer *lookupBuffer(llvm::StringRef Filename);<br class="gmail_msg">
-<br class="gmail_msg">
-  /// Check whether the buffer is final.<br class="gmail_msg">
-  ///<br class="gmail_msg">
-  /// \return true iff \a finalizeCurrentBuffers() has been called since the<br class="gmail_msg">
-  /// buffer was added.  This prevents buffers from being removed.<br class="gmail_msg">
-  bool isBufferFinal(llvm::StringRef Filename);<br class="gmail_msg">
-<br class="gmail_msg">
-  /// Finalize the current buffers in the cache.<br class="gmail_msg">
-  ///<br class="gmail_msg">
-  /// Should be called when creating a new user to ensure previous uses aren't<br class="gmail_msg">
-  /// invalidated.<br class="gmail_msg">
-  void finalizeCurrentBuffers();<br class="gmail_msg">
-};<br class="gmail_msg">
-<br class="gmail_msg">
-} // end namespace clang<br class="gmail_msg">
-<br class="gmail_msg">
-#endif // LLVM_CLANG_BASIC_MEMORYBUFFERCACHE_H<br class="gmail_msg">
<br class="gmail_msg">
Modified: cfe/trunk/include/clang/Frontend/ASTUnit.h<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/ASTUnit.h?rev=298185&r1=298184&r2=298185&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/ASTUnit.h?rev=298185&r1=298184&r2=298185&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/include/clang/Frontend/ASTUnit.h (original)<br class="gmail_msg">
+++ cfe/trunk/include/clang/Frontend/ASTUnit.h Sat Mar 18 07:31:32 2017<br class="gmail_msg">
@@ -51,7 +51,6 @@ class DiagnosticsEngine;<br class="gmail_msg">
 class FileEntry;<br class="gmail_msg">
 class FileManager;<br class="gmail_msg">
 class HeaderSearch;<br class="gmail_msg">
-class MemoryBufferCache;<br class="gmail_msg">
 class Preprocessor;<br class="gmail_msg">
 class PCHContainerOperations;<br class="gmail_msg">
 class PCHContainerReader;<br class="gmail_msg">
@@ -85,7 +84,6 @@ private:<br class="gmail_msg">
   IntrusiveRefCntPtr<DiagnosticsEngine>   Diagnostics;<br class="gmail_msg">
   IntrusiveRefCntPtr<FileManager>         FileMgr;<br class="gmail_msg">
   IntrusiveRefCntPtr<SourceManager>       SourceMgr;<br class="gmail_msg">
-  IntrusiveRefCntPtr<MemoryBufferCache>   PCMCache;<br class="gmail_msg">
   std::unique_ptr<HeaderSearch>           HeaderInfo;<br class="gmail_msg">
   IntrusiveRefCntPtr<TargetInfo>          Target;<br class="gmail_msg">
   std::shared_ptr<Preprocessor>           PP;<br class="gmail_msg">
<br class="gmail_msg">
Modified: cfe/trunk/include/clang/Frontend/CompilerInstance.h<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/CompilerInstance.h?rev=298185&r1=298184&r2=298185&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/CompilerInstance.h?rev=298185&r1=298184&r2=298185&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/include/clang/Frontend/CompilerInstance.h (original)<br class="gmail_msg">
+++ cfe/trunk/include/clang/Frontend/CompilerInstance.h Sat Mar 18 07:31:32 2017<br class="gmail_msg">
@@ -44,7 +44,6 @@ class ExternalASTSource;<br class="gmail_msg">
 class FileEntry;<br class="gmail_msg">
 class FileManager;<br class="gmail_msg">
 class FrontendAction;<br class="gmail_msg">
-class MemoryBufferCache;<br class="gmail_msg">
 class Module;<br class="gmail_msg">
 class Preprocessor;<br class="gmail_msg">
 class Sema;<br class="gmail_msg">
@@ -91,9 +90,6 @@ class CompilerInstance : public ModuleLo<br class="gmail_msg">
   /// The source manager.<br class="gmail_msg">
   IntrusiveRefCntPtr<SourceManager> SourceMgr;<br class="gmail_msg">
<br class="gmail_msg">
-  /// The cache of PCM files.<br class="gmail_msg">
-  IntrusiveRefCntPtr<MemoryBufferCache> PCMCache;<br class="gmail_msg">
-<br class="gmail_msg">
   /// The preprocessor.<br class="gmail_msg">
   std::shared_ptr<Preprocessor> PP;<br class="gmail_msg">
<br class="gmail_msg">
@@ -182,7 +178,7 @@ public:<br class="gmail_msg">
   explicit CompilerInstance(<br class="gmail_msg">
       std::shared_ptr<PCHContainerOperations> PCHContainerOps =<br class="gmail_msg">
           std::make_shared<PCHContainerOperations>(),<br class="gmail_msg">
-      MemoryBufferCache *SharedPCMCache = nullptr);<br class="gmail_msg">
+      bool BuildingModule = false);<br class="gmail_msg">
   ~CompilerInstance() override;<br class="gmail_msg">
<br class="gmail_msg">
   /// @name High-Level Operations<br class="gmail_msg">
@@ -787,8 +783,6 @@ public:<br class="gmail_msg">
   }<br class="gmail_msg">
<br class="gmail_msg">
   void setExternalSemaSource(IntrusiveRefCntPtr<ExternalSemaSource> ESS);<br class="gmail_msg">
-<br class="gmail_msg">
-  MemoryBufferCache &getPCMCache() const { return *PCMCache; }<br class="gmail_msg">
 };<br class="gmail_msg">
<br class="gmail_msg">
 } // end namespace clang<br class="gmail_msg">
<br class="gmail_msg">
Modified: cfe/trunk/include/clang/Lex/Preprocessor.h<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/Preprocessor.h?rev=298185&r1=298184&r2=298185&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/Preprocessor.h?rev=298185&r1=298184&r2=298185&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/include/clang/Lex/Preprocessor.h (original)<br class="gmail_msg">
+++ cfe/trunk/include/clang/Lex/Preprocessor.h Sat Mar 18 07:31:32 2017<br class="gmail_msg">
@@ -47,7 +47,6 @@ class ExternalPreprocessorSource;<br class="gmail_msg">
 class FileManager;<br class="gmail_msg">
 class FileEntry;<br class="gmail_msg">
 class HeaderSearch;<br class="gmail_msg">
-class MemoryBufferCache;<br class="gmail_msg">
 class PragmaNamespace;<br class="gmail_msg">
 class PragmaHandler;<br class="gmail_msg">
 class CommentHandler;<br class="gmail_msg">
@@ -103,7 +102,6 @@ class Preprocessor {<br class="gmail_msg">
   const TargetInfo  *AuxTarget;<br class="gmail_msg">
   FileManager       &FileMgr;<br class="gmail_msg">
   SourceManager     &SourceMgr;<br class="gmail_msg">
-  MemoryBufferCache &PCMCache;<br class="gmail_msg">
   std::unique_ptr<ScratchBuffer> ScratchBuf;<br class="gmail_msg">
   HeaderSearch      &HeaderInfo;<br class="gmail_msg">
   ModuleLoader      &TheModuleLoader;<br class="gmail_msg">
@@ -654,7 +652,6 @@ class Preprocessor {<br class="gmail_msg">
 public:<br class="gmail_msg">
   Preprocessor(std::shared_ptr<PreprocessorOptions> PPOpts,<br class="gmail_msg">
                DiagnosticsEngine &diags, LangOptions &opts, SourceManager &SM,<br class="gmail_msg">
-               MemoryBufferCache &PCMCache,<br class="gmail_msg">
                HeaderSearch &Headers, ModuleLoader &TheModuleLoader,<br class="gmail_msg">
                IdentifierInfoLookup *IILookup = nullptr,<br class="gmail_msg">
                bool OwnsHeaderSearch = false,<br class="gmail_msg">
@@ -694,7 +691,6 @@ public:<br class="gmail_msg">
   const TargetInfo *getAuxTargetInfo() const { return AuxTarget; }<br class="gmail_msg">
   FileManager &getFileManager() const { return FileMgr; }<br class="gmail_msg">
   SourceManager &getSourceManager() const { return SourceMgr; }<br class="gmail_msg">
-  MemoryBufferCache &getPCMCache() const { return PCMCache; }<br class="gmail_msg">
   HeaderSearch &getHeaderSearchInfo() const { return HeaderInfo; }<br class="gmail_msg">
<br class="gmail_msg">
   IdentifierTable &getIdentifierTable() { return Identifiers; }<br class="gmail_msg">
<br class="gmail_msg">
Modified: cfe/trunk/include/clang/Serialization/ASTReader.h<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/ASTReader.h?rev=298185&r1=298184&r2=298185&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/ASTReader.h?rev=298185&r1=298184&r2=298185&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/include/clang/Serialization/ASTReader.h (original)<br class="gmail_msg">
+++ cfe/trunk/include/clang/Serialization/ASTReader.h Sat Mar 18 07:31:32 2017<br class="gmail_msg">
@@ -408,9 +408,6 @@ private:<br class="gmail_msg">
   /// \brief The module manager which manages modules and their dependencies<br class="gmail_msg">
   ModuleManager ModuleMgr;<br class="gmail_msg">
<br class="gmail_msg">
-  /// The cache that manages memory buffers for PCM files.<br class="gmail_msg">
-  MemoryBufferCache &PCMCache;<br class="gmail_msg">
-<br class="gmail_msg">
   /// \brief A dummy identifier resolver used to merge TU-scope declarations in<br class="gmail_msg">
   /// C, for the cases where we don't have a Sema object to provide a real<br class="gmail_msg">
   /// identifier resolver.<br class="gmail_msg">
<br class="gmail_msg">
Modified: cfe/trunk/include/clang/Serialization/ASTWriter.h<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/ASTWriter.h?rev=298185&r1=298184&r2=298185&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/ASTWriter.h?rev=298185&r1=298184&r2=298185&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/include/clang/Serialization/ASTWriter.h (original)<br class="gmail_msg">
+++ cfe/trunk/include/clang/Serialization/ASTWriter.h Sat Mar 18 07:31:32 2017<br class="gmail_msg">
@@ -54,7 +54,6 @@ class MacroInfo;<br class="gmail_msg">
 class OpaqueValueExpr;<br class="gmail_msg">
 class OpenCLOptions;<br class="gmail_msg">
 class ASTReader;<br class="gmail_msg">
-class MemoryBufferCache;<br class="gmail_msg">
 class Module;<br class="gmail_msg">
 class ModuleFileExtension;<br class="gmail_msg">
 class ModuleFileExtensionWriter;<br class="gmail_msg">
@@ -110,9 +109,6 @@ private:<br class="gmail_msg">
   /// The buffer associated with the bitstream.<br class="gmail_msg">
   const SmallVectorImpl<char> &Buffer;<br class="gmail_msg">
<br class="gmail_msg">
-  /// \brief The PCM manager which manages memory buffers for pcm files.<br class="gmail_msg">
-  MemoryBufferCache &PCMCache;<br class="gmail_msg">
-<br class="gmail_msg">
   /// \brief The ASTContext we're writing.<br class="gmail_msg">
   ASTContext *Context = nullptr;<br class="gmail_msg">
<br class="gmail_msg">
@@ -516,7 +512,6 @@ public:<br class="gmail_msg">
   /// \brief Create a new precompiled header writer that outputs to<br class="gmail_msg">
   /// the given bitstream.<br class="gmail_msg">
   ASTWriter(llvm::BitstreamWriter &Stream, SmallVectorImpl<char> &Buffer,<br class="gmail_msg">
-            MemoryBufferCache &PCMCache,<br class="gmail_msg">
             ArrayRef<std::shared_ptr<ModuleFileExtension>> Extensions,<br class="gmail_msg">
             bool IncludeTimestamps = true);<br class="gmail_msg">
   ~ASTWriter() override;<br class="gmail_msg">
<br class="gmail_msg">
Modified: cfe/trunk/include/clang/Serialization/Module.h<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/Module.h?rev=298185&r1=298184&r2=298185&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/Module.h?rev=298185&r1=298184&r2=298185&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/include/clang/Serialization/Module.h (original)<br class="gmail_msg">
+++ cfe/trunk/include/clang/Serialization/Module.h Sat Mar 18 07:31:32 2017<br class="gmail_msg">
@@ -163,9 +163,9 @@ public:<br class="gmail_msg">
   /// \brief The generation of which this module file is a part.<br class="gmail_msg">
   unsigned Generation;<br class="gmail_msg">
<br class="gmail_msg">
-  /// The memory buffer that stores the data associated with<br class="gmail_msg">
-  /// this AST file, owned by the PCMCache in the ModuleManager.<br class="gmail_msg">
-  llvm::MemoryBuffer *Buffer;<br class="gmail_msg">
+  /// \brief The memory buffer that stores the data associated with<br class="gmail_msg">
+  /// this AST file.<br class="gmail_msg">
+  std::unique_ptr<llvm::MemoryBuffer> Buffer;<br class="gmail_msg">
<br class="gmail_msg">
   /// \brief The size of this file, in bits.<br class="gmail_msg">
   uint64_t SizeInBits = 0;<br class="gmail_msg">
<br class="gmail_msg">
Modified: cfe/trunk/include/clang/Serialization/ModuleManager.h<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/ModuleManager.h?rev=298185&r1=298184&r2=298185&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/ModuleManager.h?rev=298185&r1=298184&r2=298185&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/include/clang/Serialization/ModuleManager.h (original)<br class="gmail_msg">
+++ cfe/trunk/include/clang/Serialization/ModuleManager.h Sat Mar 18 07:31:32 2017<br class="gmail_msg">
@@ -24,7 +24,6 @@<br class="gmail_msg">
 namespace clang {<br class="gmail_msg">
<br class="gmail_msg">
 class GlobalModuleIndex;<br class="gmail_msg">
-class MemoryBufferCache;<br class="gmail_msg">
 class ModuleMap;<br class="gmail_msg">
 class PCHContainerReader;<br class="gmail_msg">
<br class="gmail_msg">
@@ -52,9 +51,6 @@ class ModuleManager {<br class="gmail_msg">
   /// FileEntry *.<br class="gmail_msg">
   FileManager &FileMgr;<br class="gmail_msg">
<br class="gmail_msg">
-  /// Cache of PCM files.<br class="gmail_msg">
-  IntrusiveRefCntPtr<MemoryBufferCache> PCMCache;<br class="gmail_msg">
-<br class="gmail_msg">
   /// \brief Knows how to unwrap module containers.<br class="gmail_msg">
   const PCHContainerReader &PCHContainerRdr;<br class="gmail_msg">
<br class="gmail_msg">
@@ -127,7 +123,7 @@ public:<br class="gmail_msg">
       ModuleReverseIterator;<br class="gmail_msg">
   typedef std::pair<uint32_t, StringRef> ModuleOffset;<br class="gmail_msg">
<br class="gmail_msg">
-  explicit ModuleManager(FileManager &FileMgr, MemoryBufferCache &PCMCache,<br class="gmail_msg">
+  explicit ModuleManager(FileManager &FileMgr,<br class="gmail_msg">
                          const PCHContainerReader &PCHContainerRdr);<br class="gmail_msg">
   ~ModuleManager();<br class="gmail_msg">
<br class="gmail_msg">
@@ -294,8 +290,6 @@ public:<br class="gmail_msg">
<br class="gmail_msg">
   /// \brief View the graphviz representation of the module graph.<br class="gmail_msg">
   void viewGraph();<br class="gmail_msg">
-<br class="gmail_msg">
-  MemoryBufferCache &getPCMCache() const { return *PCMCache; }<br class="gmail_msg">
 };<br class="gmail_msg">
<br class="gmail_msg">
 } } // end namespace clang::serialization<br class="gmail_msg">
<br class="gmail_msg">
Modified: cfe/trunk/lib/Basic/CMakeLists.txt<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/CMakeLists.txt?rev=298185&r1=298184&r2=298185&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/CMakeLists.txt?rev=298185&r1=298184&r2=298185&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/lib/Basic/CMakeLists.txt (original)<br class="gmail_msg">
+++ cfe/trunk/lib/Basic/CMakeLists.txt Sat Mar 18 07:31:32 2017<br class="gmail_msg">
@@ -74,7 +74,6 @@ add_clang_library(clangBasic<br class="gmail_msg">
   FileSystemStatCache.cpp<br class="gmail_msg">
   IdentifierTable.cpp<br class="gmail_msg">
   LangOptions.cpp<br class="gmail_msg">
-  MemoryBufferCache.cpp<br class="gmail_msg">
   Module.cpp<br class="gmail_msg">
   ObjCRuntime.cpp<br class="gmail_msg">
   OpenMPKinds.cpp<br class="gmail_msg">
<br class="gmail_msg">
Removed: cfe/trunk/lib/Basic/MemoryBufferCache.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/MemoryBufferCache.cpp?rev=298184&view=auto" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/MemoryBufferCache.cpp?rev=298184&view=auto</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/lib/Basic/MemoryBufferCache.cpp (original)<br class="gmail_msg">
+++ cfe/trunk/lib/Basic/MemoryBufferCache.cpp (removed)<br class="gmail_msg">
@@ -1,48 +0,0 @@<br class="gmail_msg">
-//===- MemoryBufferCache.cpp - Cache for loaded memory buffers ------------===//<br class="gmail_msg">
-//<br class="gmail_msg">
-//                     The LLVM Compiler Infrastructure<br class="gmail_msg">
-//<br class="gmail_msg">
-// This file is distributed under the University of Illinois Open Source<br class="gmail_msg">
-// License. See LICENSE.TXT for details.<br class="gmail_msg">
-//<br class="gmail_msg">
-//===----------------------------------------------------------------------===//<br class="gmail_msg">
-<br class="gmail_msg">
-#include "clang/Basic/MemoryBufferCache.h"<br class="gmail_msg">
-#include "llvm/Support/MemoryBuffer.h"<br class="gmail_msg">
-<br class="gmail_msg">
-using namespace clang;<br class="gmail_msg">
-<br class="gmail_msg">
-llvm::MemoryBuffer &<br class="gmail_msg">
-MemoryBufferCache::addBuffer(llvm::StringRef Filename,<br class="gmail_msg">
-                             std::unique_ptr<llvm::MemoryBuffer> Buffer) {<br class="gmail_msg">
-  auto Insertion =<br class="gmail_msg">
-      Buffers.insert({Filename, BufferEntry{std::move(Buffer), NextIndex++}});<br class="gmail_msg">
-  assert(Insertion.second && "Already has a buffer");<br class="gmail_msg">
-  return *Insertion.first->second.Buffer;<br class="gmail_msg">
-}<br class="gmail_msg">
-<br class="gmail_msg">
-llvm::MemoryBuffer *MemoryBufferCache::lookupBuffer(llvm::StringRef Filename) {<br class="gmail_msg">
-  auto I = Buffers.find(Filename);<br class="gmail_msg">
-  if (I == Buffers.end())<br class="gmail_msg">
-    return nullptr;<br class="gmail_msg">
-  return I->second.Buffer.get();<br class="gmail_msg">
-}<br class="gmail_msg">
-<br class="gmail_msg">
-bool MemoryBufferCache::isBufferFinal(llvm::StringRef Filename) {<br class="gmail_msg">
-  auto I = Buffers.find(Filename);<br class="gmail_msg">
-  if (I == Buffers.end())<br class="gmail_msg">
-    return false;<br class="gmail_msg">
-  return I->second.Index < FirstRemovableIndex;<br class="gmail_msg">
-}<br class="gmail_msg">
-<br class="gmail_msg">
-bool MemoryBufferCache::tryToRemoveBuffer(llvm::StringRef Filename) {<br class="gmail_msg">
-  auto I = Buffers.find(Filename);<br class="gmail_msg">
-  assert(I != Buffers.end() && "No buffer to remove...");<br class="gmail_msg">
-  if (I->second.Index < FirstRemovableIndex)<br class="gmail_msg">
-    return true;<br class="gmail_msg">
-<br class="gmail_msg">
-  Buffers.erase(I);<br class="gmail_msg">
-  return false;<br class="gmail_msg">
-}<br class="gmail_msg">
-<br class="gmail_msg">
-void MemoryBufferCache::finalizeCurrentBuffers() { FirstRemovableIndex = NextIndex; }<br class="gmail_msg">
<br class="gmail_msg">
Modified: cfe/trunk/lib/Frontend/ASTUnit.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/ASTUnit.cpp?rev=298185&r1=298184&r2=298185&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/ASTUnit.cpp?rev=298185&r1=298184&r2=298185&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/lib/Frontend/ASTUnit.cpp (original)<br class="gmail_msg">
+++ cfe/trunk/lib/Frontend/ASTUnit.cpp Sat Mar 18 07:31:32 2017<br class="gmail_msg">
@@ -18,7 +18,6 @@<br class="gmail_msg">
 #include "clang/AST/StmtVisitor.h"<br class="gmail_msg">
 #include "clang/AST/TypeOrdering.h"<br class="gmail_msg">
 #include "clang/Basic/Diagnostic.h"<br class="gmail_msg">
-#include "clang/Basic/MemoryBufferCache.h"<br class="gmail_msg">
 #include "clang/Basic/TargetInfo.h"<br class="gmail_msg">
 #include "clang/Basic/TargetOptions.h"<br class="gmail_msg">
 #include "clang/Basic/VirtualFileSystem.h"<br class="gmail_msg">
@@ -186,8 +185,7 @@ struct ASTUnit::ASTWriterData {<br class="gmail_msg">
   llvm::BitstreamWriter Stream;<br class="gmail_msg">
   ASTWriter Writer;<br class="gmail_msg">
<br class="gmail_msg">
-  ASTWriterData(MemoryBufferCache &PCMCache)<br class="gmail_msg">
-      : Stream(Buffer), Writer(Stream, Buffer, PCMCache, {}) {}<br class="gmail_msg">
+  ASTWriterData() : Stream(Buffer), Writer(Stream, Buffer, {}) {}<br class="gmail_msg">
 };<br class="gmail_msg">
<br class="gmail_msg">
 void ASTUnit::clearFileLevelDecls() {<br class="gmail_msg">
@@ -683,7 +681,6 @@ std::unique_ptr<ASTUnit> ASTUnit::LoadFr<br class="gmail_msg">
   AST->SourceMgr = new SourceManager(AST->getDiagnostics(),<br class="gmail_msg">
                                      AST->getFileManager(),<br class="gmail_msg">
                                      UserFilesAreVolatile);<br class="gmail_msg">
-  AST->PCMCache = new MemoryBufferCache;<br class="gmail_msg">
   AST->HSOpts = std::make_shared<HeaderSearchOptions>();<br class="gmail_msg">
   AST->HSOpts->ModuleFormat = PCHContainerRdr.getFormat();<br class="gmail_msg">
   AST->HeaderInfo.reset(new HeaderSearch(AST->HSOpts,<br class="gmail_msg">
@@ -704,7 +701,7 @@ std::unique_ptr<ASTUnit> ASTUnit::LoadFr<br class="gmail_msg">
<br class="gmail_msg">
   AST->PP = std::make_shared<Preprocessor>(<br class="gmail_msg">
       std::move(PPOpts), AST->getDiagnostics(), AST->ASTFileLangOpts,<br class="gmail_msg">
-      AST->getSourceManager(), *AST->PCMCache, HeaderInfo, *AST,<br class="gmail_msg">
+      AST->getSourceManager(), HeaderInfo, *AST,<br class="gmail_msg">
       /*IILookup=*/nullptr,<br class="gmail_msg">
       /*OwnsHeaderSearch=*/false);<br class="gmail_msg">
   Preprocessor &PP = *AST->PP;<br class="gmail_msg">
@@ -1730,7 +1727,6 @@ ASTUnit::create(std::shared_ptr<Compiler<br class="gmail_msg">
   AST->UserFilesAreVolatile = UserFilesAreVolatile;<br class="gmail_msg">
   AST->SourceMgr = new SourceManager(AST->getDiagnostics(), *AST->FileMgr,<br class="gmail_msg">
                                      UserFilesAreVolatile);<br class="gmail_msg">
-  AST->PCMCache = new MemoryBufferCache;<br class="gmail_msg">
<br class="gmail_msg">
   return AST;<br class="gmail_msg">
 }<br class="gmail_msg">
@@ -2001,7 +1997,6 @@ ASTUnit *ASTUnit::LoadFromCommandLine(<br class="gmail_msg">
   if (!VFS)<br class="gmail_msg">
     return nullptr;<br class="gmail_msg">
   AST->FileMgr = new FileManager(AST->FileSystemOpts, VFS);<br class="gmail_msg">
-  AST->PCMCache = new MemoryBufferCache;<br class="gmail_msg">
   AST->OnlyLocalDecls = OnlyLocalDecls;<br class="gmail_msg">
   AST->CaptureDiagnostics = CaptureDiagnostics;<br class="gmail_msg">
   AST->TUKind = TUKind;<br class="gmail_msg">
@@ -2013,7 +2008,7 @@ ASTUnit *ASTUnit::LoadFromCommandLine(<br class="gmail_msg">
   AST->StoredDiagnostics.swap(StoredDiagnostics);<br class="gmail_msg">
   AST->Invocation = CI;<br class="gmail_msg">
   if (ForSerialization)<br class="gmail_msg">
-    AST->WriterData.reset(new ASTWriterData(*AST->PCMCache));<br class="gmail_msg">
+    AST->WriterData.reset(new ASTWriterData());<br class="gmail_msg">
   // Zero out now to ease cleanup during crash recovery.<br class="gmail_msg">
   CI = nullptr;<br class="gmail_msg">
   Diags = nullptr;<br class="gmail_msg">
@@ -2528,8 +2523,7 @@ bool ASTUnit::serialize(raw_ostream &OS)<br class="gmail_msg">
<br class="gmail_msg">
   SmallString<128> Buffer;<br class="gmail_msg">
   llvm::BitstreamWriter Stream(Buffer);<br class="gmail_msg">
-  MemoryBufferCache PCMCache;<br class="gmail_msg">
-  ASTWriter Writer(Stream, Buffer, PCMCache, {});<br class="gmail_msg">
+  ASTWriter Writer(Stream, Buffer, {});<br class="gmail_msg">
   return serializeUnit(Writer, Buffer, getSema(), hasErrors, OS);<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
Modified: cfe/trunk/lib/Frontend/CompilerInstance.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInstance.cpp?rev=298185&r1=298184&r2=298185&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInstance.cpp?rev=298185&r1=298184&r2=298185&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/lib/Frontend/CompilerInstance.cpp (original)<br class="gmail_msg">
+++ cfe/trunk/lib/Frontend/CompilerInstance.cpp Sat Mar 18 07:31:32 2017<br class="gmail_msg">
@@ -13,7 +13,6 @@<br class="gmail_msg">
 #include "clang/AST/Decl.h"<br class="gmail_msg">
 #include "clang/Basic/Diagnostic.h"<br class="gmail_msg">
 #include "clang/Basic/FileManager.h"<br class="gmail_msg">
-#include "clang/Basic/MemoryBufferCache.h"<br class="gmail_msg">
 #include "clang/Basic/SourceManager.h"<br class="gmail_msg">
 #include "clang/Basic/TargetInfo.h"<br class="gmail_msg">
 #include "clang/Basic/Version.h"<br class="gmail_msg">
@@ -56,15 +55,9 @@ using namespace clang;<br class="gmail_msg">
<br class="gmail_msg">
 CompilerInstance::CompilerInstance(<br class="gmail_msg">
     std::shared_ptr<PCHContainerOperations> PCHContainerOps,<br class="gmail_msg">
-    MemoryBufferCache *SharedPCMCache)<br class="gmail_msg">
-    : ModuleLoader(/* BuildingModule = */ SharedPCMCache),<br class="gmail_msg">
-      Invocation(new CompilerInvocation()),<br class="gmail_msg">
-      PCMCache(SharedPCMCache ? SharedPCMCache : new MemoryBufferCache),<br class="gmail_msg">
-      ThePCHContainerOperations(std::move(PCHContainerOps)) {<br class="gmail_msg">
-  // Don't allow this to invalidate buffers in use by others.<br class="gmail_msg">
-  if (SharedPCMCache)<br class="gmail_msg">
-    getPCMCache().finalizeCurrentBuffers();<br class="gmail_msg">
-}<br class="gmail_msg">
+    bool BuildingModule)<br class="gmail_msg">
+    : ModuleLoader(BuildingModule), Invocation(new CompilerInvocation()),<br class="gmail_msg">
+      ThePCHContainerOperations(std::move(PCHContainerOps)) {}<br class="gmail_msg">
<br class="gmail_msg">
 CompilerInstance::~CompilerInstance() {<br class="gmail_msg">
   assert(OutputFiles.empty() && "Still output files in flight?");<br class="gmail_msg">
@@ -135,8 +128,6 @@ IntrusiveRefCntPtr<ASTReader> CompilerIn<br class="gmail_msg">
   return ModuleManager;<br class="gmail_msg">
 }<br class="gmail_msg">
 void CompilerInstance::setModuleManager(IntrusiveRefCntPtr<ASTReader> Reader) {<br class="gmail_msg">
-  assert(PCMCache.get() == &Reader->getModuleManager().getPCMCache() &&<br class="gmail_msg">
-         "Expected ASTReader to use the same PCM cache");<br class="gmail_msg">
   ModuleManager = std::move(Reader);<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
@@ -379,7 +370,7 @@ void CompilerInstance::createPreprocesso<br class="gmail_msg">
                        getDiagnostics(), getLangOpts(), &getTarget());<br class="gmail_msg">
   PP = std::make_shared<Preprocessor>(<br class="gmail_msg">
       Invocation->getPreprocessorOptsPtr(), getDiagnostics(), getLangOpts(),<br class="gmail_msg">
-      getSourceManager(), getPCMCache(), *HeaderInfo, *this, PTHMgr,<br class="gmail_msg">
+      getSourceManager(), *HeaderInfo, *this, PTHMgr,<br class="gmail_msg">
       /*OwnsHeaderSearch=*/true, TUKind);<br class="gmail_msg">
   PP->Initialize(getTarget(), getAuxTarget());<br class="gmail_msg">
<br class="gmail_msg">
@@ -1082,11 +1073,9 @@ static bool compileModuleImpl(CompilerIn<br class="gmail_msg">
          Invocation->getModuleHash() && "Module hash mismatch!");<br class="gmail_msg">
<br class="gmail_msg">
   // Construct a compiler instance that will be used to actually create the<br class="gmail_msg">
-  // module.  Since we're sharing a PCMCache,<br class="gmail_msg">
-  // CompilerInstance::CompilerInstance is responsible for finalizing the<br class="gmail_msg">
-  // buffers to prevent use-after-frees.<br class="gmail_msg">
+  // module.<br class="gmail_msg">
   CompilerInstance Instance(ImportingInstance.getPCHContainerOperations(),<br class="gmail_msg">
-                            &ImportingInstance.getPreprocessor().getPCMCache());<br class="gmail_msg">
+                            /*BuildingModule=*/true);<br class="gmail_msg">
   auto &Inv = *Invocation;<br class="gmail_msg">
   Instance.setInvocation(std::move(Invocation));<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
Modified: cfe/trunk/lib/Lex/Preprocessor.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/Preprocessor.cpp?rev=298185&r1=298184&r2=298185&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/Preprocessor.cpp?rev=298185&r1=298184&r2=298185&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/lib/Lex/Preprocessor.cpp (original)<br class="gmail_msg">
+++ cfe/trunk/lib/Lex/Preprocessor.cpp Sat Mar 18 07:31:32 2017<br class="gmail_msg">
@@ -70,15 +70,15 @@ ExternalPreprocessorSource::~ExternalPre<br class="gmail_msg">
<br class="gmail_msg">
 Preprocessor::Preprocessor(std::shared_ptr<PreprocessorOptions> PPOpts,<br class="gmail_msg">
                            DiagnosticsEngine &diags, LangOptions &opts,<br class="gmail_msg">
-                           SourceManager &SM, MemoryBufferCache &PCMCache,<br class="gmail_msg">
-                           HeaderSearch &Headers, ModuleLoader &TheModuleLoader,<br class="gmail_msg">
+                           SourceManager &SM, HeaderSearch &Headers,<br class="gmail_msg">
+                           ModuleLoader &TheModuleLoader,<br class="gmail_msg">
                            IdentifierInfoLookup *IILookup, bool OwnsHeaders,<br class="gmail_msg">
                            TranslationUnitKind TUKind)<br class="gmail_msg">
     : PPOpts(std::move(PPOpts)), Diags(&diags), LangOpts(opts), Target(nullptr),<br class="gmail_msg">
       AuxTarget(nullptr), FileMgr(Headers.getFileMgr()), SourceMgr(SM),<br class="gmail_msg">
-      PCMCache(PCMCache), ScratchBuf(new ScratchBuffer(SourceMgr)),<br class="gmail_msg">
-      HeaderInfo(Headers), TheModuleLoader(TheModuleLoader),<br class="gmail_msg">
-      ExternalSource(nullptr), Identifiers(opts, IILookup),<br class="gmail_msg">
+      ScratchBuf(new ScratchBuffer(SourceMgr)), HeaderInfo(Headers),<br class="gmail_msg">
+      TheModuleLoader(TheModuleLoader), ExternalSource(nullptr),<br class="gmail_msg">
+      Identifiers(opts, IILookup),<br class="gmail_msg">
       PragmaHandlers(new PragmaNamespace(StringRef())),<br class="gmail_msg">
       IncrementalProcessing(false), TUKind(TUKind), CodeComplete(nullptr),<br class="gmail_msg">
       CodeCompletionFile(nullptr), CodeCompletionOffset(0),<br class="gmail_msg">
<br class="gmail_msg">
Modified: cfe/trunk/lib/Serialization/ASTReader.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTReader.cpp?rev=298185&r1=298184&r2=298185&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTReader.cpp?rev=298185&r1=298184&r2=298185&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/lib/Serialization/ASTReader.cpp (original)<br class="gmail_msg">
+++ cfe/trunk/lib/Serialization/ASTReader.cpp Sat Mar 18 07:31:32 2017<br class="gmail_msg">
@@ -37,7 +37,6 @@<br class="gmail_msg">
 #include "clang/Basic/FileManager.h"<br class="gmail_msg">
 #include "clang/Basic/FileSystemOptions.h"<br class="gmail_msg">
 #include "clang/Basic/LangOptions.h"<br class="gmail_msg">
-#include "clang/Basic/MemoryBufferCache.h"<br class="gmail_msg">
 #include "clang/Basic/ObjCRuntime.h"<br class="gmail_msg">
 #include "clang/Basic/OperatorKinds.h"<br class="gmail_msg">
 #include "clang/Basic/Sanitizers.h"<br class="gmail_msg">
@@ -464,9 +463,19 @@ static bool checkDiagnosticMappings(Diag<br class="gmail_msg">
   return checkDiagnosticGroupMappings(StoredDiags, Diags, Complain);<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
-/// Return the top import module if it is implicit, nullptr otherwise.<br class="gmail_msg">
-static Module *getTopImportImplicitModule(ModuleManager &ModuleMgr,<br class="gmail_msg">
-                                          Preprocessor &PP) {<br class="gmail_msg">
+bool PCHValidator::ReadDiagnosticOptions(<br class="gmail_msg">
+    IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts, bool Complain) {<br class="gmail_msg">
+  DiagnosticsEngine &ExistingDiags = PP.getDiagnostics();<br class="gmail_msg">
+  IntrusiveRefCntPtr<DiagnosticIDs> DiagIDs(ExistingDiags.getDiagnosticIDs());<br class="gmail_msg">
+  IntrusiveRefCntPtr<DiagnosticsEngine> Diags(<br class="gmail_msg">
+      new DiagnosticsEngine(DiagIDs, DiagOpts.get()));<br class="gmail_msg">
+  // This should never fail, because we would have processed these options<br class="gmail_msg">
+  // before writing them to an ASTFile.<br class="gmail_msg">
+  ProcessWarningOptions(*Diags, *DiagOpts, /*Report*/false);<br class="gmail_msg">
+<br class="gmail_msg">
+  ModuleManager &ModuleMgr = Reader.getModuleManager();<br class="gmail_msg">
+  assert(ModuleMgr.size() >= 1 && "what ASTFile is this then");<br class="gmail_msg">
+<br class="gmail_msg">
   // If the original import came from a file explicitly generated by the user,<br class="gmail_msg">
   // don't check the diagnostic mappings.<br class="gmail_msg">
   // FIXME: currently this is approximated by checking whether this is not a<br class="gmail_msg">
@@ -478,37 +487,17 @@ static Module *getTopImportImplicitModul<br class="gmail_msg">
   while (!TopImport->ImportedBy.empty())<br class="gmail_msg">
     TopImport = TopImport->ImportedBy[0];<br class="gmail_msg">
   if (TopImport->Kind != MK_ImplicitModule)<br class="gmail_msg">
-    return nullptr;<br class="gmail_msg">
+    return false;<br class="gmail_msg">
<br class="gmail_msg">
   StringRef ModuleName = TopImport->ModuleName;<br class="gmail_msg">
   assert(!ModuleName.empty() && "diagnostic options read before module name");<br class="gmail_msg">
<br class="gmail_msg">
   Module *M = PP.getHeaderSearchInfo().lookupModule(ModuleName);<br class="gmail_msg">
   assert(M && "missing module");<br class="gmail_msg">
-  return M;<br class="gmail_msg">
-}<br class="gmail_msg">
-<br class="gmail_msg">
-bool PCHValidator::ReadDiagnosticOptions(<br class="gmail_msg">
-    IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts, bool Complain) {<br class="gmail_msg">
-  DiagnosticsEngine &ExistingDiags = PP.getDiagnostics();<br class="gmail_msg">
-  IntrusiveRefCntPtr<DiagnosticIDs> DiagIDs(ExistingDiags.getDiagnosticIDs());<br class="gmail_msg">
-  IntrusiveRefCntPtr<DiagnosticsEngine> Diags(<br class="gmail_msg">
-      new DiagnosticsEngine(DiagIDs, DiagOpts.get()));<br class="gmail_msg">
-  // This should never fail, because we would have processed these options<br class="gmail_msg">
-  // before writing them to an ASTFile.<br class="gmail_msg">
-  ProcessWarningOptions(*Diags, *DiagOpts, /*Report*/false);<br class="gmail_msg">
-<br class="gmail_msg">
-  ModuleManager &ModuleMgr = Reader.getModuleManager();<br class="gmail_msg">
-  assert(ModuleMgr.size() >= 1 && "what ASTFile is this then");<br class="gmail_msg">
-<br class="gmail_msg">
-  Module *TopM = getTopImportImplicitModule(ModuleMgr, PP);<br class="gmail_msg">
-  if (!TopM)<br class="gmail_msg">
-    return false;<br class="gmail_msg">
<br class="gmail_msg">
   // FIXME: if the diagnostics are incompatible, save a DiagnosticOptions that<br class="gmail_msg">
   // contains the union of their flags.<br class="gmail_msg">
-  return checkDiagnosticMappings(*Diags, ExistingDiags, TopM->IsSystem,<br class="gmail_msg">
-                                 Complain);<br class="gmail_msg">
+  return checkDiagnosticMappings(*Diags, ExistingDiags, M->IsSystem, Complain);<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
 /// \brief Collect the macro definitions provided by the given preprocessor<br class="gmail_msg">
@@ -4075,41 +4064,12 @@ ASTReader::readUnhashedControlBlock(Modu<br class="gmail_msg">
       Listener.get(),<br class="gmail_msg">
       WasImportedBy ? false : HSOpts.ModulesValidateDiagnosticOptions);<br class="gmail_msg">
<br class="gmail_msg">
-  // If F was directly imported by another module, it's implicitly validated by<br class="gmail_msg">
-  // the importing module.<br class="gmail_msg">
   if (DisableValidation || WasImportedBy ||<br class="gmail_msg">
       (AllowConfigurationMismatch && Result == ConfigurationMismatch))<br class="gmail_msg">
     return Success;<br class="gmail_msg">
<br class="gmail_msg">
-  if (Result == Failure) {<br class="gmail_msg">
+  if (Result == Failure)<br class="gmail_msg">
     Error("malformed block record in AST file");<br class="gmail_msg">
-    return Failure;<br class="gmail_msg">
-  }<br class="gmail_msg">
-<br class="gmail_msg">
-  if (Result == OutOfDate && F.Kind == MK_ImplicitModule) {<br class="gmail_msg">
-    // If this module has already been finalized in the PCMCache, we're stuck<br class="gmail_msg">
-    // with it; we can only load a single version of each module.<br class="gmail_msg">
-    //<br class="gmail_msg">
-    // This can happen when a module is imported in two contexts: in one, as a<br class="gmail_msg">
-    // user module; in another, as a system module (due to an import from<br class="gmail_msg">
-    // another module marked with the [system] flag).  It usually indicates a<br class="gmail_msg">
-    // bug in the module map: this module should also be marked with [system].<br class="gmail_msg">
-    //<br class="gmail_msg">
-    // If -Wno-system-headers (the default), and the first import is as a<br class="gmail_msg">
-    // system module, then validation will fail during the as-user import,<br class="gmail_msg">
-    // since -Werror flags won't have been validated.  However, it's reasonable<br class="gmail_msg">
-    // to treat this consistently as a system module.<br class="gmail_msg">
-    //<br class="gmail_msg">
-    // If -Wsystem-headers, the PCM on disk was built with<br class="gmail_msg">
-    // -Wno-system-headers, and the first import is as a user module, then<br class="gmail_msg">
-    // validation will fail during the as-system import since the PCM on disk<br class="gmail_msg">
-    // doesn't guarantee that -Werror was respected.  However, the -Werror<br class="gmail_msg">
-    // flags were checked during the initial as-user import.<br class="gmail_msg">
-    if (PCMCache.isBufferFinal(F.FileName)) {<br class="gmail_msg">
-      Diag(diag::warn_module_system_bit_conflict) << F.FileName;<br class="gmail_msg">
-      return Success;<br class="gmail_msg">
-    }<br class="gmail_msg">
-  }<br class="gmail_msg">
<br class="gmail_msg">
   return Result;<br class="gmail_msg">
 }<br class="gmail_msg">
@@ -4162,7 +4122,7 @@ ASTReader::ASTReadResult ASTReader::read<br class="gmail_msg">
       if (Listener && ValidateDiagnosticOptions &&<br class="gmail_msg">
           !AllowCompatibleConfigurationMismatch &&<br class="gmail_msg">
           ParseDiagnosticOptions(Record, Complain, *Listener))<br class="gmail_msg">
-        Result = OutOfDate; // Don't return early.  Read the signature.<br class="gmail_msg">
+        return OutOfDate;<br class="gmail_msg">
       break;<br class="gmail_msg">
     }<br class="gmail_msg">
     case DIAG_PRAGMA_MAPPINGS:<br class="gmail_msg">
@@ -7341,7 +7301,7 @@ LLVM_DUMP_METHOD void ASTReader::dump()<br class="gmail_msg">
 /// by heap-backed versus mmap'ed memory.<br class="gmail_msg">
 void ASTReader::getMemoryBufferSizes(MemoryBufferSizes &sizes) const {<br class="gmail_msg">
   for (ModuleFile &I : ModuleMgr) {<br class="gmail_msg">
-    if (llvm::MemoryBuffer *buf = I.Buffer) {<br class="gmail_msg">
+    if (llvm::MemoryBuffer *buf = I.Buffer.get()) {<br class="gmail_msg">
       size_t bytes = buf->getBufferSize();<br class="gmail_msg">
       switch (buf->getBufferKind()) {<br class="gmail_msg">
         case llvm::MemoryBuffer::MemoryBuffer_Malloc:<br class="gmail_msg">
@@ -9668,10 +9628,8 @@ ASTReader::ASTReader(Preprocessor &PP, A<br class="gmail_msg">
                    : cast<ASTReaderListener>(new PCHValidator(PP, *this))),<br class="gmail_msg">
       SourceMgr(PP.getSourceManager()), FileMgr(PP.getFileManager()),<br class="gmail_msg">
       PCHContainerRdr(PCHContainerRdr), Diags(PP.getDiagnostics()), PP(PP),<br class="gmail_msg">
-      Context(Context),<br class="gmail_msg">
-      ModuleMgr(PP.getFileManager(), PP.getPCMCache(), PCHContainerRdr),<br class="gmail_msg">
-      PCMCache(PP.getPCMCache()), DummyIdResolver(PP),<br class="gmail_msg">
-      ReadTimer(std::move(ReadTimer)), isysroot(isysroot),<br class="gmail_msg">
+      Context(Context), ModuleMgr(PP.getFileManager(), PCHContainerRdr),<br class="gmail_msg">
+      DummyIdResolver(PP), ReadTimer(std::move(ReadTimer)), isysroot(isysroot),<br class="gmail_msg">
       DisableValidation(DisableValidation),<br class="gmail_msg">
       AllowASTWithCompilerErrors(AllowASTWithCompilerErrors),<br class="gmail_msg">
       AllowConfigurationMismatch(AllowConfigurationMismatch),<br class="gmail_msg">
<br class="gmail_msg">
Modified: cfe/trunk/lib/Serialization/ASTWriter.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTWriter.cpp?rev=298185&r1=298184&r2=298185&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTWriter.cpp?rev=298185&r1=298184&r2=298185&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/lib/Serialization/ASTWriter.cpp (original)<br class="gmail_msg">
+++ cfe/trunk/lib/Serialization/ASTWriter.cpp Sat Mar 18 07:31:32 2017<br class="gmail_msg">
@@ -35,7 +35,6 @@<br class="gmail_msg">
 #include "clang/Basic/FileSystemOptions.h"<br class="gmail_msg">
 #include "clang/Basic/LLVM.h"<br class="gmail_msg">
 #include "clang/Basic/LangOptions.h"<br class="gmail_msg">
-#include "clang/Basic/MemoryBufferCache.h"<br class="gmail_msg">
 #include "clang/Basic/Module.h"<br class="gmail_msg">
 #include "clang/Basic/ObjCRuntime.h"<br class="gmail_msg">
 #include "clang/Basic/SourceManager.h"<br class="gmail_msg">
@@ -4305,11 +4304,10 @@ void ASTWriter::SetSelectorOffset(Select<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
 ASTWriter::ASTWriter(llvm::BitstreamWriter &Stream,<br class="gmail_msg">
-                     SmallVectorImpl<char> &Buffer, MemoryBufferCache &PCMCache,<br class="gmail_msg">
+                     SmallVectorImpl<char> &Buffer,<br class="gmail_msg">
                      ArrayRef<std::shared_ptr<ModuleFileExtension>> Extensions,<br class="gmail_msg">
                      bool IncludeTimestamps)<br class="gmail_msg">
-    : Stream(Stream), Buffer(Buffer), PCMCache(PCMCache),<br class="gmail_msg">
-      IncludeTimestamps(IncludeTimestamps) {<br class="gmail_msg">
+    : Stream(Stream), Buffer(Buffer), IncludeTimestamps(IncludeTimestamps) {<br class="gmail_msg">
   for (const auto &Ext : Extensions) {<br class="gmail_msg">
     if (auto Writer = Ext->createExtensionWriter(*this))<br class="gmail_msg">
       ModuleFileExtensionWriters.push_back(std::move(Writer));<br class="gmail_msg">
@@ -4356,12 +4354,6 @@ ASTFileSignature ASTWriter::WriteAST(Sem<br class="gmail_msg">
   this->BaseDirectory.clear();<br class="gmail_msg">
<br class="gmail_msg">
   WritingAST = false;<br class="gmail_msg">
-  if (SemaRef.Context.getLangOpts().ImplicitModules && WritingModule) {<br class="gmail_msg">
-    // Construct MemoryBuffer and update buffer manager.<br class="gmail_msg">
-    PCMCache.addBuffer(OutputFile,<br class="gmail_msg">
-                       llvm::MemoryBuffer::getMemBufferCopy(<br class="gmail_msg">
-                           StringRef(Buffer.begin(), Buffer.size())));<br class="gmail_msg">
-  }<br class="gmail_msg">
   return Signature;<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
Modified: cfe/trunk/lib/Serialization/GeneratePCH.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/GeneratePCH.cpp?rev=298185&r1=298184&r2=298185&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/GeneratePCH.cpp?rev=298185&r1=298184&r2=298185&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/lib/Serialization/GeneratePCH.cpp (original)<br class="gmail_msg">
+++ cfe/trunk/lib/Serialization/GeneratePCH.cpp Sat Mar 18 07:31:32 2017<br class="gmail_msg">
@@ -28,8 +28,7 @@ PCHGenerator::PCHGenerator(<br class="gmail_msg">
     bool AllowASTWithErrors, bool IncludeTimestamps)<br class="gmail_msg">
     : PP(PP), OutputFile(OutputFile), isysroot(isysroot.str()),<br class="gmail_msg">
       SemaPtr(nullptr), Buffer(Buffer), Stream(Buffer->Data),<br class="gmail_msg">
-      Writer(Stream, Buffer->Data, PP.getPCMCache(), Extensions,<br class="gmail_msg">
-             IncludeTimestamps),<br class="gmail_msg">
+      Writer(Stream, Buffer->Data, Extensions, IncludeTimestamps),<br class="gmail_msg">
       AllowASTWithErrors(AllowASTWithErrors) {<br class="gmail_msg">
   Buffer->IsComplete = false;<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
Modified: cfe/trunk/lib/Serialization/ModuleManager.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ModuleManager.cpp?rev=298185&r1=298184&r2=298185&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ModuleManager.cpp?rev=298185&r1=298184&r2=298185&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/lib/Serialization/ModuleManager.cpp (original)<br class="gmail_msg">
+++ cfe/trunk/lib/Serialization/ModuleManager.cpp Sat Mar 18 07:31:32 2017<br class="gmail_msg">
@@ -12,7 +12,6 @@<br class="gmail_msg">
 //<br class="gmail_msg">
 //===----------------------------------------------------------------------===//<br class="gmail_msg">
 #include "clang/Serialization/ModuleManager.h"<br class="gmail_msg">
-#include "clang/Basic/MemoryBufferCache.h"<br class="gmail_msg">
 #include "clang/Frontend/PCHContainerOperations.h"<br class="gmail_msg">
 #include "clang/Lex/HeaderSearch.h"<br class="gmail_msg">
 #include "clang/Lex/ModuleMap.h"<br class="gmail_msg">
@@ -138,9 +137,7 @@ ModuleManager::addModule(StringRef FileN<br class="gmail_msg">
   // Load the contents of the module<br class="gmail_msg">
   if (std::unique_ptr<llvm::MemoryBuffer> Buffer = lookupBuffer(FileName)) {<br class="gmail_msg">
     // The buffer was already provided for us.<br class="gmail_msg">
-    NewModule->Buffer = &PCMCache->addBuffer(FileName, std::move(Buffer));<br class="gmail_msg">
-  } else if (llvm::MemoryBuffer *Buffer = PCMCache->lookupBuffer(FileName)) {<br class="gmail_msg">
-    NewModule->Buffer = Buffer;<br class="gmail_msg">
+    NewModule->Buffer = std::move(Buffer);<br class="gmail_msg">
   } else {<br class="gmail_msg">
     // Open the AST file.<br class="gmail_msg">
     llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> Buf((std::error_code()));<br class="gmail_msg">
@@ -161,7 +158,7 @@ ModuleManager::addModule(StringRef FileN<br class="gmail_msg">
       return Missing;<br class="gmail_msg">
     }<br class="gmail_msg">
<br class="gmail_msg">
-    NewModule->Buffer = &PCMCache->addBuffer(FileName, std::move(*Buf));<br class="gmail_msg">
+    NewModule->Buffer = std::move(*Buf);<br class="gmail_msg">
   }<br class="gmail_msg">
<br class="gmail_msg">
   // Initialize the stream.<br class="gmail_msg">
@@ -170,13 +167,8 @@ ModuleManager::addModule(StringRef FileN<br class="gmail_msg">
   // Read the signature eagerly now so that we can check it.  Avoid calling<br class="gmail_msg">
   // ReadSignature unless there's something to check though.<br class="gmail_msg">
   if (ExpectedSignature && checkSignature(ReadSignature(NewModule->Data),<br class="gmail_msg">
-                                          ExpectedSignature, ErrorStr)) {<br class="gmail_msg">
-    // Try to remove the buffer.  If it can't be removed, then it was already<br class="gmail_msg">
-    // validated by this process.<br class="gmail_msg">
-    if (!PCMCache->tryToRemoveBuffer(NewModule->FileName))<br class="gmail_msg">
-      FileMgr.invalidateCache(NewModule->File);<br class="gmail_msg">
+                                          ExpectedSignature, ErrorStr))<br class="gmail_msg">
     return OutOfDate;<br class="gmail_msg">
-  }<br class="gmail_msg">
<br class="gmail_msg">
   // We're keeping this module.  Store it everywhere.<br class="gmail_msg">
   Module = Modules[Entry] = NewModule.get();<br class="gmail_msg">
@@ -243,12 +235,7 @@ void ModuleManager::removeModules(<br class="gmail_msg">
     // Files that didn't make it through ReadASTCore successfully will be<br class="gmail_msg">
     // rebuilt (or there was an error). Invalidate them so that we can load the<br class="gmail_msg">
     // new files that will be renamed over the old ones.<br class="gmail_msg">
-    //<br class="gmail_msg">
-    // The PCMCache tracks whether the module was succesfully loaded in another<br class="gmail_msg">
-    // thread/context; in that case, it won't need to be rebuilt (and we can't<br class="gmail_msg">
-    // safely invalidate it anyway).<br class="gmail_msg">
-    if (LoadedSuccessfully.count(&*victim) == 0 &&<br class="gmail_msg">
-        !PCMCache->tryToRemoveBuffer(victim->FileName))<br class="gmail_msg">
+    if (LoadedSuccessfully.count(&*victim) == 0)<br class="gmail_msg">
       FileMgr.invalidateCache(victim->File);<br class="gmail_msg">
   }<br class="gmail_msg">
<br class="gmail_msg">
@@ -305,10 +292,10 @@ void ModuleManager::moduleFileAccepted(M<br class="gmail_msg">
   ModulesInCommonWithGlobalIndex.push_back(MF);<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
-ModuleManager::ModuleManager(FileManager &FileMgr, MemoryBufferCache &PCMCache,<br class="gmail_msg">
+ModuleManager::ModuleManager(FileManager &FileMgr,<br class="gmail_msg">
                              const PCHContainerReader &PCHContainerRdr)<br class="gmail_msg">
-    : FileMgr(FileMgr), PCMCache(&PCMCache), PCHContainerRdr(PCHContainerRdr),<br class="gmail_msg">
-      GlobalIndex(), FirstVisitState(nullptr) {}<br class="gmail_msg">
+    : FileMgr(FileMgr), PCHContainerRdr(PCHContainerRdr), GlobalIndex(),<br class="gmail_msg">
+      FirstVisitState(nullptr) {}<br class="gmail_msg">
<br class="gmail_msg">
 ModuleManager::~ModuleManager() { delete FirstVisitState; }<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
Removed: cfe/trunk/test/Modules/Inputs/system-out-of-date/X.h<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/system-out-of-date/X.h?rev=298184&view=auto" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/system-out-of-date/X.h?rev=298184&view=auto</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/test/Modules/Inputs/system-out-of-date/X.h (original)<br class="gmail_msg">
+++ cfe/trunk/test/Modules/Inputs/system-out-of-date/X.h (removed)<br class="gmail_msg">
@@ -1 +0,0 @@<br class="gmail_msg">
-#import <Y.h><br class="gmail_msg">
<br class="gmail_msg">
Removed: cfe/trunk/test/Modules/Inputs/system-out-of-date/Y.h<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/system-out-of-date/Y.h?rev=298184&view=auto" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/system-out-of-date/Y.h?rev=298184&view=auto</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/test/Modules/Inputs/system-out-of-date/Y.h (original)<br class="gmail_msg">
+++ cfe/trunk/test/Modules/Inputs/system-out-of-date/Y.h (removed)<br class="gmail_msg">
@@ -1 +0,0 @@<br class="gmail_msg">
-//empty<br class="gmail_msg">
<br class="gmail_msg">
Removed: cfe/trunk/test/Modules/Inputs/system-out-of-date/Z.h<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/system-out-of-date/Z.h?rev=298184&view=auto" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/system-out-of-date/Z.h?rev=298184&view=auto</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/test/Modules/Inputs/system-out-of-date/Z.h (original)<br class="gmail_msg">
+++ cfe/trunk/test/Modules/Inputs/system-out-of-date/Z.h (removed)<br class="gmail_msg">
@@ -1 +0,0 @@<br class="gmail_msg">
-#import <Y.h><br class="gmail_msg">
<br class="gmail_msg">
Removed: cfe/trunk/test/Modules/Inputs/system-out-of-date/module.map<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/system-out-of-date/module.map?rev=298184&view=auto" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/system-out-of-date/module.map?rev=298184&view=auto</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/test/Modules/Inputs/system-out-of-date/module.map (original)<br class="gmail_msg">
+++ cfe/trunk/test/Modules/Inputs/system-out-of-date/module.map (removed)<br class="gmail_msg">
@@ -1,12 +0,0 @@<br class="gmail_msg">
-module X [system] {<br class="gmail_msg">
-  header "X.h" // imports Y<br class="gmail_msg">
-  export *<br class="gmail_msg">
-}<br class="gmail_msg">
-module Y {<br class="gmail_msg">
-  header "Y.h"<br class="gmail_msg">
-  export *<br class="gmail_msg">
-}<br class="gmail_msg">
-module Z {<br class="gmail_msg">
-  header "Z.h" // imports Y<br class="gmail_msg">
-  export *<br class="gmail_msg">
-}<br class="gmail_msg">
<br class="gmail_msg">
Removed: cfe/trunk/test/Modules/Inputs/warning-mismatch/Mismatch.h<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/warning-mismatch/Mismatch.h?rev=298184&view=auto" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/warning-mismatch/Mismatch.h?rev=298184&view=auto</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/test/Modules/Inputs/warning-mismatch/Mismatch.h (original)<br class="gmail_msg">
+++ cfe/trunk/test/Modules/Inputs/warning-mismatch/Mismatch.h (removed)<br class="gmail_msg">
@@ -1 +0,0 @@<br class="gmail_msg">
-struct Mismatch { int i; };<br class="gmail_msg">
<br class="gmail_msg">
Removed: cfe/trunk/test/Modules/Inputs/warning-mismatch/System.h<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/warning-mismatch/System.h?rev=298184&view=auto" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/warning-mismatch/System.h?rev=298184&view=auto</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/test/Modules/Inputs/warning-mismatch/System.h (original)<br class="gmail_msg">
+++ cfe/trunk/test/Modules/Inputs/warning-mismatch/System.h (removed)<br class="gmail_msg">
@@ -1,2 +0,0 @@<br class="gmail_msg">
-#import "Mismatch.h"<br class="gmail_msg">
-struct System { int i; };<br class="gmail_msg">
<br class="gmail_msg">
Removed: cfe/trunk/test/Modules/Inputs/warning-mismatch/module.modulemap<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/warning-mismatch/module.modulemap?rev=298184&view=auto" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/warning-mismatch/module.modulemap?rev=298184&view=auto</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/test/Modules/Inputs/warning-mismatch/module.modulemap (original)<br class="gmail_msg">
+++ cfe/trunk/test/Modules/Inputs/warning-mismatch/module.modulemap (removed)<br class="gmail_msg">
@@ -1,7 +0,0 @@<br class="gmail_msg">
-module System [system] {<br class="gmail_msg">
-  header "System.h"<br class="gmail_msg">
-}<br class="gmail_msg">
-<br class="gmail_msg">
-module Mismatch {<br class="gmail_msg">
-  header "Mismatch.h"<br class="gmail_msg">
-}<br class="gmail_msg">
<br class="gmail_msg">
Removed: cfe/trunk/test/Modules/outofdate-rebuild.m<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/outofdate-rebuild.m?rev=298184&view=auto" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/outofdate-rebuild.m?rev=298184&view=auto</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/test/Modules/outofdate-rebuild.m (original)<br class="gmail_msg">
+++ cfe/trunk/test/Modules/outofdate-rebuild.m (removed)<br class="gmail_msg">
@@ -1,15 +0,0 @@<br class="gmail_msg">
-// RUN: rm -rf %t.cache<br class="gmail_msg">
-// RUN: echo "@import CoreText;" > %t.m<br class="gmail_msg">
-// RUN: %clang_cc1 -fdisable-module-hash -fmodules-cache-path=%t.cache \<br class="gmail_msg">
-// RUN:   -fmodules -fimplicit-module-maps -I%S/Inputs/outofdate-rebuild %s \<br class="gmail_msg">
-// RUN:   -fsyntax-only<br class="gmail_msg">
-// RUN: %clang_cc1 -DMISMATCH -Werror -fdisable-module-hash \<br class="gmail_msg">
-// RUN:   -fmodules-cache-path=%t.cache -fmodules -fimplicit-module-maps \<br class="gmail_msg">
-// RUN:   -I%S/Inputs/outofdate-rebuild %t.m -fsyntax-only<br class="gmail_msg">
-// RUN: %clang_cc1 -fdisable-module-hash -fmodules-cache-path=%t.cache \<br class="gmail_msg">
-// RUN:   -fmodules -fimplicit-module-maps -I%S/Inputs/outofdate-rebuild %s \<br class="gmail_msg">
-// RUN:   -fsyntax-only<br class="gmail_msg">
-<br class="gmail_msg">
-// This testcase reproduces a use-after-free in when ModuleManager removes an<br class="gmail_msg">
-// entry from the PCMCache without notifying its parent ASTReader.<br class="gmail_msg">
-@import Cocoa;<br class="gmail_msg">
<br class="gmail_msg">
Removed: cfe/trunk/test/Modules/system-out-of-date-test.m<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/system-out-of-date-test.m?rev=298184&view=auto" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/system-out-of-date-test.m?rev=298184&view=auto</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/test/Modules/system-out-of-date-test.m (original)<br class="gmail_msg">
+++ cfe/trunk/test/Modules/system-out-of-date-test.m (removed)<br class="gmail_msg">
@@ -1,17 +0,0 @@<br class="gmail_msg">
-// RUN: rm -rf %t.cache<br class="gmail_msg">
-// RUN: echo '@import X;' | \<br class="gmail_msg">
-// RUN:   %clang_cc1 -fmodules -fimplicit-module-maps \<br class="gmail_msg">
-// RUN:     -fmodules-cache-path=%t.cache -I%S/Inputs/system-out-of-date \<br class="gmail_msg">
-// RUN:     -fsyntax-only -x objective-c -<br class="gmail_msg">
-//<br class="gmail_msg">
-// Build something with different diagnostic options.<br class="gmail_msg">
-// RUN: %clang_cc1 -fmodules -fimplicit-module-maps \<br class="gmail_msg">
-// RUN:   -fmodules-cache-path=%t.cache -I%S/Inputs/system-out-of-date \<br class="gmail_msg">
-// RUN:   -fsyntax-only %s -Wnon-modular-include-in-framework-module \<br class="gmail_msg">
-// RUN:   -Werror=non-modular-include-in-framework-module 2>&1 \<br class="gmail_msg">
-// RUN: | FileCheck %s<br class="gmail_msg">
-@import X;<br class="gmail_msg">
-<br class="gmail_msg">
-#import <Z.h><br class="gmail_msg">
-// CHECK: While building module 'Z' imported from<br class="gmail_msg">
-// CHECK: {{.*}}Y-{{.*}}pcm' was validated as a system module and is now being imported as a non-system module<br class="gmail_msg">
<br class="gmail_msg">
Removed: cfe/trunk/test/Modules/warning-mismatch.m<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/warning-mismatch.m?rev=298184&view=auto" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/warning-mismatch.m?rev=298184&view=auto</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/test/Modules/warning-mismatch.m (original)<br class="gmail_msg">
+++ cfe/trunk/test/Modules/warning-mismatch.m (removed)<br class="gmail_msg">
@@ -1,13 +0,0 @@<br class="gmail_msg">
-// RUN: rm -rf %t.cache<br class="gmail_msg">
-// RUN: echo "@import Mismatch;" >%t.m<br class="gmail_msg">
-// RUN: %clang_cc1 -Wno-system-headers -fdisable-module-hash \<br class="gmail_msg">
-// RUN:   -fmodules-cache-path=%t.cache -fmodules -fimplicit-module-maps \<br class="gmail_msg">
-// RUN:   -I%S/Inputs/warning-mismatch %t.m -fsyntax-only<br class="gmail_msg">
-// RUN: %clang_cc1 -Wsystem-headers -fdisable-module-hash \<br class="gmail_msg">
-// RUN:   -fmodules-cache-path=%t.cache -fmodules -fimplicit-module-maps \<br class="gmail_msg">
-// RUN:   -I%S/Inputs/warning-mismatch %s -fsyntax-only<br class="gmail_msg">
-<br class="gmail_msg">
-// This testcase triggers a warning flag mismatch in an already validated<br class="gmail_msg">
-// header.<br class="gmail_msg">
-@import Mismatch;<br class="gmail_msg">
-@import System;<br class="gmail_msg">
<br class="gmail_msg">
Modified: cfe/trunk/unittests/Basic/CMakeLists.txt<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Basic/CMakeLists.txt?rev=298185&r1=298184&r2=298185&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Basic/CMakeLists.txt?rev=298185&r1=298184&r2=298185&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/unittests/Basic/CMakeLists.txt (original)<br class="gmail_msg">
+++ cfe/trunk/unittests/Basic/CMakeLists.txt Sat Mar 18 07:31:32 2017<br class="gmail_msg">
@@ -6,7 +6,6 @@ add_clang_unittest(BasicTests<br class="gmail_msg">
   CharInfoTest.cpp<br class="gmail_msg">
   DiagnosticTest.cpp<br class="gmail_msg">
   FileManagerTest.cpp<br class="gmail_msg">
-  MemoryBufferCacheTest.cpp<br class="gmail_msg">
   SourceManagerTest.cpp<br class="gmail_msg">
   VirtualFileSystemTest.cpp<br class="gmail_msg">
   )<br class="gmail_msg">
<br class="gmail_msg">
Removed: cfe/trunk/unittests/Basic/MemoryBufferCacheTest.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Basic/MemoryBufferCacheTest.cpp?rev=298184&view=auto" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Basic/MemoryBufferCacheTest.cpp?rev=298184&view=auto</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/unittests/Basic/MemoryBufferCacheTest.cpp (original)<br class="gmail_msg">
+++ cfe/trunk/unittests/Basic/MemoryBufferCacheTest.cpp (removed)<br class="gmail_msg">
@@ -1,94 +0,0 @@<br class="gmail_msg">
-//===- MemoryBufferCacheTest.cpp - MemoryBufferCache tests ----------------===//<br class="gmail_msg">
-//<br class="gmail_msg">
-//                     The LLVM Compiler Infrastructure<br class="gmail_msg">
-//<br class="gmail_msg">
-// This file is distributed under the University of Illinois Open Source<br class="gmail_msg">
-// License. See LICENSE.TXT for details.<br class="gmail_msg">
-//<br class="gmail_msg">
-//===----------------------------------------------------------------------===//<br class="gmail_msg">
-<br class="gmail_msg">
-#include "clang/Basic/MemoryBufferCache.h"<br class="gmail_msg">
-#include "llvm/Support/MemoryBuffer.h"<br class="gmail_msg">
-#include "gtest/gtest.h"<br class="gmail_msg">
-<br class="gmail_msg">
-using namespace llvm;<br class="gmail_msg">
-using namespace clang;<br class="gmail_msg">
-<br class="gmail_msg">
-namespace {<br class="gmail_msg">
-<br class="gmail_msg">
-std::unique_ptr<MemoryBuffer> getBuffer(int I) {<br class="gmail_msg">
-  SmallVector<char, 8> Bytes;<br class="gmail_msg">
-  raw_svector_ostream(Bytes) << "data:" << I;<br class="gmail_msg">
-  return MemoryBuffer::getMemBuffer(StringRef(Bytes.data(), Bytes.size()));<br class="gmail_msg">
-}<br class="gmail_msg">
-<br class="gmail_msg">
-TEST(MemoryBufferCacheTest, addBuffer) {<br class="gmail_msg">
-  auto B1 = getBuffer(1);<br class="gmail_msg">
-  auto B2 = getBuffer(2);<br class="gmail_msg">
-  auto B3 = getBuffer(3);<br class="gmail_msg">
-  auto *RawB1 = B1.get();<br class="gmail_msg">
-  auto *RawB2 = B2.get();<br class="gmail_msg">
-  auto *RawB3 = B3.get();<br class="gmail_msg">
-<br class="gmail_msg">
-  // Add a few buffers.<br class="gmail_msg">
-  MemoryBufferCache Cache;<br class="gmail_msg">
-  EXPECT_EQ(RawB1, &Cache.addBuffer("1", std::move(B1)));<br class="gmail_msg">
-  EXPECT_EQ(RawB2, &Cache.addBuffer("2", std::move(B2)));<br class="gmail_msg">
-  EXPECT_EQ(RawB3, &Cache.addBuffer("3", std::move(B3)));<br class="gmail_msg">
-  EXPECT_EQ(RawB1, Cache.lookupBuffer("1"));<br class="gmail_msg">
-  EXPECT_EQ(RawB2, Cache.lookupBuffer("2"));<br class="gmail_msg">
-  EXPECT_EQ(RawB3, Cache.lookupBuffer("3"));<br class="gmail_msg">
-  EXPECT_FALSE(Cache.isBufferFinal("1"));<br class="gmail_msg">
-  EXPECT_FALSE(Cache.isBufferFinal("2"));<br class="gmail_msg">
-  EXPECT_FALSE(Cache.isBufferFinal("3"));<br class="gmail_msg">
-<br class="gmail_msg">
-  // Remove the middle buffer.<br class="gmail_msg">
-  EXPECT_FALSE(Cache.tryToRemoveBuffer("2"));<br class="gmail_msg">
-  EXPECT_EQ(nullptr, Cache.lookupBuffer("2"));<br class="gmail_msg">
-  EXPECT_FALSE(Cache.isBufferFinal("2"));<br class="gmail_msg">
-<br class="gmail_msg">
-  // Replace the middle buffer.<br class="gmail_msg">
-  B2 = getBuffer(2);<br class="gmail_msg">
-  ASSERT_NE(RawB2, B2.get());<br class="gmail_msg">
-  RawB2 = B2.get();<br class="gmail_msg">
-  EXPECT_EQ(RawB2, &Cache.addBuffer("2", std::move(B2)));<br class="gmail_msg">
-<br class="gmail_msg">
-  // Check that nothing is final.<br class="gmail_msg">
-  EXPECT_FALSE(Cache.isBufferFinal("1"));<br class="gmail_msg">
-  EXPECT_FALSE(Cache.isBufferFinal("2"));<br class="gmail_msg">
-  EXPECT_FALSE(Cache.isBufferFinal("3"));<br class="gmail_msg">
-}<br class="gmail_msg">
-<br class="gmail_msg">
-TEST(MemoryBufferCacheTest, finalizeCurrentBuffers) {<br class="gmail_msg">
-  // Add a buffer.<br class="gmail_msg">
-  MemoryBufferCache Cache;<br class="gmail_msg">
-  auto B1 = getBuffer(1);<br class="gmail_msg">
-  auto *RawB1 = B1.get();<br class="gmail_msg">
-  Cache.addBuffer("1", std::move(B1));<br class="gmail_msg">
-  ASSERT_FALSE(Cache.isBufferFinal("1"));<br class="gmail_msg">
-<br class="gmail_msg">
-  // Finalize it.<br class="gmail_msg">
-  Cache.finalizeCurrentBuffers();<br class="gmail_msg">
-  EXPECT_TRUE(Cache.isBufferFinal("1"));<br class="gmail_msg">
-  EXPECT_TRUE(Cache.tryToRemoveBuffer("1"));<br class="gmail_msg">
-  EXPECT_EQ(RawB1, Cache.lookupBuffer("1"));<br class="gmail_msg">
-  EXPECT_TRUE(Cache.isBufferFinal("1"));<br class="gmail_msg">
-<br class="gmail_msg">
-  // Repeat.<br class="gmail_msg">
-  auto B2 = getBuffer(2);<br class="gmail_msg">
-  auto *RawB2 = B2.get();<br class="gmail_msg">
-  Cache.addBuffer("2", std::move(B2));<br class="gmail_msg">
-  EXPECT_FALSE(Cache.isBufferFinal("2"));<br class="gmail_msg">
-<br class="gmail_msg">
-  Cache.finalizeCurrentBuffers();<br class="gmail_msg">
-  EXPECT_TRUE(Cache.isBufferFinal("1"));<br class="gmail_msg">
-  EXPECT_TRUE(Cache.isBufferFinal("2"));<br class="gmail_msg">
-  EXPECT_TRUE(Cache.tryToRemoveBuffer("1"));<br class="gmail_msg">
-  EXPECT_TRUE(Cache.tryToRemoveBuffer("2"));<br class="gmail_msg">
-  EXPECT_EQ(RawB1, Cache.lookupBuffer("1"));<br class="gmail_msg">
-  EXPECT_EQ(RawB2, Cache.lookupBuffer("2"));<br class="gmail_msg">
-  EXPECT_TRUE(Cache.isBufferFinal("1"));<br class="gmail_msg">
-  EXPECT_TRUE(Cache.isBufferFinal("2"));<br class="gmail_msg">
-}<br class="gmail_msg">
-<br class="gmail_msg">
-} // namespace<br class="gmail_msg">
<br class="gmail_msg">
Modified: cfe/trunk/unittests/Basic/SourceManagerTest.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Basic/SourceManagerTest.cpp?rev=298185&r1=298184&r2=298185&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Basic/SourceManagerTest.cpp?rev=298185&r1=298184&r2=298185&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/unittests/Basic/SourceManagerTest.cpp (original)<br class="gmail_msg">
+++ cfe/trunk/unittests/Basic/SourceManagerTest.cpp Sat Mar 18 07:31:32 2017<br class="gmail_msg">
@@ -12,7 +12,6 @@<br class="gmail_msg">
 #include "clang/Basic/DiagnosticOptions.h"<br class="gmail_msg">
 #include "clang/Basic/FileManager.h"<br class="gmail_msg">
 #include "clang/Basic/LangOptions.h"<br class="gmail_msg">
-#include "clang/Basic/MemoryBufferCache.h"<br class="gmail_msg">
 #include "clang/Basic/TargetInfo.h"<br class="gmail_msg">
 #include "clang/Basic/TargetOptions.h"<br class="gmail_msg">
 #include "clang/Lex/HeaderSearch.h"<br class="gmail_msg">
@@ -79,11 +78,10 @@ TEST_F(SourceManagerTest, isBeforeInTran<br class="gmail_msg">
   SourceMgr.setMainFileID(mainFileID);<br class="gmail_msg">
<br class="gmail_msg">
   VoidModuleLoader ModLoader;<br class="gmail_msg">
-  MemoryBufferCache PCMCache;<br class="gmail_msg">
   HeaderSearch HeaderInfo(std::make_shared<HeaderSearchOptions>(), SourceMgr,<br class="gmail_msg">
                           Diags, LangOpts, &*Target);<br class="gmail_msg">
   Preprocessor PP(std::make_shared<PreprocessorOptions>(), Diags, LangOpts,<br class="gmail_msg">
-                  SourceMgr, PCMCache, HeaderInfo, ModLoader,<br class="gmail_msg">
+                  SourceMgr, HeaderInfo, ModLoader,<br class="gmail_msg">
                   /*IILookup =*/nullptr,<br class="gmail_msg">
                   /*OwnsHeaderSearch =*/false);<br class="gmail_msg">
   PP.Initialize(*Target);<br class="gmail_msg">
@@ -200,11 +198,10 @@ TEST_F(SourceManagerTest, getMacroArgExp<br class="gmail_msg">
   SourceMgr.overrideFileContents(headerFile, std::move(HeaderBuf));<br class="gmail_msg">
<br class="gmail_msg">
   VoidModuleLoader ModLoader;<br class="gmail_msg">
-  MemoryBufferCache PCMCache;<br class="gmail_msg">
   HeaderSearch HeaderInfo(std::make_shared<HeaderSearchOptions>(), SourceMgr,<br class="gmail_msg">
                           Diags, LangOpts, &*Target);<br class="gmail_msg">
   Preprocessor PP(std::make_shared<PreprocessorOptions>(), Diags, LangOpts,<br class="gmail_msg">
-                  SourceMgr, PCMCache, HeaderInfo, ModLoader,<br class="gmail_msg">
+                  SourceMgr, HeaderInfo, ModLoader,<br class="gmail_msg">
                   /*IILookup =*/nullptr,<br class="gmail_msg">
                   /*OwnsHeaderSearch =*/false);<br class="gmail_msg">
   PP.Initialize(*Target);<br class="gmail_msg">
@@ -301,11 +298,10 @@ TEST_F(SourceManagerTest, isBeforeInTran<br class="gmail_msg">
   SourceMgr.overrideFileContents(headerFile, std::move(HeaderBuf));<br class="gmail_msg">
<br class="gmail_msg">
   VoidModuleLoader ModLoader;<br class="gmail_msg">
-  MemoryBufferCache PCMCache;<br class="gmail_msg">
   HeaderSearch HeaderInfo(std::make_shared<HeaderSearchOptions>(), SourceMgr,<br class="gmail_msg">
                           Diags, LangOpts, &*Target);<br class="gmail_msg">
   Preprocessor PP(std::make_shared<PreprocessorOptions>(), Diags, LangOpts,<br class="gmail_msg">
-                  SourceMgr, PCMCache, HeaderInfo, ModLoader,<br class="gmail_msg">
+                  SourceMgr, HeaderInfo, ModLoader,<br class="gmail_msg">
                   /*IILookup =*/nullptr,<br class="gmail_msg">
                   /*OwnsHeaderSearch =*/false);<br class="gmail_msg">
   PP.Initialize(*Target);<br class="gmail_msg">
<br class="gmail_msg">
Modified: cfe/trunk/unittests/Lex/LexerTest.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Lex/LexerTest.cpp?rev=298185&r1=298184&r2=298185&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Lex/LexerTest.cpp?rev=298185&r1=298184&r2=298185&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/unittests/Lex/LexerTest.cpp (original)<br class="gmail_msg">
+++ cfe/trunk/unittests/Lex/LexerTest.cpp Sat Mar 18 07:31:32 2017<br class="gmail_msg">
@@ -12,7 +12,6 @@<br class="gmail_msg">
 #include "clang/Basic/DiagnosticOptions.h"<br class="gmail_msg">
 #include "clang/Basic/FileManager.h"<br class="gmail_msg">
 #include "clang/Basic/LangOptions.h"<br class="gmail_msg">
-#include "clang/Basic/MemoryBufferCache.h"<br class="gmail_msg">
 #include "clang/Basic/SourceManager.h"<br class="gmail_msg">
 #include "clang/Basic/TargetInfo.h"<br class="gmail_msg">
 #include "clang/Basic/TargetOptions.h"<br class="gmail_msg">
@@ -65,12 +64,10 @@ protected:<br class="gmail_msg">
     SourceMgr.setMainFileID(SourceMgr.createFileID(std::move(Buf)));<br class="gmail_msg">
<br class="gmail_msg">
     VoidModuleLoader ModLoader;<br class="gmail_msg">
-    MemoryBufferCache PCMCache;<br class="gmail_msg">
     HeaderSearch HeaderInfo(std::make_shared<HeaderSearchOptions>(), SourceMgr,<br class="gmail_msg">
                             Diags, LangOpts, Target.get());<br class="gmail_msg">
     Preprocessor PP(std::make_shared<PreprocessorOptions>(), Diags, LangOpts,<br class="gmail_msg">
-                    SourceMgr, PCMCache, HeaderInfo, ModLoader,<br class="gmail_msg">
-                    /*IILookup =*/nullptr,<br class="gmail_msg">
+                    SourceMgr, HeaderInfo, ModLoader, /*IILookup =*/nullptr,<br class="gmail_msg">
                     /*OwnsHeaderSearch =*/false);<br class="gmail_msg">
     PP.Initialize(*Target);<br class="gmail_msg">
     PP.EnterMainSourceFile();<br class="gmail_msg">
<br class="gmail_msg">
Modified: cfe/trunk/unittests/Lex/PPCallbacksTest.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Lex/PPCallbacksTest.cpp?rev=298185&r1=298184&r2=298185&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Lex/PPCallbacksTest.cpp?rev=298185&r1=298184&r2=298185&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/unittests/Lex/PPCallbacksTest.cpp (original)<br class="gmail_msg">
+++ cfe/trunk/unittests/Lex/PPCallbacksTest.cpp Sat Mar 18 07:31:32 2017<br class="gmail_msg">
@@ -14,7 +14,6 @@<br class="gmail_msg">
 #include "clang/Basic/DiagnosticOptions.h"<br class="gmail_msg">
 #include "clang/Basic/FileManager.h"<br class="gmail_msg">
 #include "clang/Basic/LangOptions.h"<br class="gmail_msg">
-#include "clang/Basic/MemoryBufferCache.h"<br class="gmail_msg">
 #include "clang/Basic/SourceManager.h"<br class="gmail_msg">
 #include "clang/Basic/TargetInfo.h"<br class="gmail_msg">
 #include "clang/Basic/TargetOptions.h"<br class="gmail_msg">
@@ -162,14 +161,13 @@ protected:<br class="gmail_msg">
     SourceMgr.setMainFileID(SourceMgr.createFileID(std::move(Buf)));<br class="gmail_msg">
<br class="gmail_msg">
     VoidModuleLoader ModLoader;<br class="gmail_msg">
-    MemoryBufferCache PCMCache;<br class="gmail_msg">
<br class="gmail_msg">
     HeaderSearch HeaderInfo(std::make_shared<HeaderSearchOptions>(), SourceMgr,<br class="gmail_msg">
                             Diags, LangOpts, Target.get());<br class="gmail_msg">
     AddFakeHeader(HeaderInfo, HeaderPath, SystemHeader);<br class="gmail_msg">
<br class="gmail_msg">
     Preprocessor PP(std::make_shared<PreprocessorOptions>(), Diags, LangOpts,<br class="gmail_msg">
-                    SourceMgr, PCMCache, HeaderInfo, ModLoader,<br class="gmail_msg">
+                    SourceMgr, HeaderInfo, ModLoader,<br class="gmail_msg">
                     /*IILookup =*/nullptr,<br class="gmail_msg">
                     /*OwnsHeaderSearch =*/false);<br class="gmail_msg">
     PP.Initialize(*Target);<br class="gmail_msg">
@@ -200,12 +198,11 @@ protected:<br class="gmail_msg">
     SourceMgr.setMainFileID(SourceMgr.createFileID(std::move(SourceBuf)));<br class="gmail_msg">
<br class="gmail_msg">
     VoidModuleLoader ModLoader;<br class="gmail_msg">
-    MemoryBufferCache PCMCache;<br class="gmail_msg">
     HeaderSearch HeaderInfo(std::make_shared<HeaderSearchOptions>(), SourceMgr,<br class="gmail_msg">
                             Diags, OpenCLLangOpts, Target.get());<br class="gmail_msg">
<br class="gmail_msg">
     Preprocessor PP(std::make_shared<PreprocessorOptions>(), Diags,<br class="gmail_msg">
-                    OpenCLLangOpts, SourceMgr, PCMCache, HeaderInfo, ModLoader,<br class="gmail_msg">
+                    OpenCLLangOpts, SourceMgr, HeaderInfo, ModLoader,<br class="gmail_msg">
                     /*IILookup =*/nullptr,<br class="gmail_msg">
                     /*OwnsHeaderSearch =*/false);<br class="gmail_msg">
     PP.Initialize(*Target);<br class="gmail_msg">
<br class="gmail_msg">
Modified: cfe/trunk/unittests/Lex/PPConditionalDirectiveRecordTest.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Lex/PPConditionalDirectiveRecordTest.cpp?rev=298185&r1=298184&r2=298185&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Lex/PPConditionalDirectiveRecordTest.cpp?rev=298185&r1=298184&r2=298185&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- cfe/trunk/unittests/Lex/PPConditionalDirectiveRecordTest.cpp (original)<br class="gmail_msg">
+++ cfe/trunk/unittests/Lex/PPConditionalDirectiveRecordTest.cpp Sat Mar 18 07:31:32 2017<br class="gmail_msg">
@@ -12,7 +12,6 @@<br class="gmail_msg">
 #include "clang/Basic/DiagnosticOptions.h"<br class="gmail_msg">
 #include "clang/Basic/FileManager.h"<br class="gmail_msg">
 #include "clang/Basic/LangOptions.h"<br class="gmail_msg">
-#include "clang/Basic/MemoryBufferCache.h"<br class="gmail_msg">
 #include "clang/Basic/SourceManager.h"<br class="gmail_msg">
 #include "clang/Basic/TargetInfo.h"<br class="gmail_msg">
 #include "clang/Basic/TargetOptions.h"<br class="gmail_msg">
@@ -94,11 +93,10 @@ TEST_F(PPConditionalDirectiveRecordTest,<br class="gmail_msg">
   SourceMgr.setMainFileID(SourceMgr.createFileID(std::move(Buf)));<br class="gmail_msg">
<br class="gmail_msg">
   VoidModuleLoader ModLoader;<br class="gmail_msg">
-  MemoryBufferCache PCMCache;<br class="gmail_msg">
   HeaderSearch HeaderInfo(std::make_shared<HeaderSearchOptions>(), SourceMgr,<br class="gmail_msg">
                           Diags, LangOpts, Target.get());<br class="gmail_msg">
   Preprocessor PP(std::make_shared<PreprocessorOptions>(), Diags, LangOpts,<br class="gmail_msg">
-                  SourceMgr, PCMCache, HeaderInfo, ModLoader,<br class="gmail_msg">
+                  SourceMgr, HeaderInfo, ModLoader,<br class="gmail_msg">
                   /*IILookup =*/nullptr,<br class="gmail_msg">
                   /*OwnsHeaderSearch =*/false);<br class="gmail_msg">
   PP.Initialize(*Target);<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
cfe-commits mailing list<br class="gmail_msg">
<a href="mailto:cfe-commits@lists.llvm.org" class="gmail_msg" target="_blank">cfe-commits@lists.llvm.org</a><br class="gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br class="gmail_msg">
</blockquote></div>