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

llvm-svn: 55253
This commit is contained in:
Anders Carlsson 2008-08-23 21:00:01 +00:00
parent da42964999
commit f93f56a28e
2 changed files with 99 additions and 35 deletions

View File

@ -447,45 +447,74 @@ IdentifierInfo *Parser::ParseObjCSelector(SourceLocation &SelectorLoc) {
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;

View File

@ -0,0 +1,35 @@
// RUN: clang -fsyntax-only -verify %s
@interface A
- (void)asm;
- (void)bool;
- (void)catch;
- (void)class;
- (void)const_cast;
- (void)delete;
- (void)dynamic_cast;
- (void)explicit;
- (void)export;
- (void)false;
- (void)friend;
- (void)mutable;
- (void)namespace;
- (void)new;
- (void)operator;
- (void)private;
- (void)protected;
- (void)public;
- (void)reinterpret_cast;
- (void)static_cast;
- (void)template;
- (void)this;
- (void)throw;
- (void)true;
- (void)try;
- (void)typename;
- (void)typeid;
- (void)using;
- (void)virtual;
- (void)wchar_t;
@end