]> granicus.if.org Git - clang/commitdiff
Reintroduce the ASTConsumer/ASTUnit fix from r110610, it has nothing to do with the...
authorSebastian Redl <sebastian.redl@getdesigned.at>
Wed, 11 Aug 2010 18:52:41 +0000 (18:52 +0000)
committerSebastian Redl <sebastian.redl@getdesigned.at>
Wed, 11 Aug 2010 18:52:41 +0000 (18:52 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110840 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/ASTConsumer.h
lib/AST/ASTConsumer.cpp
lib/Frontend/ASTUnit.cpp
lib/Frontend/PCHReader.cpp

index b01f6c6001742182b56697519ad57e93cdfa19b6..3f964ad0e9df210f5ae2b38f04454efd08153ceb 100644 (file)
@@ -49,6 +49,11 @@ public:
   /// elements). Use Decl::getNextDeclarator() to walk the chain.
   virtual void HandleTopLevelDecl(DeclGroupRef D);
 
+  /// HandleInterestingDecl - Handle the specified interesting declaration. This
+  /// is called by the PCH reader when deserializing things that might interest
+  /// the consumer. The default implementation forwards to HandleTopLevelDecl.
+  virtual void HandleInterestingDecl(DeclGroupRef D);
+
   /// HandleTranslationUnit - This method is called when the ASTs for entire
   /// translation unit have been parsed.
   virtual void HandleTranslationUnit(ASTContext &Ctx) {}
index f37cbdea54808f32984aac4b3e0dd4c1d809f53d..04a084a06a44029eb9d0057581b2be84c4714e98 100644 (file)
@@ -17,3 +17,6 @@ using namespace clang;
 
 void ASTConsumer::HandleTopLevelDecl(DeclGroupRef D) {}
 
+void ASTConsumer::HandleInterestingDecl(DeclGroupRef D) {
+  HandleTopLevelDecl(D);
+}
index fe4768db7c72afa98c85f6806d285def04ee2672..bbe2ec5bea66eede54239cf506728c661c9a8a3e 100644 (file)
@@ -320,6 +320,9 @@ public:
       Unit.addTopLevelDecl(D);
     }
   }
+
+  // We're not interested in "interesting" decls.
+  void HandleInterestingDecl(DeclGroupRef) {}
 };
 
 class TopLevelDeclTrackerAction : public ASTFrontendAction {
index 1bfc138d4fb9f9a8cacb02146554b9f5818561ce..68acbb2faf93f3611efe9893a4ac19152d72f998 100644 (file)
@@ -2262,7 +2262,7 @@ QualType PCHReader::ReadTypeRecord(unsigned Index) {
   SavedStreamPosition SavedPosition(DeclsCursor);
 
   ReadingKindTracker ReadingKind(Read_Type, *this);
-  
+
   // Note that we are loading a type record.
   Deserializing AType(this);
 
@@ -3027,7 +3027,7 @@ void PCHReader::PassInterestingDeclsToConsumer() {
   while (!InterestingDecls.empty()) {
     DeclGroupRef DG(InterestingDecls.front());
     InterestingDecls.pop_front();
-    Consumer->HandleTopLevelDecl(DG);
+    Consumer->HandleInterestingDecl(DG);
   }
 }