aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2011-01-20 03:47:08 +0000
committerAnders Carlsson <andersca@mac.com>2011-01-20 03:47:08 +0000
commit7eeb4ec11043d4860361348f2b19299d957d47a9 (patch)
tree7d3aebb5669c4c1a7a4d87216db584f43752f885 /lib
parentaa031fd7cbba511404a26b733138e392d4f9f17a (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.cpp6
-rw-r--r--lib/Parse/Parser.cpp7
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");