]> granicus.if.org Git - clang/commitdiff
fix the second half of PR2041: __restrict is ok in c90 mode, even if
authorChris Lattner <sabre@nondot.org>
Tue, 19 Feb 2008 06:46:10 +0000 (06:46 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 19 Feb 2008 06:46:10 +0000 (06:46 +0000)
restrict isn't.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47316 91177308-0d34-0410-b5e6-96231b3b80d8

Basic/IdentifierTable.cpp
test/Sema/c89.c

index f6c5f3a1af900bcea70fdbb8a6fa811207932475..45d888140a21f065e588cf99eaa6d5e24967cfb3 100644 (file)
@@ -91,12 +91,13 @@ static void AddKeyword(const char *Keyword, unsigned KWLen,
 }
 
 static void AddAlias(const char *Keyword, unsigned KWLen,
+                     tok::TokenKind AliaseeID,
                      const char *AliaseeKeyword, unsigned AliaseeKWLen,
                      const LangOptions &LangOpts, IdentifierTable &Table) {
   IdentifierInfo &AliasInfo = Table.get(Keyword, Keyword+KWLen);
   IdentifierInfo &AliaseeInfo = Table.get(AliaseeKeyword,
                                           AliaseeKeyword+AliaseeKWLen);
-  AliasInfo.setTokenID(AliaseeInfo.getTokenID());
+  AliasInfo.setTokenID(AliaseeID);
   AliasInfo.setIsExtensionToken(AliaseeInfo.isExtensionToken());
 }  
 
@@ -148,7 +149,8 @@ void IdentifierTable::AddKeywords(const LangOptions &LangOpts) {
              ((FLAGS) >> CPP0xShift) & Mask, \
              ((FLAGS) >> BoolShift) & Mask, LangOpts, *this);
 #define ALIAS(NAME, TOK) \
-  AddAlias(NAME, strlen(NAME), #TOK, strlen(#TOK), LangOpts, *this);
+  AddAlias(NAME, strlen(NAME), tok::kw_ ## TOK, #TOK, strlen(#TOK),  \
+           LangOpts, *this);
 #define CXX_KEYWORD_OPERATOR(NAME, ALIAS) \
   if (LangOpts.CXXOperatorNames)          \
     AddCXXOperatorKeyword(#NAME, strlen(#NAME), tok::ALIAS, *this);
index 4c89e82ba2d53483ee6326bce84b12f90cab893a..831c1ce7c5d5121516ad5519a8e2a6e0e049448a 100644 (file)
@@ -32,4 +32,4 @@ void test5(register);
 
 /* PR2041 */
 int *restrict;
-
+int *__restrict;  /* expected-error {{expected identifier}} */