diff options
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(); } |