diff options
author | Anders Carlsson <andersca@mac.com> | 2011-01-20 03:47:08 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2011-01-20 03:47:08 +0000 |
commit | 7eeb4ec11043d4860361348f2b19299d957d47a9 (patch) | |
tree | 7d3aebb5669c4c1a7a4d87216db584f43752f885 /lib | |
parent | aa031fd7cbba511404a26b733138e392d4f9f17a (diff) |
Lazily initialize the 'final' and 'override' contextual keywords as suggested by Doug.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123876 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Parse/ParseDeclCXX.cpp | 6 | ||||
-rw-r--r-- | lib/Parse/Parser.cpp | 7 |
2 files changed, 8 insertions, 5 deletions
diff --git a/lib/Parse/ParseDeclCXX.cpp b/lib/Parse/ParseDeclCXX.cpp index 75a6f59eac..0dc367c9fd 100644 --- a/lib/Parse/ParseDeclCXX.cpp +++ b/lib/Parse/ParseDeclCXX.cpp @@ -1275,6 +1275,12 @@ VirtSpecifiers::VirtSpecifier Parser::isCXX0XVirtSpecifier() const { if (Tok.is(tok::identifier)) { IdentifierInfo *II = Tok.getIdentifierInfo(); + // Initialize the contextual keywords. + if (!Ident_final) { + Ident_final = &PP.getIdentifierTable().get("final"); + Ident_override = &PP.getIdentifierTable().get("override"); + } + if (II == Ident_override) return VirtSpecifiers::VS_Override; diff --git a/lib/Parse/Parser.cpp b/lib/Parse/Parser.cpp index 47c62377c2..3327f7b5a9 100644 --- a/lib/Parse/Parser.cpp +++ b/lib/Parse/Parser.cpp @@ -387,11 +387,8 @@ void Parser::Initialize() { ObjCTypeQuals[objc_byref] = &PP.getIdentifierTable().get("byref"); } - // Initialize C++0x contextual keywords. - if (getLang().CPlusPlus0x) { - Ident_final = &PP.getIdentifierTable().get("final"); - Ident_override = &PP.getIdentifierTable().get("override"); - } + Ident_final = 0; + Ident_override = 0; Ident_super = &PP.getIdentifierTable().get("super"); |