[cfe-commits] r55222 - in /cfe/trunk: include/clang/Parse/Action.h lib/Parse/Parser.cpp lib/Sema/Sema.cpp lib/Sema/Sema.h

Chris Lattner sabre at nondot.org
Fri Aug 22 20:19:52 PDT 2008


Author: lattner
Date: Fri Aug 22 22:19:52 2008
New Revision: 55222

URL: http://llvm.org/viewvc/llvm-project?rev=55222&view=rev
Log:
make sure that ParseAST invokes the action for end of translation unit.

Modified:
    cfe/trunk/include/clang/Parse/Action.h
    cfe/trunk/lib/Parse/Parser.cpp
    cfe/trunk/lib/Sema/Sema.cpp
    cfe/trunk/lib/Sema/Sema.h

Modified: cfe/trunk/include/clang/Parse/Action.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Parse/Action.h?rev=55222&r1=55221&r2=55222&view=diff

==============================================================================
--- cfe/trunk/include/clang/Parse/Action.h (original)
+++ cfe/trunk/include/clang/Parse/Action.h Fri Aug 22 22:19:52 2008
@@ -181,6 +181,9 @@
     return 0;
   }
   
+  /// ActOnEndOfTranslationUnit - This is called at the very end of the
+  /// translation unit when EOF is reached and all but the top-level scope is
+  /// popped.
   virtual void ActOnEndOfTranslationUnit() {}
   
   //===--------------------------------------------------------------------===//

Modified: cfe/trunk/lib/Parse/Parser.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/Parser.cpp?rev=55222&r1=55221&r2=55222&view=diff

==============================================================================
--- cfe/trunk/lib/Parse/Parser.cpp (original)
+++ cfe/trunk/lib/Parse/Parser.cpp Fri Aug 22 22:19:52 2008
@@ -274,7 +274,10 @@
 /// action tells us to.  This returns true if the EOF was encountered.
 bool Parser::ParseTopLevelDecl(DeclTy*& Result) {
   Result = 0;
-  if (Tok.is(tok::eof)) return true;
+  if (Tok.is(tok::eof)) {
+    Actions.ActOnEndOfTranslationUnit();
+    return true;
+  }
 
   Result = ParseExternalDeclaration();
   return false;
@@ -293,8 +296,6 @@
   
   ExitScope();
   assert(CurScope == 0 && "Scope imbalance!");
-  
-  Actions.ActOnEndOfTranslationUnit();
 }
 
 /// ParseExternalDeclaration:

Modified: cfe/trunk/lib/Sema/Sema.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/Sema.cpp?rev=55222&r1=55221&r2=55222&view=diff

==============================================================================
--- cfe/trunk/lib/Sema/Sema.cpp (original)
+++ cfe/trunk/lib/Sema/Sema.cpp Fri Aug 22 22:19:52 2008
@@ -129,6 +129,14 @@
   delete static_cast<Stmt*>(S);
 }
 
+/// ActOnEndOfTranslationUnit - This is called at the very end of the
+/// translation unit when EOF is reached and all but the top-level scope is
+/// popped.
+void Sema::ActOnEndOfTranslationUnit() {
+
+}
+
+
 //===----------------------------------------------------------------------===//
 // Helper functions.
 //===----------------------------------------------------------------------===//

Modified: cfe/trunk/lib/Sema/Sema.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/Sema.h?rev=55222&r1=55221&r2=55222&view=diff

==============================================================================
--- cfe/trunk/lib/Sema/Sema.h (original)
+++ cfe/trunk/lib/Sema/Sema.h Fri Aug 22 22:19:52 2008
@@ -197,6 +197,8 @@
   virtual void DeleteExpr(ExprTy *E);
   virtual void DeleteStmt(StmtTy *S);
 
+  virtual void ActOnEndOfTranslationUnit();
+  
   //===--------------------------------------------------------------------===//
   // Type Analysis / Processing: SemaType.cpp.
   //





More information about the cfe-commits mailing list