aboutsummaryrefslogtreecommitdiff
path: root/Driver/clang.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Driver/clang.cpp')
-rw-r--r--Driver/clang.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/Driver/clang.cpp b/Driver/clang.cpp
index 5c89ed0776..2870c3dec0 100644
--- a/Driver/clang.cpp
+++ b/Driver/clang.cpp
@@ -155,6 +155,15 @@ static llvm::cl::opt<bool>
GenerateDebugInfo("g",
llvm::cl::desc("Generate source level debug information"));
+
+//===----------------------------------------------------------------------===//
+// PTH.
+//===----------------------------------------------------------------------===//
+
+static llvm::cl::opt<std::string>
+TokenCache("token-cache", llvm::cl::value_desc("path"),
+ llvm::cl::desc("Use specified token cache file"));
+
//===----------------------------------------------------------------------===//
// Diagnostic Options
//===----------------------------------------------------------------------===//
@@ -904,6 +913,12 @@ static bool InitializePreprocessor(Preprocessor &PP,
PredefineBuffer.push_back(0);
PP.setPredefines(&PredefineBuffer[0]);
+ // Use PTH.
+ if (!TokenCache.empty()) {
+ PTHManager* PM = PTHManager::Create(TokenCache, PP);
+ if (PM) PP.setPTHManager(PM);
+ }
+
// Once we've read this, we're done.
return false;
}