aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/clang/Frontend/PCHBitCodes.h3
-rw-r--r--lib/Frontend/PCHWriter.cpp7
2 files changed, 10 insertions, 0 deletions
diff --git a/include/clang/Frontend/PCHBitCodes.h b/include/clang/Frontend/PCHBitCodes.h
index a8257bf007..4e66d2938d 100644
--- a/include/clang/Frontend/PCHBitCodes.h
+++ b/include/clang/Frontend/PCHBitCodes.h
@@ -121,6 +121,9 @@ namespace clang {
// The macros in the PP section are a PP_MACRO_* instance followed by a
// list of PP_TOKEN instances for each token in the definition.
+ // FIXME: TEMP HACK UNTIL WE HAVE IDENTIFIER INFO IDs.
+ PP_MACRO_NAME = 4,
+
/// \brief An object-like macro definition.
/// [PP_MACRO_OBJECT_LIKE, IdentInfoID, SLoc, IsUsed]
PP_MACRO_OBJECT_LIKE = 1,
diff --git a/lib/Frontend/PCHWriter.cpp b/lib/Frontend/PCHWriter.cpp
index 255ce8bf8d..6f4492bc8c 100644
--- a/lib/Frontend/PCHWriter.cpp
+++ b/lib/Frontend/PCHWriter.cpp
@@ -505,6 +505,13 @@ void PCHWriter::WritePreprocessor(const Preprocessor &PP) {
IdentifierInfo *II = I->first;
+ // FIXME: Emit a PP_MACRO_NAME for testing. This should be removed when we
+ // have identifierinfo id's.
+ for (unsigned i = 0, e = II->getLength(); i != e; ++i)
+ Record.push_back(II->getName()[i]);
+ S.EmitRecord(pch::PP_MACRO_NAME, Record);
+ Record.clear();
+
// FIXME: Output the identifier Info ID #!
Record.push_back((intptr_t)II);
Record.push_back(MI->getDefinitionLoc().getRawEncoding());