diff --git a/gcc/c-lex.c b/gcc/c-lex.c index 4c773e118d8..d8771762d9d 100644 --- a/gcc/c-lex.c +++ b/gcc/c-lex.c @@ -1096,11 +1096,15 @@ yylex () p = token_buffer; while (isalnum (c) || c == '_' || c == '$' || c == '@') { - if (p >= token_buffer + maxtoken) - p = extend_token_buffer (p); + /* Make sure this char really belongs in an identifier. */ + if (c == '@' && ! doing_objc_thang) + break; if (c == '$' && ! dollars_in_ident) break; + if (p >= token_buffer + maxtoken) + p = extend_token_buffer (p); + *p++ = c; c = getc (finput); }