diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-08-25 18:07:12 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-08-25 18:07:12 +0000 |
commit | f11096c99ce40cfb7eb02f86a612133deb8c1b58 (patch) | |
tree | 8ff60c1c0264a2e00a624ed5eed1d695275d221c /clang/lib | |
parent | ea14705c8c7370be38523b0b808f084a6848608d (diff) | |
download | bcm5719-llvm-f11096c99ce40cfb7eb02f86a612133deb8c1b58.tar.gz bcm5719-llvm-f11096c99ce40cfb7eb02f86a612133deb8c1b58.zip |
Initialize the translation-unit scope before lexing the first
token. The first token might be something that ends up triggering code
completion, which in turn requires a valid Scope. Test case forthcoming.
llvm-svn: 112066
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Parse/Parser.cpp | 8 | ||||
-rw-r--r-- | clang/lib/Sema/Sema.cpp | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/clang/lib/Parse/Parser.cpp b/clang/lib/Parse/Parser.cpp index e277c3f80e1..23c13ebf9d5 100644 --- a/clang/lib/Parse/Parser.cpp +++ b/clang/lib/Parse/Parser.cpp @@ -324,13 +324,13 @@ Parser::~Parser() { /// Initialize - Warm up the parser. /// void Parser::Initialize() { - // Prime the lexer look-ahead. - ConsumeToken(); - // Create the translation unit scope. Install it as the current scope. assert(getCurScope() == 0 && "A scope is already active?"); EnterScope(Scope::DeclScope); - Actions.ActOnTranslationUnitScope(Tok.getLocation(), getCurScope()); + Actions.ActOnTranslationUnitScope(getCurScope()); + + // Prime the lexer look-ahead. + ConsumeToken(); if (Tok.is(tok::eof) && !getLang().CPlusPlus) // Empty source file is an extension in C diff --git a/clang/lib/Sema/Sema.cpp b/clang/lib/Sema/Sema.cpp index 31d6f0dd324..2e8827ddec9 100644 --- a/clang/lib/Sema/Sema.cpp +++ b/clang/lib/Sema/Sema.cpp @@ -48,7 +48,7 @@ void FunctionScopeInfo::Clear(unsigned NumErrors) { BlockScopeInfo::~BlockScopeInfo() { } -void Sema::ActOnTranslationUnitScope(SourceLocation Loc, Scope *S) { +void Sema::ActOnTranslationUnitScope(Scope *S) { TUScope = S; PushDeclContext(S, Context.getTranslationUnitDecl()); |