]> granicus.if.org Git - clang/commitdiff
Rewrite AttributeList::getKind to use StringRef API.
authorDaniel Dunbar <daniel@zuster.org>
Sat, 17 Oct 2009 18:12:29 +0000 (18:12 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Sat, 17 Oct 2009 18:12:29 +0000 (18:12 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84339 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Parse/AttributeList.cpp

index 2ee41bc3eb8d8f05cffb4661e1d84d4867942bb7..29e44caba64079c74584878a675c994158c740a4 100644 (file)
@@ -45,18 +45,15 @@ AttributeList::~AttributeList() {
 }
 
 AttributeList::Kind AttributeList::getKind(const IdentifierInfo *Name) {
-  const char *Str = Name->getName();
-  unsigned Len = Name->getLength();
+  llvm::StringRef AttrName = Name->getNameStr();
 
   // Normalize the attribute name, __foo__ becomes foo.
-  if (Len > 4 && Str[0] == '_' && Str[1] == '_' &&
-      Str[Len - 2] == '_' && Str[Len - 1] == '_') {
-    Str += 2;
-    Len -= 4;
-  }
+  if (AttrName.startswith("__") && AttrName.endswith("__"))
+    AttrName = AttrName.substr(2, AttrName.size() - 4);
 
   // FIXME: Hand generating this is neither smart nor efficient.
-  switch (Len) {
+  const char *Str = AttrName.data();
+  switch (AttrName.size()) {
   case 4:
     if (!memcmp(Str, "weak", 4)) return AT_weak;
     if (!memcmp(Str, "pure", 4)) return AT_pure;