[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