Reserved C++ words are valid selectors in Objective-C++

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55253 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Parse/ParseObjc.cpp b/lib/Parse/ParseObjc.cpp
index 7ef3282..5758460 100644
--- a/lib/Parse/ParseObjc.cpp
+++ b/lib/Parse/ParseObjc.cpp
@@ -447,45 +447,74 @@
   default:
     return 0;
   case tok::identifier:
-  case tok::kw_typeof:
-  case tok::kw___alignof:
+  case tok::kw_asm:
   case tok::kw_auto:
-  case tok::kw_break:                    
-  case tok::kw_case:                        
-  case tok::kw_char:                        
-  case tok::kw_const:                       
-  case tok::kw_continue:                    
-  case tok::kw_default:                     
-  case tok::kw_do:                          
-  case tok::kw_double:                      
-  case tok::kw_else:                        
-  case tok::kw_enum:                        
-  case tok::kw_extern:                      
-  case tok::kw_float:                       
-  case tok::kw_for:                         
-  case tok::kw_goto:                        
-  case tok::kw_if:                       
-  case tok::kw_inline:                     
-  case tok::kw_int:                         
-  case tok::kw_long:                        
-  case tok::kw_register:                    
-  case tok::kw_restrict:
-  case tok::kw_return:                      
-  case tok::kw_short:                       
-  case tok::kw_signed:                      
-  case tok::kw_sizeof:                      
-  case tok::kw_static:                      
-  case tok::kw_struct:                      
-  case tok::kw_switch:                      
-  case tok::kw_typedef:                     
-  case tok::kw_union:                       
-  case tok::kw_unsigned:                    
-  case tok::kw_void:                        
-  case tok::kw_volatile:                    
-  case tok::kw_while:                       
   case tok::kw_bool:
+  case tok::kw_break:
+  case tok::kw_case:
+  case tok::kw_catch:
+  case tok::kw_char:
+  case tok::kw_class:
+  case tok::kw_const:
+  case tok::kw_const_cast:
+  case tok::kw_continue:
+  case tok::kw_default:
+  case tok::kw_delete:
+  case tok::kw_do:
+  case tok::kw_double:
+  case tok::kw_dynamic_cast:
+  case tok::kw_else:
+  case tok::kw_enum:
+  case tok::kw_explicit:
+  case tok::kw_export:
+  case tok::kw_extern:
+  case tok::kw_false:
+  case tok::kw_float:
+  case tok::kw_for:
+  case tok::kw_friend:
+  case tok::kw_goto:
+  case tok::kw_if:
+  case tok::kw_inline:
+  case tok::kw_int:
+  case tok::kw_long:
+  case tok::kw_mutable:
+  case tok::kw_namespace:
+  case tok::kw_new:
+  case tok::kw_operator:
+  case tok::kw_private:
+  case tok::kw_protected:
+  case tok::kw_public:
+  case tok::kw_register:
+  case tok::kw_reinterpret_cast:
+  case tok::kw_restrict:
+  case tok::kw_return:
+  case tok::kw_short:
+  case tok::kw_signed:
+  case tok::kw_sizeof:
+  case tok::kw_static:
+  case tok::kw_static_cast:
+  case tok::kw_struct:
+  case tok::kw_switch:
+  case tok::kw_template:
+  case tok::kw_this:
+  case tok::kw_throw:
+  case tok::kw_true:
+  case tok::kw_try:
+  case tok::kw_typedef:
+  case tok::kw_typeid:
+  case tok::kw_typename:
+  case tok::kw_typeof:
+  case tok::kw_union:
+  case tok::kw_unsigned:
+  case tok::kw_using:
+  case tok::kw_virtual:
+  case tok::kw_void:
+  case tok::kw_volatile:
+  case tok::kw_wchar_t:
+  case tok::kw_while:
   case tok::kw__Bool:
   case tok::kw__Complex:
+  case tok::kw___alignof:
     IdentifierInfo *II = Tok.getIdentifierInfo();
     SelectorLoc = ConsumeToken();
     return II;