[cfe-commits] r98340 - /cfe/trunk/lib/Basic/IdentifierTable.cpp

Benjamin Kramer benny.kra at googlemail.com
Fri Mar 12 03:04:23 PST 2010


On 12.03.2010, at 11:14, Kovarththanan Rajaratnam wrote:

> Author: krj
> Date: Fri Mar 12 04:14:26 2010
> New Revision: 98340
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=98340&view=rev
> Log:
> Add keywords using StringRef
> 
> Modified:
>    cfe/trunk/lib/Basic/IdentifierTable.cpp
> 
> Modified: cfe/trunk/lib/Basic/IdentifierTable.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/IdentifierTable.cpp?rev=98340&r1=98339&r2=98340&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Basic/IdentifierTable.cpp (original)
> +++ cfe/trunk/lib/Basic/IdentifierTable.cpp Fri Mar 12 04:14:26 2010
> @@ -16,6 +16,7 @@
> #include "clang/Basic/LangOptions.h"
> #include "llvm/ADT/FoldingSet.h"
> #include "llvm/ADT/DenseMap.h"
> +#include "llvm/ADT/StringRef.h"
> #include "llvm/Support/raw_ostream.h"
> #include <cstdio>
> 
> @@ -81,7 +82,7 @@
> /// enabled in the specified langauge, set to 1 if it is an extension
> /// in the specified language, and set to 2 if disabled in the
> /// specified language.
> -static void AddKeyword(const char *Keyword, unsigned KWLen,
> +static void AddKeyword(llvm::StringRef Keyword,
>                        tok::TokenKind TokenCode, unsigned Flags,
>                        const LangOptions &LangOpts, IdentifierTable &Table) {
>   unsigned AddResult = 0;
> @@ -97,17 +98,17 @@
>   // Don't add this keyword if disabled in this language.
>   if (AddResult == 0) return;
> 
> -  IdentifierInfo &Info = Table.get(Keyword, Keyword+KWLen);
> +  IdentifierInfo &Info = Table.get(Keyword);
>   Info.setTokenID(TokenCode);
>   Info.setIsExtensionToken(AddResult == 1);
> }
> 
> /// AddCXXOperatorKeyword - Register a C++ operator keyword alternative
> /// representations.
> -static void AddCXXOperatorKeyword(const char *Keyword, unsigned KWLen,
> +static void AddCXXOperatorKeyword(llvm::StringRef Keyword,
>                                   tok::TokenKind TokenCode,
>                                   IdentifierTable &Table) {
> -  IdentifierInfo &Info = Table.get(Keyword, Keyword + KWLen);
> +  IdentifierInfo &Info = Table.get(Keyword);
>   Info.setTokenID(TokenCode);
>   Info.setIsCPlusPlusOperatorKeyword();
> }
> @@ -115,9 +116,9 @@
> /// AddObjCKeyword - Register an Objective-C @keyword like "class" "selector" or
> /// "property".
> static void AddObjCKeyword(tok::ObjCKeywordKind ObjCID,
> -                           const char *Name, unsigned NameLen,
> +                           llvm::StringRef Name,
>                            IdentifierTable &Table) {
> -  Table.get(Name, Name+NameLen).setObjCKeywordID(ObjCID);
> +  Table.get(Name).setObjCKeywordID(ObjCID);
> }
> 
> /// AddKeywords - Add all keywords to the symbol table.
> @@ -125,20 +126,20 @@
> void IdentifierTable::AddKeywords(const LangOptions &LangOpts) {
>   // Add keywords and tokens for the current language.
> #define KEYWORD(NAME, FLAGS) \
> -  AddKeyword(#NAME, strlen(#NAME), tok::kw_ ## NAME,  \
> +  AddKeyword(llvm::StringRef(#NAME), tok::kw_ ## NAME,  \
>              FLAGS, LangOpts, *this);
> #define ALIAS(NAME, TOK, FLAGS) \
> -  AddKeyword(NAME, strlen(NAME), tok::kw_ ## TOK,  \
> +  AddKeyword(llvm::StringRef(#NAME), tok::kw_ ## TOK,  \
>              FLAGS, LangOpts, *this);

The # (in #NAME) doesn't belong there.



More information about the cfe-commits mailing list