1 #include "clang/Basic/Attributes.h" 2 #include "clang/Basic/IdentifierTable.h" 3 #include "llvm/ADT/StringSwitch.h" 4 using namespace clang; 5 6 int clang::hasAttribute(AttrSyntax Syntax, const IdentifierInfo *Scope, 7 const IdentifierInfo *Attr, const TargetInfo &Target, 8 const LangOptions &LangOpts) { 9 StringRef Name = Attr->getName(); 10 // Normalize the attribute name, __foo__ becomes foo. 11 if (Name.size() >= 4 && Name.startswith("__") && Name.endswith("__")) 12 Name = Name.substr(2, Name.size() - 4); 13 14 #include "clang/Basic/AttrHasAttributeImpl.inc" 15 16 return 0; 17 } 18