diff options
author | Steve Naroff <snaroff@apple.com> | 2009-04-24 20:03:17 +0000 |
---|---|---|
committer | Steve Naroff <snaroff@apple.com> | 2009-04-24 20:03:17 +0000 |
commit | 83d63c78810556d26b62ac4cbae2eda6cdd2570c (patch) | |
tree | 7444231d9436acad4d523469ba2b027355c4ad2f /lib/Frontend/PCHWriter.cpp | |
parent | ff11cd148b66fb4dfb4eef5b9f8c711ab80bd634 (diff) |
Add PCH support for #import.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69987 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Frontend/PCHWriter.cpp')
-rw-r--r-- | lib/Frontend/PCHWriter.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/Frontend/PCHWriter.cpp b/lib/Frontend/PCHWriter.cpp index 1af093a1cc..de4b9990b1 100644 --- a/lib/Frontend/PCHWriter.cpp +++ b/lib/Frontend/PCHWriter.cpp @@ -23,6 +23,7 @@ #include "clang/AST/Type.h" #include "clang/Lex/MacroInfo.h" #include "clang/Lex/Preprocessor.h" +#include "clang/Lex/HeaderSearch.h" #include "clang/Basic/FileManager.h" #include "clang/Basic/OnDiskHashTable.h" #include "clang/Basic/SourceManager.h" @@ -1547,7 +1548,22 @@ void PCHWriter::WritePreprocessor(const Preprocessor &PP) { } ++NumMacros; } - + + // Loop over all the header files. + HeaderSearch &HS = PP.getHeaderSearchInfo(); + for (HeaderSearch::header_file_iterator I = HS.header_file_begin(), + E = HS.header_file_end(); + I != E; ++I) { + Record.push_back((*I).isImport); + Record.push_back((*I).DirInfo); + Record.push_back((*I).NumIncludes); + if ((*I).ControllingMacro) + AddIdentifierRef((*I).ControllingMacro, Record); + else + Record.push_back(0); + Stream.EmitRecord(pch::PP_HEADER_FILE_INFO, Record); + Record.clear(); + } Stream.ExitBlock(); } |