aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/clang/Parse/Action.h2
-rw-r--r--lib/Parse/Parser.cpp4
2 files changed, 5 insertions, 1 deletions
diff --git a/include/clang/Parse/Action.h b/include/clang/Parse/Action.h
index ef357c9ae0..55ef67d177 100644
--- a/include/clang/Parse/Action.h
+++ b/include/clang/Parse/Action.h
@@ -181,6 +181,8 @@ public:
return 0;
}
+ virtual void ActOnEndOfTranslationUnit() {}
+
//===--------------------------------------------------------------------===//
// Type Parsing Callbacks.
//===--------------------------------------------------------------------===//
diff --git a/lib/Parse/Parser.cpp b/lib/Parse/Parser.cpp
index ccdf264bd8..417cc10bfb 100644
--- a/lib/Parse/Parser.cpp
+++ b/lib/Parse/Parser.cpp
@@ -285,7 +285,7 @@ bool Parser::ParseTopLevelDecl(DeclTy*& Result) {
/// external-declaration
/// translation-unit external-declaration
void Parser::ParseTranslationUnit() {
- Initialize();
+ Initialize(); // pushes a scope.
DeclTy *Res;
while (!ParseTopLevelDecl(Res))
@@ -293,6 +293,8 @@ void Parser::ParseTranslationUnit() {
ExitScope();
assert(CurScope == 0 && "Scope imbalance!");
+
+ Actions.ActOnEndOfTranslationUnit();
}
/// ParseExternalDeclaration: