]> granicus.if.org Git - clang/commitdiff
Macro definitions in AST files have their own IDs.
authorSebastian Redl <sebastian.redl@getdesigned.at>
Wed, 15 Sep 2010 19:54:06 +0000 (19:54 +0000)
committerSebastian Redl <sebastian.redl@getdesigned.at>
Wed, 15 Sep 2010 19:54:06 +0000 (19:54 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114014 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Serialization/ASTBitCodes.h
include/clang/Serialization/ASTReader.h
include/clang/Serialization/ASTWriter.h
lib/Serialization/ASTReader.cpp
lib/Serialization/ASTWriter.cpp

index 3714b77f2be6d9585f209fab06914010a630b4fb..8628d74ff1f39c17517144a150e0d3f58f28f6b3 100644 (file)
@@ -112,10 +112,13 @@ namespace clang {
     typedef llvm::DenseMap<QualType, TypeIdx, UnsafeQualTypeDenseMapInfo>
         TypeIdxMap;
 
-    /// \brief An ID number that refers to an identifier in an AST
-    /// file.
+    /// \brief An ID number that refers to an identifier in an AST file.
     typedef uint32_t IdentID;
 
+    /// \brief An ID number that refers to a macro in an AST file.
+    typedef uint32_t MacroID;
+
+    /// \brief An ID number that refers to an ObjC selctor in an AST file.
     typedef uint32_t SelectorID;
 
     /// \brief Describes the various kinds of blocks that occur within
index d31be88a3e3d64f0689935a21404614a7dab7d45..f1801f4943b03b9ff9a3bb0499d0c1a7208f1acf 100644 (file)
@@ -1028,7 +1028,7 @@ public:
   virtual void ReadDefinedMacros();
 
   /// \brief Retrieve the macro definition with the given ID.
-  MacroDefinition *getMacroDefinition(serialization::IdentID ID);
+  MacroDefinition *getMacroDefinition(serialization::MacroID ID);
 
   /// \brief Retrieve the AST context that this AST reader supplements.
   ASTContext *getContext() { return Context; }
index 426fc47801485486b423e64b700e5a5fa722cb64..95964e0ea557ea19e619ff56b2768fc0884cb5a8 100644 (file)
@@ -173,8 +173,8 @@ private:
   llvm::DenseMap<const IdentifierInfo *, uint64_t> MacroOffsets;
 
   /// \brief Mapping from macro definitions (as they occur in the preprocessing
-  /// record) to the index into the macro definitions table.
-  llvm::DenseMap<const MacroDefinition *, serialization::IdentID>
+  /// record) to the macro IDs.
+  llvm::DenseMap<const MacroDefinition *, serialization::MacroID>
       MacroDefinitions;
   
   /// \brief Mapping from the macro definition indices in \c MacroDefinitions
@@ -353,7 +353,7 @@ public:
 
   /// \brief Retrieve the ID number corresponding to the given macro 
   /// definition.
-  serialization::IdentID getMacroDefinitionID(MacroDefinition *MD);
+  serialization::MacroID getMacroDefinitionID(MacroDefinition *MD);
   
   /// \brief Emit a reference to a type.
   void AddTypeRef(QualType T, RecordData &Record);
index 6e79eb22bde5bc2c606417dc9609ae2e967a279d..18df3359f336d5d4b05aa9db33f91eb5bf9e8ffc 100644 (file)
@@ -1545,7 +1545,7 @@ void ASTReader::ReadDefinedMacros() {
   }
 }
 
-MacroDefinition *ASTReader::getMacroDefinition(IdentID ID) {
+MacroDefinition *ASTReader::getMacroDefinition(MacroID ID) {
   if (ID == 0 || ID >= MacroDefinitionsLoaded.size())
     return 0;
 
index f661b45df024eb2495585d0fc56e12cade414fa3..b32354b46ccfd530afc70c69793bc58f55fb0347 100644 (file)
@@ -1349,7 +1349,7 @@ void ASTWriter::WritePreprocessor(const Preprocessor &PP) {
       
       if (MacroDefinition *MD = dyn_cast<MacroDefinition>(*E)) {
         // Record this macro definition's location.
-        IdentID ID = getMacroDefinitionID(MD);
+        MacroID ID = getMacroDefinitionID(MD);
         if (ID != MacroDefinitionOffsets.size()) {
           if (ID > MacroDefinitionOffsets.size())
             MacroDefinitionOffsets.resize(ID + 1);
@@ -2717,11 +2717,11 @@ IdentID ASTWriter::getIdentifierRef(const IdentifierInfo *II) {
   return ID;
 }
 
-IdentID ASTWriter::getMacroDefinitionID(MacroDefinition *MD) {
+MacroID ASTWriter::getMacroDefinitionID(MacroDefinition *MD) {
   if (MD == 0)
     return 0;
-  
-  IdentID &ID = MacroDefinitions[MD];
+
+  MacroID &ID = MacroDefinitions[MD];
   if (ID == 0)
     ID = MacroDefinitions.size();
   return ID;