]> granicus.if.org Git - clang/commitdiff
add a new PP_MACRO_NAME hack so that I can test object-like macros.
authorChris Lattner <sabre@nondot.org>
Fri, 10 Apr 2009 18:22:18 +0000 (18:22 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 10 Apr 2009 18:22:18 +0000 (18:22 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68803 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Frontend/PCHBitCodes.h
lib/Frontend/PCHWriter.cpp

index a8257bf00795ad9b7e2c868d4b2ed4212dfda42e..4e66d2938d06d19e44a72369932f701ebbd8211f 100644 (file)
@@ -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,
index 255ce8bf8d77b728a3ab04f6b61068c56919f6de..6f4492bc8c10529c706773cad964ffb92ebd4a17 100644 (file)
@@ -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());