[PATCH] D39842: Allow to store precompiled preambles in memory.

Manuel Klimek via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Nov 10 07:30:24 PST 2017


klimek added inline comments.


================
Comment at: include/clang/Frontend/PrecompiledPreamble.h:99
   /// Changes options inside \p CI to use PCH from this preamble. Also remaps
-  /// main file to \p MainFileBuffer.
+  /// main file to \p MainFileBuffer and updates \p VFS to ensure preamble is
+  /// accessible.
----------------
...ensure *the* preamble...


================
Comment at: lib/Frontend/ASTUnit.cpp:1028
+    IntrusiveRefCntPtr<vfs::FileSystem> OldVFS = VFS;
+    Preamble->AddImplicitPreamble(*CCInvocation, /*ref*/ VFS,
+                                  OverrideMainBuffer.get());
----------------
Since when are we using the /*ref*/ annotation?


================
Comment at: lib/Frontend/PrecompiledPreamble.cpp:206
+  std::unique_ptr<std::string> Storage;
+  if (InMemStorage) {
+    OS = llvm::make_unique<llvm::raw_string_ostream>(*InMemStorage);
----------------
It looks like we should pass in the output stream, not the storage?


================
Comment at: lib/Frontend/PrecompiledPreamble.cpp:490
   PreprocessorOpts.DisablePCHValidation = true;
+  if (Storage.getKind() == PCHStorage::Kind::TempFile) {
+    const TempPCHFile &PCHFile = Storage.asFile();
----------------
This looks a bit like we should push it into the PCHStorage.


https://reviews.llvm.org/D39842





More information about the cfe-commits mailing list